Nivel I BÁSICO - Level I BASIC

Nivel I BÁSICO
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

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.

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 . Al no poder llevarse ese código fuente, inicialmente contrató a un consultor para que escribiera un intérprete . Cuando ese contratista no pudo entregar, 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 gratis 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ó 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.

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 4 KB de ROM .

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".

Mayor desarrollo

Cuando se introdujo el TRS-80, se anunciaron tres versiones de BASIC:

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.

Características del idioma

Nivel I BÁSICO admitió las siguientes palabras clave:

  • 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 no ELSE ), 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 basó, 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). 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 .

El soporte de gráficos fue el 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.

Referencias

enlaces externos