BASIC - Příkazy
V dále uvedených příkazech označují hranaté závorky nepovinné části příkazů, tři tečky naznačují možnost pokračování či opakování výčtu parametrů příkazu. Malými písmeny jsou uvedeny ty časti, které se nahrazují dle potřeby. Mezery nesmějí být uvnitř klíčových slov a identifikátorů, jinak jsou přípustné všude, nikde však nejsou povinné, lze proto pro ušetření paměti "namlaskat" příkazy na řádcích včetně parametrů za sebou /např. 10IFA=20THENGOTO560 /. Vyžaduje-li příkaz či funkce celočíselnou hodnotu, Basic automaticky použije INT pro odříznutí desetinných míst.
ř- číslo řádku, m,n- číslo, proměnná nebo výraz
Standardní příkazy - pro psaní a editaci programu
NEW
zruší celý program včetně jeho proměnných !
AUTO [m]
automatické číslování řádků s
přírůstkem 10 počínaje m. Bez parametru se čísluje od dosud nejvyššího čísla
řádku. Činnost se ukončí klávesou CLL a pak provedením libovolného příkazu v přímém módu.
LIST [ř]
výpis programu počínaje řádkem ř či nejblíže vyšším.
LLIST [ř]
vyzvednutí zadaného či nejblíže
vyššího k editaci, není-li provedena změna, stisk EOL zobrazí následující
řádek, jinak uloží řádek do paměti.
Pro práci s magnetofonem
SAVE n["jméno]
["*jméno]
záznam programu na magnetofon
pod číslem n /0-99/ a názvem jméno /max. 8 znaků/, je-li prvním znakem jména
*, pak program bude nahrán jako tzv. chráněný. Jméno neukončujte uvozovkou,
nedoporučuji příkaz používat v programu. Magnetofon zapněte na nahrávání před
odesláním EOL ! Chráněný soubor se po načtení do paměti sám spustí, nelze ho
přerušit klávesou STOP, po RESETu se vymaže celá paměť počítače.
LOAD n
načtení souboru čísla n do paměti. Přečte-li počítač hlavičku jiného souboru, jen zobrazí jeho číslo a název a dál čeká na hlavičku souboru s požadovaným číslem. Pro
n=0 načte soubor s libovolným číslem. Načte-li chráněný soubor, automaticky ho spustí.
CHECK n
kontrola správnosti nahrávky
souboru číslo n. Pracuje jako LOAD, ale soubor do paměti neukládá. Zadáme-li n
takové, jaké na pásce nemáme, příkaz nám postupně vypíše jména souborů na
pásce.
Pro řízení práce počítače
GOTO n
start programu od řádku n /lze uvést výraz/ se zachováním stavu hodnot proměnných
RUN [ř]
start programu od řádku ř /nutno uvést přesně/ s předchozím zrušením všech proměnných a polí
STOP
přeruší běh programu s výpisem čísla řádku přerušení
END
přeruší program jako STOP,
nevypisuje zprávu
CONT
obnoví běh programu pozastaveného STOP, END či klávesou STOP od následujícího řádku. Byl-li však
mezitím program měněn, nebo je konec programu, ohlásí chybu.
Základní příkazy
BEEP
zvukové návěští, pípnutí
CLEAR
zruší všechny proměnné a uvolní část paměti, kterou obsazovaly, program zachová beze změny.
DATA seznam konstant
uvádí seznam číselných i
znakových konstant oddělených čárkou, které mohou být čteny příkazy READ.
Příkazy data mohou být kdekoliv v programu, protože nevykonávají žádnou
činnost. Všechny příkazy DATA vytvářejí dohromady jediný seznam konstant !
DEF FNC f(p)=ar. výraz
definuje uživatelskou funkci f
DEG
přepne zadávání goniometrických funkcí ve stupních
DIM jméno (mez1[,mez2[,mez3]])[,...]
deklarace jednorozměrných až trojrozměrných polí. Indexy, určující pak dále v programu prvek pole mohou nabývat hodnot 0-mez. Např. DIM A(5) deklaruje
jednorozměrné pole s šesti prvky
DISP seznam
výstup jako příkazem PRINT, ale
zobrazuje se v dialogovém ř.
FOR v=e1 TO e2 [STEP e3]
hlavička cyklu, který
předepisuje opakovat následující posloupnost příkazů až po odpovídající příkaz NEXT pro hodnoty jednoduché proměnné v od počáteční hodnoty dané výrazem e1
do koncové hodnoty dané e2 s přírůstkem e3. Není-li část STEP e3 uvedena, je
přírůstek 1. Poslední hodnota v nemusí být přesně e2, např. pro FOR A=3 TO -6
STEP -2.5 bude v=-4.5. Každý cyklus se provede vždy aspoň jednou. Případná
změna proměnné v uvnitř cyklu ovlivní počet průchodů cyklem, změna hodnot
e1,e2,e3 již vliv nemá. Při normálním skončení cyklu se pokračuje příkazem za
ukončením NEXT a v má hodnotu, pro kterou se jádro cyklu už neprovedlo. Při
opuštění cyklu příkazem GOTO má v hodnotu platnou v okamžiku opuštění cyklu,
návrat zpět do cyklu je přípustný. Skok dovnitř cyklu, který nebyl aktivován
provedením hlavičky cyklu je zakázán !!! Předčasné opuštění cyklu nemá vliv na
jeho případné příští použití. Cykly lze vkládat do sebe do sedmi úrovní, nelze
je však překrývat jen zčásti - příkaz NEXT ukončující vnitřní cyklus musí být
před ukončením vnějšího cyklu.
GCLEAR
vymaže obrazovku, nezaměňovat s
CLEAR !
GOTO n
nepodmíněný skok. Program bude pokračovat řádkem číslo n, za n lze uvést i proměnnou nebo výraz, který nezačíná číslem.
GOSUB n
volání procedury. Program bude
pokračovat řádkem n. Návrat z procedury nastane příkazem RETURN - vrátí se na
příkaz následující po volání GOSUB. Z procedury lze volat další procedury až
do 6. úrovně, avšak procedura nesmí volat sama sebe /rekurze/, ani nepřímo
přes další procedury.
IF podm THEN příkaz
[:příkaz...]
podmíněný příkaz. Příkazy za THEN se vykonají jen při splněné podmínce podm. Je na ni vázán celý zbytek
řádku, který smí obsahovat jakékoliv příkazy, tedy další vnořený IF. Podmínka
je považována za splněnou, je-li představována logickým výrazem s hodnotou ano
či aritmetickým výrazem s hodnotou nenulovou. Podmíněný skok lze psát i
zkráceným zápisem:
IF podm THEN n
IF podm
GOTO n
INPUT seznam proměnných
vstup hodnot do proměnných zadávaných z klávesnice. Seznam smí obsahovat identifikátory jednoduchých proměnných i prvků polí, oddělují se od sebe čárkami. Příkaz
pozastaví program, pískne a očekává hodnoty. Příkaz neumí vyhodnotit výraz !!!
Příkaz nedává žádnou výzvu k zadání hodnot, proto je vhodné napovídat uživateli před každou proměnnou např.:
DISP "Zadejte A:":INPUT A
Obsahuje-li seznam více proměnných, lze každou zadávanou hodnotu ukončovat EOL nebo jich uvést více oddělených čárkou. Má-li znaková hodnota čárku obsahovat, musí být celá v uvozovkách, aby se čárka nebrala jako oddělovač - jinak jsou uvozovky nepovinné.
[LET] v=výraz
přiřazovací příkaz, určí hodnotu výrazu a uloží ji do proměnné v. Klíčové slovo LET lze u tohoto příkazu vynechat.
NEXT [v[,w...]]
označuje konec cyklu pro danou
řídící proměnnou v,w... . Ukončuje-li více vnořených cyklů, nutno dodržet
správné pořadí proměnných - ukončit nejdříve nejvnitřnější a nakonec vnější
cyklus, bez parametru ukončí právě aktuální nejvnitřnější.
ON m [GOTO n[,n...] [GOSUB
n[,n...]]
přepínač - výraz m se
vyhodnotí, případně upraví INT a pak jeho hodnota určuje, kolikáté číslo řádku
v seznamu se má použít jako cíl příkazu. Není-li hodnota kladná nebo
přesahuje počet čísel v seznamu, nikam se neskáče a pokračuje se následujícím
příkazem.
ON ERR m [GOTO m]
nastaví uživatelskou obsluhu chyby běhu programu - m ukazuje číslo řádku, kam se má skákat při vzniku chyby. Po tomto povelu počítač při vzniku chyby nepřerušuje běh
programu s chybovým hlášením, ale chyba je ošetřena v řádku m. Po vzniku chyby se nastavení zruší.
PAUSE [n]
pozastaví výpočet na zadaný
časový interval n/10 sec., max. je 25.5 sec. Chybí-li n, předpokládá se 255.
Lze ukončit dříve mezerníkem. /U vestavěného BASIC-G /V2.1 je pravděpodobně chyba a reaguje klávesa MON/
PRINT [seznam]
postupně počítá a zobrazuje
hodnoty jednotlivých výrazů oddělených čárkou nebo středníkem. Je-li před
výrazem čárka, hodnota se zobrazí do nejbližšího volného sloupce /pozice
1,15,29,43/, středník způsobí, že výpis se přirazí hned za předchozí. Čárka,
středník na konci seznamu určuje polohu následujícího výstupu, jinak každý
nový PRINT začíná na novém řádku. PRINT bez parametrů způsobí přechod na nový
řádek. V seznamu lze použít i speciální funkce:
RAD
přepne zadávání goniometrických
funkcí v radiánech. Tento mód se nastavuje implicitně po resetu.
READ seznam proměnných
dosazuje do proměnných hodnoty,
které bere ze seznamu vytvořeného příkazy DATA /popořadě, takže programátor
sám musí dbát na to, aby typ konstanty, která bude právě na řadě, odpovídal
typu proměnné v příkazu READ/.
RESTORE [ř]
přikazuje, aby další příkazy READ začaly brát data od začátku seznamu konstant. Je-li uvedeno číslo řádku
některého příkazu DATA, pak ne od začátku seznamu, ale od první konstanty,
kterou příslušný příkaz DATA definoval.
RETURN
návrat z procedury, tj. skok na
příkaz za naposledy provedeným příkazem GOSUB.
REM [text]
nevykonává žádnou činnost,
umožňuje vkládání komentářů do programu. Chceme-li při ladění vynechat některý
řádek, stačí na jeho začátek napsat REM.
? seznam
výstup jako příkazem DISP, ale
po výpisu se program pozastaví do stisku libovolné klávesy.
Grafické příkazy
SCALE Xmin,Xmax,Ymin,Ymax
ocejchování obrazovky, tj.
nastavení transformace mezi 256x243 body obrazovky a souřadnicemi v dále
používaných příkazech AXES, MOVE, PLOT. Bez předchozího SCALE nelze tyto
příkazy použít. Je-li třeba, lze dalšími SCALE ocejchování obrazovky změnit.
AXES x,y
vykreslí osový kříž v o souřadnicích x,y
MOVE x,y
přesune pero bez kreslení do bodu x,y
PLOT x,y[,1]
vykreslí čáru z přechozí polohy
pera do nové polohy v bodě x,y. Je-li uveden parametr 1, čára se nekreslí, jen
se vyznačí koncový bod. Lze zadat i více souřadnic najednou oddělených
středníkem.
LABEL mx,my;seznam
výpis jako příkazem PRINT,
avšak poloha výpisu je určená pozicí pera po příkazech MOVE, PLOT, LABEL, FILL
a velikost znaků je určena měřítky mx a my /1-255/, která určují zvětšení
znaků ve směru os x a y. Po vykonání zůstává pero za posledním znakem dole.
Není-li třeba měnit mx, my, lze další LABEL napsat ve tvaru LABEL *;seznam.
Výstup tzv. grafických znaků není dořešen, a tak se při pokusu vypsat např.
zvětšené srdce objeví na obrazovce paskvil - díky autoru operačního systému
počítače Maťo panu Ivanu Urdovi z Banskej Bystrice.
FILL mx,my;maska
příkaz velmi podobný LABEL,
avšak místo znaků v maticích 6*8 bodů zobrazuje pouze bitový řádek šesti bodů,
zadaných maskou hodnoty 0-255. Význam má jen dolních 6.bitů masky, nejnižší
bit určuje první bod zleva /1-bod zadán,0-nezadán/. Po provedení zůstává pero
nad levým horním okrajem obrazce.
Např. dva sloupce vedle sebe, vysoké 80 bodů, široké 5 a 10 bodů oddělené mezerou šířky 15 bodů:
FILL 5,80;49 / 49=110001/
BMOVE nx,ny
nastaví pero na začátek nx-té
znakové pozice /0-47/ o souřadnici ny /zhora 0-242/ pro tzv. bytovou grafiku.
Určuje přímo bod obrazovky a nijak tedy nesouvisí se SCALE. Pracuje na plném
rozsahu obrazovky 288*243 bodů.
BPLOT v$,n
vykreslí obsah znakové proměnné
od pozice dané příkazem BMOVE po n znacích vedle sebe, postupně na řádky bodů
ležící pod sebou /směrem dolů/. Každý byte proměnné v$ určuje šestici bodů,
včetně jejich jasu a blikání. Po provedení příkazu BPLOT zůstává pero za
naposled zobrazenou šesticí bodů. /pro blikání a polojas musí být počítač Maťo
vybaven doplňkem například podle návodu na těchto stránkách/
PEN n
nastavuje charakteristiky pro
grafické příkazy. Příkazem můžeme řídit jednak jas a blikání vykreslovaných
motivů jako funkcí INK v příkazu PRINT jednak způsob vykreslování motivů.
Nastavení je dáno součtem bitových masek takto:
1 kreslení sníženým jasem, 2 kreslení blikáním, 4 kreslení inverzně, 8 kreslení negováním, 16 kreslení mazáním.
Není-li v součtu n 8 ani 16, kreslí se nastavováním, tj. kde se kreslí, tam se rozsvítí obrazovka. Pokud je v součtu 8 i 16, bere se jen 16. Implicitně je nastaveno n=8.
Sytémové příkazy a funkce
ROM n
přesune obsah zvolené
uživatelské paměti ROM 1kB z ROM-modulu připjeného na K2 do operační paměti od
adresy 7000H. n může být 0-6. Po přenesení se program ve strojovém kódu hned
spustí od adresy 7000H. Návrat je možný instrukcí RET.
Pravda je, že takový modul nejspíš nikdo nikdy neviděl.
POKE adr,n[,n...]
uloží na adresu adr hodnotu n
/0-255/, další n jsou ukládány na následující adresy. Adresy je lépe zadávat
hexadecimálně /s apostrofem/, protože dekadicky vyjádřená adresa přesahující
32767 se musí zadat dvojkovým doplňkem tj. záporným číslem v rozsahu -32768 až
-1 /65536/.
APOKE adr,w
pracuje obdobně jako POKE,
avšak do paměti ukládá word - slovo, tj. dva byty.
OUT p,n
zapíše na výstupní port p /0-255/ hodnotu n /0-255/
WAIT p,j,k
pozastaví program v závislosti na hodnotě portu p a maskách j,k.
CODE v$[,v$...]
provádí krátký program ve strojovém kódu uložený hexadecimálně do uvedených řetězcových proměnných. Program se přenese na adresu 7F00H, musí být ukončen instrukcí RET.
I/O příkazy
CONTROL k,adr;seznam výrazů
inicializace daného kanálu I/O modulu
OUTPUT kr;seznam výrazů
vyslání obsahu určeného seznamem na příslušný kanál
ENTER kr;seznam proměnných
vstup z příslušného kanálu do proměnných v seznamu
LIST#k;
výpis textu programu na zvolený výstupní kanál
Používání systémových a I/O příkazů vyžaduje podrobnou znalost programování ve strojovém kódu a znalost funkce příslušných obvodů jednotlivých částí počítače Maťo.