Powrót do spisu treści

DODATKI

Dodatek A

Adresy procedur Basica i OS

$A000 - CDST - zimny start interpretera
$A00C - XNEW - wykonanie instrukcji NEW
$A050 - WRMST - gorący start interpretera
$A053 - WRMST2 - gorący start interpretera
$A05D - WAITIN - oczekiwanie na rekord
$A060 - SYNTAX - tokenizacja i kontrola składni
$A0B1 - DCDSTM - rozpoznanie instrukcji
$A0FB - MOVTKN - przemieszczenie bloku tokenów
$A186 - DELPLN - skasowanie wiersza programu
$A19A - PLINEN - rozpoznanie numeru wiersza
$A1BE - STMSX - kontrola składni instrukcji
$A208 - PHADR - zapisanie na stosie adresu procedury
$A21B - SAVCPM - zapisanie stanu liczników
$A28C - INCPRC - zwiększenie licznika programu
$A293 - GTCCHR - odczyt kodu z tablicy składni
$A29B - VALUE - rozpoznanie wartości
$A2C4 - SAVTKN - zapis tokena do bufora
$A2CF - SCDSTM - zapis końca instrukcji IF
$A2DB - MOVLIN - przepisanie wiersza do bufora tokenizacji
$A2E1 - EXPSX - kontrola składni wyrażenia
$A320 - NUMVAR - tokenizacja zmiennej liczbowej
$A324 - STRVAR - tokenizacja zmiennej tekstowej
$A3E8 - CMPLTR - rozpoznanie znaku nazwy
$A3EC - CHKLTR - rozpoznanie litery z akumulatora
$A3F5 - NUMCNS - tokenizacja stałej liczbowej
$A41C - STRCNS - tokenizacja stałej tekstowej
$A454 - RECNAM - wyszukiwanie nazwy w tablicy
$A482 - NXTNAM - wyszukiwanie następnej nazwy
$A49F - STNAME - tablica nazw instrukcji
$A5F5 - ERMSG - meldunek błędu "ERROR"
$A5FD - STMSG - meldunek zatrzymania "STOPPED"
$A605 - SXTAB - tablica składni instrukcji
$A7DE - OPFN - tablica nazw operatorów i funkcji
$A87A - INSEL - przemieszczenie bloku pamięci w górę
$A8F1 - RSTBRG - skasowanie rejestrów Basica
$A8F7 - DELEL - przemieszczenie bloku pamięci w dół
$A944 - MOVMEM - przemieszczenie bloku pamięci
$A95E - PRCSTM - wykonanie wiersza programu
$A97E - EXESTM - wykonanie instrukcji Basica
$A9A2 - FNDCST - wyszukanie aktualnego wiersza
$A9D0 - NXTSTM - wyszukanie następnego wiersza
$A9DC - GLNLEN - odczytanie długości wiersza
$A9E1 - GHISTM - odczytanie starszego bajtu numeru wiersza
$A9E5 - XREM - wykonanie instrukcji REM i DATA
$A9E6 - XBYE - wykonanie instrukcji BYE
$A9EC - XDOS - wykonanie instrukcji DOS
$A9F2 - GIRQST - odczyt statusu przerwań IRQ
$A9FA - STVTAB - tablica wektorów procedur instrukcji
$AA6A - OPVTAV - tablica wektorów procedur operatorów
$AADA - XLET - wykonanie instrukcji LET
$AB04 - PRCOP - realizacja procedury operatora
$AB18 - EXEOP - wykonanie procedury operatora
$AB26 - RSTPTR - skasowanie rejestrów liczników
$AB35 - XPLS - wykonanie operatora plus (znak)
$AB36 - RECVAL - rozpoznanie rodzaju wartości
$AB45 - NUMBER - odczytanie liczby
$AB5C - STTXT - zapisanie tekstu
$AB81 - VARBL - odczytanie wartości zmiennej
$AB90 - FTARV - obliczenie adresu zmiennej tablicowanej
$ABB2 - PUTVAR - zapisanie wartości zmiennej
$ABCD - GLNNUM - odczytanie i sprawdzenie numeru wiersza
$ABD7 - LETNUM - obliczenie wartości wyrażenia
$ABDA - GETNUM - odczyt liczby całkowitej z bufora
$ABE0 - GETBYT - odczytanie liczby jednobajtowej  z bufora
$ABE9 - GETVAR - odczytanie wartości zmiennej
$ABFD - GETVRS - odczytanie wartości dwóch zmiennych
$AC06 - LETVAR - obliczenie i odczyt wartości zmiennej
$AC0C - SAVVAL - przepisanie wartości według wektora
$AC1E - CALPC - obliczenie adresu zmiennej
$AC35 - OPCT - tablica współczynników operatorów
$AC7A - XSUB - wykonanie operatora odejmowania
$AC83 - XMUL - wykonanie operatora mnożenia
$AC8C - XDIV - wykonanie operatora dzielenia
$AC95 - XMIN - wykonanie operatora minus (znak)
$ACA3 - XLEQ - wykonanie operatora "mniejsze lub równe"
$ACAC - XNEQ - wykonanie operatora "różne"
$ACB2 - XLES - wykonanie operatora "mniejsze"
$ACB9 - XGRT - wykonanie operatora "większe"
$ACC2 - XGEQ - wykonanie operatora "większe lub równe"
$ACC9 - XEQU - wykonanie operatora "równe"
$ACCF - XAND - wykonanie operatora AND
$ACD9 - XOR - wykonanie operatora OR
$ACE0 - RESLTZ - ustalenie wyniku operacji logicznej
$ACE4 - XNOT - wykonanie operatora NOT
$ACE9 - RESLTO - ustalenie wyniku operacji logicznej
$ACEB - ZERO - ustalenie wyniku operacji na zero
$ACF0 - ONEP - ustalenie wyniku operacji na jeden
$ACF2 - ONEN - ustalenie wyniku operacji na minus jeden
$ACF4 - STRES - zapisanie wyniku operacji porównania
$AD04 - XSGN - wykonanie funkcji SGN
$AD11 - CMPVAR - porównanie wartości dwóch zmiennych
$AD20 - GETSUB - obliczenie różnicy liczb z FR0 i FR1
$AD26 - BADD - wywołanie procedury dodawania
$AD2C - BSUB - wywołanie procedury odejmowania
$AD32 - BMUL - wywołanie procedury mnożenia
$AD38 - BDIV - wywołanie procedury dzielenia
$AD41 - GETINT - zamiana liczby na całkowitą
$AD4A - XNLET - wykonanie operatora "przypisanie liczby"
$AD64 - XCOM - wykonanie operatora indeksowego
$AD66 - XEPAR - wykonanie operatora "koniec nawiasu"
$AD6D - XPDIM - wykonanie operatora "nawias wymiaru"
$AD71 - XPIXV - wykonanie operatora "nawias indeksu"
$AE11 - XPSEX - wykonanie operatora "nawias indeksu"
$AE81 - GETSLN - odczytanie długości ciągu
$AE8E - XSLET - wykonanie operatora "przypisanie tekstu"
$AF31 - ZT1ML6 - mnożenie przez sześć zawartości ZTEMP1
$AF3D - ZT1ADD - dodawanie akumulatora i rejestru Y do ZTEMP1
$AF48 - EVZTMP - przeliczanie zawartości rejestru ZTEMP1
$AF6C - CMPSTR - porównanie wartości tekstowych
$AFA7 - DECREG - zmniejszenie wartości wektorów Basica
$AFB5 - XLEN - wykonanie funkcji LEN
$AFBC - STNUM - zapisanie liczby całkowitej do FR0
$AFC0 - CHTYP - zamiana liczby całkowitej na FP
$AFC3 - NUMTYP - ustawienie typu zmiennej liczbowej
$AFCC - XPEEK - wykonanie funkcji PEEK
$AFD6 - XFRE - wykonanie funkcji FRE
$AFEB - XVAL - wykonanie funkcji VAL
$AFFD - XASC - wykonanie funkcji ASC
$B007 - XADR - wykonanie funkcji ADR
$B00D - XPADDL - wykonanie funkcji PADDLE
$B011 - XSTICK - wykonanie funkcji STICK
$B015 - XPTRIG - wykonanie funkcji PTRIG
$B019 - XSTRIG - wykonanie funkcji STRIG
$B034 - XSTR - wykonanie funkcji STR$ 
$B052 - XCHR - wykonanie funkcji CHR$
$B069 - STRTYP - ustawienie typu zmiennej tekstowej
$B076 - XRND - wykonanie funkcji RND
$B093 - RNDC - stała do obliczania funkcji RND
$B099 - XABS - wykonanie funkcji ABS
$B0A5 - XUSR - wykonanie funkcji USR
$B0AE - PHDAT - zapis na stosie parametrów funkcji USR
$B0C8 - XINT - wykonanie funkcji INT
$B0D2 - BINT - procedura obliczenia części całkowitej
$B106 - XSIN - wykonanie funkcji SIN
$B10F - XCOS - wykonanie funkcji COS
$B118 - XATN - wykonanie funkcji ATN
$B121 - XLOG - wykonanie funkcji LOG
$B12B - STLOG - opracowanie wyniku operacji logarytmowania
$B13D - XCLOG - wykonanie funkcji CLOG
$B14A - XEXP - wykonanie funkcji EXP
$B153 - XSQR - wykonanie funkcji SQR
$B159 - RESULT - zapis wyniku w buforze tokenizacji
$B15B - VALER - sygnalizowanie niepoprawnej wartości
$B15E - XRPW - wykonanie operatora potęgowania
$B16C - PUTRES - zapisanie wyniku operacji do bufora
$B206 - XDIM - wykonanie instrukcji DIM
$B278 - XPOKE - wykonanie instrukcji POKE
$B28D - XDEG - wykonanie instrukcji DEG
$B291 - XRAD - wykonanie instrukcji RAD
$B296 - XRSTR - wykonanie instrukcji RESTORE
$B2AE - XREAD - wykonanie instrukcji READ
$B32D - NXTDAT - odszukanie następnej pozycji w instrukcji DATA
$B32F - SENDDT - odszukanie końca pozycji w instrukcji DATA
$B33E - XINPUT - wykonanie instrukcji INPUT
$B3DA - XPRINT - wykonanie instrukcji PRINT
$B48F - RSTHIB - skasowanie najstarszego bitu akumulatora
$B491 - INOUTX - zwiększenie licznika bufora wyjściowego
$B496 - XLPRNT - wykonanie instrukcji LPRINT
$B4B2 - PRTNAM - nazwa drukarki - "P:"
$B4B5 - XLIST - wykonanie instrukcji LIST
$B53E - FNDPEL - odszukanie elementu programu
$B557 - ADDPAD - zwiększenie stanu rejestru POKADR
$B562 - SETPAD - ustawienie stanu rejestru POKADR
$B567 - PUTTXT - wyświetlenie tekstu na ekranie
$B586 - PTMSG2 - wyświetlenie raportu na ekranie
$B58E - LSTPLN - wylistowanie wiersza programu
$B5AA - PRTPLN - wyświetlenie wiersza programu
$B5C2 - PRTLCN - wyświetlenie zawartości wiersza programu
$B661 - INCIX - zwiększenie stanu licznika bufora wejściowego
$B663 - CMPIX - porównanie stanu liczników bufora
$B66F - PUTSTM - wyświetlenie słowa instrukcji
$B67D - XFOR - wykonanie instrukcji FOR
$B6B5 - PHSTK - zapis parametrów aktualnej instrukcji na stosie
$B6D2 - XGOSUB - wykonanie instrukcji GOSUB
$B6D5 - XGOTO - wykonanie instrukcji GOTO
$B6D8 - GOLINE - przejście do wskazanego wiersza programu
$B6E0 - FDEXST - odszukanie i wykonanie wiersza programu
$B6F0 - RSCSTM - odtworzenie adresu aktualnego wiersza
$B6F9 - SAVSTM - zachowanie adresu aktualnego wiersza
$B700 - XNEXT - wykonanie instrukcji NEXT
$B74C - XRUN - wykonanie instrukcji RUN
$B766 - XCLR - wykonanie instrukcji CLR
$B778 - XIF - wykonanie instrukcji IF
$B78C - XEND - wykonanie instrukcji END
$B792 - XSTOP - wykonanie instrukcji STOP
$B7A6 - SAVCLN - zapisanie aktualnego numeru wiersza
$B7B5 - XCONT - wykonanie instrukcji CONT
$B7D8 - XTRAP - wykonanie instrukcji TRAP
$B7E4 - XON - wykonanie instrukcji ON
$B816 - FSTGLN - odszukanie instrukcji i odczyt jej długości
$B819 - GSTMLN - odczyt długości instrukcji
$B823 - PLSTK - odczyt parametrów aktualnej instrukcji ze stosu
$B83E - XPOP - wykonanie instrukcji POP
$B871 - BMTUP - podniesienie górnej granicy pamięci Basica
$B87A - SAVTST - zapisanie górnej granicy pamięci Basica
$B883 - SAVIX - zapisanie indeksu w rejestrze tymczasowym
$B888 - PHREG - zapis aktualnego stanu rejestrów na stosie
$B897 - PLREG - odczyt aktualnego stanu rejestrów ze stosu
$B8A8 - RSMEMT - zerowanie tablicy STARP i stosu bieżącego
$B8B9 - CLRVV - zerowanie tablicy wartości zmiennych
$B8F1 - RSTBRG - zerowanie rejestrów Basica
$B904 - GETIX - odczyt i porównanie indeksów bufora
$B90A - LOADER - błąd podczas odczytu pliku
$B90C - DVCNER - błąd: zbyt duży numer urządzenia
$B90E - PRLGER - błąd: zbyt długi program
$B910 - CHARER - błąd: niepoprawny znak ciągu
$B912 - SNTXER - błąd składni
$B914 - RETER - błąd: instrukcja RETURN bez GOSUB
$B916 - GOSLER - błąd: brak instrukcji GOSUB lub FOR
$B918 - LTLGER - błąd: zbyt długi wiersz programu
$B91A - NFORER - błąd: instrukcja NEXT bez FOR
$B91C - LNFDER - błąd: brak wiersza o podanym numerze
$B91E - OVUNER - błąd: liczba zbyt duża lub zbyt mała
$B920 - STOVER - błąd: przepełnienie stosu bieżącego
$B922 - DIMER - błąd: zła deklaracja wymiaru zmiennej
$B924 - BINPER - błąd: niepoprawna wartość dla INPUT lub READ
$B926 - LINNER - błąd: niepoprawny numer wiersza
$B928 - ODATER - błąd: brak danych dla instrukcji READ
$B92A - SLENER - błąd: zła długość zmiennej tekstowej
$B92C - TMVRER - błąd: zbyt dużo zmiennych
$B92E - BVALER - błąd: użyta niepoprawna wartość
$B930 - INSMER - błąd: niedostateczny rozmiar pamięci
$B932 - SUCC - operacja wykonana poprawnie
$B934 - GETERR - odczyt kodu błędu
$B968 - DSTMSG - wyświetlenie raportu przerwania programu
$B993 - DSPLIN - wyświetlenie numeru wiersza
$B9A4 - LNMSG - napis "AT LINE"
$B9AD - XSETC - wykonanie instrukcji SETCOLOR
$B9D3 - XSOUND - wykonanie instrukcji SOUND
$BA0C - XPOS - wykonanie instrukcji POSITION
$BA1F - XCOLOR - wykonanie instrukcji COLOR
$BA27 - XDRAW - wykonanie instrukcji DRAWTO
$BA46 - XGRAPH - wykonanie instrukcji GRAPHICS
$BA69 - SCRNAM - nazwa ekranu - "S:"
$BA6C - XPLOT - wykonanie instrukcji PLOT
$BA76 - CONVFN - przekształcenie liczby rzeczywistej
$BA99 - PRPCHN - przygotowanie kanału IOCB
$BA9B - PRPDVC - przygotowanie urządzenia do operacji I/O
$BAB2 - IOCAL - wywołanie procedury wykonującej operację I/O
$BABE - SAVCMD - zapisanie kodu rozkazu operacji I/O
$BAC0 - SAVDVC - zapisanie numeru urządzenia dla operacji I/O
$BAC5 - XENTER - wykonanie instrukcji ENTER
$BACF - OPNWRT - otwarcie kanału IOCB 7 do zapisu
$BAD7 - OPNCH7 - otwarcie kanału IOCB 7
$BAF1 - SQRC - stała do obliczania funkcji SQR
$BAF7 - LDPRGM - odczyt programu przed uruchomieniem
$BAFB - XLOAD - wykonanie instrukcji LOAD
$BB04 - LOAD - procedura odczytu programu z urządzenia
$BB64 - XCLOAD - wykonanie instrukcji CLOAD
$BB6D - XSAVE - wykonanie instrukcji SAVE
$BB72 - SAVE - procedura zapisu programu na urządzenie
$BB98 - PRGMTR - procedura transmisji stokenizowanego programu
$BBB4 - OPNCAS - przygotowanie operacji otwarcia magnetofonu
$BBCE - CASNAM - nazwa magnetofonu - "C:"
$BBD1 - XCSAVE - wykonanie instrukcji CSAVE
$BBD8 - PRPOPN - przygotowanie operacji otwarcia kanału IOCB
$BBEC - XXIO - wykonanie instrukcji XIO
$BBF2 - XOPEN - wykonanie instrukcji OPEN
$BC02 - OPNCHN - otwarcie kanału IOCB dla operacji I/O
$BC22 - XCLOSE - wykonanie instrukcji CLOSE
$BC24 - PRCIO - przygotowanie operacji wejścia/wyjścia
$BC29 - IOOPER - przeprowadzenie operacji wejścia/wyjścia
$BC2F - XSTAT - wykonanie instrukcji STATUS
$BC3D - XNOTE - wykonanie instrukcji NOTE
$BC54 - XPOINT - wykonanie instrukcji POINT
$BC78 - XPUT - wykonanie instrukcji PUT
$BC85 - XGET - wykonanie instrukcji GET
$BC9E - XLOCAT - wykonanie instrukcji LOCATE
$BCA8 - SETDVC - ustalenie numeru urządzenia dla operacji I/O
$BCAF - MLTCHN - mnożenie numeru kanału IOCB
$BCBB - ENDIO - procedura końcowa operacji I/O
$BCF7 - CLCHN - zamknięcie kanału IOCB
$BD00 - GETST - odczyt statusu wykonanej operacji I/O
$BD07 - IXGDAT - zwiększenie licznika i odczyt danych
$BD09 - GETDAT - odczyt bajtu danych
$BD0F - BFLN1 - ustalenie długości bufora dla operacji I/O
$BD13 - BFLN2 - ustalenie długości bufora dla operacji I/O
$BD15 - BFLN3 - ustalenie długości bufora dla operacji I/O
$BD17 - BFLN4 - ustalenie długości bufora dla operacji I/O
$BD1E - SIBUFA - ustalenie adresu bufora dla operacji I/O
$BD29 - CMDEXE - odczyt kodu i wykonanie operacji I/O
$BD2B - CIOEXE - wywołanie systemowej procedury operacji I/O
$BD31 - SAVBYT - zapisanie wartości bajtu w zmiennej
$BD33 - SAVWRD - zapisanie wartości dwubajtowej w zmiennej
$BD45 - CLALL - zamknięcie wszystkich kanałów IOCB
$BD5B - RSTCHN - skasowanie rejestrów kanału IOCB
$BD62 - PRTPRM - wyświetlenie napisu "READY"
$BD72 - READYP - napis "READY"
$BD79 - PRTRET - wyświetlenie znaku końca wiersza
$BD7D - GFILSP - odczytanie adresu zmiennej tablicowej
$BD9D - PSTMAD - zapis adresu instrukcji
$BDA8 - XRTRN - wykonanie instrukcji RETURN
$BDC2 - BRETLN - błąd: brak wiersza z instrukcją GOSUB
$BDCB - RETURN - odtworzenie adresu instrukcji w wierszu
$BDDB - PUTRET - zapis znaku końca wiersza do edytora
$BDE4 - INPREC - zapis znaku z rejestru PROMPT do edytora
$BDED - GETREC - odczyt rekordu z urządzenia
$BDFA - XADD - wykonanie operatora dodawania
$BE05 - SIN - obliczenie wartości sinusa liczby
$BE0F - COS - obliczenie wartości cosinusa liczby
$BE9F - TSCC - tablica stałych dla funkcji sinus i cosinus
$BEC9 - TATNC - stała do obliczania funkcji arcus tangens
$BECF - TRIGC - stała do obliczeń trygonometrycznych
$BED5 - ATAN - obliczenie wartości arcus tangens liczby
$BF43 - SQR - obliczenie pierwiastka kwadratowego
$BFF0 - CART - blok informacji o cartridge'u
$BFFA - CARTRUN - adres uruchomienia cartridge'a
$BFFC - CARTINS - znacznik zainstalowania cartridge'a
$BFFD - CARTOPT - rejestr rodzaju cartridge'a
$BFFE - CARTINI - adres inicjowania cartridge'a
$D800 - AFP - zamiana ciągu ASCII na liczbę FP
$D8E6 - FASC - zamiana liczby FP na ciąg ASCII
$D9AA - IFP - zamiana liczby całkowitej na FP
$D9D2 - FPI - zamiana liczby FP na całkowitą
$DA44 - ZFR0 - zerowanie FR0
$DA48 - AF1 - zerowanie wg rejestru X
$DA51 - STBV - zapis wektora bufora
$DA60 - FSUB - odejmowanie liczb FP
$DA66 - FADD - dodawanie liczb FP
$DADB - FMUL - mnożenie liczb FP
$DB28 - FDIV - dzielenie liczb FP
$DBA1 - INBSS - przeszukiwanie bufora
$DBAF - ADBT - zamiana znaku ASCII na kod BCD
$DC00 - NFR0 - poprawienie formatu liczby FP
$DD40 - PLYEVL - przeliczanie wielomianowe
$DD89 - FLD0R - zapis liczby FP do FR0 według X,Y
$DD98 - FLD1R - zapis liczby FP do FR1 według X,Y
$DDA7 - FST0R - zapis liczby FP z FR0 według X,Y
$DDB6 - FMOV01 - przepisanie z FR0 do FR1
$DDC0 - EXP - potęgowanie o podstawie e
$DDCC - EXP10 - potęgowanie o podstawie 10
$DE95 - RSQT - iloraz różnicowy
$DECD - LOG - logarytm naturalny
$DED1 - LOG10 - logarytm dziesiętny
$DF66 - TLOG - tabela współczynników logarytmowania
$DFAE - TATAN - tabela współczynników funkcji arctg
$E456 - JCIOMAIN - skok do CIOMAIN
$E480 - JTSTROM - skok do TSTROM

Dodatek B

Rejestry Basica i OS w pamięci RAM

  $08 - WARMST - znacznik gorącego startu
  $0A - DOSVEC - wektor startowy programu dyskowego
  $0E - APPMHI - najwyższy adres RAM zajęty przez program
  $11 - IRQSTAT - rejestr-cień IRQST
  $2A - ICAX1Z - rejestr pomocniczy ZIOCB
  $2B - ICAX2Z - rejestr pomocniczy ZIOCB
  $54 - ROWCRS - pionowa pozycja kursora
  $55 - COLCRS - pozioma pozycja kursora
  $80 - LOMEM - wektor bufora wejściowego tokenizacji
  $82 - VNTP - wektor początku tablicy nazw zmiennych
  $84 - VNTD - wektor końca tablicy nazw zmiennych
  $86 - VVTP - wektor początku tablicy wartości zmiennych
  $88 - STMTAB - wektor początku tablicy instrukcji
  $8A - STMCUR - wektor aktualnie wykonywanego wiersza
  $8C - STARP - wektor tablicy zmiennych tablicowanych
  $8E - RUNSTK - wektor stosu bieżącego Basica
  $90 - BMEMHI - koniec obszaru pamięci zajętego przez Basic
  $92 - MOELFLG - zmodyfikowany znacznik końca wiersza
  $94 - COX - bieżący indeks wyjściowy tokenizacji
  $95 - POKADR - wektor pomocniczy różnych procedur Basica
  $97 - CSTAD - adres aktualnego wiersza programu
  $99 - OLDMHI - adres przemieszczanego bloku pamięci
  $9B - NEWMHI - adres docelowy przemieszczenia bloku pamięci
  $9D - PCNTC - licznik programu
  $9F - BUFIX - indeks wejściowy bufora składni
  $A0 - CLNN - numer aktualnego wiersza programu
  $A2 - MRANGE - rozmiar przemieszczanego bloku pamięci
  $A4 - LENPEL - rozmiar elementu programu
  $A6 - SXFLG - znacznik rodzaju wiersza przy kontroli składni
  $A7 - OUTIX - indeks wyjściowy Basica
  $A8 - INIX - indeks wejściowy Basica
  $A9 - STIX - indeks stosu wyrażeń
  $AA - STPTR - licznik stosu
  $AB - TOX - pomocniczy indeks wyjściowy
  $AC - TIX - pomocniczy indeks wejściowy
  $AD - MAXLN - numer ostatniego wiersza programu
  $AF - AUXBR - pomocniczy rejestr Basica
  $B0 - BHLD1 - pomocniczy rejestr Basica
  $B1 - BHLD2 - pomocniczy rejestr Basica
  $B2 - STMNUM - numer aktualnej instrukcji
  $B3 - TMPIX - pomocniczy indeks tymczasowy
  $B4 - ACHNN - pomocniczy rejestr numeru kanału I/O
  $B5 - IOCHN - rejestr numeru kanału IOCB dla operacji I/O
  $B6 - DATAD - indeks kolejnej pozycji w instrukcji DATA
  $B7 - DATALN - numer kolejnego wiersza z instrukcją DATA
  $B9 - ERRCOD - rejestr obliczania kodu błędu
  $BA - STOPLN - numer wiersza zatrzymania programu
  $BC - TRAPLN - numer wiersza dla skoku po błędzie
  $BE - SAVCUR - tymczasowy rejestr numeru wiersza programu
  $C0 - IOCMD - kod rozkazu wykonania operacji I/O
  $C1 - IODVC - numer urządzenia wykonującego operację I/O
  $C2 - PROMPT - kod znaku wyświetlanego przez instrukcję INPUT
  $C3 - ERRSAV - kod ostatnio rozpoznanego błędu
  $C4 - SAVMHI - tymczasowy rejestr granicy zajętej pamięci
  $C6 - ACNT1 - pomocniczy licznik interpretera Basica
  $C7 - ACNT2 - pomocniczy licznik interpretera Basica
  $C8 - COLOR - rejestr aktualnie używanego koloru
  $C9 - PTABW - liczba znaków między pozycjami tabulacji
  $CA - LOADFLG - znacznik zakończenia operacji odczytu
  $CB-$D1 - niewykorzystane - przeznaczone dla użytkownika
  $D2 - VART - rejestr rodzaju zmiennej lub stałej
  $D3 - VARN - rejestr numeru zmiennej lub stałej
  $D4 - FR0 - zerowy rejestr liczb FP
  $DA - FRE - dodatkowy rejestr liczb FP
  $E0 - FR1 - pierwszy rejestr liczb FP
  $EF - ESIGN - rejestr znaku wykładnika
  $F0 - FCHRFLG - znacznik pierwszego znaku liczby
  $F1 - DIGRT - liczba cyfr po przecinku
  $F2 - CIX - indeks znaku w buforze
  $F3 - INBUFP - adres bufora wejściowego
  $F5 - ZTEMP1 - rejestr tymczasowy
  $F7 - ZTEMP2 - rejestr tymczasowy
  $F9 - ZTEMP3 - rejestr tymczasowy
  $FB - RADFLG - znacznik operacji trygonometrycznych
  $FC - FLPTR - adres liczby FP
  $FE - FPTR2 - adres liczby FP
$0100 - STACK - stos mikroprocesora 6502
$0270 - PADDL0 - stan potencjometru 0, rejestr-cień POT0
$0271 - PADDL1 - stan potencjometru 1, rejestr-cień POT1
$0272 - PADDL2 - stan potencjometru 2, rejestr-cień POT2
$0273 - PADDL3 - stan potencjometru 3, rejestr-cień POT3
$0278 - JSTICK0 - położenie joysticka 0
$0279 - JSTICK1 - położenie joysticka 1
$027C - PTRIG0 - przycisk potencjometru 0
$027D - PTRIG1 - przycisk potencjometru 1
$027E - PTRIG0 - przycisk potencjometru 2
$027F - PTRIG1 - przycisk potencjometru 3
$0284 - TRIG0S - przycisk joysticka 0, rejestr-cień TRIG0
$0285 - TRIG1S - przycisk joysticka 1, rejestr-cień TRIG1
$02C4 - COLPF0S - rejestr-cień COLPF0
$02C5 - COLPF1S - rejestr-cień COLPF1
$02C6 - COLPF2S - rejestr-cień COLPF2
$02C7 - COLPF3S - rejestr-cień COLPF3
$02C8 - COLBAKS - rejestr-cień COLBAK
$02E5 - MEMTOP - adres górnej granicy wolnej pamięci RAM
$02E7 - MEMLO - adres dolnej granicy wolnej pamięci RAM
$02FB - ATACHR - kod ATASCII znaku
$02FE - DSPFLG - znacznik wyświetlania znaków kontrolnych
$0340 - IOCB0 - blok kontroli I/O numer 0
$0350 - IOCB1 - blok kontroli I/O numer 1
$0360 - IOCB2 - blok kontroli I/O numer 2
$0370 - IOCB3 - blok kontroli I/O numer 3
$0380 - IOCB4 - blok kontroli I/O numer 4
$0390 - IOCB5 - blok kontroli I/O numer 5
$03A0 - IOCB6 - blok kontroli I/O numer 6
$03B0 - IOCB7 - blok kontroli I/O numer 7
$0342 - ICCMD - kod rozkazu operacji I/O
$0343 - ICSTAT - status operacji I/O
$0344 - ICBUFA - adres bufora danych dla operacji I/O
$0346 - ICPUTB - adres procedury przesyłania danych
$0348 - ICBUFL - długość bufora danych dla operacji I/O
$034A - ICAX1 - rejestr pomocniczy dla operacji I/O
$034B - ICAX2 - rejestr pomocniczy dla operacji I/O
$034C - ICAX3 - rejestr pomocniczy dla operacji I/O
$034D - ICAX4 - rejestr pomocniczy dla operacji I/O
$034E - ICAX5 - rejestr pomocniczy dla operacji I/O
$0480 - BINIX - indeks wejściowy bufora kontroli składni
$0481 - BOUTIX - indeks wyjściowy bufora kontroli składni
$0482 - BPRCNT - licznik programu do kontroli składni
$0580 - LBUFF - bufor wyjściowy operacji FP
$05E6 - FPSCR - rejestr pomocniczy operacji FP
$05EC - FPSCR1 - rejestr pomocniczy operacji FP
$D200 - AUDF1 - częstotliwość pracy generatora 1 (Z)
$D200 - POT0 - rejestr położenia potencjometru 0 (O)
$D201 - AUDC1 - rejestr kontroli dźwięku generatora 1 (Z)
$D201 - POT1 - rejestr położenia potencjometru 1 (O)
$D202 - AUDF2 - częstotliwość pracy generatora 2 (Z)
$D202 - POT2 - rejestr położenia potencjometru 2 (O)
$D203 - AUDC2 - rejestr kontroli dźwięku generatora 2 (Z)
$D203 - POT3 - rejestr położenia potencjometru 3 (O)
$D204 - AUDF3 - częstotliwość pracy generatora 3 (Z)
$D205 - AUDC3 - rejestr kontroli dźwięku generatora 3 (Z)
$D206 - AUDF4 - częstotliwość pracy generatora 4 (Z)
$D207 - AUDC4 - rejestr kontroli dźwięku generatora 4 (Z)
$D208 - AUDCTL - rejestr kontroli generatorów dźwięku (Z)
$D20A - RANDOM - rejestr liczby losowej (O)
$D20F - SKCTL - rejestr kontroli złącza szeregowego (Z)

Dodatek C

Zmienne systemowe

CARTINS
    0 - cartridge zainstalowany
    nie 0 - brak cartridge'a w gnieździe

CARTOPT
bit 0 - wstępny odczyt z dyskietki (0 = zabroniony)
bit 2 - 1 = inicjowanie i uruchomienie cartridge'a
        0 = tylko inicjowanie
bit 7 - rodzaj cartridge'a (1 = diagnostyczny)
pozostałe bity niewykorzystane

DSPFLG
    0 - wykonywanie znaków kontrolnych
    nie 0 - wyświetlanie znaków kontrolnych

LOADFLG
    0 - poprawny przebieg ostatniej operacji odczytu programu
    nie 0 - operacja odczytu programu nie została zakończona

SXFLG
bit 6 - błąd składni we wprowadzanym wierszu (1 = wystąpił)
bit 7 - tryb  pracy interpretera Atari Basic (0 = programowy, 1
= bezpośredni)

VART
bit 0 - deklaracja zmiennej tablicowej (1 = deklarowana)
bit 1 - oznaczenie stałej tekstowej (1 = stała, tylko jako $83)
bity 2-5 - niewykorzystane
bit 6 - zmienna indeksowana (1 = wartość z indeksem)
bit 7 - typ zmiennej (0 = liczbowa, 1 = tekstowa)

Dodatek D

Słownik terminów informatycznych

ASCII

    American Standard Code of Information Interchange - amerykański, standardowy kod wymiany informacji, kod przypisujący liczbom od 0 do 127 znaczenie liter, liczb i znaków kontrolnych, powszechnie używany w komputerach. Każda firma stosuje jednak nieco zmodyfikowany kod, np. w Atari jest używany ATASCII (ATari ASCII).

BCD

    Binary Coded Decimal - liczba dziesiętna kodowana dwójkowo, kod zapisu liczb dziesiętnych, w którym każdej cyfrze odpowiadają cztery bity. W ten sposób w jednym bajcie można zapisać dwie cyfry dziesiętne. Maksymalna wartość półbajtu w kodzie BCD wynosi 9. Procesor 6502 po rozkazie SED pracuje w trybie dziesiętnym, czyli na liczbach w kodzie BCD.

CIO

    Central Input/Output - zespół procedur obsługujących komunikację komputera z urządzeniami zewnętrznymi.

EOF

    End Of File - koniec zbioru, znak oznaczający ten koniec lub kod błędu informujący, że wszystkie dane zostały już ze zbioru odczytane.

EOL

    End Of Line - koniec linii, znak końca wiersza logicznego w edytorze, a w innych urządzeniach znak końca bloku przesyłanej informacji. Kod EOL jest taki jak znaku RETURN - $9B.

FP

    Floating Point - liczby, operacje i procedury na liczbach rzeczywistych czyli zmiennoprzecinkowych. W Atari procedury zmiennoprzecinkowe zawarte są w pakiecie FP.

I/O

    Input/Output - wejście/wyjście, ogólna nazwa operacji służących do komunikacji komputera z urządzeniami zewnętrznymi.

IOCB

    Input/Output Control Block - blok kontroli I/O, 16-bajtowy obszar pamięci RAM wykorzystywany przez procedury CIO do operacji wejścia/wyjścia. Istnieje IOCB strony zerowej i osiem IOCB w obszarze od $0340 do $3BF.

IRQ

    Interrupt Request - żądanie przerwania, nazwą tą określa się wszystkie przerwania maskowalne, to znaczy takie, które mogą nie zostać przyjęte do realizacji przez procesor.

LSB

    Least Significant Byte - mniej znaczący bajt, bajt adresu lub danej zawierający dwie mniej znaczące cyfry (szesnastkowe). LSB=ADR-MSB*$0100. Przy adresowaniu wskazuje numer komórki na stronie.

MSB

    Most Significant Byte - bardziej znaczący bajt, bajt adresu lub danej zawierający dwie bardziej znaczące cyfry. MSB=INT(ADR/$0100). Przy adresowaniu wskazuje numer strony pamięci.

OS

    Operating System - system operacyjny, zestw procedur zapisanych przeważnie w pamięci ROM, które sterują pracą komputera i jego współpracą z urządzeniami zewnętrznymi.

pakiet FP

    Obszar pamięci ROM komputerów Atari XL/XE zawierający wbudowany zestaw procedur wykonujących operacje na liczbach zmiennoprzecinkowych. Nazwa ta określa także sam zestaw procedur FP.

rejestr

    Zespół komórek (w Atari 1-6) pamięci RAM służących do przechowywania różnych wartości niezbędnych do pracy OS lub programu. Podstawowymi rodzajami rejestrów są wektory i znaczniki (wskaźniki).

rejestr-cień

    Specjalizowane układy scalone komputerów Atari mają własne rejestry, które znajdują się w obszarze adresowym procesora. Większość z nich posiada kopie w normalnych rejestrach RAM, tzw. rejestry-cienie (shadow register). Zawartość rejestrów-cieni jest przepisywana do rejestrów sprzętowych lub odwrotnie podczas przerwania VBLK.

rekord

    Część informacji (programu lub danych) zapisywana lub odczytywana jednorazowo z urządzenia zewnętrznego. Długość rekordu jest zwykle równa długości bufora, który służy do jego przechowania, a nigdy nie może być większa.

strona

    Część pamięci komputera o wielkości 256 bajtów. Starszy bajt adresu wskazuje zawsze numer strony, a młodszy - komórkę na stronie.

token

    Jednobajtowy kod instrukcji, operatora, funkcji lub innego elementu programu w języku Basic. Stosowanie tokenów do zapisu programu zmniejsza wykorzystywany obszar pamięci i oszczędza nośniki pamięci zewnętrznych.

tryb bezpośredni

    Tryb pracy interpretera Atari Basic, w którym każdy wprowadzony wiersz jest wykonywany natychmiast po zatwierdzeniu go znakiem końca wiersza EOL (jeśli jest bez błędów). W tym trybie wykonywane są wszystkie wiersze podane bez numeru.

tryb programowy

    Tryb pracy interpretera Atari Basic, w którym każdy wprowadzony wiersz jest po zatwierdzeniu go znakiem końca wiersza EOL zapisywany w pamięci w postaci stokenizowanej. Wiersze wpisywane w tym trybie muszą posiadać numer kolejny o wartości z zakresu $0000-$7FFF (0-32767).

wektor

    Rejestr zawierający adres procedury lub danych (wskazujący adres). Wektor dwubajtowy zawiera pełny adres, a wektor jednobajtowy tylko numer strony.

wskaźnik

    to samo co znacznik.

znacznik

    Rejestr, którego zawartość sygnalizuje stan jakiegoś elementu systemu lub wariant operacji. Znacznik może być traktowany jako całość, ale często poszczególne bity znacznika mają odrębne znaczenie.

Dodatek E

Tabela przeliczeń DEC-BIN-HEX

    Poniższa tabela może służyć do szybkiej zamiany liczb zapisanych w systemach: szesnastkowym (HEX), dziesiętnym (DEC) i dwójkowym (BIN). Dodatkowo dla ułatwienia orientacji w stosowanym przez procesor 6502 systemie adresowania podana jest wartość dziesiętna pomnożona przez 256 (strona).
HEX  DEC  strona    BIN             HEX  DEC  strona    BIN
 00    0      0  00000000            80  128  32768  10000000
 01    1    256  00000001            81  129  33024  10000001
 02    2    512  00000010            82  130  33280  10000010
 03    3    768  00000011            83  131  33536  10000011
 04    4   1024  00000100            84  132  33792  10000100
 05    5   1280  00000101            85  133  34048  10000101
 06    6   1536  00000110            86  134  34304  10000110
 07    7   1792  00000111            87  135  34560  10000111
 08    8   2048  00001000            88  136  34816  10001000
 09    9   2304  00001001            89  137  35072  10001001
 0A   10   2560  00001010            8A  138  35328  10001010
 0B   11   2816  00001011            8B  139  35584  10001011
 0C   12   3072  00001100            8C  140  35840  10001100
 0D   13   3328  00001101            8D  141  36096  10001101
 0E   14   3584  00001110            8E  142  36352  10001110
 0F   15   3840  00001111            8F  143  36608  10001111
 10   16   4096  00010000            90  144  36864  10010000
 11   17   4352  00010001            91  145  37120  10010001
 12   18   4608  00010010            92  146  37376  10010010
 13   19   4864  00010011            93  147  37632  10010011
 14   20   5120  00010100            94  148  37888  10010100
 15   21   5376  00010101            95  149  38144  10010101
 16   22   5632  00010110            96  150  38400  10010110
 17   23   5888  00010111            97  151  38656  10010111
 18   24   6144  00011000            98  152  38912  10011000
 19   25   6400  00011001            99  153  39168  10011001
 1A   26   6656  00011010            9A  154  39424  10011010
 1B   27   6912  00011011            9B  155  39680  10011011
 1C   28   7168  00011100            9C  156  39936  10011100
 1D   29   7424  00011101            9D  157  40192  10011101
 1E   30   7680  00011110            9E  158  40448  10011110
 1F   31   7936  00011111            9F  159  40704  10011111
 20   32   8192  00100000            A0  160  40960  10100000
 21   33   8448  00100001            A1  161  41216  10100001
 22   34   8704  00100010            A2  162  41472  10100010
 23   35   8960  00100011            A3  163  41728  10100011
 24   36   9216  00100100            A4  164  41984  10100100
 25   37   9472  00100101            A5  165  42240  10100101
 26   38   9728  00100110            A6  166  42496  10100110
 27   39   9984  00100111            A7  167  42752  10100111
 28   40  10240  00101000            A8  168  43008  10101000
 29   41  10496  00101001            A9  169  43264  10101001
 2A   42  10752  00101010            AA  170  43520  10101010
 2B   43  11008  00101011            AB  171  43776  10101011
 2C   44  11264  00101100            AC  172  44032  10101100
 2D   45  11520  00101101            AD  173  44288  10101101
 2E   46  11776  00101110            AE  174  44544  10101110
 2F   47  12032  00101111            AF  175  44800  10101111
 30   48  12288  00110000            B0  176  45056  10110000
 31   49  12544  00110001            B1  177  45312  10110001
 32   50  12800  00110010            B2  178  45568  10110010
 33   51  13056  00110011            B3  179  45824  10110011
 34   52  13312  00110100            B4  180  46080  10110100
 35   53  13568  00110101            B5  181  46336  10110101
 36   54  13824  00110110            B6  182  46592  10110110
 37   55  14080  00110111            B7  183  46848  10110111
 38   56  14336  00111000            B8  184  47104  10111000
 39   57  14592  00111001            B9  185  47360  10111001
 3A   58  14848  00111010            BA  186  47616  10111010
 3B   59  15104  00111011            BB  187  47872  10111011
 3C   60  15360  00111100            BC  188  48128  10111100
 3D   61  15616  00111101            BD  189  48384  10111101
 3E   62  15872  00111110            BE  190  48640  10111110
 3F   63  16128  00111111            BF  191  48896  10111111
 40   64  16384  01000000            C0  192  49152  11000000
 41   65  16640  01000001            C1  193  49408  11000001
 42   66  16896  01000010            C2  194  49664  11000010
 43   67  17152  01000011            C3  195  49920  11000011
 44   68  17408  01000100            C4  196  50176  11000100
 45   69  17664  01000101            C5  197  50432  11000101
 46   70  17920  01000110            C6  198  50688  11000110
 47   71  18176  01000111            C7  199  50944  11000111
 48   72  18432  01001000            C8  200  51200  11001000
 49   73  18688  01001001            C9  201  51456  11001001
 4A   74  18944  01001010            CA  202  51712  11001010
 4B   75  19200  01001011            CB  203  51968  11001011
 4C   76  19456  01001100            CC  204  52224  11001100
 4D   77  19712  01001101            CD  205  52480  11001101
 4E   78  19968  01001110            CE  206  52736  11001110
 4F   79  20224  01001111            CF  207  52992  11001111
 50   80  20480  01010000            D0  208  53248  11010000
 51   81  20736  01010001            D1  209  53504  11010001
 52   82  20992  01010010            D2  210  53760  11010010
 53   83  21248  01010011            D3  211  54016  11010011
 54   84  21504  01010100            D4  212  54272  11010100
 55   85  21760  01010101            D5  213  54528  11010101
 56   86  22016  01010110            D6  214  54784  11010110
 57   87  22272  01010111            D7  215  55040  11010111
 58   88  22528  01011000            D8  216  55296  11011000
 59   89  22784  01011001            D9  217  55552  11011001
 5A   90  23040  01011010            DA  218  55808  11011010
 5B   91  23296  01011011            DB  219  56064  11011011
 5C   92  23552  01011100            DC  220  56320  11011100
 5D   93  23808  01011101            DD  221  56576  11011101
 5E   94  24064  01011110            DE  222  56832  11011110
 5F   95  24320  01011111            DF  223  57088  11011111
 60   96  24576  01100000            E0  224  57344  11100000
 61   97  24832  01100001            E1  225  57600  11100001
 62   98  25088  01100010            E2  226  57856  11100010
 63   99  25344  01100011            E3  227  58112  11100011
 64  100  25600  01100100            E4  228  58368  11100100
 65  101  25856  01100101            E5  229  58624  11100101
 66  102  26112  01100110            E6  230  58880  11100110
 67  103  26368  01100111            E7  231  59136  11100111
 68  104  26624  01101000            E8  232  59392  11101000
 69  105  26880  01101001            E9  233  59648  11101001
 6A  106  27136  01101010            EA  234  59904  11101010
 6B  107  27392  01101011            EB  235  60160  11101011
 6C  108  27648  01101100            EC  236  60416  11101100
 6D  109  27904  01101101            ED  237  60672  11101101
 6E  110  28160  01101110            EE  238  60928  11101110
 6F  111  28416  01101111            EF  239  61184  11101111
 70  112  28672  01110000            F0  240  61440  11110000
 71  113  28928  01110001            F1  241  61696  11110001
 72  114  29184  01110010            F2  242  61952  11110010
 73  115  29440  01110011            F3  243  62208  11110011
 74  116  29696  01110100            F4  244  62464  11110100
 75  117  29952  01110101            F5  245  62720  11110101
 76  118  30208  01110110            F6  246  62976  11110110
 77  119  30464  01110111            F7  247  63232  11110111
 78  120  30720  01111000            F8  248  63488  11111000
 79  121  30976  01111001            F9  249  63744  11111001
 7A  122  31232  01111010            FA  250  64000  11111010
 7B  123  31488  01111011            FB  251  64256  11111011
 7C  124  31744  01111100            FC  252  64512  11111100
 7D  125  32000  01111101            FD  253  64768  11111101
 7E  126  32256  01111110            FE  254  65024  11111110
 7F  127  32512  01111111            FF  255  65280  11111111

Dodatek F

Tabela różnic asemblerów

    Asemblery dostępne na Atari XL/XE różnią się nieco między sobą stosowanymi słowami kluczowymi. Poniższa tabela zawiera różnice występujące w kilku najpopularniejszych asemblerach: Macroassembler 65 (MAC/65), Atari Assembler/Editor (ASM/EDIT), Atari Macroassembler (AMAC) i Synapse Assembler (SYNASM).
    |   MAC/65   |  ASM/EDIT  |    AMAC    |   SYNASM   |
    +------------+------------+------------+------------+
    |     *=     |     *=     |    ORG     |    .OR     |
    |     *      |     *      |     *O     |     *      |
    |     =      |     =      | = lub EQU  |    .EQ     |
    |   .BYTE    |   .BYTE    |     DB     |    .AT     |
    |   .SBYTE   |   .BYTE    |     DC     |    .HS     |
    |   .DBYTE   |   .BYTE    |    brak    |    .AS     |
    |   .WORD    |   .WORD    |     DW     |    .DA     |
    |    *=*+    |    *=*+    |     DS     |    .BS     |

Dodatek G

Bibliografia

1. Chadwick Ian: Mapping the Atari, COMPUTE! Books, Greensboro, USA, 1985.
2. Eichler Lutz, Grohmann Bernd: Atari 600XL/800XL Intern, Data Becker, Dusseldorf, 1984.
3. Hofacker Winfried: Hacker book. Atari computer tips + tricks, ELCOMP Publishing, Pomona, USA, 1983.
4. Praca zbiorowa: De Re Atari. A guide to effective programing 400/800 Home Computers, Byte Publishing, USA, 1981.
5. Praca zbiorowa, redakcja: Migut Wiesław: Atari BASIC, KAW, Warszawa, 1987.
6. Ruszczyc Jan: Asembler 6502, SOETO, Warszawa, 1987.
7. Zientara Wojciech: PEEK-POKE 2 (opracowanie), B.U.K. "GLAD", Warszawa, 1987.
8. Zientara Wojciech: Mapa pamięci Atari XL/XE. Podstawowe procedury systemu operacyjnego, SOETO, Warszawa, 1988.
9. Zientara Wojciech: Mapa pamięci Atari XL/XE. Procedury wejścia/wyjścia, SOETO, Warszawa, 1988.
10. Zientara Wojciech: Mapa pamięci Atari XL/XE. Dyskowe systemy operacyjne, SOETO, Warszawa, 1988.
Zientara Wojciech: Mapa pamięci Atari XL/XE. Procedury interpretera Basica, SOETO, Warszawa, 1988.