Tipus | llenguatge de programació d'alt nivell ![]() |
---|---|
Desenvolupador | Nine Tiles Networks Sinclair Research |
Paradigma de programació | imperatiu |
Influenciat per | BASIC |
Ha influenciat | SuperBASIC |
Sinclair Basic és el nom que rep el BASIC implementat a la Memòria ROM dels microordinadors Sinclair des del ZX80 fins a les diferents versions del ZX Spectrum. Aquests ordinadors es van comercialitzar des de 1980 (model Sinclair ZX80) fins a 1992 (models Amstrad/Sinclair ZX Spectrum).[1]
El Sinclair Basic va ser desenvolupat originalment el 1979 per l'empresa «Nine Tiles Networks Ltd.» com una versió mínima del BASIC estàndard amb 4 KiB, per al Sinclair ZX80. Va evolucionar per a 8 KiB en el Sinclair ZX81 i per a una versió versió gairebé completa de 16 KiB en el ZX Spectrum.
Varen existir versions d'aquest llenguatge per a clònics del Sinclair Spectrum, com l'estatunidenc Timex Sinclair 2068 («Timex Basic») i el brasiler Microdigital TK 90X («TK BASIC»),[2] que han afegit ordres addicionals, no trobades en el Sinclair Basic original.
En general, el Sinclair Basic és un BASIC clàssic que utilitza nombres de línia i no admet programació estructurada.[3]
Un detall addicional per als usuaris del «ZX Spectrum» anterior al model de 128K era que cada ordre estava emmagatzemada en una tecla diferent, de manera que per escriure:
10 FOR A=1 TO 2*PI
Calia entrar:
10 F A=1 <SYMBOL-SHIFT>-<F> 2* <SYMBOL-SHIFT>-<ALT-SHIFT>-<M>
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"
10 LET nomes una cosa=1 20 PRINT nomes una cosa
10 PRINT "TINC " + ("FAM" AND MENJAR <0) + ("FRED" AND TEMPERATURA <10)
10 LET FI=40 20 GOTO FI 30 PRINT "AIXO' NO S'IMPRIMEIX" 40 PRINT "FI DEL PROGRAMA"
Els següents quadres comparen el Sinclair Basic amb un BASIC original no estructurat, utilitzant el programa d'exemple que apareix en l'article de la Viquipèdia en anglès sobre BASIC:
10 INPUT "Com es diu ? ";U$ 20 PRINT "Hola ";U$ 30 INPUT "Quants asteriscs desitja ? ";N 35 S$="" 40 FOR I=1 TO N 50 S$=S$+"*" 55 NEXT I 60 PRINT S$ 70 INPUT "Voleu més asteriscs ? ";A$ 75 PRINT 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 "Adéu "; 120 FOR I=1 TO N 130 PRINT U$;""; 140 NEXT I 150 PRINT
5 OVER 1: REM usat en combinació amb CHR$ 8 per produir accents. 10 INPUT "Com es diu? ";U$ 20 PRINT "Hola ";U$ 30 INPUT "Quants asteriscs desitja? ";N 35 LET S$="" 40 FOR I= 1 TO N 50 LET S$=S$+"*" 55 NEXT I 60 PRINT S$ 70 PRINT "Voleu me";CHR$ 8;"'s asteriscs? ";: INPUT A$ 80 PRINT: IF LEN A$=0 THEN GOTO 70 90 LET A$=A$(1) 100 IF (A$="S") OR (A$="s") THEN GOTO 30 110 PRINT "Ade";CHR$ 8;"'u "; 120 FOR I=1 TO N 130 PRINT U$;" "; 140 NEXT I 150 PRINT:OVER 0