Level I BASIC
Level I BASIC | |
---|---|
Designed by | Steve Leininger |
First appeared | 1977 |
Influenced by | |
Tiny BASIC, Palo Alto Tiny BASIC | |
Influenced | |
TRS-80 Level II BASIC |
Level I BASIC is a dialect of the BASIC programming language that shipped with the first TRS-80, the TRS-80 Model I.
Background
[edit]Tandy employee Steve Leininger wrote the first draft of the NIBL (National Industrial Basic Language) BASIC interpreter for the SC/MP while employed at National Semiconductor .[1] Unable to take that source code with him, he initially hired a consultant to write an interpreter. When the consultant failed to deliver,[2] Leininger, Don French, and BASIC manual author David A. Lien[3] adapted Li-Chen Wang's public domain version of Tiny BASIC for the prototype TRS-80 Model I. Leininger said, "we went back through the Wang Basic and completely tore out about 60 per cent of it, the integer overhead and all that kind of stuff".[4] The result required only 2 KB of memory for the interpreter, leaving an average of another 2 KB free for user programs in common 4 KB memory layouts of early machines.
During a demonstration to executives, Tandy Corporation President Charles Tandy tried to enter his salary but was unable to do so, because Tiny BASIC uses 2-byte signed integers with a maximum value of 32,767. The result was a request for floating-point math for the production version.[5] This led to the replacement of the existing 16-bit integer code with a version using 32-bit single-precision floating-point numbers. Leininger further extended the language to support input/output routines (keyboard, CRT, and reading and writing from cassettes). The language fits within 4 KB of ROM.[6]
Further Development
[edit]When the TRS-80 was introduced, three versions of BASIC were announced:
- Level I BASIC
- Level II BASIC - developed by Microsoft and using 12 KB of ROM to add string handling, error handling, trigonometric and other dedicated functions
- Level III BASIC - also developed by Microsoft, offering disk commands[7]
The Level I language was not available for the TRS-80 Model II but briefly re-surfaced as the baseline package for the TRS-80 Model III in 1981, selling for $699 compared to the $999 system with Model III BASIC (another Microsoft product). The language was identical to the Model I version but with the addition of two commands, the LLIST and the LPRINT, to output to a printer.[8]
Language features
[edit]Level I BASIC supports the following keywords:[9]
- Commands:
NEW
,RUN
,LIST
,CONT
(to continue or resume a program from a breakpoint) - Statements:
PRINT
,INPUT
,READ
,DATA
,RESTORE
,LET
- Print modifiers:
AT
,TAB
- Structure:
GOTO
,GOSUB
,ON-GOTO
,ON-GOSUB
,RETURN
,IF-THEN
(but noELSE
),FOR-TO-STEP/NEXT
,STOP
,END
- Graphics:
CLS
,SET
,RESET
,POINT()
- Functions:
ABS()
,INT()
,RND()
,MEM
- Math:
+
-
*
/
- Relational operators:
<
>
=
<=
=>
<>
- Logical operators:
*
(AND)+
(OR)
Like Palo Alto Tiny BASIC on which it was based, Level I BASIC does not tokenize keywords like Microsoft BASIC but uses abbreviations to reduce the amount of memory used by keywords, such as F.
for FOR
, G.
for GOTO
, P.
for PRINT
, and T.
for THEN
.
The language supports 26 single-precision variables A to Z, two strings A$ and B$ (limited to 16 characters each), and one pre-defined array A(). The language lacks a DIM statement for dimensioning the array, the size of which is determined by available memory not used by the program listing (4 bytes per item).[10] As the language lacks many common math functions, the manual provides subroutine listings for square root, exponentiation, exponentials, logarithms, arithmetic sign, and trigonometry functions.[11]
Graphics support is minimal: CLS
, for CLear Screen; SET(X,Y)
, which lights a location on the display; RESET(X,Y)
, which turns it off; and POINT(X,Y)
, which returns 1 if a location was lit, 0 if it was not. The coordinates can be any expression and ranges from 0 to 127 for the X-axis and 0 to 47 for the Y-axis. Only black-and-white display is supported.[12]
References
[edit]- ^ "NIBL". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (10). November 1976.
- ^ Lorenzo, Mark (2017). Endless Loop: The History of the BASIC Programming Language. Philadelphia: SE Books. p. 80. ISBN 978-1974-27707-0.
- ^ Lien, David A. (1983). "A Look Back". 80 Micro. p. 12. Retrieved September 17, 2025.
- ^ "Interview with Steven W. Leininger". TRS-80.com. Retrieved 28 August 2017.
- ^ Welsh, David; Welsh, Theresa (2007). Priming the Pump: How TRS-80 Enthusiasts Helped Spark the PC Revolution. p. 7.
- ^ Reed, Matthew. "Level I BASIC". TRS-80.org. Retrieved 27 August 2017.
- ^ Thomas, Wes (Sep–Oct 1977). "Radio Shack's $600 Home Computer". Creative Computing. 3 (5): 94–95.
- ^ Reed, Matthew. "Was there a Level I Model III?". TRS-80.org. Retrieved 27 August 2017.
- ^ Lien, David (1977). User's Manual for Level I (First ed.). Fort Worth, TX: Tandy Corporation. pp. 232–233. Retrieved 2 November 2017.
- ^ Lien, David (1977). User's Manual for Level I (First ed.). Fort Worth, TX: Tandy Corporation. pp. 123–132. Retrieved 2 November 2017.
- ^ Lien, David (1977). User's Manual for Level I (First ed.). Fort Worth, TX: Tandy Corporation. pp. 216–220. Retrieved 2 November 2017.
- ^ Lien, David (1977). User's Manual for Level I (First ed.). Fort Worth, TX: Tandy Corporation. pp. 105–108, 137. Retrieved 9 August 2020.
External links
[edit]- TRS-80 Level I BASIC Simulator
- Conklin Systems - He Changed Our World - tribute to the Level I BASIC user manual's personification of the computer