- 1 -
Příklad řádku programu: 10 PRINT "WELCOME TO Atari BASIC"
Příkazy
ABS | absolutní hodnota proměnné nebo výrazu |
---|---|
ADR | decimální adresa řetězcové proměnné |
AND | logický operátor pro logický součin (a) |
ASC | ATASCII hodnota prvního znaku řetězcové proměnné |
ATN | arcustangens čísla nebo výrazu v radiánech nebo stupních |
BYE | návrat z Basicu do rezidentního operačního systému |
CLOAD | zavádí data z magnetofonu do počítače |
CHR$ | znak příslušející v ATASCII kódu určenému číslu |
CLOG | dekadický logaritmus čísla nebo výrazu |
CLOSE | ve spojení se vstupní/výstupní operací uzavírá otevřený IOCB blok |
CLR | ruší dimenzování všech polí a nuluje všechny proměnné |
COLOR | volí barvový registr |
COM | vykonává tutéž funkci jako DIM |
CONT | pokračování programu na následujícím řádku po přerušení STOPem |
COS | cosinus čísla nebo výrazu ve stupních nebo radiánech |
CSAVE | uložení dat na magnetofonovou kazetu |
DATA | vytváří seznam čísel nebo písmen pro příkaz READ |
DEG | následující trigonometrické funkce se zpracují v úhlových hodnotách |
DIM | vyhrazuje v paměti prostor pro matice, pole a řetězcové proměnné |
DOS | přechod do menu DOSu nebo Commanderu |
DRAWTO | kreslí úsečku mezi poslední polohou kurzoru a určeným bodem |
END | ukončení programu, uzavírá všechny otevřené soubory a zvukové kanály |
ENTER | načítá data nebo program ve zdrojové (textové) formě |
EXP | e(2.71828179) povýšené na určené číslo |
FOR | společně s příkazem NEXT vytváří cyklus FOR-NEXT |
FRE | počet volných byte v uživatelské oblasti paměti |
GET | načítá jeden byte z otevřeného IOCB bloku |
GOSUB | odskok do podprogramu |
GOTO | nepodmíněný odskok na určený řádek |
GRAPHICS | určuje jeden ze 16-ti grafických módů |
IF | podmíněný odskok nebo podmíněné vykonání operace na témže řádku |
INPUT | vstup dat z klávesnice nebo periférie |
INT | nejvyšší celé číslo, které je menší nebo rovno určené hodnotě |
LEN | délka určené řetězcové proměnné v bytech |
LET | přiřazuje hodnoty číselným a řetězcovým proměnným |
LIST | předává text programu na obrazovku nebo do periferního zařízení |
LOAD | zavádí program z disku či kazety do počítače |
LOCATE | do určené proměnné ukládá data, příslušející určenému bodu na obrazovce |
LOG | přirozený logaritmus čísla |
LPRINT | přikazuje řádkové tiskárně vytisknout určený text |
NEW | maže veškerý obsah uživatelské paměti |
NEXT | příkaz pro ukončení nebo pokračování cyklu |
NOT | logický zápor, používá se s příkazem IF |
NOTE | používá se pouze při práci s disketou |
ON | používá se ve spojitosti s GOTO a GOSUB k provedení podmíněných odskoků |
OPEN | otevírá určený IOCB blok pro vstupní nebo výstupní operace |
OR | operátor pro logický součet (nebo) |
PADDLE | udává polohu ovládače PADDLE |
PEEK | dekadická hodnota obsahu určené adresy |
PLOT | ukládá do místa určeného souřadnicemi X,Y obrazový element |
POINT | používá se pouze při práci s disketou |
POKE | ukládá určené číslo (0-255) na určenou adresu |
POP | ruší návratovou informaci příslušející posledně vykonávanému příkazu FOR nebo GOSUB |
POSITION | umisťuje kurzor do určeného místa na obrazovce |
příkaz pro tisk na obrazovku nebo do příslušného otevřeného IOCB bloku | |
PTRIG | udává stav spouštěcího tlačítka na ovládači PADDLE |
PUT | posílá jeden byte z počítače do určeného zařízení |
RAD | říká počítači, aby dával údaje u trigonometrických funkcí v radiánech |
READ | načítá položku ze seznamu v příkazu DATA a přiřazuje ji určené proměnné |
REM | označuje poznámky v programu |
RESTORE | dovoluje vícenásobné čtení z řádek DATA |
RETURN | ukončuje podprogram a vrací program na příkaz, bezprostředně následující příkaz GOSUB, který podprogram vyvolal |
RND | generuje náhodné číslo mezi 0 a 1, ale menší než 1 |
RUN | spouští program, nuluje proměnné a ruší dimenzování polí a řetězců |
SAVE | ukládá data z počítače na disketu nebo kazetu |
SETCOLOR | určuje barvu a světlost barvy pro zvolený barvový registr |
SGN | dává +1, je-li hodnota proměnné kladné číslo, 0, je-li nula a -1, je-li záporné číslo |
SIN | sinus hodnoty udané ve stupních nebo radiánech |
SOUND | volí zvukový kanál, výšku tónu, zkreslení a hlasitost |
SQR | druhá odmocnina určeného čísla |
STATUS | čte stav zařízení při otevřeném IOCB bloku |
STEP | krok v cyklu FOR-NEXT, standardně je +1 |
STICK | udává polohu ovládače typu joystick |
STRIG | při stlačení tlačítka na joysticku dává 0, jinak +1 |
STOP | přerušení programu |
STR$ | převádí číslo na řetězcovou proměnnou |
THEN | používá se s IF, za THEN se dávají příkazy, které se mají provést pokud podmínka vyhovuje |
TO | používá se společně s FOR, určuje krajní hodnotu, do které bude v průběhu cyklu počítáno |
TRAP | při výskytu chyby (error) přejde řízení na určený řádek programu |
USR | volá programy ve strojovém kódu |
VAL | převádí řetězec na číslo |
XIO | přímá operace na zařízení typu disketa nebo obrazovka |
- 2 -
Chybová hlášení
2 | Nedostatek paměti. Program přesahuje kapacitu paměti. |
---|---|
3 | Nesprávná hodnota. Číselná hodnota je větší než maximální možná nebo je záporná tam, kde musí být kladná. |
4 | Příliš mnoho proměnných a jmen. Bylo překročeno maximální množství 128 různých proměnných a jmen. |
5 | Chyba v délce řetězce. Pokus o vložení řetězcové proměnné, jejíž délka přesahuje dimenzovanou délku. |
6 | K dispozici je méně dat, než kolik jich má být čteno příkazem READ. |
7 | Číslo větší 32767 tam, kde tomu tak být nesmí. |
8 | Chybný vstup dat. Pokus o vložení nečíselné hodnoty do číselné proměnné. |
9 | Chyba v dimenzování pole nebo řetězce. Rozsah dimenzovaných polí přesahuje 5460 nebo rozsah dimenzovaných řetězcových proměnných přesahuje 32767. Pole nebo řetězcová proměnná byla znovu dimenzována nebo naopak nebyly dimenzovány vůbec. |
10 | Přetečení zásobníku pro výrazy, výraz je příliš složitý. |
11 | Přetečení nebo podtečení registru v pohyblivé řádové čárce. Pokus o dělení nulou, použití čísla většího 1x1098 nebo menšího než 1x10-99. |
12 | Řádek nenalezen. Bylo použito číslo řádku, který se v programu nevyskytuje. |
13 | Nesdružení příkazů FOR-NEXT. Program narazil na příkaz NEXT bez předchozího příkazu FOR nebo včleněné příkazy FOR-NEXT nejsou správně sdruženy. |
14 | Chyba v délce řádku. Zápis příkazu je příliš dlouhý pro zpracování nebo je velmi složitý. |
15 | Byl vynechán příkaz GOSUB k odpovídajícímu RETURN nebo příkaz NEXT k FOR. |
16 | Chyba v návratu. Program narazil na příkaz RETURN bez odpovídajícího příkazu GOSUB. |
17 | Syntaktické chyba. Program narazil na řádek se syntaktickou chybou. |
18 | Neplatný znak řetězce. Řetězec v příkazu VAL není číselným řetězcem. |
19 | Příliš dlouhý zaváděný program. Paměť nestačí k zavedení celého programu. |
20 | Špatné číslo kanálu. Platná čísla kanálů jsou 0 až 7. |
21 | Chyba zavádění souboru. Soubor nelze načíst příkazem LOAD, zřejmě jde o program ve strojovém kódu nebo data. |
128 | Přerušení klávesou Break během vstupní/výstupní operace. |
129 | Kanál již otevřen. Vstupní/výstupní kanál je již otevřen. |
130 | Neexistující zařízení. Voláno zařízení jenž není definováno v tabulce HATABS. |
131 | Kanál je otevřen pouze pro zápis. |
132 | Chybný vstupní/výstupní příkaz. |
133 | Kanál není otevřen. |
134 | Chybné číslo IOCB kanálu. |
135 | Kanál je otevřen pouze pro čtení. |
136 | Konec souboru. Pokus o čtení souboru poté, co bylo dosaženo jeho konce. |
137 | Záznam uříznut. Nahrávka delší než buffer. |
138 | Zařízení blokováno. Zařízení neodpovídá. |
139 | Záporný potvrzovací signál zařízení. Chyba je buď v sériovém kanálu nebo v periferním zařízení. |
140 | Chyba při čtení vstupních dat. Chyba na sériové sběrnici. |
141 | Kurzor mimo rozsah v daném grafickém módu. |
142 | Chyba parity (kontrolního součtu) při přenosu dat po sériové sběrnici. |
- 3 -
Příklady programu
Níže jsou vypsány kódy tří jednoduchých prográmků v jazyku Atari Basic. Jeden z nich vložte do vašeho Atari a vyzkoušejte si tak základní programování!!!
Jak na to? Jednoduše a pěkně postaru. Přepište na obrazovku jeden logický řádek programu počínaje řádkem 10 (včetně čísla řádku a mezer) a stiskněte klávesu RETURN. Není-li řádek správně (syntakticky) zadán, Basic to pozná a vypíše Vám na obrazovku chybu - pak tento řádek opravte. Tímto způsobem vložte postupně do paměti všechny řádky programu. Hotový program spusťte napsáním příkazu RUN a stiskem klávesy RETURN. Pak už se jen dívejte...
Spuštěný program v Basicu můžete kdykoliv zastavit stiskem klávesy BREAK nebo globálně přes RESET. Výpis programu na obrazovku můžete provést příkazem LIST (+ RETURN), po zadání příkazu NEW (+ RETURN) pak celý program vymažete (takže zde pozor, přijdete tak o svou dosavadní práci). Pokud budete chtít smazat jen některý programový řádek, zadejte číslo řádku a stiskněte klávesu RETURN.
10 GRAPHICS 11
20 LL=191
30 RL=79
40 FOR ZEBRA=0 TO 48
50 REM GTIA HIWAY *FAST LANE*
60 COLOR ZEBRA
70 PLOT RL,LL
80 DRAWTO 0,0
90 RL=RL-1
10 NEXT ZEBRA
110 GOTO 110
120 END
10 GRAPHICS 7+16: SETCOLOR 4,0,0: SETCOLOR 1,0,4
20 COLOR 2
30 PLOT 2,2: DRAWTO 30,34: DRAWTO 78,40: DRAWTO 100,57: DRAWTO 110,50: DRAWTO 140,76
40 FOR LIGSOU=1 TO 255
50 SOUND 0,LIGSOU,8,10
60 IF LIGSOU=8 THEN SETCOLOR 1,0,14
70 NEXT LIGSOU
80 SETCOLOR 1,0,0
90 FOR DELAY=1 TO 200: NEXT DELAY
100 GOTO 10
10 GRAPHICS 0: DIM NAME$(20): POSITION 2,7
20 PRINT "TYPE IN YOUR NAME AND PRESS THE RETURN KEY"
30 POSITION 4,12: PRINT "NAME";: INPUT NAME$
40 GRAPHICS 2+16
50 POSITION (19-LEN(NAME$))/2,4: REM CENTERS THE NAME
60 PRINT #6; NAME$
70 POSITION 1,7: PRINT #6; "IS A FLASHY PERSON"
80 FOR FLIP=0 TO 20
90 FOR FLASH=0 TO 4
100 SETCOLOR 0,0,FLASH: SOUND 0,FLASH,10,10
110 NEXT FLASH
120 FOR DELAY=1 TO 20: NEXT DELAY
130 NEXT FLIP
140 SETCOLOR 0,0,14: SOUND 0,0,0,0
150 FOR DELAY=1 TO 1000: NEXT DELAY
160 SETCOLOR 0,0,0: SETCOLOR 2,0,0
170 FOR DELAY=1 TO 800: NEXT DELAY
180 RUN
190 END