XL OS

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 00:14, 27 gru 2006
KMK (Dyskusja | wkład)
(Elementy składowe)
← Previous diff
Aktualna wersja
Mono (Dyskusja | wkład)
(BB000001 rev. 59 - lit.)
Linia 1: Linia 1:
-{{OS}}Zwyczajowa nazwa systemu operacyjnego znajdującego się w [[ROM]]-ie komputerów Atari serii [[XL]] i [[XE]]. Jest to wersja rozwojowa [[Atari OS]] rev. B, poprawiona i rozbudowana. System zajmuje 16k w obszarze $C000-$FFFF (zob. [[Mapa pamięci]]).+{{OS}}Zwyczajowa nazwa systemu operacyjnego znajdującego się w [[ROM]]-ie komputerów Atari serii [[XL]] i [[XE]]. Jest to wersja rozwojowa [[Atari OS]] rev. B, poprawiona i rozbudowana. System zajmuje 16k w obszarze adresowym od $C000 do $FFFF (dokładne informacje na ten temat znajdują się poniżej).
==Autorzy== ==Autorzy==
Linia 12: Linia 12:
* [[SIO]] * [[SIO]]
* [[pakiet matematyczny]] * [[pakiet matematyczny]]
 +* 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) - ale nie ma go w [[1200XL]].+* program testujący ([[SELF TEST]])
-Ponadto 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.
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. 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== ==Wersje==
 +W XL OS data wydania i wersja systemu są zakodowane w tzw. [[Sygnatura XL OS|sygnaturze]]. Znane są następujące wersje OS-u:
 +
===Seryjne=== ===Seryjne===
-* BB 01.0a (?) z 26 października 1982 roku; pierwsza wersja dla [[1200XL]].+====AA000000 rev. 10====
-* BB 01.0b (?) z 23 grudnia 1982 roku; druga wersja dla 1200XL.+Data w sygnaturze: 26 października 1982 r. Pierwsza wersja dla [[1200XL]].
-* BB 01.01 z 11 marca 1983 roku; pierwsza wersja dla [[600XL]] i [[800XL]]. +* Usunięty Memo Pad.
-* BB 01.02 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.
-* BB 01.03 z 1 marca 1985 roku; w zasadzie identyczna z BB 01.02 (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).
-* BB 01.04 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).
-* BB 01.59 (znany jako 01.3b) z 21 lipca 1987 roku; wersja arabska ROM-u BB 01.03 (lub BB 01.04).+* 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===
-* BB 02.03 z 23 marca 1984 roku; wcześniejsza wersja prototypowa systemu dla Atari [[1450XLD]].+====BB000002 rev. 3 (1)====
-* BB 02.03 z 21 czerwca 1984 roku; późniejsza wersja prototypowa systemu dla Atari [[1450XLD]].+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]
-* CC 01.04 z 4 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.+
-Wersje prototypowe zawierają kilka bardziej - ale jednak nie "bardzo" - istotnych zmian w stosunku do BB 01.02, oraz parę poprawek, które - co dziwne - nie znalazły się w późniejszych wersjach systemu XL/XE.+====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.
 + 
 +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==
 + 
 +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.
 + 
 +<table border = 1 cellpadding = 5>
 +<tr><td>Obszar pamięci ROM:</td><td>Lokalizacja w pamięci Atari:</td><td>Warunek mapowania:</td><td>Opis obszaru:</td></tr>
 +<tr><td>$0000-$0FFF</td><td>$C000-$CFFF</td><td>[[Rejestry PIA#PORTB|PORTB]] bit0=1</td><td>system</td></tr>
 +<tr><td>$1000-$17FF</td><td>$5000-$57FF</td><td>PORTB bit7=0</td><td>SELF TEST</td></tr>
 +<tr><td>$1800-$3FFF</td><td>$D800-$FFFF</td><td>PORTB bit0=1</td><td>system</td></tr>
 +</table>
 + 
 +Zobacz też: [[Mapa pamięci]].
==Download== ==Download==
-* Kod źródłowy: [[Media:OS.tar.gz|OS.tar.gz]] (zdisasemblowana wersja BB 01.02)+* Kod źródłowy: [[Media:OS.tar.gz|OS.tar.gz]] (zdisasemblowana wersja BB000001 rev. 2)
 + 
 +==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/osroms.txt Informacje o systemach operacyjnych] na stronie Freddy'ego Offengi
[[Kategoria:Oprogramowanie Atari 8-bit]] [[Kategoria:Oprogramowanie Atari 8-bit]]

Aktualna wersja

Zwyczajowa nazwa systemu operacyjnego znajdującego się w ROM-ie komputerów Atari serii XL i XE. Jest to wersja rozwojowa Atari OS rev. B, poprawiona i rozbudowana. System zajmuje 16k w obszarze adresowym od $C000 do $FFFF (dokładne informacje na ten temat znajdują się poniżej).

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:

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-$CFFFPORTB bit0=1system
$1000-$17FF$5000-$57FFPORTB bit7=0SELF TEST
$1800-$3FFF$D800-$FFFFPORTB bit0=1system

Zobacz też: Mapa pamięci.

Download

  • Kod źródłowy: OS.tar.gz (zdisasemblowana wersja BB000001 rev. 2)

Odnośniki zewnętrzne

Personal tools