• Please review our updated Terms and Rules here

My IBM 5160 XT Build

SkydivinGirl

Veteran Member
Joined
Jan 12, 2012
Messages
507
Location
Raleigh, NC, USA
After my PC10-III Build, I really wanted to get an 8088 system with more slots than the three that are available in the PC10-III. Since I also wanted to get an IBM PC, the 5160 was the perfect choice. I was extremely fortunate to find one locally for a good price. It had a full height floppy drive, a Seagate MFM hard drive (working 100%), and most every slot was fitted with a card.

Here are the components I used to upgrade the system (From Slot 1 to Slot 7):
Octek EVGA-16 REV 2.1 VGA Card
Roland MIF-IPC-A Clone Card by Bryce - http://www.amibay.com/showthread.php?57231-Cloning-an-MIF-ISA-Card
Generic SoundBlaster Clone
Lo-tech 2MB EMS Board - http://www.lo-tech.co.uk/wiki/2MB-EMS-Board
Lo-tech 1MB RAM Board - http://www.lo-tech.co.uk/wiki/1MB-RAM-Board
XT-IDE Rev 2 IDE Controller - http://www.vintage-computer.com/vcforum/showthread.php?29202-XTIDE-Rev2
Sergey’s ISA Floppy Disk and Serial Controller - www.malinov.com/Home/sergeys-projects/isa-fdc-and-uart

I had originally planned on using Sergey’s ISA Super VGA card but I simply could not get it to work in the 5160. It’s a shame because I really like that card. I’m also having trouble with the EVGA-16 card randomly blanking the screen. It happens very often so I need to track down the issue.

The MIF-IPC-A card will allow me to play games that use MIDI sound but I may remove the card from this system. I’m preparing to do a 486 build that should play every game that uses MIDI sound. The SoundBlaster clone works perfectly and gives me a game port.

The 2MB EMS board is nice and I’ll most likely setup a boot menu selection to either use the 2MB EMS to load DOS high or not. It’s a simple configuration that will let me get the extra conventional memory if needed. Since my main board only has 512K installed, I’m using this board to provide the extra 128k and it’s also providing two 64K blocks of upper memory.

The XT-IDE Rev 2 is an excellent controller and it provides a high speed serial port, which is great to use with the SerDrive function in the XTIDE BIOS. Sergey’s floppy and serial controller is great for adding high capacity floppy drives. It also provides another serial port that I’ll be using as a mouse connection.

I’ve filled both full height bays with an IDE CF Adapter to use as the hard drive, a storage drawer below, a Gotek 1.44MB Floppy Emulator, and a 1.2MB 5.25” Floppy Drive. I only had beige 5.25” drives so I used a vinyl dye/paint to change from beige to black. I’m very happy with the results. It seems that the 5160 was never designed to use half height drives so mounting them was tricky. Does anyone have suggestions on mounting half height devices in the 5160?







Next steps:

I’d like to add a parallel port or network controller to the system. Given the Slot 8 restrictions, I’ll most likely need to sacrifice one of the other cards. I’m not in a hurry to decide.

Fixing the blanking of the video card is a high priority. I’m not sure if it’s simply because I’m using it on an LCD, which may not like the signal, or if there’s a problem with the card. I’ll pull out a CRT to test it.

I need to mount a hard drive activity light to the CF drive bezel. Luckily, that’s as easy as drilling a hole in the bezel then mounting the LED. And, as you may be able to tell from the pictures, the keyboard needs to be stripped down and cleaned.

All-in-all, I’m very happy with this build. I still need to do most of the OS and software configuration but that’s pretty easy.

I hope you enjoyed the post! Feel free to offer any suggestions about things I may have overlooked.

Heather
 
Nice build :) There was a thread on mounting HH floppy drives a while back here.
 
Nice build.

Regarding ISA SVGA - it is strange that it didn't work in your 5160. I tested it in a 5160 board that I have (as well as in an turbo XT) and it works fine.
- Have you tried testing that board in some another system, e.g. an AT or XT clone
- What is the BIOS version in your 5160?

Thanks,
Sergey
 
@nc_mike

There was a tin plate that looked about the same as the one you linked to. I made copies of it using plastic for this build. The difficult part is putting a plate on both sides to keep everything really stable. I may try to make a 3D printed solution. I didn't know there was an XT-IDE that would work in Slot 8. :)

@Malc

Thanks for the link! I'll read through that thread in a bit.

@Sergey

Yep, I tested the SVGA card in my PC10-III and it works perfectly. My 5160 has the initial 11/08/82 BIOS. Perhaps it will work with a newer version. I'll need to find a location where I can download the latest ROM. Thanks for the idea!

Heather

*EDIT* Found them. :) http://minuszerodegrees.net/bios/bios.htm
 
Last edited:
Regarding ISA SVGA - it is strange that it didn't work in your 5160. I tested it in a 5160 board that I have (as well as in an turbo XT) and it works fine.
- Have you tried testing that board in some another system, e.g. an AT or XT clone
- What is the BIOS version in your 5160?
@Sergey
Yep, I tested the SVGA card in my PC10-III and it works perfectly. My 5160 has the initial 11/08/82 BIOS. Perhaps it will work with a newer version. I'll need to find a location where I can download the latest ROM. Thanks for the idea!
And we know from a previous post that you did not have Sergey's ISA Super VGA card in slot 8 of the motherboard.

If the problem cause turns out to be the motherboard's BIOS ROM revision level, then I will be able to add the card to [here], with a note about the BIOS requirement.
 
@modem7

I'll be sure to let you know if I get it working. I'll test it on both of the other BIOS versions for completeness.

@bushmechanic

Thanks! I like the convenience of the front loaded CF card. It makes data transfer to the system easy as I just plug the CF from the system into my card reader.

Heather
 
OK. I believe I figured out why Sergey's SVGA card is failing in the 5160. First, I tried the 5160's January 10, 1986 BIOS and I'm having the same results, 1 Long Beep then 2 Short Beeps. While looking up information on the beeps, I noticed the following from the 5160 Post & Initialization page:

Irrespective of the type of video card selected, look for BIOS expansion ROMs in address block C0000 - C7FFF.
Those will be video ROMs in EGA/PGA/VGA cards.
If one found (first 2 bytes are 55/AA), verify that its checksum is 00, and if that verification passes, call the initialisation code in the ROM.

I looked at both SVGA BIOS files that are available on Sergey's web site using a hex editor. The first 2 bytes in both files are 55/00, not the 55/AA that the 5160 is expecting. I dumped the ROM from the Octek EVGA-16 and verified that the first 2 bytes are 55/AA.

So, my question is this: Can I simply change the second byte to AA or will this cause the checksum check to fail? If changing the second byte changes the checksum, is there a way to fix it?

Thanks to everyone for the help.

Heather
 
Very cool machine!

Yes, changing the second byte from 00 to AA will almost certainly change the checksum. :( It depends on the algorithm how you could alter the rest of the dump to make it "add up." The page doesn't seem to say.
 
OK. I believe I figured out why Sergey's SVGA card is failing in the 5160. First, I tried the 5160's January 10, 1986 BIOS and I'm having the same results, 1 Long Beep then 2 Short Beeps.
First, confirm for us that you do not have the two video card switches on the motherboard set to either MDA or CGA.

While looking up information on the beeps, I noticed the following from the 5160 Post & Initialization page:

I looked at both SVGA BIOS files that are available on Sergey's web site using a hex editor. The first 2 bytes in both files are 55/00, not the 55/AA that the 5160 is expecting.
One thing to know about BIOS ROMs on cards is that the content does not always match what the computer sees. And that is the situation with Sergey's VGA card. In the ROM, the first 16K block is the even bytes and the next 16K block is the odd bytes. So the first two bytes are:

Byte #1: Offset 0000h = 55
Byte #2: Offset 4000h = AA
 
Yes, changing the second byte from 00 to AA will almost certainly change the checksum. :( It depends on the algorithm how you could alter the rest of the dump to make it "add up." The page doesn't seem to say.
A lot of information is in my diagram at [here].

Somewhere within the block of the ROM that is being checksummed is a byte that is sometimes referred to as the 'checksum byte'. It is adjusted so that the 8-bit checksum of the checksummed block is 00.
By convention, that byte is the last byte in the checksummed block, but it is convention only. Sometimes, a look at the end of the checksummed block might show something as follows, something that would very strongly suggest that the last byte of the block is the 'checksum byte'.

...
...
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1E
 
Very cool machine!
Thank you. I love the build aspect of putting together a machine but I"m ready to use it after I'm done with the hardware. :)

First, confirm for us that you do not have the two video card switches on the motherboard set to either MDA or CGA.
Yes, I've exhausted all the motherboard setting options. Both switches 5 and 6 are on.

Byte #1: Offset 0000h = 55
Byte #2: Offset 4000h = AA
Since that's the case, I'm not sure what else I can do to troubleshoot the issue. I have two of Sergey's SVGA cards and neither works with the 5160. Also, without a display, I'm unable to see the error. I could probably reinstall the CGA adapter to see the error since the 5160 always looks at the VGA BIOS space. I'll also try the latest revision of the 5160 BIOS.

If you like, I can add the ROM image to the collection at http://www.minuszerodegrees.net/rom/rom.htm
I'll send it to you this weekend. :)

Somewhere within the block of the ROM that is being checksummed is a byte that is sometimes referred to as the 'checksum byte'. It is adjusted so that the 8-bit checksum of the checksummed block is 00.
That makes complete sense. Thanks for the additional information!

I'll play around with everything this weekend. However, I don't have high hopes of getting the Super VGA card working. The beep codes means that something during the initialization of the card failed. Hopefully using the CGA card will allow me to see the code that's being reported.

Heather
 
First, confirm for us that you do not have the two video card switches on the motherboard set to either MDA or CGA.


One thing to know about BIOS ROMs on cards is that the content does not always match what the computer sees. And that is the situation with Sergey's VGA card. In the ROM, the first 16K block is the even bytes and the next 16K block is the odd bytes. So the first two bytes are:

Byte #1: Offset 0000h = 55
Byte #2: Offset 4000h = AA

Exactly. The TVGA9000I controller (and some other Trident controllers) emulate 16-bit BIOS using a 8-bit EPROM. They do that by reading two bytes from EPROM during a single bus read operation. The first read is stored in an internal buffer, and presented on the bus together with the second read.

The BIOS extension image is arranged in such a way that all even addresses go in 0000h-3FFFh area, and all odd addresses go in 4000h-7FFFh area.

So, it doesn't explain why ISA SVGA is not working in your system. I believe the beeps you've mentioned are coming from SVGA BIOS though. Probably it has some issues with accessing video RAM.
I'd try the following:
- Test the system with only that card connected. Make sure that video configuration jumpers on the motherboard are set to "NONE/EGA/VGA".
- If possible, replace video RAM. Or pull out two chips, and try running with only two chips (256 KiB) installed. You can try different combinations from the 4 chips you have. I don't remember which two ICs need to be populated, but it is either top two or lower two. I can check that later today.
 
I have two of Sergey's SVGA cards and neither works with the 5160. Also, without a display, I'm unable to see the error.
I know it's possible to run MDA & CGA together. Maybe you could try MDA and VGA? I've never tried it that way so I can't say for sure whether it's possible or not. If they can co-exist you might be able to see what's going on with the Mono display.
 
I know it's possible to run MDA & CGA together. Maybe you could try MDA and VGA? I've never tried it that way so I can't say for sure whether it's possible or not. If they can co-exist you might be able to see what's going on with the Mono display.

It depends on the VGA card. Some are flexible enough that they will coexist with either MDA or CGA; when coexisting with MDA, the VGA card will restrict itself to only color modes, and when coexisting with a CGA card, the VGA card will restrict itself to only monochrome modes. However, not all VGA cards may be this smart.
 
I believe MDA should co-exist with any colour-card by definition, be it CGA, EGA or VGA.
I know that I used an MDA card for a secondary debugging monitor into the Pentium age, where I used a Matrox Mystique PCI next to an original IBM MDA+LPT card.
IBM deliberately chose separate IO and memory ranges for monochrome and colour adapters for this reason.

And yes, in theory EGA or VGA cards could also be used in monochrome mode, in which case they could co-exist with a colour-mode CGA/EGA/VGA card, but I think this is less likely to work. MDA + CGA/EGA/VGA should be quite safe (but you would need to have a colour monitor connected to EGA/VGA to make sure they operate in colour mode, not mono mode).
 
I just tried MDA and VGA and even though the switches were set to MDA the 5160 booted to the VGA monitor anyway. :) I could, however, still use MODE to switch between them. I wonder if this might not make it impossible for OP to diagnose her VGA problem as the machine doesn't seem to be able to boot to MDA with VGA co-installed.
 
Back
Top