
                   comp.os.os2.programmer.misc      (Usenet)

                 Saturday, 09-Oct-1999 to Friday, 15-Oct-1999

+----------------------------------------------------------------------------+

From: abuse@orac.clara.co.uk                            09-Oct-99 00:47:21
  To: All                                               09-Oct-99 04:16:19
Subj: Re: Debugger terminates program by PM Resource Interlock message.

From: abuse@orac.clara.co.uk (Paul Ratcliffe)

On Fri, 08 Oct 1999 07:55:19 +0200, Jasper de Keijzer
<jasper_de_keijzer@nl.compuware.com> wrote:

>These kind of problems are happening when the debugging mode is
>asynchronous. Make it synchrone!

I made it synchronous months if not years ago. It still happens.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: The Floppy BBS (1:109/42)

+----------------------------------------------------------------------------+

From: nospamless@home.com                               09-Oct-99 03:13:25
  To: All                                               09-Oct-99 11:03:24
Subj: Re: Generic WinOS/2 audio driver revisited

From: "ùgÏH" <nospamless@home.com>

In <37FE4DBE.2111@ican.net>, on 10/08/99 
   at 08:02 PM, Peter Fitzsimons <pfitz@ican.net> said:

>The CS4280 card's drivers seem to do what you want already -- some sort of
>generic connection between winos2 and os/2.

>There's an outside chance this part of the drivers will work for a non-CS
>card. Here's part of the readme:

Don't bother doing that... Crystal Semi's device driver programmer already
implemented several hardware in their Win-OS/2 driver... After all, they are
not paid to make driver on hardware they don't sell... (Unlike Scitech... :)
)

-- 
===Team OS/2, Team OS/2 at Taiwan, ICE News Beta Tester. Bovine Team===
======Warped Key Crucher, And OS/2 ISP CD Project Member. TBA  #3======

     Owner of PC End User Web Site       http://www.pcenduser.com/

      Java 1.1.7 - MR/2 ICE REG#:10510 - OS/2 T-Warp Connect 4.0
                            ICQ# = 8943567

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: @Home Network Canada (1:109/42)

+----------------------------------------------------------------------------+

From: rjerant@no_spam,austin.rr.com                     09-Oct-99 04:31:24
  To: All                                               09-Oct-99 11:03:25
Subj: Re: Generic WinOS/2 audio driver revisited

From: rjerant@no_spam,austin.rr.com (Rich Jerant)

On Fri, 08 Oct 1999 20:02:07 GMT, Peter Fitzsimons <pfitz@ican.net>
wrote:

>The CS4280 card's drivers seem to do what you want already -- some sort
>of generic connection between winos2 and os/2.
>
>There's an outside chance this part of the drivers will work for a
>non-CS card. Here's part of the readme:
>
Trust me in this.. Joe Nord at Cirrrus Logic is a VERY BRIGHT man. He
has assured me that his Win-OS/2  support will only work with Cirrus
Logic hardware. I've worked with Joe and if he says that's how it
works you can take that to the bank. 

Rich

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Origin Line 1 Goes Here (1:109/42)

+----------------------------------------------------------------------------+

From: rjerant@no_spam,austin.rr.com                     09-Oct-99 04:51:01
  To: All                                               09-Oct-99 11:03:25
Subj: Re: Generic WinOS/2 Question

From: rjerant@no_spam,austin.rr.com (Rich Jerant)

On Fri, 08 Oct 1999 12:59:19 -0400, "David T. Johnson"
<djohnson@isomedia.com> wrote:

>Thanks for replying here.  I have used the generic win-os2 driver with
>the Aureal PCI Vortex 1 chipset.  When you install the generic win-os2
>driver, it gives you the windows system sounds and so forth with no
>problem.  Naturally, I had to try the RealPlayer 5.0 with the generic
>win-os2 driver.  When you launch RealPlayer 5.0, the sound comes out for
>about 10 seconds (excellent quality I might add) and then...it stops. 
>If you move the slider forward, it will play another 10 seconds and then
>stop.  Do you have any idea why this happens?  The driver seems...that
>close! to working, but does not. 
>
Yes unfortunatly the Generic Win-OS/2 stuff has a few problems that I
didn't understand untill recently. First it does not handle several of
the windows messages corrrectly... Hey we were OS/2 programmers what
did you expect ! Secondly it has 2 or 3 really stupid design flaws
that tend to confuse both the client multimedia app and mmsystem.dll.
And finally this whole setup is particularly sensitive to how Win-OS/2
is configured on the system it is running on. So your assesment seems
correct, close but no cigar....

Rich

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Origin Line 1 Goes Here (1:109/42)

+----------------------------------------------------------------------------+

From: News@The-Net-4U.com                               09-Oct-99 08:01:08
  To: All                                               09-Oct-99 11:03:25
Subj: Re: System area on HPFS drive

From: News@The-Net-4U.com (M.P. van Dobben de Bruijn)

> "Mike Ruskai" <thannymeister@spambegone.yahoo.com> wrote:

> Anyone know how to query the size of the system area on an HPFS drive?

Noticed that no-one here was able to help you yet, at least my ISP
did not show any answers. So pondering over it during the coffee-
break I suddenly realised that (depending on what you want to use
it for I suppose) Chris Graham of the Graham Utilities sure must know
a lot about this and willing to share that. Otherwise somebody at IBM
may be able to point you directly to the relevant documents in the Dev-
eloper Connection, I am almost sure that info will be hidden there online.

Regards from Leeuwarden
Peter van Dobben de Bruijn
---
usethenet.at.the-net-4u.com (at becomes @)
----

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TeleKabel (1:109/42)

+----------------------------------------------------------------------------+

From: chris@slave.demon.co.uk                           09-Oct-99 16:27:10
  To: All                                               09-Oct-99 14:41:27
Subj: VisAge 3 C++ lost use of Editor in Project Menu from Debugger. Help!

From: Chris Hodgkins <chris@slave.demon.co.uk>

On a Warp 4 box with fix pack 11 applied and Visual Age C++ 3 with Fix
pack 8 I've lost the use of the Editor from the Project menu in the
Debugger.
I get access violations when I select this from the menu or double left
click on white space to launch the editor to the specific code that I'm
debugging at that time.
FWIW The Context help Cntrl-H from the Debugger has stopped working as
well. It moans about not finding the ndx files in the dpath or bookshelf
paths. However the paths are correct on config.sys, and the Editor finds
theme when I use context help from there.

Has anyone seen this before? Is there an easy fix or should I Zap VisAge
3 and re-install?

cheers
-- 
Chris Hodgkins. S.S.D. UK.  Tele:+44 780 273 4036  Fax:+44 870 055 8984 
PGP key sent on demand E-mail pgp@slave.demon.co.uk 
PGP Fingerprint20 = 1BFB CBC4 F3F8 6396 5DD6  E64D E155 8139 291B 14B4

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Origin Line 1 Goes Here (1:109/42)

+----------------------------------------------------------------------------+

From: lamikr@cc.jyu.fi                                  10-Oct-99 00:08:28
  To: All                                               09-Oct-99 19:56:26
Subj: Re: Generic WinOS/2 audio driver revisited

From: lamikr <lamikr@cc.jyu.fi>

> Thanks for the info, guys - but this is not really the information I was
> looking for here.

Sorry that I can't help. But I can just say (and hope)
GO FOR IT!!! I bought today Vortex card which is using 8820.
Works fine in OS/2 if I have not installed voice-type.
(Voice type seems to hang it just before desktop is appearing,
same happened earlier with gravis ultrasound drivers)

Anyway, sound quality seems to be really good.

Mika




--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: University of Jyvaskyla, Finland (1:109/42)

+----------------------------------------------------------------------------+

From: leifel@online.no                                  10-Oct-99 12:30:20
  To: All                                               10-Oct-99 10:22:27
Subj: VAC++ 4.0 and Dos16MemAvail

From: "Leif-Erik Larsen" <leifel@online.no>

Hi!

I know VAC++ 4.0 does not support calling 16 bit API's
like Dos16MemAvail(). Do you know if OS/2 has some 
other API, then, that I can use instead of Dos16MemAvail?

Regards
Leif-Erik Larsen



--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Telenor Online Public Access (1:109/42)

+----------------------------------------------------------------------------+

From: thannymeister@spambegone.yahoo.com                10-Oct-99 12:27:23
  To: All                                               10-Oct-99 16:28:10
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: "Mike Ruskai" <thannymeister@spambegone.yahoo.com>

On Sun, 10 Oct 1999 12:30:40 +0100 (CET), Leif-Erik Larsen wrote:

>Hi!
>
>I know VAC++ 4.0 does not support calling 16 bit API's
>like Dos16MemAvail(). Do you know if OS/2 has some 
>other API, then, that I can use instead of Dos16MemAvail?

I don't see why it wouldn't support calling 16-bit API's.  Just because some
bonehead decided to remove them from the headers doesn't mean you can't use
them.  After all, it's a matter of OS/2 functionality, not that of the
compiler.  To use Dos16MemAvail(), do this:

APIRET16 APIENTRY16 Dos16MemAvail(PULONG fMem);

#pragma import(Dos16MemAvail, "", "DOSCALLS", 127)

After that, you shouldn't have any problems using the API call.

And finally, no, there is not 32-bit API equivalent.  Apparently IBM didn't
think anyone would want to query the amount of physical memory free from a
32-bit-only program.


--
 - Mike

Remove 'spambegone' to send e-mail.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TLF (1:109/42)

+----------------------------------------------------------------------------+

From: @tin.it                                           10-Oct-99 08:37:12
  To: All                                               11-Oct-99 10:31:04
Subj: DosSubAllocMem

From: @tin.it (Alessandro Cantatore)

I have found no reference about how to use the DosSubAllocMem() API
when accessing the same heap from multiple threads...
The documentation says that the flag DOSSUB_SERIALIZE in DosSubSetMem()
is for shared memory pools, but there is nothing about accessing to
the same heap from different threads of the same process...
Just to be sure I used mutex semaphores to serialize every access
to DosSubAllocMem(), DosSubFreeMem() and DosSubUnsetMem()... is that
right or is an overkill?

BTW I'm not using the library functions (malloc) because I'm building
a subsystem DLL and in any case, in a test where I created a fragmented
heap allocating and freeing at random, random sizes of memory, using
DosTmrQueryTime() to check the average time employed on the calls,
I found that the performance difference is not great while DosSubAllocMem()
use memory in a much more efficient and compact way than the subsystem
C library malloc and do DosSubUnsetMem() is much more effective in releasing
memory than _heapmin()


-- 
bye
Alessandro Cantatore
email reply to: alexcant at: tin.it
http://acsoft.ghostbbs.cx

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TIN (1:109/42)

+----------------------------------------------------------------------------+

From: @tin.it                                           10-Oct-99 08:42:19
  To: All                                               11-Oct-99 10:31:04
Subj: Lotus Organizer

From: @tin.it (Alessandro Cantatore)

Hi

I got a report that an application I'm developing causes a system
crash when it is running alongside Lotus Organizer...
I borrowed the smartsuite from a friend of mine (I cannot buy it
just to make a few tests) and installed it on a test partition
where I discovered that a strange control, used to set time intervals,
(class TIMETRACKER) sets SV_POINTERLEVEL to 0xffff.

The SV_POINTERLEVEL variable is used by the system to keep track
of the visibility of the mouse pointer.
The Presentation Manager Programming Guide and Reference says that
each call to WinShowPointer(FALSE) increases by 1 the value of
SV_POINTERLEVEL and each call to WinShowPointer(TRUE) decreases it by 1.
According to the documentation there is no other way to change the
value. Calling directly WinSetSysValue() has no effect on the value
of SV_POINTERLEVEL.

I do not know if this is a bug or a "feature".
I cannot see any reason for a program to do that.
The variable gets this odd value only after a mouse button
is pressed upon the TIMETRACKER class window and then when the
TIMETRACKER window is dismissed the value remains 0xffff.
If I shift focus to a window of a different application SV_POINTERLEVEL
is still 0xffff (and the mouse pointer is visible, while it should
be visible only when SV_POINTERLEVEL is 0).
Only when the Lotus Organizer itself is terminated the value goes
back to 0, so I suspect it is due to a memory leak which overwrites
some area of shared memory rather than an intended hack...

I found a workaround but I wonder if there is any hope that lotus
would ever fix this...
Does anybody know an email address for reporting bugs to the lotus
developers?

-- 
bye
Alessandro Cantatore
email reply to: alexcant at: tin.it
http://acsoft.ghostbbs.cx

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TIN (1:109/42)

+----------------------------------------------------------------------------+

From: jknott@ibm.net                                    10-Oct-99 10:13:21
  To: All                                               11-Oct-99 14:43:20
Subj: Re: Warp 3 and Y2K

From: jknott@ibm.net (James Knott)

In article <Pine.SUN.3.96.991006055157.14118C-100000@compass.OregonVOS.net>,
Pat Pridgen <ppridgen@OregonVOS.net> wrote:
>On Wed, 6 Oct 1999, James Knott wrote:
>
>> It is not supported.  Only Warp 3 & 4 have updates for Y2K.
>
>What would I need to get to make Warp 3 y2k compliant

Install the latest fixpaks.

-- 
E-mail jknott@ca.ibm.com
_________________________________________________________________________
The above opinions are my own and not those of ISM Corp., a subsidiary of
IBM Canada Ltd.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Global Network Services - Remote Access Mail & Ne
(1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             11-Oct-99 09:21:03
  To: All                                               11-Oct-99 14:43:20
Subj: Re: DosSubAllocMem

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

On Sun, 10 Oct 1999 08:37:24 +0100, Alessandro Cantatore wrote:

>The documentation says that the flag DOSSUB_SERIALIZE in DosSubSetMem()
>is for shared memory pools, but there is nothing about accessing to
>the same heap from different threads of the same process...
>Just to be sure I used mutex semaphores to serialize every access
>to DosSubAllocMem(), DosSubFreeMem() and DosSubUnsetMem()... is that
>right or is an overkill?
It is mandatory to serialize it, either yourself or with DOSSUB_SERIALIZE.
Otherwise I guarantee that you will eventually have heap corruption. This
applies whether the "sharing" is between threads of the same or different
process and whether it is "shared" or "private" memory.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             11-Oct-99 09:18:29
  To: All                                               11-Oct-99 14:43:20
Subj: Re: Debugger terminates program by PM Resource Interlock message.

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

A colleague of mine suggests that you may not be at the latest possible
debugger fix level. Supposedly, he helped the VisualAge team come up with a
solution for this.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: blaschke@us.ibm.com                               11-Oct-99 09:57:10
  To: All                                               11-Oct-99 14:43:20
Subj: Re: Session Manager, what the heck is it doing?

From: Dave Blaschke <blaschke@us.ibm.com>


doug@hotrocks.msfc.nasa.gov wrote:

> Dave Blaschke wrote:
> >
> > doug@hotrocks.msfc.nasa.gov wrote:
> >
> > > Can someone please tell me the significance of the message:
> > >
> > > "RC:457 The Session Manager cannot start the process in the foreground.
> > > It will be started in the background."
> >
> > Looks to me like the only ways an application can get this error are:1) A
> > popup is in progress during the DosStartSession call.
> > 2) The DosStartSession requester is not a member of the session currently
in
> > the foreground.
> >
>
> By Jove, after a bunch of work and a bit of thought I think #2 may be
> it!  Thank you.  I wonder if there is some way to suppress this
> behavior.

Well, you could try calling DosSelectSession immediately prior to calling
DosStartSession, but there is no guarantee that somebody else will become the
foreground session before you DosStartSession call completes...

>
>
> Doug



--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: IBM Austin (1:109/42)

+----------------------------------------------------------------------------+

From: djohnson@isomedia.com                             11-Oct-99 10:42:06
  To: All                                               11-Oct-99 17:05:22
Subj: Re: Generic WinOS/2 audio driver revisited

From: "David T. Johnson" <djohnson@isomedia.com>



Peter Fitzsimons wrote:
> 
> > > If you're really desperate to free up an ISA slot, you might try a
> > > CS4280 based card.
> > >
> > > This is the one I bought:
> > >
> > >  http://www.axiontech.com/cgi-local/noinfo.asp?sogncrs4280
> > >
> > > and don't be fooled by all the talk about "3d" and "wavetable". These
> > > can only be implemented with software (poorly) with this card.
> >
> > The PCI cards which use the Aureal 8820 Vortex 1 chipset work very well
> > under OS/2.  MP3s and digital recording are very good.  IMO, this is the
> > best OS/2 sound solution presently available.  The OS/2 drivers do not
> > support sound in Win-OS2.  If you really need this, I would recommend a
> > second ISA card just for the Win-OS2 sound and use the Aureal for the
> > OS/2 sound.  It is that good.  Or just skip the Win-OS2 sound...
> 
> The 4280 card I bought does support Win-os2 (not for midi tho), in quite
> a clever way -- it feeds the data to an OS/2 daemon process which plays
> the sound via mmos2 -- so the sound card is always available to os/2
> apps.
> 
> Do you have a URL for a card based on the Vortex chip you mentioned?

I found four Vortex 1 8820-based cards that are available retail
at CompUSA stores.  I have also listed the CompUSA SKU# and the retail
price.  This is from March, 1999 so it might be out-of-date. 

      1. "Magic Wave A3D Audio Accelerator PCI" by I/O Magic. SKU#
195304 $39.99

      2. "Diamond Sonic Impact S90" by Diamond Multimedia. SKU# 216601
$49.99 

      3. "HiVal PCI 338 A3D Sound Card" SKU# 192299 $49.99

      4. "Montego A3D Xstream" by Turtle Beach. SKU# 192288. $49.99

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Posted via Supernews, http://www.supernews.com (1:109/42)

+----------------------------------------------------------------------------+

From: djohnson@isomedia.com                             11-Oct-99 10:44:22
  To: All                                               11-Oct-99 17:05:22
Subj: Re: Generic WinOS/2 audio driver revisited

From: "David T. Johnson" <djohnson@isomedia.com>



lamikr wrote:
> 
> > Thanks for the info, guys - but this is not really the information I was
> > looking for here.
> 
> Sorry that I can't help. But I can just say (and hope)
> GO FOR IT!!! I bought today Vortex card which is using 8820.
> Works fine in OS/2 if I have not installed voice-type.
> (Voice type seems to hang it just before desktop is appearing,
> same happened earlier with gravis ultrasound drivers)

I have an Aureal 8820-based PCI sound card and Voicetype works fine. 
This might be a problem with your voicetype install.  I suggest a
selective uninstall of voicetype and then a selective install.  


> 
> Anyway, sound quality seems to be really good.
> 
> Mika

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Posted via Supernews, http://www.supernews.com (1:109/42)

+----------------------------------------------------------------------------+

From: marco.shaw@nbtel.nb.ca                            11-Oct-99 20:27:01
  To: All                                               11-Oct-99 19:55:28
Subj: HOWTO:  chat scripts?

From: "Marco Shaw" <marco.shaw@nbtel.nb.ca>

I'm new to OS/2 admin.  I need to develop a script that gets files newer
than x date, and FTPs all these files to an FTP server, and this must be
done every 4 hours.

What kind of scheduling mechanism does OS/2 (Warp 4) have?  Would it be best
to use DOS batch scripts to do the above?  Since I don't know anything about
REXX...

Thanks,
Marco


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NBTel Internet (1:109/42)

+----------------------------------------------------------------------------+

From: bvermo@powertech.no                               11-Oct-99 21:00:06
  To: All                                               11-Oct-99 19:55:29
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: =?iso-8859-1?Q?Bj=F8rn?= Vermo <bvermo@powertech.no>

Mike Ruskai wrote:

>
> And finally, no, there is not 32-bit API equivalent.  Apparently IBM didn't
> think anyone would want to query the amount of physical memory free from a
> 32-bit-only program.
>

There is no 32-bit equivalent because the flat 32-bit model does not have
segments.

It looks like you believe that  DosMemAvail will report something useful under
OS/2 2.x. It does not. It will report the size of the largest un-allocated
memory segment in the system under OS/2 1.x, but under 32-bit OS/2 it is
mostly
a dummy function as long as the system is not out of virtual memory.

An API to report 'free' physical memory would not make much sense. In a
multitasking virtual-storage operating system, there should never be any free
(unused) physical memory if the system is working correctly.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Norbionics (1:109/42)

+----------------------------------------------------------------------------+

From: xmrmbq@heal.com                                   11-Oct-99 20:55:07
  To: All                                               11-Oct-99 19:55:29
Subj: Just a good advice  4110

From: xmrmbq@heal.com

fhtcejwwoublyrjufhpyhoqpjsgudmwil



--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Thyssen Informatik GmbH (1:109/42)

+----------------------------------------------------------------------------+

From: abuse@orac.clara.co.uk                            12-Oct-99 00:47:06
  To: All                                               12-Oct-99 05:53:23
Subj: Re: HOWTO:  chat scripts?

From: abuse@orac.clara.co.uk (Paul Ratcliffe)

On Mon, 11 Oct 1999 20:27:02 GMT, Marco Shaw <marco.shaw@nbtel.nb.ca> wrote:

>I'm new to OS/2 admin.  I need to develop a script that gets files newer
>than x date, and FTPs all these files to an FTP server, and this must be
>done every 4 hours.

You need REXX and a library package called RxSock. This all comes with Warp 4.

>What kind of scheduling mechanism does OS/2 (Warp 4) have?

It doesn't, but there is a choice of Cron-like utilties on Hobbes which will
do the job.

>Would it be best to use DOS batch scripts to do the above?

No.

>Since I don't know anything about REXX...

An ideal opportunity to learn then. My homepages are maintained automatically
by such a system as you describe - whatever I change here automatically gets
uploaded to the server whenever I connect.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: The Floppy BBS (1:109/42)

+----------------------------------------------------------------------------+

From: abuse@orac.clara.co.uk                            12-Oct-99 00:47:07
  To: All                                               12-Oct-99 05:53:23
Subj: Re: Debugger terminates program by PM Resource Interlock message.

From: abuse@orac.clara.co.uk (Paul Ratcliffe)

On Mon, 11 Oct 1999 09:18:58 -0500 (CDT), Scott E. Garfinkle
<seg@NOSPAM-us.ibm.com> wrote:

>A colleague of mine suggests that you may not be at the latest possible
>debugger fix level. Supposedly, he helped the VisualAge team come up with a
>solution for this.

If there is anything newer than VAC++ fixpack 8, then maybe I'm not, but
otherwise I definitely am. Unless of course it installs something on the OS
partition.... I have changed from W3 to W4 since applying the fixpack.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: The Floppy BBS (1:109/42)

+----------------------------------------------------------------------------+

From: Jan.Danielsson@falun.mail.telia.com               12-Oct-99 13:10:08
  To: All                                               12-Oct-99 16:57:25
Subj: Re: DosSubAllocMem

From: "Jan Danielsson" <Jan.Danielsson@falun.mail.telia.com>

>I have found no reference about how to use the DosSubAllocMem() API
>when accessing the same heap from multiple threads...
>The documentation says that the flag DOSSUB_SERIALIZE in DosSubSetMem()
>is for shared memory pools, but there is nothing about accessing to
>the same heap from different threads of the same process...

Just call DosSubAllocMem(). A system wide semaphore is created by
DosSubSetMem() if you specify DOSSUB_SERIALIZE, the semaphore is
automatically requested then you call DosSub(Alloc/Free)Mem().

>Just to be sure I used mutex semaphores to serialize every access
>to DosSubAllocMem(), DosSubFreeMem() and DosSubUnsetMem()... is that
>right or is an overkill?

Not needed, but good thinking.


 /j



--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Telia Internet (1:109/42)

+----------------------------------------------------------------------------+

From: mads@troest.NEVERMORE.dk                          12-Oct-99 13:55:16
  To: All                                               12-Oct-99 16:57:25
Subj: MuxWait "turn-taking"

From: mads@troest.NEVERMORE.dk (Mads Orbesen Troest)

Hi,

I have a question regarding MuxWait semaphores. Here's the scenario:

Suppose I have a MuxWait constructed from 3 Event semaphores; the 
semaphore is in "wait on any" mode.
My thread is blocking on the MuxWait.
Event 1 is posted, releasing the MuxWait.
While doing further processing in my thread, Event 3 is posted.
After making my thread wait on the MuxWait again, I reset the 
processed Event 1.

My question is now: would this code ever reach the point where Event 3
could be serviced, or will the MuxWait always trigger on Event 1 in 
this case, Event 1 - being the first - always being checked before the
others? Or is there some "turn taking" taking place so that other 
semaphores are also checked?

Even if the MuxWait is posted no matter which Event was triggered, I 
use the user-parameter in the service routine to find out which Event 
triggered, talking corresponding action. But as indicated, I am 
worried that this sceme prevents any but the first Event to be 
serviced.

Thanks in advance for your enlightening words! :-)

   These were the incoherent ramblings of ...
      ... /\/\\ads Orbesen Troest <mads@troest.NEVERMORE.dk>
            [http://www.sprog.auc.dk/~motr96]

(Please remove NEVERMORE from address when replying via email...)

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: SIRIUS Cybernetics (1:109/42)

+----------------------------------------------------------------------------+

From: bvermo@powertech.no                               12-Oct-99 15:20:27
  To: All                                               12-Oct-99 16:57:25
Subj: Re: HOWTO: chat scripts?

From: =?iso-8859-1?Q?Bj=F8rn?= Vermo <bvermo@powertech.no>

Paul Ratcliffe wrote:

> On Mon, 11 Oct 1999 20:27:02 GMT, Marco Shaw <marco.shaw@nbtel.nb.ca> wrote:
>
> >I'm new to OS/2 admin.  I need to develop a script that gets files newer
> >than x date, and FTPs all these files to an FTP server, and this must be
> >done every 4 hours.
>
> You need REXX and a library package called RxSock. This all comes with Warp
4.
>

It may also be useful to run SWITCHRX.CMD to change to the new Object REXX. It 
has
some new functions which are very useful, such as access to semaphores. It is
also
very fast and convenient to use the container classes (tables, arrays, queues
&c)
to organize the files you need to transmit.

It is easier to use the REXX ftp API if you do not need all the socket
capabilities.
From the online documentation:

 The REXX FTP API package is contained in the file rxftp.dll. This dynamic
link
library (DLL) must be placed in a
 directory listed in your LIBPATH statement in your CONFIG.SYS file. To use
the
functions in the REXX FTP API
 package, execute this REXX code:

 rc = RxFuncAdd("FtpLoadFuncs","rxFtp","FtpLoadFuncs")
 rc = FtpLoadFuncs()

 To unload the DLL, you should first call the FtpDropFuncs() function, then
exit
all CMD.EXE shells. After exiting all
 the command shells, the DLL will be dropped by OS/2 and can be deleted or
replaced.



>
> >What kind of scheduling mechanism does OS/2 (Warp 4) have?
>
> It doesn't, but there is a choice of Cron-like utilties on Hobbes which will
> do the job.
>

It certainly does! I have used the scheduler in the bonus pack for years with
no
problems. It will allow a wide range of different scheduling options (like
every n
days, third wednesday in every month, or whatever).

It is also possible to do the scheduling in REXX if it is fairly
straightforward.
Your batch control program can be started from the startup folder, and stay in 
the
background like any other daemon.

/* REXX timing loop for daily task */
iScheduled = TIME('S', '22:14:00') /* Convert scheduled time 22:14 to seconds
after midnight */
do forever
  iNow = TIME('s') /* Seconds since midnight */
  iWait = iScheduled - iNow
  if iWait < 0 then iWait = iWait + TIME('S', '23:59:59') /* Not until
tomorrow */

  SAY 'Wait' iWait 'seconds, until' TIME('N', iScheduled, 'S')
  CALL SysSleep iWait
  'START /B myjob.cmd'
end


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Norbionics (1:109/42)

+----------------------------------------------------------------------------+

From: thannymeister@spambegone.yahoo.com                12-Oct-99 10:52:23
  To: All                                               12-Oct-99 16:57:25
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: "Mike Ruskai" <thannymeister@spambegone.yahoo.com>

On Mon, 11 Oct 1999 21:00:13 +0200, Bj rn Vermo wrote:

>Mike Ruskai wrote:
>
>>
>> And finally, no, there is not 32-bit API equivalent.  Apparently IBM didn't
>> think anyone would want to query the amount of physical memory free from a
>> 32-bit-only program.
>>
>
>There is no 32-bit equivalent because the flat 32-bit model does not have
>segments.
>
>It looks like you believe that  DosMemAvail will report something useful
under
>OS/2 2.x. It does not. It will report the size of the largest un-allocated
>memory segment in the system under OS/2 1.x, but under 32-bit OS/2 it is
mostly
>a dummy function as long as the system is not out of virtual memory.
>
>An API to report 'free' physical memory would not make much sense. In a
>multitasking virtual-storage operating system, there should never be any free
>(unused) physical memory if the system is working correctly.

Sorry, but that's complete nonsense.   Dos16MemAvail() is a perfectly useful
function, and it has nothing to do with memory segments.  It reports the
amount of physical memory not allocated to storage in the virtual address
space.

It's a true indication of how much memory you have left to use before
swapping begins.

This simple program demonstrates that fact quite aptly:

#define INCL_DOSPROCESS
#include <os2.h>
#include <stdio.h>
#include <stdlib.h>

#pragma import(Dos16MemAvail, "", "DOSCALLS", 127)
APIRET16 APIENTRY16 Dos16MemAvail(PULONG fMem);

void _Optlink DummyThread(void* args);

int main()
{
    ULONG freeBefore, freeAfter;
    int i;

    Dos16MemAvail(&freeBefore);

    for (i=0; i<3; i++)
        {
        _beginthread(DummyThread, NULL, 8388608, NULL);
        }

    DosSleep(5000);

    Dos16MemAvail(&freeAfter);

    DosSleep(10000);

    printf("\nFree before: %d\n\nFree after: %d\n\nDifference: %d\n",
           freeBefore, freeAfter, (freeBefore-freeAfter));

    return 0;
}

void DummyThread(void* args)
{
    char foobar[8000000];

    foobar[7999999]=1;

    DosSleep(8000);
}

The difference reported will be 24 million bytes plus change - the amount of
the thread stack that was committed implicitly by being used, and some
housekeeping in the runtime.  Increase the loop counter's upper limit, and
you get a different multiple of 8 million (provided you have enough physical
memory - Dos16MemAvail() reports 512K minimum).  When I ran it with a loop of
14 threads, the difference reported was 113840128, which is fourteen times
eight million plus housekeeping change.

I can't imagine why you'd think the function is useless, unless you just
don't use OS/2.  Those of us who use it as our primary operating system have
come to know the results of Dos16MemAvail() well, via one of many system
monitors.


--
 - Mike

Remove 'spambegone' to send e-mail.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TLF (1:109/42)

+----------------------------------------------------------------------------+

From: mads@troest.NEVERMORE.dk                          12-Oct-99 15:18:21
  To: All                                               12-Oct-99 16:57:25
Subj: Making a memory-block unswappable?

From: mads@troest.NEVERMORE.dk (Mads Orbesen Troest)

Hi;

Is there any way to not allow OS/2 to swap out a piece of memory 
allocated by me? Thanks in advance!

   These were the incoherent ramblings of ...
      ... /\/\\ads Orbesen Troest <mads@troest.NEVERMORE.dk>
            [http://www.sprog.auc.dk/~motr96]

(Please remove NEVERMORE from address when replying via email...)

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: SIRIUS Cybernetics (1:109/42)

+----------------------------------------------------------------------------+

From: isj@dont_forget_to_remove_this.i...               11-Oct-99 18:42:00
  To: All                                               12-Oct-99 16:57:25
Subj: Re: VAC++ 4.0 and Dos16MemAvail

Message sender: isj@dont_forget_to_remove_this.image.dk

From: isj@dont_forget_to_remove_this.image.dk (Ivan Skytte Joergensen)

In message <yrvsrybayvarab.fjeb740.pminews@news.online.no> - "Leif-Erik
Larsen" <leifel@online.no> writes:
>
>Do you know if OS/2 has some 
>other API, then, that I can use instead of Dos16MemAvail?

Yes, DosQuerySysInfo()

---snip---
#define INCL_DOSMISC
#include <os2.h>
#include <stdio.h>

void main(void) {
        ULONG ul;
        DosQuerySysInfo(QSV_TOTPHYSMEM,QSV_TOTPHYSMEM,&ul,sizeof(ul));
        printf("Total physical memory: %lu bytes, %lu kilobytes, %lu
megabytes\n", ul,ul/1024,ul/1024/1024);

        DosQuerySysInfo(QSV_TOTAVAILMEM,QSV_TOTAVAILMEM,&ul,sizeof(ul));
        printf("Total available memory (incl swap): %lu bytes, %lu kilobytes,
%lu megabytes\n", ul,ul/1024,ul/1024/1024);

        DosQuerySysInfo(QSV_TOTRESMEM,QSV_TOTRESMEM,&ul,sizeof(ul));
        printf("Total resident memory: %lu bytes, %lu kilobytes, %lu
megabytes\n", ul,ul/1024,ul/1024/1024);

}
---snip---

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Origin Line 1 Goes Here (1:109/42)

+----------------------------------------------------------------------------+

From: smclennan@ibm.net                                 12-Oct-99 22:17:25
  To: All                                               12-Oct-99 21:21:11
Subj: Re: Generic WinOS/2 audio driver revisited

From: smclennan@ibm.net (Scott McLennan)

You need to check the Aureal home page before you buy an A3D card.  There are
warnings that some cards DO NOT work with the reference drivers which were
written for the reference board design --the OS/2 drivers are also written
against the reference design.  I had good luck going to Price Watch
http://www.imart.org/fimart/pricewat.htm
and searching for a generic A3D card manufactured to the Aureal design.  Best
price I found was $19.




In message <3801F744.9D64A149@isomedia.com> - "David T. Johnson"
<djohnson@isomedia.com>Mon, 11 Oct 1999 10:42:13 -0400 writes:
:>
:>
:>
:>I found four Vortex 1 8820-based cards that are available retail
:>at CompUSA stores.  I have also listed the CompUSA SKU# and the retail
:>price.  This is from March, 1999 so it might be out-of-date. 
:>
:>      1. "Magic Wave A3D Audio Accelerator PCI" by I/O Magic. SKU#
:>195304 $39.99
:>
:>      2. "Diamond Sonic Impact S90" by Diamond Multimedia. SKU# 216601
:>$49.99 
:>
:>      3. "HiVal PCI 338 A3D Sound Card" SKU# 192299 $49.99
:>
:>      4. "Montego A3D Xstream" by Turtle Beach. SKU# 192288. $49.99




--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Global Network Services - Remote Access Mail & Ne
(1:109/42)

+----------------------------------------------------------------------------+

From: bvermo@powertech.no                               12-Oct-99 21:11:06
  To: All                                               12-Oct-99 21:21:11
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: =?iso-8859-1?Q?Bj=F8rn?= Vermo <bvermo@powertech.no>

Mike Ruskai wrote:

>
> Sorry, but that's complete nonsense.   Dos16MemAvail() is a perfectly useful
> function, and it has nothing to do with memory segments.  It reports the
> amount of physical memory not allocated to storage in the virtual address
> space.
>

Since there is no "Dos16MemAvail" API, I assumed this was a name for the well
known
DosMemAvail, a 16-bit API to get information which was useful in OS/2 1.x but
no
longer is.

I assume this is some entry point you have stumbled upon, and which for good
reasons
is not publiziced as an API in any version of the Developer Toolkit. Or, to be 
on
the safe side, not in the 1.2 and 1.3, 2.0, 3.0 and 4.0 toolkits I have on
hand to
check, and not in the four-volume 1.2 documentation or Ed Iacobucci's
assembler-based programmer's guide (with the famous preface by Bill Gates)
which
deals with the original 16-bit OS/2 API.

>
> It's a true indication of how much memory you have left to use before
> swapping begins.
>

Quite. My,that might have been useful in a single-tasking operating system.

>
> I can't imagine why you'd think the function is useless, unless you just
> don't use OS/2.  Those of us who use it as our primary operating system have
> come to know the results of Dos16MemAvail() well, via one of many system
> monitors.

Maybe because I have been using OS/2 for PRACTICAL tasks since version 1.0
pre-release? I am not very impressed with programs which tell me "You have x
bytes
free RAM", and I sincerely hope that anybody who use undocumented "features"
are
careful to document that they do so - as a warning to possible users. Those
things
have a habit of coming back to haunt you, to the great shock of every new
generation
of "gee,how clever I am" programmers - which, I suppose, included most of us
at some
time.

And no, I cannot think of one single practical use for such a function in an
application. Obviously, neither could IBM. If I were interested in programs
that use
undocumented "features", I would use Windows. Since I prefer reliability
instead, I
use OS/2.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Norbionics (1:109/42)

+----------------------------------------------------------------------------+

From: charette@writeme.com                              12-Oct-99 18:11:07
  To: All                                               12-Oct-99 23:18:17
Subj: DosQuerySysInfo question

From: Stephane Charette <charette@writeme.com>

I've noticed that DosQuerySysInfo has a call #26,
QSV_NUMPROCESSORS which is documented but not in the
VAC++ v3.0 BSEDOS.H file.  No big deal, I just added
a #ifndef/define/endif to my source file.

However, I've also noticed that there is an
undocumented call #27 which returns "0" on my
particular system.  Anyone know what this call does?
I.e.,

   DosQuerySysInfo(27, ...);

Stephane Charette


Sent via Deja.com http://www.deja.com/
Before you buy.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: StephNET (1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             12-Oct-99 14:12:27
  To: All                                               12-Oct-99 23:18:17
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

On Tue, 12 Oct 1999 10:52:47 -0400 (EDT), Mike Ruskai wrote:

>...Dos16MemAvail() is a perfectly useful function, and it has nothing to do
with memory segments. 
>  It reports the amount of physical memory not allocated to storage in the
virtual address space.
>It's a true indication of how much memory you have left to use before
swapping begins.

I think there's room for both statements. Personally, I have no idea why you
should care how many pages are available unless you're writing a new app for
some kind of dedicated process control type of thing AND you've disabled
swapping. In that case, I guess it's potentially useful.

FWIW, the remark someone made about "pulling it out" of the 32 bit headers is
a bit misleading. There are many APIs that are essentially "deprecated"  in
the 32 bit model, but are still perfectly usable via thunks. These APIs were
NEVER included in the 32 bit header. As mentioned by others, you can get to
these 16 bit-only APIs via pragmas, etc., available in most or all OS/2
compilers.

Anyway, to prevent further confusion, the exact information returned by this
API (and not available through ANY 32 bit API) is:
	MEMMAN=NOSWAP:  <physical pages>-<resident pages>-<swappable pages>-
				   	<discardable pages>-16

Under MEMMAN=SWAP, you're getting back roughly what
DosQuerySysInfo(TOTMEMAVAIL) returns -- roughly speaking, this is <available
physical memory>+<available disk space on the swap drive>. I tend to agree
that this information is not useless, but nearly so.
	-Scott Garfinkle
	OS/2 Change Team Lead Programmer


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             12-Oct-99 14:13:19
  To: All                                               12-Oct-99 23:18:17
Subj: Re: Making a memory-block unswappable?

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

On 12 Oct 1999 15:18:43 GMT, Mads Orbesen Troest wrote:

>Is there any way to not allow OS/2 to swap out a piece of memory 
>allocated by me? Thanks in advance!
Only via a device driver or IFS. See pdd.inf in the DDK for the exact
DevHelps involved.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             12-Oct-99 14:20:03
  To: All                                               12-Oct-99 23:18:17
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

On Tue, 12 Oct 1999 14:12:54 -0500 (CDT), Scott E. Garfinkle wrote:

>Anyway, to prevent further confusion, the exact information returned by this
>API (and not available through ANY 32 bit API) is:
I should have checked more carefully. In BOTH cases, the number reported by
DosMemAvail should be identical to the number reported by
DosQuerySysInfo(TOTAVAILMEM,...). Sorry about the misinformation.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             12-Oct-99 14:48:19
  To: All                                               12-Oct-99 23:18:17
Subj: Re: DosQuerySysInfo question

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

All the DosQuerySysInfo defines are documented. As of the latest toolkit,
the defines are as below. I leave it to others to explicate. 

#define INDX_NUMPROCESSORS              26
#define INDX_MAXHPRMEM                  27
#define INDX_MAXHSHMEM                  28
#define INDX_MAXPROCESSES               29
#define INDX_VIRTUALADDRESSLIMIT        30
#define INDX_INT10ENABLED               31



--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             12-Oct-99 14:57:23
  To: All                                               12-Oct-99 23:18:17
Subj: Re: MuxWait "turn-taking"

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

On Tue, 12 Oct 1999 14:56:21 -0500 (CDT), Scott E. Garfinkle wrote:

>Following is the comment from the source code
[not.  I hate it when I forget to include the promised attachments.]
----------------
from the comments:

 If the DCMW_WAIT_ANY flag is set, then the semaphore is to wait for
 any of the event/mutex semaphores in its list to be posted/released.
 Once any ONE of the semaphores is posted/released, the thread waiting
 on the muxwait can run.  If there is more than one mutex in the list
 and one of the mutex semaphores was the one semaphore that cleared,
 then the thread will only gain ownership of the one mutex that became
 available, NOT all of them.  The semaphores will be checked in the
 order in which they are defined in the muxwait's list.  If the
 DCMW_WAIT_ALL flag is set, then the semaphore is to wait for ALL of
 the event/mutex semaphores in its list to be posted/released.  Once
 ALL of the semaphores have been posted/released, the thread waiting
 on the muxwait can run.



--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             12-Oct-99 14:56:10
  To: All                                               12-Oct-99 23:18:17
Subj: Re: MuxWait "turn-taking"

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

On 12 Oct 1999 13:55:32 GMT, Mads Orbesen Troest wrote:

>My question is now: would this code ever reach the point where Event 3
>could be serviced, or will the MuxWait always trigger on Event 1 in 
>this case, Event 1 - being the first - always being checked before the
>others? Or is there some "turn taking" taking place so that other 
>semaphores are also checked?
Following is the comment from the source code. Essentially, your "fear"is
correct. If this is a particular concern, I strongly suggest that you use
multiple service threads, each waiting on a different event. Shared resources
would then need to be serialized with a mutex sem. Also, if appropriate, I
suggest that you take adavantage of the DCE_AUTORESET (0x1000) flag to
DosCreateEventSem so that your event sem will automatically be reset after
being posted. If you have multiple potential service threads, you should also
use DCE_POSTONE (0x800) so that only one waiter will wake up for a given
event sem post.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: lamikr@cc.jyu.fi                                  12-Oct-99 23:40:25
  To: All                                               12-Oct-99 23:18:17
Subj: Re: Generic WinOS/2 audio driver revisited

From: lamikr <lamikr@cc.jyu.fi>

> > Works fine in OS/2 if I have not installed voice-type.
> > (Voice type seems to hang it just before desktop is appearing,
> > same happened earlier with gravis ultrasound drivers)
>
> I have an Aureal 8820-based PCI sound card and Voicetype works fine.
> This might be a problem with your voicetype install.  I suggest a
> selective uninstall of voicetype and then a selective install.

I am scary to uninstall and install voicetype back because I am afraid
it would backlevel some files compared to fp12.

I was able to use Voicetype in the following way.
First I remmed all voice-type related from config.sys and
instead I run following in os2-prompt:

REM *** START IBM VoiceType  ***
SET SPCH_RUN=E:\VT\SPCH_RUN
SET SPCH_RO=E:\VT\SPCH_RO
SET SPCH_RW=E:\VT\SPCH_RW
SET SPCH_BIN=E:\VT\SPCH_BIN
SET SPCH_PATH=E:\VT\SPCH_RO\LANGS\%L\POOLS
SET SPCH_TRN=E:\VT\SPCH_BSF
SET BEGINLIBPATH=%BEGINLIBPATH%E:\VT\SPCH_BIN;
SET PATH=%PATH%E:\VT\SPCH_BIN;
SET DPATH=%DPATH%E:\VT\SPCH_BIN;
SET HELP=%HELP%E:\VT\SPCH_RO\HELP;
REM *** END IBM VoiceType  ***

After that I was able to run voice-type programs from prompt.
Has WPS hanged for anybody else when Voice-type is installed?

Mika



--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: University of Jyvaskyla, Finland (1:109/42)

+----------------------------------------------------------------------------+

From: seg@NOSPAM-us.ibm.com                             12-Oct-99 14:42:04
  To: All                                               12-Oct-99 23:18:17
Subj: Re: DosSubAllocMem

From: "Scott E. Garfinkle" <seg@NOSPAM-us.ibm.com>

On Tue, 12 Oct 1999 13:10:16 GMT, Jan Danielsson wrote:

>Just call DosSubAllocMem(). A system wide semaphore is created by
>DosSubSetMem() if you specify DOSSUB_SERIALIZE, the semaphore is
>automatically requested then you call DosSub(Alloc/Free)Mem().
First of all, it is NOT a system-wide semaphore.  There is a unique semaphore
created for each suballoc pool. Secondly, this is only done if the
DOSSUB_SERIALIZE
bit is set on call to DosSubAllocMem. I think this is what you meant, but I
want to make
sure there is no confusion on this subject.

>>Just to be sure I used mutex semaphores to serialize every access
>>to DosSubAllocMem(), DosSubFreeMem() and DosSubUnsetMem()... is that right
or is an overkill?
>Not needed, but good thinking.
Actually, it is critical if you DON'T specifiy the SERIALIZE bit. If, as I
strongly recommend, you DO set it,
this is definitely overkill.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: NCSD OS/2 Service (1:109/42)

+----------------------------------------------------------------------------+

From: thannymeister@spambegone.yahoo.com                12-Oct-99 17:12:14
  To: All                                               12-Oct-99 23:18:17
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: "Mike Ruskai" <thannymeister@spambegone.yahoo.com>

On Tue, 12 Oct 1999 14:20:07 -0500 (CDT), Scott E. Garfinkle wrote:

>On Tue, 12 Oct 1999 14:12:54 -0500 (CDT), Scott E. Garfinkle wrote:
>
>>Anyway, to prevent further confusion, the exact information returned by this
>>API (and not available through ANY 32 bit API) is:
>I should have checked more carefully. In BOTH cases, the number reported by
>DosMemAvail should be identical to the number reported by
>DosQuerySysInfo(TOTAVAILMEM,...). Sorry about the misinformation.

You're still giving it ;)

Run the program in my previous post, and you'll see that you're very confused
about something.


--
 - Mike

Remove 'spambegone' to send e-mail.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TLF (1:109/42)

+----------------------------------------------------------------------------+

From: jSePnAsMaBjOcTe@w271zrz.zrz.tu-b...               12-Oct-99 21:09:04
  To: All                                               12-Oct-99 23:18:17
Subj: Re: Session Manager, what the heck is it doing?

Message sender: jSePnAsMaBjOcTe@w271zrz.zrz.tu-berlin.de

From: jSePnAsMaBjOcTe@w271zrz.zrz.tu-berlin.de (Jens Glathe)

On Mon, 11 Oct 1999 14:57:20, Dave Blaschke <blaschke@us.ibm.com> 
wrote:

> Well, you could try calling DosSelectSession immediately prior to calling
> DosStartSession, but there is no guarantee that somebody else will become
the
> foreground session before you DosStartSession call completes...

Nasty problem. Thought a while about it, but there seems to be no 
system-semaphore which could be used to grant an unpreempted execution
of the process.

Regards,

Jens.

Jens Glathe <glathe@gmx.de>

-- 
Never trust a programmer who is carrying a screwdriver.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Technical University Berlin, Germany (1:109/42)

+----------------------------------------------------------------------------+

From: thannymeister@spambegone.yahoo.com                12-Oct-99 17:11:21
  To: All                                               12-Oct-99 23:18:17
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: "Mike Ruskai" <thannymeister@spambegone.yahoo.com>

On Tue, 12 Oct 1999 14:12:54 -0500 (CDT), Scott E. Garfinkle wrote:

>On Tue, 12 Oct 1999 10:52:47 -0400 (EDT), Mike Ruskai wrote:
>
>>...Dos16MemAvail() is a perfectly useful function, and it has nothing to do
with memory segments. 
>>  It reports the amount of physical memory not allocated to storage in the
virtual address space.
>>It's a true indication of how much memory you have left to use before
swapping begins.
>
>I think there's room for both statements. Personally, I have no idea why you
>should care how many pages are available unless you're writing a new app for
>some kind of dedicated process control type of thing AND you've disabled
>swapping. In that case, I guess it's potentially useful.
>
>FWIW, the remark someone made about "pulling it out" of the 32 bit headers is
>a bit misleading. There are many APIs that are essentially "deprecated"  in
>the 32 bit model, but are still perfectly usable via thunks. These APIs were
>NEVER included in the 32 bit header. As mentioned by others, you can get to
>these 16 bit-only APIs via pragmas, etc., available in most or all OS/2
>compilers.
>
>Anyway, to prevent further confusion, the exact information returned by this
>API (and not available through ANY 32 bit API) is:
>	MEMMAN=NOSWAP:  <physical pages>-<resident pages>-<swappable pages>-
>				   	<discardable pages>-16
>
>Under MEMMAN=SWAP, you're getting back roughly what
>DosQuerySysInfo(TOTMEMAVAIL) returns -- roughly speaking, this is <available
>physical memory>+<available disk space on the swap drive>. I tend to agree
>that this information is not useless, but nearly so.

This last part simply isn't accurate.  What you're going to get back is
exactly the same as without swapping.  The number will be equal to the result
of QSV_TOTAVAILMEM less free space on the swap drive and unused space in the
swapper file.  

Run this one:

#define INCL_DOSPROCESS
#define INCL_DOSFILEMGR
#define INCL_DOSMISC
#include <os2.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <memory.h>

#pragma import(Dos16MemAvail, "", "DOSCALLS", 127)
APIRET16 APIENTRY16 Dos16MemAvail(PULONG fMem);

int main(int argc, char *argv[])
{
    ULONG pMem, vMem, dNum, sdFree;
    char dLetter;
    int i;
    FSALLOCATE fsa;

    if (argc!=2)
        {
        printf("\nSpecify swap drive as a parameter.\n");
        return 1;
        }

    dLetter=toupper(argv[1][0]);

    dNum=(ULONG)(dLetter-64);

    Dos16MemAvail(&pMem);
    DosQuerySysInfo(QSV_TOTAVAILMEM, QSV_TOTAVAILMEM,
                    &vMem, sizeof(vMem));

    memset(&fsa, 0, sizeof(fsa));

    DosQueryFSInfo(dNum, FSIL_ALLOC, &fsa, sizeof(fsa));

    sdFree=fsa.cbSector*fsa.cSectorUnit*fsa.cUnitAvail;

    printf("\nFree virtual memory: %d\n\nFree physical memory: %d\n",
           vMem, pMem);
    printf("\nFree swap space: %d\n", sdFree);
    printf("\nVirtual minus swap space: %d\n", (vMem-sdFree));

    return 0;
}


The last number will differ from free physical memory by the amount of space
in your swapper file that isn't being used.  


--
 - Mike

Remove 'spambegone' to send e-mail.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TLF (1:109/42)

+----------------------------------------------------------------------------+

From: tony@iniki.dod.hawaii.gov                         13-Oct-99 01:20:13
  To: All                                               13-Oct-99 03:37:02
Subj: SO_REUSEADDR doesn't work

From: Antonio Querubin <tony@iniki.dod.hawaii.gov>

Looking for some help in getting a C program to bind to a socket with the
SO_REUSEADDR option.  The following code fragment works under several UNIX
systems and Windows with GCC as the compiler.

  optint = TRUE;
  setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *) &optint, sizeof(optint));

  stLocal.sin_family = AF_INET;
  stLocal.sin_addr.s_addr = htonl(INADDR_ANY);
  stLocal.sin_port = htons(atoi(argv[2]));
  bind(s, (struct sockaddr *) &stLocal, sizeof(stLocal));

Multiple instances of the program will run and bind to the same address
and/or port number under UNIX and Windows (this is a multicast IP
program).  Under OS/2 using emx-gcc (0.9d) as the compiler, the program
compiles and a single instance will startup, bind to the socket, and run
properly without problems.

However, subsequent concurrent instances of the program will fail at the
bind step with a "Address already in use error".  The error will occur as
long as either the address OR the port is already in use.  The preceding
setsockopt() returns no error.  So I'm somewhat confused as to why the
setsockopt() succeeds while the bind() fails on subsequent instances.
Could this be a bug in emx or is it perhaps a problem in OS/2?  The
problem isn't super critical since it's not likely a user will need to
monitor the same multicast address or port through more than one window
session.  However, there may be reason to monitor a particular multicast
group transmitted on different addresses but going to the same port.  In
this case the program wont work like its UNIX and Windows versions.

Complete source (it's really small) to the program in question can be
found at ftp://ftp.lava.net/users/tony/multicast/mcrecv.c if anyone is
willing to look at it.

-- 
Antonio Querubin

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Origin Line 1 Goes Here (1:109/42)

+----------------------------------------------------------------------------+

From: Brian@webone.com.au                               13-Oct-99 16:47:18
  To: All                                               13-Oct-99 06:16:02
Subj: Re: HOWTO: chat scripts?

From: Brian@webone.com.au

JASMINE HAS to be the best way to do this.

Look for  jsm280r.zip on Hobbes etc.

Written in Java it is quick and you can FTP toa server or copy to a disk.

Brian


<380335B2.EDB694B@powertech.no>, =?iso-8859-1?Q?Bj=F8rn?= Vermo
<bvermo@powertech.no> writes:
>Paul Ratcliffe wrote:
>
>> On Mon, 11 Oct 1999 20:27:02 GMT, Marco Shaw <marco.shaw@nbtel.nb.ca>
wrote:
>>
>> >I'm new to OS/2 admin.  I need to develop a script that gets files newer
>> >than x date, and FTPs all these files to an FTP server, and this must be
>> >done every 4 hours.
>>
>> You need REXX and a library package called RxSock. This all comes with Warp 
4.
>>
>
>It may also be useful to run SWITCHRX.CMD to change to the new Object REXX.
It has
>some new functions which are very useful, such as access to semaphores. It is 
also
>very fast and convenient to use the container classes (tables, arrays, queues 
&c)
>to organize the files you need to transmit.
>
>It is easier to use the REXX ftp API if you do not need all the socket
>capabilities.
>From the online documentation:
>
> The REXX FTP API package is contained in the file rxftp.dll. This dynamic
link
>library (DLL) must be placed in a
> directory listed in your LIBPATH statement in your CONFIG.SYS file. To use
the
>functions in the REXX FTP API
> package, execute this REXX code:
>
> rc = RxFuncAdd("FtpLoadFuncs","rxFtp","FtpLoadFuncs")
> rc = FtpLoadFuncs()
>
> To unload the DLL, you should first call the FtpDropFuncs() function, then
exit
>all CMD.EXE shells. After exiting all
> the command shells, the DLL will be dropped by OS/2 and can be deleted or
>replaced.
>
>
>
>>
>> >What kind of scheduling mechanism does OS/2 (Warp 4) have?
>>
>> It doesn't, but there is a choice of Cron-like utilties on Hobbes which
will
>> do the job.
>>
>
>It certainly does! I have used the scheduler in the bonus pack for years with 
no
>problems. It will allow a wide range of different scheduling options (like
every n
>days, third wednesday in every month, or whatever).
>
>It is also possible to do the scheduling in REXX if it is fairly
straightforward.
>Your batch control program can be started from the startup folder, and stay
in the
>background like any other daemon.
>
>/* REXX timing loop for daily task */
>iScheduled = TIME('S', '22:14:00') /* Convert scheduled time 22:14 to seconds
>after midnight */
>do forever
>  iNow = TIME('s') /* Seconds since midnight */
>  iWait = iScheduled - iNow
>  if iWait < 0 then iWait = iWait + TIME('S', '23:59:59') /* Not until
tomorrow */
>
>  SAY 'Wait' iWait 'seconds, until' TIME('N', iScheduled, 'S')
>  CALL SysSleep iWait
>  'START /B myjob.cmd'
>end
>
>

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Web One Internet http://webone.com.au (1:109/42)

+----------------------------------------------------------------------------+

From: @tin.it                                           12-Oct-99 20:28:11
  To: All                                               13-Oct-99 06:16:02
Subj: Re: DosSubAllocMem

From: @tin.it (Alessandro Cantatore)

In article <wnaqnavryffbasnyhaznvygryvnpbz.fji80a0.pminews@news1.telia.com>,
"Jan Danielsson" <Jan.Danielsson@falun.mail.telia.com> wrote:

 >>The documentation says that the flag DOSSUB_SERIALIZE in DosSubSetMem()
 >>is for shared memory pools, but there is nothing about accessing to
 >>the same heap from different threads of the same process...
 >
 >Just call DosSubAllocMem(). A system wide semaphore is created by
 >DosSubSetMem() if you specify DOSSUB_SERIALIZE, the semaphore is
 >automatically requested then you call DosSub(Alloc/Free)Mem().

yes I know that... anyway since my program is a PM extension which
is loaded at boot time the best solution is to use a semaphore for
each process so, in case the program is run on an smp machine,
multiple processes cocurrently without waiting for a shared
semaphore

 >>Just to be sure I used mutex semaphores to serialize every access
 >
 >Not needed, but good thinking.

thank you for the reply... I just wanted a sort of confirmation...

-- 
bye
Alessandro Cantatore
email reply to: alexcant at: tin.it
http://acsoft.ghostbbs.cx

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TIN (1:109/42)

+----------------------------------------------------------------------------+

From: tim.timmins@bcs.org.uk                            13-Oct-99 11:44:17
  To: All                                               13-Oct-99 10:22:20
Subj: Re: HOWTO: chat scripts?

From: Tim Timmins <tim.timmins@bcs.org.uk>

 ftp://hobbes.nmsu.edu/pub/os2/apps/internet/ftp/client/jsm285r.zip

Brian@webone.com.au wrote:

> JASMINE HAS to be the best way to do this.
>
> Look for  jsm280r.zip on Hobbes etc.
>
> Written in Java it is quick and you can FTP toa server or copy to a disk.
>
> Brian
>
> <380335B2.EDB694B@powertech.no>, =?iso-8859-1?Q?Bj=F8rn?= Vermo
<bvermo@powertech.no> writes:
> >Paul Ratcliffe wrote:
> >
> >> On Mon, 11 Oct 1999 20:27:02 GMT, Marco Shaw <marco.shaw@nbtel.nb.ca>
wrote:
> >>
> >> >I'm new to OS/2 admin.  I need to develop a script that gets files newer
> >> >than x date, and FTPs all these files to an FTP server, and this must be
> >> >done every 4 hours.
> >>
> >> You need REXX and a library package called RxSock. This all comes with
Warp 4.
> >>
> >
> >It may also be useful to run SWITCHRX.CMD to change to the new Object REXX. 
It has
> >some new functions which are very useful, such as access to semaphores. It
is also
> >very fast and convenient to use the container classes (tables, arrays,
queues &c)
> >to organize the files you need to transmit.
> >
> >It is easier to use the REXX ftp API if you do not need all the socket
> >capabilities.
> >From the online documentation:
> >
> > The REXX FTP API package is contained in the file rxftp.dll. This dynamic
link
> >library (DLL) must be placed in a
> > directory listed in your LIBPATH statement in your CONFIG.SYS file. To use 
the
> >functions in the REXX FTP API
> > package, execute this REXX code:
> >
> > rc = RxFuncAdd("FtpLoadFuncs","rxFtp","FtpLoadFuncs")
> > rc = FtpLoadFuncs()
> >
> > To unload the DLL, you should first call the FtpDropFuncs() function, then 
exit
> >all CMD.EXE shells. After exiting all
> > the command shells, the DLL will be dropped by OS/2 and can be deleted or
> >replaced.
> >
> >
> >
> >>
> >> >What kind of scheduling mechanism does OS/2 (Warp 4) have?
> >>
> >> It doesn't, but there is a choice of Cron-like utilties on Hobbes which
will
> >> do the job.
> >>
> >
> >It certainly does! I have used the scheduler in the bonus pack for years
with no
> >problems. It will allow a wide range of different scheduling options (like
every n
> >days, third wednesday in every month, or whatever).
> >
> >It is also possible to do the scheduling in REXX if it is fairly
straightforward.
> >Your batch control program can be started from the startup folder, and stay 
in the
> >background like any other daemon.
> >
> >/* REXX timing loop for daily task */
> >iScheduled = TIME('S', '22:14:00') /* Convert scheduled time 22:14 to
seconds
> >after midnight */
> >do forever
> >  iNow = TIME('s') /* Seconds since midnight */
> >  iWait = iScheduled - iNow
> >  if iWait < 0 then iWait = iWait + TIME('S', '23:59:59') /* Not until
tomorrow */
> >
> >  SAY 'Wait' iWait 'seconds, until' TIME('N', iScheduled, 'S')
> >  CALL SysSleep iWait
> >  'START /B myjob.cmd'
> >end
> >
> >

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Origin Line 1 Goes Here (1:109/42)

+----------------------------------------------------------------------------+

From: thannymeister@spambegone.yahoo.com                13-Oct-99 06:23:13
  To: All                                               13-Oct-99 10:22:20
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: "Mike Ruskai" <thannymeister@spambegone.yahoo.com>

On Tue, 12 Oct 1999 21:11:12 +0200, Bj rn Vermo wrote:

>Mike Ruskai wrote:
>
>>
>> Sorry, but that's complete nonsense.   Dos16MemAvail() is a perfectly
useful
>> function, and it has nothing to do with memory segments.  It reports the
>> amount of physical memory not allocated to storage in the virtual address
>> space.
>>
>
>Since there is no "Dos16MemAvail" API, I assumed this was a name for the well 
known
>DosMemAvail, a 16-bit API to get information which was useful in OS/2 1.x but 
no
>longer is.

Dos16MemAvail() is the common calling convention for a 16-bit OS/2 API call
from a 32-bit program.

It executes a function which returns accurate and useful information, which I
demonstrated in the program included int he very message you're responding
to; a program you have obviously neglected to compile and run, given the
nonsense that appears above, and follows.

>I assume this is some entry point you have stumbled upon, and which for good
reasons
>is not publiziced as an API in any version of the Developer Toolkit. Or, to
be on
>the safe side, not in the 1.2 and 1.3, 2.0, 3.0 and 4.0 toolkits I have on
hand to
>check, and not in the four-volume 1.2 documentation or Ed Iacobucci's
>assembler-based programmer's guide (with the famous preface by Bill Gates)
which
>deals with the original 16-bit OS/2 API.

It's not a big mystery.  It's merely an undocumented API call.  One that's
used quite extensively in the OS/2 world.  That you've not heard of it, and
are completely ignorant of its usefulness, is your loss.

>> It's a true indication of how much memory you have left to use before
>> swapping begins.
>>
>
>Quite. My,that might have been useful in a single-tasking operating system.

Fortunately for the rest of the world, your lack of imagination as to the
usefulness of the information has no bearing on the fact that it is useful.

>> I can't imagine why you'd think the function is useless, unless you just
>> don't use OS/2.  Those of us who use it as our primary operating system
have
>> come to know the results of Dos16MemAvail() well, via one of many system
>> monitors.
>
>Maybe because I have been using OS/2 for PRACTICAL tasks since version 1.0
>pre-release? I am not very impressed with programs which tell me "You have x
bytes
>free RAM", and I sincerely hope that anybody who use undocumented "features"
are
>careful to document that they do so - as a warning to possible users. Those
things
>have a habit of coming back to haunt you, to the great shock of every new
generation
>of "gee,how clever I am" programmers - which, I suppose, included most of us
at some
>time.
>
>And no, I cannot think of one single practical use for such a function in an
>application. Obviously, neither could IBM. If I were interested in programs
that use
>undocumented "features", I would use Windows. Since I prefer reliability
instead, I
>use OS/2.

You're lack of imagination and creativity is unfortunate.  The rest of us
will use this undocumented API regardless, even some who don't know that it's
being used.


--
 - Mike

Remove 'spambegone' to send e-mail.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TLF (1:109/42)

+----------------------------------------------------------------------------+

From: leifel@online.no                                  13-Oct-99 13:01:21
  To: All                                               13-Oct-99 10:22:20
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: "Leif-Erik Larsen" <leifel@online.no>

On Tue, 12 Oct 1999 14:12:54 -0500 (CDT), Scott E. Garfinkle wrote:

>On Tue, 12 Oct 1999 10:52:47 -0400 (EDT), Mike Ruskai wrote:
>
>>...Dos16MemAvail() is a perfectly useful function, and it has nothing to do
with memory segments. 
>>  It reports the amount of physical memory not allocated to storage in the
virtual address space.
>>It's a true indication of how much memory you have left to use before
swapping begins.
>
>I think there's room for both statements. Personally, I have no idea why you
>should care how many pages are available unless you're writing a new app for
>some kind of dedicated process control type of thing AND you've disabled
>swapping. In that case, I guess it's potentially useful.

I use it to monitor the current "free physical RAM", in the
Larsen Commander. I think there are a lot of users, including my
self, that appreciate this feature. If not necessarily very
practical, it feels OK to know my computer an my programs and
how much physical RAM the various applications actually allocates
when they start up. In fact, this feature is even very useful
when debugging and testing programs. You can easily see if, and when,
the program eventually start eating a lot of RAM, by following
the physical memory monitor.

>FWIW, the remark someone made about "pulling it out" of the 32 bit headers is
>a bit misleading. There are many APIs that are essentially "deprecated"  in
>the 32 bit model, but are still perfectly usable via thunks. These APIs were
>NEVER included in the 32 bit header. As mentioned by others, you can get to
>these 16 bit-only APIs via pragmas, etc., available in most or all OS/2
>compilers.

Maybe, but I am still not able to successfully call the Dos16MemAvail API
from VisualAge C++ 4.0. :-(

I have tried (as far as I know) all possible solutions, including 
dynamic loading of the DLL. - My program always crash with a "bang" when
trying to call the API.

However, calling it from VAC++ 3.0, Borland C++ 2.0 and any other C++ compiler
is no problem. The problem is that I want to move to VAC++ 4.0 because of 
a _huge_ number of new and improved features over any other OS/2 C++
compiler that I know about. Still, I want to keep the physical RAM monitoring
feature in my programs.

>Anyway, to prevent further confusion, the exact information returned by this
>API (and not available through ANY 32 bit API) is:
>	MEMMAN=NOSWAP:  <physical pages>-<resident pages>-<swappable pages>-
>				   	<discardable pages>-16
>
>Under MEMMAN=SWAP, you're getting back roughly what
>DosQuerySysInfo(TOTMEMAVAIL) returns -- roughly speaking, this is <available
>physical memory>+<available disk space on the swap drive>. I tend to agree
>that this information is not useless, but nearly so.
>	-Scott Garfinkle
>	OS/2 Change Team Lead Programmer
>
>

If the SWAPPATH is on a drive with _lots_ of free space then the 
information returned by DosQuerySysInfo(TOTMEMAVAIL) isn't even 
roughly the same as returned by Dos16MemAvail(). In practical
situations (to _me_, and _my_ needs ;-) I find the information
returned by DosQuerySysInfo(TOTMEMAVAIL) almost useless.
Anyway, the Larsen Commander monitors this value as well.

Best regards
Leif-Erik Larsen




--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Telenor Online Public Access (1:109/42)

+----------------------------------------------------------------------------+

From: robmv@ibm.net                                     13-Oct-99 10:26:05
  To: All                                               13-Oct-99 14:36:18
Subj: dynamic loadable driver (OS/2)?????

From: Robert Marcano <robmv@ibm.net>

Este es un mensaje de varias partes en formato MIME.
--------------2AACE9BF0B0E8D1C7B083194
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

I am making a device driver with VisualAge C++ 4.0 for OS/2, and
looking on the online help I found the term: "dynamic loadable driver",

that use the extension "dld" (Sounds like a good thing, but this is the

first time that I hear about it). But no more information than that,
Can somebody help me and tell me how it works?, how can I build one or
where to find information about that?

TIA

--------------2AACE9BF0B0E8D1C7B083194
Content-Type: text/x-vcard; charset=us-ascii;
 name="robmv.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Tarjeta para Robert Marcano
Content-Disposition: attachment;
 filename="robmv.vcf"

begin:vcard 
n:Marcano Varela;Robert Jes£s
x-mozilla-html:TRUE
org:Programaci¢n Mecanizada C.A. (PROMCA)
adr:;;CCCT, 1ra Etapa, piso 2, oficina 205,
Chuao;Caracas;Miranda;1060;Venezuela
version:2.1
email;internet:robmv@ibm.net
title:System Architect
tel;fax:(+582) 9591729
tel;home:(+5816) 6218891
tel;work:(+582)9 591665
note;quoted-printable:Certified VisualAge for Smalltalk Associate
Developer=0D=0ACertified VisualAge for C++ Associate Developer=0D=0ACertified
OS/2 Warp Engineer
x-mozilla-cpt:;0
fn:Robert Jes£s Marcano Varela
end:vcard

--------------2AACE9BF0B0E8D1C7B083194--

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: =?iso-8859-1?Q?Programaci=F3n?= Mecanizada C.A. (
(1:109/42)

+----------------------------------------------------------------------------+

From: jasper_de_keijzer@nl.compuware.com                13-Oct-99 16:21:16
  To: All                                               13-Oct-99 14:36:18
Subj: WINDOWS Metafiles

From: Jasper de Keijzer <jasper_de_keijzer@nl.compuware.com>

Dear developer,

Currently I'm investigating a filter to display Windows metafiles on
other platforms. But unfortunatly at some point the picture looks
different on OS/2 & MOTIF than on WIndows. 

When I load metafiles which contain a kind of gradient filled polygons
the gradient filling cannot be found back in the metafile records. Even
so is the case with clipping. 

An example:
When I load the tennis.wmf which comes with office 97, the strings of
the racket are displayed not only in the racket but also partially
outside the racket. If I load the picture in WORD it looks fine.
If I process the records in a windows program the strings get also
outside the racket.

It seems to me that somehow certain metafile records needs to be treated
with care, but how?

Does anyone here have experience with these kind of issues and can give
me a hint?

Any help is appreciated,

Jasper de Keijzer.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Compuware Uniface Amsterdam (1:109/42)

+----------------------------------------------------------------------------+

From: djohnson@isomedia.com                             13-Oct-99 10:04:00
  To: All                                               13-Oct-99 16:43:24
Subj: Re: Generic WinOS/2 audio driver revisited

From: "David T. Johnson" <djohnson@isomedia.com>


lamikr wrote:
> 
> 
> I am scary to uninstall and install voicetype back because I am afraid
> it would backlevel some files compared to fp12.
> 
The FP12 updates multimedia files but I don't think it updates voicetype
files.  BUT...if it did, you can still uninstall voicetype and reinstall
voicetype AND maintain service level with fixtool 1.41.  The fixtool
program will not update a file if it does not need to.  You do a
selective uninstall of voicetype and reboot.  Then do a selective
install of voicetype.  Reboot.  Then, start the fixtool program from an
OS/2 prompt.  When the fixtool program starts, it examines your
installation to determine if serviceable files exist.  If voicetype
files are serviceable, it will tell you to put in only those fixpack
disks that are required to service them.  Then, you reboot and you will
have a properly installed voicetype and service level fixpack 12.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Posted via Supernews, http://www.supernews.com (1:109/42)

+----------------------------------------------------------------------------+

From: djohnson@isomedia.com                             13-Oct-99 10:14:16
  To: All                                               13-Oct-99 16:43:24
Subj: Re: Generic WinOS/2 audio driver revisited

From: "David T. Johnson" <djohnson@isomedia.com>


Scott McLennan wrote:
> 
> You need to check the Aureal home page before you buy an A3D card.  There
are
> warnings that some cards DO NOT work with the reference drivers which were
> written for the reference board design

As far as I know, all four of the cards that I listed will work with the
OS/2 drivers.  And most generic cards as well.  Actually, I have never
heard of an 8820-based card that would NOT work with the OS/2 drivers. 
The only problem people seem to have with the Aureal 8820 OS/2 drivers
is they appear to install properly and then there is no sound.  This is
usually because their previous sound drivers are still installed and
preventing the Aureal drivers from working.  My meat-axe approach is to
delete the MMOS2 directory, do a selective reinstall of multimedia
services, and THEN reinstall the Aureal drivers.  Then apply the
appropriate fixpack to update the service level of multimedia.  This
always works for me.  If you are really clever, you can fool around with
the MMOS2 settings and so forth to remove the old drivers but...I favor
the deletion approach.  No worries.  (Note:  the fixpack service tool
will only update the multimedia files if that is all that is required,
not the entire OS/2 installation.)  I think the warnings on the web page
apply primarily to the Windows drivers. 



 --the OS/2 drivers are also written
> against the reference design.  I had good luck going to Price Watch
> http://www.imart.org/fimart/pricewat.htm
> and searching for a generic A3D card manufactured to the Aureal design. 
Best
> price I found was $19.
> 
> In message <3801F744.9D64A149@isomedia.com> - "David T. Johnson"
> <djohnson@isomedia.com>Mon, 11 Oct 1999 10:42:13 -0400 writes:
> :>
> :>
> :>
> :>I found four Vortex 1 8820-based cards that are available retail
> :>at CompUSA stores.  I have also listed the CompUSA SKU# and the retail
> :>price.  This is from March, 1999 so it might be out-of-date.
> :>
> :>      1. "Magic Wave A3D Audio Accelerator PCI" by I/O Magic. SKU#
> :>195304 $39.99
> :>
> :>      2. "Diamond Sonic Impact S90" by Diamond Multimedia. SKU# 216601
> :>$49.99
> :>
> :>      3. "HiVal PCI 338 A3D Sound Card" SKU# 192299 $49.99
> :>
> :>      4. "Montego A3D Xstream" by Turtle Beach. SKU# 192288. $49.99

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Posted via Supernews, http://www.supernews.com (1:109/42)

+----------------------------------------------------------------------------+

From: mamodeo@stny.rr.com                               13-Oct-99 14:25:14
  To: All                                               13-Oct-99 16:43:25
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: Marty <mamodeo@stny.rr.com>

Bj›rn Vermo wrote:
> 
> Maybe because I have been using OS/2 for PRACTICAL tasks since version 1.0
> pre-release? I am not very impressed with programs which tell me "You have x 
bytes
> free RAM", and I sincerely hope that anybody who use undocumented "features" 
are
> careful to document that they do so - as a warning to possible users. Those
things
> have a habit of coming back to haunt you, to the great shock of every new
generation
> of "gee,how clever I am" programmers - which, I suppose, included most of us 
at some
> time.
> 
> And no, I cannot think of one single practical use for such a function in an
> application. Obviously, neither could IBM. If I were interested in programs
that use
> undocumented "features", I would use Windows. Since I prefer reliability
instead, I
> use OS/2.

I can see one possible legitimate use.  Suppose you wish to have a
program optimized for speed.  This program is very memory hungry and the
more it can allocate, the better it will perform (many graphical and
multimedia applications can be this way).  However, if it allocates
beyond the physical RAM, the performance takes a nosedive and allocating
more memory does more harm then good.  It would have to know how much
physical RAM you have free to do such a thing.

- Marty

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: IBM Global Services North -- Burlington, Vermont,
(1:109/42)

+----------------------------------------------------------------------------+

From: volkov_andrew@hotmail.com                         13-Oct-99 17:33:11
  To: All                                               13-Oct-99 16:43:25
Subj: Access to floppy disks in c programs

From: "Andrew Volkov" <volkov_andrew@hotmail.com>

Hi,

I have disk: 2 head, 80 tracks, 16 sectros and sector size if 256 bytes.

How i can access to this disk in my c/c++  program?
I use DosDevIOCtl DSK_READTRACK function but it returns SECTOR_NOT_FOUND
error... :(

Anybody can help me???

Best regards, Andrew

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: MTU-Inform ISP (1:109/42)

+----------------------------------------------------------------------------+

From: jgbc@mail1.stofanet.dk                            13-Oct-99 20:33:22
  To: All                                               13-Oct-99 16:43:25
Subj: _wpDrop and _wpCnrSetEmphasis

From: Jens Borch Christiansen <jgbc@mail1.stofanet.dk>

I am in the process of making a new icon class (i.e. sub classing the
wpicon class). My code is nearly finished but I have a problem with
setting the emphasis of the objects being dropped on the icon object.
My program is similar to MMIcon (if anybody remembers that program) -
i.e. if you drop any object (except an icon object) on an icon file,
then the icon of that object will change to the icon of the file. The
problem is, that I can't seem to set the emphasis of the dropped
objects right after the drop operation has ended. I get a strange
looking square white box without any corners around the dropped objects.
My code for setting emphasis is as follows:

SOM_Scope MRESULT  SOMLINK ico_wpDrop(DDIcon *somSelf, 
                                      HWND
                                      hwndCnr,                   
                                      PDRAGINFO pdrgInfo,
                                      PDRAGITEM
                                      pdrgItem)      
{                                                                              
                                          
   .
   .
   .
   .
                                                                               
         
Assign a new icon to the dropped object using _wpSetup. If the object
is a folder and the "usOperation" is equal to "DO_COPY", then set
the animation icon.

   .
   .
   .
   .


   success =_wpCnrSetEmphasis(OBJECT_FROM_PREC(pdrgItem->ulItemID),
                              CRA_SOURCE | CRA_SELECTED,
                              FALSE);                             
   _Pmpf(("_wpCnrSetEmphasis returns : %d", success));
   // Note: _wpCnrSetEmphasis always returns 1
   return (parent_wpDrop(somSelf,hwndCnr,pdrgInfo,pdrgItem));
}                                                                              
                                          
                                                                               
                                          
Note: I have tried setting all the different kinds of emphasis that OS/2
provides with _wpCnrSetEmphasis

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Customer at Telia Danmark (http://www.telia.dk/) (1:109/42)

+----------------------------------------------------------------------------+

From: abuse@orac.clara.co.uk                            13-Oct-99 19:42:18
  To: All                                               13-Oct-99 16:43:25
Subj: Re: MuxWait "turn-taking"

From: abuse@orac.clara.co.uk (Paul Ratcliffe)

On 12 Oct 1999 13:55:32 GMT, Mads Orbesen Troest <mads@troest.NEVERMORE.dk>
wrote:

>After making my thread wait on the MuxWait again, I reset the 
>processed Event 1.

From another thread?

>My question is now: would this code ever reach the point where Event 3
>could be serviced, or will the MuxWait always trigger on Event 1 in 
>this case, Event 1 - being the first - always being checked before the
>others? Or is there some "turn taking" taking place so that other 
>semaphores are also checked?

Don't know. It should be easy enough to write a test program to confirm it
though.

>Even if the MuxWait is posted no matter which Event was triggered, I 
>use the user-parameter in the service routine to find out which Event 
>triggered, talking corresponding action. But as indicated, I am 
>worried that this sceme prevents any but the first Event to be 
>serviced.

Can you not just query all the event sems every time your muxwait is posted to
see which of them needs servicing? Once they are all serviced, then you go
round the loop and wait for the muxwait again.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: The Floppy BBS (1:109/42)

+----------------------------------------------------------------------------+

From: htjxym@eggman-network.hypermart.net               14-Oct-99 02:01:07
  To: All                                               14-Oct-99 03:59:07
Subj: Stop others from using your computer!!!  9879

From: htjxym@eggman-network.hypermart.net

That's right....stop others from using your computer now!
Desktop Blocker will password protect your Windows system so that nobody
except for you will be able to access your desktop.
Keep that co-worker off your computer, keep the babysitter off the Internet,
and keep the wife from discovering your "collection"(you shouldn't be looking
at that stuff anyway).
Desktop Blocker is a FREE download at: http://www.eggman.net/desktopblocker
Take a couple seconds to view our SCREENSHOT:
http://www.eggman.net/software/dbss.htm
Lock-up your desktop today!!!
-EggMan Network

wrzifwfsirixihweytvmpdczov

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: @Home Network (1:109/42)

+----------------------------------------------------------------------------+

From: g.pfeiffer@asc.de                                 14-Oct-99 09:44:12
  To: All                                               14-Oct-99 10:29:21
Subj: Problems with file handling

From: Gerald Pfeiffer <g.pfeiffer@asc.de>

Hello,

we have different problems concerning the file handling.

A description of the problems follows (I cannot deliver any
small code because the problems occur in a huge system
and do only occur from time to time.

Thanks in advance for any help or suggestions that may help us.
Every information concerning the internal architecture of the
OS/2 filehandling and the HPFS is welcome too.

Best regards

Gerald Pfeiffer

Conditions:
- The Application is running on Pentium 133 - 166 MHz
  with SCSI-harddisk.
- OS/2 Warp Connect Version 3.0 with Fixpack 32
- When the application is running, no other software (except
  the operating system) is running.
- IBM VisualAge 3.0 Fixpack 8 is used for development
- used Filesystem is HPFS
- Multithread-process (60-80 Threads) keeping an amount of
  about 2500 files open
- Most files are opened with exclusive read and write access.
- cache is enabled
- a large number of file-access (read and write)
- At different timepoints and situations a number of ca. 150
  files is closed and a short time later reopend again. After
  this there is an intensive use of read and write for these
  files.
- In addition to this, single files are opened to store other data.
  After writing the file is closed again and another file is
  opened. When all of these files have been written, our system
  opens them all again. This procedure is neccessary for our
  application.



1. APIRET 30 (ERROR_READ_FAULT)
-------------------------------

DosOpen returns with APIRET NO_ERROR. A following DosWrite returns
with APIRET-code ERROR_READ_FAULT. In the same way does DosClose.
After a reboot manual "CHKDSK E: /F" sometimes detects errors in
the filesystem.
In most cases a solution is to delete the file concerned and open
it again.

Note:
This problem occurs from time to time. In most cases the system
has not been shutdown before switching off power.

Questions:
?:    How can a read error occur while writting?
      (Of course a write operation needs some control information
      that has to be read from disk, but I think this problem cannot
      be based in an incorrect use of DosOpen. )
      The file has been opend with DosOpen with exclusive read and write

      access.
?:    How can this problem be solved or better how can it be avoided?


2. Wrong file size is returned
------------------------------

Using DosQueryFileInfo to get the filesize of a file the returned
filesize is sometimes smaller than the real filesize.
A call of DosResetBuffer before the DosQueryFileInfo does not
solve the problem. Even if the DosQueryFileInfo is repeated after
a timeout of about 5 seconds (DosSleep) the result is the same.

An attempt to find out the real filesize using DosSetFilePtr
ends up with the same result.

Supposition:
The file system / file handling is overloaded and therefor
not up-to-date. Or it has dropped certain jobs in this overload
situation without returning an error code. (See also supposition
later)


3. DosClose returns NO_ERROR, DosOpen ERROR_SHARING_VIOLATION
-------------------------------------------------------------

Sometimes the following problem appears:
A file that has been opened with DosOpen for exclusive read and
write access is closed using DosClose. The APIRET-code for the
DosClose is NO_ERROR. After that the file is immediately
reopened with DosOpen for exclusive read and
write access. But DosOpen returns with the error code
ERROR_SHARING_VIOLATION although the file has been
closed correctly according to the APIRET of DosClose. From this
time on the DosOpen-call for this file always fails
with ERROR_SHARING_VIOLATION.
The process must be stopped and restarted before the file can be
accessed again. This is a big problem for our system, because
the systems at our coustomers have to run 24 hours on 7 days
the week.

Supposition:
At the time the DosClose is called the system is overloaded
and returns the APIRET NO_ERROR without finishing the job.




Supposition concerning file system / file handling
--------------------------------------------------

My supposition concerning the HPFS-file system and file handling
in OS/2 Warp 3 are based in the main points on the problems 2 and 3.

I suppose that the file handling uses a job input-ringbuffer.
The calling thread puts its job (API-call DosOpen, DosClose,
DosWrite,...) into this buffer. Another internal thread does
the real job of opening, writing, and so on.
It is likely that there is a check (e.g. is the file opened, is
the handle valid, ...) for the input parameters before
a job is placed into the input-ringbuffer.
In case of a high number of jobs arriving in a short time the
input-ringbuffer will be full and the input check does not
pay attention to the stored jobs in the input-ringbuffer.

==> DosClose ==> NO_ERROR
   ==> DosOpen for the same file ==> ERROR_SHARING_VIOLATION
==> wrong file size is returned


Another supposition is that some API-Calls (DosOpen, DosClose,...)
are executed immediately and others need more time for execution
or are cached. So the returns of directly executed API-calls
may not return the real (uncached) state.



--- WtrGate+ v0.93.p7 sn 165
 * Origin: Origin Line 1 Goes Here (1:109/42)

+----------------------------------------------------------------------------+

From: rlwalsh@packet.net                                14-Oct-99 08:19:00
  To: All                                               14-Oct-99 10:29:21
Subj: Re: _wpDrop and _wpCnrSetEmphasis

From: rlwalsh@packet.net (Rich Walsh)

On Wed, 13 Oct 1999 19:33:45, Jens Borch Christiansen <jgbc@mail1.stofanet.dk> 
wrote:

> I am in the process of making a new icon class (i.e. sub classing the
> wpicon class). My code is nearly finished but I have a problem with
> setting the emphasis of the objects being dropped on the icon object.
> My program is similar to MMIcon (if anybody remembers that program) -
> i.e. if you drop any object (except an icon object) on an icon file,
> then the icon of that object will change to the icon of the file. The
> problem is, that I can't seem to set the emphasis of the dropped
> objects right after the drop operation has ended. I get a strange
> looking square white box without any corners around the dropped objects.
> My code for setting emphasis is as follows:
> 
> SOM_Scope MRESULT  SOMLINK ico_wpDrop(DDIcon *somSelf, HWND hwndCnr,
>                            PDRAGINFO pdrgInfo, PDRAGITEM pdrgItem)      
> {                                                                            
                                            
>    .
>    .
> Assign a new icon to the dropped object using _wpSetup. If the object
> is a folder and the "usOperation" is equal to "DO_COPY", then set
> the animation icon.
>    .
>    .
>    success =_wpCnrSetEmphasis(OBJECT_FROM_PREC(pdrgItem->ulItemID),
>                               CRA_SOURCE | CRA_SELECTED,
>                               FALSE);                             
>    _Pmpf(("_wpCnrSetEmphasis returns : %d", success));
>    // Note: _wpCnrSetEmphasis always returns 1
>    return (parent_wpDrop(somSelf,hwndCnr,pdrgInfo,pdrgItem));
> }                                                                            
                                            
>                                                                              
                                            
> Note: I have tried setting all the different kinds of emphasis that OS/2
> provides with _wpCnrSetEmphasis

I think you've created this problem for yourself by doing too much.

The source object and/or container set the source emphasis when the
drag began and will remove it when DrgDrag() returns.  Since yours is
the target object, this is "none of your business".  Plus, how do you
know that the source had selected emphasis to start with?  (An object
need not be selected in order to be dragged.)

Then too, why are you calling the parent method when (I assume) you
have completely implemented the drop action yourself?  The parent
method is almost certainly a no-op that will return an inappropriate
value rather than one which indicates that the drop was successful
(i.e RC_DROP_ITEMCOMPLETE).

AFAIK, _wpCnr* methods are intended for use with container windows
that you've created and should not be invoked for WPFolder windows
except in very unusual circumstances.  To sum up:  if you remove
_wpCnrSetEmphasis, don't invoke the parent's method, and return an
appropriate value, your code should function as intended.


   == == almost usable email address:  rlwalshATpacket.net == ==
___________________________________________________________________

                |             - DragText v3.1 -
Rich Walsh      |  A Distinctly Different Desktop Enhancement
Ft Myers, FL    |  New!  Pickup & Drop for text, and more...
                |  http://www.usacomputers.net/personal/rlwalsh/
___________________________________________________________________

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: http://extra.newsguy.com (1:109/42)

+----------------------------------------------------------------------------+

From: Stefan.Milcke@t-online.de                         14-Oct-99 20:56:24
  To: All                                               14-Oct-99 20:03:12
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: Stefan Milcke <Stefan.Milcke@t-online.de>

Marty schrieb:
> 
> Bj›rn Vermo wrote:
> >
> > Maybe because I have been using OS/2 for PRACTICAL tasks since version 1.0
> > pre-release? I am not very impressed with programs which tell me "You have 
x bytes
> > free RAM", and I sincerely hope that anybody who use undocumented
"features" are
> > careful to document that they do so - as a warning to possible users.
Those things
> > have a habit of coming back to haunt you, to the great shock of every new
generation
> > of "gee,how clever I am" programmers - which, I suppose, included most of
us at some
> > time.
> > And no, I cannot think of one single practical use for such a function in
an
> > application. Obviously, neither could IBM. If I were interested in
programs that use
> > undocumented "features", I would use Windows. Since I prefer reliability
instead, I
> > use OS/2.
> I can see one possible legitimate use.  Suppose you wish to have a
> program optimized for speed.  This program is very memory hungry and the
> more it can allocate, the better it will perform (many graphical and
> multimedia applications can be this way).  However, if it allocates
> beyond the physical RAM, the performance takes a nosedive and allocating
> more memory does more harm then good.  It would have to know how much
> physical RAM you have free to do such a thing.
And just after your application has called the function an other process
needs RAM and allocates beyond the physical RAM !?!?!?
Or an other process has allocated much memory but is still waiting for
some events. Then your application will run much faster if it allocates
memory as it needs and produces only one swap operation. !?!?
Whe are using a real multi tasking operating system. The Information
from this call is just an Information. And you can assume that this
information is obsolete as soon as the function returns. You can use it
for statistical purposes or/and some monitoring applications. But your
application should not make decisions based on this information.

MfG Stefan Milcke
42 ;-)

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: T-Online (1:109/42)

+----------------------------------------------------------------------------+

From: uno@40th.com                                      14-Oct-99 19:26:10
  To: All                                               14-Oct-99 20:03:12
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: uno@40th.com (uno@40th.com)

It's useful as an indicator, that's all.  No one out there is using it
for much else (ie, not checking that and then limiting oneself to that
amount).  And useful it is:  it tells you when some app (like a browser)
has lost its marbles and is scarfing all memory (and swap -- most swap
'monitors' are a joke).  If you're sitting with 512KB of available memory,
you A) should get more RAM, B) have an app that's leaking resources (Nav
always does this to me), or C) just have a lot of apps running.

With 128MB of memory, I never have swap being used, until I run the last
Nav 2.02 browser, then it can slowly (or quickly) deplete the memory
until all of a sudden I'm in the danger zone (run out of swap).  So,
if I see no RAM then I know something's wrong (and that something is
always Nav).

Stefan Milcke? (Stefan.Milcke@t-online.de?) wrote (Thu, 14 Oct 1999 20:56:49 +
<Judge 444>

 '`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'
 Corne1 Huth  -  http://40th.com/
 Bullet database engines/servers 3.1  Win32-WinCE-OS2-Linux+

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Yanaguana (1:109/42)

+----------------------------------------------------------------------------+

From: bogusaddress@bogusdomain.com                      14-Oct-99 13:01:21
  To: All                                               14-Oct-99 20:03:12
Subj: OS/2 WSeB and Watcom 11.0b - Debugger doesn't work

From: bogus <bogusaddress@bogusdomain.com>

Under OS/2 WSeB, Watcom 11.0b's debugger generates an error message any
time you debug an app with symbols.

The error message Watcom generates is "A task exception has occurred
general protection fault."

After you restart the app you get a regular OS/2 trap page talking about
an error in DosCall1 but the address doesn't jive with what the debugger
shows, so I'm thinking this is a collateral error.

It appears to die in the startup code.  If you pick "Debug Startup" from
the Run menu, then it doesn't die immediately.  I tried tracing through
the startup code to see if I could peg it down a bit better, but there
is a lot of source to trace through as assembly and the OS portions tend
to hang a lot under the debugger (ctrl-alt-del).  It appears that Debug
Startup puts you just before DLL initialization (which agrees with what
the DOCS say).  

After I chose to show all modules in the module window, I noticed that
there is a difference between WSEB and Warp4: in WSEB the first call
after a debug startup goes to PMSPL.DLL but in Warp it goes to
DOSCALL1.DLL.  I don't know if the order that dll's get initialized
depends on some obscure outside condition, but it isn't going to depend
on the order of the files in the directory since HPFS always presents
files in alphabetic order so if this is the case the files should always
load in the same order.  This behavior strikes me as very strange.

I tried adding the C startup code to the source path, but that didn't
seem to help.  I also added breakpoints at the entry point to the RTL
but it trapped before it got there.  When the app dies, it doesn't list
a module at the top of the assembly window.

I'm thinking that this thing is dying somewhere in the Debugger's
loading routine before it even hits the RTL or my app.

I also tried running Borland TD 1.01 on a borland generated version of
the app and it worked without fault.

I ran WATFIX against my EXE and it reported no DLL fixup errors.

To Al Balmer:

The SYM file is separate.  I don't know about -d1 or d2, I'll try that. 
I did try all three formats (Dwarf etc) and that didn't make any
difference.  The only thing that let the EXE run was if there was no SYM
file in the directory.

>Stephen Howe [TeamSybase] wrote:
> 
> I have been asked by email:
> 
> >I've been looking through sybase support, I was wondering if you have heard
> of the debugger not
> >working on OS/2WSeB?  Any file that you load that has a symbol file (any of
> the 3 formats) will not
> >load, it gets an error before it even starts.  Files load fine if there is
> no symbol file.  I have
> >heard of one other person having the same trouble.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: via Internet Direct - http://www.mydirect.com/ (1:109/42)

+----------------------------------------------------------------------------+

From: thannymeister@spambegone.yahoo.com                14-Oct-99 17:29:15
  To: All                                               14-Oct-99 20:03:13
Subj: DosDevIOCtl(), category 8, DSK_READTRACK

From: "Mike Ruskai" <thannymeister@spambegone.yahoo.com>

I'm attempting to get around the 2GB limitation of the file access API, which
I've been using to read a sector from a volume.  Because of that limitation,
it won't work for drives larger than 2GB.

I figure the way to do it is a category 0x08 (IOCTL_DISK), function 0x64
(DSK_READTRACK) call to DosDevIOCtl().  

The problem is that despite that category being for logical disk access (as
opposed to physical disk access), the necessary parameters are still heads
and cylinders.  How do I determine what cylinder and head number to use?

I can get data back from the function using head 0 and cylinder 0, but the
data doesn't look like anything that's actually on the drive.


--
 - Mike

Remove 'spambegone' to send e-mail.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TLF (1:109/42)

+----------------------------------------------------------------------------+

From: thannymeister@spambegone.yahoo.com                14-Oct-99 18:07:11
  To: All                                               14-Oct-99 20:03:13
Subj: Re: Problems with file handling

From: "Mike Ruskai" <thannymeister@spambegone.yahoo.com>

On Thu, 14 Oct 1999 09:44:24 +0100, Gerald Pfeiffer wrote:

[snip]

>1. APIRET 30 (ERROR_READ_FAULT)
>-------------------------------
[snip]

My first guess for your symptoms would be a failing, or substandard drive. 
Make a backup, and get a new one.


--
 - Mike

Remove 'spambegone' to send e-mail.


--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: TLF (1:109/42)

+----------------------------------------------------------------------------+

From: mamodeo@stny.rr.com                               15-Oct-99 00:13:25
  To: All                                               15-Oct-99 02:48:15
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: Marty <mamodeo@stny.rr.com>

Stefan Milcke wrote:
> 
> Marty schrieb:
> >
> > Bjÿrn Vermo wrote:
> > >
> > > Maybe because I have been using OS/2 for PRACTICAL tasks since version
1.0
> > > pre-release? I am not very impressed with programs which tell me "You
have x bytes
> > > free RAM", and I sincerely hope that anybody who use undocumented
"features" are
> > > careful to document that they do so - as a warning to possible users.
Those things
> > > have a habit of coming back to haunt you, to the great shock of every
new generation
> > > of "gee,how clever I am" programmers - which, I suppose, included most
of us at some
> > > time.
> > > And no, I cannot think of one single practical use for such a function
in an
> > > application. Obviously, neither could IBM. If I were interested in
programs that use
> > > undocumented "features", I would use Windows. Since I prefer reliability 
instead, I
> > > use OS/2.
> > I can see one possible legitimate use.  Suppose you wish to have a
> > program optimized for speed.  This program is very memory hungry and the
> > more it can allocate, the better it will perform (many graphical and
> > multimedia applications can be this way).  However, if it allocates
> > beyond the physical RAM, the performance takes a nosedive and allocating
> > more memory does more harm then good.  It would have to know how much
> > physical RAM you have free to do such a thing.

Calm down.  Use a few more carriage returns and a few less !?'s.

> And just after your application has called the function an other process
> needs RAM and allocates beyond the physical RAM !?!?!?
> Or an other process has allocated much memory but is still waiting for
> some events. Then your application will run much faster if it allocates
> memory as it needs and produces only one swap operation. !?!?

Chances are, if you're running such a graphically intensive multimedia
app, it is the focus of what you are doing and has the right to demand
the most resources.  Many Win32 apps make this assumption and for the
most part it works well.

> Whe are using a real multi tasking operating system. The Information
> from this call is just an Information. And you can assume that this
> information is obsolete as soon as the function returns. You can use it
> for statistical purposes or/and some monitoring applications. But your
> application should not make decisions based on this information.

If you are playing a 400MB digital video off of a CD, how much do you
buffer?  How do you have any idea how much to buffer?  Do you use a hard
and fast amount that causes people with slow CDROM drives to suffer?  Or
do you copy most of it into your swap file and perform inefficiently? 
The information has definite uses.

- Marty

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Time Warner Road Runner - Binghamton NY (1:109/42)

+----------------------------------------------------------------------------+

From: bogusaddress@bogusdomain.com                      15-Oct-99 00:11:08
  To: All                                               15-Oct-99 05:27:03
Subj: Re: Watcom 11.0b on OS/2 Warp Server for e-Business

From: bogus <bogusaddress@bogusdomain.com>

I played with this some more tonight, comparing what happens in Warp 4
and what happens in WSeB.

Warp 4, Watcom Debugger 11.0b, my test app:

(All this goes on in DOSCALL1 although I didn't find this out until I
tried the borland debugger below)
When the app starts, it is in DOSCALL1, it makes a magic CALL to an
address (29aa:0) that never changes, but each time it reaches into the
initialization routine of a different .DLL.  In this case it loads:

DOSCALL1.DLL
TCPTIME.DLL
TCP32DLL.DLL
SO32DLL.DLL
and then jumps to _cstart at 5b:25fb2.  The program runs normally.

--------------------------------------------------
WSEB, Borland Turbo Debugger 1.01, my test app:

like above it makes the magic calls, it loads:

TCPIP32.DLL
SO32DLL.DLL
TCP32DLL.DLL
and then jumps to _cstart at 5b:25fb2.  The program runs normally.

-----------------------------------------------------
WSEB, Watcom Debugger 11.0b, my test app:

Like above it makes the same magic calls, it loads:

PMSPL.DLL
PMVIOP.DLL
???? Unknown DLL
SOFTDRAW.DLL
PMGPI.DLL
FFST.DLL
UCONV.DLL
STD32.DLL
and then jumps to 17:5fb7 and promptly traps.  This address is within
the RTL (as evidenced by a copyright message later in the segment that
is included in the source for the startup code on the CD.)  

I thought this might be the case of a trashed jump address (since they
are quite similar looking), but correcting it to cstart using the
debugger's jump command doesn't help, it just traps as before.

Also, each time it starts, all the debugging sessions appear to start at
exactly the same point which is what I would expect.  I don't know what
more to make of this.  It looks like there is some problem in DOSCALL1
when Watcom's debugger is loaded, but I don't know enough about
debuggers to diagnose it.

Oh, my email address is aurorasw direct ca (add appropriate ats and
dots.)  Thanks if you have any suggestions.

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Origin Line 1 Goes Here (1:109/42)

+----------------------------------------------------------------------------+

From: hei@hatespam.norman.no                            15-Oct-99 07:35:23
  To: All                                               15-Oct-99 05:27:03
Subj: Re: Problems with file handling

From: hei@hatespam.norman.no (Harald Eilertsen)

On Thu, 14 Oct 1999 08:44:24, Gerald Pfeiffer <g.pfeiffer@asc.de> 
wrote:

> Supposition concerning file system / file handling
> --------------------------------------------------
> 
> I suppose that the file handling uses a job input-ringbuffer.
> The calling thread puts its job (API-call DosOpen, DosClose,
> DosWrite,...) into this buffer. Another internal thread does
> the real job of opening, writing, and so on.

I think your problems most likely are related to the driver. In your 
case the scsi adapter driver. Have you tried using different scsi 
adapters (and drivers)? Also check if updated drivers exist on ddpak 
online: http://service.software.ibm.com/os2ddpak/html/index.htm

> Another supposition is that some API-Calls (DosOpen, DosClose,...)
> are executed immediately and others need more time for execution
> or are cached. 

These API's are eventually handled by the underlying device driver. 
(At least if the data requested is not in the cache already). Normally
they would be handled by the thread that calls the API's. If the 
request is queued for later processing, the thread is blocked until 
the API can finish.

Take Care!
--
Harald Eilertsen
Norman Data Defence Systems
http://www.norman.no/

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Norman Data Defence Systems (1:109/42)

+----------------------------------------------------------------------------+

From: BLB.OTC@t-online.de                               15-Oct-99 09:59:07
  To: All                                               15-Oct-99 05:27:03
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: Stefan Milcke <BLB.OTC@t-online.de>

Marty schrieb:
> > And just after your application has called the function an other process
> > needs RAM and allocates beyond the physical RAM !?!?!?
> > Or an other process has allocated much memory but is still waiting for
> > some events. Then your application will run much faster if it allocates
> > memory as it needs and produces only one swap operation. !?!?
> Chances are, if you're running such a graphically intensive multimedia
> app, it is the focus of what you are doing and has the right to demand
> the most resources.  Many Win32 apps make this assumption and for the
> most part it works well.
This is because all Win* OS seems to give the process with the top
window much more priority. This is not true with OS/2.
And sorry, I don't agree with you. Not the process that is in foreground
has the right to demand the most resources. If you are running a
background process that is downloading a file this will be very
expensive if it has low priority.

> > Whe are using a real multi tasking operating system. The Information
> > from this call is just an Information. And you can assume that this
> > information is obsolete as soon as the function returns. You can use it
> > for statistical purposes or/and some monitoring applications. But your
> > application should not make decisions based on this information.
> If you are playing a 400MB digital video off of a CD, how much do you
> buffer?  How do you have any idea how much to buffer?  Do you use a hard
> and fast amount that causes people with slow CDROM drives to suffer?  Or
> do you copy most of it into your swap file and perform inefficiently?
> The information has definite uses.
And if you are playing a 400MB digital video off a CD and an other
process has allocated much memory ? How much do you buffer ? Nothing ?
I have no Idea how much to buffer but i don't want to make a decision on
such an unreliable value.
Maybe I get the total physical memory that is installed in the system.
Maybe I let the user define how much he want's to buffer.
Maybe I define a max and a min number of frames to buffer and my
application makes decisions based on the frame rate it can display. This
is the way how my StWTV is playing it's recorded movies.

MfG Stefan Milcke
42 ;-)

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: T-Online (1:109/42)

+----------------------------------------------------------------------------+

From: shikojo@hotmail.com                               15-Oct-99 14:04:20
  To: All                                               15-Oct-99 14:34:17
Subj: Your New StartPage !

From: shikojo@hotmail.com (Shikojo)

I found the best ever site on the net !!!
Here you could find best Computers, Internet, Games, Entertainment and 
other links !
http://goldcity.hello.to/

-- 
http://hey.to/netmoney
The Revolution In Internet Begins !
Get Paid By The Net !
Make Money Surfing The Web !

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: Get Paid By The Net (1:109/42)

+----------------------------------------------------------------------------+

From: mamodeo@stny.rr.com                               15-Oct-99 10:16:16
  To: All                                               15-Oct-99 14:34:17
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: Marty <mamodeo@stny.rr.com>

Stefan Milcke wrote:
> 
> Marty schrieb:
> > > And just after your application has called the function an other process
> > > needs RAM and allocates beyond the physical RAM !?!?!?
> > > Or an other process has allocated much memory but is still waiting for
> > > some events. Then your application will run much faster if it allocates
> > > memory as it needs and produces only one swap operation. !?!?
> > Chances are, if you're running such a graphically intensive multimedia
> > app, it is the focus of what you are doing and has the right to demand
> > the most resources.  Many Win32 apps make this assumption and for the
> > most part it works well.
> This is because all Win* OS seems to give the process with the top
> window much more priority. This is not true with OS/2.
> And sorry, I don't agree with you. Not the process that is in foreground
> has the right to demand the most resources. If you are running a
> background process that is downloading a file this will be very
> expensive if it has low priority.

Priority and resource allocation are two different animals.  Certainly
background tasks should not suffer from starvation of CPU time. 
However, less time-critical apps can take a back seat on memory
allocation and possibly chew on the disk a bit themselves for the sake
of more time-critical apps.

> > > Whe are using a real multi tasking operating system. The Information
> > > from this call is just an Information. And you can assume that this
> > > information is obsolete as soon as the function returns. You can use it
> > > for statistical purposes or/and some monitoring applications. But your
> > > application should not make decisions based on this information.
> > If you are playing a 400MB digital video off of a CD, how much do you
> > buffer?  How do you have any idea how much to buffer?  Do you use a hard
> > and fast amount that causes people with slow CDROM drives to suffer?  Or
> > do you copy most of it into your swap file and perform inefficiently?
> > The information has definite uses.
> And if you are playing a 400MB digital video off a CD and an other
> process has allocated much memory ? How much do you buffer ? Nothing ?
> I have no Idea how much to buffer but i don't want to make a decision on
> such an unreliable value.

I'm not saying it gets <all> of the free memory.  Perhaps it gets 80% or
so.  Other tasks are inevitably running, so we obviously need to give
them some leighway.  If you only have 2MB of physical RAM free, perhaps
a warning message is in order.  How are we going to get that
information?

> Maybe I get the total physical memory that is installed in the system.
> Maybe I let the user define how much he want's to buffer.
> Maybe I define a max and a min number of frames to buffer and my
> application makes decisions based on the frame rate it can display. This
> is the way how my StWTV is playing it's recorded movies.

The video was just an example.  Perhaps we are trying to do real-time 3D
rendering and need to know how much detail we can include in our surface
bitmaps.  Performance will suffer greatly if the bitmap textures don't
all fit into memory.  The scene can be rendered with smaller, less
detailed surface textures.  We need some information to determine which
set of textures to use.

- Marty

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: IBM Global Services North -- Burlington, Vermont,
(1:109/42)

+----------------------------------------------------------------------------+

From: no_spam@blah.net                                  15-Oct-99 20:45:25
  To: All                                               15-Oct-99 21:58:15
Subj: Lost VACPP 3 icons

From: no_spam@blah.net (Charlie)

I accidentally deleted my VACPP icons from my desktop, as I remember 
there is a program to rebuild them without reinstalling.  Does anyone 
remember what it was?

Thanks....

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: PenTeleData http://www.ptd.net (1:109/42)

+----------------------------------------------------------------------------+

From: Stefan.Milcke@t-online.de                         15-Oct-99 22:14:14
  To: All                                               15-Oct-99 21:58:15
Subj: Re: VAC++ 4.0 and Dos16MemAvail

From: Stefan Milcke <Stefan.Milcke@t-online.de>

Marty schrieb:
> Stefan Milcke wrote:
> > Marty schrieb:
> > > Chances are, if you're running such a graphically intensive multimedia
> > > app, it is the focus of what you are doing and has the right to demand
> > > the most resources.  Many Win32 apps make this assumption and for the
> > > most part it works well.
> > This is because all Win* OS seems to give the process with the top
> > window much more priority. This is not true with OS/2.
> > And sorry, I don't agree with you. Not the process that is in foreground
> > has the right to demand the most resources. If you are running a
> > background process that is downloading a file this will be very
> > expensive if it has low priority.
> Priority and resource allocation are two different animals.  Certainly
> background tasks should not suffer from starvation of CPU time.
> However, less time-critical apps can take a back seat on memory
> allocation and possibly chew on the disk a bit themselves for the sake
> of more time-critical apps.
You can replace "low priority" with "low memory".

> > And if you are playing a 400MB digital video off a CD and an other
> > process has allocated much memory ? How much do you buffer ? Nothing ?
> > I have no Idea how much to buffer but i don't want to make a decision on
> > such an unreliable value.
> I'm not saying it gets <all> of the free memory. Perhaps it gets 80% or
But the other application gets "all". What decision will you make in
your application ? Abort ? Wait, until you get more ?

> so.  Other tasks are inevitably running, so we obviously need to give
> them some leighway.  If you only have 2MB of physical RAM free, perhaps
> a warning message is in order.  How are we going to get that
> information?
You can't get an exact information that is valid for a longer time.

> > Maybe I get the total physical memory that is installed in the system.
> > Maybe I let the user define how much he want's to buffer.
> > Maybe I define a max and a min number of frames to buffer and my
> > application makes decisions based on the frame rate it can display. This
> > is the way how my StWTV is playing it's recorded movies.
> The video was just an example.
It was your example.

>  Perhaps we are trying to do real-time 3D
> rendering and need to know how much detail we can include in our surface
> bitmaps.  Performance will suffer greatly if the bitmap textures don't
> all fit into memory.  The scene can be rendered with smaller, less
> detailed surface textures.  We need some information to determine which
> set of textures to use.
And just if you have made your decision to use high resolution and begin
processing an other process allocates memory or you have decided to use
low resolution and an other process frees it's memory ?
Also in this example you can
- let the user define which textures to use
- let the application decide based on the frame rate which texture to
use
This is a better choice.

But now I think we should stop this discussion.

MfG Stefan Milcke
42 ;-)

--- WtrGate+ v0.93.p7 sn 165
 * Origin: Usenet: T-Online (1:109/42)

+----------------------------------------------------------------------------+

+============================================================================+
