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.
|