XL OS

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 10:50, 17 lut 2011
Krótki (Dyskusja | wkład)
(Wersje - formatowanie)
← Previous diff
Wersja z dnia 11:20, 18 lut 2011
Krótki (Dyskusja | wkład)
(Seryjne - szczegółowy opis funkcji w OSie rev. 10 i 11, za XL Addendum.)
Next diff →
Linia 25: Linia 25:
===Seryjne=== ===Seryjne===
* AA000000 rev. 10 z 26 października 1982 roku; pierwsza wersja dla [[1200XL]]. * AA000000 rev. 10 z 26 października 1982 roku; 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).
 +** Rozszersenia 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 starty, 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 z 23 grudnia 1982 roku; druga wersja dla 1200XL. * AA000001 rev. 11 z 23 grudnia 1982 roku; 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 z 11 marca 1983 roku; pierwsza wersja dla [[600XL]] i [[800XL]]. * BB000000 rev. 1 z 11 marca 1983 roku; pierwsza wersja dla [[600XL]] i [[800XL]].
* BB000001 rev. 2 z 10 maja 1983 roku; najpopularniejsza wersja, znajdująca się w Atari 800XL i większości modeli [[XE]]. * BB000001 rev. 2 z 10 maja 1983 roku; najpopularniejsza wersja, znajdująca się w Atari 800XL i większości modeli [[XE]].

Wersja z dnia 11:20, 18 lut 2011

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 z 26 października 1982 roku; 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).
    • Rozszersenia 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 starty, 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 z 23 grudnia 1982 roku; 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 z 11 marca 1983 roku; pierwsza wersja dla 600XL i 800XL.
  • BB000001 rev. 2 z 10 maja 1983 roku; najpopularniejsza wersja, znajdująca się w Atari 800XL i większości modeli XE.
  • BB000001 rev. 3 z 1 marca 1985 roku
    • Przeznaczona dla 130XE, znajduje się w części modeli XE.
    • Poprawiony rzadko występujący błąd w procedurze SIO obliczającej sumę kontrolną.[3]
    • 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 z 7 maja 1987 roku; ROM dla XEGS.
  • BB000001 rev. 59 (znany jako 01.3b) z 21 lipca 1987 roku; wersja arabska ROM-u BB000001 rev. 3 dla arabskiego 65XE. Istnieją 2 wersje o tej sygnaturze.

Prototypowe

  • BB000002 rev. 3 z 23 marca 1984 roku; wcześniejsza wersja prototypowa systemu dla Atari 1450XLD. [4]
  • BB000002 rev. 3 z 21 czerwca 1984 roku; późniejsza wersja prototypowa systemu dla Atari 1450XLD. [5]
  • 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 nowych urządzeń i PBI. W zamian SIO ma wbudowany protokół szybkiej transmisji 38,4 kbps.[6]

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