It was finally time to get this machine cleaned up and try to get it running. But first, a visual health check.
I took some cotton swabs and isopropanol to the mainboard in an attempt to get rid of some of the dust and grime. It was somewhat successful, though with more time spent it could certainly be better. The main goal now was the “smoke test”, i.e. seeing if it will even run at all when power is applied.
I was lucky enough to find a copy of the IBM Technical Reference for PC XT (not linked here, but freely available online). This manual contains a lot of detail, much more so than is needed for this kind of simple smoke test. The information therein is useful, however, and it does contain logic diagrams if something goes really, really wrong. Of course, these systems are now very old, and knowing what commonly goes wrong may be helpful before jumping in. After a lot of searching through forums looking for information about the 5150, it became clear that there are a few very common points of failure.
- RAM chips can commonly fail and need replacement. There are still suitable replacements available which are not expensive. When the system starts, it will perform the Power On Self Test (POST) which, on the XT, includes a RAM check.
- Tantalum capacitors apparently fail extremely commonly (and sometimes quite spectacularly!) on older IBM computers. I have gathered that these caps will either fail open or closed. Because they (at least, some of them) are used for filtering the 12V rail, a tantalum cap which fails open could simply mean less filtering on the line. Hypothetically, the system would boot even with this condition. A tantalum cap which fails closed, however, is a dead short. The power supply has a protection circuit for this and will not allow the system to start if this condition exists. The tantalum capacitors on the IBM 5160 have three legs; if one is to be replaced, it may be replaced with a two-legged capacitor. Ultimately I may replace all of these as a precaution, but not right now.
- The power supply unit itself contains several components which can fail and commonly do fail. Under this condition, another suitable power supply would need to be used.
After a visual inspection, I did see what I thought might be a blown tantalum capacitor. But, given the early stage of my investigations, I felt it was a good idea to smoke test anyway.
The power supply unit has two rivets in place and did not seem easy to open for this reason. I opted to trust it without looking into it further.
The speaker appeared to be fine — it is just a speaker, after all, though it is old and dusty.
It is important to remove as much as possible for the first test. The logic is simple: if the test fails, there are more possibilities for the cause of the failure if a lot of extraneous components are in the system. If there are fewer components in the system, then there are fewer possibilities. Try to start it with as little as possible, and then add components in one by one later.
I had already removed all the expansion cards to get to the mainboard. The drives remained in the case. It should be possible to start the system with only three components: the mainboard itself, the power supply unit, and the speaker. The speaker is a necessity because it is the only means of feedback to the user in this configuration. There is no power light on the 5150 and there will be no means of video output without the video card reinstalled. There are several beep codes, however, which is a typical signalling method for Power On Self Tests.
Like all systems before flash ROM-based BIOS, the 5160 relies on a dipswitch on the mainboard for certain settings. Each switch may be on or off. This tells the computer a few different things:
- Switch 1 tells the XT if it is in “normal operating mode” or not. With this set to on, POST will run in an infinite loop. (see below)
- Switch 2 should be on if there is an 8087 co-processor installed, but off if not.
- Switches 3 and 4 get set variably depending on the RAM configuration. Because my system has all four banks populated, both switches 3 and 4 should be set to off.
- Switches 5 and 6 give the system information about the video card installed. For example, a CGA configuration would be 5 = on and 6 = off.
- Switches 7 and 8 are used to specify the number of floppy drives attached to the system. Both on = 1 floppy drive.
Why is there a function for an infinite loop in the BIOS? This was puzzling to me as well. The answer still is not entirely clear, but I do have a supposition based on the design of the previous IBM model 5150. In the 5150, the first dipswitch specifies whether or not a floppy disk is attached to the system at all. If it was set to on, the system would assume that no floppy disk was attached but otherwise perform POST. This makes sense on the 5150, since it also had a cassette data port (analog audio port) on the motherboard which could be used in conjunction with its ROM BASIC.
But the 5160 lacks the cassette port — starting it without a floppy drive essentially means not starting it. So, the switch is still there, but the ROM continuously loops POST instead of allowing the machine to start without a floppy drive. Of course, this may or may not be the right reasoning. The ROM BASIC on the 5160 has no disk support, so it is unclear if that is really a factor.
After a bit of trepidation I decided it was as good of a time as any and chunked the monstrous switch over into the on position. The power supply fan turned on and was even louder than I remembered. After a brief moment, I got a beep code from the mainboard — one long and two short beeps. Some sleuthing suggests this is a failure to find the video card. Which is great, because there wasn’t one installed.
Next, I plugged the CGA card into a slot. I connected a composite video cable from the rear port on the XT to my trusty little flat panel monitor and once again turned on the system. Happily, I got video output: a 301 error (keyboard not connected).
The RAM check commenced, and amazingly enough, it all tested good! 640 KB OK. Then, I got a 601 error (disk controller failure or not connected — it was the latter). And finally the system told me that I could press F1 to continue the boot process — which is pretty funny, because it already knows there is no keyboard connected, which is why it gave me the 301 error. Very snarky, IBM.
With that, I tried a couple other things after turning the computer off again. I connected the disk controller and the floppy drive — the drive did not sound good at all, though it did turn on and make some noise, but the 601 error went away. I also tried the hard disk and its controller, and the disk did indeed spin up. But, in each case, the BIOS took me to the ERROR condition that requires an F1 keypress.
And of course, I did not have a keyboard. I have plenty of USB keyboards, and I have one PS/2 keyboard from the late 1990s. But the XT used not only the larger 5-pin DIN connector (known as the AT connector for a slightly later model IBM) but also a different protocol entirely from later keyboards. Pushing F1 would prove difficult without buying a keyboard outright (and old IBM keyboards are very expensive — even third party ones can be crazy).
But, I had a plan for that.