Powrót do spisu treści |
WSTĘPSystem operacyjny (OS - Operating System) jest zapisanym w pamięci ROM zestawem procedur nadzorujących pracę całego systemu komputerowego, to znaczy samego komputera oraz urządzeń peryferyjnych. W komputerach Atari OS jest dokładnie przemyślanym, samodzielnym pakietem programowym, który umożliwia całkowitą ubsługę systemu bez odwoływania się do dodatkowych procedur znajdujących się np. w interpreterze Basica, jak to ma miejsce w ZX-Spectrum. Cały system operacyjny Atari zajmuje 16 KB pamięci ROM, podzielone na kilka części. Dwie podstawowe części OS zajmują obszary $C000-$CFFF (49152-53247) oraz $E000-$FFFF (57344-65535). W tych obszarach znajdują się wszystkie procedury oraz tabele niezbędne do działania systemu. Trzecim blokiem systemu operacyjnego jest pakiet procedur zmiennoprzecinkowych służących do wykonywania obliczeń na liczbach rzeczywistych. Zajmuje on 2 KB pamięci i znajduje się w obszarze $D800-$DFFF (55296-57343). Kolejny blok 2 KB pamięci ROM od $D000 do $D7FF (53248-55295) jest zajęty przez program testowania komputera. Normalnie jest on niedostępny dla użytkownika, gdyż w tej samej przestrzeni adresowej znajdują się rejestry sprzętowe specjalizowanych układów scalonych komputera (procesor 6502 nie ma wydzielonej przestrzeni adresowej dla układów I/O). W chwili wywołania tego programu następuje sprzętowe przełączenie linii adresowych i pozorne przeniesienie tego programu do obszaru $5000-$57FF (20480-22527). System operacyjny wykorzystuje także dla swoich potrzeb część pamięci RAM. Jest to połowa strony zerowej ($00-$7F, 0-127) oraz obszar od $0200 do $047F (512-1151). Oprócz tego obszar pierwszej strony pamięci ($0100-$01FF, 256-511) zajęty jest przez stos mikroprocesora. Kolejne modernizacje 8-bitowej rodziny Atari pozostawiały ślad także w systemie operacyjnym, który jest spotykany w kilku odmianach. Rozpoznanie wersji jest możliwe dzięki informacjom zawartym w dwóch obszarach pamięci - $C002-$C00B (49154-49163) i $FFEE-$FFF7 (65518-65527): $C002-$C004 (49154-49156) Revision Date $C005 (49157) Option Byte $C006-$C00A (49158-49162) Part Number $C00B (49163) Revision Number $FFEE-$FFF0 (65518-65520) Revision Date $FFF1 (65521) Option Byte $FFF2-$FFF6 (65522-65526) Part Number $FFF7 (65527) Revision NumberOpis będzie dotyczył najczęściej spotykanej w Polsce wersji B (O.S. Revision B). Poniżej podane są wartości znajdujące się w obszarach identyfikacyjnych tej wersji. Revision Date jest to data zatwierdzenia wersji OS zapisana w kodzie BCD. Są tam wpisane wartości $10, $05 i $83. Part Number jest numerem serii zapisanym w formacie AANNNNNN, gdzie A jest znakiem ASCII, a N - liczba w kodzie BCD. Znajdują się tam kolejno wartości: $42, $42, $00, $00 i $01 (BB000001). Numer wersji (Revision Number) ma wartość $02 w 800XL, 65XE i 130XE. Atari 600XL zawiera w $FFFB wartość $01, a 1200XL - $11. Option Byte w pierwszym bloku ($C005) jest równy $00, a w drugim ($FFF1) $02 (w 1200XL - $01). Jeżeli po sprawdzeniu zawartości powyższych komórek okaże się, że są one inne, nie należy się tym szczególnie przejmować. Wszystkie wersje Atari mają podobny system operacyjny. Różnice najczęściej sprowadzają się do rozmieszczenia procedur w pamięci (przesunięcie o kilka bajtów) i drobnej kosmetyki. Adresy początkowe wielu procedur można w takim przypadku odnaleźć dzięki wektorom umieszczonym w pamięci RAM i ROM oraz przy pomocy tablicy skoków. W najgorszym przypadku można odszukać procedurę przez poszukiwanie w pamięci RAM określonej sekwencji bajtów. Programy pisane dla komputerów Atari powinny w zasadzie korzystać wyłącznie z tablicy skoków. Zapewnia to ich prawidłowe działanie na wszystkich istniejących modelach. Ponieważ w Polsce znajdują się praktycznie jedynie modele XL i XE, to oprogramowanie może także korzystać bezpośrednio z większości procedur systemu operacyjnego. |