• Please review our updated Terms and Rules here

Maximising free memory in a 5160 (w/EMS)

3pcedev

Veteran Member
Joined
Jun 8, 2014
Messages
735
Location
Australia
Hi all,

I've been searching & reading for hours on this one and I am starting to get bogged down...

Basically I want to set up the most efficient system with the memory I currently have in my 5160. To begin with it has:
- Sixpakplus fully populated bringing it up to 640k conventional memory
- 2Mb of EMS courtesy of a Lo-Tech EMS card.
- Dos 5 (lowest version possible for me).
- Has an 80286 expansion card so might be able to run some device drivers written for 80286's.

At the moment all I have in the config.sys is the EMS driver and DOS=UMB. Autoexec.bat just has SET BLASTER=.....

I am still running out of base memory and have about 588k or so free. To run a specific game I am interested in I need about 600k or more free. I understand the memory models (EMS vs XMS vs UMB etc) but I am unclear on what I can load into what to save some conventional RAM.

What I think I am trying to do is get dos (including the shell) into EMS or the UMB in order to free up the base memory. I've looked at a few different programs (dosmax being one of them) but I am totally lost as most require QEMM as well.

Could someone that has done this sort of thing before help me out? Even better if you could supply an example config.sys/autoexec.bat.

Thanks as always!
 
If you've already got experience building a Lotech card, the easiest option would be grabbing the 1MB RAM card and using it to fill in the gaps between 640-1024KB - you could then use something like USE!UMBS.SYS to setup the upper memory for DOS to use.

I've only seen one working software trick for XT's to get EMS -> UMB, and that's by basically tricking QRAM in to putting a single block of memory in the upper range and leaving it there - unfortunately that makes the rest of the card unusable - so 2MB EMS turns in to 64KB upper memory. If there are any magic tricks, I'd love to hear them two, because I have a pair of XT class machines running EMS boards - I just couldn't get anywhere with it.
 
Could you state which game is causing the problem? Rare to have any game needing more than 600kB but a number of errors could falsely indicate a need for more free memory. For example, some compressed executables won't be uncompressed if DOS uses less than 64kB (free memory is more than 580kB).
 
I've only seen one working software trick for XT's to get EMS -> UMB, and that's by basically tricking QRAM in to putting a single block of memory in the upper range and leaving it there - unfortunately that makes the rest of the card unusable - so 2MB EMS turns in to 64KB upper memory. If there are any magic tricks, I'd love to hear them two, because I have a pair of XT class machines running EMS boards - I just couldn't get anywhere with it.

The problem is that there are no memory protection mechanisms in XT class hardware, so there is no way to trap a jump to an area of EMS (or memory in general) that may not currently be accessible. Hence drivers would have to be written to take advantage of it, of course there is no real reason why they couldn't be as page swapping in EMS is very quick (just a write to the page register, via an ISR).
 
Would be great if you could post the drivers, so we can see if it might work with other hardware. There are lots of xt class machines with UMB.
 
All she has is 384K on the sixpak and 256k on the motherboard which gives me 640k. I was hoping to use some of the EMS but it's looking a bit too hard. I also need about 1MB of EMS to run games; so using the 'trick' of the first 64k is out.

James - am I correct in assuming your lo-tech 1MB RAM card can replace the sixpak as well as provide some high memory? I read the wiki and it seems quite straightforward (i.e. set the jumpers to populate from 256K up to 640k and then enable something in the HMA). The only downside is that I have no free ISA slots in the machine at the moment. Looks like I might have to ditch the floppy controller as I it's the only peripheral I don't use.

Also how do you tell dos that some HMA is available (and it's location)? Is there a driver for it?

NB The game I am trying to run is Space Quest 4 (CD edition). It uses EMS, however it still needs a lot of base memory. I can run the game with either the speech or music enabled, but not both. Completely pointless exercise really, but half the fun is just seeing if it is possible by building the most ridiculously optioned up 5160.
 
+1 for UMB card. EMS is not going to help you unless your application/game is specifically designed to use EMS.

With UMB I am able to get more than 600KB for low memory running MS-DOS 6.22 (on the Xi 8088 board that I've designed).

For an XT you can get James Pearce's 1MB RAM Card. Most likely you'll need to populate only one SRAM chip.

You'll need something like USE!UMBS.SYS to make that card work under DOS.
 
Hello, you can try out confram/jenseits driver from german computer magazine c't. It was released somewhere in the 1980's to upload drivers and tsr from autoexec.bat to UMB memory on XT computers. I have uploaded it to my dropbox with a little example for how to use it.

---> klick here, 7 kB
 
NB The game I am trying to run is Space Quest 4 (CD edition). It uses EMS, however it still needs a lot of base memory. I can run the game with either the speech or music enabled, but not both.
You might try simply decrementing the "minHunk" parameter in the game's RESOURCE.CFG file by the reported memory shortage amount. In most cases, this game will still function normally, but will otherwise bomb-out with an "Out of Hunk" error message.
 
I've only seen one working software trick for XT's to get EMS -> UMB, and that's by basically tricking QRAM in to putting a single block of memory in the upper range and leaving it there - unfortunately that makes the rest of the card unusable - so 2MB EMS turns in to 64KB upper memory. If there are any magic tricks, I'd love to hear them two, because I have a pair of XT class machines running EMS boards - I just couldn't get anywhere with it.

I'm using QRAM and I get 64K of usable UMB as well as full EMS functionality. My EMS board is a true Intel LIM 4.0 board (Aboveboard) and I'm running PC DOS 7. CONFIG.SYS looks like this:

Code:
DEVICE=c:\DRV\EMM.SYS PC 258 ND RD
DEVICE=C:\QRAM\QRAM.SYS R:2
DOS=umb
DOSDATA=UMB
DEVICE=c:\qram\loadhi.sys C:\PCDOS2K\setver.exe
FILES=30
BUFFERS=32
LASTDRIVE=H
stacks=0,0

Unfortunately I'm not in front of the system right now so I can't relay how much free RAM this gets me, but with the above plus a packet driver loaded and a few SUBST'd drives, IIRC I have 588KB free. I think I can load the packet driver into UMB but that will only gain me about 6KB. EDIT: Loading everything high (\qram\loadhi xxx) in autoexec.bat, using 4dos as the command processor (can load most of itself in EMS), and the above config.sys, and I have 594KB free.

Two theories on why this is working for me (ie. both UMB and EMS functional simultaneously): Either 1. I have 128KB contiguous upper RAM such that 64K can be dedicated to UMB and the other 64K to the page frame... or, more likely, 2. The same 64KB page frame is being used for both, and QRAM pages out the UMB area when something needs EMS, then pages it back in after the EMS request. I haven't looked too heavily into it because it Just Works(tm) which is good enough for me at the moment. (Hilarity may ensue if a program running in the UMB area makes an EMS request.)
 
Last edited:
My card is also LIM 4.0 and with EMS enabled I think I had over 610kb free with DOS loaded UMB. However, that was likely without the CD-ROM and ASPI driver.
 
My IBM 5160 has 612k conventional and 55k UMB free with mouse, cd-rom and some other TSRs. I have 128k UMB allocated from a 512k SRAM based board (0WS) in D000-EFFF and an Inboard 386 that gives me an additional 64k of higher memory. There might be more possible if i optimized a bit more, but i think its good already. Im even able to load Windows 3.11 on this machine in enhanced mode (2.3mb XMS, 8mb virtual memory). There are some Bugs i want to get rid of, but all in all im fairly happy with this system. Win95 could not be installed since i need 2.8mb of memory for the installer and 4mb for win95 to even start ;-)

Most software and games don't even need 600k of conventional memory...

-Jonas
 
Since you have high memory, this information isn't very helpful. XTs can't have high memory. Your system is really more like a 386 than an XT since it has 32-bit memory.
 
hello
yes ,did that test a year ago - windows 95 on Inboard 4Mb. But after a rather long install -read hours- , and reboot. The PC freezes. Examining the BOOTLOG.txt it shows that drivers (VxD) are loaded but when switching to Proteced mode the computer freezes..
My best estimate are the VPICD.VXD and the keyboard driver needs to be rewritten
/cimonvg
My IBM 5160 has 612k conventional and 55k UMB free with mouse, cd-rom and some other TSRs. I have 128k UMB allocated from a 512k SRAM based board (0WS) in D000-EFFF and an Inboard 386 that gives me an additional 64k of higher memory. There might be more possible if i optimized a bit more, but i think its good already. Im even able to load Windows 3.11 on this machine in enhanced mode (2.3mb XMS, 8mb virtual memory). There are some Bugs i want to get rid of, but all in all im fairly happy with this system. Win95 could not be installed since i need 2.8mb of memory for the installer and 4mb for win95 to even start ;-)

Most software and games don't even need 600k of conventional memory...

-Jonas
 
hello
yes ,did that test a year ago - windows 95 on Inboard 4Mb. But after a rather long install -read hours- , and reboot. The PC freezes. Examining the BOOTLOG.txt it shows that drivers (VxD) are loaded but when switching to Proteced mode the computer freezes..
My best estimate are the VPICD.VXD and the keyboard driver needs to be rewritten
/cimonvg

I think we moved away too much from the topic :p ... but i think its the A20 gate (remember, it was originally controlled by the keyboard controller), that the Inboard does not emulate 'correctly' which prevents the keyboard from functioning properly and i expect the other problems may originate there as well. Maybe other XT-peripherials play a role as well. If there was a way to connect another Keyboard though a Add-On card, i could actually use Windows or other Software that makes use of XMS

Back to the topic:
I have tested a bit more and have realized, that the Inboard actually does not play any role in the available DOS-Memory. DOS only uses UMB and not HIGH Memory even though the HIMEM.SYS actually identifies 64K of HIGH memory.
 
Back
Top