Powrót do spisu treści

DODATKI

Dodatek A

Adresy procedur OS

$5000 - TESTST - początek testu komputera
$5003 - TESTINI - inicjowanie testu komputera
$BDA7 - SIN - sinus liczby FP
$BDB1 - COS - cosinus liczby FP
$BE77 - ATAN - arcus tangens liczby FP
$BEE5 - SQR - pierwiastek kwadratowy z liczby FP
$C000 - CHSRO1 - suma kontrolna pierwszej części ROM
$C00C - NMIENBL - inicjowanie przerwań MNI
$C018 - NMIFIRST - rozpoznanie przerwania NMI
$C02C - JMPIRQV - skok według wektora VIMIRQ
$C030 - SINDRYI - rozpoznanie przerwania IRQ
$C092 - BREAKIRQ - przerwanie klawisza BREAK
$C0CD - PLARTI - powrót z przerwania
$C0CE - RTI - powrót z przerwania
$C0CF - MASKTAB - tabela masek bitowych dla SINDRYI
$C0D7 - VECTAB - tabela wektorów przerwań dla SINDRYI
$C0DF - WAIT - oczekiwanie na RESET
$C0E2 - SYSVBL - systemowe przerwanie synchronizacji (VBLK)
$C24F - JMPTIM1 - skok według wektora TIMVEC1
$C252 - JMPTIM2 - skok według wektora TIMVEC2
$C255 - DECTIM - zmniejszenie licznika systemowego
$C272 - SETVBLV - ustawianie wektorów przerwania VBLK
$C28A - EXITVBL - zakończenie przerwania VBLK
$C290 - RESETWM - gorący start systemu
$C2AA - RESET - start systemu po naciśnięciu RESET
$C2C8 - RESETCD - zimny start systemu
$C3C1 - GOMEMTST - skok do testu komputera
$C423 - COLDCART - skok według wektora CARTRUN
$C426 - DOSVECC - skok według wektora DOSVEC
$C429 - INITCART - skok według wektora CARTINI
$C42C - CLCRTS - rozkazy CLC i RTS
$C42E - INIT31A - tabela wartości dla HATABS
$C43D - DERRMSG - meldunek błędu "BOOT ERROR"
$C448 - NAME - nazwa edytora "E:"
$C44B - INIT200 - tabela wartości dla wektorów OS
$C471 - CARTGO - sprawdzenie cartridge'a
$C4A9 - GRAMHI - sprawdzenie wielkości RAM
$C4C9 - NEWCART - sprawdzenie cartridge'a
$C4DA - IOPORTIN - inicjowanie portów układów I/O
$C535 - SYSINIT - inicjowanie systemu komputerowego
$C58B - BOOT - wstępny odczyt z dyskietki
$C5BB - BLOCK1 - wstępny odczyt przy zimnym starcie
$C629 - BLOAD - odczyt adresu inicjowania
$C63B - DOSINITC - skok według wektora DOSINI
$C63E - DRDERR - wyświetlenie meldunku błędu
$C642 - PUTLINE - wyświetlenie linii tekstu
$C659 - GETBLK - odczyt bloku danych z urządzenia
$C66E - CASBOOT - wstępny odczyt z kasety
$C6A0 - CASINITC - skok według wektora CASINI
$C6A3 - DSKINIT - inicjowanie obsługi stacji dysków
$C6B3 - DSKINT - główna procedura dyskowa
$C8FC - SWITROM - wywołanie testu komputera
$C90C - NEWINIT - inicjowanie nowych urządzeń
$C933 - SIOINT - procedura obsługi złącza szeregowego
$C96E - NEWIOREQ - przerwanie IRQ nowego urządzenia
$CA21 - BITMASK - maski bitowe dla NEWIOREQ
$CC00 - CHARSET2 - zestaw znaków międzynarodowych
$D803 - DEVID1 - kod identyfikacyjny nowego urządzenia
$D808 - DEVINT - przerwanie IRQ nowego urządzenia
$D80B - DEVID2 - kod identyfikacyjny nowego urządzenia
$D819 - DEVINIT - inicjowanie nowego urządzenia
$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
$DA5A - ROLZ2 - przesunięcie w lewo ZTEMP2
$DA60 - FSUB - odejmowanie liczb FP
$DA66 - FADD - dodawanie liczb FP
$DADB - FMUL - mnożenie liczb FP
$DB28 - FDIV - dzielenie liczb FP
$DB94 - INBCN - zamiana znaku z bufora
$DB8D - INCIX - zwiększenie indeksu
$DBA1 - INBSS - przeszukiwanie bufora
$DBAF - ADBT - zamiana znaku ASCII na kod BCD
$DBBB - ASCSS - przeszukiwanie ciągu ASCII
$DBE7 - ROLFR2 - przesunięcie w lewo liczby w FR2
$DBEB - ROLFR0 - przesunięcie w lewo liczby w FR0
$DC00 - NFR0 - poprawienie formatu liczby FP
$DC3A - ADJ0 - adjustowanie liczby z FR0
$DC3E - ADJ1 - adjustowanie liczby z FR1
$DC62 - SHR0 - przesunięcie w prawo FR0
$DC70 - STALB - zapis znaku ASCII do bufora
$DC9D - BTAD - zamiana kodu BCD na znak ASCII
$DC9F - STLB - zapis do bufora
$DCA4 - LBSR - przeszukiwanie bufora
$DCB9 - IDEX - wydzielenie cyfry
$DCC1 - DECIBP - zmniejszenie licznika bufora
$DCCF - SGNEV - obliczenie znaku przy mnożeniu i dzieleniu
$DCE0 - MVARG - przeniesienie argumentów
$DD01 - ADD01 - dodanie rejestrów FR0 i FR1
$DD05 - ADD02 - dodanie rejestrów FR0 i FR2
$DD09 - ADDE1 - dodanie rejestrów FRE i FR1
$DD0F - ADDE2 - dodanie rejestrów FRE i FR2
$DD40 - PLYEVL - przeliczenie wielomianowe
$DD89 - FLD0R - zapis liczby FP do FR0 według X,Y
$DD8D - FLD0P - zapis liczby FP do FR0 według FLPTR
$DD98 - FLD1R - zapis liczby FP do FR1 według X,Y
$DD9C - FLD1P - zapis liczby FP do FR1 według FLPTR
$DDA7 - FST0R - zapis liczby FP z FR0 według X,Y
$DDAB - FST0P - zapis liczby FP z FR0 według FLPTR
$DDB6 - FMOV01 - przepisanie z FR0 do FR1
$DD34 - FMOV0E - przepisanie z FR0 do FRE
$DD28 - FMOV12 - przepisanie z FR1 do FR2
$DDC0 - EXP - potęgowanie o podstawie e
$DDCC - EXP10 - potęgowanie o podstawie 10
$DE4D - TP10 - tabela współczynników potęgowania
$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
$E000 - CHARSET1 - standardowy zestaw znaków
$E400 - EDTVEC - wektory obsługi edytora
$E410 - SCRVEC - wektory obsługi ekranu
$E420 - KBDVEC - wektory obsługi klawiatury
$E430 - PRTVEC - wektory obsługi drukarki
$E440 - CASVEC - wektory obsługi magnetofonu
$E450 - JMPTAB - tabela skoków
$E450 - JDSKINIT - skok do DSKINIT
$E453 - JDSKINT - skok do DSKINT
$E456 - JCIOMAIN - skok do CIOMAIN
$E465 - JSIOINIT - skok do SIOINIT
$E46B - JNMIEN - skok do NMIENBL
$E46E - JCIOINIT - skok do CIOINIT
$E47A - JCASRDBL - skok do CASRDBL
$E47D - JCASOPIN - skok do CASOPIN
$E483 - JTESTST - skok do TESTST
$E49B - NEWINITC - skok do NEWINIT
$E4C1 - CIOINIT - inicjowanie obsługi urządzeń
$E4DC - CIONOPN - kanał I/O nie otwarty
$E4DF - CIOMAIN - procedura obsługi urządzeń
$E739 - LINKSOM - procedura dołączania urządzeń
$E95C - SIOINIT - inicjowanie złącza szeregowego
$EAAD - ISRODN - przerwanie zapisu danych
$EAEC - ISRXD - przerwanie końca transmisji
$EB2E - ISRSIR - przerwanie odczytu danych
$EC11 - TIM1INT - przerwanie licznika 1
$EC17 - SNDENBL - zezwolenie na zapis danych
$EEBC - NEWDEVC - wywołanie nowego urządzenia
$EF6E - POWERON - inicjowanie edytora
$F223 - TESTROM - skok do SWITROM
$FB51 - KEYDEF - tabela definicji klawiszy
$FC11 - FKDEF - tabela definicji klawiszy funkcyjnych
$FC19 - CPUIRQ - przerwanie IRQ klawiatury
$FCC4 - FSDL - przerwanie NMI programu ANTIC-a
$FCDB - CASINIT - inicjowanie magnetofonu
$FCF7 - CASOPIN - początek odczytu z magnetofonu
$FD8D - CASRDBL - odczyt bloku z magnetofonu
$FE99 - PRINIT - inicjowanie drukarki
$FF73 - CKROM1 - sprawdzenie pierwszej części ROM
$FF92 - CKROM2 - sprawdzenie drugiej części ROM
$FFA9 - GETCKS - zliczanie sumy kontrolnej
$FFD7 - CKSTAB - tabela adresów bloków pamięci ROM
$FFF8 - CHSRO2 - suma kontrolna drugiej części ROM
$FFFA - NMIVEC - wektor procedury przerwania NMI
$FFFC - RESETVEC - wektor procedury przerwania RESET
$FFFE - IRQVEC - wektor procedury przerwania IRQ

Dodatek B

Rejestry OS w pamięci RAM

  $00 - LNFLG - rejestr pomocniczy procedury RESET
  $01 - NGFLAG - rejestr pomocniczy procedury RESET
  $02 - CASINI - wektor inicjacji po odczycie z kasety
  $04 - RAMLO - wektor RAM dla testu wielkości pamięci
  $06 - TRAMSZ - rejestr tymczasowy dla testu wielkości RAM
  $08 - WARMST - znacznik gorącego startu
  $09 - BOOT? - znacznik odczytu wstępnego
  $0A - DOSVEC - wektor startowy programu dyskowego
  $0C - DOSINI - wektor inicjacji po odczycie z dyskietki
  $0E - APPMHI - najwyższy adres RAM zajęty przez program
  $10 - IRQENS - rejestr-cień IRQEN
  $11 - IRQSTAT - rejestr-cień IRQST
  $12 - RTCLOCK - zegar czasu rzeczywistego
  $30 - STATUS - status aktualnej operacji SIO
  $31 - CHKSUM - suma kontrolna dla operacji SIO
  $32 - BUFR - adres bufora danych dla SIO
  $34 - BUFEN - adres końca bufora danych dla SIO
  $38 - BUFRFL - znacznik zapełnienia bufora SIO
  $39 - RECVND - znacznik końca odczytu
  $3A - XMTDON - znacznik końca transmisji
  $3B - CHKSNT - znacznik nadania sumy kontrolnej
  $3C - NOCKSM - znacznik braku sumy kontrolnej
  $3E - GAPTYP - wskaźnik długości przerwy między blokami
  $41 - IOSNDEN - znacznik dźwięku przy transmisji
  $42 - CRITIC - znacznik krytycznych czasowo operacji I/O
  $4D - ATRACT - licznik trybu przyciągania uwagi
  $4E - ATRMSK - maska trybu przyciągania uwagi
  $4F - COLRSH - maska zmiany kolorów
  $52 - LMARGIN - lewy margines obrazu
  $53 - RMARGIN - prawy margines obrazu
  $60 - FKDEFP - wektor tabeli definicji klawiszy F1-F4
  $62 - PALNTS - wskaźnik systemu TV
  $6A - RAMTOP - liczba stron pamięci RAM
  $79 - KEYDEFP - wektor tabeli definicji klawiszy
  $8B - CKSUM - tymczasowy rejestr sumy kontrolnej
  $9E - TMPREG - tymczasowy rejestr sumy kontrolnej
  $D4 - FR0 - zerowy rejestr liczb FP
  $DA - FRE - dodatkowy rejestr liczb FP
  $E0 - FR1 - pierwszy rejestr liczb FP
  $E6 - FR2 - drugi rejestr liczb FP
  $EC - FRX - rejestr pomocniczy
  $ED - EEXP - rejestr wartości wykładnika
  $EE - NSIGN - rejestr znaku liczby
  $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
  $FC - FLPTR - adres liczby FP
  $FE - FPTR2 - adres liczby FP
$0100 - STACK - stos mikroprocesora 6502
$0200 - DLIV - wektor przerwania programu ANTIC-a
$0202 - VPRCED - wektor przerwania portu A PIA
$0204 - VINTER - wektor przerwania portu B PIA
$0206 - VBREAK - wektor przerwania rozkazu BRK
$020A - VSERIN - wektor przerwania odczytu szeregowego
$020C - VSEROR - wektor przerwania zapisu szeregowego
$020E - VSEROC - wektor przerwania końca transmisji
$0210 - VTIMR1 - wektor przerwania licznika 1 POKEY-a
$0212 - VTIMR2 - wektor przerwania licznika 2 POKEY-a
$0214 - VTIMR4 - wektor przerwania licznika 4 POKEY-a
$0216 - VIMIRQ - główny wektor przerwania IRQ
$0218 - TIMCNT1 - pierwszy licznik systemu
$021A - TIMCNT2 - drugi licznik systemu
$021C - TIMCNT3 - trzeci licznik systemu
$021E - TIMCNT4 - czwarty licznik systemu
$0220 - TIMCNT5 - piąty licznik systemu
$0222 - VVBLKI - wektor natychmiastowego przerwania VBLK
$0224 - VVBLKD - wektor opóźnionego przerwania VBLK
$0226 - TIMVEC1 - wektor przerwania licznika TIMCNT1
$0228 - TIMVEC2 - wektor przerwania licznika TIMCNT2
$022B - SRTIMER - zegar powtarzania klawiatury
$022D - INTEMP - rejestr przejściowy procedury SETVBLV
$022F - DMACTLS - rejestr-cień DMACTL
$0230 - DLPTRS - rejestr-cień DLPTR
$0232 - SKCTLS - rejestr-cień SKCTL
$0234 - LPENHS - rejestr-cień LPENH
$0235 - LPENVS - rejestr-cień LPENV
$0236 - VBRKKEY - wektor przerwania klawisza BREAK
$0238 - VPIRQ - wektor przerwania nowego urządzenia
$0240 - DFLAG - znacznik operacji dyskowych
$0241 - DSECCNT - licznik sektorów dla operacji dyskowych
$0242 - BOOTAD - adres ładowania przy stępnym odczycie
$0244 - COLDST - znacznik zimnego startu systemu
$0246 - DSKTIM - wartość Timeout dla stacji dysków
$0248 - PDVRS - rejestr-cień PDVREG
$0249 - PINTMSK - maska przerwań nowych urządzeń
$026B - CHSPTR - wektor nieużywanego zestawu znaków
$026C - VSFLAG - znacznik przesuwu pionowego obrazu
$026D - KEYDIS - znacznik zablokowania klawiatury
$026F - GTICTLS - rejestr-cień GTIACTL
$0270 - PADDL0 - rejestr-cień POT0
$0278 - JSTICK0 - położenie joysticka 0
$0279 - JSTICK1 - położenie joysticka 1
$027A - JSTICK2 - położenie joysticka 2
$027B - JSTICK3 - położenie joysticka 3
$027C - PTRIG0 - przycisk potencjometru 0
$027D - PTRIG1 - przycisk potencjometru 1
$0284 - TRIG0S - przycisk joysticka 0, rejestr-cień TRIG0
$0285 - TRIG1S - przycisk joysticka 1, rejestr-cień TRIG1
$0286 - TRIG2S - rejestr-cień TRIG2
$0287 - TRIG3S - rejestr-cień TRIG3
$028C - NEWIOP - tymczasowy wektor skoku przerwań IRQ
$02BE - SHFLOK - znacznik klawiszy SHIFT i START
$02C0 - COLPM0S - rejestr-cień COLPM0
$02C1 - COLPM1S - rejestr-cień COLPM1
$02C2 - COLPM2S - rejestr-cień COLPM2
$02C3 - COLPM3S - rejestr-cień COLPM3
$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
$02D5 - DSCTLN - długość sektora dyskowego
$02D9 - KRPDEL - czas opóźnienia powtarzania klawisza
$02DA - KEYREP - częstotliwość powtarzania klawisza
$02DC - HLPFLG - znacznik klawisza HELP
$02DD - DMASAV - rejestr do przechowywania DMACTLS
$02E4 - RAMSIZ - liczba stron pamięci RAM
$02E5 - MEMTOP - adres górnej granicy wolnej pamięci RAM
$02E7 - MEMLO - adres dolnej granicy wolnej pamięci RAM
$02EE - CBAUD - prędkość transmisji z magnetofonu
$02F0 - CRSINH - znacznik widoczności kursora
$02F1 - KEYDEL - wartość opóźnienia odczytu klawisza
$02F2 - OLDKBC - kod poprzednio naciśniętego klawisza
$02F3 - CHACT - rejestr-cień CHRCTL
$02F4 - CHBAS - rejestr-cień CHBASE
$02FC - KBCODES - rejestr-cień KBCODE
$02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu
$0300 - DDEVIC - kod identyfikacyjny urządzenia
$0301 - DUNIT - numer identyfikacyjny urządzenia
$0302 - DCMND - bajt rozkazu dla urządzenia
$0304 - DBUFA - adres bufora danych
$030A - DAUX1 - rejestr pomocniczy dla operacji I/O
$030B - DAUX2 - rejestr pomocniczy dla operacji I/O
$0314 - PTIMOT - wartość Timeout dla drukarki
$0317 - TIMFLG - znacznik upłynięcia czasu Timeout
$031A - HATABS - tabela wektorów procedur obsługi
$033D - PUPBT1 - bajt kontrolny zimnego startu
$033E - PUPBT2 - bajt kontrolny zimnego startu
$033F - PUPBT3 - bajt kontrolny zimnego startu
$0340 - ICCHID - indeks wpisu urządzenia w HATABS
$0342 - ICCMD - kod rozkazu operacji I/O
$0344 - ICBUFA - adres bufora danych
$0346 - ICPUTB - adres procedury przesyłania danych
$0348 - ICBUFL - długość bufora danych
$034A - ICAX1 - rejestr pomocniczy dla operacji I/O
$03E9 - CKEY - znacznik klawisza START przy zimnym starcie
$03EA - CASSBT - znacznik odczytu z magnetofonu
$03EB - CARTCK - suma kontrolna cartridge'a
$03EC - DERRF - znacznik błędu przy otwieraniu edytora
$03F8 - BASICF - znacznik interpretera Atari Basic
$03FA - GINTLK - znacznik cartridge'a (kopia TRIG3)
$0400 - CASBUF - bufor magnetofonu
$057F - LBPR2 - prefiks bufora
$0580 - LBUFF - bufor wyjściowy operacji FP
$05E0 - PLYARG - argument przeliczania wielomianowego
$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
$D010 - TRIG0 - stan przycisku joysticka 0
$D011 - TRIG1 - stan przycisku joysticka 1
$D012 - COLPM0 - rejestr koloru gracza 0
$D013 - COLPM1 - rejestr koloru gracza 1
$D013 - TRIG3 - znacznik dołączenia cartridge'a
$D014 - COLPM2 - rejestr koloru gracza 2
$D014 - PAL - znacznik systemu TV
$D015 - COLPM3 - rejestr koloru gracza 3
$D016 - COLPF0 - rejestr koloru pola gry 0
$D017 - COLPF1 - rejestr koloru pola gry 1
$D018 - COLPF2 - rejestr koloru pola gry 2
$D019 - COLPF3 - rejestr koloru pola gry 3
$D01A - COLBAK - rejestr koloru tła
$D01B - GTIACTL - rejestr kontroli układu GTIA
$D01F - CONSOL - rejestr stanu klawiszy konsoli
$D1FF - PDVREG - rejestr wyboru nowego urządzenia
$D200 - POT0 - rejestr położenia potencjometru 0
$D205 - AUDC3 - rejestr kontroli dźwięku generatora 3
$D207 - AUDC4 - rejestr kontroli dźwięku generatora 4
$D208 - AUDCTL - rejestr kontroli generatorów dźwięku
$D209 - KBCODE - kod ostatnio naciśniętego klawisza
$D20A - SKSTRES - reset statusu złącza szeregowego
$D20B - POTGO - znacznik przetwornika analogowo-cyfrowego
$D20D - SEROUT - szeregowy rejestr wyjściowy
$D20D - SERIN - szeregowy rejestr wejściowy
$D20E - IRQST - status przerwań IRQ
$D20E - IRQEN - zezwolenia przerwań IRQ
$D20F - SKCTL - rejestr kontroli złącza szeregowego
$D20F - SKSTAT - rejestr statusu złącza szeregowego
$D300 - PORTA - port A układu PIA
$D301 - PORTB - port B układu PIA
$D302 - PACTL - rejestr kontroli portu A
$D303 - PBCTL - rejestr kontroli portu B
$D400 - DMACTL - rejestr kontroli dostępu do pamięci
$D401 - CHRCTL - rejestr kontroli wyświetlania znaków
$D402 - DLPTR - adres programu ANTIC-a
$D405 - VSCROL - znacznik pionowego przesuwu obrazu
$D409 - CHBASE - adres zestawu znaków
$D40C - LPENH - poziome położenie pióra świetlnego
$D40D - LPENV - pionowe położenie pióra świetlnego
$D40A - WSYNC - znacznik oczekiwania na synchronizację poziomą
$D40E - NMIEN - rejestr zezwoleń na przerwania NMI
$D40F - NMIST - rejestr statusu przerwań NMI

Dodatek C

Zmienne systemowe

BASICF
    0 - interpreter Atari Basic dołączony
    1 - interpreter Atari Basic odłączony

BOOT?
    1 - udany odczyt ze stacji dysków
    2 - udany odczyt z magnetofonu
    3 - udany odczyt z magnetofonu i stacji dysków

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

CASSBT
    0 - wstępny odczyt ze stacji dysków
    1 - wstępny odczyt z magnetofonu

CHRCTL/CHACT
bit 0 - tłumienie znaków (1 = znaki w inverse niewidoczne)
bit 1 - odwracanie znaków (0 = inverse nie działa)
bit 2 - odbicie znaków (1 = lustrzane odbicie znaków w pionie)
bity 3-7 - niewykorzystane

CKEY
    0 - klawisz START nie był naciśnięty
    0 - klawisz START był naciśnięty przy włączaniu zasilania

CONSOL
bit 0 - klawisz START (0 = wciśnięty)
bit 1 - klawisz SELECT (0 = wciśnięty)
bit 2 - klawisz OPTION (0 = wciśnięty)

CRITIC
    0 - brak ograniczeń czasowych
    nie 0 - krytyczna czasowo operacja I/O

CRSINH
    0 - kursor widoczny
    nie 0 - kursor niewidoczny

DMACTL/DMACTLS
bity 0-1 - szerokość obrazu na ekranie
           00 = brak obrazu
           01 = obraz wąski (192 punkty)
           10 = obraz normalny (320 punktów)
           11 = obraz szeroki (394 punkty)
bit 2 - DMA dla pocisków (1 = włączony)
bit 3 - DMA dla graczy (1 = włączony)
bit 4 - rozdzielczość P/MG (1 = jednowierszowa)
bit 5 - DMA dla programu ANTIC-a (1 = włączony)
bity 6-7 - niewykorzystane

GINTLK
    0 - brak cartridge'a w gnieździe
    1 - cartridge zainstalowany

GTIACTL/GTICTLS
bity 0-3 - priorytet graczy i pocisków
bit 4 - łączenie pocisków w 5 gracza (1 = włączona)
bit 5 - gracze wielokolorowi (1 = włączona)
bity 6-7 - dodatkowe tryby graficzne GTIA:
           00 - GRAPHICS 8
           01 - GRAPHICS 9
           10 - GRAPHICS 10
           11 - GRAPHICS 11

HLPFLG
    $11 - wciśnięty klawisz HELP
    $51 - wciśnięte klawisze HELP i SHIFT
    $91 - wciśnięte klawisze HELP i CONTROL
    $D1 - wciśnięte klawisze HELP, SHIFT i CONTROL

IRQEN/IRQENS
zezwolenia przerwań IRQ - 0 = zabronione
bit 0 - przerwanie TIMERa 1
bit 1 - przerwanie TIMERa 2
bit 2 - przerwanie TIMERa 4
bit 3 - przerwanie końca transmisji
bit 4 - przerwanie zapisu przez złącze szeregowe
bit 5 - przerwanie odczytu przez złącze szeregowe
bit 6 - przerwanie klawiatury
bit 7 - przerwanie klawisza BREAK

IRQST/IRQSTAT
status przerwań IRQ - 0 = wystąpiło
bit 0 - przerwanie TIMERa 1
bit 1 - przerwanie TIMERa 2
bit 2 - przerwanie TIMERa 4
bit 3 - przerwanie końca transmisji
bit 4 - przerwanie zapisu przez złącze szeregowe
bit 5 - przerwanie odczytu przez złącze szeregowe
bit 6 - przerwanie klawiatury
bit 7 - przerwanie klawisza BREAK

NMIEN
zezwolenie przerwań NMI - 0 = zabronione
bity 0-5 - niewykorzystane
bit 6 - przerwanie synchronizacji (VBLKI)
bit 7 - przerwanie programu ANTIC-a (DLI)

NMIST
status przerwań NMI - 1 = wystąpiło
bity 0-4 - niewykorzystane
bit 5 - przerwanie klawisza RESET
bit 6 - przerwanie synchronizacji (VBLKI)
bit 7 - przerwanie programu ANTIC-a (DLI)

SHFLOK
    $00 - małe litery (naciśnięty CAPS)
    $40 - duże litery (stan normalny)
    $80 - znaki z CONTROL

SKCTL/SKCTLS
bit 0 - razem z bitem 1 resetuje POKEY
bit 1 - obsługa klawiatury
bit 2 - częstość przetwarzania A/C (0 = 20 ms, 1 = 128 µs)
bit 3 - przesyłanie dwutonowe (1 = włączone)
bity 4-6 - sterowanie szybkością transmisji
bit 7 - nadanie sygnału SPACE (1 = włączone)

SKSTAT
bit 0 - niewykorzystany (= 1)
bit 1 - przesyłanie danych (0 = trwa)
bit 2 - dowolny klawisz (0 = naciśnięty)
bit 3 - klawisz SHIFT (0 = naciśnięty)
bit 4 - kopia rejestru wejścia szeregowego
bit 5 - bufor klawiatury (0 = przepełniony)
bit 6 - bufor wejścia szeregowego (0 = przepełniony)
bit 7 - Framing Error (0 = wystąpił)

SSFLAG
    $00 - dane są wprowadzane na ekran
    $FF - zatrzymanie wyprowadzania danych

Dodatek D

Słownik terminów informatycznych

ANTIC

    AlphaNumeric Television Interface Controller - drugi, dodatkowy mikroprocesor, którego zasadniczym zadaniem jest tworzenie obrazu. Układ specjalnie zaprojektowany dla komputerów Atari.

ASCII

    American Standard Code of Information Intercharge - 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.

DCB

    Device Control Block - blok kontroli urządzeń, obszar pamięci RAM od $0300 do $030B wykorzystywany przez procedury SIO do operacji wejścia/wyjścia.

DL

    Display List - program ANTIC-a, program w kodzie maszynowym ANTIC-a wskazujący mu sposób generowania obrazu. Program ANTIC-a może wywoływać przerwania niemaskowalne zwane DLI (Display List Interrupt).

DMA

    Direct Memory Access - bezpośredni dostęp do pamięci, sposób dostępu do pamięci komputera z pominięciem pośrednictwa procesora. Oszczędza to czas pracy procesora i zwiększa szybkość pracy systemu. W Atari DMA jest wykorzystywany przez ANTIC (procesor obrazowy).

FP

    Floating Point - liczby, operacje i procedury na liczbach rzeczywistych czyli zmiennoprzecinkowych.

GTIA

    Graphics Television Interface Adaptor - specjalizowany układ scalony służący do tworzenia kolorów i obsługi grafiki graczy i pocisków (Player/Missile Graphics).

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 bardziej znaczące cyfry. MSB=INT(ADR/$0100). Przy adresowaniu wskazuje numer strony pamięci.

NMI

    Non Maskable Interrupt - przerwanie niemaskowalne czyli takie, które musi zostać wykonane przez procesor (nie może być zignorowane).

nowe urządzenie

    New Device - nazwa stosowana w systemie operacyjnym Atari dla określenia urządzeń zewnętrznym przyłączanych do szyny równoległej, które nie istniały jeszcze w czasie projektowania systemu.

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.

PIA

    Peripheral Interface Adaptor - standardowy układ I/O typu 6520. Jego zadaniem jest w Atari obsługa portów joysticków i zarządzanie pamięcią komputera.

POKEY

    Potentiometr & Keyboard - specjalizowany układ scalony, którego zadaniem jest obsługa klawiatury, potencjometrów oraz komunikacji komputera z urządzeniami zewnętrznymi poprzez złącze szeregowe.

port

    Rejestr służący do komunikacji komputera z urządzeniami peryferyjnymi, zwykle jest to rejestr specjalnego układu scalonego znajdujący się w przestrzeni adresowej procesora. Zwany jest także bramą.

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.

SIO

    Serial Input/Output - zespół procedur obsługujących komunikację z urządzeniami zewnętrznymi poprzez złącze szeregowe.

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.

VBLK

    Vertical Blank - synchronizacja pionowa, okres wygaszenia strumienia elektronów tworzących obraz i przesunięcia go z prawego, dolnego rogu ekranu do lewego, górnego. Podczas VBLK wywoływane jest przerwanie VBLKI (VBLK Interrupt).

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  44289  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, USA, 1985.
2. Eichler Lutz, Grohmann Bernd: Atari 600XL/800XL Intern, Data Becker, Dusseldorf, 1984.
3. Praca zbiorowa: De Re Atari. A guide to effective programing 400/800 Home Computers, USA, 1981.
4. Ruszczyc Jan: Asembler 6502, SOETO, Warszawa, 1987.
5. Zientara Wojciech: PEEK-POKE 2 (opracowanie), B.U.K. "GLAD", Warszawa, 1987.
6. Zientara Wojciech: Mapa pamięci Atari XL/XE. Procedury wejścia/wyjścia, SOETO, Warszawa, 1988.
7. Zientara Wojciech: Mapa pamięci Atari XL/XE. Dyskowe systemy operacyjne, SOETO, Warszawa, 1988.
8. Zientara Wojciech: Mapa pamięci Atari XL/XE. Procedury interpretera Basica, SOETO, Warszawa, 1988.
Zientara Wojciech: Mapa pamięci Atari XL/XE. Podstawowe procedury systemu operacyjnego, SOETO, Warszawa, 1988.