Sinclair BASIC

Sinclair BASIC – BASIC programavimo kalbos dialektas, naudotas 8 bitų Sinclair Research ir Timex Sinclair asmeniniuose kompiuteriuose bei jų klonuose. Sinclair BASIC interpretatorius buvo sukurtas „Nine Tiles Networks“ kompanijos.

Pradinė versija buvo sukurta 1979 m. Nine Tiles kompanijos, kuri tilpo 4  kB Sinclair ZX80 kompiuterio pastoviojoje atmintyje. Tai buvo neužbaigta 1978 metų ANSI minimalaus BASIC standarto realizacija. Vėliau Sinclair BASIC evoliucionavo Sinclair ZX81 ir TS1000 kompiuteriuose, kur buvo talpinamas jau į 8  kB ROM, ir buvo beveik galutinai užbaigtas Sinclair ZX Spectrum kompiuteryje, kuriame buvo įrašomas į 16  kB pastoviąją atmintį.

Sinclair BASIC aprašymas

Raktiniai žodžiai 
Spectrum kompiuteryje Sinclair BASIC turėjo 86 raktinius žodžius, žyminčius komandas (kurių buvo 50), funkcijas (31) ir kitus raktažodžius (5). Jie buvo įvedami ne pažodžiui, o kiekvienas klaviatūros mygtukas atitiko keletą reikšmių, kurios buvo keičiamos perjungimo klavišais. Pavyzdžiui, BEEP komanda buvo įvedama iš pradžių kartu nuspaudus CAPS ir Symbol SHIFT, poto SYMBOL SHIFT plius Z.

 ABS, ACS, AND1, ASN, AT, ATN, ATTR, BEEP, BIN, BORDER, BRIGHT, CAT2, CHR$</u>3, CIRCLE, CLEAR, CLOSE#2, CLS, CODE3, CONTINUE, COPY, COS, DATA, DEF FN, DIM, DRAW, ERASE2, EXP, FLASH, FN, FOR, FORMAT2, GO SUB, GO TO, IF4, IN, INK, INKEY$3, INPUT, INT, INVERSE, LEN, LET5, LINE, LIST, LLIST, LN, LOAD, LPRINT, MERGE, MOVE2, NEW, NEXT, NOT1, OPEN#2, OR1, OUT, OVER, PAPER, PAUSE, PEEK, PI, PLOT, POINT, POKE, PRINT, RANDOMIZE, READ, REM, RESTORE, RETURN, RND, RUN, SAVE, SCREEN$3, SGN, SIN, SQR, STEP, STR$3, TAB, TAN, THEN 4, TO, USR, VAL3, 6, VAL$3, VERIFY

Komandos, kurios buvo unikalios tik ZX81 ir jo klonuose TS1000 ir TS1500 yra:

 FAST, SCROLL, SLOW, UNPLOT, GOSUB, GOTO (Spectrum turėjo funkciškai identiškas GO SUB, GO TO komandas)

Spectrum 128K ir Amstrad Spectrum +2, +3, +2A, +2B modeliuose BASIC komandų įvedimas jau buvo vykdomas tradiciniu būdu, užrašant juos paraidžiui. Taip pat šiuose modeliuose atsirado dvi naujos komandos, kurių senesni modeliai neatpažindavo: PLAY (veikė su nauju AY-3-8910 muzikiniu lustu) ir SPECTRUM (perjungdavo į 48K Spectrum modelio suderinamumo režimą).

Pastabos 
 AND, NOT ir OR funkcijos yra loginės operacijos.
 CAT, ERASE, FORMAT ir MOVE iš pradžių buvo sukurti naudojimui su periferine įranga, tačiau nebuvo iki galo užbaigti. Jų naudojimas sugeneruodavo klaidos pranešimą (Invalid Stream).
 String (tekstinės eilutės duomenų tipo) kintamųjų vardai galėjo susidėti tik iš vienos raidės. „LET A=5“, „LET Apples=5“ ir „LET A$="Hello"“ yra teisingi sakiniai, tačiau „LET APPLES$="Fruit"“ bus klaidingas sakinys.
 Skirtingai nei dauguma kitų BASIC dialektų, Sinclair BASIC neturi ELSE operatoriaus sąlygos (IF) sakiniuose.
 LET yra būtinas, norint priskirti kintamajam reikšmę (pavyzdžiui, „LET A=1“, bet niekada „A=1“). Ši praktika irgi skiriasi nuo daugumos BASIC dialektų.
 VAL funkcija išreiškia ne tik skaičius, bet ir visus reiškinius, pavyzdžiui, „PRINT VAL(A$)“ išves 14, jei A$ yra lygus „3*3+4+COS(0)“.

Skirtingai nuo LEFT$(), MID$() ir RIGHT$() funkcijų plačiai naudotame Microsoft BASIC dialekte, tekstinių eilučių dalis Sinclair BASIC buvo galima pasiekti į masyvus panašiu stiliumi. Pavyzdžiui, „A$ (5 TO 10)“ atitiks A$ kintamojo tekstinės eilutės dalį nuo 5 iki 10 simbolio (imtinai).

Timex BASIC 
Timex BASIC dialektas buvo naudojamas Spectrum suderinamuose TS2068 kompiuteriuose, bet ne TC2048, kuriame buvo naudojamas originalus Sinclair BASIC. Timex Sinclair turėjo papildomus 6 raktinius žodžius:

 DELETE, FREE, ON ERR, RESET, SOUND, STICK

 DELETE ištrina BASIC programos eilutes.
 FREE yra funkcija, grąžinanti laisvos operatyvios atminties kiekį. „PRINT FREE“ atvaizduos, kiek yra laisvos atminties tuo momentu.
 ON ERR yra klaidų atpažinimo funkcija, dažniausiai naudojama kaip „ON ERR GO TO“ arba „ON ERR GO SUB“.
 RESET neturėjo jokios paskirties pagrindiniam kompiuteriui ir buvo numatytas periferinių įrenginių pakartotinei kelčiai.
 SOUND komanda AY-3-8192 garso lustui.
 STICK – funkcija, grąžinanti vidinės vairalazdės (Timex Sinclair 2090) poziciją.

Praplėtimai ir variantai 
 Beta BASIC, parašytas Andy Wright, iš pradžių buvo BASIC praplėtimas, bet vėliau virto į pilnavertį interpretatorių.
 SAM BASIC, taip pat parašytas Andy Wright ir buvo naudojamas SAM Coupé kompiuteriuose. Ši versija buvo atgaliniai suderinama su ZX Spectrum kompiuterio BASIC variantu.
 Sinclair Extended BASIC yra vystomas retro projektas, kurio tikslas sukurti patobulintą Sinclair BASIC versiją. Galima atsisiųsti beta versijas.

Šaltiniai 
 Vickers, Steven (1982). Sinclar ZX Spectrum BASIC Programming. Sinclair Research.
 Ardley, Neil (1984). Sinclair ZX Spectrum+ User Guide. Dorling Kindersley kartu su Sinclair Research. ISBN 0-86318-080-9.

Nuorodos 
 Sinclair ZX Spectrum BASIC Programming – originalus 1982 metų Steven Vickers parašytas programavimo vadovas
 Sinclair ZX81 Basic Programming  – ZX81 BASIC programavimo vadovas, taip pat parašytas Steven Vickers
 Sinclair BASIC istorija

Programavimo kalbos
Sinclair Research