Přeskočit na obsah
ATARI8.CZ RSS

Mapa paměti Atari 8-bit

Adresní prostor $0000–$FFFF rozdělený do oblastí, s pojmenovanými adresami — stínové i hardwarové registry (GTIA, POKEY, PIA, ANTIC), OS vektory, rozpisy bitů a příklady POKE. Hledej podle názvu (COLOR2, NMIEN) nebo podle adresy (710, $D40E). Klikni na adresu pro detail.

149 / 417 adres
$0012–$0014 18–20
RTCLOK RAM

Hodiny reálného času (jiffy clock), 3 bajty. Tikají 50× (PAL) / 60× (NTSC) za s; nejnižší řád je $14 (20).

$004D 77
ATRACT RAM POKE

Příznak attract režimu — po ~9 min nečinnosti přebíhají barvy (ochrana obrazovky). Vynuluj zápisem 0.

$0052 82
LMARGN RAM

Levý okraj textového okna (0–39), výchozí 2.

$0053 83
RMARGN RAM

Pravý okraj textového okna, výchozí 39.

$0054 84
ROWCRS RAM

Řádek textového kurzoru.

$0055–$0056 85–86
COLCRS RAM

Sloupec textového kurzoru (2 bajty).

$0057 87
DINDEX RAM

Číslo aktuálního grafického režimu (GR.0–GR.11).

$0058–$0059 88–89
SAVMSC RAM

Adresa začátku obrazové paměti (2 bajty) — odkud se kreslí obrazovka.

$006A 106
RAMTOP RAM POKE

Vrchol RAM ve stránkách (×256). Snížením rezervuješ paměť (např. pro vlastní znakovou sadu).

$0080–$0081 128–129
LOMEM RAM

Spodní mez paměti BASICu (2 bajty).

$00CB–$00D1 203–209
volná ZP RAM

Volné bajty nulté stránky pod BASICem (203–209) — k dispozici uživateli.

$00D4–$00D9 212–217
FR0 RAM

Registr 0 plovoucí čárky (6 bajtů) — sem BASIC/FP ukládá výsledky; používá se i pro USR.

$0200–$0201 512–513
VDSLST OS

Vektor přerušení display listu (DLI) — adresa rutiny spuštěné na vybraném řádku obrazu.

$0202–$0203 514–515
VPRCED OS

Vektor sériového přerušení „proceed".

$0204–$0205 516–517
VINTER OS

Vektor sériového přerušení „interrupt".

$0206–$0207 518–519
VBREAK OS

Vektor instrukce BRK.

$0208–$0209 520–521
VKEYBD OS

Vektor přerušení klávesnice (stisk klávesy).

$020A–$020B 522–523
VSERIN OS

Vektor „sériový vstup připraven".

$020C–$020D 524–525
VSEROR OS

Vektor „sériový výstup připraven".

$020E–$020F 526–527
VSEROC OS

Vektor „sériový výstup dokončen".

$0210–$0211 528–529
VTIMR1 OS

Vektor časovače POKEY 1.

$0212–$0213 530–531
VTIMR2 OS

Vektor časovače POKEY 2.

$0214–$0215 532–533
VTIMR4 OS

Vektor časovače POKEY 4.

$0216–$0217 534–535
VIMIRQ OS

Vektor okamžitého maskovatelného přerušení (IRQ).

$0222–$0223 546–547
VVBLKI OS

Vektor okamžitého VBLANK přerušení — spouští se každý snímek (50/60 Hz).

$0224–$0225 548–549
VVBLKD OS

Vektor odloženého (deferred) VBLANK — vlastní rutiny se vkládají sem přes SETVBV.

$022F 559
SDMCTL OS POKE

Stínový registr DMACTL (řízení DMA ANTICu). 34 je výchozí, 0 vypne obrazovku a zrychlí výpočty.

$0230–$0231 560–561
SDLSTL OS

Stínový ukazatel na display list (2 bajty, 560/561). OS jej každý snímek kopíruje do DLISTL/DLISTH.

$026F 623
GPRIOR OS

Stínový registr PRIOR — priorita hráčů vs. hřiště a volba GTIA režimů (623).

$0278 632
STICK0 OS

Joystick 0 — směr páčky (632). Hodnoty 5–15 kódují 8 směrů + klid.

$0279 633
STICK1 OS

Joystick 1 (633).

$027A 634
STICK2 OS

Joystick 2 (634).

$027B 635
STICK3 OS

Joystick 3 (635).

$0284 644
STRIG0 OS

Spoušť (tlačítko) joysticku 0 (644), 0 = stisknuto.

$0285–$0287 645–647
STRIG1 OS

Spouště joysticků 1–3 (645–647).

$02B6 694
INVFLG OS

Příznak inverzního videa (ATASCII) — klávesa Atari (logo).

$02BE 702
SHFLOK OS

Stav zámku Shift/Control.

$02C0 704
PCOLR0 OS

Stínová barva hráče/střely 0 (704, COLPM0).

$02C1 705
PCOLR1 OS

Stínová barva hráče/střely 1 (705).

$02C2 706
PCOLR2 OS

Stínová barva hráče/střely 2 (706).

$02C3 707
PCOLR3 OS

Stínová barva hráče/střely 3 (707).

$02C4 708
COLOR0 OS POKE

Stínová barva hřiště 0 (708, COLPF0).

$02C5 709
COLOR1 OS POKE

Barva 1 (709, COLPF1) — v GR.0 jas znaků.

$02C6 710
COLOR2 OS POKE

Barva 2 (710, COLPF2) — v GR.0 barva pozadí textu. Slavné POKE 710.

$02C7 711
COLOR3 OS

Barva 3 (711, COLPF3).

$02C8 712
COLOR4 OS POKE

Barva 4 (712, COLBK) — barva okraje/pozadí.

$02F0 752
CRSINH OS POKE

Zákaz kurzoru. POKE 752,1 skryje kurzor (projeví se po dalším řádku).

$02F3 755
CHACT OS

Stínový CHACTL — inverze a svislé zrcadlení znaků.

$02F4 756
CHBAS OS POKE

Stínová báze znakové sady (756). Výchozí 224 ($E000); 226 přepne na malá písmena/grafiku.

$02FC 764
CH OS

Interní kód poslední stisknuté klávesy (255 = žádná). Zápisem 255 vyčistíš.

$031A–$033F 794–831
HATABS OS

Tabulka handlerů zařízení (E:, S:, K:, P:, C:, D: …). Sem se registrují vlastní ovladače.

$0340–$034F 832–847
IOCB0 OS

První z 8 I/O kontrolních bloků (16 bajtů). Přes IOCB jde veškeré I/O přes CIO.

$0342 834
ICCOM OS

Příkazový bajt IOCB0 (OPEN/GET/PUT/CLOSE/STATUS/SPECIAL).

$0344–$0345 836–837
ICBAL OS

Adresa datového bufferu IOCB0 (2 bajty).

$0348–$0349 840–841
ICBLL OS

Délka bufferu IOCB0 (2 bajty).

$0600–$06FF 1536–1791
PAGE6 RAM

256 bajtů volné RAM (1536–1791) — bezpečné místo pro strojový kód volaný z BASICu (USR).

$A000–$BFFF 40960–49151
BASIC ROM

Atari BASIC ROM (8 KB) — interpret jazyka BASIC. U XL/XE vypínatelný přes PORTB.

$C000–$CFFF 49152–53247
OSROM_LO ROM

Dolní část OS ROM (XL/XE).

$D000 53248
HPOSP0 čte: M0PF GTIA POKE

Vodorovná pozice hráče 0 (zápis).

$D001 53249
HPOSP1 čte: M1PF GTIA

Vodorovná pozice hráče 1 (zápis).

$D002 53250
HPOSP2 čte: M2PF GTIA

Vodorovná pozice hráče 2 (zápis).

$D003 53251
HPOSP3 čte: M3PF GTIA

Vodorovná pozice hráče 3 (zápis).

$D004–$D007 53252–53255
HPOSM0 čte: P0PF–P3PF GTIA

Vodorovné pozice střel 0–3 (zápis). Čtení = P0PF–P3PF (kolize hráč–hřiště).

$D008–$D00B 53256–53259
SIZEP0 čte: M0PL–M3PL GTIA

Šířka hráčů 0–3 (0/1/3 = normální/dvojnásobná/čtyřnásobná). Čtení = M0PL–M3PL.

$D00C 53260
SIZEM čte: P0PL GTIA

Šířky všech čtyř střel (po 2 bitech). Čtení = P0PL.

$D00D–$D010 53261–53264
GRAFP0 čte: P1PL– GTIA

Bitový vzor hráčů 0–3 (přímý zápis grafiky bez DMA). Čtení = P1PL–TRIG0.

$D011 53265
GRAFM čte: TRIG1 GTIA

Bitový vzor střel. Čtení = TRIG1.

$D012 53266
COLPM0 čte: TRIG2 GTIA

Barva a jas hráče a střely 0 (stín = 704, PCOLR0). Čtení = TRIG2.

$D013 53267
COLPM1 čte: TRIG3 GTIA

Barva a jas hráče a střely 1 (705). Čtení = TRIG3 (u XL/XE indikace zásuvného modulu, linka RD5).

$D014 53268
COLPM2 čte: PAL GTIA

Barva a jas hráče a střely 2 (706). Čtení = PAL (rozpoznání TV normy: bity 1–3 = 0 → PAL, = 1 → NTSC).

$D015 53269
COLPM3 GTIA

Barva a jas hráče a střely 3 (707).

$D016 53270
COLPF0 GTIA

Barva a jas obrazového objektu 0 — hřiště (stín = 708).

$D017 53271
COLPF1 GTIA

Barva a jas obrazového objektu 1 (709).

$D018 53272
COLPF2 GTIA

Barva a jas obrazového objektu 2 (710).

$D019 53273
COLPF3 GTIA

Barva a jas obrazového objektu 3 (711).

$D01A 53274
COLBK GTIA

Barva a jas pozadí (přímý registr; stín = 712).

$D01B 53275
PRIOR GTIA bity

Prioritní volba — které grafické prvky (hráč, střela, obrazový objekt) jsou při překrytí v popředí; navíc volba GTIA režimů (stín = 623).

$D01C 53276
VDELAY GTIA bity

Při dvouřádkovém rozlišení PMG posune vybraný objekt o jeden obrazový řádek dolů (jemný svislý pohyb hráčů/střel).

$D01D 53277
GRACTL GTIA bity

Aktivace DMA hráčů a střel (PMG) a zádrž (latch) spouští na pákách/kniplech.

$D01E 53278
HITCLR GTIA

Vynulování všech kolizních registrů (stačí libovolný zápis).

$D01F 53279
CONSOL GTIA bity

Konzolové klávesy START/SELECT/OPTION (čtení) a vnitřní reproduktor (zápis).

$D200 53760
AUDF1 čte: POT0 POKEY

Frekvence zvukového kanálu 1 (dělicí poměr — čím vyšší hodnota, tím nižší tón). Čtení = POT0 (pádlo 0).

$D201 53761
AUDC1 čte: POT1 POKEY bity

Řízení kanálu 1 — hlasitost a zkreslení. Čtení = POT1.

$D202 53762
AUDF2 čte: POT2 POKEY

Frekvence kanálu 2. Spolu s AUDF1 ho SIO využívá při přenosu 19200 baudů. Čtení = POT2.

$D203 53763
AUDC2 čte: POT3 POKEY

Řízení kanálu 2 (hlasitost a zkreslení). Čtení = POT3.

$D204 53764
AUDF3 čte: POT4 POKEY

Frekvence kanálu 3. Spolu s AUDF4 použit pro kazetu (600 baudů). Čtení = POT4.

$D205 53765
AUDC3 čte: POT5 POKEY

Řízení kanálu 3 (hlasitost a zkreslení). Čtení = POT5.

$D206 53766
AUDF4 čte: POT6 POKEY

Frekvence kanálu 4. Čtení = POT6.

$D207 53767
AUDC4 čte: POT7 POKEY

Řízení kanálu 4 (hlasitost a zkreslení). Čtení = POT7.

$D208 53768
AUDCTL čte: ALLPOT POKEY bity

Globální řízení zvuku — spřažení kanálů, volba hodin, horní propusti. Před zápisem zvuku zapiš 0 do AUDCTL a 3 do SKCTL. Čtení = ALLPOT (platnost hodnot POT).

$D209 53769
STIMER čte: KBCODE POKEY

Start hardwarových časovačů POKEY (zápis nenulové hodnoty). Čtení = KBCODE (hardwarový kód stisknuté klávesy).

$D20A 53770
SKRES čte: RANDOM POKEY

Zápis = SKRES (nastaví bity 5–7 SKSTAT). Čtení = RANDOM — generátor náhody 0–255 (8 horních bitů 17bitového polynomiálního čítače).

$D20B 53771
POTGO POKEY

Spustí převod poloh pádel (POT0–7); platné hodnoty jsou k dispozici po jednom snímku (rychleji při SKCTL bit 2).

$D20D 53773
SEROUT čte: SERIN POKEY

Sériová data: zápis = vysílaný bajt po bitech (SEROUT), čtení = přijatý bajt (SERIN).

$D20E 53774
IRQEN čte: IRQST POKEY

Povolení/maskování zdrojů IRQ od POKEY (zápis). Čtení = IRQST (stav). Stínová maska = POKMSK (16).

$D20F 53775
SKCTL čte: SKSTAT POKEY

Řízení sériového portu a klávesnice (zápis; 3/$03 zapíná snímání klávesnice). Čtení = SKSTAT (stav portu/klávesnice).

$D300 54016
PORTA PIA

Port A (obvykle vstupní) — čtení směrů joysticků 0 a 1 (po 4 bitech), případně pádla.

$D301 54017
PORTB PIA bity

Port B — u 400/800 joysticky 2/3; u XL/XE řízení mapování paměti.

$D302 54018
PACTL PIA

Řídicí registr portu A — motor magnetofonu (bit 3), přerušení od linky PROCEED a přepnutí na směrový registr (bit 2).

$D303 54019
PBCTL PIA

Řídicí registr portu B — command linka sériové sběrnice (bit 3), přerušení od linky INTERRUPT a přepnutí na směrový registr (bit 2).

$D400 54272
DMACTL ANTIC bity

Řízení DMA — šířka hřiště, DMA display listu, znaků a hráčů/střel. Stín = 559.

$D401 54273
CHACTL ANTIC

Řízení znaků — inverze a zrcadlení. Stín = 755.

$D402–$D403 54274–54275
DLISTL ANTIC

Ukazatel na display list (2 bajty). Stín = 560/561.

$D404 54276
HSCROL ANTIC

Jemné vodorovné rolování (0–15 barevných hodin); aktivní jen je-li v instrukci obrazového programu (display listu) nastaven bit 4.

$D405 54277
VSCROL ANTIC

Jemné svislé rolování (0–15 řádků); aktivní jen je-li v instrukci obrazového programu (display listu) nastaven bit 5.

$D407 54279
PMBASE ANTIC

Vyšší bajt počátku plochy PM grafiky (skutečná adresa = PMBASE × 256). Zarovnání na 2 KB (jednořádkové rozlišení) nebo 1 KB (dvouřádkové).

$D409 54281
CHBASE ANTIC

Vyšší bajt báze znakové sady. GR.0 = 224 ($E000, 128 znaků), GR.1/GR.2 = 226 (64 znaků). Stín = 756.

$D40A 54282
WSYNC ANTIC

Čekání na horizontální synchronizaci — po zápisu se procesor zastaví a rozběhne se 7 strojových cyklů před začátkem dalšího řádku (stabilní DLI).

$D40B 54283
VCOUNT ANTIC

Čítač svislé pozice paprsku (čtení) — číslo řádku děleno dvěma (0–155 pro PAL, max. 312 řádků).

$D40E 54286
NMIEN ANTIC bity POKE

Povolení NMI přerušení.

$D40F 54287
NMIST čte: NMIST ANTIC

Stav NMI (čtení) / NMIRES reset příznaků (zápis).

$D800 55296
AFP ROM

Převod ASCII → FP (text na číslo s plovoucí čárkou).

$D8E6 55526
FASC ROM

Převod FP → ASCII (číslo na text).

$D9AA 55722
IFP ROM

Převod celé číslo (integer) → FP.

$D9D2 55762
FPI ROM

Převod FP → celé číslo (integer).

$DA44 55876
ZFR0 ROM

Vynulování registru FR0.

$DA46 55878
ZF1 ROM

Vynulování registru FR1.

$DA60 55904
FSUB ROM

Odčítání: FR0 − FR1 → FR0.

$DA66 55910
FADD ROM

Sčítání: FR0 + FR1 → FR0.

$DADB 56027
FMUL ROM

Násobení: FR0 × FR1 → FR0.

$DB28 56104
FDIV ROM

Dělení: FR0 / FR1 → FR0.

$DD40 56640
PLYEVL ROM

Vyhodnocení polynomu (Hornerovo schéma).

$DD89 56713
FLD0R ROM

Načtení FP čísla z registrů X/Y do FR0.

$DD8D 56717
FLD0P ROM

Načtení FP čísla do FR0 přes ukazatel FLPTR.

$DD98 56728
FLD1R ROM

Načtení FP čísla z registrů X/Y do FR1.

$DD9C 56732
FLD1P ROM

Načtení FP čísla do FR1 přes ukazatel FLPTR.

$DDA7 56743
FST0R ROM

Uložení FR0 do registrů X/Y.

$DDAB 56747
FST0P ROM

Uložení FR0 přes ukazatel FLPTR.

$DDB6 56758
FMOVE ROM

Přesun čísla FR0 → FR1.

$DDC0 56768
EXP ROM

Mocnina e^x (přirozený základ).

$DDCC 56780
EXP10 ROM

Mocnina 10^x.

$DECD 57037
LOG ROM

Přirozený logaritmus (ln).

$DED1 57041
LOG10 ROM

Dekadický logaritmus (log).

$E000–$E3FF 57344–58367
CHARSET1 ROM

Standardní znaková sada (1 KB): grafické/interpunkční znaky, velká písmena, grafika, malá písmena. Báze 224.

$E400–$E40F 58368–58383
EDITRV ROM

Vektorová tabulka handleru editoru (E:).

$E410–$E41F 58384–58399
SCRENV ROM

Vektorová tabulka handleru obrazovky (S:).

$E420–$E42F 58400–58415
KEYBDV ROM

Vektorová tabulka handleru klávesnice (K:).

$E430–$E43F 58416–58431
PRINTV ROM

Vektorová tabulka handleru tiskárny (P:).

$E440–$E44F 58432–58447
CASETV ROM

Vektorová tabulka handleru kazety (C:).

$E450–$E452 58448–58450
DISKINV ROM

Vstup do diskového I/O (DIO).

$E453–$E455 58451–58453
CIOINV ROM

Inicializace centrálního I/O (CIO).

$E456–$E458 58454–58456
CIOV ROM

Centrální I/O (CIO) — hlavní vstup pro práci se soubory a zařízeními. Volá se přes IOCB. (58454)

$E459–$E45B 58457–58459
SIOV ROM

Sériové I/O (SIO) — komunikace s periferiemi po sériové sběrnici.

$E45C–$E45E 58460–58462
SETVBV ROM

Bezpečné nastavení VBLANK vektoru (VVBLKI/VVBLKD).

$E45F–$E461 58463–58465
SYSVBV ROM

Vstup systémové VBLANK rutiny.

$E462–$E464 58466–58468
XITVBV ROM

Výstup z VBLANK rutiny (správný návrat z přerušení).

$FFFA–$FFFB 65530–65531
NMIVEC ROM

Hardwarový vektor NMI procesoru 6502 (2 bajty).

$FFFC–$FFFD 65532–65533
RESET ROM

Hardwarový vektor RESET procesoru 6502 (2 bajty).

$FFFE–$FFFF 65534–65535
IRQVEC ROM

Hardwarový vektor IRQ/BRK procesoru 6502 (2 bajty).

Zdroje: Mapping the Atari · AtariWiki Memory Map · Pavel Dočekal: Adresy paměti počítačů Atari (2. díl, Ostrava 1987). V přehledu jsou vybrané adresy; vyhledávání pokrývá všechny v databázi.