Cartridge (mapa pamięci)
From Atariki
Spis treści | 
Pamięć kartridża
Przestrzeń adresową cartridge'a dzielimy na dwie części:
- Cartridge A: $A000-$BFFF. W komputerach 800 jest to kartridż lewy, a w 400 oraz XL i XE - jedyny.
 - Cartridge B: $8000-$9FFF. W komputerach 800 jest to kartridż prawy.
 
W 400/800 Atari OS obsługuje oba kartridże (mimo że 400 ma tylko jedno gniazdo), natomiast w XL/XE XL OS obsługuje tylko kartridż A.
Nagłówek
Nagłówek cartridge znajdujący się w ostatnich sześciu bajtach obu obszarów ma następującą postać:
| Adresy | Etykieta | Funkcja | 
|---|---|---|
| Cartridge B (tylko 400/800) | ||
| $9FFA-$9FFB | CARTRUN (B) | 
 Adres uruchomienia kartridża B. W przeciwieństwie do inicjowania, które jest obligatoryjne, uruchomienie kartridża jest opcjonalne. Żeby nastąpiło, muszą zostać spełnione następujące warunki: 
 Gdy te warunki są spełnione, system wykonuje skok JMP pod adres wskazany przez CARTRUN (B). Jeśli oba kartridże (A i B) spełniają warunki uruchomienia przez CARTRUN, uruchamiany jest kartridż A.  | 
| $9FFC | CARTINS (B) | Znacznik obecności kartridża (0 = włożony). Ponieważ wartość $00 może mieć również komórka pamięci RAM, zwykle sprawdzane są dodatkowe warunki (patrz niżej). Dla zwykłego kartridża sprawdzany, gdy pomiar rozmiaru RAM-u podstawowego wykaże mniej niż 144 stron pamięci (36 KB).  | 
| $9FFD | CARTOPT (B) | 
 Znaczniki: 
 W obecności obu kartridży odczyt z dyskietki jest dozwolony, gdy zezwala nań co najmniej jeden kartridż.  | 
| $9FFE-$9FFF | CARTINI (B) | 
 Adres inicjowania kartridża B. Inicjowanie zwykłego kartridża jest wykonywane po zainicjowaniu całego systemu operacyjnego i po włączeniu przerwań, ale przed zainicjowaniem kartridża A. Do inicjowania muszą zostać spełnione następujące warunki: 
 Gdy te warunki są spełnione, system ustawia komórkę pamięci TSTDAT ($07) na 1 (lub na $00, gdy nie są), a potem wykonuje skok JSR pod adres wskazany przez CARTINI (B).  | 
| Cartridge A | ||
| $BFFA-$BFFB | CARTRUN / CARTCS | Adres uruchomienia kartridża A. W przeciwieństwie do inicjowania, które jest obligatoryjne, uruchomienie kartridża jest opcjonalne. Żeby nastąpiło, muszą zostać spełnione następujące warunki: 
 Gdy te warunki są spełnione, system wykonuje skok JMP pod adres wskazany przez CARTRUN. Uruchomienie następuje po odczycie wstępnym z (kolejno) magnetofonu, dyskietki, nowego urządzenia, oraz po wyzerowaniu znacznika zimnego startu COLDST ($0244). Na 400/800, jeśli oba kartridże (A i B) spełniają warunki uruchomienia przez CARTRUN, uruchamiany jest kartridż A.  | 
| $BFFC | CARTINS / CART | Znacznik obecności kartridża (0 = włożony). Ponieważ wartość $00 może mieć również komórka pamięci RAM, zwykle sprawdzane są dodatkowe warunki (patrz niżej). Dla zwykłego kartridża sprawdzany, gdy pomiar rozmiaru RAM-u podstawowego wykaże mniej niż 176 stron pamięci (44 KB).  | 
| $BFFD | CARTOPT / CARTFG | Znaczniki: 
 Na 400/800 w obecności obu kartridży odczyt z dyskietki jest dozwolony, gdy zezwala nań co najmniej jeden z nich.  | 
| $BFFE-$BFFF | CARTINI / CARTAD | Adres inicjowania kartridża A. Inicjowanie zwykłego kartridża jest wykonywane po zainicjowaniu całego systemu operacyjnego (na XL/XE: łącznie z nowymi urządzeniami), po włączeniu przerwań, oraz: 
 ale przed otwarciem edytora ekranowego. Do inicjowania muszą zostać spełnione następujące warunki: 
 Gdy te warunki są spełnione, system ustawia komórkę pamięci TRAMSZ ($06) na 1 (lub na $00, gdy nie są), a potem wykonuje skok JSR pod adres wskazany przez CARTINI. CARTINI jest też wektorem używanym przy uruchamianiu kartridża diagnostycznego. Warunki do uruchomienia w XL/XE: 
 W 400/800: 
 Gdy te warunki są spełnione, kartridż jest uruchamiany skokiem JMP pod adres wskazany przez CARTINI. Uruchomienie następuje przed zainicjowaniem systemu operacyjnego, na samym początku procedury RESET.  | 
Przykład nagłówka
Wewnętrzny Atari BASIC w XL/XE to kartridż A. Ma on następujący nagłówek:
| Etykieta | Wartość | Objaśnienie | 
|---|---|---|
| CARTRUN | $A000 | Adres uruchomienia.  | 
| CARTINS | $00 | Kartridż obecny.  | 
| CARTOPT | $05 | %00000101 - boot dyskietki dozwolony, uruchom przez CARTRUN.  | 
| CARTINI | $BFF0 | Adres inicjowania (wskazuje rozkaz RTS).  | 
Bibliografia
- W. Zientara, "Podstawowe procedury systemu operacyjnego"
 
