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.