Model I Level II BASIC ROM Versions
The original TRS-80 Microcomputer System, later known as the TRS-80 Model I, shipped with Level I BASIC when it was introduced on August 3, 1977. An improved Level II BASIC written by Microsoft was announced at the time but was released some time later.
Radio Shack used four different versions of the Level II ROM over the lifetime of the Model I, even though the part number (26-1120) remained the same. Radio Shack never officially named the ROM versions, or even acknowledged the existence of any version other than the last, so all names used were created by users.
The original Level II ROM shipped around March 1978, some time after the introduction of the Model I. Although much delayed, the ROM is remarkably bug free. The next three versions of the Level II BASIC ROM corrected most of the remaining bugs without adversely affecting compatibility.
There are very few contemporaneous mentions of this ROM and it is unclear when it was released. There are a number of important changes:
- The version 1.0 ROM generates a buzzing sound during the memory test at startup due to a two byte address calculation error. That bug is fixed in this version.
- An error in the routine to compare double-precision numbers is fixed.
- An improvement is made in the parsing of the SYSTEM command.
- Due to a bug in the original ROM, the DATA pointer is often reset to the start of data for no reason. This renders the DATA command useless unless POKE 16553, 255 is used to prevent the pointer from resetting. (You will often see that POKE command scattered through old Model I programs.) That serious error is fixed in this version.
This is the most common version of the Model I ROM, although it is debatable whether it qualifies as a distinct version. Released sometime before July 1979, version 1.2 differs from version 1.1 in only one way: the five unused bytes at the end of the ROM are different. There doesn’t seem to have been any reason for this change (the bytes are never referenced by the ROM), so they are probably just random bytes or leftover bytes from other code.
Version 1.3, sometimes called the R/S L2 BASIC ROM
Released around July 1980, this was the biggest revision of the Model I ROM, and the only version Radio Shack officially acknowledged. There are two very obvious changes from the previous ROM:
- The “MEMORY SIZE?” startup message is shortened to “MEM SIZE?”
- The “RADIO SHACK LEVEL II BASIC” message is shortened to “R/S L2 BASIC”
There are several new features:
- A keyboard debounce routine is incorporated into the ROM, eliminating the need for the KBFIX program.
- The keyboard driver is changed to permit control characters to be output using SHIFT+DOWN plus a key.
- The PRINT command is enhanced to allow multiple @ specifiers, such as: PRINT@10,“A”,@74,“B”,@138,“C”
- A longstanding timing error in the cassette routines is fixed, greatly improving the reliability of cassette transfers.
- The maximum value for the TAB function is increased to 127 from 64.
- The CLOAD command can specify a filename when used under Disk BASIC.
There are also a few minor limitations:
- The CLOAD command is limited to only one cassette drive, rather than the two allowed in previous versions.
- Free memory is reduced by two bytes.
The changes to the cassette timing mean that some older cassette tapes from Radio Shack can no longer be read with the new ROM. These include:
- 26-1146 RS-232 Comm. Pack
- 26-1181 VOXBOX Tapes
- 26-1504 Tape Payroll
- 26-1707 Level II Algebra I
- 26-1802 Quick Watson
- 26-1803 Blackjack/Backgammon
- 26-1901 MicroChess
- 26-1906 Invasion Force
- 26-1907 Checkers 80
- 26-2002 Editor/Assembler
The official Radio Shack recommendation for owners of those cassettes was to either request replacements from their local Radio Shack store or have a friend with an older ROM Model I make copies(!!!).