Mastering DOS Memory, Part 2: 960K Conventional Memory for DOS!

preview_player
Показать описание
DOS and the 640K Memory Barrier!
Though actually, there was no such barrier, if it were not for the original PC BIOS implementation.
Using some trickery it's possible to have more than 640K, way more, upto 960K.
Upper Memory Blocks, you say? Nah, that works only on 386 or better CPUs.
This video explains a long lost technique how to make use of the upper memory, end redicate it as conventional memory on 8086/8088 and machines.
And pushing the bar even further, on 286, you can combine that with the HMA, to have even more free conventional memory.

00:00 Intro
00:38 The Theory: Bumping DOS beyond 640K
06:08 About PCs with more than 640K real memory
08:03 CONFRAM revisited: Making it work!
15:18 Pushing the RAM limit to 960K
19:25 Compatible with DR DOS?
19:52 Conclusion / Outro

Links:

CONFRAM and JENSEITS (BEYOND), by c't:

c‘t 5'88, p164

c‘t 11‘88, P140

Classic Computing Forum (german):

TPC's Github Project for "BEYOND":

Technical References:

PCs without 640k barrier:

Tim Paterson on DOS limit:

Computer Chronicles: Losing Memory (1995)

Copyright @ 2024 THE PHINTAGE COLLECTOR, Gianpaolo Del Matto. All rights reserved.

Featuring Music with kind permission by rootkitty: "Digital Aurora"

Theme Music composed by Abdallah El-Ghannam.
Рекомендации по теме
Комментарии
Автор

Fun fact: there were MS-DOS machines that were incompatible with the IBM PC. Some didn't even try at any level of compatibility. One that comes to mind first for me is the NEC PC-98 series, which was basically the "default computer" in Japan before the Windows 9x era (and it had ports of up to Windows 2000 for it, exclusive to Japan - but that's another story). So I wondered how things worked there - but well, it had a very similar memory map to the IBM PC, with 640K being the conventional memory barrier. The Japanese MS-DOS 6.2 for NEC PC-98 even includes MemMaker!

kFY
Автор

Great post.

It was a tedious task at the time. Memmaker had the L option, which allowed you to manually set individual memory areas in the UMB. Unfortunately, this was always trial and error, as some TSR programs or drivers require additional RAM during the initialization phase. What I still remember is that emm or himem were not using the correct DOS manufacturer version. So you mixed MSDOS, DRDOS and PCDOS. Then there were keyboard drivers for config.syd. One was from the CT, was around 400 or 500 bytes in size with code page 437.

*Something else about me*

I come from the Apollo generation. Amateur radio and electronics tinkering. Back in the 70s, our booking machine had BASIC and a line display. I was already working at night in program mode😀 Test the Limit. About 15 years ago I switched to Linux. I first came into contact with Unix professionally in 1985/6. Today I am retired and am pleased that interest in antiques is increasing. 😅
Grüsse von DE nach CH.

alterhund
Автор

I remember on my 8086 machine, I was able to push around 768K of conventional RAM, but never made it quite this high. I'm impressed! 768K was achieved by both 128K in DIP, 512K in SIMMs (2x 256K), and another 128K on an ISA card mapped between ROM's.

Fun times, and I kind of miss those days to be honest.

_MasterLink_
Автор

Technology has progressed significantly. Nice finds, thanks for sharing the compiling experience. 🖥️

randomprettysecret
Автор

Yet another amazing video. Unearthing some really cool concepts that I certainly haven't heard about. I look forward to your networking videos!!

RetroTechChris
Автор

Years ago when dos was still large. I played around with a few utilities. I never had much luck with them. Programs would lock up and such. Thank You, for the better understanding about using different version of DOS. What I do remember is things like dos 6.22 and after playing around with it. Using Dos=high, umb and such. I was able to get 618-623 base memory free. It was my stubbornness to beat the horrible memmaker programs.

idahofur
Автор

Really good video again. This was quite interesting to see the program written out in a magazine for its subscribers to type out themselves and build it. I remember those types of magazines, they usually had some really good stuff in like this one. Yes i remember using dos memory management tools back in the late 80s/early 90s. I cant wait until the next one. Your videos are essential Sunday viewing

NiceCakeMix
Автор

In the 80s and 90s German technical magazines were gold. For only for the computer, but also electronics.
I remembered that in '87 we got a Commodore PC-10 and I stupidly thought that Commodore 64 assembly world also work on the PC-10. That was not the case.
In fact, I had to learn programming in (turbo) pascal since qbasic was worthless (and I didn't have access to full quickbasic or gwbasic) and the C64 tricks did not work. Later moved on to Delphi and a lot of other programming languages.

Thanks for the bringing back all these wonderful memories from my childhood!

FastMellow
Автор

You put a lot of effort into these two videos and they have been VERY educational. Thank you!

josephphillips
Автор

I remember fiddling around with freeing up conventional memory to run some DOS games on my first computer in 1999 :) (it was a Cyrix M-II PR300 thing with 32MB of RAM, 1MB Cirrus Logic graphics and a Crystal CX4235 sound card, so basically nothing to write home about, but it was my first PC) As a 10 year old, I didn't really know what exactly I was doing, but somehow I always got the game to run.
A couple of years later, when my first retro desires hit and I got a 486 from a local school for free, I was much more knowledgable about what and why to do to free up enough conventional memory. Usually, memmaker and some tweaking afterwards was more than enough.

AttilaSVK
Автор

I love anything Novell, Banyan as that was the beginning of my career as a teenager before very quickly moving to NT for everything, so can't wait for next week's vid.
Even though decades have passed I still have a flame for those amazing pieces of software from the time.

judewestburner
Автор

Thanks for always providing a comfy retreat for my weary mind.

DankUser
Автор

Great video. In my highscool we have had competition WHO can make more basen menory available but I was sure you can not pass 640kB. Till today.

SobieRobie
Автор

WAHOO! Good Morning from Detroit
Pushin' them DOS Limits!

MotownBatman
Автор

I remember a couple of tricks, that I was never able to suss out years later. I swear there was an EMS driver that would page out to hard drive instead of real memory for those that just needed a few pages of ems, my HP200LX would benefit from this as reading memory and writing to disk was nearly the same speed. It was still technically slower than EMS because of copying data around...

Another one was loading drivers into an EMS device, I think this only worked with REAL hardware, not a virtual setup, but some I'm convinced I remember some drivers used an EMS card page for keeping themselves resident - when getting an interrupt a conventionally resident part would tell the ems card to switch banks, and it would jump into that bank, service the interrupt and then jump back out, and revert the page change. Now I think this was specific drivers, not some universal loader for any driver.

Anyway, these are all foggy and it may be confused memories, but I'd brought it up a few times and my group of retro nerds couldn't figure these out, figured they sounded interesting.

prozacgodretro
Автор

Goddamn! My data plan is depleted, so I have to watch that video @home, but for this I have to fight against the delays by the Deutsche Bahn. Thank you for traveling with Deutsche Bahn. Even when all toilets in the train are broken. 🤬

msdosmnfred
Автор

When you were showing 800KB conventional memory (the max I saw?) - what address was DOS writing to for the screen? Isn’t B800 necessary for text output?

jrherita
Автор

We need a shirt with Mr. Know-it-All that says “What about Windows Me?” lol

DerekLippold
Автор

Used to do this in IBM DOS7.0 back in the 90's

pulsar
Автор

There was/is a tool called USE!UMBS for the PC/XT, to use 1MB of RAM. However, it required a custom GAL as a memory mapper.

TzOk