Siedzę ostatnio nad timingami coppera i ekranu i HRM miesza mi we łbie strasznie. Z tego wszystkiego narysowałem sobie łopatologiczną
grafikę "co gdzie kiedy" i pojawiły się tam pewne nieścisłości.
Pierwszą rzecz jaką znalazłem, to jeśli licznik używany przez WAITy copperowe ma rzeczywiście maksymalną pozycję $e2 (bo tak mówi HRM), to w loresowym ekranie brakuje 4 pikseli i poza tym liczba pozycji jest nieparzysta, więc coś nie tak. Zapewne ostatnią jego pozycją jest $e3, tyle że można się dostać tylko do $e2 ze względu na brak najniższego bitu pozycji poziomej w instrukcji WAIT. Tu raczej pytań nie mam, bardziej chciałbym się utwierdzić w swoim wniosku.
Druga sprawa. HRM mówi, że typowy ekran zaczyna się na poziomym pikselu $81, więc $00 powinno leżeć 128 pikseli w lewo od końca lewego overscanu. Tylko że ta pozycja byłaby w środku prawego overscanu. Tak ma być?
Trzecia sprawa to rejestr vhposr. Według moich starych komentarzy w kodzie ma on rozdzielczość 160 pozycji. Jeśli tak, to gdzie jest pozycja 0 na loresowym ekranie i ile poziomych pikseli zajmuje jedna pozycja? Gdzieś to info dawno temu widziałem, ale nie mogę teraz tego odkopać.
Potem jeszcze będę chciał na tę grafikę nanieść informacje o tym jak konfigurować rejestry ddfstrt i diwstrt, ale to w swoim czasie.