Re: Driver for EMS boards.

Anthony Barbachan (
Wed, 20 May 1998 23:33:35 -0400

-----Original Message-----
From: Mike A. Harris <>
To: Anthony Barbachan <>
Cc: Linux Kernel mailing list <>
Date: Wednesday, May 20, 1998 5:02 PM
Subject: Re: Driver for EMS boards.

>On Tue, 19 May 1998, Anthony Barbachan wrote:
>> >I'd like to have a driver that would turn an old 286 EMS RAM
>> >expander board into a RAMDISK that could be used for a swapfile,
>> >or temporary space.
>> I do not think these boards had any consistant interface except for the
>> provided by the DOS EMS driver. Unless you can get information on how to
>I figured that every EMS board was probably unique, at least in
>the way that it worked, IO ports, etc... otherwise my job would
>probably be relatively simple.
>> communicate directly with your particular hardware a Linux driver may not
>> possible. However if you have the original DOS drivers, you can get this
>> information by disassembling the drivers and tracing down generalities of
>> how they work.
>Yes, I have downloaded the driver for DOS from AST. It is
>called: REMM.SYS. It is from the file REMM470.ZIP from their ftp
>site. I used a DOS DEBUG script to disassemble the file, and

CV.EXE on a running driver would work better.
I think DEBUG.EXE also would also work on a running driver, but it will be
alot more difficult to look around with debug.

>although the output isn't amazingly useful, I did find many OUT
>instructions, which probably do the magic I need to know.
>Unfortunately some of the OUT's are in the form:
>Where DX is not easily determined because it is calculated from
>some existing value via a prior INC or DEC instruction, or an OR
>or AND instruction. ;o(
>Some of the hard coded addresses that I found are:
>0x43, 0xFB, 0xE8, 0xEA, 0xF9, 0xE072, 0xE872

Any jumpers on the card? I think it may be unlikely that AST would have
hard coded the address into their driver.

>I don't know what any of these are, but I suspect all the 8 bit
>ports are DMA controller, or some other standard PC hardware, and
>that the 0xExxx ones are the EMS board... I dunno for sure
>> >I have a friend who wants to run Linux on a 486 with 8M, but he
>> >has tonnes of 30 pin SIMMs and whackloads of 286 EMS boards. I
>> >figured that someone else must have allready had an interest in
>> >developing a driver for Linux to use such a board as swap, and I
>> >don't want to duplicate the effort if one exists.
>> SIMM converters might be a better option as they should allow you to use
>> these chips directly as memory.
>SIMM converters are probably more expensive than just buying new
>memory for it. If we found some for free it would be ok, but it
>is doubtful. I kindof wanted to do the EMS driver for fun
>anyways, just so I could say I wrote a Linux driver. ;o)
>Or if I could find an existing driver for Linux, that would be ok
>> >Can someone point me in the right direction?
>> >
>> >If no such driver exists, I'm interested in writing my own. I
>> >have never written any kernel level code as of yet, but figure
>> >that such a driver can't be that difficult.
>> >
>> >Any pointers to writing such a device driver would be greatly
>> >appreciated. I'm going to look at the DOS driver in DEBUG and
>> >try and figure out what its doing.
>> >
>> I can give you the list of functions that the original drivers had to
>> provide. Do you happen to know which version of EMS the boards provided?
>I have no idea. All I can say is that the board is:
>AST Rampage Plus 286
>Serial Number: 3808764
>Copyright 1988
>The date codes on the newest IC is: 8937
>That means somewhere around August 1989 or so. What version of
>the EMS specs was out at the time?

This I do not know. Although I'd suspect 4.0 as Windows and XMS should have
started to become popular by then.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to