IBM Cassette BASIC: Difference between revisions
Rewrite with verified information only โ remove fabricated part numbers (CGA 1501486, MDA 1501481, FDD Adapter 1501507, Fixed Disk Adapter 6181682, Model F dimensions/weight), remove placeholder image filenames, replace speculative capacitor designator table with verified minuszerodegrees.net source data (all tantalums marked C7, 10ยตF/16V), fix 5150 dimensions/weight to 20x16x5.5 inches / 21-28 lbs, fix Model F dimensions/weight to 19x9x1.5in / 7lb4oz / 3.3kg. Per Joshua's feedback: never pub... |
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 |
||
| Line 1: | Line 1: | ||
'''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'''.<ref name="mzbasic">[https://www.minuszerodegrees.net/5150/basic/5150_cassette_basic.htm 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.</ref><ref name="mzbasic5170">[https://www.minuszerodegrees.net/5170/basic/5170_cassette_basic.htm 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.</ref> 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 == | |||
== ROM | <templatestyles src="Template:StyledTable/styles.css" /> | ||
{| class="wikitable styled-table" style="width:85%;" | |||
|+'''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.<ref name="mzbasic" /> || C1.00 on early machines, C1.10 later | |||
|- | |||
| [[IBM PC AT (5170)]] || Held '''with the BIOS''' in chips U27 and U47.<ref name="mzbasic5170" /> || 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.<ref name="trjr">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.</ref> || | |||
|} | |||
The 5150 | 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.<ref name="mzbasic" /> | ||
== RAM Usage == | |||
== | 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.<ref name="mzbasic" /><ref name="mzbasic5170" /> | ||
Three | == The Three BASICs == | ||
{| class="wikitable styled-table" style="width:95%;" | |||
{| class="wikitable styled-table" style="width: | |+'''Microsoft BASIC on the IBM PC''' | ||
|+'''Microsoft BASIC | |||
! Name !! Form !! Notes | ! Name !! Form !! Notes | ||
|- | |- | ||
| Cassette BASIC || ROM | | Cassette BASIC || Motherboard ROM || Cassette I/O only; no disk support | ||
|- | |- | ||
| Disk BASIC (''BASIC.COM'') || Loaded from PC DOS, calls into ROM || Adds | | 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 ROM || Adds | | 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.<ref name="mzbasic" /> | |||
== | == Diagnosing a Failed BASIC ROM == | ||
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:<ref name="mzbasic" /> | |||
ย | |||
{| class="wikitable styled-table" style="width:95%;" | |||
|+'''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.<ref name="mzbasic" /> | |||
ย | |||
Observed IBM part-number sets for U29 to U32 differ between production runs; several are catalogued, along with the version each set produces.<ref name="mzbasic" /> | |||
ย | |||
== What This Page Does Not Cover == | |||
ย | |||
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 == | == References == | ||
<references /> | |||
== Related Pages == | == Related Pages == | ||
* [[IBM PC (5150)]] | * [[IBM PC (5150)]] · [[IBM PC XT (5160)]] · [[IBM PC AT (5170)]] · [[IBM PCjr]] | ||
* [[IBM PC (5150) Maintenance Guide]] · [[IBM PC (5150) Troubleshooting Guide]] | |||
* [[IBM PC (5150) Maintenance Guide]] | * [[IBM PC 5150 Technical Reference]] · [[IBM PCjr Technical Reference]] | ||
ย | |||
{{Navbox-IBMComputers|state=collapsed}} | |||
[[Category:IBM]] | [[Category:IBM]] | ||
Revision as of 03:23, 23 September 2026
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
| 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
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
| 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
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]
| 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
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
- โ 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.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.
- โ 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.
Related Pages
- IBM PC (5150) · IBM PC XT (5160) · IBM PC AT (5170) · IBM PCjr
- IBM PC (5150) Maintenance Guide · IBM PC (5150) Troubleshooting Guide
- IBM PC 5150 Technical Reference · IBM PCjr Technical Reference