• Please review our updated Terms and Rules here

DEVICEHIGH / LOADHIGH upper memory on an XT

vwestlife

Veteran Member
Joined
May 2, 2008
Messages
5,385
Location
central NJ
Yes, it can be done! On an XT-class computer with a color display, you can install a Hercules-compatible display adapter, and instead of using it for monochrome graphics, you can cannibalize nearly all of its 64 KB onboard RAM to use as upper memory for DOS, in which to load device drivers and TSRs using the DEVICEHIGH and LOADHIGH commands normally associated with 386s and newer PCs.

With IBM's PC DOS 6.1 or higher, the UMBHERC.SYS driver takes 60 KB out of the Hercules board's 64 KB video RAM (leaving 4 KB for a monochrome text-only display, if you want to use it) and gives it to you as upper memory. More info, including example CONFIG.SYS commands, at the bottom of this web page:

http://www.robvanderwoude.com/dosmem.html

You can also use UMBMONO.SYS to use the video RAM of a plain text-only MDA card as upper memory, but this only gives you 4 KB of UMBs to work with, barely enough for anything except maybe a small mouse driver (like "CuteMouse" CTMOUSE.EXE).

As that web page mentions, these drivers will also work on a 286 in conjunction with HIMEM.SYS, to give you both HMA and UMB, instead of only HMA without it.
 
UMBs on the 8088 isn't exactly a big secret. You can steal memory from EGA and VGA as well by use of a 3rd party TSR. I've heard that if you use the video board memory it is six times slower than your regular system memory. There are other programs that can free up UMBs using LIM 4.0 boards or extra memory installed on the planar. The ones I tried are called "The Last Byte" and Quarterdeck's "QRAM". On my V30 system I had no luck at all with TLB. Using QRAM I was only able to extra a measly 17k of UMB. I'd like to figure out how to disable the EMS pageframe and use that as conventional, but I can't find the documentation for QRAM so I don't know how to do it.
 
UMBs on the 8088 isn't exactly a big secret. You can steal memory from EGA and VGA as well by use of a 3rd party TSR. I've heard that if you use the video board memory it is six times slower than your regular system memory. There are other programs that can free up UMBs using LIM 4.0 boards or extra memory installed on the planar. The ones I tried are called "The Last Byte" and Quarterdeck's "QRAM". On my V30 system I had no luck at all with TLB. Using QRAM I was only able to extra a measly 17k of UMB. I'd like to figure out how to disable the EMS pageframe and use that as conventional, but I can't find the documentation for QRAM so I don't know how to do it.
I forgot... PC DOS also provides another driver (UMBEMS.SYS) to pull upper memory from an EMS board. I did a detailed write-up about all of this years ago and uploaded it to CompuServe's PC Hardware Forum, which is now probably long gone. I also wrote a list of undocumented DOS commands (published in the November 1996 issue of DOS World magazine), which is available on the Internet if you search for it.

I use PC DOS 7 / 2000 on all my old PCs because it is probably the most memory-efficient version of DOS since 3.3. And if you have upper memory, you can load COMMAND.COM and the internal DOS components into upper memory using "DOSDATA=UMB" in CONFIG.SYS. That way, you can stuff almost everything into upper memory or HMA, and get up to 624 KB of conventional RAM free! But even without upper memory or HMA, its memory usage is fairly small.
 
I am running PC DOS 2000 and I have a hardware EMS board -- Is there more exact documentation on how to do this? I am dying to try it out!!

Also, the webpage didn't have any download links; where can one download umbherc.sys?

EDIT: Never mind, I typed "view cmdref" and I see all of the juicy fun. Yet another reason PC DOS 2K is my favorite DOS.

However, I can't really use this because I don't like losing all 2MB of my EMS just to save 64K :) But it's still a great trick for other PCs I'm setting up (especially the umbcga/umbherc/etc.)
 
Last edited:
Also, the webpage didn't have any download links; where can one download umbherc.sys?
Attached is a ZIP of all the UMB____.SYS drivers. I don't see any "Incorrect DOS version" text in the code, so they probably should work with MS-DOS and other versions, too.
 

Attachments

  • umb.zip
    4.9 KB · Views: 10
<snip>I'd like to figure out how to disable the EMS pageframe and use that as conventional, but I can't find the documentation for QRAM so I don't know how to do it.
----
I've got the QRAM package somewhere; send me an email reminder so I'll know who was looking for it if/when I find it.

m
 
I forgot... PC DOS also provides another driver (UMBEMS.SYS) to pull upper memory from an EMS board. I did a detailed write-up about all of this years ago and uploaded it to CompuServe's PC Hardware Forum, which is now probably long gone. I also wrote a list of undocumented DOS commands (published in the November 1996 issue of DOS World magazine), which is available on the Internet if you search for it.

I use PC DOS 7 / 2000 on all my old PCs because it is probably the most memory-efficient version of DOS since 3.3. And if you have upper memory, you can load COMMAND.COM and the internal DOS components into upper memory using "DOSDATA=UMB" in CONFIG.SYS. That way, you can stuff almost everything into upper memory or HMA, and get up to 624 KB of conventional RAM free! But even without upper memory or HMA, its memory usage is fairly small.

Is that the same command as "DOS=UMB" ?
 
It depends on the DOS flavor, I think. On my PC DOS 2000, I show that DOS=UMB "specifies whether DOS will use the high memory area and whether to provide access to the upper memory area" while DOSDATA specifies where system tables (FILES, FCBS, BUFFERS, LASTDRIVE, and STACKS) will be loaded (=UMB for high memory and =NOUMB for conventional).
 
I have a 256 K VGA Card installed in my Tandy 1000 TL, think I could grab the 128K from the Tandy Graphics adapter?
 
Back
Top