náhled|Program v Basicu ZX Spectra: číslované řádky obsahují příkazy Sinclair BASIC je dialekt programovacího jazyka BASIC pro počítače Sinclair ZX Spectrum vyvinulý firmou Nine Tiles Networks.
Historie
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 jazyk Sinclair 128 BASIC, který byl rozšířený o některé příkazy a možnost psát příkazy po písmenech.128 BASIC na World of Spectrum
Protože implementace Sinclair BASICu ponechávala v ROM počítačů ZX Spectrum nevyužité místo, objevilo se několik ROM se Sinclair BASICem rozšířeným o některé možnosti. Jednou z těchto modifikací je SE BASIC Andrewa Owena, který podporuje i rozšířené grafické možnosti obvodu ULAplus,ZX Interface 2 - SE BASIC (3rd Party ROM Cartridge) na www.fruitcake.plus.com a jehož některé rozšířené příkazy byly inspirovány obdobnými rozšířenými příkazy počítačů TK 95, Timex Sinclair 2068 a původní španělské verze počítače Sinclair ZX Spectrum 128K+.Z80 Programmers' Challenge na compgroups.net Andrew Owen je také autorem OpenSE Basicu, což je varianta Sinclair BASICu vydaná pod licencí GPL v.2.opense-basic na filewatcher.comOpenSE Basic na SpeccyWikiOpenSE BASIC na World of Spectrum Sinclair BASICem byl inspirován projekt Sparky eZX BASIC.Specifications na rk-internet.com/eZXSparky
Jazyk
Zápis a spuštění programu
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.
Příkazy spuštěného programu se interpretovaly, proto byl běh programu relativně pomalý a BASIC vhodný spíše pro didaktické účely. K programování her a dalšího komerčního softwaru se užíval jazyk symbolických adres a jeho kompilace do strojových instrukcí procesoru pomocí assembleru.
Klíčová slova Spectrum mělo 86 klíčových slov, která byla napsána na klávesnici. Slova se psala stiskem klávesy v režimu klíčových a rozšířených klíčových slov, režim byl indikován blikajícím písmeny K či E, které představoval kurzor. Ve výčtu jsou vyznačena takto: říkazy, výrazy, a ostatní klíčová slova:
, , AND, NOT a OR jsou logické operátory., , AT, , , BEEP, BIN, BORDER, BRIGHT, ATCAT, 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ě., , CIRCLE, CLEAR, LOSE#, CLS, , ONTINUE, OPY, , DATA, DEF FN, DIM, DRAW, RASE, , FLASH, , FOR, ORMAT, GO SUB, GO TO, IF, , INK, , INPUT, , INVERSE, , LET, LINE, LIST, LLIST, , LOAD, LPRINT, MERGE, MOVE, NEW, NEXT, , OPEN#, , OUT, OVER, PAPER, PAUSE, , , PLOT, , POKE, PRINT, RANDOMIZE, READ, REM, RESTORE, RETURN, , RUN, SAVE, , , , , STEP, , TAB, , THEN , , , , , 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, SPECTRUMtyto 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.
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.Spectrum 128 ROM Disassembly - Spanish Spectrum 128 na fruitcake.plus.comPříkaz WIDTH obsahoval chybu, kvůli které ho nebylo doporučeno používat.
Tyto příkazy ovšem není možné vložit do programu, jsou určeny pouze k přímému vykonání.ZX Interface 2 - Spanish ZX Spectrum 128 Emulator ROM Cartridge na fruitcake.plus.com
Timex BASIC používaný v TS2048 a TS2068 (kompatibilních se Spectrem) má navíc těchto šest slov:
ELETE, , ON ERR, ESET, SOUND,
Počítače TK 90X a TK 95 mají navíc příkazy: RACE a DG.http://microhobby.speccy.cz/010303/ord/microdigital.htm
Zvláštní rysy Else Neexistuje operátor ELSE ve výrazu IF – THEN (– ELSE). Tedy namísto 10 IF V=5 THEN GO TO 50 ELSE GO TO 100se musí zapsat 10 IF V=5 THEN GO TO 50 20 GO TO 100 LET LET je povinné. Tedy zapisuje se 10 LET A=1 na rozdíl od chybného zápisu A=1
Proměnné
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.
Hello World
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
pomocí externí ROM, např. v ZX Interface 1, 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, napojením doplňkového interpretu na stránkovací rutiny ZX Specter 128,Spectrum 128 Extended BASIC na www.fruitcake.plus.com napojením doplňkového interpretu na rozšiřující interpret v ZX Interface 1. softwarovou nadstavbou, např. Beta BASIC
Poznámky
Reference
Související články Znaková sada ZX Spectrum Super BASIC SAM BASIC BASIC Rozšířená syntaxe Sinclair BASICu
Externí odkazy Definice několika funkcí pomocí DEF FN Historie Sinclair Basicu
Kategorie:Software pro ZX Spectrum Kategorie:Programování na ZX Spectru Kategorie:Basic