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 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" In <37FE4DBE.2111@ican.net>, on 10/08/99 at 08:02 PM, Peter Fitzsimons 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 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" 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" 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 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 > 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" 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" 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 , Pat Pridgen 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" 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" 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 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" 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" 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" 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 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 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 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" >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 [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 Paul Ratcliffe wrote: > On Mon, 11 Oct 1999 20:27:02 GMT, Marco Shaw 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" 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 #include #include #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 [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 - "Leif-Erik Larsen" 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 #include 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" 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 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 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" 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: --- -16 Under MEMMAN=SWAP, you're getting back roughly what DosQuerySysInfo(TOTMEMAVAIL) returns -- roughly speaking, this is +. 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" 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" 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" 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" 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" 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 > > 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" 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" 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 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 -- 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" 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: --- > -16 > >Under MEMMAN=SWAP, you're getting back roughly what >DosQuerySysInfo(TOTMEMAVAIL) returns -- roughly speaking, this is physical memory>+. 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 #include #include #include #include #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 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 writes: >Paul Ratcliffe wrote: > >> On Mon, 11 Oct 1999 20:27:02 GMT, Marco Shaw 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 , "Jan Danielsson" 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 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 writes: > >Paul Ratcliffe wrote: > > > >> On Mon, 11 Oct 1999 20:27:02 GMT, Marco Shaw 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" 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" 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: --- > -16 > >Under MEMMAN=SWAP, you're getting back roughly what >DosQuerySysInfo(TOTMEMAVAIL) returns -- roughly speaking, this is physical memory>+. 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 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 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" 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" 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" > 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 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" 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 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 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 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 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 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 + '`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`'`' 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 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" 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" 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 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 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 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 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 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 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 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 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) +----------------------------------------------------------------------------+ +============================================================================+