Sinclair BASIC - Sinclair BASIC

Sinclair BASIC
Paradigma Rozkazovací způsob
Navrhl John Grant, Steve Vickers
Vývojář Networks Nine Tiles,
Sinclair Research
Poprvé se objevil 1979 ; Před 42 lety ( 1979 )
Plošina ZX80 , ZX81 , ZX Spectrum
Licence Proprietární

Sinclair BASIC je dialekt programovacího jazyka BASIC používaný v 8bitových domácích počítačích od společností Sinclair Research a Timex Sinclair . Tlumočník Sinclair BASIC vytvořil Nine Tiles Networks Ltd.

Dějiny

Sinclair BASIC byl původně vyvinut v roce 1979 pro ZX80 společností Nine Tiles. Programátory byli John Grant, majitel společnosti Nine Tiles, a Steve Vickers .

Původně se jednalo o neúplnou implementaci minimálního BASIC standardu American National Standards Institute (ANSI) z roku 1978 pouze s celočíselnou aritmetikou, pro ZX80 označovaný jako 4K BASIC (pro jeho velikost ROM). Vyvinul se pomocí 8K BASIC s plovoucí desetinnou čárkou pro ZX81 a TS1000 (který byl také k dispozici jako upgrade pro ZX80) a stal se téměř kompletní verzí v 16 KB ROM ZX Spectrum . Je přítomen ve všech kompatibilních ZX Spectrum.

Od roku 2015 existují tlumočníci pro moderní operační systémy a starší systémy, které umožňují snadné použití Sinclair Basic.

Syntax

Noví programátoři BASICu by mohli začít s jednoduchým programem, možná pomocí příkazu PRINT jazyka k zobrazení zprávy na obrazovce; známý a často replikovány příkladem je Kernighan a Ritchie ‚s Hello world Program :

  10 PRINT "Hello, World!"

Klíčová slova

Na 16K / 48K ZX Spectrum obsahuje 88 klíčových slov v Sinclair BASIC, označujících příkazy (kterých je 50), funkce a logické operátory (31) a další klíčová slova (16, včetně 9, které jsou také příkazy nebo funkcemi):

Klíčové slovo Parametry Zadáno pomocí Typ souhrn
ABS number EXTENDED MODE pak G Funkce Vrací absolutní hodnotu znumber
ACS number EXTENDED MODEpak SYMBOL SHIFT+W Funkce Vrátí arckosinus znumber
AND SYMBOL SHIFT+Y Logický operátor Vrátí true, pokud jsou obě podmínky na obou stranách ANDklíčového slova true, else vrátí false
ASN number EXTENDED MODEpak SYMBOL SHIFT+Q Funkce Vrátí arcsine znumber
AT line, column; SYMBOL SHIFT+I jiný Používá se ve PRINTvýpisu k tisku na zadaný řádek a sloupec; například PRINT AT 5,10;"*"vloží hvězdu do sloupce 10 řádku 5.
ATN number EXTENDED MODEpak SYMBOL SHIFT+E Funkce Vrací arkustangens znumber
ATTR (line, column) EXTENDED MODEpak SYMBOL SHIFT+L Funkce Vrátí bajt obsahující informace o barvách textové buňky na obrazovce odpovídající zadaným linea column; Všimněte si, že na rozdíl od většiny klíčových slov Sinclair BASIC jsou závorky povinné; první tři bity označují barvu inkoustu (popředí), čtvrtý, pátý a šestý bity barvu papíru (pozadí), sedmý bit, zda jsou barvy jasné nebo ne, a osm, zda blikají
BEEP duration, pitch EXTENDED MODEpak SYMBOL SHIFT+Z Příkaz Produkuje zvuk z reproduktoru počítače; durationje v sekundách, výška tónu je v půltónech nad (kladná hodnota) nebo pod (záporná hodnota) uprostřed C
BIN number EXTENDED MODE pak B jiný Označuje, že numberje v binární notaci
BORDER number B Příkaz Nastaví vnější ohraničení obrazovky na barvu určenou pomocí number
BRIGHT number EXTENDED MODEpak SYMBOL SHIFT+B Velení / jiné Zvýrazní všechny následující barvy, pokud numberje 1, nebo její normální odstín, pokud je 0
CAT number EXTENDED MODEpak SYMBOL SHIFT+9 Příkaz Zobrazuje obsah ZX Microdrive specifikovaný uživatelemnumber
CHR$ number EXTENDED MODE pak W Funkce Vrátí znak odpovídající desetinnému místu numberve znakové sadě počítače
CIRCLE x, y, r EXTENDED MODEpak SYMBOL SHIFT+H Příkaz Nakreslí kruh se středem na souřadnicích ( x, y) a poloměrur
CLEAR address X Příkaz Vymaže obrazovku, všechny proměnné a GO SUBzásobník a volitelně nastaví maximální adresu RAM, kterou má BASIC použít
CLOSE # number EXTENDED MODEpak SYMBOL SHIFT+5 Příkaz Zavře zadané číslo streamu pro přístup
CLS V Příkaz Vymaže veškerý text a grafiku z obrazovky
CODE string EXTENDED MODE pak I Funkce / jiné Vrátí číslo odpovídající prvnímu znaku ve znakové saděstring počítače ; také slouží k uložení libovolné kousky paměti na pásku, disk, atd a nahrát je zpátky - viz , a podrobnosti LOADSAVEVERIFY
CONTINUE C Příkaz Restartuje program poté, co byl zastaven v důsledku chyby nebo uživatel stisknutím tlačítka CAPS SHIFT+ SPACEnebo BREAKklíče
COPY Z Příkaz Odešle aktuálně zobrazenou obrazovku do tiskárny
COS number EXTENDED MODE pak W Funkce Vrátí kosinus znumber
DATA comma-separated values EXTENDED MODE pak D Velení / jiné Poskytuje čísla nebo řetězce, které se mají použít s READpříkazem, a umožňuje uložit obsah pole na pásku, když se použije s SAVEpříkazem (jakoSAVE filename DATA array name()
DEF FN name(variable) = operation EXTENDED MODE pak 1 Příkaz Definuje vlastní funkce, které lze použít s FNpříkazem; definice funkce musí být ve formě f(x)=operations, například f(x)=x*2i název funkce nesmí skládat z více než jedno písmeno, plus $ -Symbol v případě, že funkce vrací řetězec
DIM variable(dimensions) D Příkaz Deklaruje pole se zadaným dimensions, které může být vícerozměrné (například DIM a(10,10); pokud je použito s řetězci, poslední dimenze označuje délku každého z řetězců (tedy DIM a$(2,5)je pole dvou řetězců, každý o délce pěti znaků, a DIM b$(5)je jeden řetězec pěti znaků)
DRAW x, y [, r] W Příkaz Nakreslí čáru v aktuální INKbarvě na souřadnice ( x, y) ze souřadnic použitých předchozím PLOTnebo DRAWpříkazem; pokud je volitelný rdoplněn, označuje poloměr kruhového segmentu, který má být nakreslen, v radiánech
ERASE drive;"filename" EXTENDED MODEpak SYMBOL SHIFT+7 Příkaz Odstraní zadaný soubor ze ZX Microdrive
EXP number EXTENDED MODE pak X Funkce Vrací e k sílenumber
FLASH number EXTENDED MODEpak SYMBOL SHIFT+V Velení / jiné Nastaví, aby veškerý následující text střídal barvy popředí ( INK) a pozadí ( PAPER)
FN function(value) EXTENDED MODEpak SYMBOL SHIFT+2 Funkce Volá functiondefinované dříve v programu pomocíDEF FN
FORMAT drive;"name" EXTENDED MODEpak SYMBOL SHIFT+0 Příkaz Naformátuje kazetu v označeném Microdrive a přiřadí jí identifikátorname
FOR variable = start TO end F Příkaz Spustí smyčku FOR- NEXT; název proměnné může mít pouze jeden znak
GO SUB number H Příkaz Umožní programu přeskočit na řádek BASIC určený number; když program narazí na příkaz RETURN, přeskočí zpět na příkaz poGO SUB
GO TO number G Příkaz Umožní programu přeskočit na ZÁKLADNÍ řádek specifikovaný number
IF condition THEN U Příkaz Vyhodnotí condition, a pokud je to pravda, provede příkaz, který následuje za klíčovým slovem, THENkteré musí následovat například za podmínkouIF a=1 THEN LET b=2
IN address EXTENDED MODEpak SYMBOL SHIFT+I Funkce Vrátí bajt načtený z hardwarového vstupního / výstupního portu odpovídající znakuaddress
INK number EXTENDED MODEpak SYMBOL SHIFT+X Velení / jiné Nastaví barvu popředí pro text a grafiku
INKEY$ EXTENDED MODEpak SYMBOL SHIFT+Z Funkce Vrátí řetězec představující klávesu stisknutou na klávesnici v okamžiku volání funkce, nebo prázdný řetězec, pokud žádný není, ale nečeká na stisknutí klávesy
INPUT [prompt,] variable I Příkaz Zastaví provádění programu, dokud uživatel na klávesnici něco nenapíše a nestiskne Enterklávesu, poté uloží zadanou hodnotu do zadaného variable; je-li promptdodáván volitelný doplněk , zobrazí se na obrazovce
INT number EXTENDED MODE pak R Funkce Vrátí celočíselnou hodnotu numberzaokrouhlenou dolů na nejbližší celé číslo (tedy INT -1.1vrátí −2, ne −1)
INVERSE number EXTENDED MODEpak SYMBOL SHIFT+M Velení / jiné Obrátí barvy na celý následující text, pokud numberje 1, takže použije aktuální barvu inkoustu pro pozadí a aktuální barvu papíru pro text, nebo je nastaví zpět na normální, pokud numberje 0
LEN string EXTENDED MODE pak K Funkce Vrátí počet znaků (bajtů) v string
LET variable=value L Příkaz Přiřadí valuepojmenované proměnné
LINE EXTENDED MODEpak SYMBOL SHIFT+3 jiný
  • Je-li použit v INPUTpříkazu před řetězcovou proměnnou, nebude kolem jeho výzvy například uvádět uvozovky ("")INPUT "Name: "; LINE n$
  • Při použití ve SAVEvýpisu, takže při opětovném načtení ukládaného programu BASIC se automaticky spustí od uvedeného čísla řádku
LIST [number] K Příkaz Výstup aktuálního programu BASIC na obrazovku; pokud je k dispozici nepovinný numberúdaj, vynechá všechny řádky s nižším číslem
LLIST [number] EXTENDED MODEpak SYMBOL SHIFT+V Příkaz Jako LISTkromě výpisu je výstup na tiskárně
LN number EXTENDED MODEpak SYMBOL SHIFT+Z Funkce Vrátí přirozený logaritmus znumber
LOAD "[filename]" [CODE [address[, length]]| DATA variable()] J Příkaz Načte program nebo data do paměti RAM z pásky, ZX Microdrive , disku atd. A odstraní jakýkoli existující základní program a proměnné; je-li zadán prázdný řetězec ( ""), načte se první nalezený program, jinak bude na pásce vyhledán program pojmenovaný v řetězci; je-li k dispozici volitelný doplněk CODE, načte program do paměti na adresu, kterou měl při uložení, nebo na zadanou address( lengthje zamýšleno jako bezpečnost, pokusit se načíst správný program v případě, že je na pásku s správné jméno, ale různé délky); pokud je k dispozici volitelný doplněk DATA variable(), načte data z pásky do pojmenovaného polevariable()
LPRINT text EXTENDED MODEpak SYMBOL SHIFT+C Příkaz Stejně jako PRINTvýstup je odeslán do tiskárny
MERGE "[filename]" EXTENDED MODEpak SYMBOL SHIFT+T Příkaz As LOAD, kromě toho, že neodstraní aktuální program a proměnné; pokud číslo řádku existuje v obou, přepíše číslo nově načteného programu stávající
MOVE stream1 TO stream2 EXTENDED MODEpak SYMBOL SHIFT+6 Příkaz Přesouvá data z jednoho streamu (klávesnice, obrazovka, soubor, tiskárna, síť atd.) Do druhého
NEW A Příkaz Vymaže aktuální program BASIC a všechny proměnné
NEXT variable N Příkaz Uzavře smyčku a FOR- NEXT; proměnná musí odpovídat proměnné příslušného FORpříkazu - „prázdné“ NEXTs odkazem na bezprostředně předcházející FORv programu nejsou povoleny
NOT condition SYMBOL SHIFT+S Logický operátor Vrátí true, pokud conditionje false, else vrátí false
OPEN # stream EXTENDED MODEpak SYMBOL SHIFT+4 Příkaz Otevírá stream pro čtení a zápis do
OR SYMBOL SHIFT+Y Logický operátor Vrátí true, pokud je některá z podmínek na obou stranách ORklíčového slova true, else vrátí false
OUT address, value EXTENDED MODEpak SYMBOL SHIFT+O Příkaz Odešle value( bajt ) hardwaru [Paměťově mapovaný I / O | vstupní / výstupní port] odpovídajícíaddress
OVER number EXTENDED MODEpak SYMBOL SHIFT+N Velení / jiné Provede následující textový přetisk pomocí operace XOR, co je již na obrazovce, pokud numberje 1, místo jeho mazání, nebo smaže, pokud numberje 0
PAPER number EXTENDED MODEpak SYMBOL SHIFT+C Velení / jiné Nastaví barvu pozadí pro text a grafiku
PAUSE delay M Příkaz Zastaví provádění programu na zadané zpoždění, za sekundu v Evropě nebo v Severní Americe ( zastaví se tedy na jednu sekundu v Evropě) PAUSE 50
PEEK address EXTENDED MODE pak O Funkce Vrátí bajt představující obsah umístění paměti, na který ukazuje address
PI EXTENDED MODE pak M Funkce Vrátí hodnotu
PLOT x, y Q Příkaz Nakreslí pixel v aktuální INKbarvě na obrazovku na souřadnice ( x, y)
POINT (x,y) EXTENDED MODEpak SYMBOL SHIFT+8 Funkce Vrátí 1, pokud je pixel namířený na grafické souřadnice ( x, y) aktuálně v barvě inkoustu (popředí), jinak vrátí 0
POKE address, value O Příkaz Nastaví obsah addresspaměti RAM navalue
PRINT [AT x,y;] text P Příkaz Vytiskne text(což musí být řetězec nebo číslo) na obrazovku; pokud se použije s AT, vytiskne se na zadaných souřadnicích textu, jinak v prvním sloupci řádku po řádku použitém posledním PRINTpříkazem
RANDOMIZE [number] T Příkaz Inicializuje generátor náhodných čísel ; pokud se použije bez number(nebo s 0), provede to na základě interních hodin počítače, jinak použije numberdodané, které musí být v rozsahu [1 65535]
READ variable EXTENDED MODE pak A Příkaz Vezme hodnotu z DATApříkazu a uloží ji do pojmenovaného variable: při prvním READpoužití se získá první hodnota za první DATA, podruhé se získá další atd.
REM text E Příkaz Začíná komentář ve zdrojovém kódu, což znamená, že vše po REMpříkazu je ignorováno, až do konce řádku - všimněte si, že to zahrnuje vše za dvojtečkou, která normálně začíná nový segment: 10 REM Nothing to see here : PRINT "Unprintable"nebude produkovat žádný výstup, například
RESTORE [number] EXTENDED MODE pak S Příkaz Resetuje, kde READpříkazy hledají hodnoty v DATApříkazech: pokud se použije bez čísla, další READpoužije první DATAv programu, s číslem použije první DATAna nebo za řádkem, jehož číslo je uvedeno
RETURN Y Příkaz Vrátí provedení k prvnímu příkazu následujícímu za posledním provedeným GO SUBpříkazem
RND EXTENDED MODE pak T Funkce Vrátí pseudonáhodné číslo s osmi platnými číslicemi v rozsahu [0,1)
RUN [number] R Příkaz Spustí aktuální program BASIC, z jeho prvního řádku, pokud není numberzadán, jinak z řádku s tímto číslem (nebo prvního za ním, pokud neexistuje)
SAVE "filename" [DATA variable() | LINE number] S Příkaz Uloží aktuální program BASIC na pásku nebo jiné úložné zařízení se filenamezadaným; pokud se použije volitelná LINEpoložka, za kterou následuje číslo řádku, program se automaticky spustí od uvedeného čísla řádku, když je LOADznovu zadán; s volitelným DATApříkazem uloží obsah pole pojmenovaného proměnnou namísto aktuálního programu BASIC
SCREEN$ [(line, column)] EXTENDED MODEpak SYMBOL SHIFT+ Funkce / jiné Jako funkce identifikuje znak na zadaném řádku a sloupci na obrazovce. Použito za názvem souboru v příkazu LOADnebo SAVE, znamená, že by měl být načten nebo uložen obsah paměti displeje ; to v podstatě z něj dělá zkratku, CODE 16384,6912ale nefunguje s ním, VERIFYprotože obsah paměti displeje se bude lišit v době, kdy příkaz přečte uložená data;
SGN number EXTENDED MODE pak F Funkce Vrátí 1, pokud numberje kladné, 0, pokud je 0, a -1, pokud je záporné
SIN number EXTENDED MODE pak Q Funkce Vrací sinus nanumber
STEP number SYMBOL SHIFT+D jiný Označuje interval používaný FORpříkazem, například FOR n=2 TO 6 STEP 2přeskočí n=3a n=5ve smyčce
STOP SYMBOL SHIFT+A Příkaz Ukončí provádění aktuálního programu a opustí editor BASIC; lze jej také zadat, když počítač čeká na zadání pomocí INPUTpříkazu; jakmile je program zastaven, lze jej obnovit pomocíCONTINUE
SQR number EXTENDED MODE pak H Funkce Vrátí druhou odmocninu znumber
STR$ number EXTENDED MODE pak Y Funkce Vrátí znak ze znakové sady počítače odpovídajícínumber
TAB column EXTENDED MODE pak P jiný V PRINTpříkazu zajistí, že text, který má být výstup, začíná v zadaném sloupci, podle potřeby se zalomí na další řádek, ale nikdy více než jeden řádek
TAN number EXTENDED MODE pak E Funkce Vrací tangentu znumber
THEN statement SYMBOL SHIFT+G jiný Sleduje podmínku ve IFvýpisu a označuje, co by se mělo stát, když se podmínka vyhodnotí jako true
TO SYMBOL SHIFT+F jiný Označuje rozsah od čísla vlevo od TOdo čísla vpravo od něj, včetně; při použití s FORoběma čísly musí být dodány, zatímco pokud je použito k rozřezání řetězců, může být buď vynecháno, aby označilo začátek nebo konec řetězce
USR string or address EXTENDED MODE pak L Funkce Při volání s jednoznakovým řetězcem to vrátí adresu paměti, na které je definován glyf pro uživatelem definovaný grafický znak odpovídající tomuto znaku. Pokud je volán s adresou, spustí spuštění strojového kódu na této adrese (čímž se stane jednou z mála funkcí Sinclair BASIC, která má vedlejší efekt ) a vrátí obsah dvojice registrů BC Z80 .
VAL string EXTENDED MODE pak J Funkce Vyhodnotí stringjako číslo a vrátí výsledek; to může provádět výpočty: VAL "1+2"vrátí například 3 a také vyhodnotí proměnné a dokonce i další VALpříkazy: LET a=1: VAL "a+VAL ""2"""vrátí také 3
VAL$ string EXTENDED MODEpak SYMBOL SHIFT+J Funkce Podobně jako, VALale vyhodnotí řetězec jako řetězec
VERIFY "[filename]" EXTENDED MODEpak SYMBOL SHIFT+R Příkaz Přečte program z pásky nebo jiného úložiště, podobně LOAD, ale místo načtení do paměti jej porovná s programem, který je aktuálně v paměti; to má zajistit, aby byl program SAVEsprávně d
ZX Spectrum
ZX Spectrum +

Zadání klíčového slova

V modelech 48K a starších se klíčová slova zadávají prostřednictvím jedinečného systému zadávání klíčových slov společnosti Sinclair, jak je uvedeno v tabulce. Nejběžnější příkazy potřebují pouze jeden stisk klávesy; například stisknutí pouze Pna začátku řádku na spektru vytvoří úplný příkaz PRINT. Méně časté příkazy vyžadují složitější sekvence kláves: BEEP(například) se zadává stisknutím klávesy CAPS SHIFTplus SYMBOL SHIFTpro přístup do rozšířeného režimu (novější modely obsahují EXTENDED MODEklávesu), podržením SYMBOL SHIFTa stisknutím Z. Klíčová slova jsou barevně odlišena na původní klávesnici Spectrum a označují požadovaný režim:

  • Bílá : pouze klíč
  • Červená na samotném klíči: SYMBOL SHIFTplus klíč
  • Zelená nad klíčem: EXTENDED MODEnásledovaná klíčem
  • Červená pod klávesou: EXTENDED MODEnásledovaná SYMBOL SHIFTklávesou plus

ZX81 8K BASIC použít kratší formy GOTO, GOSUB, CONTa RAND, vzhledem k tomu, Spectrum použít delších forem GO TO, GO SUB, CONTINUEa RANDOMIZE. ZX80 4K BASIC také používal tyto delší formy, ale lišil se použitím pravopisu RANDOMISE. ZX81 8K BASIC byl jediný verzi použít FAST, SCROLL, SLOWa UNPLOT. ZX80 4K BASIC měl exkluzivní funkci TL$(); to bylo ekvivalentní operátoru řetězce (2 TO )v pozdějších verzích.

Jedinečný kód body jsou přidělovány na znakové sadě ZX80 , znakovou sadu ZX81 a znakové sady ZX Spectrum pro každé klíčové slovo nebo provozovatele multi-charakter, tj <=, >=, <>, ""(tokenized pouze na ZX81), **(nahrazena na Spectrum). Ty jsou rozšířeny odkazem na tabulku tokenů v ROM. Klíčové slovo tedy používá pouze jeden bajt paměti, což je významná úspora oproti tradičnímu ukládání po písmenech. To také znamenalo, že interpret BASIC mohl rychle určit jakýkoli příkaz nebo funkci vyhodnocením jednoho bajtu a že klíčová slova nemusí být vyhrazená slova jako v jiných dialektech BASIC nebo jiných programovacích jazycích, např. Je povoleno definovat proměnnou s názvem PRINTa výstupem jeho hodnota s PRINT PRINT. Souvisí to také s požadavkem na syntaxi, že každý řádek začíná klíčovým slovem příkazu a stisknutím klávesy one pro daný příkaz na začátku řádku se editor přepne z režimu příkazů do režimu písmen. Přiřazení proměnných LETtedy vyžaduje (tj. Nejen ). Tato praxe se také liší od ostatních základních dialektů. Dále to znamenalo, že na rozdíl od jiných základních dialektů nepotřeboval tlumočník k identifikaci funkcí žádné závorky; bylo dostatečné, nebylo potřeba (i když to bylo povoleno). 4K BASIC ROM z ZX80 měl krátký seznam výjimek z tohoto: funkcí , , , , , , a neměl jeden bajt žetony, ale byly zadány v dopise-by-dopisu a požadované závorky. Byly uvedeny jako INTEGRÁLNÍ FUNKCE na štítku nahoře a napravo od klávesnice. LET a=1a=1SIN xSIN(x)CHR$()STR$()TL$()PEEK()CODE()RND()USR()ABS()

Modely 128K Spectrum, ZX Spectrum 128, +2, +3, + 2A a + 2B, také ukládaly klíčová slova interně do jednobajtových kódových bodů, ale používaly konvenční vstupní systém BASIC po písmenech. Představili také dva nové příkazy:

  • PLAY, který provozoval hudební čip General Instrument AY-3-8910 modelů 128k
  • SPECTRUM, který přepnul 128k Spectrum do režimu kompatibility 48k Spectrum

Původní španělský ZX Spectrum 128 obsahoval čtyři další příkazy ve španělštině, z nichž jeden nebyl dokumentován. Lze je přeložit jako:

  • EDIT (upravit číslo řádku nebo vyvolat editor řetězců na celé obrazovce)
  • RENUM (k přečíslování programových řádků)
  • DELETE (smazat řádky programu)
  • WIDTH (pro nastavení šířky sloupce zařízení RS232, ale nezdokumentováno, protože kód byl porušen)

Na rozdíl od LEFT$(), MID$()a RIGHT$()funkcích používaných v všudypřítomných Microsoft BASIC dialektů pro domácí počítače, části řetězce v Sinclair BASIC jsou přístupné pomocí číselné řady. Například a$(5 TO 10)dává podřetězec začínající 5. a končící 10. znakem proměnné a$. Tak je možno nahradit LEFT$()i RIGHT$()příkazy jednoduchým vynecháním levé nebo pravé polohy pole v uvedeném pořadí; například a$( TO 5)je ekvivalentní s LEFT$(a$,5). Dále a$(5)stačí vyměnit MID$(a$,5,1).

Názvy proměnných

Proměnné obsahující číselné hodnoty mohou mít libovolnou délku, zatímco názvy proměnných řetězců a matic musí obsahovat pouze jeden abecední znak. Tedy , , , a jsou dobré, zatímco , a nejsou. LET a=5LET Apples=5LET a$="Hello"DIM a(10)DIM a$(10)LET Apples$="Fruit"DIM Apples(10)DIM Apples$(10)

Dlouhé názvy proměnných povolené pro číselné proměnné mohou obsahovat alfanumerické znaky za prvním znakem, takže je povoleno, ale nikoli . Dlouhé názvy proměnných mohou také obsahovat mezery, které jsou ignorovány, takže jsou stejné jakoLET a0=5LET 0a=5LET number of apples = 5LET numberofapples = 5

Oficiální verze

  • 4K BASIC je původní ZX80 BASIC s celočíselnou aritmetikou od Johna Granta z Nine Tiles pro ZX80, pojmenovaný pro bydlení ve 4  KiB paměti jen pro čtení (ROM).
  • 8K BASIC je ZX81 BASIC (k dispozici také jako upgrade pro ZX80), aktualizovaný aritmetikou s plovoucí desetinnou čárkou od Steva Vickerse , tak pojmenovaného pro bydlení v 8 KiB ROM.
  • 48 BASIC je ZÁKLAD pro původní 16/48 kB paměti ZX Spectrum (a klony) s náhodným přístupem (RAM), s barevnými a dalšími periferiemi, které přidali Steve Vickers a John Grant. Je umístěno v 16 KiB ROM a začalo se mu říkat 48 BASIC zavedením ZX Spectrum 128, kdy se 16 kB Spectrum již neprodávalo a většina stávajících používaných byla upgradována na 48 kB
  • 128 BASIC je ZÁKLADNÍ pro ZX Spectrum 128. Nabízí další příkazy a používá zadávání písmen po písmenech.
  • +3 BASIC je BASIC s podporou disku pro ZX Spectrum +3.
  • T / S 2000 BASIC byl použit na Spectrum kompatibilní Timex Sinclair 2068 (TS2068) a má následujících šest klíčových slov a běžná klíčová slova Sinclair BASIC:
    • DELETEodstraní ZÁKLADNÍ rozsahy programových řádků. CAPS SHIFT+ 0s Kkurzorem vytvoří příkaz DELETE.
    • FREEje funkce, která udává množství volné paměti RAM. PRINT FREEukáže, kolik RAM je volné.
    • ON ERRje funkce pro zpracování chyb, která se většinou používá jako ON ERR GO TOnebo ON ERR CONT.
    • RESETlze použít k resetování chování ON ERR. Rovněž bylo zamýšleno resetovat periferie.
    • SOUND ovládá zvukový čip AY-3-8192.
    • STICK je funkce, která udává polohu vnitřního joysticku (Timex Sinclair 2090).
  • BASIC64 od společnosti Timex z Portugalska je softwarové rozšíření umožňující lepší základní programování s grafickým režimem 512 × 192 dostupným pouze na počítačích řady Timex 2000 . Toto rozšíření přidává příkazy a provádí úplné přemapování paměti, aby se zabránilo přepsání oblasti paměti rozšířené obrazovky systémem. Dvě verze existují kvůli různým mapám paměti - verze pro TC2048 a verze pro TS / TC2068 .

Další verze, rozšíření, deriváty a nástupci

Tlumočníci pro rodinu ZX Spectrum

Existuje několik tlumočníků ZX Spectrum.

Překladače pro rodinu ZX Spectrum

Existuje několik kompilátorů ZX Spectrum.

  • HiSoft COLT Compiler (aka HiSoft COLT Integer Compiler)
  • HiSoft BASIC (aka HiSoft BASIC Compiler), kompilátor s integer a plovoucí desetinnou čárkou
  • Laserový kompilátor
  • Softek 'IS' Integer Compiler (nástupce Softek Integer Compiler)
  • Softek 'FP' Full Compiler
  • Překladač ZIP

Deriváty a nástupce pro jiné počítače

  • SuperBASIC , mnohem pokročilejší dialekt BASIC představený sosobním počítačem Sinclair QL , s některými podobnostmi s předchozími Sinclair BASIC
  • SAM Basic , BASIC na SAM Coupé , obecně považován za klon ZX Spectrum
  • ROMU6 od Cesara a Juana Hernándeze - MSX
  • Spectrum 48 od Whitby Computers - Commodore 64
  • Sparky eSinclair BASIC od Richarda Kelsha, operační systém volně založený na ZX Spectrum BASIC - Zilog eZ80
  • Sinbas od Pavla Napravnika - DOS
  • Základní (a CheckBasic) od Philipa Kendalla - Unix
  • BINSIC od Adriana McMenamina, reimplementace v Groovy úzce modelovaná na ZX81 BASIC - Java
  • BASin Paul Dunn, kompletní integrované vývojové prostředí (IDE) Sinclair BASIC založené na emulátoru ZX Spectrum - Windows
  • SpecBAS (aka SpecOS) od Paula Dunna, integrovaného vývojového prostředí (IDE) poskytujícího vylepšenou nadmnožinu Sinclair BASIC - Windows , Linux , Pandora a Raspberry Pi
  • ZX-Basicus od Juan-Antonia Fernándeze-Madrigala, syntetizátor, analyzátor, optimalizátor, tlumočník a debugger Sinclair BASIC 48K pro PC, volně ke stažení pro Linux a Windows .

Viz také

Poznámky

Reference

Bibliografie

  • Ardley, Neil (1984). Uživatelská příručka pro Sinclair ZX Spectrum + . Dorling Kindersley ve spolupráci s Sinclair Research. ISBN 0-86318-080-9.
  • Vickers, Steven (1982). ZÁKLADNÍ programování Sinclair ZX Spectrum . Sinclairův výzkum.
  • Vickers, Steven (1983). ZÁKLADNÍ programování Sinclair ZX Spectrum (2. vyd.). Sinclairův výzkum.
  • Cambridge Communication (1983). Manuál Sinclair ZX Spectrum Microdrive and Interface 1 . Sinclairův výzkum.

externí odkazy