dank@nntp-server.caltech.edu (Daniel R. Kegel) (12/05/90)
I am trying to figure out how to write a Windows program that uses much more than 640 kilobytes of memory, and have heard that the DOS Extenders built in to Windows3.0 and Desqview have the same API, which is defined in something with a name like "Virtual Control Program Interface". In the best of all possible worlds, this API would allow you to define segments that were larger than 64 kilobytes (which would naturally only be possible on a '386 or '486); this would allow much faster addressing. Can anybody tell me where to get info on this standard, or any compilers that support it? Please reply via e-mail to dank@moc.jpl.nasa.gov and I will summarize if there are any useful replies. Thanks!
mojo@netcom.UUCP (Morris Jones) (12/05/90)
dank@nntp-server.caltech.edu (Daniel R. Kegel) writes: >I am trying to figure out how to write a Windows program that uses >much more than 640 kilobytes of memory, and have heard that the >DOS Extenders built in to Windows3.0 and Desqview have the same API, >which is defined in something with a name like "Virtual Control Program >Interface". Windows uses a slightly new spec called DOS Protected Mode Interface (DPMI). Support for allocating large chunks of memory is provided by the WINMEM32 library. I believe it's described in Appendix E of the SDK manual. These functions allow you to allocate 32-bit segments and allocate 16-bit pointer aliases, code aliases, and so on. At Caere we used these functions to run OCR in native 32-bit 386 code. The 32-bit compiler we used was Metaware High C. The difficulty comes in provided glue and control transfer code between the 16- and 32-bit segments. Codeview will not run with a 32-bit stack, so WDEB386 is the only debugger useable, and it will not load symbols. It's a considerable investment to make a 32-bit Windows program, so read and consider whether or not it's necessary. Mojo -- mojo@netcom.UUCP Site Coordinating Instructor, San Jose South Morris "Mojo" Jones Skilled Motorcycling And Rider Training (S.M.A.R.T.) Campbell, CA 800-675-5559 ... 800-CC-RIDER ... 408-423-2212 AA4KB @ N6LDL.#NOCAL.CA.USA.NA / aa4kb.ampr.org / netcom!mojo@apple.com