26. Turbo-BASIC XL

Na čo to je

Turbo-BASIC XL je rozšírený BASIC, ktorý v roku 1985 napísal Frank Ostrowski. Vie všetko, čo Atari BASIC – každý program z kapitol 1 až 25 v ňom beží rovnako –, a pridáva okolo sedemdesiat nových príkazov a funkcií. Najdôležitejšie z nich robia program čitateľnejším: slučky bez GOTO, podmienky na viac riadkov, podprogramy s menami.

Kapitoly 26 až 38 ich prejdú. Táto prvá ukazuje, čo si všimneš hneď.

Ako prekladaču povedať, že je to Turbo-BASIC XL

Príponou súboru:

PríponaJazyk
.abasAtari BASIC
.tbasTurbo-BASIC XL

Alebo voľbou --dialect turbo (či --dialect atari), ktorá má pred príponou prednosť.

Na jazyku záleží aj vtedy, keď program žiadny nový príkaz nepoužije. Slová Turbo-BASICu sú totiž v súbore .abas obyčajné mená: DELKA=5 je v Atari BASICu premenná DELKA, ale v Turbo-BASICu XL sa číta ako príkaz DEL KA=5 a prekladač ohlási chybu. Program písaný pre Atari BASIC preto nechaj v .abas.

Líšia sa aj drobnosti: Turbo-BASIC XL vypisuje čísla s desiatimi číslicami (Atari BASIC s deviatimi) a k chybe pridá slovo – ERROR- 11 OVERFLOW AT LINE 10.

Čo je nové na prvý pohľad

NovinkaPríklad
malé písmená v príkazoch a menáchprint x
podčiarkovník v menetotal_sum
šestnástkové číslo$FF je 255, $0600 je 1536
konštanty %0 až %3čísla 0, 1, 2, 3, ktoré v pamäti interpretera zaberali menej miesta
otázka rovno v INPUTINPUT "Your name";N$
--príkaz, ktorý nerobí nič: oddeľovacia čiara vo výpise
CLSzmaže obrazovku
až 256 premennýchAtari BASIC ich mal 128

Celý program

Súbor examples/turbo.tbas:

Turbo Basic XL
10 REM Turbo-BASIC XL: what you notice first
20 --
30 total_sum=0
40 for i=1 to 5:total_sum=total_sum+i:next i
50 print "Sum: ";total_sum
60 print "$FF is ";$FF;", $0600 is ";$0600
70 print "%0+%1+%2+%3 = ";%0+%1+%2+%3
80 dim name$(20)
90 input "Your name";name$
100 input "Your age, please: ",age
110 print "Hello, ";name$;", ";age
120 --

Preklad a spustenie

Basic26 turbo.tbas --run

alebo v simulátore s odpoveďami zo súboru examples/turbo.in:

Basic26 turbo.tbas --sim --sim-input turbo.in

Čo uvidíš

Sum: 15
$FF is 255, $0600 is 1536
%0+%1+%2+%3 = 6
Your name?Peter
Your age, please: 12
Hello, Peter, 12

Ako to funguje

Časté chyby

Čo sa staloČo sa stane
program pre Turbo-BASIC XL má príponu .abasnové príkazy sa berú ako mená premenných: error B26017 na prvom z nich
meno premennej sa začína slovom Turbo-BASICu (DELKA, DOOR, EXITS)error B26017: DOOR=1 sa číta ako DO OR=1, EXITS=2 ako EXIT S=2
INPUT "text";A v Atari BASICuerror B26008: INPUT needs a variable to read into – tam otázka v INPUT nie je
$ pred desiatkovým číslom zo zvyku ($100 namiesto 100)je to 256

Slov, ktorými sa nesmie začínať meno, je v Turbo-BASICu XL viac: DO, DEL, DIR, TIME, EXIT, EXEC, PROC, LOOP, MOVE, TEXT, CLS, PAUSE, PAINT, WHILE, WEND a ďalšie z prílohy A.

Vyskúšaj si

  1. Vypíš šestnástkové čísla $10, $100 a $FFFF desiatkovo.
  2. Prelož turbo.tbas s voľbou --dialect atari a pozri, na čom sa prekladač zastaví.
  3. Prepíš program guess.abas z kapitoly 9 tak, aby otázku písal INPUT, a ulož ho ako .tbas.

Zhrnutie

Späť: 25. Príkazy editora · Ďalej: 27. Podmienka na viac riadkov