Sinclair BASIC

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Sinclair BASIC je dialekt programovacího jazyka BASIC pro počítače ZX Spectrum. Sinclair BASIC vyvinula firma Nine Tiles Networks Ltd.

Historie[editovat | editovat zdroj]

První varianta z roku 1979 byla uložena ve 4 KB ROM počítače ZX80. Šlo o nekompletní implementaci minimal BASICu podle normy ANSI z roku 1978. Vývoj pokračoval 8 KB verzí pro ZX81 a implementací pro ZX Spectrum, která se vešla do 16 KB ROM. Na počítačích ZX Spectrum +2 a ZX Spectrum +3 byl použit rozšířený jazyk Sinclair Extended BASIC.

Jazyk[editovat | editovat zdroj]

Klíčová slova[editovat | editovat zdroj]

Spectrum mělo 86 klíčových slov. Ve výčtu jsou vyznačena takto: příkazy, výrazy, funkce a ostatní klíčová slova:

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

Výrazy a příkazy, které byly pouze na počítačích ZX81, TS1000 a TS1500:

FAST, SCROLL, SLOW, UNPLOT, GOSUB/GOTO (Spectrum má GO SUB a GO TO)

Model 128K přinesl tyto příkazy:

PLAY, SPECTRUM[p 3]

Původní Španělská verze počítače ZX Spectrum 128K+ neobsahovala systém nabídek jako pozdější anglická verze a verze z ní vycházející, ale místo nich používala další přidané příkazy:

EDIT, RENUMBER, DELETE a WIDTH.[1]

Tyto příkazy ovšem není možné vložit do programu, jsou určeny pouze k přímému vykonání.[2]

Timex BASIC používaný v TS2048 a TS2068 (kompatibilních se Spectrem) má navíc těchto šest slov:

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

Počítače TK 90X a TK 95 mají navíc příkazy:

TRACE a UDG.[3]

Zvláštní rysy[editovat | editovat zdroj]

Else[editovat | editovat zdroj]

Neexistuje operátor ELSE ve výrazu IF - THEN (- ELSE). Tedy namísto

10 IF V=5 THEN GO TO 50 ELSE GO TO 100

se musí zapsat

10 IF V=5 THEN GO TO 50
20 GO TO 100
LET[editovat | editovat zdroj]

LET je povinné. Tedy zapisuje se

10 LET A=1

na rozdíl od chybného zápisu

A=1

Proměnné[editovat | editovat zdroj]

Název proměnné typu textový řetězec musí obsahovat pouze jeden znak. Tedy

10 LET A=5
20 LET Apples=5
30 LET A$="Hello"

jsou správné, ale

LET APPLES$="Fruit"

je chybný zápis.

Zápis a spuštění programu[editovat | editovat zdroj]

V době návrhu Sinclair BASICu bylo běžné, že se řádky programu číslovaly. Programátor musel čísla řádků zapisovat sám. Pokud se číslo řádku nezapsalo, ihned po zadání příkazu se tento příkaz vykonal.

Spuštění programu se provádí příkazem RUN (od začátku programu), nebo RUN s číslem řádku (od daného čísla řádku). Program je možné také spustit příkazem GO TO (s číslem řádku).

Pokud je program spuštěn například příkazem RUN 5, ale číslo řádku 5 neexistuje, spustí se program od následujícího vyššího čísla řádku (například 10).

Program není nutné ukončovat příkazem STOP, jak to bylo běžné v mnoha jiných variantách BASICu.

Hello World[editovat | editovat zdroj]

Velmi jednoduchý příklad programu Hello world může vypadat takto:

 10 PRINT "Hello World"

Možnosti rozšíření syntaxe a množiny příkazů v ZX Spectru[editovat | editovat zdroj]

  • pomocí externí ROM, např. v ZX Interface I, Disciple,
  • výměnou ROM, např. ISO ROM, LEC ROM,
  • využitím systémové proměnné ON ERROR,
  • interpretací poznámek v příkazu REM,[4][p 4]
  • napojením doplňkového interpretu na stránkovací rutiny ZX Specter 128.[6]

Reference[editovat | editovat zdroj]

  1. Spectrum 128 ROM Disassembly - Spanish Spectrum 128 na fruitcake.plus.com
  2. ZX Interface 2 - Spanish ZX Spectrum 128 Emulator ROM Cartridge na fruitcake.plus.com
  3. http://microhobby.speccy.cz/010303/ord/microdigital.htm
  4. ... do you add extra commands to Basic?. Sinclair User. March 1988, čís. 72, s. 70 - 71. Dostupné online.  
  5. Universum. Public Domain - programy (téměř) zadarmo. ZX Magazín. 1993, čís. 1/93, s. 23-26. ISSN 1210-4833.  
  6. Spectrum 128 Extended BASIC na www.fruitcake.plus.com

Poznámky[editovat | editovat zdroj]

  1. a b c AND, NOT a OR jsou logické operátory.
  2. a b c d e f CAT, CLOSE#, ERASE, FORMAT, MOVE a OPEN# jsou příkazy a výrazy pro ZX Microdrive. Pokud se použijí bez tohoto zařízení, vyvolají chybu. Československý počítač Didaktik tyto příkazy využíval také pokud byla připojena disketová jednotka. Příkazy OPEN# a CLOSE# je sice možné použít i bez ZX Microdrive, ale pouze v jejich omezené variantě.
  3. tyto příkazy nahradily grafické znaky pod písmeny 'T' a 'U', což někdy způsobovalo chybné zobrazení u programů, které tyto grafické znaky využívaly.
  4. Podobným způsoben je řešen i kompilátor assembleru pro ZX Spectrum nazvaný Assembler.[5]

Externí odkazy[editovat | editovat zdroj]

Související články[editovat | editovat zdroj]