25. Príkazy editora: LIST, LOAD, SAVE, NEW, CONT, DOS, BYE …
Na čo to je
Na skutočnom Atari je BASIC zároveň aj editor: píšeš doň riadky programu a medzi nimi príkazy, ktorými program vypíšeš, uložíš, spustíš. Niektoré z týchto príkazov nájdeš aj vo vnútri dobových programov – program sa sám vypíše, nahrá ďalšiu časť, alebo po skončení odíde do DOS-u.
Preložený program však nemá ani editor, ani svoj text. Táto kapitola hovorí, čo také príkazy urobia v ňom. Nie je to kapitola na učenie – je na nahliadnutie, keď ich stretneš.
Čo ktorý príkaz robí
| Príkaz | V interpreteri na Atari | V preloženom programe |
|---|---|---|
LIST | vypíše text programu | vypíše čísla 1 až 30 a NOT IN COMP PRG |
SAVE "D:MENO", CSAVE | uloží program na disketu, kazetu | vypíše NOT IN COMP PRG a ide ďalej |
LOAD "D:MENO", CLOAD | nahrá iný program | vypíše NOT IN COMP PRG a ide ďalej |
ENTER "D:MENO" | prečíta program zapísaný ako text | vypíše NOT IN COMP PRG a ide ďalej |
RUN "D:MENO" | nahrá a spustí iný program | nepreloží sa (chyba B26099) |
RUN | spustí program odznova | spustí program odznova (kapitola 17) |
NEW | zmaže program z pamäte | ukončí program |
CONT | pokračuje po STOP alebo BREAK | nerobí nič |
DOS | odíde do ponuky DOS-u | zavrie kanály a odíde do DOS-u |
BYE | odíde do vstavaného testu počítača | ukončí program |
Prekladač na príkazy z hornej polovice tabuľky upozorní.
Celý program
Súbor examples/editor.abas:
10 REM Commands of the editor in a compiled program
20 PRINT "Before LIST"
30 LIST
40 PRINT "Before SAVE"
50 SAVE "D:PROGRAM.BAS"
60 PRINT "Still running"
70 NEW
80 PRINT "Never printed"Preklad a spustenie
Basic26 editor.abas --simPrekladač pri tom vypíše dve upozornenia:
editor.abas(3,4): warning B26219: LIST only says it is not available: a compiled program has no program text
editor.abas(5,4): warning B26219: SAVE only says it is not available: a compiled program has no program textUpozornenie preklad nezastaví; hovorí len, že tento riadok nebude robiť to, čo v interpreteri.
Čo uvidíš
Before LIST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
NOT IN COMP PRG
Before SAVE
NOT IN COMP PRG
Still runningAko to funguje
- Riadok 30: program, ktorý sa sám vypisuje, to zvyčajne robí, aby ukázal svoj text na obrazovke. Tridsať čísel zaplní obrazovku rovnako ako výpis a hláška povie prečo: not in compiled program.
- Riadok 50: uložiť nie je čo; program pokračuje.
- Riadok 70:
NEWprogram ukončí, riadok 80 sa nevykoná.
Program z viacerých častí
Väčšie dobové programy sa delili na časti, ktoré sa nahrávali za sebou: úvodná časť nakreslila titulný obrázok a skončila príkazom RUN "D:GAME.BAS". To je jediná vec z BASICu, ktorú prekladač odmietne – v preloženom programe nie je interpreter, do ktorého by sa ďalší program nahral.
Riešenie je preložiť každú časť zvlášť a spojiť ich inak: strojový kód a obrázky pribaliť k hlavnému programu (--embed, kapitola 43), alebo časti preložiť do samostatných súborov a spúšťať ich z DOS-u.
Tri slová, ktoré nie sú príkazmi editora, ale patria sem
| Slovo | Čo robí |
|---|---|
LET | nepovinné slovo pred priradením (kapitola 4); v dobových programoch ho nájdeš tam, kde sa meno premennej začína slovom BASICu: LET TOP=5 |
COM | to isté ako DIM – iné meno toho istého príkazu |
GO TO | to isté ako GOTO |
Prísny režim
Keď chceš mať istotu, že program nerobí nič, čo by v preloženej podobe nedávalo zmysel, prelož ho s --strict: z upozornení na príkazy editora sa stanú chyby.
Basic26 editor.abas --strictČasté chyby
| Čo sa stalo | Čo sa stane |
|---|---|
program končí príkazom RUN "D:MENO" | error B26099 – preklad sa nepodarí |
program sa spolieha, že LIST ukáže jeho text | ukáže čísla a hlášku |
program čaká, že CONT niečo spraví | nespraví |
DOS v programe spustenom bez DOS-u | počítač sa reštartuje alebo skončí vo vstavanom teste |
Zhrnutie
- Príkazy na prácu s textom programu (
LIST,SAVE,LOAD,ENTER…) v preloženom programe len vypíšuNOT IN COMP PRG. NEWaBYEprogram ukončia,DOSodíde do DOS-u,CONTnerobí nič.RUN "D:MENO"sa nepreloží.- Prekladač na to všetko upozorní; s
--strictto hlási ako chybu.
Tým sa končí časť o Atari BASICu. Všetko, čo si sa doteraz naučil, platí aj v Turbo-BASICu XL – a ten pridáva veľa pohodlia.
Späť: 24. Súbory · Ďalej: 26. Turbo-BASIC XL