@Simius: Dwa pytanka:
1. Dokumentacja mówi, że po uaktywnieniu banku rejestrów Sofii licznik palety jest zerowany.
Mówi też, że ostatnie 768 bajtów jest nieużywane.
Mówi też że system domyślnie (rozumiem że po resecie układu) uaktywnia paletę 0.
Czy to oznacza, że licznik 0 wskazuje na paletę 1? Palety są ułożone w kolejności rosnącej w pamięci?
Palety programowane ułożone są w pamięci w kolejności rosnącej. Paleta 0 (default) nie rezyduje w pamięci. Jest tworzona przez logikę i stan rejestrów PAL3..0 = "0000" podłącza ją zamiast pamięci. Ponieważ jednak pamięć palet jest ładowana od adresu 0, a pierwsza ładowalna paleta ma nr 1, po drodze między rejestrem PAL3..0 a pamięcią, jest sumator, który dodaje $0F do zawartości rejestru, przez co paleta nr 1 wypada w pamięci od adresu 0. W ten sposób ostatnia paleta, o numerze 15, kończy się pod adresem $2CFF i obszar $2D00...$2FFF pozostaje nieużywany. Choć oczywiście można tam coś wpisać i licznik przekręci się po przekroczeniu $2FFF. Lepiej tak, niż wysyłać na początku na pusto 768 bajtów.
Rejestr PALDATA ($D01F) jest write-only - nie mógłbyś go zrobić do odczytu? Ja rozumiem że tam są dane dla YPbPr, ale w ten sposób można byłoby zrobić przynajmniej jakiś zrzut palety i/lub ominąć paletę i zaprogramować tylko tą, którą chcę. A potem sobie ją aktywować tylko.
Nie przyszło mi nawet do głowy, że ktoś chciałby zrobić coś takiego. Zresztą prawdopodobnie i tak by się nie udało z powodu braku zasobów. I tak trzeba było dociskać kolanem, żeby zmieściło się to, co jest. Zamierzenie było takie, żeby użytkownik ładował sobie na początku wszystkie potrzebne palety i potem już tylko sobie wybierał według bieżącej potrzeby. 16 palet po 256 kolorów to razem 4096. Za mało?
2. Czy da się rozpoznać tę pierwszą partię która ma 24-bitowe wpisy w palecie? REV=0 czy co?
Da się. Mają niebieską soldermaskę, a nie zieloną i układ 10M04 a nie 10M02, jak pozostałe.
Edit: Albo wybranie palety w PRIOR mogło by ustawiać wskaźnik na jej początek.
Mogłoby, ale to bardziej skomplikowane układowo niż ustawienie jednego bitu, a celowość wątpliwa. W każdej chwili możesz sobie przecież kłapnąć tym bitem i wyzerować licznik.
Edit 2: A może nie są w YPbPr bo przecież jest też tryb RGB (czyli konwersja odbywałaby się w locie przy wybraniu YPbPr). To tym bardziej poprosiłbym o możliwość odczytu.
Nie ma oddzielnych palet YPbPr. Konwersja RGB do YPbPr jest wykonywana arytmetycznie. Jak pisałem wyżej, raczej bym na to nie liczył.
Reszta później.