Procedury_interpretera_BASIC-a.pdf

(522 KB) Pobierz
Wojciech Zientara
Mapa pamięci Atari XL/XE:
Procedury interpretera BASIC-a
WARSZAWA 1989
Mapa pamięci Atari XL/XE: Procedury interpretera BASIC-a
1
Spis treści
Wojciech Zientara.................................................................................................................................1
Mapa pamięci Atari XL/XE: Procedury interpretera BASIC-a............................................................1
PRZEDMOWA.....................................................................................................................................5
WPROWADZENIE..............................................................................................................................6
Rozdział 1.............................................................................................................................................8
URUCHOMIENIE INTERPRETERA............................................................................................8
Rozdział 2...........................................................................................................................................15
ZAPIS PROGRAMU W PAMIĘCI...............................................................................................15
2.1. Tokeny Atari Basic.............................................................................................................15
2.2. Proces tokenizacji..............................................................................................................20
2.2.1. Usuwanie wiersza...........................................................................................................29
2.2.2. Kontrola składni..............................................................................................................31
2.2.3. Wykonanie instrukcji......................................................................................................45
Rozdział 3...........................................................................................................................................50
OBSŁUGA BŁĘDÓW...................................................................................................................50
Rozdział 4...........................................................................................................................................56
INSTRUKCJA PRZYPISANIA....................................................................................................56
Rozdział 5...........................................................................................................................................65
PROCEDURY OPERATORÓW I FUNKCJI................................................................................65
5.1. Operatory arytmetyczne.....................................................................................................65
5.1.1. Dodawanie......................................................................................................................66
5.1.2. Odejmowanie..................................................................................................................67
5.1.3. Mnożenie.........................................................................................................................68
5.1.4. Dzielenie.........................................................................................................................68
5.1.5. Potęgowanie....................................................................................................................68
5.2. Funkcje...............................................................................................................................71
5.2.1. Funkcja ABS...................................................................................................................71
5.2.2. Funkcja RND..................................................................................................................72
5.2.3. Funkcja INT....................................................................................................................73
5.2.4. Funkcja SQR...................................................................................................................74
5.2.5. Funkcja EXP...................................................................................................................77
5.2.6. Funkcje LOG i CLOG.....................................................................................................77
5.2.7. Funkcja SIN....................................................................................................................78
5.2.8. Funkcja COS...................................................................................................................81
5.2.9. Funkcja ATN...................................................................................................................81
5.2.10. Funkcja CHR$...............................................................................................................83
5.2.11. Funkcja STR$................................................................................................................84
5.2.12. Funkcja USR.................................................................................................................85
5.2.13. Funkcja LEN.................................................................................................................86
5.2.14. Funkcja FRE.................................................................................................................87
5.2.15. Funkcja PEEK...............................................................................................................88
5.2.16. Funkcja ADR.................................................................................................................88
5.2.17. Funkcja ASC.................................................................................................................89
5.2.18. Funkcja VAL.................................................................................................................89
5.2.19. Funkcje manipulatorów.................................................................................................90
5.3. Inne operatory....................................................................................................................91
5.3.1. Operatory relacji i logiczne.............................................................................................91
5.3.2. Operatory przypisania.....................................................................................................95
Mapa pamięci Atari XL/XE: Procedury interpretera BASIC-a
2
5.3.3. Operatory nawiasów.......................................................................................................98
Rozdział 6.........................................................................................................................................105
PROCEDURY WYKONAWCZE INSTRUKCJI........................................................................105
6.1. Instrukcje kontroli programu...........................................................................................105
6.1.1. Instrukcja NEW.............................................................................................................105
6.1.2. Instrukcja BYE..............................................................................................................105
6.1.3. Instrukcja DOS..............................................................................................................105
6.1.4. Instrukcja END.............................................................................................................106
6.1.5. Instrukcja STOP............................................................................................................106
6.1.6. Instrukcja CONT...........................................................................................................107
6.1.7. Instrukcje CLR i RUN..................................................................................................108
6.2. Instrukcje pomocnicze......................................................................................................110
6.2.1. Instrukcje REM i DATA................................................................................................111
6.2.2. Instrukcje DEG i RAD..................................................................................................111
6.2.3. Instrukcja RESTORE....................................................................................................111
6.2.4. Instrukcja DIM..............................................................................................................112
6.2.5. Instrukcja POKE...........................................................................................................114
6.3. Instrukcje strukturalne......................................................................................................115
6.3.1. Instrukcja POP...............................................................................................................115
6.3.2. Instrukcja TRAP............................................................................................................116
6.3.3. Instrukcje GOTO i GOSUB..........................................................................................117
6.3.4. Instrukcja RETURN......................................................................................................118
6.3.5. Instrukcja FOR..............................................................................................................119
6.3.6. Instrukcja NEXT...........................................................................................................122
6.3.7. Instrukcja IF..................................................................................................................124
6.3.8. Instrukcja ON................................................................................................................125
6.4. Obsługa komunikacji.......................................................................................................126
6.5. Instrukcje dźwiękowe i graficzne.....................................................................................131
6.5.1. Instrukcja SOUND........................................................................................................131
6.5.2. Instrukcja SETCOLOR.................................................................................................133
6.5.3. Instrukcja COLOR........................................................................................................133
6.5.4. Instrukcja POSITION...................................................................................................134
6.5.5. Instrukcja PLOT............................................................................................................134
6.5.6. Instrukcja DRAWTO.....................................................................................................135
6.5.7. Instrukcja GRAPHICS..................................................................................................136
6.6. Instrukcje wejścia/wyjścia...............................................................................................137
6.6.1. Instrukcja CLOSE.........................................................................................................137
6.6.2. Instrukcje XIO i OPEN.................................................................................................138
6.6.3. Instrukcja STATUS.......................................................................................................139
6.6.4. Instrukcja PUT..............................................................................................................140
6.6.5. Instrukcje GET i LOCATE............................................................................................141
6.6.6. Instrukcja PRINT..........................................................................................................142
6.6.7. Instrukcja LPRINT........................................................................................................145
6.6.8. Instrukcja POINT..........................................................................................................146
6.6.9. Instrukcja NOTE...........................................................................................................146
6.6.10. Instrukcje INPUT i READ..........................................................................................147
6.6.11. Instrukcje SAVE i CSAVE..........................................................................................151
6.6.12. Instrukcje LOAD i CLOAD........................................................................................154
6.6.13. Instrukcja ENTER.......................................................................................................156
6.6.14. Instrukcja LIST...........................................................................................................157
Mapa pamięci Atari XL/XE: Procedury interpretera BASIC-a
3
DODATKI........................................................................................................................................164
Dodatek A....................................................................................................................................164
Adresy procedur Basica i OS..................................................................................................164
Dodatek B....................................................................................................................................169
Rejestry Basica i OS w pamięci RAM....................................................................................169
Dodatek C....................................................................................................................................172
Zmienne systemowe................................................................................................................172
Dodatek D....................................................................................................................................172
Słownik terminów informatycznych.......................................................................................172
Dodatek E....................................................................................................................................175
Tabela przeliczeń DEC-BIN-HEX..........................................................................................175
Dodatek F.....................................................................................................................................178
Tabela różnic asemblerów.......................................................................................................178
Dodatek G....................................................................................................................................178
Bibliografia.............................................................................................................................178
Mapa pamięci Atari XL/XE: Procedury interpretera BASIC-a
4
PRZEDMOWA
Dla umożliwienia porozumiewania się człowieka z komputerem konieczny jest język zrozumiały
dla obu stron. Początkowo językiem tym był wewnętrzny kod maszynowy procesora. Ponieważ
posługiwanie się nim jest stosunkowo trudne, wymyślono nowe - bardziej skomplikowane - języki,
które są zrozumiałe dla przeciętnego użytkownika. W komputerach domowych najczęściej
instalowany jest interpreter języka Basic. Nie wynika to z jego szczególnej prostoty i zalet, lecz ze
stosunkowo niewielkiej pojemności pamięci zajmowanej przez ten język. Implementacje Basica
stosowane w ośmiobitowych komputerach domowych są ponadto znacznie okrojone w stosunku do
standardowej wersji Microsoft. Programy pisane w takim języku nie mogą być siłą rzeczy
doskonałe. Dzięki znajomości wewnętrznej struktury interpretera można osiągnąć znacznie lepsze
wyniki. Możliwe jest również bezpośrednie wywoływanie procedur interpretera, tak jak innych
procedur w języku maszynowym, zarówno w programach napisanych w Basicu, jak i w asemblerze.
Niniejsza książka zawiera kompletny opis interpretera Atari Basic, który wbudowany jest we
wszystkich modelach Atari XL i XE. Ponieważ interpreter ten (jak wszystkie elementy systemu)
ulegał modyfikacjom, to opis dotyczy ostatniej wersji -
Basic Revision C.
Ta wersja interpretera
znajduje się we wszystkich komputerach sprowadzonych do Polski przez Pewex, oprócz pierwszej
partii (kilkaset sztuk). Posiadaną wersję interpretera można rozpoznać przez sprawdzenie
zawartości komórki $A8E2 (43234). Jeżeli znajduje się w niej wartość $60 (96), to mamy do
czynienia z wersją
Revision B,
a gdy $EA (234), to z
Revision C.
Książka ta jest przeznaczona przede wszystkim dla użytkowników znających już programowanie
w języku maszynowym mikroprocesora 6502. Osoby nie znające tego języka także będą mogły
korzystać z zamieszczonych tu opisów procedur, choć w ograniczonym zakresie. Podane adresy
rejestrów wykorzystywanych przez system operacyjny oraz procedur systemowych mogą być użyte
również w programach napisanych w Basicu poprzez instrukcje PEEK, POKE i USR.
Na końcu książki zamieszczone zostały dodatki ułatwiające korzystanie z niej oraz słownik
niektórych użytych terminów i bibliografia pozwalająca na poszerzenie wiedzy o systemie
operacyjnym Atari. Osoby, które nie mają wprawy w posługiwaniu się innymi systemami
liczbowymi niż dziesiętny, znajdą tam także tabelę przeliczeń pomiędzy systemami dziesiętnym,
dwójkowym i szesnastkowym.
Wszystkie zamieszczone w książce procedury zostały napisane w formacie asemblera MAC/65.
W przypadku posiadania innego asemblera konieczne będzie dokonanie drobnych poprawek w
niektórych słowach kluczowych procedur, aby mogły one działać prawidłowo (wykaz różnic
znajduje się w Dodatku F).
Mapa pamięci Atari XL/XE: Procedury interpretera BASIC-a
5
Zgłoś jeśli naruszono regulamin