• Please review our updated Terms and Rules here

Question About Memory Management on Early Versions of DOS

thunderbird32

Member
Joined
Nov 5, 2012
Messages
14
Location
Chicago
I have a question about how memory was managed on early versions of DOS (pre-4.x). It's my understanding that until 4.x (EMM386) and 5.x (HIMEM) DOS couldn't really use any RAM over 640KB without "help" from 3rd party software (i.e. expansion card drivers). Is this true, or am I misunderstanding the limitations? If so, how did systems like the PS/2 Model 50 (where the motherboard supported 640KB+) handle memory if you had the full 1MB the motherboard supported (or even more, using expansion cards)? Was it somehow just surfaced to applications that were aware of memory above 640KB (EMS)? Also, does anyone have a link to a comprehensive guide(s) to setting up memory over 640KB on DOS? It's particularly difficult to find guides that have "best practices" for configuring memory on anything older than DOS 6.x (as presumably that's the version everyone wants to run). And even then, while I've gotten DOS 6.x set up quite well before by following said guides, I don't really understand it. I just type the "incantations" and hope for the best.

I'm willing to do the reading, but my Google-fu is failing me on this one.
 
The best practices are really based on the programs you’re using.

As far as the old computers with more than 1024k back in the day, normally the application or the memory card would have its own driver. For example windows came with himem.sys before dos did, because it could use xms and ast cards came with drivers for either ems or xms depending on how you had them configured.
 
Even earlier. IBM added VDISK.SYS, a RAM disk that used extended memory, with DOS 3.0. Many 286 systems were designed to split 1 MB into a 640 kB block and place the remaining 384 kB as extended memory. Systems that didn't try for IBM PC compatibility could access more; the Sirius Victor could have 960 kB of memory available to DOS. Earlier versions of HIMEM.SYS and EMM386 drivers were available to DOS 3.3 and DOS 4 by installing Windows 386 or Windows 286 (only HIMEM here).

DOS 4.0 added support for EMS buffers but that only worked with IBM memory expansion cards.

Special drivers are not needed for extended memory cards. EMS cards need a special driver because cards had different designs with different handle tracking so the wrong driver will do bad things. 386 and some 286 systems could transform extended memory into expanded memory which made everything much easier.

DOS 6 is the way to go with a 286 or later system. Okay, can do all the same things except for built-in disk compression with DOS 5 but it is harder to find bug fixes for DOS 5 and DOS 5 had some bad bugs at release.
 
It should be also noted that DOS wasn't the only choice for 286 and 386 PS/2 machines, as OS/2 was released along with the PS/2 series.
 
DOS 6 is the way to go with a 286 or later system. Okay, can do all the same things except for built-in disk compression with DOS 5
DOS 6 introduced multiconfig.
Various programs may require different memory configurations, so multiconfig is a VERY useful feature.
 
Back
Top