stringtranslate.com

Locomotora BÁSICA

Locomotive Basic es un dialecto propietario del lenguaje de programación BASIC escrito por Locomotive Software en Amstrad CPC (donde estaba integrado en ROM ) y el posterior Locomotive BASIC-2 como una aplicación GEM en Amstrad PC1512 y 1640. Fue el Principal descendiente de Mallard BASIC , [1] el intérprete para CP/M suministrado con el Amstrad PCW .

Hay dos versiones de Locomotive BASIC: 1.0 que solo viene con el modelo CPC 464 y 1.1 que viene con todas las demás versiones. BASIC 1.1 también se envió con las máquinas de la serie Amstrad CPC Plus , como parte del cartucho de juego incluido.

Desarrollo

El desarrollo se basó en el trabajo existente realizado recientemente al escribir el complemento Mallard BASIC para Acorn Computers Z80 para BBC Micro. Se informa que tomó alrededor de 12 semanas mejorar el código existente y que estuvo "muy influenciado" por BBC BASIC , aunque agregó funciones adicionales para hacer cosas que habrían requerido lenguaje ensamblador en la BBC. [1]

Características

Un programa en Locomotive BASIC que dibuja un mapa del mundo en Modo 1 (320x200px y 4 colores)
Impresión de barras de color en pantalla en Modo 0 (16 colores) con BASIC
Paleta de colores Amstrad CPC con números de tinta

Era una implementación BÁSICA bastante simple pero poderosa para los estándares de la época, con comandos dedicados para manejar gráficos (como DIBUJAR, TRAZAR, TINTA y PAPEL en todas las versiones; además de LLENAR en v1.1), permitiendo incluso la creación de múltiples pantallas, ventanas y similares, aunque el sistema de color y el manejo de la paleta eran incómodos. Se imprimió una tabla con los códigos numéricos para los 27 colores del sistema sobre la carcasa de la unidad de disco incorporada de 3" en las máquinas 664 y posteriores. Sin embargo, por simple que fuera, se destacó entre otros BÁSICOS de la época al ofrecer un temporizador. -Mecanismo de interrupción de software basado en los comandos EVERY o AFTER; esto ofrecía una llamada repetida o única temporizada, respectivamente, al número de línea BÁSICA de la elección del usuario.

Además, en comparación con otros ordenadores domésticos de la época, el Amstrad vía Locomotive BASIC otorgaba un nivel relativamente alto de control sobre el chip de sonido CPC, un AY-3-8912 con 3 canales melódicos y 1 canal de ruido. El mismo chip también se utilizó en los últimos modelos de ZX Spectrum , así como en los ordenadores Atari ST y MSX , pero ninguno de ellos tenía un comando de SONIDO integrado tan completo. Muchas cosas, desde seleccionar un canal en particular o una combinación de canales, configurar envolventes, volumen, tono, ruido, etc., se pueden hacer con un solo comando SOUND, con hasta 7 parámetros. Es cierto que con BASIC no se pueden realizar técnicas especialmente complejas y/o de bajo nivel debido a que requieren un acceso más preciso o directo al hardware, por ejemplo, música especialmente compleja de trackers (incluidos acordes simulados usando arpegios, etc.), la reproducción de sonidos muestreados digitalmente como en el juego RoboCop , por ejemplo, y así sucesivamente.

La gestión de discos, cintas y archivos la gestionaba el propio BASIC y, por lo general, eran lo suficientemente buenos para una gestión sencilla de archivos, con comandos como GET, PUT, ERASE, SAVE, MERGE, RUN, CAT, LOAD, etc. De hecho, durante esos años , el BASIC suministrado de serie en la mayoría de los ordenadores domésticos económicos también actuaba como un sistema operativo más o menos sencillo .

Cargando una imagen desde un disquete en Locomotive BASIC

También estaban disponibles algunos comandos especiales para la asignación y el manejo de la memoria, como MEMORY y un comando LOAD paramétrico, que permite, por ejemplo, cargar un archivo que contiene datos de imagen "sin procesar" en la memoria de video, lo que hace que se muestre, con un par de BÁSICOS. instrucciones. Agregar las direcciones de memoria correctas como parámetro a los comandos CARGAR o GUARDAR permitiría cargar fácilmente imágenes de pantalla de 16 KB sin comprimir. LLAMAR a otra dirección provocó un reinicio forzado del sistema (llame a 0), el famoso "Presione cualquier tecla" (llame a &bb18) o para eliminar el parpadeo en la animación al permitirle sincronizar con el escaneo ráster del monitor a través de "sync frame-flyback" (llame a &bd19 ); a esto se le dio su propio comando dedicado en Basic 1.1 - FRAME. Con PEEK y POKE , CALL proporcionó una interfaz para la programación en lenguaje ensamblador desde BASIC.

Rivales contemporáneos

A diferencia del Commodore 64 integrado en BASIC ( Commodore BASIC ), que no tenía comandos dedicados para gráficos o sonido, Locomotive BASIC permitía hacer prácticamente cualquier cosa que estuviera dentro de las capacidades estándar de la máquina. Esto no carecía de importancia, ya que algunas otras máquinas de la época requerían que los programadores usaran ensamblador para poder acceder a todas las capacidades de sonido y gráficos de su sistema. MSX, Sinclair Spectrum y algunos otros ofrecían un conjunto de comandos similar, más o menos completo, para sus capacidades de sonido y gráficos. Las únicas cosas que claramente iban más allá de las capacidades BÁSICAS fueron los modos de sobreexploración utilizados en juegos y demostraciones, modos de gráficos de 27 colores, reproducción de sonido digital y desplazamiento suave.

A diferencia de Sinclair BASIC o Commodore 64 BASIC, que tenían varios atajos de comando de teclado o teclas especializadas para elegir símbolos o colores, las palabras clave de Locomotive BASIC se escribían en su totalidad y el intérprete las analizaba , reconocía y tokenizaba . Sin embargo, había abreviaturas como "?" para "IMPRIMIR" y algunos atajos. Los programas se pueden guardar en un casete compacto o en un disquete y recuperarse como archivos binarios o ASCII .

Referencias

  1. ^ Smith, Tony (12 de febrero de 2014). "NO estás despedido: la historia del increíble CPC 464 de Amstrad". El registro . Consultado el 17 de febrero de 2014 .

enlaces externos