SELF TEST
From Atariki
Wbudowany w komputery Atari serii XL oraz XE program, pozwalający zarówno nabywcy jak i serwisantowi przetestować sprawność podstawowych elementów komputera. Zaprojektowany na potrzeby komputera 1200XL i zaprogramowany przez Michaela Colburna, miał "wzbudzać zaufanie użytkownika do własnego komputera oraz wspomagać sprzedaż", przy czym "wygląd jest ważniejszy od tego, czy program dobrze wypełnia swoją funkcję".
Spis treści |
Funkcje
W skład SELF TEST-u wchodzą 3 testy:
- MEMORY - test pamięci ROM i RAM, układu Antic. Testowane są też diody L1 i L2 komputera 1200XL - mrugają one na zmianę podczas testu kolejnych kilobajtów RAM.
- AUDIO-VISUAL - test dźwięku generowanego przez układ POKEY, oraz obrazu generowanego przez układy Antic i GTIA. Charakterystyczny motyw wygrywany na czterech kolejnych kanałach dźwiękowych to sześć pierwszych nut utworu "Promenada" Modesta Musorgskiego ("Obrazki z Wystawy", cz. 1). (W specyfikacji, powstałej jeszcze zanim podjęto ostateczną decyzję co to melodii, nuty na szkicu ekranu AUDIO-VISUAL przedstawiają pięciotonowy motyw z filmu Bliskie spotkania trzeciego stopnia.)
- KEYBOARD - test klawiatury obsługiwanej przez układy POKEY i GTIA, oraz dźwięku generowanego przez POKEY.
Dodatkową opcją jest ALL TESTS - program wykonuje wtedy wszystkie powyższe testy po kolei. Dwa pierwsze testy wykonują się same, natomiast test klawiatury "udaje" naciśnięcie kilkunastu klawiszy przez użytkownika.
Jako że SELF TEST miał być przede wszystkim dodatkiem wspomagającym sprzedaż komputerów, jego funkcjonalność ucierpiała na rzecz efektowności:
- Test pamięci nie uwzględnia pamięci RAM pod ROM-em, ani RAM pod obszarem wbudowanego BASIC-a, gdy ten jest włączony. Nie są też testowane obszary $0000-$03FF, $3000-$33FF (pamięć ekranu SELF TEST-u) i $5000-$57FF (RAM pod ROM-em SELF TEST-u) - program udaje, że testuje te obszary, wywołując pętlę opóźniającą.
- Test klawiatury nie sprawdza klawisza Break. Ponadto w trybie ALL TESTS jest bezużyteczny - klawiaturę można przetestować tylko fizycznie naciskając klawisze. W tym trybie zaś naciskanie klawiszy jest udawane programowo. Co ciekawe, naciskane klawisze układają się w hasło, którego treść jest zależna od wersji systemu (zob. Wersje).
Uruchomienie
W XL OS do tablicy wektorów dodano wektor uruchamiający SELF TEST o nazwie SLFTSV ($E483); przed skokiem do niego należy włączyć ROM SELF TEST-u, zerując bit 7 rejestru PORTB. Oprócz tego program można uruchomić w następujące sposoby:
- włączając komputer bez podłączonej stacji dysków, ale przy wciśniętym klawiszu OPTION; lub
- włączając komputer jak powyżej, po zgłoszeniu się BASIC-a wykonać polecenie "DOS"; lub
- W Atari BASIC (oraz w jego wersjach rozwojowych, jak BASIC XL, BASIC XE, Turbo BASIC XL), wykonać polecenie "BYE".
1200XL nie ma wbudowanego BASIC-a, wobec czego wystarczy włączyć komputer bez podłączonej stacji dysków. Pokazuje się wtedy na ekranie podkolorowany tęczowo napis "ATARI"; żeby przejść do SELF TEST-u, trzeba nacisnąć klawisz HELP.
Tak naprawdę żaden z tych sposobów nie uruchamia SELF-TEST-u bezpośrednio. Sposoby 1 i 2 powodują skok przez DOSVEC ($0A-$0B), który w przypadku braku DOS-u jest inicjowany przez system na adres (nowego w 1200XL) wektora PUPDIV ("Power-Up Display", $E480). Wektor ten uruchamia ekran z tęczowym napisem "ATARI". Natomiast wpisanie BYE z BASIC-a (sposób 3) powoduje skok do wektora BLKBDV ("Blackboard mode", $E471). Wektor ten w komputerach 400/800 wskazywał na MEMO PAD, którego w komputerach XL/XE nie ma. W 1200XL wektor ten został przekierowany i również wskazuje na Power-Up Display. Z kolei w pozostałych komputerach XL/XE oba wektory zostały przekierowane na procedurę uruchamiającą SELF-TEST, zatem skok przez oba wektory BLKBDV, PUPDIV powoduje uruchomienie SELF TEST-u.
Na 1400XL i 1450XLD użycie sposobów nr 1 i 2 spowoduje wyrecytowanie przez komputer krótkiego tekstu przez wbudowany syntezator mowy: na 1400XL będzie to "Atari 1400 Self Test, press Select, Start or Reset", a na 1450XLD "Atari Self Test, press Select, Start or Reset". Dzieje się tak, mimo że program SELF TEST-u jest w tych komputerach taki sam jak w 800XL - to wbudowany sterownik syntezatora mowy (który jest nowym urządzeniem) przejmuje na chwilę kontrolę ustawiwszy odpowiednio wektor DOSVEC.
SELF TEST (lub w 1200XL ekran Power-Up Display) może też zgłosić się nieproszony: jeśli po włączeniu komputera na ekranie ukazuje się menu główne SELF TEST-u, świadczy to o kłopotach z odczytem wstępnym (bootem) ze stacji dysków lub magnetofonu. Natomiast jeśli od razu otwiera się opcja MEMORY, nie jest to dobry objaw, gdyż oznacza, że systemowi nie wyszedł przeprowadzony po włączeniu zasilania test pamięci: komputer w tej sytuacji jest przypuszczalnie do naprawy.
Wersje
SELF TEST ewoluował wraz z komputerami serii XL/XE:
- Pierwsza wersja wchodziła w skład XL OS-u we wszystkich komputerach XL i wczesnych XE. W tej wersji klawisze naciskane w teście klawiatury w trybie ALL TESTS układają się w hasło zależne od wersji systemu:
- W prototypowej wersji CC 1.4 (dla 800 XL i 900XLF) poprawiono test klawiatury - zmieniono układ klawiatury i usunięto z niego nieobecne w nowych modelach komputerów klawisze F1-F4.
- W wersjach BB 1.3, BB 1.4 i BB 1.59 (późne 65XE i 130XE, wszystkie XEGS, arabski 65XE) dokonano jedynych poważnych zmian w Self Teście:
- Test pamięci działa szybciej oraz, zamiast mrugać nieistniejącymi diodami, testuje dodatkową pamięć 130XE, aczkolwiek zaimplementowano to błędnie - testowane są tylko 2 z 4 dodatkowych banków, każdy dwukrotnie. Aby uzyskać miejsce na powyższą nową funkcję, przepisano nieco test AUDIO-VISUAL.
- W teście klawiatury dostosowano układ klawiszy do modeli XE i usunięto klawisze F1-F4, aczkolwiek w nieco inny sposób niż w wersji CC 1.4. Hasło w trybie ALL TESTS tym razem brzmi "Copyright1985Atari".
Lokalizacja
Fizycznie SELF TEST stanowi część ROM-u z XL OS-em. Zajmuje w nim nieco ponad 2k. W większości normalnie niewidoczny, gdyż ta część OS-u "przykryta" jest rejestrami sprzętowymi, ujawnia się 32k niżej (adresy $5000-$57FF), gdy bit 7 rejestru PORTB zostanie skasowany.
W części alternatywnych systemów dla XL/XE (QMEG OS, DracOS) SELF TEST-u nie ma. Natomiast w 400/800 wykonanie czynności, które w XL OS-ie wywołują SELF TEST, powoduje przejście OS-u w tryb MEMO PAD.