• Please review our updated Terms and Rules here

Lo-tech 2MB RAM card & HIMEM.SYS ... ?

DeathAdderSF

Experienced Member
Joined
Jul 2, 2016
Messages
316
Location
USA
Hello, all.

I've got one of the fancy Lo-tech 2MB ISA RAM cards installed in my 286. In CONFIG.SYS, I load the driver for this card (LTEMM.EXE) followed by HIMEM.SYS ... but while the RAM initializes successfully and some programs + games can use it, it's not detected by HIMEM.SYS. My prime "need" is to load DOS high, so I'm hoping someone can provide the proper switches for HIMEM.SYS to get this RAM card working with it. I'm running MS-DOS 5.0, if that's any help.

Thanks in advance.
 
It will not work. HIMEM.SYS manages EXTENDED memory and the 2MB ISA RAM provides EXPANDED memory.
 
D'oh !

OK, then ... is there a memory manager program for 286s that can facilitate this?
 
How much memory is in your 286 before you add the card? If it has 1 MB onboard you can try loading himem.sys first as himem.sys and EMS can co-exist.
 
To load DOS in the HMA (High memory area) it must be available and that means that physical memory must be present just above the first megabyte. If your 286 system only has 640 KB or less, it is not possible.
 
The machine in question, Tandy 1000TX, is also XT class, i.e. it doesn't have A20 connected.
 
Here's a great thread that also discusses using EMS as HIGH memory: http://www.vcfed.org/forum/showthread.php?11287-DEVICEHIGH-LOADHIGH-upper-memory-on-an-XT

I also have the 2MB Lo-tech EMS card and have managed to use it for 64K of High memory. The Lo-tech card only has a single 64K window into the EMS memory so that means you cannot use EMS memory while you are using that 64K window for High memory. It's easy enough to modify your config.sys and autoexec.bat to allow you to choose to use it for High memory when you absolutely need the extra space or EMS memory when you need it. :thumbsup:

If you want true high memory for your machine, get the Lo-tech 1MB card. You can turn on or off memory in 64K chunks up to 1MB. This will allow you to turn on memory in the >640K range anywhere you have space not being used by other devices. :)

Heather
 
Let's not confuse UMA with HMA. The Lo-tech 1MB RAM card provides only UMA via 64kb pages from A000h to EFFFh. F000h to FFFFh is reserved to the system BIOS. These are UMB's (Upper Memory Blocks).

High Memory Area is the first 64Kb above the 1MB RAM, in other words is right after the upper memory block reserved for system BIOS.

The Lo-tech 2MB EMS board does use a single 64kb page frame in the upper memory block, typically on the E000h region, which i think is the default configuration. So the board will allow you to use the first 64Kb above 1MB (aka HMA), which is being provided via the 64kb UMB page frame. So yeah you can use the HMA, but you will also take 64Kb from the UMA area.

So using both a 1MB RAM card and a 2MB EMS card on an XT requires that you disable the UMB area on the 1MB card so that the EMS card can use it to provide EMS or HMA. Not very useful on an XT IMO unless you really want to run Lotus 1-2-3.

On a 286 though if you only have 1MB system memory then you can use the EMS card and HIMEM.SYS.
 
...Can someone tell me the benefit of using both 1MB RAM and 2MB EMS cards in an XT? I was under the impression that the 2MB card provided 2MB total, filling the remainder of the first 1MB with RAM and using the upper 64KB for paging to the rest of the 2MB. What benefit would also adding a 1MB card have?
 
...Can someone tell me the benefit of using both 1MB RAM and 2MB EMS cards in an XT? I was under the impression that the 2MB card provided 2MB total, filling the remainder of the first 1MB with RAM and using the upper 64KB for paging to the rest of the 2MB. What benefit would also adding a 1MB card have?

A 1MB RAM card is more useful on an XT than a EMS board. Depending on different implementations, EMS would use a block of memory, typically from the UMA, to bank switch between the physical RAM on the EMS board. This was an inelegant design, and was viewed as just a stop gap measure. Programs needed to be specifically coded to use EMS and some did and took advantage of it, namely Lotus 1-2-3.

I don't really see the EMS card being useful on an XT if you already own a 1MB card. Of course if all you own is a EMS card you can always use 64KB to load DOS while freeing some conventional memory in the process. This is because typically the EMS card will use an upper memory block (UMB) from the upper memory area (which goes from A000h to FFFFh) as a window to access the physical RAM on the board. So those 64Kb from the UMA will be a door open for the first 64Kb after FFFFh which is known as HMA (high memory area).

You can't think a 2MB EMS card is gonna expand the memory in the conventional way we think because this is not the way it is supposed to work. Also remember that a 8088/8086 have an architectural limit of 1MB RAM memory. That's why you need an EMS driver, the EMS card will use a window of memory inside the 1MB limit and that it will do bank switching so that you can use whatever physical RAM you have in the EMS board.

Unless you want to use a program in your XT that specifically requires EMS my advice would be to use the 1MB RAM card only. Using both may give you 64Kb of the HMA but you will also lose 64Kb from the UMA. Only win is EMS support.
 
OK, I found this post by pearce_jj stating the 2MB EMS card just provides the 2MB in banks at a specified memory range (C000, D000 or E000). I thought it mapped the first 1MB as RAM to the 512/640K-1MB range, then banked the remaining 1MB.

I guess I'll be getting a 1MB RAM card then (unless I can somehow expand the number of ISA slots I have and use both...)
...Is expanding the number of ISA slots as easy as wiring up all the lines of 1 ISA slot to 2 slot connectors?
 
...I guess I'll be getting a 1MB RAM card then (unless I can somehow expand the number of ISA slots I have and use both...)
...Is expanding the number of ISA slots as easy as wiring up all the lines of 1 ISA slot to 2 slot connectors?
In some cases you can use a riser card to increase the number of ISA slots:

attachment.php
 
A true EEMS/EMS 4.0 card (the Lo-Tech card emulates part of EMS 4.0 with its driver) actually can put memory anywhere in the address space, and those are IMO ideal - you get full EMS support including task swapping, you get to backfill the motherboard RAM, and you can do it in one card. The problem is actually getting one, of course...

Mind you, most of my SixPakPremium (one card with 1-2 MiB EEMS (I want a PremiumPak to get it to 2), parallel, game, RTC, and 2x serial ports) memory is mapped into conventional (which is extended to 736k in my config) or UMA space. However, in addition to all of the UMB mappings, I've also got things like my disk cache and some drivers that support it loaded at least partially into EMS. Reduces conventional and UMB pressure even further - really, I've got just as much flexibility for loading things high as I would on a 386.
 
Only the fixed window is required for EMS4. The dynamic mapping is optional.
 
My prime "need" is to load DOS high, so I'm hoping someone can provide the proper switches for HIMEM.SYS to get this RAM card working with it. I'm running MS-DOS 5.0, if that's any help.

Thanks in advance.

If you are willing to waste the 2MB from that card to load DOS "HIGH" in order to gain free conventional memory, there is another path: USE!UMBS and DOSMAX. With these two drivers you can load DOS in the Upper Memory Area
All info in this thread
 
Thanks Nestor for pointing this up!, can't remember if lo-tech themselves have ISA proto boards; but building this extremely simple solution for cheap could be a great idea.
 
I have a design for one, as always they problem is the hours needed to push these things over the edge into products!
 
If you are willing to waste the 2MB from that card to load DOS "HIGH" in order to gain free conventional memory, there is another path: USE!UMBS and DOSMAX. With these two drivers you can load DOS in the Upper Memory Area
All info in this thread

That was the point i was trying to make all along. Using 64KB of UMA to get 64KB of HIGH makes little sense. Better to keep the 2MB of EMS and use a 1MB RAM card like the lo-tech card to give UMB's. I use one with USE!UMBS and DOSMAX. I have loads of stuff loaded into UMA, and still have about 50k left, while my conventional free memory is 629k.
 
Back
Top