Sinclair BASIC - Sinclair BASIC
Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Paradigma | Rozkazovací způsob |
---|---|
Navrhl | John Grant, Steve Vickers |
Vývojář | Sítě devíti dlaždic, Sinclairův výzkum |
Poprvé se objevil | 1979 |
Plošina | ZX80, ZX81, ZX Spectrum |
Licence | Proprietární |
Sinclair BASIC je dialekt programovacího jazyka ZÁKLADNÍ použitý v 8-bit domácí počítače z Sinclairův výzkum a Timex Sinclair. Sinclair BASIC tlumočník byla vyrobena společností Nine Tiles Networks Ltd.[1]
Dějiny
Sinclair BASIC byl původně vyvinut v roce 1979 pro ZX80 podle Nine Tiles. Programátory byli John Grant, majitel společnosti Nine Tiles, a Steve Vickers.
Původně šlo o neúplnou implementaci z roku 1978 Americký národní normalizační institut (ANSI) minimální BASIC standard pouze s celočíselnou aritmetikou, označovaný jako 4K BASIC (pro jeho velikost ROM) pro ZX80. Vyvinul se s plovoucí desetinnou čárkou 8K BASIC pro ZX81 a TS1000 (který byl také k dispozici jako upgrade pro ZX80[2]), 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ým a často replikovaným příkladem je Kernighan a Ritchie je Program Hello world:
10TISK"Ahoj světe!"
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[poznámka 1] | Zadáno pomocí[poznámka 2] | Typ | souhrn |
---|---|---|---|---|
břišní svaly | číslo | ROZŠÍŘENÝ REŽIM pak G | Funkce | Vrátí absolutní hodnota z číslo [3] |
ACS | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+Ž | Funkce | Vrátí arckosin z číslo [4] |
A | SYMBOLOVÝ POSUN+Y | Logický operátor | Vrátí true, pokud obě podmínky na obou stranách A klíčové slovo je true, jinak vrátí false[Poznámka 3][5] | |
ASN | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+Q | Funkce | Vrátí arcsine z číslo [6] |
NA | řádek, sloupec; | SYMBOLOVÝ POSUN+Já | jiný | Používá se v TISK výpis k tisku na zadaném řádku a sloupci;[7] například, TISK V 5,10; "*" umístí hvězdu do sloupce 10 řádku 5. |
ATN | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+E | Funkce | Vrátí arkustangens z číslo [4] |
ATTR | (řádek, sloupec) | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+L | Funkce | Vrátí a byte obsahující informace o barvách textové buňky na obrazovce, odpovídající zadané čára a sloupec ; 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í[8] |
PÍPNUTÍ | doba trvání, výška tónu | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+Z | Příkaz | Produkuje zvuk z reproduktoru počítače; doba trvání je v sekundách, výška tónu je v půltóny nad (kladná hodnota) nebo pod (záporná hodnota) střední C.[9] |
ZÁSOBNÍK | číslo | ROZŠÍŘENÝ REŽIM pak B | jiný | Označuje číslo je v binární notace[10] |
OKRAJ | číslo | B | Příkaz | Nastaví vnější ohraničení obrazovky na barvu určenou pomocí číslo [poznámka 4][11] |
JASNÝ | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+B | Velení / jiné | Zesvětlí všechny následující barvy, pokud číslo je 1 nebo jeho normální odstín, pokud je 0[poznámka 5][12] |
KOČKA | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+9 | Příkaz | Zobrazuje obsah ZX Microdrive specifikováno číslo [poznámka 6][13] |
CHR $ | číslo | ROZŠÍŘENÝ REŽIM pak Ž | Funkce | Vrátí znak odpovídající desetinnému místu číslo v počítači znaková sada[14] |
KRUH | x, y, r | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+H | Příkaz | Nakreslí kruh se středem na souřadnice (X ,y ) a poloměr r [15] |
PRŮHLEDNÁ | adresa | X | Příkaz | Vymaže obrazovku,[16] všechny proměnné a GO SUB zásobník,[17] a volitelně nastavuje maximální adresu RAM, kterou má BASIC použít[18] |
ZAVŘÍT # | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+5 | Příkaz | Zavře zadané číslo streamu pro přístup[poznámka 6] |
CLS | PROTI | Příkaz | Vymaže veškerý text a grafiku z obrazovky[16] | |
KÓD | tětiva | ROZŠÍŘENÝ REŽIM pak Já | Funkce / jiné | Vrátí číslo odpovídající prvnímu znaku v tětiva v počítači znaková sada;[14] také se používá k ukládání paměti libovolných bloků na pásku, disk atd. a jejich opětovnému načtení - viz ZATÍŽENÍ , ULOŽIT a OVĚŘTE pro detaily |
POKRAČOVAT | C | Příkaz | Restartuje program po jeho zastavení z důvodu chyby nebo stisknutí klávesy CAPS SHIFT+PROSTOR nebo PŘESTÁVKA klíče[19] | |
KOPÍROVAT | Z | Příkaz | Odešle aktuálně zobrazenou obrazovku do tiskárny[20] | |
COS | číslo | ROZŠÍŘENÝ REŽIM pak Ž | Funkce | Vrátí kosinus z číslo [21] |
DATA | hodnoty oddělené čárkami | ROZŠÍŘENÝ REŽIM pak D | Velení / jiné | Poskytuje čísla nebo řetězce, které lze použít s ČÍST příkaz[22] a umožňuje ukládání obsahu pole na pásku, když se používá s ULOŽIT příkaz[23] (tak jako ULOŽIT název souboru DATA název pole () |
DEF FN | name (variable) = operation | ROZŠÍŘENÝ REŽIM pak 1 | Příkaz | Definuje vlastní funkci, kterou lze použít s FN příkaz; definice funkcí musí mít formu f (x) = operace , například f (x) = x * 2 a název funkce se nemusí skládat z více než jednoho písmena plus symbol $, pokud funkce vrací řetězec[24] |
ZTLUMIT | variabilní (rozměry) | D | Příkaz | Deklaruje pole se zadaným rozměry , které mohou být vícerozměrné (například DIM a (10,10) ; pokud je použit 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ů)[25] |
KRESLIT | x, y [, r] | Ž | Příkaz | Nakreslí čáru v proudu INKOUST barva na souřadnice (X ,y ) ze souřadnic použitých předchozími SPIKNUTÍ nebo KRESLIT příkaz; pokud je volitelný r je dodáván, označuje poloměr kruhového segmentu, který má být nakreslen, v radiány[26] |
VYMAZAT | jednotka; „název souboru“ | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+7 | Příkaz | Odstraní zadaný soubor z a ZX Microdrive[poznámka 6][27] |
EXP | číslo | ROZŠÍŘENÝ REŽIM pak X | Funkce | Vrací se E k moci číslo [28] |
BLIKAT | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+PROTI | Velení / jiné | Nastaví veškerý následující text tak, aby střídal jeho popředí (INKOUST ) a pozadí (PAPÍR ) barvy[poznámka 5] |
FN | funkce (hodnota) | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+2 | Funkce | Žádá funkce definované dříve v programu pomocí DEF FN [24] |
FORMÁT | jednotka; „jméno“ | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+0 | Příkaz | Naformátuje kazetu v označeném Microdrive a přiřadí mu identifikátor název [poznámka 6][29] |
PRO | variable = start TO end | F | Příkaz | Začíná a PRO -DALŠÍ smyčka;[30] název proměnné může mít pouze jeden znak[31] |
GO SUB | číslo | H | Příkaz | Umožní programu přeskočit na ZÁKLADNÍ řádek specifikovaný číslo ; když program narazí na příkaz VRÁTIT SE , přeskočí zpět na příkaz po GO SUB [32] |
JÍT DO | číslo | G | Příkaz | Umožní programu přeskočit na ZÁKLADNÍ řádek specifikovaný číslo |
LI | podmínka POTOM | U | Příkaz | Vyhodnocuje stav , a pokud má hodnotu true, provede příkaz, který následuje za klíčovým slovem PAK to musí přijít po stavu,[33] například KDY a = 1 PAK NECHTE b = 2 [poznámka 7] |
V | adresa | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+Já | Funkce | Vrátí a byte číst z hardwaru vstupní / výstupní port odpovídající adresa [34] |
INKOUST | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+X | Velení / jiné | Nastaví barvu popředí pro text a grafiku[poznámka 4][poznámka 5][35] |
INKEY $ |
| ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+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í,[36] ale nečeká na stisknutí klávesy |
VSTUP | proměnná [prompt,] | Já | Příkaz | Zastaví provádění programu, dokud uživatel něco na klávesnici nezadá a nestiskne Enter klíč, poté uloží zadanou hodnotu do zadaného proměnná ; pokud je volitelný výzva je dodáván, zobrazí se na obrazovce[37] |
INT | číslo | ROZŠÍŘENÝ REŽIM pak R | Funkce | Vrátí celé číslo hodnota číslo , zaokrouhleno dolů na nejbližší celé číslo[3] (tím pádem, INT -1.1 vrátí −2, ne −1) |
INVERZNÍ | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+M | Velení / jiné | Obrátí barvy na celý následující text, pokud číslo je 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 číslo je 0[poznámka 5][38] |
LEN | tětiva | ROZŠÍŘENÝ REŽIM pak K. | Funkce | Vrátí počet znaků (bajtů) v tětiva [39] |
NECHAT | proměnná = hodnota | L | Příkaz | Přiřazuje hodnota k pojmenované proměnné[40] |
ČÁRA |
| ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+3 | jiný | |
SEZNAM | [číslo] | K. | Příkaz | Výstup aktuálního programu BASIC na obrazovku; pokud je volitelný číslo je k dispozici, vynechá všechny řádky s nižším číslem[42] |
SEZNAM | [číslo] | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+PROTI | Příkaz | Tak jako SEZNAM kromě výpisu je výstup na tiskárnu[20] |
LN | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+Z | Funkce | Vrátí přirozený logaritmus z číslo [43] |
ZATÍŽENÍ | "[název souboru]" [KÓD [adresa [, délka]] | | Proměnná DATA ()] | J | Příkaz | Načte program nebo data do RAM z pásky, ZX Microdrive, disk atd., odstranění existujícího programu BASIC a proměnných;[37] pokud je prázdný řetězec ("" ) je k dispozici, načte první nalezený program, jinak prohledá na pásce program pojmenovaný v řetězci; pokud je volitelný KÓD je k dispozici, načte program do paměti na adresu, kterou měl při uložení, nebo na zadanou adresa (délka je zamýšleno jako bezpečnost, aby se pokusil načíst správný program v případě, že je na kazetě více se správným názvem, ale různé délky);[44] pokud je volitelný Proměnná DATA () je k dispozici, načte data z pásky do pojmenovaného pole proměnná () [23] |
LPRINT | text | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+C | Příkaz | Tak jako TISK kromě výstupu je odeslán do tiskárny[20] |
SPOJIT | "[název souboru]" | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+T | Příkaz | Tak jako ZATÍŽENÍ 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í[45] |
HÝBAT SE | stream1 TO stream2 | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+6 | Příkaz | Přesouvá data z jednoho streamu (klávesnice, obrazovka, soubor, tiskárna, síť atd.) Do druhého[poznámka 6][46] |
NOVÝ | A | Příkaz | Vymaže aktuální program BASIC a všechny proměnné[37] | |
DALŠÍ | proměnná | N | Příkaz | Zavírá a PRO -DALŠÍ smyčka; proměnná se musí shodovat s proměnnou odpovídající PRO příkaz[47] - „prázdný“ DALŠÍ s odkazovat na bezprostředně předcházející PRO v programu nejsou povoleny |
NE | stav | SYMBOLOVÝ POSUN+S | Logický operátor | Vrátí hodnotu true, pokud stav je false, jinak vrátí false[Poznámka 3][5] |
OTEVŘENO # | proud | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+4 | Příkaz | Otevírá stream pro čtení a / nebo zápis do[poznámka 6][48] |
NEBO | SYMBOLOVÝ POSUN+Y | Logický operátor | Vrátí true, pokud některá z podmínek na obou stranách NEBO klíčové slovo je true, jinak vrátí false[Poznámka 3][5] | |
VEN | adresa, hodnota | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+Ó | Příkaz | Odesílá hodnota (A byte ) na hardware [paměťově mapovaný I / O | vstupní / výstupní port] odpovídající adresa [34] |
PŘES | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+N | Velení / jiné | Provede přetisk následujícího textu pomocí operace XOR, co je již na obrazovce, pokud číslo je 1, místo mazání, nebo mazání, pokud číslo je 0[poznámka 5][38] |
PAPÍR | číslo | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+C | Velení / jiné | Nastaví barvu pozadí pro text a grafiku[poznámka 4][poznámka 5][35] |
PAUZA | zpoždění | M | Příkaz | Zastaví provádění programu pro zadané zpoždění v vteřiny v Evropě nebo v Severní Americe[49] (tím pádem, PAUZA 50 zastaví v Evropě na jednu sekundu) |
PEEK | adresa | ROZŠÍŘENÝ REŽIM pak Ó | Funkce | Vrátí bajt představující obsah umístění paměti, na který ukazuje adresa [50] |
PI |
| ROZŠÍŘENÝ REŽIM pak M | Funkce | Vrátí hodnotu pi[43] |
SPIKNUTÍ | x, y | Q | Příkaz | Nakreslí v aktuálním pixelu INKOUST barva na obrazovce v souřadnicích (X ,y )[51] |
SMĚŘOVAT | (x, y) | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+8 | Funkce | Vrátí 1, pokud pixel ukázal na grafické souřadnice (X ,y ) je aktuálně v barvě inkoustu (popředí), jinak vrátí 0[15] |
STRČIT | adresa, hodnota | Ó | Příkaz | Nastaví obsah adresa v RAM do hodnota [52] |
TISK | Text [AT x, y;] | P | Příkaz | Tiskne text (což musí být řetězec nebo číslo) na obrazovku;[40] pokud se používá s NA , vytiskne se na zadaných souřadnicích textu, jinak v prvním sloupci řádku za posledním použitým TISK prohlášení[7] |
NÁHODNĚ | [číslo] | T | Příkaz | Inicializuje generátor náhodných čísel; pokud se používá bez a číslo (nebo s 0) to dělá na základě interních hodin počítače, jinak používá číslo dodáváno, které musí být v rozsahu [1 65535][53] |
ČÍST | proměnná | ROZŠÍŘENÝ REŽIM pak A | Příkaz | Převezme hodnotu z a DATA výpis a uloží jej do pojmenovaného proměnná : Poprvé ČÍST je použito, získá první hodnotu za první DATA , podruhé dostane další a tak dále[22] |
REM | text | E | Příkaz | Začíná komentář ve zdrojovém kódu, což znamená, že vše po REM příkaz je ignorován, až do konce řádku[37] - toto zahrnuje vše za dvojtečkou, která obvykle začíná nový segment: 10 REM Nic zde není k vidění: TISK „Netisknutelné“ například nebude produkovat žádný výstup |
OBNOVIT | [číslo] | ROZŠÍŘENÝ REŽIM pak S | Příkaz | Resetuje kde ČÍST příkazy hledají hodnoty v DATA prohlášení: pokud je použito bez čísla, další ČÍST použije první DATA v programu s číslem použije první DATA na nebo za řádkem, jehož číslo je uvedeno[54] |
VRÁTIT SE | Y | Příkaz | Vrátí provedení na první příkaz následující po posledním GO SUB příkaz, který byl proveden[32] | |
RND |
| ROZŠÍŘENÝ REŽIM pak T | Funkce | Vrátí pseudonáhodné číslo s osmi významné postavy v rozsahu [0,1)[55] |
BĚH | [číslo] | R | Příkaz | Spustí aktuální program BASIC od jeho prvního řádku, pokud ne číslo je zadáno, jinak z řádku s tímto číslem (nebo prvního za ním, pokud neexistuje)[56] |
ULOŽIT | Číslo řádku] | S | Příkaz | Uloží aktuální program BASIC na pásku nebo jiné úložné zařízení pomocí název souboru specifikováno; pokud je volitelný ČÁRA následuje číslo řádku, program se automaticky spustí od uvedeného čísla řádku, pokud je ZATÍŽENÍ ed zpět; s volitelným DATA , příkaz uloží obsah pole pojmenovaného proměnnou namísto aktuálního programu BASIC[23] |
OBRAZOVKA $ | [(řádek, sloupec)] | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+ | Funkce / jiné | Jako funkce identifikuje znak na zadaném řádku a sloupci na obrazovce.[7] Používá se za názvem souboru v a ZATÍŽENÍ nebo ULOŽIT příkaz označuje, že obsah souboru zobrazit paměť by měl být načten nebo uložen; to v podstatě z něj dělá zkratku KÓD 16384 6912 [poznámka 8] ale nefunguje s OVĚŘTE protože obsah paměti displeje se bude lišit v době, kdy příkaz přečte uložená data;[57] |
SGN | číslo | ROZŠÍŘENÝ REŽIM pak F | Funkce | Vrátí 1, pokud číslo je kladné, 0, pokud je 0, a −1, pokud je záporné[3] |
HŘÍCH | číslo | ROZŠÍŘENÝ REŽIM pak Q | Funkce | Vrátí sinus z číslo [21] |
KROK | číslo | SYMBOLOVÝ POSUN+D | jiný | Označuje interval používaný a PRO prohlášení,[31] například PRO N = 2 AŽ 6 KROK 2 přeskočí n = 3 a n = 5 ve smyčce |
STOP | SYMBOLOVÝ POSUN+A | Příkaz | Ukončí provádění aktuálního programu a opustí editor BASIC; lze také zadat, když počítač čeká na vstup pomocí VSTUP příkaz;[56] jakmile je program zastaven, lze jej obnovit pomocí POKRAČOVAT | |
SQR | číslo | ROZŠÍŘENÝ REŽIM pak H | Funkce | Vrátí odmocnina z číslo [24] |
STR $ | číslo | ROZŠÍŘENÝ REŽIM pak Y | Funkce | Vrátí znak z znaková sada počítače souhlasí s číslo [58] |
TAB | sloupec | ROZŠÍŘENÝ REŽIM pak P | jiný | V TISK příkaz zajistí, že text, který má být výstup, začíná ve specifikovaném sloupci, podle potřeby se zalomí na další řádek, ale nikdy více než jeden řádek[16] |
OPÁLENÍ | číslo | ROZŠÍŘENÝ REŽIM pak E | Funkce | Vrátí tečna z číslo [59] |
PAK | prohlášení | SYMBOLOVÝ POSUN+G | jiný | Sleduje stav v LI příkaz označující, co by se mělo stát, když se podmínka vyhodnotí jako pravdivá[poznámka 7][33] |
NA |
| SYMBOLOVÝ POSUN+F | jiný | Označuje rozsah od čísla nalevo od NA na číslo jeho práva včetně;[60] při použití s PRO musí být zadána obě čísla, zatímco pokud se použijí k rozřezání řetězců, může být buď označeno jako začátek nebo konec řetězce |
USR | řetězec nebo adresa | ROZŠÍŘENÝ REŽIM pak L | Funkce | Při volání s jednoznakovým řetězcem vrátí adresu paměti, na které glyf pro uživatelem definovaný grafický znak odpovídající tomuto znaku je definován.[10] Pokud je volán s adresou, spustí se strojový kód provádění na této adrese (čímž se stává jednou z mála základních funkcí Sinclair BASIC, které mají Vedlejší účinek ) a vrátí obsah souboru Z80 BC Registrovat pár.[61] |
VAL | tětiva | ROZŠÍŘENÝ REŽIM pak J | Funkce | Vyhodnocuje tětiva jako číslo a vrátí výsledek;[62] lze provádět výpočty: VAL „1 + 2“ vrátí například 3 a také vyhodnotí proměnné a dokonce i další VAL prohlášení: LET a = 1: VAL "a + VAL" "2" "" [poznámka 9] také vrací 3 |
VAL $ | tětiva | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+J | Funkce | Podobný VAL ale vyhodnotí řetězec jako řetězec[3] |
OVĚŘTE | "[název souboru]" | ROZŠÍŘENÝ REŽIM pak SYMBOLOVÝ POSUN+R | Příkaz | Přečte program z pásky nebo jiného úložiště, podobně ZATÍŽENÍ , ale místo načtení do paměti jej porovná s programem, který je aktuálně v paměti; toto má zajistit, aby program byl ULOŽIT d správně[63] |
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 pouze stisknutí P na začátku řádku na Spectrum vytvoří plný příkaz TISK
. Méně časté příkazy vyžadují složitější sekvence kláves: PÍPNUTÍ
(například) se zadává stisknutím CAPS SHIFT Plus SYMBOLOVÝ POSUN pro přístup do rozšířeného režimu (novější modely obsahují ROZŠÍŘENÝ REŽIM klíč), uchování SYMBOLOVÝ POSUN podržel a stiskl Z. Klíčová slova jsou barevně odlišena na původní klávesnici Spectrum, aby bylo možné určit, který režim je vyžadován:[64]
- Bílý: pouze klíč
- Červené na samotném klíči: SYMBOLOVÝ POSUN plus klíč
- Zelená nad klíčem: ROZŠÍŘENÝ REŽIM následuje klíč
- Červené pod klíčem: ROZŠÍŘENÝ REŽIM následován SYMBOLOVÝ POSUN plus klíč
Model ZX81 8K BASIC používal kratší formy JÍT DO
, GOSUB
, CONT
a RAND
zatímco Spektrum používalo delší formy JÍT DO
, GO SUB
, POKRAČOVAT
a NÁHODNĚ
. ZX80 4K BASIC také používal tyto delší formy, ale lišil se použitím pravopisu NÁHODU
. ZX81 8K BASIC byla jediná verze, která se používala RYCHLE
, SVITEK
, POMALÝ
a UNPLOT
. Exkluzivní funkce měla model ZX80 4K BASIC TL $ ()
; byl ekvivalentní operátoru řetězce (2 DO)
v novějších verzích.
Jedinečné body kódu jsou přiřazeny v Znaková sada ZX80, ZX81 znaková sada a ZX Spectrum Character Set pro každé klíčové slovo nebo víceznakový operátor, tj. <=
, >=
, <>
, ""
(tokenováno pouze na ZX81), **
(nahrazeno ↑
na spektru). 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í jednotlivých písmen. To také znamenalo, že ZÁKLADNÍ tlumočník 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 základních dialektech nebo jiných programovacích jazycích, např. je povoleno definovat proměnnou s názvem TISK
a jeho hodnotu odešlete pomocí TISK TISK
. 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 změní z příkazového režimu do režimu písmen. Přiřazení proměnných tedy vyžaduje NECHAT
(tj., NECHATA=1
nejen A=1
). 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; SIN x
stačilo, ne SIN (x)
potřeba (i když to bylo povoleno). 4K BASIC ROM modelu ZX80 měl krátký seznam výjimek: funkce CHR $ ()
, STR $ ()
, TL $ ()
, PEEK ()
, KÓD()
, RND ()
, USR ()
a BŘIŠNÍ SVALY()
neměl jednobajtové tokeny, ale byly psány dopisy po písmenech a vyžadovaly závorky. Byly uvedeny jako INTEGRÁLNÍ FUNKCE na štítku nahoře a napravo od klávesnice.[65]
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. Také představili dva nové příkazy:
HRÁT SI
, který provozoval modely 128k Obecný nástroj AY-3-8910 hudební čipSPEKTRUM
, 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ě,[66] z nichž jeden nebyl dokumentován. Lze je přeložit jako:
UPRAVIT
(upravit číslo řádku nebo vyvolat editor řetězců na celé obrazovce)RENUM
(k přečíslování programových řádků)VYMAZAT
(smazat řádky programu)ŠÍŘKA
(pro nastavení šířky sloupce zařízení RS232, ale nezdokumentováno, protože kód byl porušen)
Na rozdíl od VLEVO $ ()
, MID $ ()
a RIGHT $ ()
funkce používané ve všudypřítomném Microsoft BASIC dialekty pro domácí počítače, části řetězců v Sinclair BASIC jsou přístupné pomocí číselného rozsahu. Například, a $ (5 AŽ 10)
dává podřetězec začínající 5. a končící 10. znakem proměnné a $
. Je tedy možné nahradit VLEVO $ ()
a RIGHT $ ()
příkazy jednoduchým vynecháním levé nebo pravé polohy pole; například a $ (TO 5)
je ekvivalentní k VLEVO $ (a $, 5)
. Dále, a $ (5)
sám o sobě stačí nahradit MID $ (a $, 5,1)
.
Názvy proměnných
Tětiva a názvy proměnných pole se musí skládat pouze z jednoho abecedního znaku. Tím pádem, NECHATA=5
, NECHATJablka=5
, NECHATa $="Ahoj"
, ZTLUMITA(10)
a ZTLUMITa $(10)
jsou všichni dobří NECHATJablka $="Ovoce"
, ZTLUMITJablka(10)
a ZTLUMITJablka $(10)
nejsou.
Dlouhé názvy proměnných povolené pro číselné proměnné mohou obsahovat alfanumerické znaky za prvním znakem, takže NECHATa0=5
je povoleno, ale ne NECHAT0a=5
. Dlouhé názvy proměnných mohou také obsahovat mezery, které jsou ignorovány, takže NECHATčíslozjablka=5
je stejné jako NECHATpočet jablek=5
Oficiální verze
- 4K ZÁKLADNÍ je původní ZX80 BASIC s celočíselnou aritmetikou od Johna Granta z Nine Tiles pro ZX80, tak pojmenovaný pro bydlení ve 4KiB pamět pouze pro čtení (ROM).
- 8K ZÁKLADNÍ je ZX81 BASIC (k dispozici také jako upgrade pro ZX80[2]), aktualizováno aritmetikou s plovoucí desetinnou čárkou o Steve Vickers, tak pojmenovaný pro pobyt v 8 KiB ROM.
- 48 ZÁKLADNÍ je ZÁKLAD pro původní 16/48 kB paměť s náhodným přístupem (RAM) ZX Spectrum (a klony), 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 jmenovat 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[67]
- 128 ZÁKLADNÍ je ZÁKLADNÍ pro ZX Spectrum 128.[68] Nabízí další příkazy a používá zadávání písmen po písmenech.
- +3 ZÁKLADNÍ je ZÁKLADNÍ s podporou disku pro ZX Spectrum +3.[67]
- T / S 2000 ZÁKLADNÍ 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:
VYMAZAT
odstraní rozsahy základních programových řádků. CAPS SHIFT+0 sK.
kurzor vytvoří příkazVYMAZAT
.VOLNÝ, UVOLNIT
je funkce, která udává množství volné paměti RAM.TISK ZDARMA
ukáže, kolik RAM je volné.NA CHYBU
je funkce pro zpracování chyb, která se většinou používá jakoON ERR GO TO
neboON ERR CONT
.RESETOVAT
lze použít k resetování chováníNA CHYBU
. Bylo také zamýšleno resetovat periferní zařízení.ZVUK
ovládá zvukový čip AY-3-8192.LEPIT
je funkce, která udává polohu vnitřního joysticku (Timex Sinclair 2090).
- ZÁKLAD64 podle Timex z Portugalska, je softwarová přípona[69] umožnit lepší základní programování s grafickým režimem 512 × 192 dostupným pouze na Řada Timex 2000 počítače. 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.[70]
- Beta BASIC Dr. Andy Wright, byl původně a ZÁKLADNÍ rozšíření, ale stal se plným tlumočníkem.
- YS MegaBasic podle Mike Leaman.[70]
- ZebraOS podle Zebra Systems v New Yorku, kazetová verze T / S 2000 BASIC, která používala režim obrazovky 512 × 192.
- Sea Change ROM Steve Vickers a Ian Logan, upravený Geoffem Wearmouthem, náhradní ROM s vylepšeným Sinclair BASIC.[71]
- Bože báječné podle Geoff Wearmouth, náhradní ROM, který opravuje chyby a přidává tokenizer, stream lister, mazat a přečíslovat příkazy.[70][72]
- OpenSE BASIC (dříve SE BASIC) Andrew Owen, náhradní ROM s opravami chyb a mnoha vylepšeními včetně ULAplus[73] podpora, publikovaná jako open source v roce 2011[74][75]
Překladače pro rodinu ZX Spectrum
Existuje několik kompilátorů ZX Spectrum.[70]
- HiSoft Překladač COLT (aka HiSoft COLT Integer Compiler)[76]
- HiSoft ZÁKLADNÍ (aka HiSoft BASIC Compiler), kompilátor schopný integer a plovoucí desetinnou čárkou[77]
- Laserový kompilátor[78]
- Softek 'IS' Integer Compiler[79] (nástupce Softek Integer Compiler[80])
- Softek 'FP' Full Compiler[81]
- Překladač ZIP[82]
Deriváty a nástupce pro jiné počítače
- SuperBASIC, mnohem pokročilejší základní dialekt představený s Sinclair QL osobní počítač, s některými podobnostmi s předchozími Sinclair BASIC
- SAM Basic, ZÁKLAD na SAM Coupé, obecně považován za klon ZX Spectrum
- ROMU6 Cesar a Juan Hernandez - MSX[70]
- Spektrum 48 podle Whitby Computers - Commodore 64[70]
- Sparky eSinclair BASIC Richard Kelsh, operační systém volně založený na ZX Spectrum BASIC - Zilog eZ80[83]
- Sinbas Pavel Napravnik - DOS[70]
- Základní[84] (a CheckBasic[85]) od Philipa Kendalla - Unix
- BINSIC[86] Adrian McMenamin, reimplementace v Báječný úzce po vzoru ZX81 BASIC - Java
- Umyvadlo[87] Paul Dunn, kompletní Sinclair BASIC integrované vývojové prostředí (IDE) na základě emulátoru ZX Spectrum[70] - Okna
- SpecBAS[88] (aka SpecOS) Paul Dunn, an integrované vývojové prostředí (IDE) poskytující vylepšenou nadmnožinu Sinclair BASIC - Okna, Linux, Pandora, a Raspberry Pi
- ZX-Basicus[89] Juan-Antonio Fernández-Madrigal, syntezátor, analyzátor, optimalizátor, interpret a debugger Sinclair BASIC 48K pro PC, volně ke stažení pro Linux a Okna.
Viz také
- Seznam emulátorů počítačového systému § Sinclair ZX80
- Seznam emulátorů počítačového systému § Sinclair ZX81
- Seznam emulátorů počítačového systému § Sinclair ZX Spectrum a klony
Poznámky
- ^ Volitelné parametry jsou uvedeny v [hranatých závorkách]
- ^ Předpokládají, že se počítač nachází K. režim (klíčové slovo), který je obvykle na začátku řádku při vstupu do jazyka BASIC. U Spectrum 16K a 48K se rozšířený režim zadává stisknutím CAPS SHIFT a SYMBOLOVÝ POSUN současně spíše než ROZŠÍŘENÝ REŽIM klíč, který je k dispozici u modelů Spectrum + a novějších.
- ^ A b C „False“ v Sinclair BASIC se rovná 0 (nula), všechno ostatní se rovná „true“. Funkce, které vracejí hodnoty true-or-false, tedy ve skutečnosti vrátí 0 pro false a 1 pro true, while
A
obvykle vrátí první z podmínek zadaných pro true, nebo 1, pokud nebyly zadány žádné číselné hodnoty. Například,6 A 7
vrátí 6, zatímcoNE 6 = 7
vrátí 1. - ^ A b C Dostupné barvy jsou:
1 2 3 4 5 6 7 0 modrý Červené purpurová zelená tyrkysová žlutá bílý Černá Ve všech příkazech souvisejících s barvami může být číslo 8 použito k označení „transparentního“, zatímco je uvnitř
INKOUST
aPAPÍR
lze také nastavit na 9 pro „kontrast“ - to znamená, že se tmavá barva automaticky umístí na světlé pozadí nebo naopak. - ^ A b C d E F
INKOUST
,PAPÍR
,BLIKAT
,JASNÝ
,PŘES
aINVERZNÍ
nastavit atributy pro výstup textu a grafiky na obrazovku. Mohou být použity buď jako příkazy, pro použití na všechny následné výstupy, dokud nebudou znovu nastaveny, nebo v rámciTISK
prohlášení, použít pouze od tohoto bodu až do konce prohlášení. - ^ A b C d E F
KOČKA
,VYMAZAT
,FORMÁT
aHÝBAT SE
byly původně navrženy pro použití s periferiemi, ale při spuštění ZX Spectrum nebyly zcela implementovány, takže jejich použití vygenerovalo chybovou zprávu (Invalid Stream). Později byly pomocí stínové ROM ZX Interface 1 použity pro ZX Microdrive. (Stínová ROM byla stránkována, když tlumočník BASIC zjistil syntaktickou chybu, a proto většina příkazů ZX Microdrive používá"*"
). - ^ A b Na rozdíl od mnoha jiných základních dialektů Sinclair Basic neobsahoval
JINÝ
operátor vLI
–PAK
[–JINÝ
klauzule. Řešením by bylo použítLI
–PAK
–JÍT DO
místo toho postavte, obejděte řádky, které by byly vJINÝ
doložka sJÍT DO
- ^ Paměť displeje Spectrum začíná na adrese 16384 a je 6912 bajtů dlouhá
- ^ Řetězec uvnitř řetězce musí mít své citace zdvojnásobené v Sinclair BASIC
Reference
- ^ Garfield, Simon (2010-02-28). „Sir Clive Sinclair:“ Vůbec nepoužívám počítač"". Opatrovník. Guardian Media Group. Citováno 2011-05-23.
Rád by ocenil [...], v neposlední řadě společnost Nine Tiles, společnost, která vyrobila základní operační software.
- ^ A b „ZX80 - 8K ZÁKLADNÍ UPGRADOVÁNÍ ROM“.
- ^ A b C d Vickers 1983, str. 59.
- ^ A b Vickers 1983, str. 70.
- ^ A b C Vickers 1983, str. 85.
- ^ Vickers 1983, str. 69–70.
- ^ A b C d Vickers 1983, str. 101.
- ^ Vickers 1983, str. 116.
- ^ Vickers 1983, str. 135.
- ^ A b Vickers 1983, str. 93.
- ^ Vickers 1983, str. 113.
- ^ Vickers 1983, str. 110–111.
- ^ Cambridge Communication 1983, str. 15.
- ^ A b Vickers 1983, str. 91.
- ^ A b Vickers 1983, str. 123.
- ^ A b C Vickers 1983, str. 103.
- ^ http://www.worldofspectrum.org/ZXBasicManual/zxmanchap24.html
- ^ Vickers 1983, str. 168.
- ^ Vickers 1983, str. 19.
- ^ A b C Vickers 1983, str. 151.
- ^ A b Vickers 1983, str. 68.
- ^ A b Vickers 1983, str. 41.
- ^ A b C Vickers 1983, str. 142.
- ^ A b C Vickers 1983, str. 60.
- ^ Vickers 1983, str. 79–81.
- ^ Vickers 1983, str. 11–123.
- ^ Cambridge Communication 1983, str. 18.
- ^ Vickers 1983, str. 66.
- ^ Cambridge Communication 1983, str. 19.
- ^ Vickers 1983, str. 31.
- ^ A b Vickers 1983, str. 32.
- ^ A b Vickers 1983, str. 37.
- ^ A b Vickers 1983, str. 25.
- ^ A b Vickers 1983, str. 159.
- ^ A b Vickers 1983, str. 110.
- ^ Vickers 1983, str. 131.
- ^ A b C d Vickers 1983, str. 16.
- ^ A b Vickers 1983, str. 112.
- ^ Vickers 1983, str. 57.
- ^ A b Vickers 1983, str. 13.
- ^ Vickers 1983, str. 144.
- ^ Vickers 1983, str. 15.
- ^ A b Vickers 1983, str. 67.
- ^ Vickers 1983, str. 142–143.
- ^ Vickers 1983, str. 147.
- ^ Cambridge Communication 1983, str. 39.
- ^ Vickers 1983, str. 31–32.
- ^ Cambridge Communication 1983, str. 22.
- ^ Vickers 1983, str. 129.
- ^ Vickers 1983, str. 130.
- ^ Vickers 1983, str. 121.
- ^ Vickers 1983, str. 163.
- ^ Vickers 1983, str. 74.
- ^ Vickers 1983, str. 42.
- ^ Vickers 1983, str. 73.
- ^ A b Vickers 1983, str. 14.
- ^ Vickers 1983, str. 143.
- ^ Vickers 1983, str. 58.
- ^ Vickers 1983, str. 69.
- ^ Vickers 1983, str. 32, 51.
- ^ Vickers 1983, str. 180.
- ^ Vickers 1983.
- ^ Vickers 1983, str. 141.
- ^ Vickers 1983, str. 7–8.
- ^ „Obrázek ZX80“.
- ^ Demontáž ROM Spectrum 128 - španělské Spectrum 128
- ^ A b http://www.worldofspectrum.org/ZXSpectrum128+3Manual/chapter7.html
- ^ http://www.worldofspectrum.org/ZXSpectrum128Manual/sp128p06.html
- ^ http://timex.comboios.info/tmxtechb64-2048.html
- ^ A b C d E F G h http://www.worldofspectrum.org/sinclairbasic/
- ^ "ZÁKLADNÍ historie Sinclair".
- ^ „Neúplné shromáždění spektra ROM“. Archivovány od originál dne 01.09.2015.
- ^ https://sites.google.com/site/ulaplus/
- ^ http://www.fruitcake.plus.com/Sinclair/Interface2/Cartridges/Interface2_RC_New_3rdParty_SEBASIC.htm
- ^ https://sourceforge.net/projects/sebasic/
- ^ http://www.worldofspectrum.org/infoseekid.cgi?id=0008254
- ^ http://www.worldofspectrum.org/infoseekid.cgi?id=0008249
- ^ http://www.worldofspectrum.org/infoseekid.cgi?id=0008329
- ^ http://www.worldofspectrum.org/infoseekid.cgi?id=0008696
- ^ http://www.worldofspectrum.org/infoseekid.cgi?id=0008282
- ^ http://www.worldofspectrum.org/infoseekid.cgi?id=0008693
- ^ http://www.worldofspectrum.org/infoseekid.cgi?id=0009452
- ^ http://rk-internet.com/eZXSparky/
- ^ http://www.shadowmagic.org.uk/spectrum/basic.html
- ^ http://www.shadowmagic.org.uk/spectrum/checkbasic.html
- ^ http://cartesianproduct.wordpress.com/binsic-is-not-sinclair-instruction-code/
- ^ https://sites.google.com/site/ulaplus/home/zx-spin-and-basin
- ^ https://sites.google.com/site/pauldunn/
- ^ http://jafma.net/software/zxbasicus/
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
- ZÁKLADNÍ programování Sinclair ZX Spectrum: Původní příručka z roku 1982 od Stevena Vickerse (uvedená výše)
- Základní programování Sinclair ZX81: také Vickers
- Historie Sinclair BASIC: Andrew Owen
- Počítačový svět Timex: Základní 64 uživatelská příručka pro Timex Computer 2048
- Sinclair ZÁKLADNÍ gramatika: Specifikace gramatiky LL (1) pro analýzu Sinclair BASIC 16 / 48K