This is the first release of the LIM EMS 4.0 compatible SQEMM max driver. The min driver is not included at this time. Not all chipsets are included at this time.
The included supported chipsets and add on boards at the moment are:
VLSI SCAMP/TOPCAT
C&T SCAT
C&T NEAT
Headland HT18/GC103
LoTech ISA EMS Board
"Standard" EMS boards
Fantasy EMS Card
WD76C10
Other chipsets will come soon as I have hardware access to them again.
Basic usage:
DEVICE=SQEMM.SYS
The driver will attempt to work with default values or fetch values from the chipset registers, etc depending on the exact installation, but best results may come from using parameters.
PARAMETERS
Parameters are prefixed with a dash and may or may not have a single equals sign after the parameter.
-FD000
Page Frame. Depending on chipset, allowed values differ.
-C128
EMS Page Count. In pages of 16 KB. 128 corresponds to 2MB
-O68
EMS Page Offset. In pages of 16KB. For chipsets or boards supplying conventional and extended and expanded memory - Expanded memory is what comes last. Usually the BIOS has options to set these values, but in the case they do not you can use the -O and -C options to properly set your EMS locations. 68 is a common values that leaves everything except 1MB plus 4 pages (for himem) to be set as EMS. If you want 1MB of conventional and 1 MB of extended memory, for example, then set this to 128. The -O and -C options should add up to your total installed system memory.
-P208
Port, for systems with configurable ports.
-H32
EMS Handles. It's probably extremely rare to use more than a couple handles. The maximum per spec (255) is installed per default. That takes up about 5KB of resident memory. Lower this to 32, 16, or even less to reduce the memory taken by the driver.
-Q
Quiet mode. Prevents output during driver setup.
-X
Fail on completion. Runs all the setup code but fails at the end and does not actually install the driver.
-R
Resident UMB mode. This installs the driver and defaults the page frame to pages 0-3 instead of unmapped. Pair with the -X option to enable the page frame as a 64kb UMB section.
EXAMPLE:
DEVICE=SQEMM.SYS -o128 -FDC00 -p208 -c384 -h16
Installs the driver using 384 pages (6 MB) of EMS memory starting at the 2MB mark with 16 handles and a page frame of DC00 using port 208.
Some NOTES
- For chipsets with no page frame value in chipset, there is a default (D000) frame chosen if none are provided via driver params. This does not check for shadowed memory or ROMs. Supply the page frame as a parameter to avoid complications
- Standard EMS board can take in a port and frame definition but does no actual programming of the board. It assumes either the board had jumpers or you ran a sys file to program the card beforehand. I will need more information on various boards to have a good way to program all these boards in one driver.
- Multiple devices are not supported. I think early 3.2 style cards using original drivers had an ability to support multiple cards at multiple ports. I don't think I expect to implement this.
- For chipsets (or BIOS) that don't provide a way to lower extended memory (XMS) to leave left over memory to be allocated to expanded memory (EMS), if you plan to use himem.sys you may need to use the int15 parameter to leave the desired memory to be safely allocated to EMS without overlap. Some chipsets like GC-103 don't seem to have a way to do this via chipset, while some BIOS don't let you lower the extended memory boundary (seen in various HT18 and SCAMP chipset BIOS at least).
- In general, 384k relocated memory is not used by the driver
- HT18 supported targeted a rev B implementation. Not sure if other revisions work?
- If the user wants to pass in broken parameters, this may crash the driver. My philosophy for this is - I don't want possibly faulty checks on my side preventing the user from trying things. If you want to experiment and end up crashing the system, figure it out. Use F5 to bypass config.sys on next boot. I mostly want to try and get automatic configuration to work properly or safely.