See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Sinclair BASIC - Wikipedia, la enciclopedia libre

Sinclair BASIC

De Wikipedia, la enciclopedia libre

Sinclair Basic es el nombre que recibe el BASIC implementado en la ROM de los ordenadores Sinclair desde el ZX81 hasta el ZX Spectrum. Estos ordenadores se comercializaron en los años 80.

Tabla de contenidos

[editar] Diferencias con BASIC estándar,

[editar] 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 A=1 <SIMBOL-SHIFT>-<F> 2* <SYMBOL-SHIFT>-<ALT-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). En este sentido, 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.

[editar] Variables

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

[editar] 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)

[editar] 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"

[editar] 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) 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).

[editar] 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 INPUT "Desea ma"+CHR$ 8+"'s asteriscos? "; 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:

[editar] Bibliografía consultada

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


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -