IBM Cassette BASIC
The IBM Cassette BASIC (officially IBM BASIC C1.0, later C1.1) is the 32 KB ROM-resident Microsoft BASIC supplied in every IBM PC (5150) and IBM PC XT (5160) motherboard. It lives in the four sockets U29, U30, U31, U32 on the 5150 board, and is automatically launched by the BIOS when no boot disk is found in drive A and no Disk BASIC overlay is loaded.
History
Cassette BASIC was written by Microsoft for IBM as part of the original PC project ("Project Chess"). The version in the first 5150 ROMs is C1.0, dated 1981; a later revision C1.1 shipped in machines built from late 1982 onward and was retained throughout the 5160 production run. C1.1 fixes several bugs in the floating-point library and adds support for the 8087 FPU when present.
The same ROM image was supplied unchanged on the 5160 XT and on early 5170 AT machines; it was finally dropped from the IBM PCjr and the later PS/2 line.
ROM Layout
- U29 โ 8 KB ROM, BASIC pages 0
- U30 โ 8 KB ROM, BASIC pages 1
- U31 โ 8 KB ROM, BASIC pages 2
- U32 โ 8 KB ROM, BASIC pages 3
The four 24-pin DIP ROMs are part-marked with their IBM dash numbers and a 5700xxxx-series part number (C1.0) or a 1501xxx-series part number (C1.1).
Disk Variants
Three different BASIC builds shipped from IBM, layered on top of Cassette BASIC:
| Name | Form | Notes |
|---|---|---|
| Cassette BASIC | ROM (U29-U32) | Cassette I/O only; no disk; no advanced graphics |
| Disk BASIC (BASIC.COM) | Loaded from PC DOS, calls into ROM | Adds disk I/O on top of Cassette BASIC |
| Advanced BASIC (BASICA.COM) | Loaded from PC DOS, calls into ROM | Adds CGA graphics, sound, and event trapping |
A 5150 booted without any disk drops straight into Cassette BASIC. Disk and Advanced BASIC are not standalone โ both rely on the ROM image and will not run on a clone with no Cassette BASIC ROM. This is why GW-BASIC was developed for the clone market: it is a self-contained equivalent that does not need IBM's ROM.
Common Faults
- "BASIC ROM" missing or corrupt โ POST passes but the BASIC banner is garbled or BASIC will not start. Reseat U29-U32, then swap each ROM with a known-good donor to identify the failed chip.
- "NL/CR" sequence prints garbage โ the 8255 PPI keyboard interface or a bad parity bit; usually a separate fault from BASIC itself.
- CASSAVE / CLOAD failures โ the cassette port on the 5150 has been functionally abandoned for decades; verify the −5 V rail before chasing the cassette circuitry.