Nie potrafię znaleźć w 100% pewnych odpowiedzi jeszcze na kilka zagadnien. Sprawdzalem "Podstawowe procedury systemu operacyjnego" Zientary, ale juz np. schemat blokowy procedury RESET mnie rozwalił. No jak mozna napisac w algorytmie: "cartridge wyjęty lub włożony?" TAK/NIE :)
(EDITED: wczytałem się w asm i już rozumiem to sprawdzenie, które wydało mi się śmieszne. Nalezy to chyba czytać jako sprawdzenie "czy cartridge ZOSTAŁ wyjęty lub włożony?")
Więc po kolei:
1. (EDITED: pierwsze pytanie juz nieaktualne - źle zrozumialem tekst Zientary)
2. Czy włożenie lub wyjęcie carta ze slotu w czasie pracy Atari (poza ryzykiem czysto elektrycznym) nie spowoduje żadnych "efektow ubocznych" w pracy Atari jesli w obszarze pamieci mapowanym na carta nie ma kodu programu/DL/pamieci ekranu itp itd.?
EDITED: Na to tez znalazlem juz odpowiedz: w tekscie Zenona http://www.atarionline.pl/v01/index.php … =wynalazki
Nie mozna ot tak sobie wyjac carta z gniazda.
3. Sygnaly R4 i R5 wymuszają przełączenie odpowiednich 8kB obszarow adresowych z wewnętrznego RAM na szyne carta. Ale robią to czysto "elektrycznie" czyli układami cyfrowymi. Z opisu rejestru TRIG3 (http://atariki.krap.pl/index.php/Rejestry_GTIA) wyczytalem ze stan R5 "odkłada się" w tym rejestrze. Ten rejestr jest wykorzystywany w procedurze bootowania jako wskaźnik czy jest wlozony cart (u Zientary rozdział 2.3.1. Procedury rozpoznania cartridge'a i RAM").
Ale w ten sposob nie wykryje się carta wpiętego w obszar $8000-$9FFF (sygnalizowanego R4, bo R4 nie wpływa na rejestr TRIG3). Jak system to robi? Wiem, że testuje możliwość zapisu każdej strony pamięci, żeby w razie braku zapisu umieścić DL i pamięc obrazu gdzie indziej.
Z moich eksperymentow z RAM-CART'em Zenona pracującym na obszarze $8000-$9FFF (R4) wynika, ze Atari nie podejmie próby bootowania z carta (mimo prawidłowego nagłówka $9FFA-$9FFF) jeśli wykryje, że pamięć jest zapisywalna (ram-cart ustwiony w tryb ZAPIS).
Czy tak faktycznie jest i czy to samo dotyczy obszaru $A000-$BFFF (R5)? Czyli jesli system wykryje że jest tu pamięć zapisywalną RAM, to mimo że R5 będzie ustawione (a więc i rejestr TRIG3) to nie spróbuje poszukac nagłówka cartridga i wykonać z niego bootowania?
EDITED: znów znalazłem sam odpowiedz w książce Zientary: http://tajemnice.atari8.info/ksiazki/pp … utera.html
W pewnym momencie procedury RESET jest sprawdzane czy RAMSIZ>$B0, czyli czy powyżej adresu $B000 udało się testowo coś zapisać do pamięci. Jesli tak to NIE jest wywolywana inicjalizacja carta.