Jak co jakiś czas mi się zdarza, znów którejś nocy nie mogłe m spać i zacząłem bezsensownie kombinować
Tym razem nasżły mnie myśli o reprezentacji kolorów w Spectrum, a właściwie o jej redundantności, przez którą komputer traci jeden bit informacji na jedno pole atrybutów. I nie chodzi mi o bit FLASH, który, owszem - uważam za bezużyteczny, więc tak naprawdę tracimy 2 bity, a nawet jeszcze ułamek trzeciego. Przy 8 bitach to dość wysoka rozrzutność. Ten ułamek bita to oczywiście czarny + BRIGHT, który jest nadal czarny, zamiast szary.
Ale po kolei. Na czym moim zadniem polega ta redundancja? Otóż narysowanie czarnej kropki na białym tle można uzyskać na dwa sposoby: czarny INK i biały PAPER, albo też biały INK i czarny PAPER, i odwracamy wszystkie bity "treści". To mnie naprowadziło na ślad tego marnotrawstwa... Co do zasady, odcienie INK mają taką samą paletę barw, co odcienie PAPER. A mogłyby mieć inne, co dawałoby 31 zamiast 15 kolorów (ech, ten zdublowany czarny...). Pozbywając się FLASH liczba wzrosłaby nawet do 63 kolorów, oczywiście z ograniczeniem, że w obrębie atrybutu dostępne są nadal tylko 2.
Jest oczywiście pewien minus - dostępne kombinacje INK i PAPER to już nie "każdy z każdym", bo byłyby to dwie oddzielne pule kolorów. Ale można by je tak zrównoważyć, by to zbytnio nie przeszkadzało - oczywiście biały i czarny byłyby w przeciwnych "drużynach".
Rozwiązanie kompatybilne dokładnie z niczym, oczywiście. Istniejące gry pewnie by dziwnie wyglądały w takim trybie
Ale grafiki w trybie timexowym wyglądałyby niesamowicie
No i implementacja w CPLD względnie prosta, dużo prostsza niż np. ULA-plus. Oczywiście potrzeba by było kilka pinów więcej, niż przy 15 kolorach, plus jakaś drabinka jako C/A.
No ale tylko tak sobie gdybam.