fbpx
Wikipedia

Sinclair BASIC

Sinclair BASIC es el nombre que recibe el BASIC implementado en la ROM de los ordenadores Sinclair, Timex Sinclair y Amstrad Sinclair entre otros, desde el ZX80 hasta las diferentes versiones del ZX Spectrum. Estos ordenadores se comercializaron desde 1980 (modelo Sinclair ZX80) hasta 1992[1]​ (modelo Amstrad Sinclair ZX Spectrum +2B).

Sinclair BASIC
Información general
Tipo de programa Lenguaje de programación BASIC
Autor John Grant, Steve Vickers
Desarrollador Nine Tiles Networks, Sinclair Research
Lanzamiento inicial 1980
Licencia Propietario
Estado actual Descontinuado
Información técnica
Programado en Lenguaje Ensamblador
Plataformas admitidas ZX80, ZX81, ZX Spectrum y compatibles
Versiones
Última versión estable +3BASIC ( 1987)

Comandos

En su versión para ZX Spectrum 48k, el lenguaje tenía 86 palabras reservadas, de las cuales 50 eran comandos, 31 funciones y otras palabras clave 5:

Comandos
BEEP, BIN, BORDER, BRIGHT, CAT, CIRCLE, CLEAR, CLOSE#, CLS, CONTINUE, COPY, DATA, DEF FN, DIM, DRAW, ERASE, FLASH, FORMAT, FOR, GO SUB, GO TO, IF, INK, INPUT, INVERSE, LET, LIST, LLIST, LOAD, LPRINT, MERGE, MOVE, NEW, NEXT, OPEN#, OUT, OVER, PAPER, PAUSE, PLOT, POKE, PRINT, RANDOMIZE, READ, REM, RESTORE, RETURN, RUN, SAVE, VERIFY
Funciones
ABS, ACS, AND, ASN, ATN, ATTR, CHR$, CODE, COS, EXP, FN, INKEY$, INT, IN, LEN, LN, NOT, OR, PEEK, PI, POINT, RND, SCREEN$, SGN, SIN, SQR, STR$, TAN, TO, USR, VAL$, VAL
Otras palabras reservadas
AT, LINE, STEP, TAB, THEN

Diferencias con el BASIC estándar

Sintaxis

  • En general, Sinclair BASIC es un BASIC clásico que utiliza números de línea y no admite programación estructurada.
  • Un detalle adicional para los usuarios de ZX Spectrum anterior a la versión 128Kb era que cada comando estaba almacenado en una tecla distinta, de forma que para escribir:
 10 FOR A=1 TO 2*PI 

Había que teclear

 10 F <CAPS-SHIFT>-A <SYMBOL-SHIFT>-<L> 1 <SYMBOL-SHIFT>-<F> 2 <SYMBOL-SHIFT>-< B> <SYMBOL-SHIFT>-<CAPS-SHIFT>-<M> 
  • Esto tenía como objeto simplificar el análisis sintáctico de programas, ya que permitía almacenar los comandos como dígitos de control (caracteres 165 en adelante). Así, los programas de Sinclair BASIC se parecen a los programas «almacenados en forma binaria» de BASICA.
  • Otro detalle adicional es que las funciones no llevan paréntesis.
  • A diferencia de ANSI BASIC, pero dentro de lo que es habitual en los BASIC actuales, se aceptan variables con nombres de cualquier longitud.
  • El uso de "LET" para la asignación de variables es obligatorio.
  • Existe una diferencia importante en el manejo de variables de cadena. Las variables de cadena se tratan, como en C, como matrices:
 10 LET A$="ZXSPECTRUM" 20 PRINT A$(TO 3) : REM "ZXS" 30 PRINT A$(4 TO 6): REM "PEC" 40 PRINT A$(7) : REM "T" 50 PRINT A$(8 TO): REM "RUM" 
  • Sólo se soporta un tipo de variable numérica.
  • A diferencia de la mayoría de los BASIC, y de hecho, de la mayoría de lenguajes, acepta espacios en los nombres de las variables numéricas
 10 LET solo una cosa=1 20 PRINT solo una cosa 

Operadores

  • No existe operador de módulo.
  • AND puede actuar de forma equivalente al operador ? de C:
10 PRINT "TENGO " +("HAMBRE " AND COMIDA<0)+("FRIO " AND TEMPERATURA<10) 

Ramificación y subrutinas

  • "DO", "WHILE", "WEND", "ELSE" y "END IF" no están soportados.
  • Se soporta DEF FN, que ha de estar definido como una operación matemática.
  • No se soportan las etiquetas ni ON GOTO, pero la línea a la que salta GOTO puede estar contenida en una variable:
10 LET FIN=40 20 GOTO FIN 30 PRINT "ESTO NO SE IMPRIME" 40 PRINT "FIN DEL PROGRAMA" 

Instrucciones de entrada/salida

  • Las principales diferencias con BASIC están en las operaciones de archivo (se soportan LOAD, SAVE y MERGE para acceso a cinta magnética, así como CAT, PRINT, INPUT, OPEN # y CLOSE # para acceso a disco en los modelos dotados de este accesorio).
  • PRINT admite AT (reemplazando a LOCATE), TAB y el separador "'", de avance de línea. PRINT # significa "escribir en la parte inferior de la pantalla", no en archivo. Las instrucciones de color PAPER (fondo), INK (primer plano), OVER (sobrescritura), BRIGHT (brillo) y FLASH (parpadeo) también pueden utilizarse como atributos de PRINT.
  • Las instrucciones de dibujo son PLOT (dibujar un punto), DRAW (dibujar una línea desde el último punto) y CIRCLE (círculo).

Resumen

Los siguientes cuadros comparan XBASIC con un Basic original no estructurado, utilizando el programa de ejemplo que aparece en el artículo de la Wikipedia sobre BASIC:

Ejemplo 1: BASIC original no estructurado (Applesoft BASIC)

 10 INPUT "¿Cuál es su nombre? "; U$ 20 PRINT "Hola "; U$ 30 INPUT "¿Cuántos asteriscos desea? "; N 35 S$ = "" 40 FOR I = 1 TO N 50 S$ = S$ + "*" 55 NEXT I 60 PRINT S$ 70 INPUT "¿Desea más asteriscos? "; A$ 80 IF LEN(A$) = 0 THEN GOTO 70 90 A$ = LEFT(A$, 1) 100 IF (A$ = "S") OR (A$ = "s") THEN GOTO 30 110 PRINT "Adiós "; 120 FOR I = 1 TO 200 130 PRINT U$; " "; 140 NEXT I 150 PRINT 

Ejemplo 2: Sinclair BASIC

 5 OVER 1:REM usado en combinación con CHR$ 8 para producir acentos. 10 INPUT "Cua"+CHR$ 8+"'l es su nombre? "; U$ 20 PRINT "Hola "; U$ 30 INPUT "Cua"+CHR$ 8+"'ntos asteriscos desea? "; N 35 LET S$ = "" 40 FOR I = 1 TO N 50 LET S$ = S$ + "*" 55 NEXT I 60 PRINT S$ 70 PRINT "Desea ma"+CHR$ 8+"'s asteriscos? ";: INPUT A$ 80 IF LEN A$ = 0 THEN GOTO 70 90 LET A$ = A$(1) 100 IF (A$ = "S") OR (A$ = "s") THEN GOTO 30 110 PRINT "Adio";CHR$ 8;"'s "; 120 FOR I = 1 TO 200 130 PRINT U$; " "; 140 NEXT I 150 PRINT:OVER 0: 

Versiones

 
Código fuente en Sinclair BASIC que genera la Alfombra de Sierpinski.

Sinclair ZX80/ZX81

En la versión para el Sinclair ZX80 y el Sinclair ZX81, el intérprete contaba con algunos comandos que fueron eliminados en versiones posteriores: FAST, SCROLL, SLOW y UNPLOT.

Microdigital TK

Microdigital Eletronica lanzó dos ordenadores clónicos de ZX Spectrum, el TK 90X y el TK 95, incorporando al BASIC de Sinclair dos comandos nuevos: UDG y TRACE; y reemplazando BEEP por SOUND.

Timex Sinclair 2068

El dialecto empleado en los ordenadores Timex Sinclair 2068, añadía seis comandos al Sinclair BASIC, que no fueron continuados en posteriores modelos: DELETE, FREE, ON ERR, RESET, SOUND y STICK.

Sinclair ZX Spectrum 128k

El modelo original de ZX Spectrum 128 lanzado en 1985 por Investrónica y Sinclair en España incluía cuatro comandos que no fueron mantenidos en posteriores versiones: EDIT, RENUM, DELETE y WIDTH.

Todos los modelos de 128k (ZX Spectrum 128, +2, +3, +2A, y +2B) incorporaron dos comandos adicionales:

  • PLAY, para trabajar con el chip de sonido AY-3-8910
  • SPECTRUM, para forzar el modo de compatibilidad con los modelos de 48k

Amstrad Sinclair ZX Spectrum +3/+2A

El modelo ZX Spectrum 128 +3 fue lanzado en 1987 por Amstrad, y usaba varios comandos de versiones anteriores, modificando la sintaxis, para trabajar con el sistema operativo +3DOS y con los ficheros de la unidad de disco o el disco RAM: SAVE, LOAD, MERGE, ERASE, CAT, FORMAT, MOVE y COPY.

Compiladores

 
ToBoS-FP 2.0, unos de los muchos compiladores de Sinclair BASIC disponibles.

Si bien el Sinclair BASIC es un lenguaje interpretado, a lo largo del tiempo fueron apareciendo distintos programas para compilar el mismo, entre ellos:[2]

  • HiSoft COLT Compiler[3]
  • HiSoft BASIC Compiler[4]
  • Softek Integer Compiler[5]
  • Softek 'IS' Integer Compiler[6]​ (sucesor del anterior)
  • Softek 'FP' Full Compiler[7]
  • ToBoS-FP
  • USCHI Compiler[8]
  • Wye Valley BASIC Compiler
  • ZIP Compiler[9]

Referencias

Bibliografía consultada

  • Steven VICKERS: Sinclair ZX Spectrum BASIC programming Guide, Cambridge, Sinclair, 1982

Enlaces externos

  • SpecBAS, intérprete de Sinclair BASIC para varias plataformas.
  • Sinbas 1.3 (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última)., intérprete de Sinclair BASIC para PC, en World of Spectrum.
  • Fuse-Basic (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última)., intérprete de Sinclair BASIC para UNIX, en Sourceforge.
  • ZX Spectrum BASIC CGI server, intérprete CGI de Sinclair BASIC.
  •   Datos: Q2074777

sinclair, basic, este, artículo, sección, sobre, informática, necesita, wikificado, favor, edítalo, para, cumpla, convenciones, estilo, este, aviso, puesto, abril, 2015, nombre, recibe, basic, implementado, ordenadores, sinclair, timex, sinclair, amstrad, sinc. Este articulo o seccion sobre informatica necesita ser wikificado por favor editalo para que cumpla con las convenciones de estilo Este aviso fue puesto el 5 de abril de 2015 Sinclair BASIC es el nombre que recibe el BASIC implementado en la ROM de los ordenadores Sinclair Timex Sinclair y Amstrad Sinclair entre otros desde el ZX80 hasta las diferentes versiones del ZX Spectrum Estos ordenadores se comercializaron desde 1980 modelo Sinclair ZX80 hasta 1992 1 modelo Amstrad Sinclair ZX Spectrum 2B Sinclair BASICInformacion generalTipo de programaLenguaje de programacion BASICAutorJohn Grant Steve VickersDesarrolladorNine Tiles Networks Sinclair ResearchLanzamiento inicial1980LicenciaPropietarioEstado actualDescontinuadoInformacion tecnicaProgramado enLenguaje EnsambladorPlataformas admitidasZX80 ZX81 ZX Spectrum y compatiblesVersionesUltima version estable 3BASIC 1987 editar datos en Wikidata Indice 1 Comandos 2 Diferencias con el BASIC estandar 2 1 Sintaxis 2 2 Operadores 2 3 Ramificacion y subrutinas 2 4 Instrucciones de entrada salida 2 5 Resumen 3 Versiones 3 1 Sinclair ZX80 ZX81 3 2 Microdigital TK 3 3 Timex Sinclair 2068 3 4 Sinclair ZX Spectrum 128k 3 5 Amstrad Sinclair ZX Spectrum 3 2A 4 Compiladores 5 Referencias 6 Bibliografia consultada 7 Enlaces externosComandos EditarEn su version para ZX Spectrum 48k el lenguaje tenia 86 palabras reservadas de las cuales 50 eran comandos 31 funciones y otras palabras clave 5 Comandos BEEP BIN BORDER BRIGHT CAT CIRCLE CLEAR CLOSE CLS CONTINUE COPY DATA DEF FN DIM DRAW ERASE FLASH FORMAT FOR GO SUB GO TO IF INK INPUT INVERSE LET LIST LLIST LOAD LPRINT MERGE MOVE NEW NEXT OPEN OUT OVER PAPER PAUSE PLOT POKE PRINT RANDOMIZE READ REM RESTORE RETURN RUN SAVE VERIFYFunciones ABS ACS AND ASN ATN ATTR CHR CODE COS EXP FN INKEY INT IN LEN LN NOT OR PEEK PI POINT RND SCREEN SGN SIN SQR STR TAN TO USR VAL VALOtras palabras reservadas AT LINE STEP TAB THENDiferencias con el BASIC estandar EditarSintaxis Editar En general Sinclair BASIC es un BASIC clasico que utiliza numeros de linea y no admite programacion estructurada Un detalle adicional para los usuarios de ZX Spectrum anterior a la version 128Kb era que cada comando estaba almacenado en una tecla distinta de forma que para escribir 10 FOR A 1 TO 2 PI Habia que teclear 10 F lt CAPS SHIFT gt A lt SYMBOL SHIFT gt lt L gt 1 lt SYMBOL SHIFT gt lt F gt 2 lt SYMBOL SHIFT gt lt B gt lt SYMBOL SHIFT gt lt CAPS SHIFT gt lt M gt Esto tenia como objeto simplificar el analisis sintactico de programas ya que permitia almacenar los comandos como digitos de control caracteres 165 en adelante Asi los programas de Sinclair BASIC se parecen a los programas almacenados en forma binaria de BASICA Otro detalle adicional es que las funciones no llevan parentesis A diferencia de ANSI BASIC pero dentro de lo que es habitual en los BASIC actuales se aceptan variables con nombres de cualquier longitud El uso de LET para la asignacion de variables es obligatorio Existe una diferencia importante en el manejo de variables de cadena Las variables de cadena se tratan como en C como matrices 10 LET A ZXSPECTRUM 20 PRINT A TO 3 REM ZXS 30 PRINT A 4 TO 6 REM PEC 40 PRINT A 7 REM T 50 PRINT A 8 TO REM RUM Solo se soporta un tipo de variable numerica A diferencia de la mayoria de los BASIC y de hecho de la mayoria de lenguajes acepta espacios en los nombres de las variables numericas10 LET solo una cosa 1 20 PRINT solo una cosa Operadores Editar No existe operador de modulo AND puede actuar de forma equivalente al operador de C 10 PRINT TENGO HAMBRE AND COMIDA lt 0 FRIO AND TEMPERATURA lt 10 Ramificacion y subrutinas Editar DO WHILE WEND ELSE y END IF no estan soportados Se soporta DEF FN que ha de estar definido como una operacion matematica No se soportan las etiquetas ni ON GOTO pero la linea a la que salta GOTO puede estar contenida en una variable 10 LET FIN 40 20 GOTO FIN 30 PRINT ESTO NO SE IMPRIME 40 PRINT FIN DEL PROGRAMA Instrucciones de entrada salida Editar Las principales diferencias con BASIC estan en las operaciones de archivo se soportan LOAD SAVE y MERGE para acceso a cinta magnetica asi como CAT PRINT INPUT OPEN y CLOSE para acceso a disco en los modelos dotados de este accesorio PRINT admite AT reemplazando a LOCATE TAB y el separador de avance de linea PRINT significa escribir en la parte inferior de la pantalla no en archivo Las instrucciones de color PAPER fondo INK primer plano OVER sobrescritura BRIGHT brillo y FLASH parpadeo tambien pueden utilizarse como atributos de PRINT Las instrucciones de dibujo son PLOT dibujar un punto DRAW dibujar una linea desde el ultimo punto y CIRCLE circulo Resumen Editar Los siguientes cuadros comparan XBASIC con un Basic original no estructurado utilizando el programa de ejemplo que aparece en el articulo de la Wikipedia sobre BASIC Ejemplo 1 BASIC original no estructurado Applesoft BASIC 10 INPUT Cual es su nombre U 20 PRINT Hola U 30 INPUT Cuantos asteriscos desea N 35 S 40 FOR I 1 TO N 50 S S 55 NEXT I 60 PRINT S 70 INPUT Desea mas asteriscos A 80 IF LEN A 0 THEN GOTO 70 90 A LEFT A 1 100 IF A S OR A s THEN GOTO 30 110 PRINT Adios 120 FOR I 1 TO 200 130 PRINT U 140 NEXT I 150 PRINT Ejemplo 2 Sinclair BASIC 5 OVER 1 REM usado en combinacion con CHR 8 para producir acentos 10 INPUT Cua CHR 8 l es su nombre U 20 PRINT Hola U 30 INPUT Cua CHR 8 ntos asteriscos desea N 35 LET S 40 FOR I 1 TO N 50 LET S S 55 NEXT I 60 PRINT S 70 PRINT Desea ma CHR 8 s asteriscos INPUT A 80 IF LEN A 0 THEN GOTO 70 90 LET A A 1 100 IF A S OR A s THEN GOTO 30 110 PRINT Adio CHR 8 s 120 FOR I 1 TO 200 130 PRINT U 140 NEXT I 150 PRINT OVER 0 Versiones Editar Codigo fuente en Sinclair BASIC que genera la Alfombra de Sierpinski Sinclair ZX80 ZX81 Editar En la version para el Sinclair ZX80 y el Sinclair ZX81 el interprete contaba con algunos comandos que fueron eliminados en versiones posteriores FAST SCROLL SLOW y UNPLOT Microdigital TK Editar Microdigital Eletronica lanzo dos ordenadores clonicos de ZX Spectrum el TK 90X y el TK 95 incorporando al BASIC de Sinclair dos comandos nuevos UDG y TRACE y reemplazando BEEP por SOUND Timex Sinclair 2068 Editar El dialecto empleado en los ordenadores Timex Sinclair 2068 anadia seis comandos al Sinclair BASIC que no fueron continuados en posteriores modelos DELETE FREE ON ERR RESET SOUND y STICK Sinclair ZX Spectrum 128k Editar El modelo original de ZX Spectrum 128 lanzado en 1985 por Investronica y Sinclair en Espana incluia cuatro comandos que no fueron mantenidos en posteriores versiones EDIT RENUM DELETE y WIDTH Todos los modelos de 128k ZX Spectrum 128 2 3 2A y 2B incorporaron dos comandos adicionales PLAY para trabajar con el chip de sonido AY 3 8910 SPECTRUM para forzar el modo de compatibilidad con los modelos de 48kAmstrad Sinclair ZX Spectrum 3 2A Editar El modelo ZX Spectrum 128 3 fue lanzado en 1987 por Amstrad y usaba varios comandos de versiones anteriores modificando la sintaxis para trabajar con el sistema operativo 3DOS y con los ficheros de la unidad de disco o el disco RAM SAVE LOAD MERGE ERASE CAT FORMAT MOVE y COPY Compiladores Editar ToBoS FP 2 0 unos de los muchos compiladores de Sinclair BASIC disponibles Si bien el Sinclair BASIC es un lenguaje interpretado a lo largo del tiempo fueron apareciendo distintos programas para compilar el mismo entre ellos 2 HiSoft COLT Compiler 3 HiSoft BASIC Compiler 4 Softek Integer Compiler 5 Softek IS Integer Compiler 6 sucesor del anterior Softek FP Full Compiler 7 ToBoS FP USCHI Compiler 8 Wye Valley BASIC Compiler ZIP Compiler 9 Referencias Editar How the Spectrum began a revolution BBC 23 de abril de 2007 Consultado el 5 de junio de 2007 World of Spectrum Sinclair BASIC http www worldofspectrum org infoseekid cgi id 0008254 http www worldofspectrum org infoseekid cgi id 0008249 http www worldofspectrum org infoseekid cgi id 0008282 http www worldofspectrum org infoseekid cgi id 0008696 http www worldofspectrum org infoseekid cgi id 0008693 Uschi Compiler World of Spectrum http www worldofspectrum org infoseekid cgi id 0009452Bibliografia consultada EditarSteven VICKERS Sinclair ZX Spectrum BASIC programming Guide Cambridge Sinclair 1982Enlaces externos EditarSpecBAS interprete de Sinclair BASIC para varias plataformas Sinbas 1 3 enlace roto disponible en Internet Archive vease el historial la primera version y la ultima interprete de Sinclair BASIC para PC en World of Spectrum Fuse Basic enlace roto disponible en Internet Archive vease el historial la primera version y la ultima interprete de Sinclair BASIC para UNIX en Sourceforge ZX Spectrum BASIC CGI server interprete CGI de Sinclair BASIC Datos Q2074777 Obtenido de https es wikipedia org w index php title Sinclair BASIC amp oldid 138913910, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos