afd@mruxd.UUCP (A Dietz) (07/12/88)
The model 50 has 1M on board, but DOS has access only to 640K. How do I get to the other 360K, designated as "expanded memory"? I have compiled a program that will not fit into the useable memory (640K), yet is far less than the 1M available. A Dietz Bellcore, Morristown (ulysses, rutgers, bellcore)!mruxd!afd
psc@lznv.ATT.COM (Paul S. R. Chisholm) (07/15/88)
< "Would you buy a used operating system from these guys?" > In article <322@mruxd.UUCP>, afd@mruxd.UUCP (A Dietz) writes: > The model 50 has 1M on board, but DOS has access only to > 640K. How do I get to the other 360K, designated as "expanded > memory"? Ambiguous question. Are you saying, "How do I get the other 360K to be used as expanded memory?", or "How do I get to the other 360K, which is currently expanded memory?" First of all, the top 360K in a 1M 286/386 box is *extended* memory. DOS has no way of marking what parts of extended memory are allocated, so this RAM is fairly useless. Quarterdeck sells an Expanded Memory Manager for PS/2-50 and -60 RAM boards, which converts *extended* memory into *expanded* memory (Lotus Intel Microsoft Expanded Memory Specification, or LIM EMS). There's an agreement on how DOS applications can allocate and free this kind of memory, so this is useful. There are third party libraries that make EMS use easier. > I have compiled a program that will not fit into > the usable memory (640K), yet is far less than the 1M available. Well, it is a *micro* computer, isn't it? The top 360K of the 8086 1M address space is reserved for various junk. There's no easy way for your program to transparently grab memory there. Yes, I *know* you've got an 80286, not an 8086, but try telling DOS that. Solutions: Buy 2M more RAM and port your application to OS/2 (lots of luck:-). Find large arrays and make them smaller. Look for unused functions and get rid of them. Tell your compiler to optimize for space instead of speed. Buy a better compiler. Use EMS memory. Use a real operating system (can you say UNIX(R)? I thought you could.-) > A Dietz, Bellcore, Morristown, (ulysses, rutgers, bellcore)!mruxd!afd -Paul S. R. Chisholm, {ihnp4,cbosgd,allegra,rutgers}!mtune!lznv!psc AT&T Mail !psrchisholm, Internet psc@lznv.att.com I'm not speaking for my employer, I'm just speaking my mind. UNIX(R) is a registered trademark of AT&T.
psc@lznv.ATT.COM (Paul S. R. Chisholm) (07/16/88)
< "Would you buy a used operating system from these guys?" > In article <322@mruxd.UUCP>, afd@mruxd.UUCP (A Dietz) writes: > The model 50 has 1M on board, but DOS has access only to > 640K. How do I get to the other 360K, designated as "expanded > memory"? In article <1407@lznv.ATT.COM>, psc@lznv.ATT.COM (Paul S. R. Chisholm) (that's me) writes at great length about how unlikely it is that you're going to be able to use that 360K as conventional memory. Well, as part of their Windows/286 (a.k.a. Windows 2.1) product, Microsoft is distributing a device driver that lets you get an extra 64K of conventional memory out of your extended (AT style, not LIM EMS) memory. This memory can be used by non-Windows applications. PC Week, July 11, 1988, p. 34: "As implemented in Windows, the driver conflicts with many existing memory management programs, including EMS emulators and virtual-disk [RAM drive] utilities." If all you needed was 704K total, and you're not using extended memory for anything else, you're all set. > A Dietz, Bellcore, Morristown, (ulysses, rutgers, bellcore)!mruxd!afd -Paul S. R. Chisholm, {ihnp4,cbosgd,allegra,rutgers}!mtune!lznv!psc AT&T Mail !psrchisholm, Internet psc@lznv.att.com I'm not speaking for my employer, I'm just speaking my mind. UNIX(R) is a registered trademark of AT&T.
Ralf.Brown@B.GP.CS.CMU.EDU (07/16/88)
In article <1410@lznv.ATT.COM>, psc@lznv.ATT.COM (Paul S. R. Chisholm) writes: }(that's me) writes at great length about how unlikely it is that you're }going to be able to use that 360K as conventional memory. Well, as }part of their Windows/286 (a.k.a. Windows 2.1) product, Microsoft is }distributing a device driver that lets you get an extra 64K of }conventional memory out of your extended (AT style, not LIM EMS) }memory. This memory can be used by non-Windows applications. PC Week, } }If all you needed was 704K total, and you're not using extended memory }for anything else, you're all set. Except that the extra 64K will not be contiguous with the base 640K, thus making it unusable unless the program is specifically written to take advantage of it. BTW, DESQview has had an equivalent driver for over a year. The driver works because of a quirk of the 80286 that lets it access almost 64K more than 1meg in real mode (up to FFFF:FFFF, which would have wrapped back to 0000:FFEF on an 808[68] machine). On a PS/2 mod 50 or 60, there is circuitry present to run the extra memory as either exTENDed or LIM EMS (Quarterdeck's QEMM-50/60 makes it EMS) memory. -- UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf -=-=-=- Voice: (412) 268-3053 (school) ARPA: ralf@cs.cmu.edu BIT: ralf%cs.cmu.edu@CMUCCVMA FIDO: Ralf Brown 1:129/31 Disclaimer? I |Ducharm's Axiom: If you view your problem closely enough claimed something?| you will recognize yourself as part of the problem.
mk59200@tut.fi (Kolkka Markku Olavi) (07/18/88)
In article <322@mruxd.UUCP> afd@mruxd.UUCP (A Dietz) writes: >The model 50 has 1M on board, but DOS has access only to >640K. How do I get to the other 360K, designated as "expanded >memory"? I have compiled a program that will not fit into >the useable memory (640K), yet is far less than the 1M available. > >A Dietz >Bellcore, Morristown >(ulysses, rutgers, bellcore)!mruxd!afd Here are two answers to your problem: 1. The hi-tech approach Buy 2 or 4 MB of additional memory, a large and fast hard disk and OS/2 or Unix. Now you have virtual memory, and you can make programs as large as you like (well, almost). 2. The lo-tech solution (ie. use your brains instead of wallet) Modify the program to run in 640K memory: use overlays, temporary files, optimize your algorithms etc. The extended memory can be used under Mess-DOS as RAM-disk or disk cache. To access it, you must switch the 80286 to protected mode, copy the stuff you need to the 640K "normal" area and switch back to real mode. This isn't trivial at all. -- Markku Kolkka | Tampere University of Technology mk59200@tut.fi | Tampere, Finland ...!mcvax!tut!mk59200 |