Level I BASIC es un dialecto del lenguaje de programación BASIC que se envió con el primer TRS-80 , el TRS-80 Modelo I.
Diseñada por | Steve Leininger |
---|---|
Apareció por primera vez | 1977 |
Influenciado por | |
Tiny BÁSICO , Palo Alto Tiny BÁSICO | |
Influenciado | |
TRS-80 Nivel II BÁSICO |
Fondo
Steve Leininger, empleado de Tandy, había escrito el primer borrador del intérprete BÁSICO de NIBL (Lenguaje básico industrial nacional) para el SC / MP mientras trabajaba en National Semiconductor . [1] Incapaz de llevarse ese código fuente con él, inicialmente contrató a un consultor para que escribiera un intérprete . Cuando ese contratista no pudo entregar, [2] adaptó la versión de dominio público de Tiny BASIC de Li-Chen Wang para el prototipo original del TRS-80 Modelo I. Esto requirió solo 2 KB de memoria para el intérprete , dejando un promedio de otros 2 KB libres para programas de usuario en diseños de memoria comunes de 4 KB de las primeras máquinas.
Durante una demostración a los ejecutivos, el entonces presidente de Tandy Corporation , Charles Tandy, intentó ingresar su salario, pero no pudo hacerlo. Esto se debió a que Tiny BASIC usó números enteros con signo de 2 bytes con un valor máximo de 32,767. El resultado fue una solicitud de matemática de punto flotante para la versión de producción. [3]
Esto llevó a la sustitución del código entero de 16 bits existente por una versión que utiliza números de coma flotante de precisión simple de 32 bits . Leininger amplió aún más el lenguaje para admitir rutinas de entrada / salida (teclado, CRT y lectura y escritura de casetes). El idioma cabe dentro de los 4 KB de la ROM . [4]
En una presentación en la que se anunciaba el TRS-80, Leininger dijo: "Lo que hicimos, volvimos a utilizar el Wang Basic y eliminamos por completo alrededor del 60 por ciento, los gastos generales de enteros y todo ese tipo de cosas". [5]
Mayor desarrollo
Cuando se introdujo el TRS-80, se anunciaron tres versiones de BASIC:
- Nivel I BÁSICO
- Nivel II BÁSICO : desarrollado por Microsoft y con 12 KB de ROM para agregar funciones de manejo de cadenas , manejo de errores , trigonométricas y otras funciones dedicadas
- Nivel III BÁSICO : también desarrollado por Microsoft, que ofrece comandos de disco [6]
El lenguaje de Nivel I no estaba disponible para el TRS-80 Modelo II, pero resurgió brevemente como el paquete básico para el TRS-80 Modelo III en 1981, vendiéndose por $ 699 en comparación con el sistema de $ 999 con el Modelo III BASIC (otro producto de Microsoft) . El lenguaje era idéntico a la versión del Modelo I pero con la adición de dos comandos, LLIST y LPRINT, para enviarlos a una impresora. [7]
Características del idioma
El nivel I BÁSICO admitía las siguientes palabras clave: [8]
- Comandos:
NEW
,RUN
,LIST
,CONT
(para continuar o reanudar un programa desde un punto de interrupción ) - Declaraciones:
PRINT
,INPUT
,READ
,DATA
,RESTORE
,LET
- Estructura:
GOTO
,GOSUB
,ON-GOTO
,ON-GOSUB
,RETURN
,IF-THEN
(pero noELSE
),FOR-TO-STEP/NEXT
,STOP
,END
- Gráficos:
CLS
,SET
,RESET
,POINT()
- Funciones:
ABS()
,INT()
,RND()
,MEM
- Matemáticas: + - * /
- Operadores relacionales: <> = <= => <>
- Operadores lógicos: * [Y] + [O]
Al igual que Palo Alto Tiny BASIC en el que se basaba, Level I BASIC no tokenizaba palabras clave como Microsoft BASIC, sino que usaba abreviaturas para reducir la cantidad de memoria utilizada por las palabras clave, como F.
for FOR
, G.
for GOTO
, P.
for PRINT
y T.
for THEN
.
El lenguaje admitía 26 variables de precisión simple de la A a la Z, dos cadenas A $ y B $ (limitadas a 16 caracteres cada una) y una matriz predefinida A (). El lenguaje carecía de una declaración DIM para dimensionar la matriz, cuyo tamaño estaba determinado por la memoria disponible no utilizada por la lista del programa (4 bytes por elemento). [9] Como el lenguaje carecía de muchas funciones matemáticas comunes, el manual proporcionaba listas de subrutinas para funciones de raíz cuadrada , exponenciación , exponenciales , logaritmos , signos aritméticos y trigonometría . [10]
El soporte de gráficos fue lo más mínimo posible:, CLS
para CLear Screen; SET(X,Y)
, que iluminó una ubicación en la pantalla; RESET(X,Y)
, que lo apagó; y POINT(X,Y)
, que devolvió 1 si una ubicación estaba iluminada, 0 si no lo estaba. Las coordenadas pueden ser cualquier expresión y varió de 0 a 127 para el eje X y de 0 a 47 para el eje Y . Solo se admitía la visualización en blanco y negro. [11]
Referencias
- ^ "NIBL". Dr. Dobb's Journal of Computer Calistenics & Orthodontia, Running Light Without Overbyte . 1 (10). Noviembre de 1976.
- ^ Lorenzo, Mark (2017). Bucle sin fin: La historia del lenguaje de programación BÁSICO . Filadelfia: SE Books. pag. 80. ISBN 978-1974-27707-0.
- ^ Galés, David; Galés, Theresa (2007). Cebado de la bomba: cómo los entusiastas de TRS-80 ayudaron a encender la revolución de la PC . pag. 7.
- ^ Reed, Matthew. "Nivel I BÁSICO" . TRS-80.org . Consultado el 27 de agosto de 2017 .
- ^ "Entrevista a Steven W. Leininger" . TRS-80.com . Consultado el 28 de agosto de 2017 .
- ^ Thomas, Wes (septiembre-octubre de 1977). "Computadora de casa de $ 600 de Radio Shack" . Computación creativa . 3 (5): 94–95.
- ^ Reed, Matthew. "¿Había un Modelo III de Nivel I?" . TRS-80.org . Consultado el 27 de agosto de 2017 .
- ^ Lien, David (1977). Manual del usuario para el nivel I (primera edición). Fort Worth, TX: Tandy Corporation. págs. 232–233 . Consultado el 2 de noviembre de 2017 .
- ^ Lien, David (1977). Manual del usuario para el nivel I (primera edición). Fort Worth, TX: Tandy Corporation. págs. 123-132 . Consultado el 2 de noviembre de 2017 .
- ^ Lien, David (1977). Manual del usuario para el nivel I (primera edición). Fort Worth, TX: Tandy Corporation. págs. 216–220 . Consultado el 2 de noviembre de 2017 .
- ^ Lien, David (1977). Manual del usuario para el nivel I (primera edición). Fort Worth, TX: Tandy Corporation. págs. 105-108, 137 . Consultado el 9 de agosto de 2020 .
enlaces externos
- Simulador BÁSICO TRS-80 Nivel I
- Conklin Systems - Él cambió nuestro mundo - homenaje a la personificación de la computadora del manual de usuario BÁSICO de Nivel I