Jump to content

IBM Cassette BASIC: Difference between revisions

From RetroTechCollection
Corrected the claim that Cassette BASIC was dropped from the PCjr - IBM's own PCjr Technical Reference says it is in system ROM, with Cartridge BASIC adding Advanced BASIC; added the 5170's U27/U47 location and C1.00/C1.10 versions; replaced the vague 'reseat and swap' fault note with the per-BIOS-revision symptom table including the Fx00 ROM messages; added ROM pinout/substitution notes; removed the unverifiable PS/2 claim and said so plainly; <ref>-cited
Add illustration of the Cassette BASIC start-up screen
ย 
Line 1: Line 1:
[[File:IBM Cassette BASIC startup screen.png|thumb|400px|The IBM Cassette BASIC start-up screen &mdash; what a 5150 shows when it finds nothing to boot from. The version line identifies the ROM revision.]]
'''IBM Cassette BASIC''' is the Microsoft-written BASIC interpreter IBM put in motherboard ROM on the [[IBM PC (5150)]], the [[IBM PC XT (5160)]], the [[IBM PC AT (5170)]] and the [[IBM PCjr]]. If the machine finds no disk it can boot from, the BIOS hands control to it, which is why a PC with no bootable diskette drops to a BASIC prompt instead of an error message.
'''IBM Cassette BASIC''' is the Microsoft-written BASIC interpreter IBM put in motherboard ROM on the [[IBM PC (5150)]], the [[IBM PC XT (5160)]], the [[IBM PC AT (5170)]] and the [[IBM PCjr]]. If the machine finds no disk it can boot from, the BIOS hands control to it, which is why a PC with no bootable diskette drops to a BASIC prompt instead of an error message.



Latest revision as of 03:40, 23 September 2026

The IBM Cassette BASIC start-up screen — what a 5150 shows when it finds nothing to boot from. The version line identifies the ROM revision.

IBM Cassette BASIC is the Microsoft-written BASIC interpreter IBM put in motherboard ROM on the IBM PC (5150), the IBM PC XT (5160), the IBM PC AT (5170) and the IBM PCjr. If the machine finds no disk it can boot from, the BIOS hands control to it, which is why a PC with no bootable diskette drops to a BASIC prompt instead of an error message.

IBM's own naming is not consistent. The Guide to Operations manuals for the 5150 call it cassette BASIC; the Technical Reference manuals use both cassette BASIC and resident BASIC; the 5170 Guide to Operations calls it simply IBM BASIC.[1][2] The "cassette" in the name describes its I/O: it can save and load programs to cassette tape and nothing else. It cannot read or write diskettes.

Where It Lives

[edit | edit source]
Cassette BASIC by machine
Machine Location Version
IBM PC (5150) Four separate ROMs at U29, U30, U31 and U32. Those four chips contain BASIC and nothing else; the BIOS is in U33.[1] C1.00 on early machines, C1.10 later
IBM PC AT (5170) Held with the BIOS in chips U27 and U47.[2] C1.10
IBM PCjr In system ROM, taking no user memory. The PCjr also has Cartridge BASIC, which puts Advanced BASIC capability in a ROM cartridge, again using no user memory.[3]

The BASIC ROMs on the 5150 use the same special pinout as the U33 BIOS ROM. A 2732 EPROM is not a substitute — wrong pinout and half the capacity — but 2764, 27128, 27256 and 27512 parts work with a suitable adapter, and direct EPROM equivalents exist.[1]

RAM Usage

[edit | edit source]

Cassette BASIC runs from ROM but needs RAM for itself, the program and variables. On a 16KB-64KB 5150 motherboard it claims whatever is fitted; on a 64KB-256KB board, and on a 5170, it claims 64 KB, reserves part of it and reports the rest — the familiar "61404 Bytes free" or "62940 Bytes free" line.[1][2]

The Three BASICs

[edit | edit source]
Microsoft BASIC on the IBM PC
Name Form Notes
Cassette BASIC Motherboard ROM Cassette I/O only; no disk support
Disk BASIC (BASIC.COM) Loaded from PC DOS, calls into the ROM Adds diskette I/O on top of the ROM interpreter
Advanced BASIC (BASICA.COM) Loaded from PC DOS, calls into the ROM Adds graphics, sound and event trapping

Because BASIC.COM and BASICA.COM call into the ROM image rather than containing a complete interpreter, neither will run on a clone that has no IBM BASIC ROM. That is the gap GW-BASIC was written to fill: it is self-contained.

The cassette cable itself is the same one the Radio Shack TRS-80 used.[1]

Diagnosing a Failed BASIC ROM

[edit | edit source]

A failed BASIC ROM does not stop a machine that boots from disk, so it often goes unnoticed. What you see on a 5150 depends on which BIOS revision is in U33:[1]

5150 symptoms of a failed cassette BASIC ROM, by BIOS revision
BIOS Symptom
04/24/81 Flashing cursor as normal; a few seconds later one long beep and one short beep; about 15 seconds after that a single short beep; no further progress, cursor still flashing.
10/19/81 Nothing that points at the BASIC chips. Flashing cursor, then the diskette drive's LED and spindle motor turn on and never turn off; inserting a boot diskette does nothing.
10/27/82 A specific message per chip: U29 gives "F600 ROM", U30 "F800 ROM", U31 "FA00 ROM", U32 "FC00 ROM".

If the machine boots to DOS, the 5150ROMS utility will verify all four ROMs and will catch the common mistake of putting one of them back in the wrong socket.[1]

Observed IBM part-number sets for U29 to U32 differ between production runs; several are catalogued, along with the version each set produces.[1]

What This Page Does Not Cover

[edit | edit source]

Which PS/2 models carry an IBM BASIC in ROM, and where, is not settled by the IBM technical references consulted for this page. The machine-specific technical references and the ROM image listings on ardent-tool.com are the places to check for a particular planar, rather than assuming the 5150 arrangement carries over.

References

[edit | edit source]
  1. โ†‘ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 IBM 5150 — Cassette BASIC, minuszerodegrees.net. Source for the C1.00 and C1.10 version numbers, the observed U29 to U32 part-number sets, the RAM the interpreter claims on each motherboard type, IBM's use of "resident BASIC" in the technical references, the per-BIOS failure symptoms including the Fx00 ROM messages, the special ROM pinout and the EPROM substitution notes, and the point that the cassette cable is the same as the Radio Shack TRS-80's.
  2. โ†‘ 2.0 2.1 2.2 IBM 5170 — Cassette BASIC, minuszerodegrees.net. Source for the 5170 carrying the same cassette BASIC as its predecessors, at version C1.10, held with the BIOS in chips U27 and U47, claiming 64 KB of motherboard RAM at start-up, and for IBM's use of "IBM BASIC" in the Guide to Operations and of both "cassette BASIC" and "resident BASIC" in the technical references.
  3. โ†‘ IBM, IBM PCjr Technical Reference — hosted on this wiki as File:IBM PCjr Technical Reference.pdf and documented as IBM PCjr Technical Reference. "System Power Supply" and its Operating Characteristics, Over-Voltage/Over-Current Protection and Connector Specifications subsections for the two-stage 33 W supply, the transformer's short-circuit-protected extra-low ac output and its "Pin 1 - 17 Vac, Pin 2 - GND, Pin 3 - 17 Vac" connector specification, the internal Power Board that converts that ac to three dc levels, the +5 V / +12 V / −6 V rails with their load currents and regulation tolerances, the 1.5 A minimum +5 V load required for −6 V to be present, the input requirements, the power available at the I/O connector on a fully configured machine, and the input and output protection tables including the five-second reset time. "Hardware Differences" for cassette BASIC residing in system ROM and cartridge BASIC providing Advanced BASIC capability in ROM.
[edit | edit source]