XL OS
From Atariki
Wersja z dnia 11:31, 6 wrz 2010 KMK (Dyskusja | wkład) ← Previous diff |
Aktualna wersja Jhusak (Dyskusja | wkład) (→Odnośniki zewnętrzne) |
||
Linia 14: | Linia 14: | ||
* relokator binarny ([[ACX]]) | * relokator binarny ([[ACX]]) | ||
* procedury obsługi [[nowe urządzenia|nowych urządzeń]] | * procedury obsługi [[nowe urządzenia|nowych urządzeń]] | ||
- | * program testujący ([[Self Test]]) | + | * program testujący ([[SELF TEST]]) |
Ponadto, inaczej niż w [[Atari OS|poprzednich wersjach]], nie ma rozróżnienia na wersję PAL i NTSC - system sam rozpoznaje wersję sprzętu i dostosowuje do tego wewnętrzne ustawienia. | Ponadto, inaczej niż w [[Atari OS|poprzednich wersjach]], nie ma rozróżnienia na wersję PAL i NTSC - system sam rozpoznaje wersję sprzętu i dostosowuje do tego wewnętrzne ustawienia. | ||
Linia 24: | Linia 24: | ||
===Seryjne=== | ===Seryjne=== | ||
- | * AA000000 rev. 10 z 26 października 1982 roku; pierwsza wersja dla [[1200XL]]. | + | ====AA000000 rev. 10==== |
- | * AA000001 rev. 11 z 23 grudnia 1982 roku; druga wersja dla 1200XL. | + | Data w sygnaturze: 26 października 1982 r. Pierwsza wersja dla [[1200XL]]. |
- | * BB000000 rev. 1 z 11 marca 1983 roku; pierwsza wersja dla [[600XL]] i [[800XL]]. | + | * Usunięty Memo Pad. |
- | * BB000001 rev. 2 z 10 maja 1983 roku; najpopularniejsza wersja, znajdująca się w Atari 800XL i większości modeli [[XE]]. | + | * Dodany ekran powitalny z logo Atari oraz Self Test. |
- | * BB000001 rev. 3 z 1 marca 1985 roku; w zasadzie identyczna z BB000001 rev. 2 (ulepszony SELF TEST, zmiany w samym systemie są nieistotne). Przeznaczona dla [[130XE]], znajduje się w części modeli XE. | + | * Dodana obsługa klawisza Help - rejestr HELPFG (732=$02DC). |
- | * BB000001 rev. 4 z 7 maja 1987 roku; ROM dla [[XEGS]]. | + | * Dodana obsługa funkcji dostępnych pod klawiszy F1-F4 (oraz diod LED), oraz związane z tym nowe rejestry KEYDIS (621=$026D), DMASAV (733=$02DD), NOCLIK (731=$02DB), CHSALT (619=$026B). |
- | * BB000001 rev. 59 (znany jako 01.3b) z 21 lipca 1987 roku; wersja arabska ROM-u BB000001 rev. 3 dla [[arabski 65XE|arabskiego 65XE]]. Istnieją 2 wersje o tej sygnaturze. | + | * Dodany międzynarodowy zestaw znaków. |
+ | * Możliwość przedefiniowania znaczenia klawiszy (osobno klawiszy F1-F4) i związane z tym nowe wektory KEYDEF (121-122=$79-$7A) i FKDEF (96-97=$60-$61). | ||
+ | * Możliwość zmiany szybkości samo-powtarzania wciśniętego klawisza - rejestry KRPDEL (729=$02D9) i KEYREP (730=$02DA). | ||
+ | * Zmiana działania klawisza Caps. | ||
+ | * Dodany szybki test ROM i RAM przy włączaniu komputera. | ||
+ | * Dodana obsługa 4 zworek na płycie głównej - rejestr JMPERS (0782=$030E). System używa tylko zworki J1 - jeśli zwarta podczas uruchamiania systemu, włączany jest Self Test. | ||
+ | * Dodane 4 nowe tryby graficzne 12, 13, 14 i 15. | ||
+ | * W edytorze ekranowym E: dodany opcjonalny płynny przesuw - rejestr FINE (622=$026E). | ||
+ | * Rozszerzenia procedur komunikacji ze stacją dysków: | ||
+ | ** Możliwość odczytu/zapisu sektorów o długości innej niż 128 bajtów (od 1 do 65536 bajtów) - rejestr DSCTLN (725-726=$02D5-$02D6). | ||
+ | ** Możliwość zapisu sektora bez automatycznej weryfikacji odczytu - komenda "P". | ||
+ | * Relokator binarny ([[ACX]]). | ||
+ | * Rozszerzenia w procedurach pollingu urządzeń zewnętrznych (Poll 3, Poll 4). | ||
+ | * Poprawka dla funkcji CLOSE dla drukarki - automatyczne dodawanie EOL do bufora drukarki. | ||
+ | * Dodana obsługa numeru urządzenia w handlerze P:. | ||
+ | * Poprawka w obsłudze odczytu za długich rekordów w CIO. | ||
+ | * Poprawka w obsłudze błędów CIO - w przypadku wystąpienia błędu zwraca długość bufora równą 0. | ||
+ | * Poprawka błędu czyszczenia edytora ekranowego - działa niezależnie od pozycji kursora. | ||
+ | * Poprawka błędu czyszczenia ekranu - nigdy nie zeruje pamięci powyżej RAMTOP. | ||
+ | * Poprawka w pakiecie matematycznym - zwraca błąd przy próbie liczenia logarytmu z 0. | ||
+ | * Nowe wpisy w [[tablica skoków|tablicy skoków]] ROM: PUPDIS $E480, SLFTST $E483, PHENTR $E486, PHULNK $E489, PHINIS $E48C. | ||
+ | * Zmiana w obsłudze zmiennych systemowych - są zerowane tylko podczas zimnego startu, a podczas gorącego już nie. | ||
+ | * Jedna wersja systemu dla komputerów PAL i NSTC - procedury komunikacji z urządzeniami zewnętrznymi działają zależnie od rejestru [[Rejestry GTIA#PAL|PAL]]. | ||
+ | * Dodana sygnatura ROM - obszary $C000-$C00B i $FFEE-$FFF9. | ||
+ | * Zmiany w związku z nowym przeznaczeniem rejestru [[Rejestry PIA#PORTB|PORTB]] - usunięcie obsługi joysticków 3-4 i paddle 5-8. | ||
+ | * Różne zmiany w zmiennych systemowych.[http://www.strotmann.de/~cas/Infothek/AtariXlAddendum/xladdendum.pdf] | ||
+ | |||
+ | ====AA000001 rev. 11==== | ||
+ | Data w sygnaturze: 23 grudnia 1982 r. Druga wersja dla 1200XL. | ||
+ | * Poprawka w procedurach płynnego przesuwu edytora - zamknięcie urządzenia E: powoduje teraz przywrócenie poprzedniej wartości zmiennej FINE i przywrócenie ekranu do trybu przesuwu zgrubnego.[http://www.strotmann.de/~cas/Infothek/AtariXlAddendum/xladdendum.pdf] | ||
+ | * Dodany znaczek ® do wyświetlanego logo Atari. | ||
+ | |||
+ | ====BB000000 rev. 1==== | ||
+ | Data w sygnaturze: 11 marca 1983 r. Pierwsza wersja dla [[600XL]] i [[800XL]]. | ||
+ | |||
+ | ====BB000001 rev. 2==== | ||
+ | Data w sygnaturze: 10 maja 1983 r. Druga wersja dla 800XL. Najpopularniejsza wersja - znajduje się w większości egzepmlarzy, a także w większości modeli [[XE]], mimo że rewizja 3 była gotowa przed rozpoczęciem sprzedaży 130XE. Firma Atari, Inc. była znana z nadprodukcji komponentów - być może montując rev 2 w XE upłynniano zalegające zapasy. | ||
+ | |||
+ | ====BB000001 rev. 3==== | ||
+ | Data w sygnaturze: 1 marca 1985 r. Przeznaczona dla [[130XE]], znajduje się tylko w dość późnych egzemplarzach serii XE, prawdopodopodobnie tylko w tych wyprodukowanych już po premierze XEGS. | ||
+ | * Poprawiony rzadko występujący błąd w procedurze [[SIO]] obliczającej sumę kontrolną.[http://www.atariage.com/forums/topic/140125-pal-130xe/page__view__findpost__p__1699212] Błąd powodował zawieszanie się operacji dyskowych na okres 5 sekund, a w przypadku drukowania na drukarce [[1027]] na 9 minut.[http://www.atarimagazines.com/compute/issue73/insight_atari.php] | ||
+ | * Ulepszenia w Self Teście: usunięto klawisze F1-F4 z testu klawiatury, przyspieszono test pamięci, dodano testowanie pamięci rozszerzonej. | ||
+ | |||
+ | ====BB000001 rev. 4==== | ||
+ | Data w sygnaturze: 7 maja 1987 r. Wersja dla [[XEGS]]. | ||
+ | |||
+ | ====BB000001 rev. 59==== | ||
+ | Data w sygnaturze: 21 lipca 1987 r. Znana też jako 01.3b. Modyfikacja ROM-u BB000001 rev. 3 dla [[arabski 65XE|arabskiego 65XE]]. Istnieją 2 wersje o tej sygnaturze. | ||
===Prototypowe=== | ===Prototypowe=== | ||
- | * BB000002 rev. 3 z 23 marca 1984 roku; wcześniejsza wersja prototypowa systemu dla Atari [[1450XLD]]. [http://ftp.pigwa.net/stuff/collections/nir_dary_cds/ROMS/ROMS_OS/XLROMS/1450R3V0.ROM] | + | ====BB000002 rev. 3 (1)==== |
- | * BB000002 rev. 3 z 21 czerwca 1984 roku; późniejsza wersja prototypowa systemu dla Atari 1450XLD. [http://ftp.pigwa.net/stuff/collections/nir_dary_cds/ROMS/ROMS_OS/XLROMS/1450R3VX.ROM] | + | Data w sygnaturze: 23 marca 1984 r. Wcześniejsza wersja prototypowa systemu dla Atari [[1450XLD]]. [http://ftp.pigwa.net/stuff/collections/nir_dary_cds/ROMS/ROMS_OS/XLROMS/1450R3V0.ROM] |
- | * CC000001 rev. 4 z 6 września 1984; ostatnia wersja prototypowa po zarzuceniu prac nad [[1090]], przeznaczona dla 800XL i [[900XLF]]. Charakteryzuje się '''brakiem''' procedur obsługi [[nowe urządzenia|nowych urządzeń]] i [[PBI]]. W zamian [[SIO]] ma wbudowany protokół szybkiej transmisji 38,4 kbps.[http://www.atariage.com/forums/topic/78579-a800ossrc/page__view__findpost__p__961535] | + | |
+ | ====BB000002 rev. 3 (2)==== | ||
+ | Data w sygnaturze: 21 czerwca 1984 r. Późniejsza wersja prototypowa systemu dla Atari 1450XLD. [http://ftp.pigwa.net/stuff/collections/nir_dary_cds/ROMS/ROMS_OS/XLROMS/1450R3VX.ROM] | ||
+ | |||
+ | ====CC000001 rev. 4==== | ||
+ | Data w sygnaturze: 6 września 1984 r. Ostatnia wersja prototypowa po zarzuceniu prac nad [[1090]], przeznaczona dla 800XL i [[900XLF]]. Charakteryzuje się '''brakiem''' procedur obsługi [[nowe urządzenia|nowych urządzeń]] i [[PBI]]. W zamian [[SIO]] ma wbudowany protokół szybkiej transmisji 38,4 kbps.[http://www.atariage.com/forums/topic/78579-a800ossrc/page__view__findpost__p__961535] | ||
Wersje prototypowe zawierają kilka bardziej - ale jednak nie "bardzo" - istotnych zmian w stosunku do BB000001 rev. 2, oraz parę poprawek, które - co dziwne - nie znalazły się w późniejszych wersjach systemu XL/XE. | Wersje prototypowe zawierają kilka bardziej - ale jednak nie "bardzo" - istotnych zmian w stosunku do BB000001 rev. 2, oraz parę poprawek, które - co dziwne - nie znalazły się w późniejszych wersjach systemu XL/XE. | ||
- | Istnieje "w obiegu" co najmniej kilkanaście nieoficjalnych wersji z różnymi modyfikacjami, np. [[APE Warp plus OS]] | + | Istnieje "w obiegu" co najmniej kilkanaście nieoficjalnych wersji z różnymi modyfikacjami, np. [[APE Warp plus OS|APE Warp+ OS]]. |
==Rozmieszczenie w pamięci== | ==Rozmieszczenie w pamięci== | ||
Linia 59: | Linia 111: | ||
==Odnośniki zewnętrzne== | ==Odnośniki zewnętrzne== | ||
- | * [http://members.chello.nl/taf.offenga/atari_dev.htm Atari 8-bit Developers Page] - strona [[Frankenstein|Freddy'ego Offengi]], z której można ściągnąć ROM-y XL OS | + | * [http://members.chello.nl/taf.offenga/atari_dev.htm Atari 8-bit Developers Page][https://web.archive.org/web/20190319124744/http://www.ataripreservation.org:80/websites/freddy.offenga/atari_dev.htm wersja na arghive.org] - strona [[Frankenstein|Freddy'ego Offengi]], z której można ściągnąć ROM-y XL OS |
- | * [http://members.chello.nl/taf.offenga/osroms.txt Informacje o systemach operacyjnych] na stronie Freddy'ego Offengi | + | * [http://members.chello.nl/taf.offenga/osroms.txt Informacje o systemach operacyjnych] [https://web.archive.org/web/20161227075255/http://www.ataripreservation.org/websites/freddy.offenga/osroms.txt wersja na archive.org] na stronie Freddy'ego Offengi |
[[Kategoria:Oprogramowanie Atari 8-bit]] | [[Kategoria:Oprogramowanie Atari 8-bit]] |
Aktualna wersja
Systemy operacyjne:
8-bit:
Altirra OS
Atari OS
CP/M
DracOS
OS++
QMEG OS
Turbo-816 OS
XL OS
16/32-bit:
TOS
MultiTOS
FreeMiNT
MagiC
Minix
Spis treści |
Autorzy
- 1200XL: H. Stewart, L. Winner, R.S. Scheiman, Y.M. Chen, M.W. Colburn
- 600XL/800XL/1450XLD: R.S. Scheiman, R.K. Nordin, Y.T. Jang, Vincent Wu, Michael Barrall
Elementy składowe
Na XL OS składają się następujące elementy:
- procedury obsługi przerwań
- CIO
- SIO
- pakiet matematyczny
- relokator binarny (ACX)
- procedury obsługi nowych urządzeń
- program testujący (SELF TEST)
Ponadto, inaczej niż w poprzednich wersjach, nie ma rozróżnienia na wersję PAL i NTSC - system sam rozpoznaje wersję sprzętu i dostosowuje do tego wewnętrzne ustawienia.
Jako ciekawostkę można dodać, że system zawiera tzw. "tryb przyciągania uwagi" - rodzaj prostego wygaszacza ekranu, który włącza się, gdy użytkownik nie dotyka klawiatury przez ok. 11 minut (dokładnie, 32768 "ramek" VBL, czyli w systemie PAL, 10 minut i 57,2 sek.). Po upływie tego czasu jasność wyświetlanego obrazu redukowana jest o połowę, a kolory tła, tekstu i ramki zaczynają się zmieniać co ok. 5 sekund. Naciśnięcie dowolnego klawisza przywraca normalny stan komputera.
Wersje
W XL OS data wydania i wersja systemu są zakodowane w tzw. sygnaturze. Znane są następujące wersje OS-u:
Seryjne
AA000000 rev. 10
Data w sygnaturze: 26 października 1982 r. Pierwsza wersja dla 1200XL.
- Usunięty Memo Pad.
- Dodany ekran powitalny z logo Atari oraz Self Test.
- Dodana obsługa klawisza Help - rejestr HELPFG (732=$02DC).
- Dodana obsługa funkcji dostępnych pod klawiszy F1-F4 (oraz diod LED), oraz związane z tym nowe rejestry KEYDIS (621=$026D), DMASAV (733=$02DD), NOCLIK (731=$02DB), CHSALT (619=$026B).
- Dodany międzynarodowy zestaw znaków.
- Możliwość przedefiniowania znaczenia klawiszy (osobno klawiszy F1-F4) i związane z tym nowe wektory KEYDEF (121-122=$79-$7A) i FKDEF (96-97=$60-$61).
- Możliwość zmiany szybkości samo-powtarzania wciśniętego klawisza - rejestry KRPDEL (729=$02D9) i KEYREP (730=$02DA).
- Zmiana działania klawisza Caps.
- Dodany szybki test ROM i RAM przy włączaniu komputera.
- Dodana obsługa 4 zworek na płycie głównej - rejestr JMPERS (0782=$030E). System używa tylko zworki J1 - jeśli zwarta podczas uruchamiania systemu, włączany jest Self Test.
- Dodane 4 nowe tryby graficzne 12, 13, 14 i 15.
- W edytorze ekranowym E: dodany opcjonalny płynny przesuw - rejestr FINE (622=$026E).
- Rozszerzenia procedur komunikacji ze stacją dysków:
- Możliwość odczytu/zapisu sektorów o długości innej niż 128 bajtów (od 1 do 65536 bajtów) - rejestr DSCTLN (725-726=$02D5-$02D6).
- Możliwość zapisu sektora bez automatycznej weryfikacji odczytu - komenda "P".
- Relokator binarny (ACX).
- Rozszerzenia w procedurach pollingu urządzeń zewnętrznych (Poll 3, Poll 4).
- Poprawka dla funkcji CLOSE dla drukarki - automatyczne dodawanie EOL do bufora drukarki.
- Dodana obsługa numeru urządzenia w handlerze P:.
- Poprawka w obsłudze odczytu za długich rekordów w CIO.
- Poprawka w obsłudze błędów CIO - w przypadku wystąpienia błędu zwraca długość bufora równą 0.
- Poprawka błędu czyszczenia edytora ekranowego - działa niezależnie od pozycji kursora.
- Poprawka błędu czyszczenia ekranu - nigdy nie zeruje pamięci powyżej RAMTOP.
- Poprawka w pakiecie matematycznym - zwraca błąd przy próbie liczenia logarytmu z 0.
- Nowe wpisy w tablicy skoków ROM: PUPDIS $E480, SLFTST $E483, PHENTR $E486, PHULNK $E489, PHINIS $E48C.
- Zmiana w obsłudze zmiennych systemowych - są zerowane tylko podczas zimnego startu, a podczas gorącego już nie.
- Jedna wersja systemu dla komputerów PAL i NSTC - procedury komunikacji z urządzeniami zewnętrznymi działają zależnie od rejestru PAL.
- Dodana sygnatura ROM - obszary $C000-$C00B i $FFEE-$FFF9.
- Zmiany w związku z nowym przeznaczeniem rejestru PORTB - usunięcie obsługi joysticków 3-4 i paddle 5-8.
- Różne zmiany w zmiennych systemowych.[1]
AA000001 rev. 11
Data w sygnaturze: 23 grudnia 1982 r. Druga wersja dla 1200XL.
- Poprawka w procedurach płynnego przesuwu edytora - zamknięcie urządzenia E: powoduje teraz przywrócenie poprzedniej wartości zmiennej FINE i przywrócenie ekranu do trybu przesuwu zgrubnego.[2]
- Dodany znaczek ® do wyświetlanego logo Atari.
BB000000 rev. 1
Data w sygnaturze: 11 marca 1983 r. Pierwsza wersja dla 600XL i 800XL.
BB000001 rev. 2
Data w sygnaturze: 10 maja 1983 r. Druga wersja dla 800XL. Najpopularniejsza wersja - znajduje się w większości egzepmlarzy, a także w większości modeli XE, mimo że rewizja 3 była gotowa przed rozpoczęciem sprzedaży 130XE. Firma Atari, Inc. była znana z nadprodukcji komponentów - być może montując rev 2 w XE upłynniano zalegające zapasy.
BB000001 rev. 3
Data w sygnaturze: 1 marca 1985 r. Przeznaczona dla 130XE, znajduje się tylko w dość późnych egzemplarzach serii XE, prawdopodopodobnie tylko w tych wyprodukowanych już po premierze XEGS.
- Poprawiony rzadko występujący błąd w procedurze SIO obliczającej sumę kontrolną.[3] Błąd powodował zawieszanie się operacji dyskowych na okres 5 sekund, a w przypadku drukowania na drukarce 1027 na 9 minut.[4]
- Ulepszenia w Self Teście: usunięto klawisze F1-F4 z testu klawiatury, przyspieszono test pamięci, dodano testowanie pamięci rozszerzonej.
BB000001 rev. 4
Data w sygnaturze: 7 maja 1987 r. Wersja dla XEGS.
BB000001 rev. 59
Data w sygnaturze: 21 lipca 1987 r. Znana też jako 01.3b. Modyfikacja ROM-u BB000001 rev. 3 dla arabskiego 65XE. Istnieją 2 wersje o tej sygnaturze.
Prototypowe
BB000002 rev. 3 (1)
Data w sygnaturze: 23 marca 1984 r. Wcześniejsza wersja prototypowa systemu dla Atari 1450XLD. [5]
BB000002 rev. 3 (2)
Data w sygnaturze: 21 czerwca 1984 r. Późniejsza wersja prototypowa systemu dla Atari 1450XLD. [6]
CC000001 rev. 4
Data w sygnaturze: 6 września 1984 r. Ostatnia wersja prototypowa po zarzuceniu prac nad 1090, przeznaczona dla 800XL i 900XLF. Charakteryzuje się brakiem procedur obsługi nowych urządzeń i PBI. W zamian SIO ma wbudowany protokół szybkiej transmisji 38,4 kbps.[7]
Wersje prototypowe zawierają kilka bardziej - ale jednak nie "bardzo" - istotnych zmian w stosunku do BB000001 rev. 2, oraz parę poprawek, które - co dziwne - nie znalazły się w późniejszych wersjach systemu XL/XE.
Istnieje "w obiegu" co najmniej kilkanaście nieoficjalnych wersji z różnymi modyfikacjami, np. APE Warp+ OS.
Rozmieszczenie w pamięci
Jak napisano powyżej, XL OS rezyduje w pamięci ROM o pojemności 16k znajdującej się zasadniczo w obszarze $C000-$FFFF. Pamięć ta jednak nie jest w pełni liniowo zmapowana na przestrzeń adresową 6502. Poniżej znajduje się tabela obrazująca różnice pomiędzy fizyczną lokalizacją zawartości pamięci ROM z systemem, a jej logiczną lokalizacją w przestrzeni adresowej.
Obszar pamięci ROM: | Lokalizacja w pamięci Atari: | Warunek mapowania: | Opis obszaru: |
$0000-$0FFF | $C000-$CFFF | PORTB bit0=1 | system |
$1000-$17FF | $5000-$57FF | PORTB bit7=0 | SELF TEST |
$1800-$3FFF | $D800-$FFFF | PORTB bit0=1 | system |
Zobacz też: Mapa pamięci.
Download
- Kod źródłowy: OS.tar.gz (zdisasemblowana wersja BB000001 rev. 2)
Odnośniki zewnętrzne
- Atari 8-bit Developers Pagewersja na arghive.org - strona Freddy'ego Offengi, z której można ściągnąć ROM-y XL OS
- Informacje o systemach operacyjnych wersja na archive.org na stronie Freddy'ego Offengi