Судя по приведенной схеме, считывать цвет похоже нельзя, только на запись.
Вид для печати
Очевидно, что всякие ухищрения для чтения цвета пикселя не будут иметь толка, если всё это будет громоздко и медленно. У Специалиста и так медленный процессор, и при этом огромный массив экранного ОЗУ. При таком раскладе ни о каких цветных скролингах даже и думать не стоит!
Единственный приемлемый вариант, на мой взгляд, это каким-то образом иметь прямой доступ к памяти, которая хранит информацию о цветах. Я не знаю, как делать правильно, но, например, можно было бы подменять 12 килобайт видеоОЗУ 12-ю килобайтами ОЗУ, которое хранит информацию о цвете. Таким образом, понадобится только один раз рассчитать адрес для интересующей точки, чтобы понять включена она или нет, и после некоего переключения по тому же адресу можно будет узнать и её цвет. При этом у нас будет 4-х битный цвет.
Было бы ещё круто, чтобы можно было для этих 4-х бит палитру менять. И самое крутое, если бы можно было использовать 16 градаций серого даже на цветом мониторе:
https://pic.maxiol.com/images2/17440...4.24st986u.png
Данная картинка имеет стандартное разрешение 384*256, а каждые 8 горизонтальных пикселей имеют только две градации серого из 16-ти, то есть 4-х битная кодировка. 8 пикселей соответствуют одному байту цвета.
идея с защелкой выглядит более легкой в смысле программирования. читаем нужную ячейку экранном памяти - при этом в защелке аппаратно запоминается код цвета от этой ячейки. если нужно - можно его оттуда прочитать. в случае с подменой страницы - нужно переключить страницу, прочитать цвет, переключить страницу обратно.
в одной из своих поделок я использовал микросхему RAMDAC от древней VGA карты :)Цитата:
Было бы ещё круто, чтобы можно было для этих 4-х бит палитру менять. И самое крутое, если бы можно было использовать 16 градаций серого даже на цветом мониторе:
здесь придется городить что-то подобное, хоть и в упрощенном виде
Если это делается для FPGA и в нем достаточно места, то почему не поставить для обслуживания графической памяти что-то еще? Совместимый софт останется двухцветным.
В "Эрике" реализован 4-х цветный режим с палитрой в 256 цветов . И память расширена , в 2-х вариантах . Автрский и наш 4 окна по 16к , видео ОЗУ можно убрать в "тень" ,а страницы миксовать в произвольном порядке . Также я сделал поддержку 8-и цвета .
Если немного напрячься то можно сделать плату расширения памяти 4 по 16к и цвета как в МХ или ОРИОН для существующих компов .
Значений порта палитры 256, но резисторы R30-32, R34-35, R37-39 одинаковые, поэтому оттенков красного 3 (не 4), оттенков синего и зеленого по 4 (не по 8). Итого 3*4*4=48 цветов. На практике у резисторов конечно есть погрешности, поэтому мелких оттенков будет >48, но вряд ли на них можно ориентироваться, т.к. эти вариации очень маленькие и уникальные от экземпляра к экземпляру, а "базовых" все же 48.