• Please review our updated Terms and Rules here

Zero-K resident enabler to use Lo-Tech EMS or compatible as UMB with use!umbs.sys

Eudimorphodon

Veteran Member
Joined
May 9, 2011
Messages
7,074
Location
Upper Triassic
I don't know if anyone might be interested in this, but based on some sad hackery of some code I found on Stackexchange (or was it pastebin?) I threw together a little "non-driver" that initializes the page frame registers of a Lo-Tech EMS board or compatible and exits to ensure that there will be unique pages of RAM filling the EMS page frame for use by use!umbs.sys.

(I wrote this because my homemade EMS memory card, which is register-compatible with the ltemms.sys driver but implemented with different hardware, comes up with the page frame registers set at random, so you can't simply use the EMS as a UMB without initializing it. I assume that's the same with the Lo-Tech board unless there's some difference in behavior between the 74LS573 and 74LS670 I'm not aware of.)

The executable in the zip file, ems_umb.exe, can be called from the command line (although that doesn't accomplish much) or, more usefully, included as the first entry in config.sys. The program is hard coded to expect the registers to be at the default 260h, you'll need to re-assemble changing "regbase" accordingly if you've moved it. All it does is slam "0,1,2,3" into the four registers and exit, no resident driver remains. If you load the ltemms.sys driver either before or after it'll just clobber your UMB.

The example code I used for the config.sys load-ability originally used pusha/popa so it would only work on a .186 or higher. I crudely hacked that out and it compiles with CPU type .8086, but I haven't actually tested it on less than a v20. It *should* work.

The README file in the .zip has an example of a config.sys using it. (and switching between EMS and UMB at boot time.) Per the README, I take no responsibility if your computer explodes, assume it will.

View attachment ems_umb.zip
 
Back
Top