Jump to content

IBM PC (5150) Troubleshooting Guide: Difference between revisions

From RetroTechCollection
Create symptom-driven troubleshooting guide: POST beep codes, parity errors, bank-0 RAM failure, keyboard 301, video/MDA/CGA, V20 swap notes, and 8088 interrupt bug.
 
Add representative photo (Wikimedia Commons, attributed on file page)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
<templatestyles src="Template:StyledTable/styles.css" />
<templatestyles src="Template:StyledTable/styles.css" />
[[File:IBM PC (5150) (photo).jpg|thumb|right|300px|IBM PC (5150). Source: Wikimedia Commons.]]


This guide provides systematic, component-level troubleshooting for the '''IBM 5150'''. It covers POST beep codes, power-up failures, parity errors, video problems, keyboard 301 errors, and floppy faults. The 5150 has no battery-backed CMOS &mdash; all hardware configuration is set through DIP switches SW1 and SW2 on the motherboard, so verify those before chasing a hardware fault.
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 ==
== Preliminary & Power-up Checks ==


The 5150 has '''no on-board POST code output port''' &mdash; a hardware POST card plugged into ISA slot 1 will not show meaningful codes. Use the audio beep and the on-screen error number instead.
The 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 ===
=== POST sequence summary ===
On a healthy 5150, power-up produces:
On a healthy 5150, power-up produces:
# A single short beep (~0.25 s) after about 5 seconds.
# The memory count appears in the top-left of the display (e.g. "''256 KB OK''" or "''640 KB OK''", depending on RAM fitted).
# The machine attempts to boot from the floppy in drive A, then falls back to Cassette BASIC if no boot disk is present.


=== Beep codes ===
# 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 [[IBM Cassette BASIC|Cassette BASIC]] if no boot disk is present.
 
=== POST audio beep codes ===
 
{| class="wikitable styled-table" style="width:100%; text-align:center;"
{| class="wikitable styled-table" style="width:100%; text-align:center;"
|+'''IBM 5150 POST audio beep codes'''
|+'''IBM 5150 POST audio beep codes'''
! Pattern !! Meaning !! Action
! 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 ==
 
When 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 ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! 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 &minus;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 ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! 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 ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! 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 ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! Code !! Meaning
|-
| 401 || [[IBM Monochrome Display Adapter|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 ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! Code !! Meaning
|-
| 501 || [[IBM Color Graphics Adapter|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 ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! Code !! Meaning
|-
| 601 || [[IBM FDD Adapter|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)
|-
|-
| 1 short beep || POST OK || Normal boot
| 614 || DMA boundary error
|-
|-
| ''No beep, no video'' || PSU, CPU, clock, reset, or bank-0 RAM || See [[#No beep, no video|below]]
| 621 || Bad seek (diskette status returned)
|-
|-
| 1 long + 1 short || System board failure || Suspect 8088, 8259, 8253, 8237 or BIOS ROM
| 622 || Bad CRC (diskette status returned)
|-
|-
| 1 long + 2 short || Video adapter failure ''or'' (on 10/27/82 BIOS) corrupted HDD ROM at C800 || Reseat MDA/CGA; pull HDD controller and retry
| 623 || Record not found (diskette status returned)
|-
|-
| 1 long + 3 short || EGA/VGA card failure (where supported) || Reseat or replace video card
| 624 || Bad address mark (diskette status returned)
|-
|-
| Continuous short beeps || PSU fault || Recap or replace PSU
| 625 || Bad NEC seek (diskette status returned)
|-
| 626 || Diskette data compare error
|}
 
=== 7xx — 8087 math coprocessor errors ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! Code !! Meaning
|-
|-
| Repeating short beep cycles || RAM failure || See [[#Parity error 201|201 / parity check]] below
| 701 || 8087 coprocessor test failure. If no 8087 is fitted, set SW1 bit 2 to OFF to disable the coprocessor test.
|}
|}


{| class="wikitable styled-table" style="width:100%;"
=== 9xx — Parallel printer adapter errors ===
|+'''Power-up symptom table'''
 
! Symptom !! Probable cause !! Action
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! Code !! Meaning
|-
|-
| No fan, no LED, no beep || Dead PSU; blown fuse; rear-panel switch || Test mains; check fuse; measure PSU rails with motherboard disconnected
| 901 || Parallel printer adapter test failed
|}
 
=== 11xx — Asynchronous (RS-232) communications adapter errors ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! Code !! Meaning
|-
|-
| 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
| 1101 || Asynchronous communications adapter test failed
|-
|-
| Fan runs, machine produces "131" || &minus;5 V rail is missing (cassette I/O test fails) || Recap/replace PSU; do '''not''' use an ATX PSU without &minus;5 V
| 1102-1157 || Various register / interrupt / DSR / CTS test failures on the async adapter
|}
 
=== 13xx — Game adapter errors ===
 
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! Code !! Meaning
|-
|-
| Fan runs, repeating reset (counts to "''16 KB OK''" then resets) || PSU droop; bad CPU; bad bank-0 RAM; bad 8253 || Measure +5 V under load; piggyback bank-0 RAM
| 1301 || Game control adapter test failed
|-
|-
| Tantalum cap audibly pops, PSU latches off || Short-circuit tantalum (most often near P8/P9 or RAM bank) || Remove all cards; if PSU then runs, fault is on a card; otherwise find the dead tantalum on the motherboard
| 1302 || Joystick test failed
|}
|}


=== No beep, no video ===
=== 14xx — Printer errors ===
On a 5150, "dead machine" is most often one of: bank-0 RAM, the BIOS ROM, the CPU, or a missing &minus;5 V rail.


# Confirm '''+5 V''', '''+12 V''', '''&minus;5 V''' and '''&minus;12 V''' at the P8/P9 motherboard connector with the machine running. The '''&minus;5 V rail is required''' &mdash; a 16KB-64KB board with no &minus;5 V will silently fail the first 16 KB RAM test and halt with no audible or visual indication.
{| class="wikitable styled-table" style="width:100%; text-align:left;"
# Reseat '''U33 (BIOS)''', '''U29-U32 (Cassette BASIC)''', the '''8088 CPU''', and all of '''bank-0 RAM''' (the bank closest to the CPU). The act of pulling and reseating wipes oxidised socket contacts and fixes a real percentage of "dead" 5150s.
! Code !! Meaning
# Probe the '''8088 clock (pin 19, ~4.77 MHz square wave)''' and the '''reset (pin 21, low at power-on then 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 of the eight (4116) or nine-with-parity (4164) bank-0 RAM positions in turn. A piggyback that makes the machine boot identifies the dead chip.
| 1401 || Printer test failed
|-
| 1404 || Matrix printer failed
|}


== Display & Video Diagnostics ==
=== 17xx — Fixed disk (hard drive) errors ===


The 5150 has no on-board video &mdash; a faulty video card is the most likely cause of a no-video symptom even when the machine is otherwise alive.
{| class="wikitable styled-table" style="width:100%; text-align:left;"
! Code !! Meaning
|-
| 1701 || [[IBM Fixed Disk Adapter|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
|}


=== No video, but POST beep is normal ===
== Power-up Symptom Table ==
* Confirm the video adapter card (MDA or CGA) is firmly seated.
* Check the monitor cable and the monitor itself.
* If the MDA card has an output for an [[IBM 5151]] monitor and the CGA card has a separate 9-pin output for an [[IBM 5153]] monitor, ensure the cable is on the correct card.
* If the machine has '''both''' MDA and CGA fitted, SW1 video bits select which is the boot adapter:


{| class="wikitable styled-table" style="width:60%;"
{| class="wikitable styled-table" style="width:100%;"
! SW1 bit 5 !! SW1 bit 6 !! Boot video adapter
! 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
|-
|-
| OFF || OFF || EGA / VGA (BIOS expansion ROM at C0000)
| Fan runs, '''131''' error displays || &minus;5 V rail is missing (cassette I/O test fails) || Recap/replace PSU; do '''not''' use an ATX adapter without &minus;5 V
|-
|-
| OFF || ON || CGA, 40-column text
| Fan runs, '''201''' / "PARITY CHECK" error || Failed motherboard or expansion RAM || See [[#Parity errors|parity errors]] below
|-
|-
| ON || OFF || CGA, 80-column text
| Tantalum cap audibly pops, PSU latches off || Short-circuit tantalum on the motherboard or an ISA card || See [[IBM PC (5150) Capacitor Replacement Guide#Diagnostic Procedure for a Suspected Short-Circuit Tantalum|the cap guide's short-circuit diagnostic procedure]]
|-
|-
| ON || ON || MDA, 80-column text
| Repeating cycle (boots part-way, resets) || Bad PSU under load; bad 8253 timer; bad bank-0 RAM || Measure +5 V under load
|}
|}


=== Garbled text or random characters ===
== No-beep / No-video Diagnostics ==
* Suspect the video adapter's character ROM (on MDA, this is the 2316 character generator).
 
* Bad video RAM on the adapter card &mdash; not motherboard RAM.
On a 5150, "dead machine" is most often one of: bank-0 RAM, the BIOS ROM, the CPU, or a missing &minus;5 V rail.
* Cracked solder joints on the DE-9 (CGA) or DB-9 (MDA) output connector.


=== One missing colour on CGA ===
# Confirm '''+5 V''', '''+12 V''', '''&minus;5 V''' and '''&minus;12 V''' at the P8/P9 motherboard connector with the machine running. The &minus;5 V rail is required — a 16KB-64KB board with no &minus;5 V will silently fail the first 16 KB RAM test and halt with no audible or visual indication.
* Suspect the LM1881-equivalent output buffer or a bad TBP18S030 colour PROM on the CGA card.
# Reseat '''U33 (BIOS)''', '''U29-U32 (Cassette BASIC)''', the '''8088 CPU''', and all of bank-0 RAM.
* Check continuity from the CGA card output pin to the 5153 monitor's DE-9 input.
# 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.


== Memory & RAM Faults ==
== Parity Errors ==


=== Parity error 201 ===
The 5150 displays a numbered error followed by the text "PARITY CHECK 1" or "PARITY CHECK 2":
The 5150 displays a numbered error followed by the text "''PARITY CHECK 1''" or "''PARITY CHECK 2''":


* '''PARITY CHECK 1''' &mdash; the error is in motherboard RAM.
* '''PARITY CHECK 1''' the error is in motherboard RAM.
* '''PARITY CHECK 2''' &mdash; the error is in expansion-card RAM (the card's parity bit fired).
* '''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 ''2 BBP'' where ''BB'' is the bank (00, 04, 08, 0C for banks 0-3 on the 64KB-256KB board) and ''P'' is the failing bit (0-7, or 8 for the parity bit).
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.
# 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 early board).
# If reseating does not fix it, replace that single chip with a known-good 4164 (or 4116 on the 16KB-64KB board).
# If the position moves around between resets, suspect '''DRAM refresh''' &mdash; the 8237 DMA controller (U35) generates refresh cycles. A bad 8237 produces random RAM errors across all banks.
# 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 ==
 
The 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.


=== Bank 0 RAM dead ===
=== No video, but POST beep is normal ===
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 easily confused with a CPU or PSU fault.
* Confirm the video adapter card ([[IBM Monochrome Display Adapter|MDA]] or [[IBM Color Graphics Adapter|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.


=== "Mem size error" ===
=== Garbled text or random characters ===
The motherboard SW2 DIP switches must be set to match the total motherboard + expansion-card RAM. On the 10/27/82 BIOS, all four motherboard banks must be populated.
* 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 ==
== Keyboard & I/O Failures ==


=== 301 error (keyboard) ===
=== 301 error (keyboard) ===
* The keyboard did not return acknowledgement byte AAh within the timeout.
 
* Reseat the DIN-5 connector.
* The keyboard did not return the expected response within the timeout.
* Swap to a known-good Model F. If the suspect keyboard works on another 5150 or XT, the 5150's keyboard interface is at fault &mdash; check U36 (8255 PPI) and the 7406 keyboard data buffer.
* Reseat the DIN-5 connector at the rear of the case.
* '''Model F variants''': the 83-key XT-style Model F works on the 5150 and 5160. The 84-key AT-style Model F and the 101-key Model M will '''not''' work without a [[Soarer's Converter|protocol converter]].
* 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 ===
=== Cassette port silence ===
The cassette interface is part of the [[IBM PC (5150)#Storage and Expansion|original spec]] but vanishingly few users actually use it. A POST 131 error on the 10/27/82 BIOS indicates the cassette I/O test failed, which is most often caused by '''missing &minus;5 V rail''' rather than a real cassette problem. Verify &minus;5 V at the PSU before chasing cassette hardware.
 
A '''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 &minus;5 V rail being missing rather than a real cassette fault. Verify &minus;5 V at the PSU before chasing cassette hardware.


=== Floppy faults ===
=== Floppy faults ===
* '''Drive light stays on continuously''' &mdash; cable inserted backwards, or termination resistor missing on the last drive.
 
* '''Drive light flickers but no read''' &mdash; head needs cleaning; positioner rail needs lubrication; belt may have failed (TM100-2).
* '''Drive light stays on continuously''' cable inserted backwards, or termination resistor missing on the last drive.
* '''Drive seeks, but read errors''' &mdash; head alignment, or the floppy itself is media-failed.
* '''Drive light flickers but no read''' head needs cleaning; positioner rail lubricant has hardened; or the belt has failed (on a [[Tandon TM100-2]]).
* '''POST 6xx errors''' &mdash; the floppy controller card. Reseat the FDD adapter card.
* '''Drive seeks but read errors''' head alignment, or the floppy itself is media-failed.
* '''POST 6xx errors''' — see the [[#6xx — Diskette drive / adapter errors|6xx table]] above. Reseat the [[IBM FDD Adapter|FDD Adapter]] first.
 
== Known Problems and Issues (per minuszerodegrees.net) ==
 
The 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 ===
 
The 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 ===
 
The 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 ===
 
Tantalum 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 ===
 
If 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 ===
 
The 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 &minus;5 V ===
 
A modern ATX-to-P8/P9 adapter does not generate the &minus;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 &minus;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 &minus;5 V.
 
A few early IBM expansion cards also use the &minus;5 V rail.
 
=== RAM failure in motherboard bank 0 ===
 
Vintage 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 / No-video Diagnostics|no-beep diagnostic sequence]] above.
 
=== Motherboard decodes F0000 to F3FFF ===
 
The 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 ===
 
MS-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 ===
 
Early-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 ===
 
Swapping 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 ===
 
Some 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 ==
== Component-level Tests ==
Line 133: Line 419:
| 8088 pin 40 (Vcc) || +5 V || Main logic rail
| 8088 pin 40 (Vcc) || +5 V || Main logic rail
|-
|-
| 8088 pin 19 (CLK) || ~4.77 MHz square wave || From 8284 clock generator (15.91 MHz / 3)
| 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
|}
 
== ⚠️ Power-supply RIFA capacitor and tantalum shorts ==
 
Two age-related failures are near-universal on this era of IBM hardware:
 
* '''RIFA mains-filter capacitors''' in the power supply are metallised-paper parts that crack and fail '''short''' with age, producing acrid smoke shortly after power-on. Replace them pre-emptively with modern X2-class parts.<ref name="ibm_rifa">[https://www.minuszerodegrees.net/failure.htm minuszerodegrees.net — IBM failure symptoms]; [https://www.classic-computers.org.nz/blog/2010-11-04-restoring-an-IBM-xt.htm Repairing and Restoring an IBM XT]; and [https://retrorepairsandrefurbs.com/2025/05/15/1983-ibm-pc-5160-xt-power-supply-rebuild-modifications/ Adam's Vintage Computer Restorations]. Source for the RIFA mains-filter capacitor failing short (smoke) and the tantalum capacitors failing short and preventing the PSU from firing.</ref>
* '''Tantalum capacitors''' on the planar (system board) and on ISA cards fail short with age. A shorted tantalum will '''prevent the power supply from starting''' (dead machine, PSU protection latched) &mdash; look for a cracked or discoloured tantalum and lift suspect ones to find the short.<ref name="ibm_rifa">[https://www.minuszerodegrees.net/failure.htm minuszerodegrees.net — IBM failure symptoms]; [https://www.classic-computers.org.nz/blog/2010-11-04-restoring-an-IBM-xt.htm Repairing and Restoring an IBM XT]; and [https://retrorepairsandrefurbs.com/2025/05/15/1983-ibm-pc-5160-xt-power-supply-rebuild-modifications/ Adam's Vintage Computer Restorations]. Source for the RIFA mains-filter capacitor failing short (smoke) and the tantalum capacitors failing short and preventing the PSU from firing.</ref>
 
IBM PC/XT switching supplies also need a '''minimum load''' to start, so a bare supply on the bench may not run without a dummy load.<ref name="ibm_rifa">[https://www.minuszerodegrees.net/failure.htm minuszerodegrees.net — IBM failure symptoms]; [https://www.classic-computers.org.nz/blog/2010-11-04-restoring-an-IBM-xt.htm Repairing and Restoring an IBM XT]; and [https://retrorepairsandrefurbs.com/2025/05/15/1983-ibm-pc-5160-xt-power-supply-rebuild-modifications/ Adam's Vintage Computer Restorations]. Source for the RIFA mains-filter capacitor failing short (smoke) and the tantalum capacitors failing short and preventing the PSU from firing.</ref>
 
== POST codes and diagnostics (deep dive) ==
 
A 5150 that fails POST before the video is initialised looks completely dead &mdash; no picture and no beep &mdash; so treat a silent, pictureless machine as a power / planar / CPU / ROM fault, not a video fault.<ref name="post5150">[https://minuszerodegrees.net/5150/post/5150%20-%20POST%20-%20Detailed%20breakdown.htm IBM 5150 &ndash; POST &ndash; Detailed breakdown] and [https://minuszerodegrees.net/5150/post/5150%20-%20POST%20-%20Some%20errors.htm Some errors], MinusZeroDegrees; and [http://ps-2.kev009.com/pcpartnerinfo/ctstips/49fe.htm IBM PC and PS/2 &ndash; Error codes]. Source for the 1xx&ndash;6xx error-code families, the 201 memory decode (bank/bit), the 301 keyboard decode, and the dead-board behaviour when POST fails before the video step.</ref>
 
=== Beep summary ===
 
{| class="wikitable styled-table"
! Beep pattern !! Meaning
|-
| 1 short || POST passed (normal)
|-
| 2 short || POST error &mdash; read the numeric code on screen
|-
| Continuous, repeating, or no beep || Power supply, system board, or speaker
|-
| 1 long + 1 short || System board
|-
| 1 long + 2 short || Display adapter (MDA / CGA)
|}
 
=== Error-code families ===
 
The numeric codes are grouped by device; the leading digits identify the subsystem:
 
{| class="wikitable styled-table"
! Code !! Subsystem
|-
| 1xx || System board (planar)
|-
| 2xx || Memory (RAM)
|-
|-
| 8088 pin 21 (RESET) || Low at power-on, high after Power Good || Stuck low = bad 8284 or bad PSU Power Good
| 3xx || Keyboard
|-
|-
| DRAM Vcc || +5 V || All RAM chips
| 4xx || Monochrome display adapter (MDA)
|-
|-
| DRAM Vbb (4116 only, pin 1) || &minus;5 V || Absence kills bank 0 silently on the early board
| 5xx || Colour graphics adapter (CGA)
|-
|-
| Power Good (P8/1) || +5 V, rises ~100-500 ms after +5 V is stable || A stuck-low Power Good keeps the CPU in reset
| 6xx || Floppy drive / adapter
|}
|}


=== V20 CPU issues ===
=== 201 (memory) decode ===
Swapping 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 game or compiler after a V20 swap, drop the original 8088 back in to confirm.


=== Interrupt bug in early 8088s ===
A '''201''' is a RAM failure, and the four characters in front of it locate the bad chip: in the '''xyzz 201''' form, '''x&nbsp;=&nbsp;0''' means the fault is on the planar, '''y''' is the failing bank (0&ndash;3) and '''zz''' identifies the failing bit or the parity chip. Use that to go straight to the offending DRAM rather than swapping a whole bank.<ref name="post5150">[https://minuszerodegrees.net/5150/post/5150%20-%20POST%20-%20Detailed%20breakdown.htm IBM 5150 &ndash; POST &ndash; Detailed breakdown] and [https://minuszerodegrees.net/5150/post/5150%20-%20POST%20-%20Some%20errors.htm Some errors], MinusZeroDegrees; and [http://ps-2.kev009.com/pcpartnerinfo/ctstips/49fe.htm IBM PC and PS/2 &ndash; Error codes]. Source for the 1xx&ndash;6xx error-code families, the 201 memory decode (bank/bit), the 301 keyboard decode, and the dead-board behaviour when POST fails before the video step.</ref>
Early-stepping Intel 8088s 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).


== Expansion Card Diagnostics ==
=== 301 (keyboard) decode ===


=== Process of elimination ===
A '''301''' means POST did not receive the AA self-test byte from the keyboard in time, or a stuck key was found; a stuck key is reported as its scan code, e.g. "301&nbsp;xx". Check the keyboard and its cable before replacing the keyboard.<ref name="post5150">[https://minuszerodegrees.net/5150/post/5150%20-%20POST%20-%20Detailed%20breakdown.htm IBM 5150 &ndash; POST &ndash; Detailed breakdown] and [https://minuszerodegrees.net/5150/post/5150%20-%20POST%20-%20Some%20errors.htm Some errors], MinusZeroDegrees; and [http://ps-2.kev009.com/pcpartnerinfo/ctstips/49fe.htm IBM PC and PS/2 &ndash; Error codes]. Source for the 1xx&ndash;6xx error-code families, the 201 memory decode (bank/bit), the 301 keyboard decode, and the dead-board behaviour when POST fails before the video step.</ref>
# Strip the machine to '''motherboard + PSU + RAM + video card + keyboard'''.
# Confirm POST passes. If yes, add cards back one at a time, powering down between each.
# The first card that prevents POST is the suspect.


=== 16-bit ISA cards ===
== References ==
Some 16-bit ISA cards advertised as "8-bit slot compatible" do '''not''' work in the 5150's 8-bit slots. Causes:
 
* The card requires the wider 5170 (AT) slot spacing.
<references />
* The card needs to be reconfigured for 8-bit mode by switches, jumpers, or in some cases configuration software.


If the card refuses to POST and the SW1 settings are correct, try the card in a 5160 (XT) first to confirm it works in '''any''' 8-bit slot.
== References ==


== Final Notes ==
* IBM, ''IBM 5150 Technical Reference'' (part 6025005, August 1981) contains the full schematics, BIOS listing, and DIP-switch reference. [https://www.minuszerodegrees.net/manuals/IBM_5150_Technical_Reference_6025005_AUG81.pdf PDF on the minuszerodegrees mirror].
* The original ''IBM 5150 Technical Reference'' (1981) contains the full schematics, BIOS listing, and DIP-switch reference. It is the single most useful document for board-level fault finding.
* [https://minuszerodegrees.net/5150/problems/5150_known_problems_issues.htm IBM 5150 — Known Problems / Issues], minuszerodegrees.net (Brad Parker). Primary source for the "Known Problems" section reproduced above.
* The minuszerodegrees.net 5150 documentation set (BIOS revisions, motherboard versions, known problems) is the most thorough community-maintained reference.
* [https://minuszerodegrees.net/5150/post/5150%20-%20POST%20-%20Some%20errors.htm IBM 5150 — POST — Some errors (on-screen, or otherwise)], minuszerodegrees.net.
* For systematic recapping, see [[IBM PC (5150) Capacitor Replacement Guide]].
* [https://minuszerodegrees.net/5150/bios/5150_bios_revisions.htm 5150 BIOS Revisions], minuszerodegrees.net.
* For preventive work and cleaning, see [[IBM PC (5150) Maintenance Guide]].
* [https://www.stanislavs.org/helppc/diagnostic_codes.html DIAGS — IBM PC Diagnostic Error Codes], Stanislavs.org / HelpPC quick-reference. Source for the comprehensive POST numeric error code list reproduced above.


[[Category:IBM]]
[[Category:IBM]]
[[Category:Troubleshooting Guides]]
[[Category:Troubleshooting Guides]]

Latest revision as of 13:06, 16 July 2026

IBM PC (5150). Source: Wikimedia Commons.

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

[edit | edit source]

The 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

[edit | edit source]

On a healthy 5150, power-up produces:

  1. A single short beep after about five seconds.
  2. The memory count appears in the top-left of the display.
  3. 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 | edit source]
IBM 5150 POST audio beep codes
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

[edit | edit source]

When 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 | edit source]
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 | edit source]
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 | edit source]
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 | edit source]
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 | edit source]
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 | edit source]
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 | edit source]
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 | edit source]
Code Meaning
901 Parallel printer adapter test failed

11xx — Asynchronous (RS-232) communications adapter errors

[edit | edit source]
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 | edit source]
Code Meaning
1301 Game control adapter test failed
1302 Joystick test failed

14xx — Printer errors

[edit | edit source]
Code Meaning
1401 Printer test failed
1404 Matrix printer failed

17xx — Fixed disk (hard drive) errors

[edit | edit source]
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 | edit source]
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

[edit | edit source]

On a 5150, "dead machine" is most often one of: bank-0 RAM, the BIOS ROM, the CPU, or a missing −5 V rail.

  1. 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.
  2. Reseat U33 (BIOS), U29-U32 (Cassette BASIC), the 8088 CPU, and all of bank-0 RAM.
  3. 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.
  4. Piggyback a known-good RAM chip on each bank-0 position in turn. A piggyback that makes the machine boot identifies the dead chip.
  5. 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

[edit | edit source]

The 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.

  1. Reseat the chip at the indicated bank and bit position.
  2. If reseating does not fix it, replace that single chip with a known-good 4164 (or 4116 on the 16KB-64KB board).
  3. 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

[edit | edit source]

The 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 | edit source]
  • 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 | edit source]
  • 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

[edit | edit source]

301 error (keyboard)

[edit | edit source]
  • 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

[edit | edit source]

A 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 | edit source]
  • 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)

[edit | edit source]

The 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

[edit | edit source]

The 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

[edit | edit source]

The 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

[edit | edit source]

Tantalum 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

[edit | edit source]

If 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

[edit | edit source]

The 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

[edit | edit source]

A 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

[edit | edit source]

Vintage 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

[edit | edit source]

The 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

[edit | edit source]

MS-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

[edit | edit source]

Early-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

[edit | edit source]

Swapping 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

[edit | edit source]

Some 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

[edit | edit source]

Voltage test points

[edit | edit source]
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

⚠️ Power-supply RIFA capacitor and tantalum shorts

[edit | edit source]

Two age-related failures are near-universal on this era of IBM hardware:

  • RIFA mains-filter capacitors in the power supply are metallised-paper parts that crack and fail short with age, producing acrid smoke shortly after power-on. Replace them pre-emptively with modern X2-class parts.[1]
  • Tantalum capacitors on the planar (system board) and on ISA cards fail short with age. A shorted tantalum will prevent the power supply from starting (dead machine, PSU protection latched) — look for a cracked or discoloured tantalum and lift suspect ones to find the short.[1]

IBM PC/XT switching supplies also need a minimum load to start, so a bare supply on the bench may not run without a dummy load.[1]

POST codes and diagnostics (deep dive)

[edit | edit source]

A 5150 that fails POST before the video is initialised looks completely dead — no picture and no beep — so treat a silent, pictureless machine as a power / planar / CPU / ROM fault, not a video fault.[2]

Beep summary

[edit | edit source]
Beep pattern Meaning
1 short POST passed (normal)
2 short POST error — read the numeric code on screen
Continuous, repeating, or no beep Power supply, system board, or speaker
1 long + 1 short System board
1 long + 2 short Display adapter (MDA / CGA)

Error-code families

[edit | edit source]

The numeric codes are grouped by device; the leading digits identify the subsystem:

Code Subsystem
1xx System board (planar)
2xx Memory (RAM)
3xx Keyboard
4xx Monochrome display adapter (MDA)
5xx Colour graphics adapter (CGA)
6xx Floppy drive / adapter

201 (memory) decode

[edit | edit source]

A 201 is a RAM failure, and the four characters in front of it locate the bad chip: in the xyzz 201 form, x = 0 means the fault is on the planar, y is the failing bank (0–3) and zz identifies the failing bit or the parity chip. Use that to go straight to the offending DRAM rather than swapping a whole bank.[2]

301 (keyboard) decode

[edit | edit source]

A 301 means POST did not receive the AA self-test byte from the keyboard in time, or a stuck key was found; a stuck key is reported as its scan code, e.g. "301 xx". Check the keyboard and its cable before replacing the keyboard.[2]

References

[edit | edit source]
  1. 1.0 1.1 1.2 minuszerodegrees.net — IBM failure symptoms; Repairing and Restoring an IBM XT; and Adam's Vintage Computer Restorations. Source for the RIFA mains-filter capacitor failing short (smoke) and the tantalum capacitors failing short and preventing the PSU from firing.
  2. 2.0 2.1 2.2 IBM 5150 – POST – Detailed breakdown and Some errors, MinusZeroDegrees; and IBM PC and PS/2 – Error codes. Source for the 1xx–6xx error-code families, the 201 memory decode (bank/bit), the 301 keyboard decode, and the dead-board behaviour when POST fails before the video step.

References

[edit | edit source]