IBM System / 34 BASIC fue un intérprete para la computadora de rango medio IBM System / 34 .
System / 34 BASIC se ofreció por primera vez en 1978 y, como tal, contenía muchas de las características que un programa BASIC habría encontrado en el período de tiempo del TRS-80 , o muchas otras ofertas de los años setenta y principios de los ochenta. Como tal, S / 34 BASIC usa convenciones que ya no son estándar en los BASIC modernos, como números de línea, y no admite características más nuevas como WHILE / WEND, DO / ENDDO, WITH / END WITH, procedimientos, propiedades, etc. adelante.
Convenciones BÁSICAS
Los intérpretes BÁSICOS escritos en los años setenta tendían a "hacer cosas raras de formas raras". Por ejemplo, en Apple II , un programador podría incrustar un comando de DOS en un programa a través de PRINT, cuando esté precedido por la cadena de caracteres CHR $ (4). PEEK y POKE podrían usarse en varios BÁSICOS para examinar el contenido de la memoria o cambiarlo, o incluso para crear un programa de lenguaje de máquina ad hoc y luego ejecutarlo. System / 34 BASIC tiende a mantenerse alejado de estas extrañas convenciones; sin embargo, el programador podría solicitar la alarma (un zumbido emitido por el terminal) a través de PRINT CHR $ (7).
Se espera que las declaraciones BÁSICAS se ingresen en letras mayúsculas, y aunque el operador puede presionar Cmd2 para usar minúsculas, el intérprete BÁSICO convertirá las palabras clave sin comentarios en mayúsculas.
Para que BASIC pudiera ser útil en un entorno informático de rango medio, IBM agregó extensiones al lenguaje que eran específicas de las convenciones de hardware y software de la familia IBM System / 34, como el archivo WORKSTN, soporte para disco indexado, directo y secuencial. archivos, la capacidad de abrir y cerrar varios archivos de impresora y CARGAR / GUARDAR desde bibliotecas en el disco fijo.
Declaraciones BÁSICAS
Se utilizaron estas instrucciones, funciones y comandos básicos de BASIC:
DATOS OSCURO FINAL PARA ... SIGUIENTE GOSUB ... VOLVER IR SI ... ENTONCES APORTE DEJAR EN ... GOTO IMPRESIÓN IMPRIMIR UTILIZANDO LEER movimiento rápido del ojo DETENER ASC () RND () PECADO() COS () BRONCEARSE() PESTAÑA() SQRT () INICIAR SESIÓN() LISTA
Las declaraciones más avanzadas proporcionadas por IBM incluyen:
ON ERROR Permite la captura de errores OPCIÓN Permite propiedades de todo el programa, como indexación de matrices Base 1 o Base 0, precisión larga o corta, etc. ABRIR Permite abrir un archivo o dispositivo (estación de trabajo formateada, impresora) CERRAR Cierra un archivo o dispositivo ESCRIBA Salidas a un archivo o dispositivo REWRITE Cambia un formato de registro o visualización APPEND Agrega a un archivo DELETE Elimina un registro de un archivo. IMAGEN Define el formato de un registro utilizando una sintaxis similar a COBOL FORM Define el formato de un registro utilizando una sintaxis similar a la de un RPG DEF FN..FNEND Define una función CADENA Carga y pasa el control a otro programa BÁSICO PRINT # 255: imprime en el archivo de impresora (predeterminado) IMPRIMIR NUEVA PÁGINA Limpia la pantalla PRINT # 255: NEWPAGE Avanza a la página siguiente en el archivo de la impresora AIDX () Se refiere al índice ascendente de una matriz, que es una matriz de punteros ordenados relativos a los elementos de la matriz. DIDX () Igual que AIDX pero usa un índice descendente SRCH () Se utiliza para encontrar un valor en una matriz recuperando el puntero de coincidencia SRCH $ () Se usa para encontrar un valor de cadena en una matriz de cadenas recuperando el puntero de coincidencia
RENUMBER Un comando utilizado para renumerar las líneas dentro de un programa. LOAD Un comando que se usa para cargar un programa desde una biblioteca en el disco fijo. GUARDAR Un comando que se usa para guardar un programa en una biblioteca en el disco fijo. APAGADO Un comando utilizado para salir de la sesión BÁSICA interactiva LISTP Un comando utilizado para listar el programa actual en la impresora.
ON ERROR es una declaración de captura de errores que permite a BASIC suspender un error que de otra manera podría detener la ejecución de un programa BASIC y realizar una rutina de manejo de errores en su lugar. Las variantes incluyen el sufijo OFLOW, ZDIV y otros tipos de error en una declaración e inmediatamente capturan estos errores.
OPCIÓN permite que el programa BÁSICO cumpla con criterios especiales. A veces, BASIC no tenía mucho espacio de usuario (ya que todos los programas S / 34 están limitados a 64K) y el área llamada "espacio de código" que contiene el programa de usuario actual debe residir dentro del espacio de usuario. Por lo tanto, los usuarios pueden elegir OPTION LPREC que hace que BASIC calcule con números de doble precisión (largos), u OPTION SPREC que proporciona más espacio y números de precisión simple (cortos). Algunos programadores prefieren las matemáticas matriciales donde el índice con el número más bajo es 0, otros prefieren 1. OPCIÓN BASE 0 y OPCIÓN BASE 1 logran esto. Hay otros usos para OPCIÓN.
Los programas RPG II en el S / 34 no podían llamarse entre sí, pero los programas BASIC sí, usando la instrucción CHAIN. CHAIN pasa el control del módulo BASIC actual al módulo nombrado, llevando una lista de argumentos que pueden convertirse en variables en el nuevo módulo cuando se carga.
DEF FN permite la definición de una función de usuario en BASIC que puede ser nombrada y referida en el programa. FNEND se coloca después de la última instrucción en una función.
Hay cuatro formas de formatear la entrada y salida BASIC. Primero, sin formato; simplemente IMPRIMA e INGRESE al contenido de su corazón. En segundo lugar, con PRINT USING, que en S / 34 BASIC puede incorporar una constante, una variable de cadena, un número de línea o una etiqueta. En tercer lugar, con PRINT FIELDS y INPUT FIELDS, que colocan campos de visualización de tipo 5250 en el CRT en modo inmediato. Cuarto, mediante el uso de un archivo de estación de trabajo (abierto con OPEN #x: "WS, NAME =" y así sucesivamente) y realizando varias combinaciones de WRITE y READ en ese archivo de estación de trabajo, usando formatos de pantalla generados por SDA similares a los de otros S / 34 aplicaciones. WRITE y READ, así como PRINT USING e INPUT USING, pueden dirigir BÁSICO a un número de línea o una etiqueta que contenga la palabra clave "IMAGEN:".
Una declaración IMAGE contiene decimales, comas, signos de dólar, guiones y signos de libra ("#") en representación de los valores numéricos o alfanuméricos sustituidos.
3540 IMAGEN: ### - ## - #### ########################### $ #, ###, ###. ##
Una instrucción FORM denota el tamaño de las variables que se van a leer o escribir. Para guardar un valor numérico de .00 a 99,999.99, use esta notación:
2959 FORMULARIO N 7.2
Una etiqueta es una etiqueta en una línea de la siguiente manera:
260 BEGIN_CALCULATIONS :: 270 FOR X = 1 TO 12 280 Y = Y + X * 1.08 290 NEXT X
Si lo desea, se puede utilizar la instrucción GOSUB BEGIN_CALCULATIONS en lugar de GOSUB 260.
OPEN, CLOSE, WRITE, REWRITE, DELETE y APPEND ya son familiares para los programadores de COBOL y describen las acciones tomadas para acceder a archivos de disco S / 34 usando BASIC. No es posible acceder a todos los tipos de archivos S / 34 porque estos incluyen archivos de sistema, bibliotecas y carpetas, pero todos los archivos S / 34 creados por el usuario con una longitud de registro fija (solo los programas FORTRAN pueden usar longitudes de registro variables) Será suficiente. Los archivos de disco se pueden abrir secuencialmente, por índice o relativamente (por número de registro). Si un archivo puede eliminarse, los registros se pueden eliminar mediante la instrucción DELETE. Para agregar un registro, use WRITE (con APPEND especificado en la instrucción OPEN) y para actualizar use REWRITE.
Impresión
En S / 34 BASIC, para imprimir en la impresora, se debe utilizar un archivo de dispositivo. Siempre existe un archivo de impresora predeterminado llamado # 255 cuando se inicia BASIC. Tiene un nombre de impresora BASIC255 y abre el dispositivo que es la impresora predeterminada para el terminal que inicia una sesión BASIC. Si lo desea, es posible crear un archivo de impresora diferente numerado entre 1 y 254. Utilice "OPEN #x: PRINTER, NAME =" y así sucesivamente para hacer esto, especificando columnas o ID de dispositivo u otros parámetros según sea necesario. La palabra clave PAGEOFLOW se puede utilizar para capturar la condición de desbordamiento de página para la impresora.
Formación
Algunas versiones de BASIC permiten al programador ordenar una matriz. S / 34 BASIC no proporciona una función para esto, pero proporciona un remedio interesante. El programador puede definir una matriz con el mismo número de elementos que la matriz de destino y usar AIDX o DIDX para crear un índice ascendente o descendente. Cada elemento de la nueva matriz contendrá un número que representa la posición ordenada ordinal de la matriz de destino, por lo que si AMÉRICA es el sexto elemento de la matriz A $ pero primero en orden alfabético, entonces establecer A () = AIDX (A $) causaría A (1) para contener el valor 6.
Escribir un programa BASIC es mucho más divertido que reescribir el mismo programa cada vez que lo usa, por lo tanto, los autores de BASIC permiten a los programadores GUARDAR su código de programa en un miembro de la biblioteca y REEMPLAZARlo cuando se realizan cambios.
SAVE PROG1, PGMRLIB hace que el módulo actual se guarde como un miembro de subrutina (tipo R) llamado PROG1 en una biblioteca de usuario llamada PGMRLIB.
Tenga en cuenta que los archivos System / 34 no forman parte de las bibliotecas. Si un archivo de disco se llama FNF001, entonces una instrucción OPEN como esta puede funcionar:
ABIERTO # 3: "NOMBRE = FNF001, SECUENCIAL", ENTRADA
No importa qué biblioteca se utilice para acceder al archivo FNF001.
RENUMBER es el comando S / 34 BASIC utilizado para renumerar declaraciones. Todas las referencias internas a los números de declaraciones se recalculan inmediatamente.
System / 34 BASIC tiene un comando muy peligroso llamado FREE. Escribir FREE seguido de un nombre de archivo elimina ese archivo sin dejar rastro. Funcionará para todos los archivos de usuario, a menos que exista un conflicto de seguridad o una condición de uso que lo bloquee.
System / 34 BASIC tiene otro comando peligroso llamado LOCK. El comando LOCK hará que el código fuente del programa actual sea inaccesible y no sea reversible. Guarde siempre una copia desbloqueada antes de usar LOCK.
Incompatibilidad entre S / 34 y S / 36
En 1983, IBM anunció la familia de computadoras de rango medio System / 36 .
System / 34 BASIC y System / 36 BASIC son muy similares; sin embargo, la incompatibilidad del código de máquina hace que sea imposible portar un programa BASIC miembro de subrutina entre estos sistemas.