IBM PC (5150) Troubleshooting Guide
This guide provides systematic, component-level troubleshooting for the IBM PC (5150). It covers the POST audio beep codes, the complete numeric error code list, parity errors, video problems, keyboard 301 errors, floppy faults and known motherboard problems. The 5150 has no battery-backed CMOS — all hardware configuration is set through DIP switches SW1 and SW2 on the motherboard, so verify those before chasing a hardware fault.
The POST is only a confidence test, not a comprehensive diagnostic. The absence of an error code does not prove the corresponding subsystem is good — for example, the lack of a 201 does not mean RAM is healthy, and the lack of a 301 does not mean the keyboard is healthy.
Preliminary & Power-up Checks
editThe 5150 has no on-board POST code output port — a hardware POST card plugged into an ISA slot will not show meaningful codes on this machine. Use the audio beep and the on-screen error number instead.
POST sequence summary
editOn a healthy 5150, power-up produces:
- A single short beep after about five seconds.
- The memory count appears in the top-left of the display.
- The machine attempts to boot from the floppy in drive A, then falls back to Cassette BASIC if no boot disk is present.
POST audio beep codes
edit| Pattern | Meaning |
|---|---|
| 1 short beep | POST OK |
| No beep, no video | PSU, CPU, clock, reset, or bank-0 RAM failure |
| 1 long + 1 short | System board failure |
| 1 long + 2 short | Video adapter failure (or, on the 10/27/82 BIOS, a corrupted HDD ROM at C8000) |
| 1 long + 3 short | EGA / VGA card failure (where supported) |
| Continuous short beeps | PSU fault |
| Repeating short beep cycles | RAM failure |
Numeric POST Error Codes
editWhen the POST detects an error on a subsystem that has already been initialised, it prints a numeric error code on the screen. The codes follow a "XYZZ" convention where the first one or two digits identify the failing subsystem (a "device number") and the remainder describes the specific failure. The device number followed by 00 indicates a successful test pass for that device.
The table below is the complete IBM PC / XT / AT POST and advanced-diagnostic numeric error code list. Codes shaded with their "5150-relevant" subset are the ones most commonly seen on a 5150; the broader list is included for completeness because the 5150 ROM BIOS uses the same conventions as later IBM ROMs.
1xx — System board errors
edit| Code | Meaning |
|---|---|
| 101 | System board failed |
| 102 | BIOS ROM checksum error (PC, XT); Timer (AT) |
| 103 | BASIC ROM checksum error (PC, XT); Timer interrupt (AT) |
| 104 | Interrupt controller (PC, XT); Protected mode (AT) |
| 105 | Timer (PC, XT); Last 8042 command not accepted (AT) |
| 106 | Converting logic test failure |
| 107 | Adapter card or math coprocessor (NMI) |
| 108 | Timer bus test |
| 109 | DMA test error |
| 121 | Unexpected hardware interrupt |
| 131 | Cassette wrap test failed (often caused by a missing −5 V rail on the 64KB-256KB board) |
| 161 | System options error, battery failure (AT only) |
| 162 | CMOS RAM configuration error (AT only) |
| 163 | CMOS time and date not set (AT only) |
| 199 | User indicated configuration not correct |
2xx — RAM errors
edit| Code | Meaning |
|---|---|
| 201 | Memory test error. On the 5150, the error number is in the form xyzz where x=0 indicates failing memory on the planar (motherboard) and the remaining digits identify the bank and bit position. |
| 202 | Memory address error (address lines 0-15) |
| 203 | Memory address error (address lines 16-23) |
| 216 | Motherboard memory |
3xx — Keyboard errors
edit| Code | Meaning |
|---|---|
| 301 | Keyboard did not respond to software reset, or a stuck key. A number preceding 301 (e.g. 3D 301) is the scan code of the stuck key. |
| 302 | User indicated keyboard error, or AT system unit is locked |
| 303 | Keyboard or system board error |
| 304 | Keyboard or system board error; CMOS does not match system |
4xx — Monochrome display adapter errors
edit| Code | Meaning |
|---|---|
| 401 | MDA memory test, horizontal sync frequency test, or video test failed |
| 408 | User indicated display attributes failure |
| 416 | User indicated character set failure |
| 424 | User indicated 80×25 mode failure |
| 432 | Parallel port test failed (on the MDA — the printer port is on the same card) |
5xx — Colour graphics adapter errors
edit| Code | Meaning |
|---|---|
| 501 | CGA memory test failed, horizontal sync frequency test, or video test failed |
| 508 | User indicated display attribute failure |
| 516 | User indicated character set failure |
| 524 | User indicated 80×25 mode failure |
| 532 | User indicated 40×25 mode failure |
| 540 | User indicated 320×200 graphics mode failure |
| 548 | User indicated 640×200 graphics mode failure |
| 556 | Light pen test |
| 564 | User indicated screen paging test |
6xx — Diskette drive / adapter errors
edit| Code | Meaning |
|---|---|
| 601 | FDD adapter power-on diagnostics test failed |
| 602 | Diskette test failed (boot record not valid) |
| 603 | Diskette size error |
| 606 | Diskette verify function failed |
| 607 | Write-protected diskette |
| 608 | Bad command (diskette status returned) |
| 610 | Diskette initialisation failed |
| 611 | Time-out (diskette status returned) |
| 612 | Bad NEC FDC (diskette status returned) |
| 613 | Bad DMA (diskette status returned) |
| 614 | DMA boundary error |
| 621 | Bad seek (diskette status returned) |
| 622 | Bad CRC (diskette status returned) |
| 623 | Record not found (diskette status returned) |
| 624 | Bad address mark (diskette status returned) |
| 625 | Bad NEC seek (diskette status returned) |
| 626 | Diskette data compare error |
7xx — 8087 math coprocessor errors
edit| Code | Meaning |
|---|---|
| 701 | 8087 coprocessor test failure. If no 8087 is fitted, set SW1 bit 2 to OFF to disable the coprocessor test. |
9xx — Parallel printer adapter errors
edit| Code | Meaning |
|---|---|
| 901 | Parallel printer adapter test failed |
11xx — Asynchronous (RS-232) communications adapter errors
edit| Code | Meaning |
|---|---|
| 1101 | Asynchronous communications adapter test failed |
| 1102-1157 | Various register / interrupt / DSR / CTS test failures on the async adapter |
13xx — Game adapter errors
edit| Code | Meaning |
|---|---|
| 1301 | Game control adapter test failed |
| 1302 | Joystick test failed |
14xx — Printer errors
edit| Code | Meaning |
|---|---|
| 1401 | Printer test failed |
| 1404 | Matrix printer failed |
17xx — Fixed disk (hard drive) errors
edit| Code | Meaning |
|---|---|
| 1701 | Fixed Disk Adapter POST error |
| 1702 | Adapter error |
| 1703 | Drive error (seek) |
| 1704 | Adapter or drive error |
| 1705 | No record found |
| 1706 | Write fault error |
| 1707 | Track 0 error |
| 1708 | Head select error |
| 1710 | Read buffer overrun |
| 1711 | Bad address mark |
| 1713 | Data compare error |
| 1714 | Drive not ready |
| 1780 / 1781 | Disk 0 / Disk 1 failure |
| 1782 | Disk controller failure |
Power-up Symptom Table
edit| Symptom | Probable cause | Action |
|---|---|---|
| No fan, no LED, no beep | Dead PSU; blown fuse; rear-panel switch | Test mains; check fuse; measure PSU rails with motherboard disconnected |
| Fan runs, no beep, no video | Bank-0 RAM, BIOS ROM (U33), or CPU | Reseat U33 and bank-0 RAM; probe clock at 8088 pin 19; try a known-good 8088 |
| Fan runs, 131 error displays | −5 V rail is missing (cassette I/O test fails) | Recap/replace PSU; do not use an ATX adapter without −5 V |
| Fan runs, 201 / "PARITY CHECK" error | Failed motherboard or expansion RAM | See parity errors below |
| Tantalum cap audibly pops, PSU latches off | Short-circuit tantalum on the motherboard or an ISA card | See the cap guide's short-circuit diagnostic procedure |
| Repeating cycle (boots part-way, resets) | Bad PSU under load; bad 8253 timer; bad bank-0 RAM | Measure +5 V under load |
No-beep / No-video Diagnostics
editOn a 5150, "dead machine" is most often one of: bank-0 RAM, the BIOS ROM, the CPU, or a missing −5 V rail.
- Confirm +5 V, +12 V, −5 V and −12 V at the P8/P9 motherboard connector with the machine running. The −5 V rail is required — a 16KB-64KB board with no −5 V will silently fail the first 16 KB RAM test and halt with no audible or visual indication.
- Reseat U33 (BIOS), U29-U32 (Cassette BASIC), the 8088 CPU, and all of bank-0 RAM.
- Probe the 8088 clock (pin 19) for a ~4.77 MHz square wave and the reset (pin 21) (low at power-on, high after Power Good). If clock is missing, suspect the 8284 clock generator or the 14.31818 MHz crystal. If reset is stuck low, suspect the 8284 or the Power Good signal.
- Piggyback a known-good RAM chip on each bank-0 position in turn. A piggyback that makes the machine boot identifies the dead chip.
- If the machine is still completely dead, consider swapping the BIOS in U33 for a diagnostic ROM (Ruud Baltissen's diagnostic ROM, or the Supersoft/Landmark diagnostic ROM) that runs even on a board the IBM BIOS POST cannot reach.
Parity Errors
editThe 5150 displays a numbered error followed by the text "PARITY CHECK 1" or "PARITY CHECK 2":
- PARITY CHECK 1 — the error is in motherboard RAM.
- PARITY CHECK 2 — the error is in expansion-card RAM (a parity error reported by an installed memory expansion card).
If a four-digit number is shown (e.g. 2004), the format is xyzz where x = 0 indicates motherboard, y is the bank, and zz is the bit. On the 64KB-256KB motherboard the banks are 00, 04, 08, 0C for banks 0-3.
- Reseat the chip at the indicated bank and bit position.
- If reseating does not fix it, replace that single chip with a known-good 4164 (or 4116 on the 16KB-64KB board).
- If the failing position moves around between resets, suspect DRAM refresh — the 8237 DMA controller (U35) generates refresh cycles. A bad 8237 produces random RAM errors that move across all banks.
A failed chip in bank 0 produces a completely silent dead motherboard with no beep, because the POST cannot get far enough to use the speaker. This is one of the most common 5150 faults and is easily mistaken for a CPU or PSU fault.
Display & Video Diagnostics
editThe 5150 has no on-board video — a faulty video card is the most likely cause of a no-video symptom even when the machine is otherwise alive.
No video, but POST beep is normal
edit- Confirm the video adapter card (MDA or CGA) is firmly seated.
- Check the monitor cable and the monitor itself.
- If both MDA and CGA are fitted, SW1 bits select which is the boot adapter. See the IBM 5150 Technical Reference for the exact bit layout.
Garbled text or random characters
edit- Suspect the video adapter's character ROM or video RAM (not motherboard RAM).
- Cracked solder joints on the DE-9 output connector.
Keyboard & I/O Failures
edit301 error (keyboard)
edit- The keyboard did not return the expected response within the timeout.
- Reseat the DIN-5 connector at the rear of the case.
- Swap to a known-good IBM Model F (83-key). If the suspect keyboard works on another 5150 or XT, the 5150's keyboard interface is at fault — check U36 (the 8255 PPI) and the 7406 keyboard data buffer.
- Model F variants: the 83-key XT-style Model F works on the 5150 and 5160. The 84-key AT-style Model F (P/N 6450200) and the 101-key Model M will not work without a protocol converter.
Cassette port silence
editA 131 error on the 10/27/82 BIOS indicates the cassette I/O test failed. On the 64KB-256KB board, this is most often caused by the −5 V rail being missing rather than a real cassette fault. Verify −5 V at the PSU before chasing cassette hardware.
Floppy faults
edit- Drive light stays on continuously — cable inserted backwards, or termination resistor missing on the last drive.
- Drive light flickers but no read — head needs cleaning; positioner rail lubricant has hardened; or the belt has failed (on a Tandon TM100-2).
- Drive seeks but read errors — head alignment, or the floppy itself is media-failed.
- POST 6xx errors — see the 6xx table above. Reseat the FDD Adapter first.
Known Problems and Issues (per minuszerodegrees.net)
editThe following are well-documented 5150-specific quirks gathered from minuszerodegrees.net's long-running motherboard failure history. Each one has caught restorers out at least once, often more.
Limitations of early BIOS revisions
editThe first two BIOS revisions (04/24/81, part number 5700051, and 10/19/81, part number 5700671) have two design limitations: they recognise only 544 KB of RAM, and they ignore BIOS expansion ROMs in installed cards — so EGA, 5150-compatible VGA, and hard disk controllers will not work on either of those BIOSes. Upgrade to the 10/27/82 (1501476) BIOS to remove both limitations.
Bugs in the 10/27/82 BIOS
editThe final 5150 BIOS (10/27/82, part number 1501476) has two well-documented bugs:
- Less-than-four-banks bug. If the motherboard does not have all four banks of RAM populated (and SW1/SW2 not set accordingly), the POST behaves incorrectly — for example, it can claim more motherboard RAM than is actually fitted.
- C8000 ROM corruption bug. If a hard disk controller's BIOS expansion ROM (typically at C8000) becomes corrupted (except for its first two bytes), the BIOS is supposed to display "C800 ROM" on-screen. Instead, a software bug causes the BIOS to beep "1 long + 2 short", which is the standard video failure pattern. A perfectly-working video card can therefore be misdiagnosed as faulty when the actual fault is a corrupted HDD controller ROM.
Short-circuit tantalum capacitors
editTantalum capacitors are located on the motherboard, expansion cards, and drives. One going short-circuit will stop the PSU from working — although the PSU fan may still turn. The board will appear dead. See IBM PC (5150) Capacitor Replacement Guide for the full diagnostic and replacement procedure.
Minimum RAM requirement for DOS
editIf you try to boot DOS with insufficient conventional memory for that version, DOS does not always present a friendly error message. The machine may simply hang at the boot prompt or reset.
POST cards do not work on the 5150
editThe 5150's POST does not output POST codes to I/O port 80h (the port a hardware POST card reads). Numbers shown by a POST card plugged into a 5150 are unrelated to the actual POST progress.
Modern ATX PSU adapters lack −5 V
editA modern ATX-to-P8/P9 adapter does not generate the −5 V rail. The implications are different on the two motherboard revisions:
- 16KB-64KB: the machine will not work at all and will appear dead. The 4116 DRAM requires −5 V; without it the first 16 KB RAM test silently fails and the POST halts.
- 64KB-256KB: the machine displays a 131 error on-screen. Chip U1, part of the cassette circuitry, requires −5 V.
A few early IBM expansion cards also use the −5 V rail.
RAM failure in motherboard bank 0
editVintage RAM chips have a relatively high failure rate. The failure of any chip in the 5150's first bank of RAM (bank 0) results in what appears to be a 'dead' motherboard (no beep, no video). This is one of many causes of the "dead" symptom — do not assume bad RAM in bank 0 before trying the no-beep diagnostic sequence above.
Motherboard decodes F0000 to F3FFF
editThe 5150 motherboard decodes the F0000-F3FFF memory range for read operations even though there is nothing in that range. Mapping an expansion card's BIOS ROM into that range causes bus contention (both the card and the motherboard simultaneously drive the data bus). This may appear to work in many cases — the card "wins" the bus tug-of-war — but the behaviour is not reliable.
MS-DOS 3.2
editMS-DOS 3.20 (the Microsoft-branded version, not IBM PC DOS) does not work on 5150 motherboards fitted with either the 04/24/81 or 10/19/81 BIOS revisions. MS-DOS 3.21 fixes the issue. Use PC DOS 3.3, which was the common choice.
Interrupt bug in early Intel 8088 CPUs
editEarly-stepping Intel 8088 CPUs have a documented interrupt bug that affects certain prefix sequences. If the system fails reproducibly on specific software with no other apparent fault, try a later-stepping 8088 (date code 1982 or later).
V20 swap compatibility
editSwapping the 8088 for an NEC V20 gives a 20-30% speed boost on most code, but the V20 emulates an 80186-class instruction set that breaks a small number of programs. If a known-good machine suddenly fails to run an old program after a V20 swap, drop the original 8088 back in to confirm.
16-bit ISA cards in the 5150's 8-bit slots
editSome 16-bit ISA cards advertised as "8-bit slot compatible" do not work in the 5150's 8-bit slots. Possible causes:
- The card requires the wider AT-class slot spacing.
- The card needs to be reconfigured for 8-bit mode by switches, jumpers, or in some cases configuration software.
If the card refuses to work and SW1 is correct, try the card in a IBM PC XT (5160) first to confirm it works in any 8-bit slot.
Component-level Tests
editVoltage test points
edit| Test point | Expected | Notes |
|---|---|---|
| 8088 pin 40 (Vcc) | +5 V | Main logic rail |
| 8088 pin 19 (CLK) | ~4.77 MHz square wave | From 8284 clock generator |
| 8088 pin 21 (RESET) | Low at power-on, high after Power Good | |
| DRAM Vcc | +5 V | |
| Power Good (P8) | +5 V, rises ~100-500 ms after +5 V is stable | A stuck-low Power Good keeps the CPU in reset |
References
edit- IBM, IBM 5150 Technical Reference (part 6025005, August 1981) — contains the full schematics, BIOS listing, and DIP-switch reference. PDF on the minuszerodegrees mirror.
- IBM 5150 — Known Problems / Issues, minuszerodegrees.net (Brad Parker). Primary source for the "Known Problems" section reproduced above.
- IBM 5150 — POST — Some errors (on-screen, or otherwise), minuszerodegrees.net.
- 5150 BIOS Revisions, minuszerodegrees.net.
- DIAGS — IBM PC Diagnostic Error Codes, Stanislavs.org / HelpPC quick-reference. Source for the comprehensive POST numeric error code list reproduced above.