Klávesnice pracuje v pěti režimech:
V režimu klíčových slov (K) je pomocí kláves A - Z možné vkládat některá klíčová slova, uvedená ve schématech klávesnic na druhém řádku odspoda klávesy. Tato klíčová slova jsou vkládána nezávisle na stisknutí kláves Caps Shift a Symbol Shift. Pomocí číselných kláves je možné vkládat čísla (potřebné pro čísla řádků) a pokud je stisknutá klávesa Caps Shift číselné klávesy přejdou do režimu funkčních kláves, kdy jsou vyvolány funkce uvedené v druhém řádku odspoda klávesy (např. pomocí kláves 5 - 8 při současném stisku klávesy Caps Shift je pohybováno řádkovým kurzorem vlevo a vpravo a programovým kurzorem nahoru a dolů, pomocí kombinace kláves Caps shift + 1 je aktuální řádek určený programovým kurzorem přenesen do editační oblasti k úpravám). Pomocí kombinace kláves Caps shift a Symbol Shift je možné přejít do Extend režimu (E), pomocí kombinace kláves Caps Shift a 9 do grafického režimu (G).
V režimu písmen (L) je možné pomocí kláves A - Z vkládat tato písmena v jejich malé podobě. Pokud je současně s klávesou stisknuta klávesa Caps Shift, jsou vkládána velká písmena. Číselné klávesy fungují stejně jako v režimu klíčových slov. Pokud je současně se stiskem písmenné nebo číselné klávesy stisknuta klávesa Symbol Shift, jsou vkládány symboly a klíčová slova uvedená ve schématech na třetím řádku odspoda klávesy. Pomocí kombinace kláves Caps shift a Symbol Shift je možné přejít do Extend režimu (E), pomocí kombinace kláves Caps Shift a 9 do grafického režimu (G), pomocí kombinace kláves Caps Shift a 2 do režimu velkých písmen (C).
V režimu velkých písmen (C) je funkce kláves shodná jako v režimu písmen (L), pouze písmenné klávesy vkládají vždy velká písmena bez ohledu na stisk klávesy Caps Shift. Pomocí kombinace kláves Caps shift a Symbol Shift je možné přejít do Extend režimu (E), pomocí kombinace kláves Caps Shift a 9 do grafického režimu (G), pomocí kombinace kláves Caps Shift a 2 do režimu písmen (L).
V Extend režimu (E) jsou pomocí písmenných kláves, pokud není stisknutý ani Caps Shift ani Symbol Shift, vkládány symboly a klíčová slova uvedená ve schématech klávesnic na jednotlivých klávesách nahoře, pokud je při stisku písmenných kláves stisknut buď Caps Shift nebo Symbol Shift, jsou vkládány symboly a klíčová slova uvedená ve schématech klávesnic na jednotlivých klávesách dole. V případě číselných kláves, pokud není stisknuta ani klávesa Caps Shift ani klávesa Symbol Shift, jsou v Extend režimu stiskem kláves 1 - 7 a klávesy 0 vkládány řídicí kódy ovlivňující barvu podkladu, stiskem kláves 8 a 9 jsou vkládány řídicí kódy pro vypnutí, resp. zapnutí, zvýšeného jasu. Pokud je současně stisknuta klávesa Caps Shift, klávesy 1 - 7 a klávesa 0 vkládají řídicí znaky ovlivňující barvu písma a klávesy 8 a 9 vkládají řídicí kódy pro vypnutí, resp. zapnutí, blikání. Pokud je v Extend režimu současně s číselnou klávesou stisknuta klávesa Symbol Shift, jsou vkládány symboly a klíčová slova uvedená ve schématech klávesnic na jednotlivých klávesách dole. Pomocí kombinace kláves Caps shift a Symbol Shift je možné přejít do režimu písmen (L) nebo velkých písmen (C), podle toho, který režim byl aktivní před přepnutím do Extend režimu.
V grafickém režimu se pomocí číselných kláves 1 - 8 vkládají znaky hrubé grafiky, klávesa 9 slouží k vypnutí grafického režimu a klávesa 0 funguje jako delete (klávesy 9 a 0 fungují stejně jako v režimech K, C a L pokus je v těchto režimech současně s těmito klávesami stisknutá klávesa Caps Shift, v režimu G není Caps Shift nutný). Pokud je s klávesami 1 - 8 současně stisknutý CAPS SHIFT, jsou vkládány inverzní znaky. Klávesy A - U v grafickém režimu vkládají znaky UDG. Klávesy V - Z chybně vkládají klíčová slova, která nekorespondují s popisem kláves.
K | SS | CS | Ext | Ext+CS | Ext+SS | |
---|---|---|---|---|---|---|
1 | 1 | ! | Edit | Modré pozadí | Modrý inkoust | DEF FN |
2 | 2 | @ | Caps Lock | Červené pozadí | Červený inkoust | FN |
3 | 3 | # | True video | Fialové pozadí | Fialový inkoust | LINE |
4 | 4 | $ | Inverse video | Zelené pozadí | Zelený inkoust | OPEN# |
5 | 5 | % | Kurzor vlevo | Tyrkysové pozadí | Tyrkysový inkoust | CLOSE# |
6 | 6 | & | Kurzor dolu | Žluté pozadí | Žlutý inkoust | MOVE |
7 | 7 | ' | Kurzor nahoru | Bílé pozadí | Bílý inkoust | ERASE |
8 | 8 | ( | Kurzor vpravo | POINT | ||
9 | 9 | ) | Graphics mode | CAT | ||
0 | 0 | _ | Delete | Černý pozadí | Černý inkoust | FORMAT |
a | NEW | STOP | A | READ | ~ | ~ |
b | BORDER | * | B | BIN | BRIGHT | BRIGHT |
c | CONTINUE | ? | C | LPRINT | PAPER | PAPER |
d | DIM | STEP | D | DATA | \ | \ |
e | REM | >= | E | TAN | ATN | ATN |
f | FOR | TO | F | SGN | { | { |
g | GO TO | THEN | G | ABS | } | } |
h | GOSUB | ^ | H | SQR | CIRCLE | CIRCLE |
i | INPUT | AT | I | CODE | IN | IN |
j | LOAD | - | J | VAL | VAL$ | VAL$ |
k | LIST | + | K | LEN | SCREEN$ | SCREEN$ |
l | LET | = | L | USR | ATTR | ATTR |
m | PAUSE | . | M | PI | INVERSE | INVERSE |
n | NEXT | , | N | INKEY$ | OVER | OVER |
o | POKE | ; | O | PEEK | OUT | OUT |
p | " | P | TAB | C | C | |
q | PLOT | <= | Q | SIN | ASN | ASN |
r | RUN | < | R | INT | VERIFY | VERIFY |
s | SAVE | NOT | S | RESTORE | | | | |
t | RANDOMIZE | > | T | RND | MERGE | MERGE |
u | IF | OR | U | CHR$ | ] | ] |
v | CLS | / | V | LLIST | FLASH | FLASH |
w | DRAW | <> | W | COS | ACS | ACS |
x | CLEAR | ? | X | EXP | INK | INK |
y | RETURN | AND | Y | STR$ | [ | [ |
z | COPY | : | Z | LN | BEEP | BEEP |
Mezerník | Mezerník | Mezerník | Break | Mezerník | Mezerník | Mezerník |
Enter | Enter | Enter | Enter | Enter | Enter | Enter |
Umístění klávesy:
EXTEND MODE
G
50 LET x = ABS (y - z)
ABS vrací absolutní hodnotu číslu (y - z)
Příklad:
Povel: PRINT ABS - 34.2
Zobrazí se: 34.2
Formát:
ABS
num-const
ABS
num-var
ABS (
num-expr)
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
W
60 LET x=ACS (y * z)
Hodnota v závorce může být v rozsahu -1 až 1.
ACS poté převrací hodnotu úhlu v radiánech. Převod radiánů na stupně provedeme násobením výsledku číslem 180/PI.
Příklad:
Povel: PRINT 180/PI * ACS 0.5
Zobrazí se: 60 - úhel ve stupních, který má cosinus=0.5
Formát:
ACS
num-const
ACS
num-var
ACS (
num-expr)
Umístění klávesy:
SYMBOL SHIFT
Y
Logický operátor/funkce
AND je logický operátor testující pravdivost podmínek. Pouze tehdy, jsou-li všechny podmínky pravdivé, je celková kombinace pravdivá. AND rovněž převádí binární činnosti dvou číselných nebo textových proměnných.
90 IF x=z AND time<10 THEN PRINT "CORRECT"
Pouze jsou-li obě podmínky pravdivé, zobrazí se CORRECT. Jestliže některá z podmínek není splněna, celá kombinace neplatí a program v tomto případě pokračuje dalším řádkem.
Jako funkce může AND operovat se dvěma číselnými hodnotami, např.
50 LET x=y AND z
Zde vrací AND proměnné x hodnotu proměnné y v případě, že hodnota z není nulová a nebo přiřazuje do proměnné x hodnotu 0, jestliže druhá hodnota (z) je rovna nule.
AND může rovněž operovat s textovými řetězci. Číselná hodnota musí být zařazena vždy za AND, např.
50 LET a$=b$ AND z
AND přiradí proměnné a$ hodnotu b$ v případě, že z není rovno nule. Je-li tomu tak, bude a$=" "(prázdný text).
Zapamatujte si, že ZX Spectrum přiřazuje hodnotu 1 pravdivé podmínce a 0 jako nepravdu.
Příklady:
60 LET correct=(x=y+z) and time <10 70 LET score=score+10*(1 AND correct) 80 LET a$=("Out OF TIME OR NOT" AND NOT correct)+"Correct"
Jestliže dvě podmínky v řádku 60 jsou pravdivé, pak číselná proměnná correct je označena jako hodnota 1. Poté je načítáno score o 10 a textová proměnná a$ má tvar "Correct". Jestliže některá z podmínek neplatí, má correct hodnotu 0 a a$ obsahuje zprávu "Out Of Time Or Not Correct".
Formát:
cond AND cond num-expr
AND
num-expr
string-expr
AND
num-expr
Umístění klávesy:
EXTEND MODE
SYMBOL SHIFT
Q
Funkce
ASN vypočítává velikost úhlu z jeho sinu.
60 LET x=ASN (y*z)
Hodnota ASN je sinus požadovaného úhlu a může být v rozsahu -1 až 1. Výsledek je v radiánech. Převod radiánů na stupně použijte koeficient 180/PI, kterým výsledek vynásobíte, např.
Povel:
PRINT 180/PI * ASN 0.5
Zobrazí se:
30 (tj. úhel odpovídající sinu 0,5)
Formát:
ASN
num-const
ASN
num-var
ASN (
num-expr)
Umístění klávesy:
SYMBOL SHIFT
I
Viz INPUT; LPRINT; PRINT
Umístění klávesy:
EXTEND MODE
SYMBOL SHIFT
E
Funkce
ATN vypočítává velikost úhlu z jeho tangenty.
60 LET x=ATN (y * z)
Hodnota parametru je tangenta požadovaného úhlu. ATN vrací hodnotu úhlu v radiánech. Pro převod radiánů na stupně násobte hodnotu ATN konstantou 180/PI.
Příklad:
PRINT 180/PI * ATN 1
Zobrazí se:
45 (tj. úhel ve stupních, který má tangentu rovnu 1.)
Formát:
ATN
num-const
ATN
num-var
ATN (
num-expr)
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
L
Funkce
ATTR udává kvalitu zadaného typu na obrazovce; barvu INK a PAPER, jas, blikání typu v dané poloze.
150 IF ATTR (v,h)=115 THEN GOSUB 2000
První hodnota v závorce může nabývat hodnoty od 0 do 23, odpovídající číslu řádku obrazového rastru. Druhý parametr (h) může být v rozmezí od 0 do 31 a udává číslo sloupce dané polohy. ATTR poté vrací číslo od 0 do 255. Toto číslo je součet rysů dané pozice, je tvořeno následovně:
barevný kód inkoustu (0 až 7) barva podkladu (osminásobek barevného kódu) jas (64) blikání (128)
Příklad:
Jestliže typ v poloze 11,16 je zobrazen v barvě INK=3 (růžová), barva podkladu je 6 (žlutá) a je světlá, nebliká, pak povel
PRINT ATTR (11,16)
Zobrazí
115(3+8 * 6 + 64 + 0)
ATTR ve dvojkové formě
ATTR vrací jeden byte, ve kterém bit č. 7 (nejvýznamnější) je jedna pro blikání nebo 0 pro běžné, bit 6 je 1 pro světlé a 0 pro běžné, bity 5-3 jsou barvy papíru (ve dvojkové) a bity 2-0 jsou barvy inkoustu.
Formát:
ATTR (
num-expr,
num-expr)
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
Z
Příkaz/povel
BEEP vydává tón z reproduktoru - daný čas a daný tón.
80 BEEP x,y
První proměnná x může být v rozsahu od 0 do 10 a stanoví trvání tónu v sekundách. Druhá hodnota y může být v rozsahu od -60 do 69 a stanoví výšku tónu dané noty po půltónech pod středním C při záporném nebo nad střední C při kladném.
Příklad:
BEEP 0.5,1
Způsobí, že tón C# nad středním C zní půl sekundy.
Formát:
BEEP
num-expr,
num-expr
Umístění klávesy:
EXTEND MODE
B
BIN převrací binární číslo do desetinných čísel.
50 POKE USR"a",BIN 10101010
BIN vrací desetinou hodnotu dvojkového čísla. Je používán společně s POKE a USR, jak je uvedeno výše pro tvoření uživatelem definovaných grafických typů s 1 značící přítomnost bodu grafiky v barvě inkoustu a 0 v barvě papíru.
Příklad:
PRINT BIN 11111110
Zobrazí:
254, dekadickou hodnotu binárního čísla.
Formát:
BIN [1][0]
Umístění klávesy:
B
Příkaz/povel
BORDER stanoví barvu okraje televizní obrazovky okolo displaye.
30 BORDER RND*7
Hodnota následující za BORDER je zaokrouhlena na nejbližší celé číslo a stanoví barvu okraje obrazu:
0 - černý 1 - modrý 2 - červený 3 - růžový 4 - zelený 5 - azurový 6 - žlutý 7 - bílý
BORDER rovněž seřizuje barvu papíru spodní poloviny obrazovky. Na rozdíl od klíčových slov INK a PAPER nemůže být příkaz BORDER založen do příkazu PRINT.
Formát:
BORDER
int-num-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
B
Příkaz/povel
BRIGHT způsobí, že typy, které jsou zobrazovány, mají světlejší barvu než normálně
.80 BRIGHT 1
Hodnota následující za BRIGHT je zaokrouhlené nejvyšší celé číslo podle nutnosti a může být buď 0, 1 nebo 8. Hodnota 1 způsobí, že veškeré následně zobrazované typy pomocí PRINT nebo INPUT se objeví ve světlejší barvě inkoustu a papíru a hodnota 8 způsobí, že světlé polohy typů zůstanou světlé a normální polohy typů zůstanou normální při tom, co jsou do nich vytištěny nové typy. BRIGHT následováno 0 ruší oba BRIGHT 1 a BRIGHT 8, takže veškeré následně zobrazované typy jsou normální.
BRIGHT může být rovněž vloženo do příkazu displaye, který je tvořen pomocí klíčových slov PRINT, INPUT, PLOT, DRAW a CIRCLE.
BRIGHT následuje klíčové slovo, avšak předchází údajům nebo parametrům displaye.
Je následováno stejnými hodnotami a středníkem, např.
50 PRINT BRIGHT 1;"WARNING"
Efekt klíčového slova BRIGHT je v tom, že jeho působení je místní a vztahuje se pouze na zobrazené typy, vytečkované body nebo vytažené čáry podle příkazu na displayi. BRIGHT 1 zesvětluje barvu papíru celého typového postavení 8x8 bodů, jestliže jakýkoli bod v dané poloze je vyznačen barvou inkoustu.
Formát:
BRIGHT
int-num-expr[;]
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
9
Povel při manipulaci s microdrivy, viz Microdrive a Interface 1 příručky.
Též DIDAKTIK D40/80 a BETADISK; zobrazí na displeji knihovnu daného disku.
Umístění klávesy:
EXTEND MODE
,
U
80 PRINT CHR$x
Vyjádření musí být uzavřeno v závorkách. Hodnota následujících CHR$ (x výše) je zaokrouhlené nejbližší celé číslo. Jestliže je v rozsahu 32-255, CHR$ vrací typy klávesnice, uživatelsky definované grafické typy nebo klíčová slova jako text. Spectrum používá kód ASCII pro hodnoty od 32 do 95 97 do 126. Je-li x označeno jako hodnota 65, výše uvedený příkaz označí např. A.
Další příklad použití CHR$ jako řídících kódů je tvoření složených textů, obsahujících tyto:
60 PRINT "A" +CHR$ 6 +"B"
Má přesně stejný efekt, jako předchozí příklad. Kódy 16 až 23 ovlivňují barvu a polohu. Každá může být použita ve složeném stringu spolu s CHR$ následovaným barevným kódem od 0 do 7 CHR$16 ( řízení barvy "inkoustu") a CHR$17 (řízení barvy papíru), nebo 0 až 1 pro CHR$ 18 až CHR$21 (blikání, světlé nebo inverzní typy, OVER).
PRINT CHR$ 16 + CHR$ 3 + CHR$ 17 + CHR$ 6 + CHR$ 18 + + CHR$ 1 + "ZX Spectrum+"
Zobrazí na obrazovce ZX SPECTRUM+ blikající v červené a žluté. Toto může být změněno s tím, že každé znaménko + může být nahrazeno středníkem.
CHR$ 22 (AT řízení) je následován dvěma hodnotami CHR$, které značí řádek a sloupec čísla. Povel PRINT CHR$ 22 + CHR$ 11 + CHR$ 16 + CHR$ 42 zobrazí hvězdici ve středu obrazovky.
CHR$ 23 (řízení TAB) je rovněž následován dvěma hodnotami stejným způsobem. Druhá hodnota je běžně 0 a první hodnota dává polohu TAB. Povel PRINT CHR$ 23 + CHR$ 16 + CHR$ 0 + CHR$ 42 zobrazí hvězdu napůl napříč obrazovkou.
Pouze tyto ovládací prvky jsou použitelné. Užití PRINT CHR$ s klíčovým slovem o hodnotě vyšší než 164 jednoduše zobrazí dané klíčové slovo a nezanáší jej do činnosti.
Formát:
CHR$
int-num-const[;] [+]
CHR$
int-num-var[;] [+]
CHR$ (
int-num-expr) [;] [+]
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
H
Povel/příkaz
Klíčové slovo CIRCLE umožňuje kreslit kruhy na obrazovce.
80 CIRCLE x,y,z
Každý parametr se zaokrouhlí na nejbližší celé číslo CIRCLE pak kreslí kruh po grafické mříži s vysokým rozkladem v barvě INK. Prvé dva parametry x a y stanoví svislou a vodorovnou polohu, třetí (z) udává délku poloměru. Rozměry musejí být takové, aby kruh nevybočil přes okraje obrazu. Kruh je ovlivňován příkazy o barvě a může zahrnovat tyto příkazy stejně jako PLOT a DRAW.
Příklad:
CIRCLE 128,88,87
Objeví se kruh, který zabírá většinu obrazové plochy.
Formát:
CIRCLE[příkaz;]
int-num-expr,
int-num-expr,
int-num-expr
Umístění klávesy:
X
Příkaz/povel
CLEAR vymazává hodnoty všech proměnných, uvolňuje prostor v paměti, takže hodnoty zabírající místa na RAMTOP, horní adresy systémové oblasti BASIC.
CLEAR může být použit pro znovunastavení RAMTOP.
50 CLEAR
CLEAR vymaže hodnoty které jsou běžně přiřazeny všem proměnným, včetně polí. Rovněž vykonává CLS a RESTORE, čímž je "čištěna" obrazovka a je připravena pro příjem dat na první místo. Poloha PLOT je znovu nastavena do spodního levého rohu a všechny podprogramy smazány.
Klíčové slovo CLEAR není vyžadováno před předimenzováním oblastí, neboť DIM ruší stávající oblasti stejného jména. Slovo RUN provádí současně i CLEAR.
CLEAR a RAMTOP:
Příkaz CLEAR může mít parametr.
Například:
CLEAR 65267
CLEAR pak provádí funkci mazání jako dříve a rovněž seřizuje RAMTOP, nejvyšší adresu systémové oblasti Basicu na zadanou hodnotu, tj. na adresu 65267. RAMTOP je nastaveno na adresu 65367 ( ZX Spectrum+) a leží pod oblastí vyhraženou pro uživatelsky definované grafiky. Povel NEW maže paměť včetně RAMTOP, takže užití CLEAR pro nižší RAMTOP (o 100 bytů v předchozím příkladě) zahrnuje větší část paměti, která je imunní vůči slovu NEW. Zvýšení RAMTOP dává více prostoru pro Basic na úkor uživatelské grafiky. Podprogramy jsou pak umístěny na RAMTOP, s tím, že RAMTOP zůstává nad zásobníkem kalkulátoru.
Pro vyhledání RAMTOP vložte:
PRINT PEEK 23730+256*PEEK 23731
Formát:
CLEAR[
num-expr]
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
5
Umístění klávesy:
V
Povel/příkaz
CLS čistí veškerý text a grafiku z oblasti displaye, ponechává ho slepý v původní barvě papíru (pozadí).
250 IF a$= "NO" THEN CLS
Oblast displaye, avšak ne okraj, je pak vymazán na zvolenou barvu podle předešlého příkazu PAPER nebo povelu nebo na barvu papíru bílou.
CLS musí být užito po PAPER a před PRINT nebo jiným příkazem výpisu, aby bylo vytvořeno barevné pozadí po celé ploše obrazovky.
Formát:
CLS
Umístění klávesy:
EXTEND MODE
I
Funkce
CODE udává číslo kódu typu ve Spectru.
90 IF CODE a$<65 OR CODE a$>90 THEN GOTO 80
Vyjádření textu musí být uvedeno v závorkách. CODE vrací číslo kódu prvního typu v textu.
Je-li toto mezera (" "), pak CODE nabývá hodnoty 0.
CODE je používáno rozlišnými způsoby - pomocí SAVE, LOAD a VERIFY.
SAVE/LOAD/VERIFY CODE
Formát:
CODE
string-const
CODE
string-var
CODE(
string-expr)
Umístění klávesy:
C
Povel
Zastaví-li program, může být použito klíčového slova CONTINUE pro opětovné spuštění programu od místa, na kterém byl zastaven.
Jestliže způsobila zastavení programu chyba, musí být nejprve napravena než klíčové slovo CONTINUE umožní pokračovat v programu.
Jestliže je použito klíčového slova CONTINUE pro obnovu přímého povelu, pak dojde ke smyčce, jestliže povel nezastaví první příkaz povelu. Display zmizí, avšak ovládání může být obnoveno stisknutím BREAK. CONTINUE udává zprávu 0, jestliže zastavil povel na druhý příkaz a zprávu N při třetím nebo následném příkaze.
Formát:
CONTINUE
Umístění klávesy:
Z
Povel
COPY dává povel tiskárně Sinclair vyrobit kopii displaye obrazovky.
Jestliže se na obrazovce objeví výpis programu, může být tištěn použitím COPY s tím, že byl vyvolán pomocí povelu LIST.
Výpis se objeví na obrazovce po stisknutí ENTER poté, co byl program dokončen nebo zastaven, avšak tento "automatický" výpis nemůže být tištěn pomocí příkazu COPY.
Formát:
COPY
Umístění klávesy:
EXTEND MODE
W
Funkce
COS udává cosinus úhlu.
140 LET x= COS y
Vyjádření musí být uzavřeno v závorkách. Hodnota následující COS je úhel v radiánech. COS se pak vrací do cosinu úhlu. Stupně mohou být převáděny do radiánů násobením PI/180.
COS vrací zápornou hodnotu úhlů od 90 do 270 stupňů a kladnou pro úhly od 0 do 90 stupňů a 270-360 stupňů.
Příklad:
PRINT COS (60*PI/180)
Zobrazí
0.5 cosinus 60 stupňů
Formát:
COS
num-const
COS
num-var
COS (
num-expr)
Umístění klávesy:
EXTEND MODE
D
Příkaz
DATA zajišťuje výpis pozic údajů programu. Tyto položky mohou být hodnoty proměnných nebo textů, které mají být zobrazeny. Každá hodnota je označena jako proměnná pomocí příkazu READ.
Označení je prováděno podle toho, v jakém pořadí se jednotlivé pozice údajů objevují v programu, avšak může být použito RESTORE pro začátek označování na první pozici daného příkazu DATA.
50 DATA 31,"JAN", 28,"FEB"
Každá konstanta je pak označena jako proměnná pomocí příkazu READ, který čte DATA. Příkaz DATA může být umístěn kdekoli v programu. Číslo, druh (číselná nebo textová) a pořadí konstant musí odpovídat počtu provádění příkazu READ a druh a postup - pořadí proměnných v příkazu READ. Výpis dat může být rozdělen do několika příkazů DATA, je-li zde příliš mnoho pozic pro naplnění jednoho příkazu.
Příklad:
10 FOR n=1 TO 2 20 READ x,a$ 30 PRINT a$,x;" days" 40 NEXT n 50 DATA 31,"JAN",28,"FEB"
Tento program zobrazí, že leden má 31 dnů a únor 28 dnů.
JAN 31 days FEB 28 days
50 DATA d,m$,d-3,"FEB"
Je-li předem označeno d jako hodnota 31 a m$ hodnota "JAN", je dán stejný display.
LOAD DATA, SAVE DATA a VERIFY DATA:
Klíčového slova DATA lze rovněž použít s klíčovými slovy LOAD, SAVE a VERIFY pro uschování oblastí na pásek. Viz LOAD DATA, SAVE DATA a VERIFY.
Formát:
DATA
num-expr [,
num-expr][,
string-expr]
DATA
string-expr [,
num-expr][,
string-expr]
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
1
Příkaz
DEF FN umožňuje uživateli stanovit funkci, která není dostupná jako klíčové slovo. Velké množství parametrů může být zahrnuto do funkce jako FN příkaz, který vyvolává funkci a může vracet buď číselnou nebo textovou hodnotu jako výsledek.
1000 DEF FN r(x,y)=SQR(x^2+y^2)
Písmeno následující DEF FN (r) je jméno, které identifikuje funkci. Proměnné mohou být rovněž jednoduchá písmena. V obou případech Spectrum nerozlišuje mezi malými a velkými písmeny.
Vyjádření, které následuje za znaménkem = používá proměnné (x,y) na definice funkce.
Příkaz definice funkce může být umístěn kdekoli v programu. Pro vyvolání funkce, která jej definuje, je použito příkazu FN. Poté následuje písmeno označující funkci a výpis číselných hodnot, každé oddělené čárkou a uzavřené do závorek, např.
50 PRINT FN r(3,4)
Hodnoty uvnitř závorek prochází do funkce ve stejném pořadí, jako proměnné v příkazu DEF FN. Tedy v tomto případě je x označeno hodnotou 3 a y hodnotou 4. FN vyhodnocuje vyjádření a vrací hodnotu.
DEF FN může být rovněž následováno písmenem a dvojicí samostatných závorek, např.
1000 DEF FN r()=INT(x+0.5)
Hodnota přesně označená jako proměnná (x) prochází funkcí, je-li vyvolána FN. V tomto případě FN r() vrací hodnotu přesně označenou jako x zaokrouhlenou na nejbližší celé číslo.
DEF FN a textové řetězce:
DEF FN a FN lze rovněž použít stejným způsobem pro definici a vyvolání funkcí textů. V tomto případě jméno funkce tvoří jednoduché písmeno, za kterým je uvedeno znaménko $ a jedna nebo více proměnných v příkaze je písmeno následováno znaménkem $. Odpovídající vyjádření textu tvoří definici, např.
1000 DEF FN a$(b$,x,y)=b$(xTOy)
Vyjádření textu následující za znaménkem = - v tomto případě je $ přirazení a x a y jsou první a poslední písmena oddílu b$. FN musí být následováno jménem funkce a v závorkách hodnotou textové proměnné spolu s veškerými dalšími parametry, které budou procházet funkcí. V tomto případě je povel:
PRINT FN a$ ("FUNDAMENTAL",1,3)
Zobrazí se:
FUN
A povel:
PRINT FN a$ ("FUNDAMENTAL",5,8)
Zobrazí se:
AMEN
Formát:
DEF FN písmeno([písmeno][,písmeno])=
num-expr
DEF FN písmeno $([písmeno $][písmeno][,písmeno][,písmeno $]) =
string-expr
FN písmeno([
num-expr][,
num-expr])
FN písmeno $([
string-expr][
num-expr][,
num-expr][,
string-expr])
Umístění klávesy:
D
Příkaz
DIM je užíváno na dimenzování (nastavení) daného počtu číselných nebo textových proměnných. Oblast je výpis proměnných stejného jména, které jsou vyjádřeny pomocí subskripcí (hodnot, které označují každou proměnnou nebo prvek oblasti).
20 DIM x(10) 80 DIM z(20,5)
V prvním případě je jednorozměrové číselné pole vytvářené deseti prvky s označením od jedné do deseti. Pole má název x a označené proměnné jsou x(1) až x(10) včetně. Jakákoli existující pole stejného jména jsou vymazána a proměnné jsou každá označena hodnotou 0. V určování velikosti pole počítač nerozlišuje mezi nápisy velkých a malých písmen - proměnná x(2) je stejná jako X(2). Avšak jednoduché číselné proměnné, které mají stejné písmeno, jako název oblasti (x nebo X) spolu mohou koexistovat a mohou být samostatně podle potřeby použity. Počet hodnot v závorkách je rovný počtu rozměrů vytvořených v číselném poli.
Druhý příklad uvádí dvourozměrové pole o 100 prvcích s 20 prvky v prvním rozměru a s 5 ve druhém. Tyto prvky jsou číslovány z(1,1) až z(20,5).
Pole může být vytvořeno z jakýchkoli čísel a rozměrů. Prvky číselných polí mohou následně být stanoveny názvem pole, za kterým je hodnota v závorkách, např.
70 PRINT x(a) 160 PRINT z(7,b)
DIM a textové pole:
DIM je používáno stejným způsobem jako u číselných polí, s výjimkou toho, že samostatné písmeno je následováno znakem $ pro název pole. Navíc je třeba udat zvláštní hodnoty pro rozměr hodnot v závorkách, aby bylo možno určit délku každého textu. Např.
30 DIM a$(20,5) 90 DIM b$(20,5,10)
První příkaz vytváří pole o 20 prvcích, každý obsahuje text o 5 typech. Poznačené proměnné jsou pojmenovány a$(1) až a$(20) včetně a jsou počátečně označeny nulou (prázdný) text (""). Veškeré stávající oblasti stejného jména jsou vymazány a navíc na rozdíl od číselných polí spolu jednoduché proměnné textu nemohou koexistovat.
Druhý příklad vytváří dvourozměrné textové pole o 100 prvcích s 20 prvky v prvním rozměru a 5 ve druhém. Veškeré prvky mají délku 10 typů.
Když jsou textové proměnné postupně označeny do textového pole, jsou zvětšeny volnými místy na konci textu nebo označeny definovanou délkou podle potřeby.
Prvky textového pole jsou označeny jménem pole, které je následováno (jedním nebo více) údaji o číselných hodnotách, udávajících popisná čísla. Např. prvek a$(2) může být "SMITH" a prvek b$(12,4) může být "DERBYSHIRE".
Pro definici hlavního typu v textu mohou být přidány zvláštní hodnoty. V těchto případech a$(2,2) bude "M" (druhý typ v "SMITH") a b$(12,4,5) bude "Y".
Nulová textová pole:
Je možné vytvářet nulová textová pole použitím pouze jedné hodnoty v závorkách, např.
10 DIM c$(15)
Toto pole má pouze jeden prvek, který je c$, a jehož délka je fixována na stanovenou hodnotu (15 typů).
Formát:
DIM
letter(
num-expr[,
num-expr])
DIM
letter$ (
num-expr[,
num-expr])
Umístění klávesy:
W
Příkaz/povel
DRAW je užíváno pro kreslení přímých čar a křivek na obrazovce.
40 DRAW x,y
Přímá čára je poté vytažena na vysokorozkladové grafice z polohy stanovené předešlým příkazem PLOT nebo polohou dosaženou předešlým příkazem DRAW, podle toho, která je poslední. Obě hodnoty následující po povelu DRAW jsou zaokrouhleny na nejbližší celé číslo, je-li nezbytné. První hodnota (x výše) stanoví horizontální vzdálenost od této polohy, druhá hodnota (y) vertikální vzdálenost. Tyto hodnoty jsou záporné, běží-li čáry nahoru doleva nebo dolů a docílená poloha musí být uvnitř oblasti displaye.
Není-li předchozí příkaz PLOT nebo DRAW, povel DRAW vychází z polohy 0,0 (spodní levý roh obrazovky).
DRAW je ovlivňováno příkazy nebo povely barevných kódů a může zahrnovat příkazy se stejnými efekty jako s PLOT a CIRCLE.
40 DRAW x,y,z
Třetí hodnota (z výše) stanoví úhel (v radiánech), pod kterým se čára křiví podle toho, jak je vytahována.
Čára zatáčí doleva, je-li hodnota kladná, a doprava, je-li záporná. Hodnoty PI nebo -PI vytváří kruh.
10 PLOT 127,150 20 DRAW 70,-100 30 DRAW -140,0 40 DRAW 70,100
Navíc přidání 1 nebo -1 k DRAW způsobí, že se strany zakřiví vně nebo dovnitř.
Formát:
DRAW [
statement;]
int-num-expr,
int-num-expr[,
int-num-expr]
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
7
Umístění klávesy:
EXTEND MODE
X
Funkce
EXP je matematická funkce, která povyšuje exponent e na danou mocninu.
Vyjádření musí být uzavřeno do závorek. EXP poté vrátí exponent e povýšený na argument (x uvedený výše).
Příklad:
PRINT EXP 1
Zobrazí 2.7182818, hodnota přirozeného čísla e.
Formát:
EXP
num-const
EXP
num-var
EXP (
(num-expr))
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
V
Příkaz/povel
FLASH způsobí, že poloha typu bliká a to tím, že barva inkoustu a papíru se mění v konstantním poměru.
50 FLASH 1
Hodnota následující za FLASH je zaokrouhlené nejbližší celé číslo podle nutnosti, a může být tedy 0, 1 nebo 8. Hodnota 1 způsobí, že veškeré následně zobrazené typy pomocí PRINT nebo INPUT blikají. Hodnota 8 vyvolává blikání poloh typů poté, co normální typy zůstanou normální, když jsou do těchto míst vytištěny. Uvedením 0 za povel FLASH ruší FLASH 1 a FLASH 8, takže veškeré typy jsou obyčejné.
FLASH může být rovněž vloženo do příkazu po utváření displaye pomocí PRINT, INPUT, PLOT, DRAW a CIRCLE.
FLASH následuje klíčové slovo, avšak předchází údajům nebo parametrům displaye; je následováno stejnými hodnotami a případně středníky, např.
120 PRINT FLASH 1;INK 2; PAPER 6; "WARNING"
Účinek blikání je poté místní a vztahuje se pouze na typy, které jsou zobrazeny, vytyčená místa nebo vytažené čáry podle příkazu displaye. FLASH 1 ovlivňuje blikání celého pole 8x8 a to tehdy, když je jakýkoli vytyčený bod v barvě inkoustu.
Formát:
FLASH
int-num-expr[;]
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
2
Funkce
FN vyvolává funkce stanovené uživatelem. Je vždy používáno spolu s DEF FN, které definuje vyvolávanou funkci.
170 LET x=FN r(3,4)
Parametr (3,4 výše) poté prochází do funkce nazývané r.
FN poté vrací výsledek. Nejsou-li žádné parametry zadány, dvojice závorek musí být přesto přítomna, např.
70 PRINT FN r()
V tomto případě používá funkce hodnot přesně označených k proměnným.
FN vyvolává funkci textu stejným způsobem s výjimkou toho, že vždy musí být přidáno znaménko $ po písmenu označujícím funkci.(viz DEF FN - podrobnosti)
Formát:
FN
letter([
num-expr][,
num-expr])
FN
letter$([
string-expr][
num-expr][,
num-expr][,
string-expr])
Umístění klávesy:
F
Příkaz/povel
FOR je vždy užíváno s klíčovými slovy TO a NEXT pro vytvoření smyčky FOR NEXT. Tato struktura umožňuje opakovat část programu po daný počet obrátek.
60 FOR a=1 TO 9
Písmeno a tvoří řídící proměnnou. Příkazy, které mají být opakovány, následují a jeden nebo více jich běžně tvoří řídící proměnnou.
Smyčka potom končí příkazem NEXT, kdy NEXT je následováno řídící proměnnou, např.
90 NEXT a
Při provádění klíčové slovo FOR ruší veškeré proměnné stejného jména jako je řídící proměnná a označuje ji počáteční hodnotou rovnou předchozí hodnotě klíčového slova TO (1 výše). Příkazy jsou poté prováděny s řídící proměnnou, která má tuto hodnotu. Při dosažení klíčového slova NEXT je hodnota řídící proměnné povýšena o 1. Je-li tato hodnota nižší nebo rovna hodnotě po klíčovém slově TO (omezující hodnota 9 výše), program se vrací na příkaz FOR a poté je opakována smyčka FOR NEXT. Je-li řídící proměnná vyšší než omezující hodnota, poté smyčka končí a program pokračuje s dalším příkazem následujícím za FOR NEXT.
V předchozím případě je smyčka opakována 9x s řídící proměnnou vzrůstající od 1 do 9. Při opouštění smyčky má hodnotu 10.
Spectrum nerozlišuje při pojmenování proměnných mezi velkými a malými písmeny.
60 FOR a=1 TO 9 STEP 2
Řídící proměnná se zvyšuje po krocích o hodnotě dané (2 výše), pokud není vyšší než limitní hodnota. Řídící proměnná má tedy v tomto případě hodnoty 1, 3, 5, 7 a 9 a smyčku opouští s hodnotou 11.
Záporný krok způsobí, že hodnota řídící proměnné klesá.
V tomto případě musí být počáteční hodnota vyšší než konečná hodnota, smyčka končí, když hodnota řídící proměnné poklesne pod omezující hodnotu, např.
60 FOR a=9 TO 1 STEP -1
Hodnota klesá od 9 do 1 a opouští smyčku s hodnotou 0.
Formát:
FOR
letter=
num-expr TO
num-expr[STEP
num-expr] NEXT
letter
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
0
Umístění klávesy:
H
Příkaz/povel
GOSUB dává programu povel nebo příkaz pro provádění podprogramu, který je samostatnou oddělenou částí programu. Toto je užitečné, je-li podprogram vyžadován v jednom programu několikrát.
GOSUB 1000
Při vykonávání se hodnota následující GOSUB (1000) zaokrouhlí na nejbližší celé číslo a program vykonává podřádku po této hodnotě. Použití proměnné nebo vyjádření umožňuje programu vyhledat podprogram na propočítané řádce. Jestliže neexistuje číslo řádku, program stále vyhledává a pokračuje s prvním příkazem, který je zadán.
Podprogram končí slovy RETURN, a program se poté vrací zpět do příkazu, který následuje za příkazem GOSUB.
Podprogramy mohou být uloženy jeden do druhého, takže jeden je dosažitelný z druhého, kdy v tomto případě klíčové slovo RETURN zasílá program zpět do příkazu následujícího za posledním prováděným příkazem GOSUB.
Zásobník GOSUB:
Kdykoli je prováděn příkaz GOSUB, jeho číslo řádku je umístěno do zásobníku GOSUB v paměti. Jsou-li prováděny dva nebo více podprogramů před povelem RETURN, jejich číselná označení se ukládají tak, že poslední číslo je na horní části zásobníku. Klíčové slovo RETURN vždy vybírá horní řádek čísla ze zásobníku a vrací se na tento řádek k pokračování programu.
Chyba 4 (mimo paměť) se může objevit tehdy, není-li dostatek příkazů pro RETURN.
Formát:
GOSUB
int-num-expr
Umístění klávesy:
G
Příkaz/povel
Klíčové slovo GOTO dává programu pokyn pro vyhledání daného řádku.
60 GOTO 350
Při provádění je hodnota následující za GOTO zaokrouhlena na nejbližší celé číslo a program se větví k číslu řádku, které má tuto hodnotu.
Užití proměnné nebo vyjádření umožňuje programu, aby se větvil na vypočítaný řádek. Neexistuje-li řádek, program stále pokračuje v rozvětvování a začíná s prvním příkazem, který je do něho uložen.
Formát: GOTO int-num-expr
Umístění klávesy:
U
Příkaz/povel
IF je vždy užíváno s klíčovým slovem THEN pro rychlé rozhodnutí, které ovlivňuje následnou činnost. Aby toto provedl, počítač zkouší nalézt něco, zda je to nebo není pravdivé. Je-li to pravdivé, poté následuje jeden směr činnosti. Není-li, nastupuje druhý.
80 IF x THEN GOTO 250 240 IF a$="NO" THEN PRINT "THE END":STOP
Konstanty, proměnné nebo vyjádření (jako x výše) jsou považovány za pravdivé, mají-li nenulovou hodnotu. V tomto případě je příkaz následující za THEN a veškeré další příkazy ve stejném řádku proveden. Program poté pokračuje na dalším řádku. Jestliže je hodnota nulová, je konstanta, proměnná nebo vyjádření považováno za nepravdivé. Následující příkazy proto nejsou provedeny a program přeskočí na další řádek. V příkladu nepůjde program do ř. 250, bude-li x=0. Je-li podmínka (a$="NO") po IF pravdivá, příkazy následující za THEN budou provedeny. Je-li podmínka nepravdivá, program se pohybuje na další řádek. V tomto případě, jestliže a$ má hodnotu "NO", poté je zobrazeno "THE END" a program se zastaví. Jestliže a$ má jinou hodnotu, program pokračuje od dalšího řádku.
Spectrum dává rozhodovací podmínky 1-pravdivá a 0-nepravdivá. Rozlišuje jakékoli nenulové číslo jako pravdivé a 0 jako nepravdivé. Proměnné mohou být označeny hodnotou podmínky pomocí příkazu jako:
70 LET x=a$="NO"
Na rozdíl od jiných programovacích jazyků Basic nemůže být THEN před GOTO vypuštěno.
Formát:
IF
num-expr THEN
statement[:
statement]
IF
cond THEN
statement[:
statement]
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
I
Funkce
IN kontroluje stav klávesnice a další vstupní a výstupní zařízení. Čte byty z daných adres, které označují stav zařízení připojeného k portům.
150 LET x=IN y
Hodnota následující za IN může být v rozsahu od 0 do 65535 a určuje adresu portu, který má být čten. IN poté udává byt čtený z tohoto portu.
Klávesnicové adresy:
Klávesnice má 8 adres, každá může obsahovat 1 nebo 5 různých bytů v závislosti na klíči, který je stisknut. Adresy jsou 65278, 65022, 64510, 63486, 61438, 57342, 49150 a 32766. Hodnoty bytů těchto adres mohou být 175, 183, 187, 189 nebo 190.
Formát:
IN
num-const
IN
num-var
IN (
num-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
X
Povel/příkaz
INK určuje barvu tisku, ve které je typ zobrazován, vytyčovány body a vedený čáry a křivky.
70 INK x
Hodnota následující za INK je zaokrouhlena na nejbližší celé číslo a může být v rozsahu od 0 do 9. Následující barvy jsou udány pro barvu tisku:
0 - černá 1 - modrá 2 - červená 3 - růžová 4 - zelená 5 - zeleno-modrá 6 - žlutá 7 - bílá 8 - transparentní 9 - kontrastní černá nebo bílá
INK 8 určuje, že stávající barva zůstává nezměněna v jakékoli pozici na obrazovce, kde je použito klíčového slova 8. INK 9 způsobí, že barva bude buď černá nebo bílá tak, aby se objevila v protipoloze barvy papíru (pozadí).
Globální a lokální barvy :
Jestliže INK tvoří samostatný příkaz jak je uvedeno výše, barva je celková a veškeré dílčí displaye se objevují v této barvě. INK může být rovněž vložen do displaye ve formě příkazu pomocí PRINT, INPUT, PLOT, DRAW a CIRCLE. INK následuje klíčové slovo, avšak předchází údaj nebo parametry displaye; je následován stejnými hodnotami a středníky, např.
60 CIRCLE INK 4; 128,88,87
Vliv INK je potom místní a vztahuje se pouze na zobrazený typ, vytyčený bod nebo vytaženou čáru podle příkazu displaye, v tomto případě namalování zeleného kruhu.
Poté se barva INK převrací na všeobecnou barvu nebo na opak černé barvy.
Formát:
INK
int-num-expr[;]
Umístění klávesy:
EXTEND MODE
N
Funkce
INKEY$ je používán pro stanovení stisknutí klávesy na klávesnici.
70 LET a$=INKEY$ 130 IF INKEY$="N" THEN STOP
Při provádění vrací INKEY$ typ udaný klíčem, který byl stisknut. Nebyl-li stisknut žádný klíč, INKEY$ vrací prázdný text (""). Klíčové slovo INKEY$ rozlišuje mezi velkými a malými písmeny a jejich posunutými a neposunutými typy. (Používejte IN pro stanovení veškerých kláves bez rozlišování typů.)
Na rozdíl od INPUT nečeká INKEY$, avšak ihned pokračuje na další příkaz. Proto je běžně umísťován uvnitř smyčky, která se opakuje, dokud není požadovaný klíč stisknut.
Příklad:
Tato linka podmiňuje operaci, pokud Y není stisknuto (bez CAPS SHIFT nebo CAPS LOCK).
60 IF INKEY$<>"y" THEN GOTO 60
Formát: INKEY$
Umístění klávesy:
I
INPUT umožňuje, aby byly údaje zahrnuty do programu v průběhu jeho chodu.
60 INPUT x 90 INPUT a$
Počítač poté čeká, dokud číslo nebo text není zadán. Hodnota je zobrazena na začátku spodní řádky podle zaklíčování. Po stisknutí ENTER je hodnota označena pojmenovanou proměnnou a program pokračuje.
Příkaz INPUT může zahrnovat více než jednu proměnnou a zobrazí utvořené typy okamžitě. To je prováděno přesně stejným způsobem, jako u klíčového slova PRINT užitím uvozovek pro uzavření typů a středníků nebo čárek podle nutnosti pro oddělení pozic. Příkazy displayi jako INK, FLASH a PAPER mohou být rovněž použity, např.
80 INPUT INK 2; "What is your name?";n$, ("How old are you,"+n$+"?");age
Odlišnosti od klíčového slova PRINT: INPUT čeká, když dojde k proměnné, takže proměnné a výrazy (viz výše uvedené n$), které musí být začleněny přímé musí být uzavřeny v závorkách. Display začíná na začátku spodního řádku a poté se posouvá vzhůru, když je použito více než jedné řádky. AT může být použito při příkazu INPUT stejným způsobem jako s PRINT. AT 0,0 zobrazí na začátku řádku nad spodní čárkou a display se posouvá vzhůru, je-li použito více než dvou řádek.
Zastavení INPUT: Jestliže je INPUT následován číselnou proměnnou a je vloženo STOP, poté se program zastaví. S textovou proměnnou je první uvozovka, která se objeví, uvažována jako vymazaná a poté vložené STOP zastaví program.
70 INPUT "Jak se jmenuješ?"; LINE a$
Formát:
INPUT
prompt [;][,][']
num-var
INPUT
prompt [;][,][']
string-var
INPUT
prompt [;][,][']LINE
string-var[
prompt]=[
string-const][
string-expr][AT
int-num-expr,
int-num-expr] [
statement][;][,][']
Umístění klávesy:
EXTEND MODE
R
Funkce
INT mění necelá čísla (čísla, která nejsou celá) na celá čísla nebo celistvá čísla.
70 LET x=INT y
Výraz musí být uzavřen v závorkách. INT se poté vrací s hodnotou zaokrouhlenou dolů na celé číslo.
Příklad:
PRINT INT 45.67,INT -7.66
Zobrazí:
45 -8
Formát:
INT
num-const
INT
num-var
INT (
num-expr)
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
M
Povel/příkaz
INVERSE převrací barvy na místech typů tak, že barva tisku se stává barvou papíru a naopak.
70 INVERSE 1
Hodnota následující INVERSE je zaokrouhlena na nejbližší celé číslo a může být tedy 0 nebo 1. INVERSE 1 dává příkaz ke změně všech následných zobrazení prováděných klíčovým slovem PRINT a INPUT v inverzních barvách. INVERSE 0 znovu převádí převrácené barvy na původní.
INVERSE může být založen do příkazu displaye stejnou cestou jako příkaz INK. Je-li však použit s CIRCLE, PLOT nebo DRAW, INVERSE 1 tvoří čáru nebo bod, který je vytyčen na obrazovce v barvě podkladu, takže tento mizí.
Formát:
INVERSE
int-num-expr
Umístění klávesy:
EXTEND MODE
K
Funkce
LEN udává délku textu
Výraz musí být uzavřen v závorkách. LEN vrací počet typů v textu.
Příklad:
120 INPUT a$:IF LEN a$>9 THEN GOTO 120
Prochází pouze testy obsahující více než 9 typů.
Formát:
LEN
string-const
LEN
string-var
LEN (
string-expr)
Umístění klávesy:
L
Povel/příkaz
LET se používá jako přiřazení hodnoty k proměnné.
V Basicu Sinclair nemůže být LET vypuštěno v přiřazovacím příkaze.
60 LET x=x+1 80 LET a$="Correct"
Hodnota je přiřazena k proměnné.
Jednoduché proměnné jsou nedefinovány, pokud nemají přiřazené hodnoty pomocí klíčového slova LET, READ nebo INPUT. Pole proměnných je počítáno od 0 nebo nulového textu (viz DIM).
Formát:
LET
num-var=
num-expr
LET
string-var=
string-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
3
Umístění klávesy:
K
Povel/příkaz
LIST vydává výpis z programu, který je v paměti.
LIST
...je první strana výpisu vytištěna na obrazovku a následující strany se budou posouvat nahoru obrazovkou poté, co stlačíte jakoukoli klávesu kromě N, pomlčky, STOP nebo BREAK.
LIST může být rovněž následován číslem řádku ve formě numerické hodnoty, např.
LIST 100
Hodnota následující LIST je zaokrouhlena na nejbližší celé číslo podle nutnosti a výpis pokračuje na této řádce. Jestliže není řádka tohoto čísla, výpis pokračuje na další řádce.
Formát:
LIST [
int-num-expr]
Umístění klávesy:
EXTEND MODE
V
Povel/příkaz
LLIST dává povel tiskárnám typu Sinclair vydávat a tisknout výpis programu obsažený v paměti.
Formát:
LLIST [
int-num-expr]
Umístění klávesy:
EXTEND MODE
Z
Funkce
LN udává přirozený logaritmus (logaritmus na bázi přirozeného čísla e) dané hodnoty. Je činný jako inverzní číslo k EXP.
60 LET x=LN y
Výraz musí být uzavřen v závorkách. Hodnota následující za LN musí být vyšší než 0. LN poté uvádí přirozené logaritmy daných hodnot.
Formát:
LN
num-const
LN
num-var
LN (
num-expr)
Umístění klávesy:
J
Povel/příkaz
LOAD vkládá celý program do paměti z pásku.
LOAD "filename"
Při vykonávání tohoto příkazu je program, který je v dané chvíli v paměti a veškeré hodnoty jeho proměnných, vymazán. Spectrum poté hledá jmenovaný program a zakládá jej po nalezení do paměti.
Počítač rozlišuje mezi velkými a malými písmeny u názvů programů.
Je-li za příkazem LOAD uvedeno " ", např.
LOAD ""
...poté Spectrum zakládá první úplný program, který nalezne. Klíčové slovo LOAD je užito jiným způsobem, je-li připojen microdrive, viz podrobnosti v příručce Microdrive a Interface 1.
Formát:
LOAD
string-expr
Umístění klávesy:
J
,
EXTEND MODE
,
I
Povel/příkaz
LOAD CODE se užívá pro zakládání části paměti s informací, která má být uložena do paměti. Informace je složena ze soustavy bytů, které jsou vysílány do soustavy adres v paměti.
LOAD CODE může být použito pro zakládání displaye nebo zakládání informace pro grafiky definované uživatelem.
LOAD "data" CODE
Název uspořádání, který následuje po LOAD, je název informace, která má být založena, a je podřízen stejným omezením jako jména programu (viz LOAD).
LOAD CODE poté hledá dané informace a po jejich nalezení zobrazí Bytes: následovaný jménem. Spectrum poté zakládá byty do paměti na adresy, ve kterých byly zachovány. Veškeré stávající informace jsou přepsány.
.CODE může být rovněž následováno jednou nebo dvěma číselnými hodnotami oddělenými čárkou, např.
LOAD "picture" CODE 16384,6912
Hodnoty následující za CODE jsou zaokrouhleny s přesností na nejvyšší celé číslo a poté definují počáteční adresu (16384 výše), na které má být uložena jmenovaná informace a číslo bytu (6912), které má být zasláno do blokací (míst) začínajících touto adresou. Je-li číslo špatné, je dána zpráva o chybě při zakládání pásky. Jestli následuje za CODE jen jedna hodnota, definuje pouze počáteční adresu, od které mají být umístěny veškeré byty.
Výše uvedený příklad může být rovněž prováděn pomocí klíčových slov LOAD SCREEN$.
Detaily o ukládání bytů jsou uvedeny pod SAVE CODE.
Formát:
LOAD
string-expr CODE[
int-num-expr][,
int-num-expr]
Umístění klávesy:
J
,
EXTEND MODE
,
D
Příkaz/povel
LOAD DATA se užívá pro nahrávání polí z pásku. Pole jsou nahrávána použitím SAVE DATA
.270 LOAD "numbers" DATA n() 300 LOAD "names" DATA n$()
Název souboru následující za LOAD je název, který je dán v poli na pásku a je podřízen stejným omezením jako název programu užitý s LOAD. Písmeno nebo písmeno $ následující za klíčovým slovem DATA je název, který má být dán poli v programu, je-li založeno a použito.
Při vykonávání hledá Spectrum pojmenované pole na pásku. Po jejich nalezení vydá zprávu o číselném poli: nebo typovém poli: následovaném jménem a pole se zakládá. Jakékoli pole, které je v dané chvíli v paměti a má stejné písmeno názvu (n nebo n$) je vymazáno, a nové pole, které má toto jméno - písmeno a hodnoty uskladněné na pásku, je vytvořeno na jeho místě. S typovými poli je i jakákoli proměnná textová v dané chvíli uložená v paměti, která má stejný název, rovněž vymazána.
Formát:
LOAD
string-expr DATA
letter[$]()
Umístění klávesy:
J
,
EXTEND MODE
,
SYMBOL SHIFT
K
Příkaz/povel
LOAD SCREEN$ umožňuje založení displaye na obrazovce přímo z pásku. Vysílá informace z pásku do části paměti, která ovládá a řídí display obrazovky v postupu, jak je tvořen obraz.
LOAD "picture" SCREEN$
Název souboru, který následuje LOAD, je název, který je dán obrazovce informací na pásku a je podřízen stejným omezením jako programová jména použitá s LOAD. Spectrum poté hledá pojmenovanou informaci a po nalezení ji nejdříve plní do displayového uspořádání a poté atributní části paměti. Obraz se postupně skládá z barev, které má v dané chvíli tisk i podklad obrazovky. Poté jsou přidány vlastnosti (barvy atd.).
Podrobnosti o úschově informací z obrazovky - viz SAVE SCREEN$.
Formát:
LOAD
string-expr SCREEN$
Umístění klávesy:
EXTEND MODE
C
Příkaz/povel
LPRINT dává tiskárnám Sinclair příkaz PRINT danou pozici dat stejným způsobem, jak se PRINT objevuje na obrazovce. Užití: LPRINT může tvořit příkaz v programu nebo přímý povel. Je následován pozicemi údajů, které mohou být odděleny středníky, čárkami nebo apostrofy, např.
60 LPRINT "Number";x' "Name";n$, "Age";a
Při výstupu do tiskárny jsou pozice vytištěny ve stejném formátu jako se budou zobrazovat na obrazovce. Příkaz LPRINT nebo povel LPRINT může rovněž zahrnovat příkazy TAB, CHR$, INVERSE a OVER a řídící kódy se stejným účinkem, jako je povel PRINT. Lze rovněž začlenit příkaz AT, avšak tehdy je vypuštěno číslo řádku a pozice údajů, které jsou tištěny v daných sloupcích ve stejném řádku.
Formát:viz. str. 64 originálu sloupec uprostřed
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
T
Povel/příkaz
MERGE umožňuje sloučení dvou programů.
500 MERGE "prog2"
Název souboru následující za klíčovým slovem MERGE je název programu, který má být sloučen s programem, který je v daném okamžiku v paměti. Toto jméno je podřízeno stejným omezením jako programová jména použitá s LOAD. MERGE poté založí nový program bez předchozího vymazávaní stávajícího programu. Nový program přepisuje veškeré řádky ve stávajícím programu, které mají stejná řádková čísla jako řádky nového programu, a proměnné se stejnými názvy jsou rovněž přepsány.
Formát:
MERGE
string-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
6
Umístění klávesy:
A
Příkaz/povel
NEW čistí paměť Basicu (oblast na RAMTOP), odstraňuje veškeré programy, které jsou v této části paměti.
Formát:
NEW
Umístění klávesy:
N
Příkaz/povel
NEXT se vždy užívá spolu s FOR pro vytvoření smyčky FOR NEXT.
90 NEXT a
V jazyce Sinclair Basic musí být přidána řídící proměnná. Podrobnější údaje o smyčkách FOR NEXT jsou uvedeny pod tímto heslem.
Formát:
NEXT
letter
Umístění klávesy:
SYMBOL SHIFT
S
Logický operátor/funkce
NOT se užívá pro převracení pravdivosti podmínky, takže záporná podmínka se stává pravdivou a naopak.
90 IF NOT x=y+z THEN PRINT "Wrong" 90 LET correct =x=y+z:IF NOT correct THEN PRINT "Wrong"
Je-li NOT následováno podmínkou (x=y+z výše), počítač nejdříve označí hodnotu 1 podmínky, je-li pravdivá, a 0, je-li nepravdivá. NOT poté účinkuje jako funkce, převrací vydanou hodnotu, takže může být zkoumána převrácená podmínka. Podmínka musí být uzavřena v závorkách, obsahuje-li povely AND nebo OR. Jestliže je klíčové slovo NOT následováno číselnou hodnotou, vrací 0, je-li hodnota za ním nenulová, a 1, je-li hodnota následující za ním 0. Tzn. že ve výše uvedených příkladech vytiskne Spectrum "Wrong", je-li x <>y+z nebo je-li hodnoty 0.
Formát:
NOT cond
NOT
num-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
4
Umístění klávesy:
SYMBOL SHIFT
U
Logický operátor/funkce
OR je činné jako logický operátor pro zkoumání pravdivosti kombinací podmínek. Jestliže je jedna nebo více podmínek pravdivých, poté jsou pravdivé všechny kombinace. OR rovněž funguje jako funkce, která převádí binární operace na dvě číselné hodnoty.
70 IF INKEY$="N" OR INKEY$ = "n" THEN STOP
Jestliže jakákoli nebo obě z podmínek jsou pravdivé, poté je celá kombinace pravdivá. Ve výše uvedeném řádku je jedna z podmínek (INKEY$ = "N") a (INKEY$ = "n") pravdivá tehdy, jakmile je stisknuto tlačítko n bez ohledu na to, je-li v činnosti CAPS SHIFT nebo CAPS LOCK. Celá kombinace je tedy pravdivá a program se zastaví.
OR jako funkce:
ZX Spectrum+ označí číselnou hodnotu 1 pravdivou podmínku a 0 nepravdivou podmínku. Rozliší jakoukoli nenulovou hodnotu jako pravdivou a 0 jako nepravdivou. OR může proto být následováno nebo předcházeno číselnou hodnotou, např.
40 LET x=y OR z
Proměnná x je poté označena jako hodnota 1, je-li z nenulová nebo pravdivostní podmínka, nebo hodnota y, je-li z nulová nebo jako nepravdivá podmínka.
To je užitečné v matematice, na následujícím příkladu je jízdné rozpůleno, je-li věk nižší než 14:
60 PRINT fare*(0.5 OR age<13)
Je-li věk menší než 14, podmínka věk je menší než 13 je nepravdivá, takže jízdné je násobeno 0,5. Jestliže věk je větší než 13, poté je jízdné násobeno 1.
Spectrum nevyhodnocuje kombinace číselných hodnot v souladu se standardními pravdivostními podmínkami.
Formát:
cond OR cond|
num-expr OR
num-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
O
Příkaz/povel
OUT vysílá byty na daný vstupní/výstupní port adresy v postupu, který řídí výstupní zařízení.
40 OUT 254,3
Obě hodnoty jsou zaokrouhleny na nejbližší celé číslo, první hodnota (254) může být poté v rozsahu od 0 do 65535 a tvoří adresu portu. Druhá hodnota (3) může mít rozsah od 0 do 255 a je bytem, který je vysílán do této adresy.
Bity 0 až 2 bytu výstupů na adrese portu 254 seřizují barvu okraje; výše uvedený příklad proto převrací barvu na purpurovou. Bit 3 v této adrese řídí zdířku MIC a bit 4 reproduktor. Adresa portu 251 řídí tiskárnu a 254, 247 a 239 jsou užívány s jinými periferiemi.
Formát:
OUT
int-num-expr,
int-num-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
N
Příkaz/povel
Klíčové slovo OVER je užíváno pro přetisknutí jednoho typu na druhý. Může být rovněž užíváno pro vytyčení bodů nebo vytažení čar nebo křivek v barvě papíru namísto v barvě inkoustu.
80 OVER 1
Hodnota následující za OVER je zaokrouhlena na nejbližší celé číslo a může být buď 0 nebo 1. OVER 0, které je předem nastaveno, působí, že veškeré typy nahradí předchozí typy na stejné pozici.
OVER 1 způsobí, že se zobrazí 2 typy na stejné charakterové poloze a ty jsou kombinovány.
OVER může být uloženo do příkazu PRINT nebo INPUT stejným způsobem, jako INK, takže narušuje pouze typy, které jsou zobrazeny v příkaze. Tento příkaz např. podtrhuje slovo
60 PRINT AT 11,15,"YES"; OVER 1; AT 11,15;"_____"
Typy jsou kombinovány tak, že barva papíru je dána tam, kde barva inkoustu překrývá.
OVER u grafiky s vysokým rozkladem:
OVER může být užito s příkazy PLOT, DRAW a CIRCLE. Bez příkazu OVER se křivky, přímky mohou překrývat navzájem, avšak musí mít stejnou barvu inkoustu, jinak je barva inkoustu měněná v jejich průsečících. Je-li užito OVER 1, linky nebo křivky se dostávají na svých překrývajících se částech na barvu podkladu nebo dosahují typů. Vytyčené body nebo vytažené čáry nebo křivky opět přesně ve stejné pozici s OVER 1 zmizí.
Formát:
OVER
int-num-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
C
Příkaz/povel
Klíčové slovo OVER je užíváno pro volbu papíru nebo barvy pozadí použité pro obrazovku displaye. Může být buďto barvou pozadí po celé displayové ploše nebo barvou za jednotlivými typy, body nebo čárami, které se objevují na polohách jednotlivých typů.
80 PAPER x
Hodnota následující za PAPER je zaokrouhlené nejbližší celé číslo a může dosáhnout rozmezí 0-9. Barvy papíru, které jsou tím dány, jsou stejné jako barvy dané pomocí klíčového slova INK. Barvy papíru mohou být rovněž globální nebo mohou tvořit místní zabarvení pomocí jejich vkládání do příkazu displaye v přesně stejném způsobu jako při vkládání barev tisku. Viz INK pro podrobnější popis.
Kdykoli jsou tištěny typy následující příkaz PAPER, ať již globální nebo místní, pozadí za celým místem typu se mění na zvolenou barvu. Toto je rovněž pravdivé u vytyčených bodů nebo vytažených čar nebo kruhů s uvedením příkazu PAPER, avšak bez následného celkového povelu nebo příkazu.
Pro vytvoření zabarveného pozadí po celé ploše displaye je nezbytné použít CLS po klíčovém slově PAPER. Vlastní display je vyčištěn na tuto barvu, která zůstává celkovou barvou pozadí.
Formát:
PAPER
int-num-expr[;]
Umístění klávesy:
M
Příkaz/povel
Klíčové slovo PAUSE může být použito pro zadržení programu na stanovený nebo neurčitý čas.
130 PAUSE 100
Hodnota následující po PAUSE je zaokrouhlená na nejbližší celé číslo a může dosáhnout velikosti 0-65535. Definuje zdržení, které se projevuje u tohoto čísla řádku televizního obrazu, takže hodnota 50 vydává pausu 1 sekundy ve Velké Británii a Evropě, kde je síťová frekvence 50 Hz. Veškeré prodlevy mohou být zkráceny stisknutím jakéhokoli klíče a PAUSE 0 dává neomezenou prodlevu, která trvá, dokud není klávesa stlačena.
Formát:
PAUSE
int-num-expr
Umístění klávesy:
EXTEND MODE
O
Funkce
Klíčové slovo PEEK udává hodnotu bytu uloženého na hlavní adrese v paměti.
80 LET x=PEEK(256*y)
Výrazy musí být uzavřeny v závorkách. Hodnota následující za klíčovým slovem PEEK je zaokrouhlena na nejbližší celé číslo, je-li nezbytné, a může být v rozsahu 0-65535, aby udala adresy v paměti. PEEK poté vrací hodnotu bytu (číslo od 0 do 255) a udanou adresu.
Příklad:
Počet uspořádání televizního displaye, který se objevil při posledním zapnutí Spectra, byl uložen na adresy 23672-23674. Jelikož jsou tyto struktury vydávány v pravidelném poměru, špičkování jejich umístění udává metodu měření času. Následující řádek zobrazí čas v sekundách, neboť Spectrum byl naposledy zapnut (bez ohledu na jakoukoli dobu strávenou vydáváním zvuku a činností periferií, jako jsou kazetový přehrávač nebo tiskárna).
10 PRINT (PEEK 23672+256*PEEK 23673+ 65536*PEEK 23674)/50
Poznámka:
Je-li síťová frekvence 60 a ne 50 Hz (standart UK), změňte 50 na 60.
Formát:
PEEK
int-num-const
PEEK int-
num-var
PEEK (
int-num-expr)
Umístění klávesy:
EXTEND MODE
M
Funkce
PI udává hodnotu Ludolfova čísla (pí) ve výpočtech. Pí je poměr obvodu kruhu/průměr.
DRAW 255,0,-PI
PI vrací hodnotu 3,1415927, takže výše uvedený povel vytahuje velký půlkruh na obrazovce.
Formát:
PI
Umístění klávesy:
Q
Příkaz/povel
PLOT je užíváno u grafik s vysokým rozkladem, vytyčuje body nebo tečky barev na dílčích polohách na obrazovce.
50 PLOT 128,87
Obě hodnoty následující klíčové slovo PLOT jsou zaokrouhleny na celá čísla, je-li potřeba. První hodnota může sahat od 0 do 255 a definuje horizontální souřadnice na obrazovce. Druhá hodnota může být v rozmezí od 0 do 175 a stanoví svislé souřadnice. Bod je tím normálně vytyčen v správné barvě tisku na stanovené poloze - výše uvedený příklad - ve středu obrazovky.
Vlivy příkazů nebo povelů pro barvu při PLOT:
Po OVER 1 stávající tečka na stejné poloze je změněna na barvu podkladu. Použitím INVERSE 1 je tato tečka vytyčena v přesné barvě papíru. Po BRIGHT 1 nebo FLASH 1 bude celá poloha typu u obrazovky s nízkým rozkladem v místě vytyčeného bodu světlá nebo blikající. Tato čtyři klíčová slova a INK mohou rovněž být přidána uvnitř příkazu PLOT stejným způsobem jako s PRINT, např.
160 PLOT INK 2;x,y
Jejich efekt je stejný, avšak je místní a omezený na body vytyčené příkazem. Jestliže klíčové slovo PAPER doplněno do příkazu PLOT, barva papíru celého typu a jeho polohy okolo bodů se změní na danou barvu.
PLOT rovněž stanoví počáteční polohu dalšího příkazu DRAW.
Formát:
PLOT[
statement;]
int-num-expr,
int-num-expr
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
8
Funkce
POINT je používání, která barva na hlavní poloze obrazovky s vysokým rozkladem je buď barvou tisku nebo barvou podkladu. POINT nekontroluje skutečnou barvu.
240 IF POINT(x,y)=1 THEN GOSUB 600
Dvě hodnoty následující klíčové slovo POINT jsou zaokrouhleny na celá čísla podle nezbytnosti. První hodnota může mít rozsah od 0 do 255 a stanoví vodorovnou souřadnici bodu na obrazovce. Druhá hodnota může mít rozsah od 0 do 175 a stanoví svislou souřadnici. POINT poté vrací 1, jestliže bod na stanovené poloze je barva tisku, nebo 0, je-li barvy papíru.
Formát:
POINT(
int-num-expr,
int-num-expr)
Umístění klávesy:
O
Příkaz/povel
POKE je užíváno pro změnu hodnoty bytu na hlavní adrese v paměti. Hodnoty jsou běžně zasílány na paměťová místa v pořadí, jak mají udávat činnosti nezadané klíčovými slovy Basic.
POKE 23609,255
Dvě hodnoty následující POKE jsou zaokrouhleny na nejbližší celé číslo podle nezbytnosti. První hodnota může být v rozsahu od 16384 do 65535 a udává adresu v RAM. Druhá hodnota může být v rozsahu od 0 do 255 a tvoří byte, který má být zapsán do stanovené adresy.
Ve výše uvedeném příkladě je 255 vloženo do adresy 23609, která řídí zvuk vyráběný při stisknutí klávesy. Hodnota 255 dává dlouhý pípavý zvuk namísto krátkého, jiné hodnoty vydávají kratší pípnutí.
Formát:
POKE
int-num-expr,
int-num-expr
Umístění klávesy:
P
Příkaz/povel
PRINT zobrazuje údaje na obrazovce. Data mohou být jakýkoli jednoduchý typ nebo sousled typů. Příkaz PRINT může zahrnovat další klíčová slova pro definici polohy a barvu údaje.
Určitá další klíčová slova mohou být vkládána do jakéhokoli pořadí mezi PRINT a data s tím, že každý příkaz utvářený klíčovým slovem končí středníkem. Tato klíčová slova jsou: CHR$, TAB, AT, INK, PAPER, FLASH, BRIGHT, INVERSE a OVER.
Výpis textu pomocí PRINT:
PRINT sám o sobě nebo následován nulovým textem ("") zobrazí slepou řádku a pohybuje cursorem na začátek další řádky.
PRINT následovaný textovou konstantou (jakékoli typy uvnitř "") označuje typy jak se objevují mezi uvozovkami), např. PRINT "3/542/76/21" zobrazí na obrazovce 3/542/76/21.
PRINT následovaný textovou proměnnou nebo vyjádřením zobrazí text nebo texty, které představují.
PRINT s čísly:
PRINT následovaný jakoukoli číselnou hodnotou zobrazí vyjádření hodnoty. Čísla jsou zobrazována v desetinné soustavě s přesností na 8 míst, a bez nul za desetinnou tečkou. Velice velká a velice malá čísla jsou zobrazena v kratší vědecké formě, jako dva tvary oddělené písmenem E. To značí, že číslo je ve své první části (mantisa) povýšeno na mocninu 10 druhé části (exponent).
Povel...
PRINT 3/542/76/21
...např. zobrazí:
3.4680798E-6
PRINT ve spojení s punkčními znaménky:
PRINT následovaný pozicemi dat oddělenými středníky zobrazí polohy umístěné vedle sebe bez mezery.
Povel...
PRINT 1;2;3
...zobrazí:
123
PRINT sledovaný pozicemi údajů oddělených zobrazí každou na začátku nebo ve středu řádku v závislosti na poloze první z nich.
Povel...
PRINT 1,2,3
...zobrazí:
1 2 3
PRINT následovaný pozicemi údajů oddělenými apostrofem zobrazí pozici za apostrofem na začátku další řádky.
Povel...
PRINT 1'2'3
...zobrazí:
1 2 3
Jestliže příkaz PRINT nebo povel PRINT končí středníkem, čárkou nebo apostrofem, pozice zobrazená dalším PRINT je ovlivněna stejným způsobem.
PRINT a další klíčová slova:
PRINT může být následováno klíčovým slovem TAB, číselnou hodnotou, středníkem a poté pozicí údaje, např.
60 PRINT TAB x;a$
Hodnota následující za TAB (x) je zaokrouhlena na nejbližší celé číslo podle nutnosti a poté je dělena 32 a zbytek převrácen, aby dal hodnotu mezi 0 a 31. Pozice údaje je poté zobrazena v této sloupcové poloze ve stejné nebo další řádce. PRINT může být následován i AT a poté dvěma čísly oddělenými čárkou, středníkem a pozicí dat, např.
50 PRINT AT I,c; "Data"
První hodnota (I) může mít rozsah 0 až 21 a stanoví počet řádek nebo řádků, ve kterých budou údaje zobrazeny.
Druhá hodnota (c) může mít rozsah 0 až 31 a stanoví počet sloupců, ve kterých bude první typ nebo údaj zobrazen. Necelá čísla jsou přijímána a zaokrouhlena na nejbližší celé číslo.
Povel...
PRINT AT 11,16; "*"
...zobrazí hvězdičku ve středu obrazovky.
PRINT může být rovněž následován jedním nebo více funkcemi CHR$ - viz funkce CHR$.
PRINT a klíčová slova barev:
Display vydávaný pomocí PRINT je ovlivněn příkazy o barvách nebo povely o barvách dodávanými klíčovými slovy INK, PAPER, FLASH, BRIGHT, INVERSE a OVER, která jsou právě činná.
PRINT může být rovněž následováno jedním nebo více z těchto šesti příkazů, z nichž každý je následován středníkem před pozicí dat, např.
50 PRINT AT 11,16; INK 2; FLASH 1; "*"
Položka údaj je potom zobrazena s vlastnostmi danými klíčovým slovem barvy. Tyto vlastnosti jsou místní a vztahují se pouze na zobrazenou pozici. Následující provedení příkazu PRINT se vrací do svého původního stavu nebo na předešlou stanovenou celkovou hodnotu. PRINT rovněž uposlechne příkazu kódů řídících místní barvu, které jsou vloženy do údajů.
Formát:
viz str. 68 originálu prostřední sloupec dole
Umístění klávesy:
T
Příkaz/povel
RANDOMIZE je na klávesnici pod zkratkou RAND, používá se spolu s RND pro vyrábění sekvencí čísel, která jsou buď libovolná nebo předvídatelná.
RANDOMIZE 1 10 RANDOMIZE
Hodnota následující po klíčovém slově RANDOMIZE je zaokrouhlena na nejbližší celé číslo a může být v rozmezí od 0 do 65535. Hodnota vyšší než 0 se řídí soustavou proměnných SEED do této hodnoty následující po RND, které vždy generuje stejnou řadu čísel (viz str. 48 o systémových proměnných).
Skutečný sled závisí na hodnotě klíčového slova RANDOMIZE.
Jestliže je klíčové slovo RANDOMIZE následováno 0 nebo žádnou hodnotou, poté je SEED dáno jinou systémovou proměnnou nazývanou FRAMES, která počítá rámy zobrazené na televizi od chvíle, kdy bylo Spectrum zapnuto. Jak se SEED mění 50 nebo 60 krát za sekundu, řada čísel generovaných RND následující za RANDOMIZE nebo RANDOMIZE 0 je velmi náhodná. Jestliže nepoužíváme RANDOMIZE, RND generuje stejné pořadí čísel od zapnutí a použití tlačítka RESET nebo NEW.
Formát:
RANDOMIZE[
int-num-expr]
Umístění klávesy:
EXTEND MODE
A
Příkaz/povel
READ je užíváno spolu s DATA pro přirazení hodnoty proměnných za použití hodnot v příkaze DATA.
20 READ a$,x
Když je poprvé READ prováděno, bere stejné číslo hodnoty, jako je proměnná na začátku prvního výpisu DATA, a přiradí hodnotu proměnné v daném pořadí. Když je READ prováděno dále, další sada hodnot DATA je přiřazena dalším proměnným pojmenovaným v příkaze READ atd.
Další podrobnosti - viz DATA.
Formát:
READ
num-var[,
num-var][,
string-var]
READ
string-var[,
num-var][,
string-var]
Umístění klávesy:
E
Příkaz
REM je užíváno pro založení poznámek nebo připomínek do programu. Tyto mohou být: titul a autor programu, vysvětlení řádků v programu, účel proměnných atd. Poznámky nehrají žádnou roli v chodu programu a mohou být viděny pouze ve výpisu.
80 INPUT n$:REM n$ is name
Když počítač zaznamená REM, neuvažuje žádné údaje až do konce řádku.
Formát:
REM
any characters
Umístění klávesy:
EXTEND MODE
S
Příkaz/povel
RESTORE je užíváno spolu s READ a DATA. Provádí příkaz pro vybírání hodnot READ z dílčích příkazů DATA namísto prvního nebo dalšího příkazu DATA v programu.
160 RESTORE 800
Hodnota udaná za RESTORE je zaokrouhlena na nejbližší celé číslo a musí být číslem řádku programu obsahujícího příkaz DATA. Po klíčovém slově RESTORE přiřadí další příkaz READ hodnoty obsažené v tomto příkaze DATA. Jestliže očíslované řádky neexistují, nebo neobsahují příkaz DATA, poté přechází READ na další příkaz DATA za tímto řádkem. Jestliže je RESTORE následováno nulou nebo nulovou hodnotou, další příkaz READ přechází na první příkaz DATA v programu.
Formát:
RESTORE[
int-num-expr]
Umístění klávesy:
Y
Příkaz/povel
RETURN je užíváno pro zapojení podprogramu a vrácení počítače do hlavního programu nebo předešlého podprogramu.
1080 RETURN
Po výkonu se program větví na příkaz následující za posledním příkazem GOSUB, který byl proveden.
Viz heslo GOSUB, kde je podrobnější vysvětlení.
Formát:
RETURN
Umístění klávesy:
EXTEND MODE
T
Funkce
RND se používá na generování náhodných čísel.
60 LET x=RND
RND pak vrací náhodná čísla menší než 1 a větší než 0. Když je počítač zapnut nebo znova nastaven nebo je použito klíčového slova NEW, čísla se postupně vrací pomocí RND ve stejném pořadí. Pořadí je generováno podle mocniny 75(75,75*75,75*75*75 atd.) dělíc každou mocninu 65537 a užívajíc pouze zbytek, poté odčítá 1 od zbytku a dělí tento výsledek 65536. Je-li vyžadována více náhodná sekvence nebo jiná pevná sekvence, užijte před RND RANDOMIZE.
Celá náhodná čísla:Mnoho příkazů a funkcí v počítači Spectrum, jako INK, CHR$, čísla blízká a limitně se blížící celým číslům a RND mohou být použita přímo. INK RND*7 např. vydává náhodnou barvu inkoustu. Další požadavky celých čísel a všech úplných čísel od 1 do x je dáno INT (RND*x)+1. Pro generování náhodných celých čísel od 0 do x užijte INT(RND*x+0.5).
Formát:
RND
Umístění klávesy:
R
Příkaz/povel
RUN startuje program od prvního řádku.
RUN 50
Není-li žádná hodnota za RUN, program běží od prvního řádku. Je-li začleněna hodnota, je zaokrouhlena na nejbližší celé číslo a program poté začíná od tohoto řádku. Jestliže řádek neexistuje, program začíná od dalšího řádku programu. RUN provádí CLEAR před probíháním programu, takže proměnné hodnoty jsou vymazány. Abyste tomu zabránili, užijte klíčové slovo GOTO následované číslem řádku.
Jestliže byl program zachován použitím klíčového slova LINE, pak běží automaticky při zakládání a RUN není vyžadováno.
Formát:
RUN[
int-num-expr]
Umístění klávesy:
S
Příkaz/povel
SAVE zasílá program na kazetový přehrávač podle pořadí, aby byl zachován na pásce.
SAVE "filename"
Název souboru může obsahovat až 10 typů. Při provádění je zobrazena zpráva:
Start tape, then press any key
Při stisknutí jakékoli klávesy je program vyslán do kazetového přehrávače a na závěr je vyslána zpráva
0 OK,0,1
SAVE je užíváno jinak v případě připojení microdrivu. Detaily - viz Microdrive a Interface 1 - příslušný manuál.
Automatické spouštění:
Jestliže je program koncipován tak, že se má spustit po nahrání, musí být SAVE použito spolu s LINE. Programové jméno je následováno klíčovým slovem LINE a číselnou hodnotou, např.
SAVE "filename" LINE 1
Hodnota následující za LINE je zaokrouhlena na nejbližší celé číslo podle nutnosti a může být buď 1 anebo číslo řádku v programu. Poté je program uložen na pásek stejným způsobem jako při SAVE. Při nahrávání se program automaticky zpustí od řádku, který má definované číslo nebo od následujícího řádku v programu jestli řádek s definovaným číslem neexistuje. V praxi použití LINE 1 způsobí, že se celý program zpustí automaticky.
Formát:
SAVE
string-expr [LINE
int-num-expr]
Umístění klávesy:
S
,
EXTEND MODE
,
I
Příkaz/povel
SAVE CODE zasílá část paměti s informacemi na kazetový přehrávač k uložení na magnetofonový pásek. Informace mohou být poté načteny zpět do paměti použitím LOAD CODE.
SAVE "picture" CODE 16384,6912
Název souboru který následuje SAVE může mít až 10 písmen. Hodnoty následující za CODE jsou zaokrouhlené na nejbližší celé číslo, je-li to nutné. První udává počáteční adresu (16384 výše) informace v paměti a druhá hodnota (6912) udává počet bytů, které mají být uloženy. Poté je informace odeslána na pásek stejným způsobem jako program příkazem SAVE.
Informace uložená výše uvedeným příkazem je obrazovka displaye.
Formát:
SAVE
string-expr CODE
int-num-expr,
int-num-expr
Umístění klávesy:
S
,
EXTEND MODE
,
D
Povel/příkaz
SAVE DATA uloží pole na pásku. Pole může být založeno použitím LOAD DATA.
450 SAVE "numbers" DATA n() 750 SAVE "names" DATA n$()
Název souboru pole může obsahovat až 10 písmen. Písmeno nebo písmeno $, které následuje za klíčovým slovem DATA je název pole v programu, které má být uloženo na pásku. Poté je pole odesláno na pásku stejným způsobem jako program příkazem SAVE.
Formát:
SAVE
string-expr DATA
letter [$]()
Umístění klávesy:
S
,
EXTEND MODE
,
SYMBOL SHIFT
K
Příkaz/povel
SAVE SCREEN$ ukládá obrazovku displaye na pásku. Ta může být později opět založena do počítače použitím LOAD SCREEN$.
SAVE "picture" SCREEN$
Název souboru může mít až deset písmen. Poté je obrazovka odeslána na pásku stejným způsobem jako program příkazem SAVE.
Formát:
SAVE
string-expr SCREEN$
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
K
Funkce
SCREEN$ stanoví, který typ se objeví v hlavní poloze na obrazovce.
160 $(I,c) = "X " THEN PRINT "CRASH"
Hodnoty následující SCREEN$ jsou zaokrouhleny na nejbližší celé číslo. První hodnota (I) může mít potom rozsah 0-21 a udává číslo řádku polohy na obrazovce. Druhá hodnota (c) může mít rozsah od 0-31 a uvádí číslo sloupce polohy. SCREEN$ poté vrací typy zobrazené na této poloze jako textovou konstantu (v uvozovkách - viz "X" výše). Není-li žádný typ na dané poloze, SCREEN$ se vrací na 0 tisk ("").
SCREEN$ může být rovněž užito se SAVE a LOAD pro uchování displaye na obrazovce na pásek a opětovné založení tohoto obrazu z pásku. Viz SAVE SCREEN$ a LOAD SCREEN$, kde jsou uvedeny podrobnosti.
Formát:
SCREEN$ (
int-num-expr,
int-num-expr)
Umístění klávesy:
EXTEND MODE
F
Funkce
SGN značí, které číslo je kladné, záporné nebo nulové.
50 LET x=SGN y
Vyjádření musí být uzavřeno v závorkách. SGN poté vrací 1, je-li hodnota argumentu (y) kladná, -1, je-li záporná, a 0, je-li nulová.
Formát:
SGN
num-const
SGN
num-var
SGN (
num-expr)
Umístění klávesy:
EXTEND MODE
Q
Funkce
SIN udává sinus úhlu.
80 LET x=SIN y
Vyjádření musí být uzavřeno do závorek. Hodnota následující SIN je úhel v radiánech a SIN vrací sinus úhlu. Stupně mohou být převedeny na radiány pomocí vynásobení PI/180.
SIN vrací kladné hodnoty úhlů mezi 0-180 stupni, záporné hodnoty pro úhly mezi 180-360 stupni.
Příklad:
PRINT SIN (30*PI/180)
Zobrazí:
0.5 - sinus 30 stupňů
Formát:
SIN
num-const
SIN
num-var
SIN (
num-expr)
Umístění klávesy:
EXTEND MODE
H
Funkce
SQR dává druhou odmocninu čísla.
70 LET x=SQR y
Vyjádření musí být uzavřeno v závorkách. Hodnota následující za SQR (výše uvedený y) musí být vyšší než 0 a SQR vrací druhou odmocninu.
Formát:
SQR
num-const
SQR
num-var
SQR (
num-expr)
Umístění klávesy:
SYMBOL SHIFT
D
Umístění klávesy:
SYMBOL SHIFT
A
Příkaz/povel
STOP zastavuje program na daném bodě. Může být nezbytné použít příkazu STOP pro ukončení hlavní části programu v posloupnosti pro ohraničení podprogramů na samostatný oddíl. STOP je rovněž platné v odlaďování programů.
650 STOP
Při výkonu program zastaví na zprávě
9 STOP statement
Objeví se s řádkem a číslem příkazu, na kterém je program zadržen.
V této fázi může být rovněž odlaďován program, jako např. zobrazování a výměna hodnot proměnných.
Po stisknutí CONTINUE program dále pokračuje na dalším příkazu s novými hodnotami.
Formát:
STOP
Umístění klávesy:
EXTEND MODE
Y
Funkce
STR$ převádí číslo do textu.
90 LET a$=STR$ x
Vyjádření musí být uzavřeno v závorkách. STR$ poté vrací hodnotu argumentu (x výše) jako textovou konstantu. Jestliže x bylo označeno hodnotou 65, výše uvedený příkaz označený a$ má hodnotu "65".
Formát:
STR$
num-const
STR$
num-var
STR$ (
num-expr)
Umístění klávesy:
EXTEND MODE
P
Umístění klávesy:
EXTEND MODE
E
Funkce
TAN udává tangentu úhlu.
130 LET x=TAN y
Vyjádření musí být uzavřeno v závorkách. Hodnota následující za TAN je úhel v radiánech a TAN udává tangentu úhlu. Stupně mohou být převáděny do radiánů násobením číslem PI/180.
TAN udává kladnou hodnotu pro úhly 0-90 stupňů a 180-270 stupňů. Pro úhly mezi 90-180 stupni a mezi 230-360 stupni udává TAN zápornou hodnotu.
Formát:
TAN
num-const
TAN
num-var
TAN (
num-expr)
Umístění klávesy:
SYMBOL SHIFT
G
Umístění klávesy:
SYMBOL SHIFT
F
Funkce
TO má dvě odlišné využití v jazyce Sinclair Basic. Je užíváno spolu s FOR pro vytvoření smyčky FOR NEXT (viz FOR) a je rovněž užíváno při rozdělování řetězcových proměnných do menších.
80 PRINT a$ (4 TO 7)
Výraz textu musí být rovněž uzavřen v závorce. Hodnota textu (a$ výše) je text, který má být rozdělen. Dvě číselné hodnoty (4 a 7) definují polohu prvního a posledního typu podtextu uvnitř textu. Klíčové slovo TO poté udává podtext (typy 4-7 daného textu).
První číselná hodnota má základní hodnotu 1 a druhá má základní hodnotu rovnou pozici posledního typu v textu. První hodnota může proto být vypuštěna, začíná-li podtext prvním typem v textu, a druhá hodnota může být vypuštěna, končí-li podtext posledním typem textu.
Formát:
string-const([
num-expr]TO[
num-expr])
string-var([
num-expr] TO[
num-expr])
(
string-expr)([
num-expr]TO[
num-expr])
Umístění klávesy:
EXTEND MODE
L
Funkce
USR se používá pro vyvolání podprogramu ve strojovém kódu, který byl umístěn do paměti na zvláštní adresu. Je rovněž užíváno pro umístění údajů pro uživatelsky definované grafiky na vyhražených místech v horní části paměti.
80 PRINT USR 65000 100 RANDOMIZE USR 65000
Vyjádření musí být uzavřeno v závorkách. Hodnota následující za USR je zaokrouhlena na nejbližší celé číslo a je počáteční adresou v paměti, na které byl umístěn podprogram ve strojovém kódu.
Další příkaz obsahující USR poté vyvolává podprogram z této adresy a USR vrací hodnotu obsahu na dvojici bc registrů. RANDOMIZE USR nebo RESTORE USR, např. nechá probíhat pouze podprogram, zatímco PRINT USR navíc zobrazí hodnoty registru.
USR a grafiky definované uživatelem:
Pro vytvoření grafik definovaných uživatelem je použito USR spolu s POKE. Je následováno textovou konstantou nebo proměnnou, která udává adresu pro příkaz POKE, např.
50 POKE USR "a", 255
Textová hodnota následující USR může být jednoduché písmeno v rozsahu A-U nebo a-u. Velká písmena nejsou odlišována od malých.
USR poté udává počáteční adresu jedné z 21 částí paměti vyhražené pro grafiky definované uživatelem. Každá část obsahuje 8 adres, na jejichž 8 bytů jsou dávány typy pro vytvoření daných grafik. Byty mohou být udány v desetinné formě nebo binární formě (viz BIN).
Formát:
USR
int-num-const
USR
int-num-var
USR (
int-num-expr)
USR
string-const
USR
string-var
Umístění klávesy:
EXTEND MODE
J
Funkce
VAL mění text s číselnou hodnotou na číslo.
70 LET x=VAL a$
Hodnota textové konstanty nebo proměnné je rozdělena uvozovkami a musí být číselné hodnoty. VAL vyhodnocuje tento údaj, udává jej jako číselnou konstantu.
Příklady:
Jestliže a$ má hodnotu "435", poté výše uvedený příkaz označuje hodnotu 435-x. VAL rovněž může vyhodnotit vyjádření, např.
10 INPUT a$,x 20 PRINT VAL a$
Textová hodnota je označena jako a$ - musí být vyjádřena použitím x, např. "x*x". Poté je x přiřazena číselná hodnota, např. 5. VAL odstraní uvozovky textu, čímž získá x*x a vyhodnotí ji užitím hodnoty přiřazené x, zobrazí výsledek 25.
Formát:
VAL
string-const
VAL
string-var
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
J
Funkce
VAL$ vyhodnocuje text jako vyjádřený text.
130 PRINT VAL$ a$
Hodnota textové proměnné je oddělena od uvozovek a musí být vyjádřením textu. VAL$ vyhodnocuje vyjádření a udává hodnotu jako textovou konstantu.
Příklady:
Vyzkoušejte následující program:
10 INPUT a$,x$ 20 PRINT VAL$ a$
Textové hodnoty jsou takové, že a$ musí být vyjádřením použití x$, např. "x$ + x$".
Textová hodnota je poté označena jako x$, např. "DO". VAL$ oddělí uvozovky od hodnoty a$, čímž získá x$ + x$ a vyhodnotí je použitím hodnoty přidané x$, zobrazí výsledek DODO.
Formát:
VAL$
string-var
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
R
Příkaz/povel
Klíčové slovo VERIFY kontroluje, že program byl přesně uložen do paměti po SAVE.
VERIFY "filename" (název souboru)
Když byl pásek spuštěn, název každého programu, který je nalezen, je zobrazen a všechny programy na pásku stejného jména jsou porovnávány s programem v paměti. Jestliže jsou nalezeny dva stejné, objeví se zpráva
0 OK,0:1
.
Klíčové slovo VERIFY je použito při připojení microdrivů jiným způsobem. Viz příručka pro Microdrive a Interface 1
. VERIFY CODE a VERIFY DATA:
VERIFY CODE může být použito stejným způsobem jako LOAD CODE pro ověření, že část paměťové informace byla uložena na pásku.
VERIFY DATA pracuje stejným způsobem jako LOAD DATA pro kontrolu, že pole byla uložena na pásku.
VIZ LOAD CODE a LOAD DATA - další podrobnosti.
Formát:
VERIFY
string-expr
VERIFY
string-expr CODE[
int-num-expr][,
int-num-expr]
VERIFY
string-expr DATA
letter[$]()
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
R
,
EXTEND MODE
I
Umístění klávesy:
EXTEND MODE
,
SYMBOL SHIFT
R
,
EXTEND MODE
D
Stránka byla už zobrazena: 216 ×
Aktualizováno: 12. 10. 2018, 10:05
Stránka načtena za 0.00811 sekund.