Pokaż wszystko co masz
Początki przygody z Atari to często pierwsze rozkazy wydane z wbudowanego interpretera Atari Basic.
Nieśmiałe PRINT i GOTO prowadzi do przyjemnych zmian trybów GRAPHICScznych by postawić na ekranie pierwsze COLORowe PLOTy i DRAWTy. Z czasem młody praktykant nabiera wprawy. Chce też zostać Wielkim Konstruktorem. Godziny nauki ANTICznego języka wreszcie owocują stabilnym i zrozumiałym obrazem. Wreszcie, już jako czeladnik zadaje coraz więcej pytań, by w końcu zadać takie, które prędzej czy później zadaje każdy:
Jak duży obraz może wyświetlić Atari ?
Podstawowe informacje o procesorze ANTIC wskazują, że w rejestrze kontroli dostępu do pamięci o nazwie DMACTL znajdującego się pod adresem $D400 bity 0 i 1 sterują sposobem tworzenia obrazu, zgodnie z kombinacjami:
- 00 – dostęp do pamięci wyłączony, Antic nie generuje obrazu
- 01 – obraz ma szerokość 32 znaków (256 pikseli)
- 10 – obraz ma szerokość 40 znaków (320 pikseli)
- 11 – obraz ma szerokosć 48 znaków (384 pikseli)
Kombinacja trzecia to standardowy układ ekranu, między innymi taki którym wita nas uruchomiony prądem komputer. Badanie tych stanów jest prostsze niż można sądzić, zatem tuż po włączeniu komputera widzimy ekran Atari Basic o szerokości ekranu 40 znaków.
Ponieważ w tle działa system operacyjny Atari, który steruje między innymi procesorem Antic i posiada własne kopie rejestrów trzeba wykorzystać tzw. rejestr cień DMACTLS znajdujący się pod adresem $022F (559 w systemie dziesiętnym). Odczytujemy wartość tej komórki:
To jest standardowa wartość tego rejestru znana tak, że jej wartość podać powinien każdy obudzony w środku nocy atarowiec. Bitowa reprezentacja tej wartości to:
0 0 1 0 0 0 1 0
Przełączenie ekranu do wyświetlania obrazu o szerokości 32 znaków uzyskamy rozkazem:
POKE (559,33)
Obraz uległ zwężeniu, jeśli ktoś ma czas i ochotę może policzyć – faktycznie są to 32 kolumny znaków. Widoczne przesunięcia tekstu wynikają z tego, że w dalszym ciągu ekran pracuje na 40 znakowych wierszach.
Teraz kombinacja bitów dla ekranu z 48 kolumnami:
POKE (559,35)
Nie ma co przecierać oczu ani przesuwać ekranu. Ekran pokazuje 42 kolumny, ale kto chce może liczyć. Po co wszędzie podaje się wartość 48 kolumn ? Nie mam bladego pojęcia. Owszem – cześć ekranu może nie być po prostu wyświetlana przez ekran kineskopowy, więc może udałoby się uzyskać cały na monitorach WIDESCREEN ?
Spora część kineskopowych monitorów daje możliwości regulacji ramki wyświetlanego obrazu, można więc pokusić się o sprawdzenie co faktycznie widać, ale nie mając takowego można podejrzeć nieco więcej wykorzystując emulator Altirra z włączonymi opcjami:
-
- view: overscan mode: full (with blanking)
- view: overscan mode: vertical override full (with blanking)
Pojawiły się jeszcze dwie kolumny po prawej stronie ekranu oraz śmieci z sygnałów końca linii i to zapewne jest kres tego, co pokażą monitory kineskopowe.
Antic tworzy tylko „plan” dla wyświetlanego obrazu w rzeczywistości generuje go układ GTIA. Różne tu pojawiają się teorie spiskowe, jedne mówią o oczywistych błędach Antica drugie że cały ten tor to „składak” ewoluujący od konsoli aż po mikrokomputer. Układy nie zostały zaprojektowane na nowo tylko dostosowane do istniejącego schematu mikrokomputerka. Tak czy siak widoczny rozmiar to 42 kolumny trybu tekstowego (336 pikseli trybu HIRES). A jak z wysokością ? Standardowy ekran z każdego obrazu powyżej wynosi 24 rzędy (192 piksele w trybie Hires). Jednak powyżej i poniżej widocznego obrazu projektanci systemu operacyjnego pozostawili pewien margines. Rzec by można – margines bezpieczeństwa – dzięki temu obraz wyświetlał się prawidłowo i tak samo na każdym ówczesnym telewizorze czy monitorze.
Ponieważ obraz w Atari buduje się programowo nic nie na przeszkodzie stoi aby w tym obszarze również wyświetlać pożądane treści. Oczywiście ryzykuje się, że obraz może nie być wyświetlany na niektórych ekranach lub może zostać zerwana synchronizacja. Niekonsekwencje widać też w trakcie korzystania z grafiki duszków. Bez trudu można nimi operować nawet poza ekranem widocznym w trybie 40 kolumnowym, a także na całej wysokości generowanego ekranu. Jednak w dalszym ciągu nie można sięgnąć granicy obrazu generowanego przez Antic i GTIA. W rzeczywistości niewidoczne na ekranie kolumny wciąż są widoczne przez Antic, a że ten może scrollować obraz w poziomie to ma to wszystko sens.
Pani Tomoko wyświetla obraz w trybie HIRES 384×240 pikseli, z czego prawdopodobnie większość monitorów czy TV wyświetli poprawnie 336×240, a po prawdzie to 336×239.
Włączenie/wyłączenie klawiszem SPACJI 240 linii ekranu najprawdopodobniej zerwie synchronizację na większości ekranów kineskopowych, więc obserwację tego co się dzieje przeprowadzić można jedynie na ekranach LCD oraz emulatorach.
Na powyższym obrazie widać też 2 pionowe linie – to dwa ruchome duszki sterowane klawiszami LEFT/RIGHT z lub bez CONTROL. W przypadku emulatora Altirra z którego obraz pochodzi maksymalne i minimalne wartości przy których widać duszki to $22 i $DD.
Telewizor LCD Funai, sygnał S-Video (po włączeniu 240 linii brak obrazu)
Monochromatyczny monitor kineskopowy Philips, sygnał Composite Video, w trybie 240 linii widać obraz tworzony poniżej i powyżej ramki oraz pole tworzone na wysokości ramki po lewej stronie:
Monitor LCD Samsung, sygnał RGB z interfejsu Sophia2:
Wniosek: na monitorach i telewizorach umożliwiających wyświetlenie (np. poprzez regulację obrazu) niewidocznych obszarów ekranu można zobaczyć na tle ramki treść ekranu Antic-a o szerokości 356 pikseli. Wysokość obrazu Antica to 240 linii, dzięki specjalnej technice jest możliwe kontrolowanie procesu który w standardowych warunkach powoduje zerwanie synchronizacji.
Inaczej ma się sprawa z duszkami, ale o tym kiedy indziej.
Biblioteka: