0 - Lets build an ISA Shoebox DOS Machine

Author: sgeorge, Posted on: 19 February 2016 20:41

This is a post I made on the vogons forum,

My industrial shoebox build!

So, for some tinkering and upcoming projects I needed ISA slots. I opted to go for a nice ISA backplane instead of a huge motherboard / chipset extravaganza.

I did briefly look at PICMG boards (those isa slot boards that have a PCI inline with them, they look unusual if you have never seen a proper PICMG slot) but decided I didnt need the power of PCI and the complications of having both PCI and ISA and the craptastic chipsets of that era.

So a plain old ISA backplane. 14? 20 slot? nice and cheap but good luck getting a nice cheap chassis that can fit a 20 slot backplane! ouch.

In the end I had a passive 7 slot ISA backplane.

Aaah I love these shoebox chassis. Cards in the top, lots of room for access. Power supply in the bottom. fan at the front. Oh man, you know its vintage, it has the extra connector on the back of the PSU to plug the monitor into.

Hmm this is a 200 or 300 watt AT style PSU. Oh man, I hate these AT psu connectors. Just hope the wire colour is correct and do the old black to black. (I actually tested with a multimeter before I powered it on)

Originally I looked for a 286 based SBC, but those rare few that popped up were right bloody expensive... so you settle! :)

Since you need a chipset, you need a SBC (single board computer) that integrates it all. I got a nice half size 486dx4-100WB sbc, PCA-6144 from Advantech. Cool 100mhz, 2x72 pin simm slots with capacity of 64mb ram, well known/understood VIA VT82C496G chipset. This SBC has a really cool feature which I will talk about later :)

Sweet!

Time to do some digging. Firstly, VIA VT82C496G supports 8 banks of DRAM up to a max of 128mb ram. Each bank can compose of 256K, 512K, 1M, 2M, 4M, 8M and 16MxN DRAMs. These days if you buy new ram your really only going to see 16MxN DRAMs.

Second, it has tag ram cache, and each RAM limit requires a certain amount to be cacheable.

All the Advantech literature underline a 64mb RAM max, and it has 128kb cache.

If we look on page 9 of the VT82C496G data sheet we see a really handy table showing us that 128K cache will cache 128mb! whoooo

This meets the VIA requirement for 128mb ram, so off to ebay, for two 16MxN DRAMS in 64mb configuration for about $10! Also got a pair of 32's incase the 64's dont work.

In they go.... and yes it works. I presume way back, 128mb were too expensive so Advantech never certified them, or 128s didnt exist at the oint they were manufactured (I doubt this one tho).

So at any rate, you can run 128mb on the PCA-6144s despite what Advantech tell you.

Heck, I even wrote a quick utility to do ram check to see what the chipset was reporting incase the 128mb didnt work.

We can poke the chipset using its internal register 0x43 and 0x44 which will decode the DRAM configuration.

The two SIMM slots on the PCA-6144 equate to bank 0 and bank 2 respectivly.

Download dram_chk.zip

I should run SST478 to verify the memory.

So wthi CPU + RAM out of the way, lets move on to video. Since its plain ISA, not VLB or EISA, this is obviously not a gaming machine, but I still wanted some halfway decent video card. Originally I wanted an ET4000, i really love those cards but they are expensive on ebay to find the right ones. I did pick up a Diamond Speedstar PRO with a Cirrus Logic GD5429 chipset. the '29 is a nice chip. I think it was the last ISA chip CL made, after this it was all VLB etc.

I could not find any BIOS online for this, it came with 2.15, so I dumped it. I spent ages trying to figure out why my dump was bad until I realised they had shoehorned two roms into one. Often on these old cards you will see they have two roms, possible a hi/lo type deal. That would explain what I was seeing in the dump. Its a 32kb rom (27c256), but the first 16kb are the even bytes, and the last 16kb of the rom are the odd bytes. Maybe I'm totally wrong, it seems a bit odd to me. obviously it decodes correctly and runs...

doh!

Which means if I burn a rom I'm going to have to cut it up before I burn it.

I did later find a 1.xx, 2.xx and 3.xx rom for my card, so I need to find a replacement (I dont have the means to uv erase it), shame you cant drop in a 28c256 into a 27c256 place without some shenanigans. Guess I could drop a converter board off via OSHPark but 28c256 are expensive.

Shoot, might just have to live with the ROM its got. Not a big deal. I thought the card had 2mb on it but it only has 1mb.

I'l make the ROM available on my site if anyone wants it.

The display is nice on my old 4:3 LCD (The only CRT I still have is for the C128, Its a CBM 1902A and not vga compatible!).

The nice thing, it does not have a shitty/funky 'l' character. Some VGA cards back in the day had a nasty looking lowercalse L character, and I hated that with a passion. ugh. Thankfully this card does not!

Lets move on to sound. aah fun stuff. I really wanted an original AWE32 (Because Nostalgia!) even tho this is not a gaming machine. My original non-pnp AWE32 is somewhere in my parents house in a box somewhere back in another country... Since original non-pnp AWE32 are very hard to come by (and when they show up, are not cheap), I settled for a second generaiton SouldBlaster 16. This card is the semi-pnp model with DSP 4.11 and the proper OPL chipset (the CT1747 licensed chip). This is a CT2230 model that has all the proprietary CD interfaces on it, Mitsumi, Panasonic, Sony.. All those nasty things disabled with a single jumper!

Using its onboard jumper were set to the traditional IO port of 0x220!

Last card to go into a slot is the always ever reliable 3COM 3c509b-tpo Etherlink III. Not much to say, its like a 1 chip isa card. All we need is a tiny packet driver in dos, and were golden!

That was the last ISA card but we still need storage, so, off to ebay to get a dual compact flash card solution from china for $2!

Looks like there is a glut of new/new old stock Kingston 4gb CF cards. I suspect these are fakes, why else would lots of chinese sellers have laods of 4gb NOS cards? strange.

I bought one, and its working fine in my 40 pin IDE to CF converter.

So, the sum of our parts;

  • 7 Slot passive isa backplane
  • PCA-6144s SBC with, 128mb ram and an Intel 80486dx4-100-wb
  • Diamond Speedstar PRO, 1mb
  • Sound Blaster 16 CT2230
  • 3COM 3c509 Etherlink III

Software side, its time to get things going. I didnt want to have a 4gb card and try and load it up on FAT16 with DOS6.22... So I did an install of MS-DOS 7.1 and used FAT32 on the drive.

To make life easier (and here is where I ran into issues), I dumped the CF card to an image using DD (yes, I'm a linux guy, not a windows guy) to get the correct size, then I fired up VirtualBox and did all the setup there. So, I have a 1gb DOS partition. Because virtualbox uses PCNet emulation for its network I setup a pcnetiii packet driver as well as the 3com 3c5x9pd.com packet driver so I can use the mTCP tools to DHCP an IP lease and then FTP to my server to get stuff easily onto the dos partition. This worked out super well.

Now with the remaining 3gb, I installed Ubuntu Server LTS 14.04 because that was the last version to support i386 level hardware.

Sweet, convert out VirtualBox VDI disk image back to a raw binary image we can DD dump back onto the CF card.

Bootup.... FAIL. wtf?

Lots of messing about later, it looks like our real hardware is using LBA to see the 4gb disk, but VirtualBox is not using LBA, thats my assumption because reading sectors from the disk in debug (yay rescue disk) was giving different results than I expected. Wow, even after all this time I remember how to use INT 0x13 to read sectors. No problems in VirtualBox whatsoever, dos, linux all happy campers, no errors on any disk tools etc.

I ended up using fdisk on the real hardware, making partitions and dumping that back into virtual box and linux fdisk showed lots of overlap errors, etc which points to it seeing different geometry than the real hardware.

Unfortunately I didnt think to use BOCHS at the time.

Anyway...

So... were going to set this baby up manually the long hard way. Good thing the rescue disk I made had fdisk, format + sys on it!

Time to delete all the partitions, fdisk it, reboot, format and sys the new C: from the rescue A:... so now with the 3com packet driver on the rescue disk (yay thinking ahead), I can FTP what I need from my server, after I boot the virtualbox image and ftp it up from there...

Once I realised that, getting DOS setup was easy for the most part, and frustrating a bit if you didnt know what to look out for. Why was things very intermittent? hmmm...

A little hardware recap should make it obvious!

  • 3COM network, fully PNP
  • SB16, half PNP
  • PCA-6144s SSD, no pnp.

Wait, SSD? OK, now might be a good time to talk the cool feature of the PCA-6144s SBC I was using...

It has an onboard SSD... but this is back in the 486 days, and an SSD to them is not an SSD to us now. Basically, it has 3 sockets above its BIOS socket that you can either stick 3 SRAMS or 3 EPROMS, It can handle 3x512kb chips giving you a 1.44mb disk image, or 3x128 giving you a 360kb image.

I have 3x512 EERPOM in it with a 1.4mmb MS-DOS7.1 rescue disk image.

This SSD feature uses an option rom at 0xC800 to 0xCBFF, and an 8kb window that sits at 0xD000-0xD1FF, and it jumpered IO is either 0x210, 0x220, 0x230....

huh. OK, when we set this up we jumpered for 0x210 to not collide with the SoundBlaster on 0x220. We have set its two comports to RS232 instead of RS485, disabled the second com port and parallel ports in the bios (dont waste those IRQs or DMA channels!)

First thing I did was move the SSD window from 0xD000 to 0xCE00 so were using contiguous 0xC800-0xCFFF space, freeing up all of 0xD000 up to the BIOS for DOS Himem space.

hmm... still issues. Lets look in the Creative CTCU program (quick hack to remove its environment variable check to see if its running under windows).

aaah, the 3COM card, being fully PNP decided to use IO space 0x210!

ok, lets move the SSD to 0x230 and we have it working sweet.

Now we run the 3com PNP tool to make it happy and were gold.

Whats left + final thoughts on current testing

  • I need a longer IDE cable with two connectors so I can bootstrap ubuntu 14.4 onto the rest of the CF card
  • Split ps2 mouse/keyboard adapter so I can play Ultima 6 properly.
  • Anchor the CF card to the chassis..
  • Test out some old favs like Cronologia or some of my own old stuff (I have noticed some of my old pmode code does not like the dos7 vcpi over the dos6 vcpi)...
  • writing code in dos on E (semware edit) for watcom.. wow painful...
  • finding my old purchased copy of watcom 10.6 cd and getting stuff installed in dosbox and getting dragged over ftp... not fun lol!
  • giving up fat32 for dos6 + qemm... hmmm food for thought.

tags: 80486, ISA


Comments


Submit A Comment

(dont include links in your comments.)

Name
EMail
Comment