Top Qs
Timeline
Chat
Perspective
Level I BASIC
From Wikipedia, the free encyclopedia
Remove ads
Level I BASIC is a dialect of the BASIC programming language that shipped with the first TRS-80, the TRS-80 Model I.
Background
Summarize
Perspective
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]
Remove ads
Further Development
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]
Remove ads
Language features
Summarize
Perspective
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
External links
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads