Atarimax MaxFlash
From Atariki
Wersja z dnia 21:53, 2 lut 2021 Jhusak (Dyskusja | wkład) (opis) ← Previous diff |
Aktualna wersja Jhusak (Dyskusja | wkład) |
||
Linia 3: | Linia 3: | ||
Pod tą nazwą określane są 2 kartridże: MaxFlash1Mb (128 kilobajtów) i MaxFlash8Mb (1 megabajt). Oznaczenie może być mylące. | Pod tą nazwą określane są 2 kartridże: MaxFlash1Mb (128 kilobajtów) i MaxFlash8Mb (1 megabajt). Oznaczenie może być mylące. | ||
- | Kartridże te używają z reguły pamięci flash 29f010 (8 sektorów po 16kB) i 29f040 (8 sektorów po 64kB). Włożenie innego rodzaju pamięci nie niesie zagrożenia, lecz tracimy (możemy stracić) kompatybilność - flashery (programy zapisujące dane na kartridż) nie będą takiego kartridża rozpoznawać. | + | Kartridże lokują się pod adresem $A000-$BFFF, zajmując 8kB pamięci. Można je wyłączyć, traktując je jako pamięć masową. |
- | Bankowanie tych dwóch rodzajów kartridży ma różną logikę i nie są w 100% kompatybilne; jednak pisząc 2 rozkazy: STA $d510,STA $d580 można wyłączyć oba niezależnie, który jest użyty. Włączanie banków 0-15 odbywa się w ten sam sposób w obu kartridżach. | + | Kartridże te wewnętrznie używają z reguły pamięci flash 29f010 (8 sektorów po 16kB) i 29f040 (8 sektorów po 64kB, dwie sztuki). Włożenie innego rodzaju pamięci nie niesie zagrożenia, lecz tracimy (możemy stracić) kompatybilność - flashery (programy zapisujące dane na kartridż) mogą takiego kartridża rozpoznawać (flasher AtariMax nie rozpoznaje). |
- | Bankowanie kartridża 128kB - wpis pod adres $d500-$d50f wybiera bank (boot bank to bank 0), wpis pod $d510 (i tylko tu) wyłącza kartridż (i umożliwia dostęp do pamięci pod kartridżem z zakresu $A000-$BFFF, czy to ram, czy też interpreter Atari Basic). Zapis pod pozostałe adresy na stronie 0xD5 nie daje żadnego skutku. | + | Bankowanie kartridża 128kB - wpis pod adres $d500-$d50f wybiera bank (boot bank to bank 0), wpis pod $d510-$d5ff wyłącza kartridż (i umożliwia dostęp do pamięci pod kartridżem z zakresu $A000-$BFFF, czy to ram, czy też interpreter Atari Basic). |
- | Ciekawostką jest, że we flashu 29f010 w kartridżu banki 8KB są ułożone w odwrotnej kolejności, czyli fizycznie bank nr 0 jest w pamięci flash pod adresem 0x1e000, a bank nr 15 jest pod adresem 0x00000. | + | Ciekawostką jest, że w wersji kartridża 128 kB we flashu 29f010 banki 8KB są ułożone w odwrotnej kolejności, czyli fizycznie bank nr 0 jest w pamięci flash pod adresem 0x1e000, a bank nr 15 jest pod adresem 0x00000. |
- | Bankowanie kartridża 1MB: wpis pod adres $d500-$d57f wybiera bank (boot bank to bank 0, w starszych wersjach 0x7f), wpis pod $d580 (i tylko tu) wyłącza kartridż (i umożliwia dostęp do pamięci pod kartridżem z zakresu $A000-$BFFF, czy to ram, czy też interpreter Atari Basic). Zapis pod pozostałe adresy na stronie 0xD5 nie daje żadnego skutku. Banki umieszczone 2 pamięciach flash 29f040 są fizycznie adresowane po kolei, tzn bank nr 0 znajduje się pod adresem 0x000000 i każdy kolejny pod kolejnym adresem jako wielokrotność 0x2000. | + | Bankowanie kartridża 1MB: wpis pod adres $d500-$d57f wybiera bank (boot bank to bank 0, w starszych wersjach 0x7f), w nowszej wersji wpis pod $d580-$d5ff wyłącza kartridż (i umożliwia dostęp do pamięci pod kartridżem z zakresu $A000-$BFFF, czy to ram, czy też interpreter Atari Basic). Banki umieszczone 2 pamięciach flash 29f040 są fizycznie adresowane po kolei, tzn bank nr 0 znajduje się pod adresem 0x000000 i każdy kolejny pod kolejnym adresem jako wielokrotność $2000. |
- | Oba kartridże są emulowane przez wiele emulatorów, np. [[Atari800]] (tylko odczyt), czy [[Altirra]] (odczyt i zapis). | + | Takie różnice w numeracji banków powodują niekompatybilność wsadów. W ogólności przy programowaniu zewnętrznym niemożliwe jest, aby ten sam wsad 128kB działał w obu typach (jednak jest możliwe przy założeniu, że i-ty bank jest tożsamy z (15-i)-tym bankiem). Natomiast widoczność z poziomu Atari jest podobna i zarówno aplikacja programująca kartridż jak i procedury przełączania banków w kartridżu mogą być te same dla kartridży 128k i 1M. Ponadto używając aplikacji programującej na Atari można zaprogramować kartridż 1M(new) zawartością kartridża 128K bez żadnych poprawek, oraz 1M(old) po dodaniu odpowiedniego bootstrapu w ostatnim banku kartridża. |
+ | |||
+ | Oba kartridże są emulowane przez wiele emulatorów, np. [[Atari800]] (tylko odczyt), czy [[Altirra]] (odczyt i zapis), przy czym rozpowszechniła się błędna informacja o bankowaniu AtariMax 128k (że tylko zapis pod $d510 wyłącza kartridż a zapis pod pozostałe adresy strony $d5 nic nie robią - co nie jest prawdą) i ten kartridż może być źle emulowany. | ||
+ | |||
+ | *[https://www.atarimax.com/flashcart/forum/ Forum Atarimax z udostępnionymi obrazami kartridży gotowymi do wgrania z poziomu Atari] | ||
+ | [[Kategoria:Schematy_i_specyfikacje]] | ||
+ | [[Kategoria:Peryferia_8-bit]] | ||
+ | [[Kategoria:Niezbędnik_kodera]] | ||
+ | [[Kategoria:Atari_8-bit]] |
Aktualna wersja
Rodzina kartridży szerokiego zastosowania dla ośmiobitowych komputerów spod znaku Atari od firmy Atarimax.
Pod tą nazwą określane są 2 kartridże: MaxFlash1Mb (128 kilobajtów) i MaxFlash8Mb (1 megabajt). Oznaczenie może być mylące.
Kartridże lokują się pod adresem $A000-$BFFF, zajmując 8kB pamięci. Można je wyłączyć, traktując je jako pamięć masową.
Kartridże te wewnętrznie używają z reguły pamięci flash 29f010 (8 sektorów po 16kB) i 29f040 (8 sektorów po 64kB, dwie sztuki). Włożenie innego rodzaju pamięci nie niesie zagrożenia, lecz tracimy (możemy stracić) kompatybilność - flashery (programy zapisujące dane na kartridż) mogą takiego kartridża rozpoznawać (flasher AtariMax nie rozpoznaje).
Bankowanie kartridża 128kB - wpis pod adres $d500-$d50f wybiera bank (boot bank to bank 0), wpis pod $d510-$d5ff wyłącza kartridż (i umożliwia dostęp do pamięci pod kartridżem z zakresu $A000-$BFFF, czy to ram, czy też interpreter Atari Basic). Ciekawostką jest, że w wersji kartridża 128 kB we flashu 29f010 banki 8KB są ułożone w odwrotnej kolejności, czyli fizycznie bank nr 0 jest w pamięci flash pod adresem 0x1e000, a bank nr 15 jest pod adresem 0x00000.
Bankowanie kartridża 1MB: wpis pod adres $d500-$d57f wybiera bank (boot bank to bank 0, w starszych wersjach 0x7f), w nowszej wersji wpis pod $d580-$d5ff wyłącza kartridż (i umożliwia dostęp do pamięci pod kartridżem z zakresu $A000-$BFFF, czy to ram, czy też interpreter Atari Basic). Banki umieszczone 2 pamięciach flash 29f040 są fizycznie adresowane po kolei, tzn bank nr 0 znajduje się pod adresem 0x000000 i każdy kolejny pod kolejnym adresem jako wielokrotność $2000.
Takie różnice w numeracji banków powodują niekompatybilność wsadów. W ogólności przy programowaniu zewnętrznym niemożliwe jest, aby ten sam wsad 128kB działał w obu typach (jednak jest możliwe przy założeniu, że i-ty bank jest tożsamy z (15-i)-tym bankiem). Natomiast widoczność z poziomu Atari jest podobna i zarówno aplikacja programująca kartridż jak i procedury przełączania banków w kartridżu mogą być te same dla kartridży 128k i 1M. Ponadto używając aplikacji programującej na Atari można zaprogramować kartridż 1M(new) zawartością kartridża 128K bez żadnych poprawek, oraz 1M(old) po dodaniu odpowiedniego bootstrapu w ostatnim banku kartridża.
Oba kartridże są emulowane przez wiele emulatorów, np. Atari800 (tylko odczyt), czy Altirra (odczyt i zapis), przy czym rozpowszechniła się błędna informacja o bankowaniu AtariMax 128k (że tylko zapis pod $d510 wyłącza kartridż a zapis pod pozostałe adresy strony $d5 nic nie robią - co nie jest prawdą) i ten kartridż może być źle emulowany.