VOGONS


First post, by Predator99

User metadata
Rank l33t
Rank
l33t

I think what I have done here is really cool - I should keep it for myself to buy all these unneeded cards before publishing 😉 But thats no fun...

So...there seem to be many of ISA XMS/EMS Memory Extenstion / Expansion cards cards around. They are quite expansive when there are Drivers and Documentation available, e.g. the AST Rampage, Intel Aboveboard or DFI AT-Rambank. But its rather difficult to get all these "no name cards" running. Its nearly impossible to find the Software or find Documentation of the Jumpers.

In the meantime I have 4 of these cards, nothing to find about them.

It was not a solution for me to dump these valuable cards as unusable. As already mentioned in my other thread
ISA RAM Expansion card
all of these cards are capable of providing XMS. And some (if not most) of them also EMS.

- in general XMS is rather easy. The memory is mapped the same way as the memory on the mainbaord. The Jumper settings define the amount of memory on the ISA card and the location where it should start. In case you have 2048 MB on the Mainboard it should start directly after the 2048MB to have no overlap and no gap. This should run with himem.sys.

- EMS is more complicated as you have to open a EMS window of usally 64k in the lower adress space of 0-1024k. In this window, an area of the card RAM is mapped. This is driven by the EMS driver. This driver should be similar on all cards, however. But configuration of the Jumpers is more difficult as you have to define that EMS window additionally and figure out the IO-port.

For the Jumpers on the cards there should be the following:
- Select Total RAM size
- Select XMS/EMS Mode
- XMS only: select starting adress = Mainboard base memory size
- EMS only: select EMS windows location / size
- EMS only: IO/port for Driver/Window shifting

I 1st focussed on the XMS:
The 80286 has an adress space of 16MB. In protected mode, this memory is linear. The bottom 1024k of this area is occupied by the Mainboard RAM+ROM area. In the area above 1024k additional mainboard RAM follows.
When you insert an ISA memory card configured as XMS, it maps its memory somewhere in this area.
To understand the current jumper settings, you have to find out where in the 0-16MB 80286-space its memory is located. In theory it should be somewhere if the XMS/EMS jumper is set to XMS. As I have never learned protected mode programming, I searched for a program that scans the whole memory area and reports where is physically RAM located and where not.

The only program I have found is "Extended Memory Tester". Its performing more a test than a scan and It takes ~10 Minutes to complete a scan, but It reports the correct results!

Filename
testx33.zip
File size
6.72 KiB
Downloads
277 downloads
File license
Fair use/fair dealing exception

My test Setup is a VLSI 80286 with 1024kb onboard. I tried a RAM card I got recently
"RAM Electronics & Manufactury CO. LTD. AT Enhancer"

IMG_0144.JPG
Filename
IMG_0144.JPG
File size
843.82 KiB
Views
7593 views
File license
Fair use/fair dealing exception

It has 512kb of RAM on Bank 0. Ignore the 4 spares on Bank 2.

When inserting the card nothing happens, BIOS and DOS only detect the 1024k Mainboard RAM:

IMG_0140.JPG
Filename
IMG_0140.JPG
File size
175.99 KiB
Views
7593 views
File license
Fair use/fair dealing exception

I started "Extended Memory Tester" (be sure not to load himem.sys) with parameter 16384 to test the whole 16MB area:

TESTEXT 16384

As expected, it detected the 1.0-1.383MB area (which is the upper memory area of the Mainboard RAM). But it also detected 512 kb of RAM at 13.0M. Therefore this is its current location!

DSC_7573.JPG
Filename
DSC_7573.JPG
File size
666.73 KiB
Views
7593 views
File license
Fair use/fair dealing exception

Goal is now to find the Jumper setting to move this window behind the 1.383MB to have all the memory at the start without a gap. With this, it should be possible to use the ISA RAM with himem.sys. I played with the Jumpers...

Right DIP untouched (1=on, x=off)
12345678
11xx1111

Left DIP - Mem start
12345678
11x1xxxx -13.0M
x1x1xxxx- 5.0M
1xx1xxxx- 9.0M

OK, seems to work 😀 Memory start is shifting when playing with these jumpers! But do I like to test all combinations? No, this should be similar on all cards. So I compared with the DFI AT-Rambank settings:
http://www.minuszerodegrees.net/manuals/AT-RA … rs%20Manual.pdf

Left DIP - Mem start - DFI-AT-Rambank
12345678 - ------ - 1234567
11x1xxxx - 13.0M - xxx1x11
x1x1xxxx - 5.0M - xxx1x1x
1xx1xxxx - 9.0M - xxx1xx1
11xxxxxx - 12.0M - xxxxx11
Do you see it? 😉 Its the same, but other direction...

Therefore the needed setting is easy:
xxx1x11x - 1.384M - 11x1xxx (!!! Thats it. 384kb base + 512 kb ISA without gap!!!)
And "Extended Memory Tester" shows:

DSC_7575.JPG
Filename
DSC_7575.JPG
File size
626.42 KiB
Views
7593 views
File license
Fair use/fair dealing exception

Now I have all the RAM together.

Reply 1 of 104, by Predator99

User metadata
Rank l33t
Rank
l33t

Rebooted...and yes, the ISA RAM is detected by the BIOS and also by himem.sys!

IMG_0141.JPG
Filename
IMG_0141.JPG
File size
97.96 KiB
Views
7591 views
File license
Fair use/fair dealing exception
IMG_0142.JPG
Filename
IMG_0142.JPG
File size
715.92 KiB
Views
7591 views
File license
Fair use/fair dealing exception

Thats it. Rather easy 😀 Will also try with my other cards, hope it will also work that way.
And: Usually there is no need to use the EMS mode. You can use the card as XMS and configure the mainboard as EMS. This works at least with C&T and Suntac 80286 boards. Then you have XMS+EMS at the same time. Will try this later.

Would be happy to hear if my work is useful for you. Post your success stories 😉

Reply 3 of 104, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie
Left DIP - Mem start 12345678 11x1xxxx -13.0M x1x1xxxx- 5.0M 1xx1xxxx- 9.0M […]
Show full quote

Left DIP - Mem start
12345678
11x1xxxx -13.0M
x1x1xxxx- 5.0M
1xx1xxxx- 9.0M

I also see that binary 1101 = 13, 0101 = 5, 1001 = 9. These switches must correspond directly to the top 8 bits of the address.

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 4 of 104, by Predator99

User metadata
Rank l33t
Rank
l33t

Indeed thats easy!

And I think that correlation is valid for all cards of this type. You only need to know where to start. And "Extended Memory Tester" gives the answer. Try some jumper settings, note the starting adress, compare with the DFI manual and you know the correct setting for your setup.

What I also noticed in my Scrrenshots above: The 4 spare Chips on Bank 2 are also detected. "Extended Memory Tester" shows this bank as "FF1FF...".

Currently trying another card...seems also to be working that way, but total memory doesnt match yet.

Really fun to revive those cards which were classified as scrap so far 😀

Reply 5 of 104, by Predator99

User metadata
Rank l33t
Rank
l33t

Same method, next card 😀
"2M-EMS GA-229"

IMG_0155.JPG
Filename
IMG_0155.JPG
File size
1.31 MiB
Views
7531 views
File license
Fair use/fair dealing exception

Left block ("SW2") 1-7 correspond to DFI AT-RAMBANK SW2 S1-S7 for starting adress selection.
SW2-8: off

Right block ("SW1"): set all to on

...and you get 2MB XMS 😀

And the end I will combine all my cards to get 8MB in total in a 286 😉

EDIT: This card seems to be 100% compatible to the AT-Rambank. EMS configuration and driver is also working. Manual (http://minuszerodegrees.net/manuals.htm) + Driver (https://www.driverguide.com/driver/detail.php … driverid=210997) attached as backup...

Filename
DFI AT RAMBANK - ATRAM401 (1).ZIP
File size
34.62 KiB
Downloads
174 downloads
File license
Fair use/fair dealing exception
Filename
AT-RAMBANK Users Manual.pdf
File size
2.73 MiB
Downloads
198 downloads
File license
Fair use/fair dealing exception
Last edited by Predator99 on 2018-09-22, 16:42. Edited 1 time in total.

Reply 6 of 104, by Predator99

User metadata
Rank l33t
Rank
l33t

I am surprised nobody else is interested in this topic. Maybe you trashed your cards long ago and now you are annoyed :-p :-p :-p

This card is more difficult:
FCC ID: FIF48G PE505-16M
ZERO MADE IN TAIWAN

IMG_0157.JPG
Filename
IMG_0157.JPG
File size
1.84 MiB
Views
7488 views
File license
Fair use/fair dealing exception

SW1 SW2
123456 12345678

With 256k chips:
11111x 11x1xxxx 1,0 M
11111x 1111xxxx 1,00 M
11111x x111xxxx 1,256 M
11111x x1x1xxxx 1,256 M
11111x 1x11xxxx 1,512 M
11111x xx11xxxx 1,896 M
11111x 11111xxx 2,0 M
11111x 11x11xxx 2.0M
11111x x1111xxx 2.256
11111x x1x11xxx 2,256 M
11111x xx111xxx 2,384 M
11111x xxx11xxx 2.384M
11111x 1x111xxx 2,5 M
11111x 1111xxxx 3.0M
11111x 1x1111xx 4.5M
11111x 11x11xx1 10.0M
11111x xxx1xxxx 1,384 M
11111x x11x1xxx n/a
11111x 11x111xx 4,0 M
11111x 11x1111x 8,0
11111x 1x1111x1 n/a
11111x 11x111x1 12,0

____
Therefore for SW2:
1-2: Lo bits:

0 k 11x
0 k 111
256 k x11
256 k x1x
384 k xx1 (same as 896?)
384 k xxx
512 k 1x1
896 k xx1

4: No impact? Set to 1.

5-8: Hi bits (t=tested, others calculated):
1 M xxxx (t)
2 M 1xxx (t)
3 M x1xx
4 M 11xx (t)
5 M xx1x
6 M 1x1x
7 M x11x
8 M 111x (t)
9 M xxx1
10 M 1xx1
11 M x1x1
12 M 11x1 (t)
13 M xx11
14 M 1x11
15 M x111

Last edited by Predator99 on 2018-10-04, 11:09. Edited 5 times in total.

Reply 7 of 104, by stamasd

User metadata
Rank l33t
Rank
l33t

Don't worry I'm watching this with great interest. I have at least 2 or 3 ISA RAM cards without any docs which I collected over the years. The only problem is I'm currently in the middle of a few other projects but when I have some time again I'll start testing.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 11 of 104, by mrau

User metadata
Rank Oldbie
Rank
Oldbie
Predator99 wrote:

I am surprised nobody else is interested in this topic. Maybe you trashed your cards long ago and now you are annoyed :-p :-p :-p

it's not uninteresting, just no hardware here to play with;
would You be able to test how speed is influenced by isa? access times are of interest too.
i understand that this works without drivers only on 286, right?

Reply 12 of 104, by digger

User metadata
Rank Oldbie
Rank
Oldbie

I remember being surprised how I was still able to download the drivers for an 8-bit ISA Intel AboveBoard (model PS, I believe?) from Intel's web site, a recently as the 2000s! I'll need to do some digging through some drawers and boxes of floppies to find those drivers. It's about time I started backing them up, anyway.

Reply 13 of 104, by matze79

User metadata
Rank l33t
Rank
l33t

Ah i wish i had also one of these cards 😀

Nice 😁

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 14 of 104, by Predator99

User metadata
Rank l33t
Rank
l33t
mrau wrote:

it's not uninteresting, just no hardware here to play with;
would You be able to test how speed is influenced by isa? access times are of interest too.
i understand that this works without drivers only on 286, right?

Benchmark would be interesting. Do you know a Software...? It needs to draw a diagram KB vs. speed to discriminate between the onboard an the ISA XMS. I dont know such program for a 286.

Yes, 286 is the main target. On a XT you cant use the 16-bit cards. There are 8-bit cards around, but as far as I know they are only for filling the RAM below 1MB.
On a 386 these cards should run. But you dont need them as there is usually enough RAM onboard and you can switch between XMS and EMS with the EMM386 driver.

Reply 15 of 104, by mrau

User metadata
Rank Oldbie
Rank
Oldbie

not really, it would have to make use of 286 protected mode i believe;
there is that little program they use to make a diagram or RAM/Cache/Disk speeds and it also shows overall performance index if memory, cpu and disk - can't remember the name, i'm not sure it will run on 286 ;

Reply 16 of 104, by Predator99

User metadata
Rank l33t
Rank
l33t

To show what you can do with it 😉 Put a card in my main 286 system with a Suntac ST62 board. It has 1024 kb onboard (can be extended up to 4096 kb, but I am too lazy 😉 )

The RAM above 640 kb can be configured as EMS or XMS with a DIP switch with the ST62 chipset (also possible with many other chipsets).
EMS: usage with SEMS.SYS driver
XMS: himem.sys

When configured as EMS, the RAM is not shown on system startup screen (only 640 kb).

So I inserted "2M-EMS GA-229" card (see above, 2048 kb MB installed) and configured the starting adress "1.0 M" on it.

On system startup, the additional memory is detected. 640 kb base + 2048 kb ISA card = 2688 kb.
I have to admit, checking gets slower after passing the first 640 kb.

IMG_0171.JPG
Filename
IMG_0171.JPG
File size
510.05 KiB
Views
7388 views
File license
Fair use/fair dealing exception

Loading of the ST62 sems.sys driver. 24 pages of 16 kb = 384 kb. 64 kb page frame at E000h

IMG_0165.JPG
Filename
IMG_0165.JPG
File size
884.11 KiB
Views
7388 views
File license
Fair use/fair dealing exception

checkit.exe:

IMG_0169.JPG
Filename
IMG_0169.JPG
File size
1.54 MiB
Views
7388 views
File license
Fair use/fair dealing exception

640 kb base + 2048 kb XMS + 348 kb EMS 😀

Memory usage:

IMG_0170.JPG
Filename
IMG_0170.JPG
File size
1.71 MiB
Views
7388 views
File license
Fair use/fair dealing exception

Only problem: Although there is enough ROM space, sems.sys crashes when I additionally install a XT-IDE BIOS. Dont see the reason for it, maybe a bug in the driver. I will fix this when I have some more time, the source of the sems.sys driver is available.

Reply 17 of 104, by Predator99

User metadata
Rank l33t
Rank
l33t

Did some more playing with that. I didnt find out the reason for the conflict between the sems.sys and XT-IDE. Both use different I/O ports and memory areas. Really strange.

But: Figured out my "2M-EMS GA-229"-card is fully compatible with the DFI Rambank! Also the EMS-mode and the drivers are working 😀 Have attached them under my post above.

Reply 18 of 104, by stamasd

User metadata
Rank l33t
Rank
l33t

I have a number of ISA memory cards, of which at least 2 are unidentified. I posted them years ago in the "bought hardware" thread in hopes that someone would identify them and/or have drivers/manuals, but no luck. Next week when I have some time off from work I will probably start testing them with your method. One is a Kouwell card with 6 banks of 2x 256k x9 chips, so should hold up to 3MB (currently only bank 1 is populated with 64k chips, so 128k). The other is a dinosaur, 2 PCBs stacked on top of another; it has 10 banks of 256k x9 chips on each PCB, all populated (soldered not socketed) so 5MB total. Manufacturer unknown. I also have a couple of known cards, AST Rampage and Rampage286 which I can use to calibrate my detection skills. 😀

TBH for me making them work as EMS would be more interesting than XMS, but I'll take what I can. And since the intended use I have for those is early 286 computers, no EMM386 or chipset-based EMS will be an option. 🙁

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 19 of 104, by Predator99

User metadata
Rank l33t
Rank
l33t

In the mean time I had some time and decoded the DIPs for the "FIF48G PE505-16M" - inserted above.

In this pile
Bought these (retro) hardware today

I got another card.

IMG_9749r.jpg
Filename
IMG_9749r.jpg
File size
1.11 MiB
Views
7172 views
File license
Fair use/fair dealing exception
IMG_9754r.jpg
Filename
IMG_9754r.jpg
File size
1.27 MiB
Views
7172 views
File license
Fair use/fair dealing exception

Its totally no-name ("CE 49107"?) and has 1 bank of 4164 chips on it (=64 kb). 6 banks in total, are 3MB if filled with 256k chips.
1 DIP block with 6 switches (JP1), another one with 8 switches (JP2).

Replaced the 64k with 256k chips and...:

JP1 has no impact on XMS. (Set to 12345x)

JP2:
1234x6xx 9,5
x234x6xx 9,5
12345xxx 9,0
1234xxxx 8,5
xxx456x8 6,0
x2x4567x 4,0
x2x4x67x 3,5
x2x456xx 2,0
xxx456xx 2,0
xxx45xxx 1,0
x2x45xxx 1,0
12x45xxx 1,0
12x4x6xx 1,5
123xxxxx 512
x2x4x678 above 6mb
xx345xxx above 6mb

--> working 😎 😎 😎

____
EDIT:
SW 1,2: seem to have no impact? Set to OFF.
SW 4: set to ON ...otherwise counting at POST stops below 1024k
SW 35678: see below

Still need to figure out how to set steps at 128/256/384 kb. Should be related to SW 1,2,4,5.

0M 512K --- SW35678
1M 0K --- x5xxx verified
1M 512K --- xx6xx verified
2M 0K --- x56xx verified
2M 512K --- xxx7x
3M 0K --- x5x7x
3M 512K --- xx67x verified
4M 0K --- x567x verified
4M 512K --- xxxx8
5M 0K --- x5xx8
5M 512K --- xx6x8
6M 0K --- x56x8 verified
6M 512K --- xxx78
7M 0K --- x5x78
7M 512K --- xx678
8M 0K --- x5678
8M 512K --- 3xxxx verified
9M 0K --- 35xxx verified
9M 512K --- 3x6xx verified
10M 0K --- 356xx
10M 512K --- 3xx7x
11M 0K --- 35x7x
11M 512K --- 3x67x
12M 0K --- 3567x
12M 512K --- 3xxx8
13M 0K --- 35xx8
13M 512K --- 3x6x8
14M 0K --- 356x8
14M 512K --- 3xx78
15M 0K --- 35x78

Last edited by Predator99 on 2018-10-08, 17:59. Edited 5 times in total.