Ask HN: Any cool stories about old DOS extender, EMS or Extended Memory?

8 points by sqldba ↗ HN
I was reading the recent HN article about Warcraft 1 and how EMS was a horror to work with until they moved to DOS Extender.

This was all before my time and I was wondering if you who worked with this tech had much to say about it?

Thanks.

5 comments

[ 2.1 ms ] story [ 27.4 ms ] thread
Basically we had this memory limit in DOS. It was pathetic, like 600K.

Memory extenders came out that let you reach over that limit. But you had to make OS calls that flipped the CPU into a different mode first.

That was just the beginning! We also had to write 'self modifying code', emit assembly instructions and make DOS programs rewrite themselves to squeeze every last bit out of graphics routines. I remember counting 'cycles' of each ASM instruction. Fixed point was much faster than float then, we did craaaazy things for 3d graphics, for sure.

Those were fun days of hobby dev, for sure!

I used to work supporting Lotus 1-2-3 for DOS for Lotus in the UK. We quite often had to get people to load a "clean config" by commenting out most of their config.sys and autoexec.bat apart from a prompt command and emm386.exe. This was so we could fit the program in the first 600k and then load the rest into the main memory.
Ok, I will try to descript some of my memories.

At that time I had an XT with 4.77MHZ and a "turbo" switch where the CPUs go to 10MHZ. We are talking about real power here and a 30MB HD Seagate.

A lot of games/programs run ok with only 640 at that time. But graphic ones and heavier ones need more memory as 1MB or 2MB. Remember that time 1MB was a serious investing or cost.

So what we used to do at that times:

Several configs.sys and autoexec.bat for each application. Eg.: 1. Boot with CD-Rom drivers; 2. Boot with CD-Rom drivers and others; 3. Clean Boot

So I had to choose how to boot my PC before choosing the boot menu, and each menu has its configuration. The more drivers/configs more options becoming an exponential function.

So later came Qemm[1] that optimize all options for best scenarios (more free under 640kb or higher mem free). That was a game changer.

There were several details, but that was it. Ask me about stacked or other techniques from that time if you are curious :)

[1] - https://en.wikipedia.org/wiki/QEMM

    DEVICE=C:\Windows\HIMEM.SYS
    DOS=HIGH,UMB
    DEVICE=C:\Windows\EMM386.EXE NOEMS
I have a slightly related one...

At that time I was nothing but a child, so my main interest outside "how does $THIS work" was to play computer games.

I had a 386 @20MHz with something like 40MB HDD. I wanted to play this Sherlock Holmes game my dad bought for my birthday. Mind you, at that time paying for a game was a big effort for my family, so this would only happen once per year (if lucky).

The problem? The game, once installed, was like 39MB or something crazy like that! There was this tool called doublespace or drivespace (can't remember the exact name, I believe both existed) that could increase your total disk space by doing some magic (actually compression, but mostly magic for barely a child). Problem solved, right?

Not quite.

Now I had a second problem: This tool loaded a driver, otherwise you couldn't access your data in the disk, and with this driver I could not hit the memory requirements for this specific game (which also required to load the mouse driver!).

All in all, I could only play this game by deleting everything on the HDD and even trimming down c:\dos :) then installing the game. I believe some time later you could load the doublespace/drivespace driver on to the extended memory, as well as the mouse driver; plus the RAM started getting cheaper and I got a whooping 2MB expansion (so I had 4MB in total) and could play and use the computer for other... games.

As someone else mentioned, you ended up with several boot options depending on the task you wanted to do. Most of the times I wouldn't even load the CD-Rom drivers (that's actually with a 486 I got a few years later) or the mouse drivers.

Those were the times... This is the game in question: https://en.wikipedia.org/wiki/The_Lost_Files_of_Sherlock_Hol...