Retro tools

JUSTOWANIE PAMIĘCI ATARI

Nieprzekraczalne granice i dyrektywy wyrównywania (.align) w MADS
Tabela Wyrównywania Rejestrów i Struktury Pamięci
Kliknij wiersz, aby zobaczyć i skopiować adresy
Rejestr Adres Justowanie Dyrektywa MADS Uwagi / Opis działania
CHBASE $D409
1 KB Tryby 0-3
.align $400 Standardowe zestawy znaków (128 znaków po 8 bajtów). Wymagany adres początkowy na granicy 1024 bajtów.
CHBASE $D409
512 B Tryby 4-5
.align $200 Zestawy znaków w trybach wielokolorowych (4 bajty na znak, 128 znaków = 512B).
PMBASE $D407
2 KB Single Line
.align $800 Rozdzielczość 1-line (Single Line). Cały obszar Player/Missile zajmuje dokładnie 2048 bajtów.
PMBASE $D407
1 KB Double Line
.align $400 Rozdzielczość 2-line (Double Line). Cały obszar Player/Missile zajmuje dokładnie 1024 bajty.
DLISTL/H $D402/3
1 KB
.align $400 Program Display List nie może "przeciąć" granicy 1 KB. Licznik instrukcji ANTICa zawija się na granicy 1024 bajtów!
Screen (DLIST) DLIST
4 KB
.align $1000 Pamięć obrazu bez stosowania instrukcji LMS (Load Memory Scan) nie może przeciąć granicy 4 KB (4096 bajtów).
Tablice Indeks
256 B Strona
.align $100 Optymalizacja prędkości w 6502: wyrównanie tablicy do początku strony zapobiega dodatkowemu cyklowi zegara na Page Crossing przy adresowaniu LDA table,X.
Zasada działania w MADS: Dyrektywa .align $HEX w MAD Assemblerze wstawia puste bajty tak, aby kolejny etykietowany bajt pamięci znajdował się na adresie będącym wielokrotnością podanej wartości.
Adresy 64 KB ($0000–$FFFF) dla: CHBASE (1 KB)
Standard Kolizja ($100–$1FF / $D000–$D7FF / $FFF0–$FFFF) 64 adresów
Mapa Offsetów Pamięci PMG
Etykieta PMGPLAYER: Sygnatura PMGPLAYER jest etykietą adresu pamięci początku obszaru PMG wybraną dowolnie przez programistę w kodzie źródłowym.
Single Line Resolution (1-line) .align $800 (2 KB)
  • Missile PMGPLAYER+$300 256 B
  • Player 0 PMGPLAYER+$400 256 B
  • Player 1 PMGPLAYER+$500 256 B
  • Player 2 PMGPLAYER+$600 256 B
  • Player 3 PMGPLAYER+$700 256 B
Double Line Resolution (2-line) .align $400 (1 KB)
  • Missile PMGPLAYER+$180 128 B
  • Player 0 PMGPLAYER+$200 128 B
  • Player 1 PMGPLAYER+$280 128 B
  • Player 2 PMGPLAYER+$300 128 B
  • Player 3 PMGPLAYER+$380 128 B
Wskazówka PMBASE: Dla PMBASE wskaźnik rejestru $D407 przyjmuje najstarszy bajt adresu PMGPLAYER. W przypadku 1-line rozdzielczości odrzucane są dolne 3 bity adresu, dla 2-line dolne 2 bity.
Skopiowano do schowka: .align $400