stringtranslate.com

Sinclair BÁSICO

Sinclair BASIC es un dialecto del lenguaje de programación BASIC utilizado en los ordenadores domésticos de 8 bits de Sinclair Research , Timex Sinclair y Amstrad . El intérprete de Sinclair BASIC fue escrito por Nine Tiles Networks Ltd. [1]

Diseñado para funcionar con solo 1 kB de RAM , el sistema toma una serie de decisiones para reducir el uso de memoria. Esto llevó a una de las características más notables de Sinclair BASIC: las palabras clave se ingresaban con una sola pulsación de tecla; cada una de las posibles palabras clave se asignaba a una tecla del teclado y, al presionarla, el token se colocaba en la memoria mientras que la palabra clave completa se imprimía en la pantalla. Esto hizo que la entrada de código fuera más fácil y al mismo tiempo simplificó el analizador .

La versión original del ZX80 sólo admitía operaciones matemáticas con números enteros , lo que compensaba parcialmente algunas de las notas de diseño para ahorrar memoria que tenían un impacto negativo en el rendimiento. Cuando el sistema se adaptó al ZX81 en 1981, se agregó una implementación completa de punto flotante . Esta versión era muy lenta, una de las BASIC más lentas del mercado en ese momento, pero dadas las capacidades limitadas de la máquina, esto no era un problema grave.

El rendimiento se convirtió en un problema más serio con el lanzamiento del ZX Spectrum en 1983, que funcionaba demasiado lento para aprovechar al máximo las nuevas características de la máquina. Esto dio lugar a un BASIC completamente nuevo para el siguiente Sinclair QL , así como a una serie de BASIC de terceros para el Spectrum y sus diversos clones. La versión original continuó modificándose y adaptándose en la era posterior a Sinclair.

Historia

En abril de 1979, Clive Sinclair se reunió inicialmente con John Grant, el propietario de Nine Tiles, para discutir un BASIC para el nuevo concepto de computadora de Sinclair. [2] Sinclair se inspiró para hacer una nueva máquina después de ver a su hijo disfrutar de su TRS-80 , pero el precio de £500 de esa máquina parecía ser un límite serio a su popularidad. Quería un nuevo kit que ampliara su MK14 anterior y presentara un BASIC incorporado al precio objetivo de £79.95. Para cumplir con este precio, la máquina se comercializaría con solo 1 kB de RAM y 4 kB de ROM. Grant sugirió usar el lenguaje Forth en su lugar, pero el presupuesto lo impidió. Grant escribió el intérprete BASIC entre junio y julio de 1979, pero el código inicialmente llegó a 5 kB y pasó el mes siguiente reduciéndolo. Inicialmente fue una implementación incompleta del estándar BASIC Mínimo del Instituto Nacional Estadounidense de Estándares (ANSI) de 1978 con solo aritmética de números enteros, denominado 4K BASIC . [3]

Incluso antes de que se introdujera el ZX80 en febrero de 1980, la constante presión a la baja de los precios en la industria estaba permitiendo que el diseño, ya de por sí económico, se redujera aún más en complejidad y coste. En particular, muchos de los circuitos separados del ZX80 se volvieron a implementar en una única matriz lógica no comprometida de Ferranti , lo que permitió reducir el precio a solo 49,95 libras esterlinas al tiempo que aumentaba el tamaño de la ROM a 8 kB. Este trabajo fue asignado a Steve Vickers , quien se unió a Nine Tiles en enero de 1980. Mientras Grant trabajaba en el código que interactuaba con el hardware, Vickers utilizó el espacio más grande para introducir la aritmética de punto flotante y un conjunto de funciones trigonométricas , que se esperaban de cualquier BASIC de esa época, produciendo el BASIC de 8K . [4] La versión inicial no era compatible con la impresora ZX y tenía un error en su función de raíz cuadrada . Nine Tiles proporcionó una nueva versión para solucionar estos problemas, pero Sinclair tardó en incluir la nueva versión en las ROM. Finalmente, las nuevas ROM también se ofrecieron a los propietarios del ZX80 anterior. [5]

Cuando Sinclair perdió el concurso para construir la BBC Computer , siguió adelante con los planes de producir una máquina de bajo coste con capacidad para reproducir color que surgió como el ZX Spectrum de abril de 1982. El espacio de ROM se incrementaría una vez más, esta vez a 16 kB. En consonancia con su filosofía de hacer sistemas con el menor gasto posible, Sinclair quería los cambios mínimos absolutos en el BASIC de 8K existente. Aunque Nine Tiles consideró que se necesitaría algo mucho mejor para la nueva máquina, el calendario no lo permitió, y se produjo otra expansión del código original. Debido a que la RAM también se incrementó, a 48 kB, esta versión se conoció como 48K BASIC y, finalmente, 48 BASIC con la introducción del ZX Spectrum 128, momento en el que el Spectrum de 16 KB ya no se vendía y la mayoría de los existentes en uso se habían actualizado a 48 KB. [6] [7] La ​​nueva versión estuvo disponible a finales de 1981, pero era "deprimentemente lenta" y "lenta como un caracol". Además, como no hubo prototipos disponibles hasta finales de año, carecía de soporte para la nueva línea de periféricos que Sinclair estaba planeando. [8]

En febrero de 1982, Nine Tiles comenzó a tener desacuerdos con Sinclair sobre las regalías adeudadas por los diversos manuales que Nine Tiles había producido. Casi al mismo tiempo, Vickers y su homólogo de Sinclair, Richard Altwasser, dejaron sus respectivas compañías para comenzar el proyecto Jupiter Ace . [9] Cuando se lanzó el Spectrum, la ROM aún no estaba completa, y aunque Nine Tiles continuó trabajando en él hasta abril de 1982, en ese momento ya se habían vendido 75.000 Spectrums y el proyecto se canceló. La funcionalidad faltante se agregó más tarde mediante código adicional en la Interfaz ZX 1. Después de que Nine Tiles y Sinclair siguieran caminos separados, se crearon varias versiones nuevas de 48 BASIC.

En 1983, como parte de la introducción del Spectrum al mercado estadounidense como TS2068, Timex lo modificó como T/S 2000 BASIC . La nueva versión no podía ejecutar muchos programas Spectrum debido a que la ubicación de la memoria de las funciones de la máquina se movía. Una versión similar, pero algo más compatible, fue presentada como parte del Spectrum 128 en español de 1985, el 128 BASIC . [7]

Amstrad compró Sinclair Research en 1986. Como Sinclair nunca había tenido los derechos de autor del lenguaje, Amstrad tuvo que acordar una nueva licencia con Nine Tiles. En este período también aparecieron otras versiones a medida que se introdujeron varias extensiones y clones del Spectrum. Entre ellas se encontraban +3 BASIC , BASIC64 y Timex Extended Basic . [7] [6]

A partir de 2015, existen intérpretes para sistemas operativos modernos , [10] y sistemas más antiguos, [11] que permiten utilizar Sinclair Basic fácilmente.

Descripción

Edición de programas

Como la mayoría de los BASIC para ordenadores domésticos, el BASIC de Sinclair se basa en su editor de líneas . Cuando se arranca la máquina, ejecuta el BASIC y muestra una "K" de vídeo invertida en la parte inferior de la pantalla para indicar el punto de entrada. Cuando se introduce una línea y NEW LINEse pulsa la tecla, se ejecuta inmediatamente si no tiene un prefijo de número de línea , o bien borra la pantalla y ejecuta el equivalente a un LISTcomando, colocando un cursor ">" después del número de línea en la línea introducida más recientemente.

A diferencia de la mayoría de las máquinas de la época, el editor no permite la edición libre en ningún punto de la pantalla. En cambio, cuando el usuario presiona , la línea de código actual se copia de nuevo en la parte inferior de la pantalla. El usuario puede moverse horizontalmente a través de esta línea utilizando las teclas del cursor y confirma sus cambios presionando nuevamente. En cambio, en máquinas como los ordenadores Commodore 64 o Atari de 8 bits , las teclas arriba y abajo se pueden utilizar para moverse entre las líneas del programa y editarlas en el lugar.EDITNEW LINE

La característica más notable del editor es que las palabras clave se introducen con una sola pulsación de tecla. Por ejemplo, en el ZX81, la tecla del teclado haría que la palabra clave completa se introduzca en la línea que se está editando en ese momento. Una vez que se ha introducido una palabra clave, el cursor cambia a una "L" para indicar que lo que sigue se interpretará como texto normal. Por ejemplo, si se pulsa de nuevo en este punto se introduciría una sola letra "P".PPRINTP

Las teclas generalmente tenían asignadas dos palabras clave independientes: una encima y otra debajo. Al presionar la tecla en modo "K", se ingresaba la palabra clave que se encontraba sobre la tecla, como PRINTen el caso de . Si el sistema estaba en modo "L", se podía volver a "K" presionando la tecla Shift  (los sistemas inicialmente no admitían texto en minúsculas , por lo que no era necesario presionar la tecla Shift). Las palabras clave que se encontraban debajo de las teclas requerían una segunda pulsación de tecla, + , que ponía al editor en "modo de función", cambiando el cursor a una "F". Al ingresar un código común, a menudo se presionaban muchas teclas.P⇧ ShiftNEW LINE

El sistema tiene la ventaja de representar todas las palabras clave de varios caracteres como un solo carácter en la memoria, lo que supuso un ahorro significativo en las primeras máquinas que se entregaban con solo 1 kB de RAM. Esta representación de un solo carácter incluía elementos de varios caracteres como <>. Esto tiene las ventajas adicionales de simplificar el tiempo de ejecución, ya que puede determinar inmediatamente si un carácter en el código fuente es una palabra clave o texto, y también significa que las palabras clave nunca se ingresan directamente, lo que significa que uno puede, por ejemplo, tener una variable llamada "PRINT", ya que el sistema puede determinar que no es la misma que la palabra clave.

A medida que los sistemas evolucionaron y se agregaron nuevas palabras clave, el sistema de entrada se volvió cada vez más difícil de usar. 48 BASIC en Spectrum requería que cada tecla albergara hasta cuatro palabras clave. Introducir palabras clave era un proceso que consumía mucho tiempo, ya que había que buscar la tecla adecuada en el tipo de letra relativamente pequeño del teclado y, luego, introducir correctamente las múltiples pulsaciones de teclas necesarias para hacerlo correctamente. Por ejemplo, para introducir BEEPpalabras clave era necesario escribir + para acceder al modo extendido (los modelos posteriores incluyen una tecla separada), mantener pulsada la tecla y, luego, pulsar . Para mejorar la complejidad de la entrada en Spectrum, las palabras clave se codificaron por colores para indicar el modo requerido: [12]CAPS SHIFTSYMBOL SHIFTEXTENDED MODESYMBOL SHIFTZ

Este concepto ya había llegado a su fin y las máquinas posteriores que ejecutaban 128 BASIC (ZX Spectrum 128, +2, +3, +2A y +2B) presentaban un editor más tradicional en el que el usuario escribía la palabra clave como caracteres individuales, de manera similar a otras computadoras hogareñas de la época. Esto requería un nuevo tokenizador para convertir la línea a un formato interno similar.

El almacenamiento en memoria resultante del programa era similar al BASIC de Microsoft , en el sentido de que solo las palabras clave se presentan como tokens, mientras que las que no son palabras clave (como las constantes numéricas y de cadena y los nombres de variables) se dejan en su formato original. Sin embargo, ese formato escrito no era ASCII , sino un código de caracteres interno que contiene caracteres imprimibles y tokens de palabras clave. Aunque partes de la tabla, las letras mayúsculas de la A a la Z, por ejemplo, están en el mismo orden que en ASCII, sus caracteres corresponden a valores numéricos diferentes, es decir, el desplazamiento de sus puntos de código desde cero es diferente del desplazamiento de 65 de ASCII. Es posible que otros caracteres, como la puntuación, se hayan movido aún más. El conjunto de caracteres ZX Spectrum es el ejemplo más destacado de dicho código de caracteres. Las computadoras relacionadas que ejecutaban Sinclair BASIC usaban variantes similares, por ejemplo, los conjuntos de caracteres ZX80 o ZX81 . Todos estos conjuntos de caracteres diferentes pero relacionados incluían tokens Sinclair BASIC.

Tipos de datos

Una característica poco común de Sinclair BASIC es la forma en que almacena las variables en la memoria. Normalmente, los intérpretes utilizan una entrada de tamaño fijo para almacenar los datos, lo que facilita el escaneo de la tabla de variables. Debido a la memoria extremadamente limitada de la serie ZX, se debía evitar cualquier espacio desperdiciado, y esto llevó al uso de un formato de longitud variable. Los tipos de datos incluían números almacenados en valores de 5 bytes, cadenas con una longitud y luego los caracteres, y matrices de ambos tipos. Los datos se almacenaban en la propia tabla, lo que contrasta con la mayoría de los BASIC de la época, donde las cadenas y las entradas de matriz se almacenaban en un montón separado .

El primer byte de una entrada de variable siempre contenía el tipo en los primeros tres bits y el primer carácter del nombre en los siguientes cinco bits. Como era el caso en la mayoría de los dialectos de microcomputadoras, A, A$y A()eran A$()todas variables diferentes y podían almacenar valores diferentes. La mayoría de las variables solo podían tener un nombre de un solo carácter; la excepción son las variables numéricas (no matrices), donde un formato alternativo contenía el primer carácter del nombre en esos mismos cinco bits, pero luego era seguido por caracteres adicionales que terminaban en uno con su bit alto establecido. Los nombres de variable largos eran independientes de los espacios en blanco y no distinguían entre mayúsculas y minúsculas en versiones posteriores, por lo que es lo mismo que se refiere a la misma variable.LET Number Of Apples = 5LET numberofapples = 5

La desventaja de este enfoque es que escanear la tabla para buscar el valor de una referencia de variable es más complejo. Además de probar si el nombre coincide utilizando el subconjunto del primer byte, si la entrada no es la que se está buscando, el tipo tiene que leerse desde los tres bits superiores y luego la siguiente ubicación de una variable en el almacenamiento calculada utilizando el tipo. Por ejemplo, si el programa encuentra la variable "A" y la tabla comienza con la entrada para "B$", no puede hacer coincidir A con B, entonces lee el tipo para ver si es una cadena y luego tiene que leer el siguiente byte de longitud y saltar hacia adelante esa cantidad de bytes para encontrar la siguiente entrada en la tabla. Para hacer esto un poco más fácil, las matrices también almacenan una longitud de dos bytes, por lo que se puede omitir toda la estructura más fácilmente.

Una característica única era el "float corto", o tipo entero. Cualquier variable numérica podía almacenar cualquiera de los dos tipos, el almacenamiento en sí no cambiaba y utilizaba 5 bytes en ambos casos. Los enteros se indicaban fijando el byte del exponente en cero, mientras que los valores de punto flotante se almacenaban con un exponente de formato de exceso de 128. Esto significaba que no podía almacenar cero como un float y perdía una posible magnitud de exponente. Tampoco utilizaba menos memoria, ya que los valores seguían ocupando 5 bytes en la memoria. La ventaja de este formato es el rendimiento; la biblioteca matemática incluía pruebas para buscar el exponente cero y, si lo veía, no intentaba realizar varias operaciones en los 3 bytes restantes en determinadas condiciones.

Detalles de la palabra clave

El ZX81 8K BASIC utilizaba las formas cortas GOTO, GOSUB, CONTy RAND, mientras que el Spectrum 48 BASIC utilizaba las formas más largas GO TO, GO SUB, CONTINUEy RANDOMIZE. El ZX80 4K BASIC también utilizaba estas formas más largas, pero se diferenciaba por el uso de la ortografía RANDOMISE. El ZX81 8K BASIC era la única versión que utilizaba FAST, SCROLL, SLOWy UNPLOT. El ZX80 4K BASIC tenía la función exclusiva TL$(); era equivalente al operador de cadena (2 TO )en versiones posteriores.

En el conjunto de caracteres ZX80 , ZX81 y ZX Spectrum se asignan puntos de código únicos para cada palabra clave u operador de múltiples caracteres, es decir <=, , >=, <>, ""(tokenizado solo en el ZX81), **(reemplazado por en el Spectrum). Estos se expanden haciendo referencia a una tabla de tokens en ROM. Por lo tanto, una palabra clave usa solo un byte de memoria, un ahorro significativo sobre el almacenamiento tradicional letra por letra. Esto también significaba que el intérprete de BASIC podía determinar rápidamente cualquier comando o función evaluando un byte, y que las palabras clave no necesitaban ser palabras reservadas como en otros dialectos BASIC u otros lenguajes de programación, por ejemplo, se permite definir una variable nombrada PRINTy mostrar su valor con PRINT PRINT. Esto también está relacionado con el requisito de sintaxis de que cada línea comience con una palabra clave de comando, y presionar la única pulsación de tecla para ese comando al comienzo de una línea cambia el editor del modo de comando al modo de letra. Por lo tanto, la asignación de variables requiere LET(es decir, no solo ). Esta práctica también es diferente de otros dialectos BASIC. Además, esto significaba que, a diferencia de otros dialectos BASIC, el intérprete no necesitaba paréntesis para identificar funciones; era suficiente, no era necesario (aunque esto último estaba permitido). La ROM BASIC de 4K del ZX80 tenía una breve lista de excepciones a esto: las funciones , , , , , , y no tenían tokens de un byte, sino que se escribían letra por letra y requerían los paréntesis. Se enumeraban como FUNCIONES INTEGRALES en una etiqueta encima y a la derecha del teclado. [13]LET a=1a=1SIN xSIN(x)CHR$()STR$()TL$()PEEK()CODE()RND()USR()ABS()

128 BASIC , presente en los ZX Spectrum 128, +2, +3, +2A y +2B, almacenaba palabras clave internamente en puntos de código de un byte, pero utilizaba un sistema de entrada BASIC convencional letra por letra. También introdujo dos nuevos comandos:

El ZX Spectrum 128 original en español incluía cuatro comandos de editor BASIC adicionales en español, [14] [15] uno de los cuales no estaba documentado:

A diferencia de las funciones LEFT$(), MID$()y RIGHT$()utilizadas en los omnipresentes dialectos Microsoft BASIC para ordenadores domésticos, en Sinclair BASIC se accede a partes de cadenas mediante un rango numérico. Por ejemplo, a$(5 TO 10)proporciona una subcadena que comienza con el quinto y termina con el décimo carácter de la variable a$. Por tanto, es posible sustituir los LEFT$()comandos RIGHT$()y simplemente omitiendo la posición izquierda o derecha de la matriz respectivamente; por ejemplo , a$( TO 5)es equivalente a LEFT$(a$,5). Además, a$(5)solo es suficiente para sustituir MID$(a$,5,1).

Sintaxis

Palabras clave

En el ZX Spectrum 16K/48K ( 48 BASIC) , hay 88 palabras clave en Sinclair BASIC, que denotan comandos (de los cuales hay 50), funciones y operadores lógicos (31) y otras palabras clave (16, incluidas 9 que también son comandos o funciones):

Versiones oficiales

4K BÁSICO

4K BASIC para ZX80 [76] (llamado así por residir en una memoria de solo lectura (ROM) de 4  KiB ), fue desarrollado por John Grant de Nine Tiles para ZX80. Tiene aritmética de solo números enteros.

8K BÁSICO

8K BASIC es el ZX81 BASIC (también disponible como una actualización para el ZX80 [5] ), actualizado con aritmética de punto flotante por Steve Vickers , llamado así por residir en una ROM de 8 KiB.

48 BÁSICO

48 BASIC es el BASIC del ZX Spectrum original de 16/48 KB RAM (y clones), con color y más periféricos añadidos por Steve Vickers y John Grant. Reside en una ROM de 16 KB y comenzó a llamarse 48 BASIC con la introducción del ZX Spectrum 128, momento en el que el Spectrum de 16 KB ya no se vendía y la mayoría de los existentes en uso se habían actualizado a 48 KB. [6]

128 BÁSICO

128 BASIC es el BASIC para el ZX Spectrum 128. [7] Ofrece comandos adicionales y utiliza entrada letra por letra.

+3 BÁSICO

+3 BASIC es el BASIC con soporte de disco para ZX Spectrum +3 y +2A. [6]

T/S 2000 BÁSICO

T/S 2000 BASIC se utiliza en el Timex Sinclair 2068 (T/S 2068) compatible con Spectrum y agrega las siguientes seis palabras clave nuevas:

BASIC64

BASIC64 de Timex de Portugal , es una extensión de software [77] que permite una mejor programación en Basic con los modos gráficos de 512×192 y de doble área de visualización disponibles únicamente en las computadoras Timex Sinclair. Esta extensión agrega comandos y realiza una reasignación completa de la memoria para evitar que el sistema sobrescriba el área de memoria de pantalla extendida. Existen dos versiones debido a los diferentes mapas de memoria: una versión para TC 2048 y una versión para T/S 2068 y TC 2068 .

Timex Básico Extendido

Timex Extended Basic de Timex de Portugal se utiliza en el Timex Computer 3256 , añadiendo comandos TEC - Timex Extended Commands que admiten el chip de sonido AY-3-8912, la red RS-232 y el modo gráfico de alta resolución de 512x192 píxeles. [78] [79]

Otras versiones, extensiones, derivados y sucesores

Intérpretes para la familia ZX Spectrum

Existen varios intérpretes de ZX Spectrum. [80]

Compiladores para la familia ZX Spectrum

Existen varios compiladores de ZX Spectrum . [80]

Derivados y sucesores para otros ordenadores

Véase también

Notas

  1. ^ Los parámetros opcionales están entre [corchetes]
  2. ^ Esto supone que la computadora está en modo  K  (palabra clave), que normalmente está al comienzo de una línea cuando se ingresa a BASIC. En Spectrum 16K y 48K, se ingresa al modo extendido presionando y simultáneamente en lugar de la tecla que está presente en Spectrum+ y modelos posteriores.CAPS SHIFTSYMBOL SHIFTEXTENDED MODE
  3. ^ abc “Falso” en BASIC Sinclair equivale a 0 (cero), todo lo demás equivale a “verdadero”. Las funciones que devuelven valores verdaderos o falsos en realidad devuelven 0 para falso y 1 para verdadero, mientras que ANDnormalmente devuelve la primera de las condiciones proporcionadas para verdadero, o 1 si no se proporcionaron valores numéricos. Por ejemplo, 6 AND 7devuelve 6, mientras que NOT 6=7devuelve 1.
  4. ^ abc Los números disponibles para los colores son:

    En todos los comandos relacionados con el color, el número 8 se puede usar para indicar “transparente” INKy PAPERtambién se puede establecer en 9 para “contraste”, es decir, para colocar un color oscuro sobre un fondo claro o viceversa automáticamente.

  5. ^ abcdef INK, PAPER, FLASH, BRIGHT, OVERy INVERSElos atributos set para mostrar texto y gráficos en la pantalla. Se pueden usar como comandos, para aplicarlos a toda la salida posterior hasta que se vuelvan a configurar, o dentro de una PRINTdeclaración, para aplicarlos solo desde ese punto hasta el final de la declaración.
  6. ^ abcdef CAT, ERASE, FORMATy MOVEfueron diseñados originalmente para ser utilizados con periféricos, pero en el lanzamiento de ZX Spectrum, no se habían implementado completamente, de modo que su uso generaba un mensaje de error (Invalid Stream). Más tarde, con la ayuda de la ROM sombra ZX Interface 1, se utilizaron para el ZX Microdrive . (La ROM sombra se paginaba cuando el intérprete BASIC detectaba un error de sintaxis, por lo que la mayoría de los comandos de ZX Microdrive utilizan un "*").
  7. ^ ab A diferencia de muchos otros dialectos BASIC, Sinclair Basic no incluía el ELSEoperador en la cláusula IFTHEN[– ELSE]. Una solución alternativa sería utilizar una construcción IFTHENGO TOen su lugar, omitiendo las líneas que habrían estado en una ELSEcláusula con el operadorGO TO
  8. ^ La memoria de visualización del Spectrum comienza en la dirección 16384 y tiene una longitud de 6912 bytes.
  9. ^ Una cadena dentro de una cadena debe tener sus comillas duplicadas en Sinclair BASIC

Referencias

  1. ^ Garfield, Simon (28 de febrero de 2010). "Sir Clive Sinclair: "No uso ningún ordenador"". The Guardian . Consultado el 23 de mayo de 2011. Está deseoso de dar crédito a [...], en particular a Nine Tiles, la empresa que creó el sistema operativo Basic.
  2. ^ Adamson y Kennedy, pág. 63.
  3. ^ Adamson y Kennedy 1986, pág. 64.
  4. ^ Adamson y Kennedy 1986, pág. 70.
  5. ^ ab "ZX80 - Actualización de ROM BÁSICA 8K". www.fruitcake.plus.com .
  6. ^ abcd "World of Spectrum - Documentación - ZX Spectrum +3 - Capítulo 7". worldofspectrum.org .
  7. ^ abcd "World of Spectrum - Documentación - Manual ZX Spectrum 128 Página 6". worldofspectrum.org .
  8. ^ Smith, Tony (23 de abril de 2012). "Feliz 30.º cumpleaños, Sinclair ZX Spectrum". The Register .
  9. ^ Adamson y Kennedy 1986, pág. 88.
  10. ^ Dunn, Paul (7 de diciembre de 2022), SpecBAS , consultado el 12 de diciembre de 2022
  11. ^ "CSDb". Base de datos de escenas de Commodore 64. Consultado el 12 de diciembre de 2022 .
  12. ^ Vickers 1983, págs. 7–8.
  13. ^ "Imagen del ZX80".
  14. ^ "Desmontaje de ROM Spectrum 128 - Spectrum 128 en español". www.fruitcake.plus.com .
  15. ^ Sinclair (1985). ZX Spectrum 128 Introducción y Guía de Funcionamiento. Sinclair Research Ltd e Investronica, SA p. 9.
  16. ^ abcd Vickers 1983, pág. 59.
  17. ^ desde Vickers 1983, pág. 70.
  18. ^ abc Vickers 1983, pág. 85.
  19. ^ Vickers 1983, págs. 69–70.
  20. ^ abcd Vickers 1983, pág. 101.
  21. ^ Vickers 1983, pág. 116.
  22. ^ Vickers 1983, pág. 135.
  23. ^ desde Vickers 1983, pág. 93.
  24. ^ Vickers 1983, pág. 113.
  25. ^ Vickers 1983, págs. 110-111.
  26. ^ Cambridge Communication 1983, pág. 15.
  27. ^ desde Vickers 1983, pág. 91.
  28. ^ desde Vickers 1983, pág. 123.
  29. ^ abc Vickers 1983, pág. 103.
  30. ^ "World of Spectrum - Documentación - Manual de ZX Spectrum - Capítulo 24". worldofspectrum.org .
  31. ^ Vickers 1983, pág. 168.
  32. ^ Vickers 1983, pág. 19.
  33. ^ abc Vickers 1983, pág. 151.
  34. ^ desde Vickers 1983, pág. 68.
  35. ^ desde Vickers 1983, pág. 41.
  36. ^ abc Vickers 1983, pág. 142.
  37. ^ abc Vickers 1983, pág. 60.
  38. ^ Vickers 1983, págs. 79–81.
  39. ^ Vickers 1983, págs. 11–123.
  40. ^ Cambridge Communication 1983, pág. 18.
  41. ^ Vickers 1983, pág. 66.
  42. ^ Cambridge Communication 1983, pág. 19.
  43. ^ Vickers 1983, pág. 31.
  44. ^ desde Vickers 1983, pág. 32.
  45. ^ desde Vickers 1983, pág. 37.
  46. ^ desde Vickers 1983, pág. 25.
  47. ^ desde Vickers 1983, pág. 159.
  48. ^ desde Vickers 1983, pág. 110.
  49. ^ Vickers 1983, pág. 131.
  50. ^ abcd Vickers 1983, pág. 16.
  51. ^ desde Vickers 1983, pág. 112.
  52. ^ Vickers 1983, pág. 57.
  53. ^ desde Vickers 1983, pág. 13.
  54. ^ Vickers 1983, pág. 144.
  55. ^ Vickers 1983, pág. 15.
  56. ^ desde Vickers 1983, pág. 67.
  57. ^ Vickers 1983, págs. 142-143.
  58. ^ Vickers 1983, pág. 147.
  59. ^ Cambridge Communication 1983, pág. 39.
  60. ^ Vickers 1983, págs. 31–32.
  61. ^ Cambridge Communication 1983, pág. 22.
  62. ^ Vickers 1983, pág. 129.
  63. ^ Vickers 1983, pág. 130.
  64. ^ Vickers 1983, pág. 121.
  65. ^ Vickers 1983, pág. 163.
  66. ^ Vickers 1983, pág. 74.
  67. ^ Vickers 1983, pág. 42.
  68. ^ Vickers 1983, pág. 73.
  69. ^ desde Vickers 1983, pág. 14.
  70. ^ Vickers 1983, pág. 143.
  71. ^ Vickers 1983, pág. 69.
  72. ^ Vickers 1983, pág. 32, 51.
  73. ^ Vickers 1983, pág. 180.
  74. ^ Vickers 1983.
  75. ^ Vickers 1983, pág. 141.
  76. ^ "Manual de usuario de Sinclair ZX80 4K básico para ZX80".
  77. ^ "Información técnica de Timex - Basic 64 para TC2048". timex.comboios.info .
  78. «Microsete N.º46, Mayo 1987» (PDF) . loadzx.com .
  79. ^ "Ordenador Timex 3256, Timex Portugal". k1.spdns.de .
  80. ^ abcdefgh "World of Spectrum - Sinclair BASIC - Home of the Sinclair Extended Basic Project". www.worldofspectrum.org . Archivado desde el original el 13 de octubre de 2002.
  81. ^ "Beta Basic en Spectrum Computing: juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  82. ^ "YS MegaBasic en Spectrum Computing: juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  83. ^ "Zebra OS64 en Spectrum Computing: juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  84. ^ "Historia de Sinclair BASIC - Wiki de Sinclair". sinclair.wiki.zxnet.co.uk .
  85. ^ "El ensamblaje de la ROM Spectrum incompleto". Archivado desde el original el 1 de septiembre de 2015.
  86. ^ "ULAplus". sites.google.com . Archivado desde el original el 25 de mayo de 2013 . Consultado el 21 de marzo de 2016 .
  87. ^ "ZX Interface 2 - SE BASIC (cartucho ROM de terceros)". www.fruitcake.plus.com . Archivado desde el original el 25 de marzo de 2015 . Consultado el 23 de marzo de 2016 .
  88. ^ "OpenSE BASIC". SourceForge . 16 de abril de 2013.
  89. ^ "OpenSE BASIC en Spectrum Computing: juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  90. ^ "Mundo del espectro - Compilador COLT de HiSoft". Mundo del espectro .
  91. ^ "Compilador HiSoft COLT en Spectrum Computing: juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  92. ^ "Mundo del espectro - HiSoft BASIC". Mundo del espectro .
  93. ^ "HiSoft BASIC en Spectrum Computing: juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  94. ^ "World of Spectrum - Compilador láser". World of Spectrum .
  95. ^ "Laser Compiler en Spectrum Computing - Juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  96. ^ "Mundo del espectro - Compilador Softek 'IS' BASIC". Mundo del espectro .
  97. ^ "Compilador de enteros en Spectrum Computing - Juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  98. ^ "World of Spectrum - Compilador de números enteros". World of Spectrum .
  99. ^ "World of Spectrum - Compilador completo 'FP' de Softek". World of Spectrum .
  100. ^ "Softek 'FP' Full Compiler en Spectrum Computing - Juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  101. ^ "World of Spectrum - Compilador ZIP". World of Spectrum .
  102. ^ "Compilador ZIP en Spectrum Computing - Juegos, software y hardware de Sinclair ZX Spectrum". Spectrum Computing . Consultado el 13 de diciembre de 2022 .
  103. ^ Berry, Stephen (1984). «QL Palabras clave». Archivado desde el original el 22 de febrero de 2017. Consultado el 27 de junio de 2023 .{{cite web}}: CS1 maint: unfit URL (link)
  104. ^ "Sam Coupe Scrapbook: Sam BASIC". www.mono.org . Consultado el 13 de diciembre de 2022 .
  105. ^ "Proyecto Sparky eZX BASIC". rk-internet.com .
  106. ^ "Philip Kendall - Básico". www.shadowmagic.org.uk .
  107. ^ "Philip Kendall - CheckBasic". www.shadowmagic.org.uk .
  108. ^ "Binsic no es el código de instrucciones de Sinclair". 25 de junio de 2012.
  109. ^ "ZX Spin y BASin - ULAplus". sites.google.com .
  110. ^ "ZXDunny/SpecBAS". 5 June 2021 – via GitHub.
  111. ^ "ZX-Basic: Backwardly compatible, but enhanced compiler of Sinclair BASIC programs".
  112. ^ "ZX-Basicus: analyzer/synthesizer/optimizer/interpreter of Sinclair BASIC programs for the ZX Spectrum 48K". jafma.net.

Bibliography

External links