Цитата Сообщение от Error404 Посмотреть сообщение
Т.е. в памяти из целого байта атрибутов заняты только 5 бит? И три свободно. А Мега читает с хоста и по запросу ДМА от ВГ75 выставляет на ШД "Мега<->ВГ75" все 8 битов.
Насколько сложно аппаратно определить что в данный момент читается ВГхой из Меги - символ или атрибуты? И если не сложно, то и защелкивать в момент чтения атрибутов "потерянные" ВГхой 3 бита с выводов Меги в доп.регистр. Вот и получим или дополнительные градации цвета (т.е. RGB уже по 2 бита на сигнал, т.е. 64 цвета) или цветность для фона (8 цветов букв + 8цветов фона), причем для каждой буквы. Красота!
Причем если поставить 1533ИР38 (два 4бит регистра в одном корпусе вместо одного 8бит) вместо U19 (старшие адреса), то и лишний корпус регистра можно съэкономить.
Мега всегда знает, что вычитывает ВГ75. Мега никогда не знает, что в текущий момент выводит ВГ75. Ибо ВГ75 читает наперед, так чтоб с запасом, стремясь получить не менее одной строки символов в запасе. Да и формат байта атрибутов строго оговорен в документации на ВГ75, нет там ничего лишнего.
Цитата Сообщение от Error404 Посмотреть сообщение
Идеологически понятно, но схемотехнически получается громоздко. Тогда предлагаю предусмотреть возможность "секционированной" ПЗУ знакогенератора - несколько блоков, которые выбираются регистром (например, замапленным на неиспользуемые ячейки из 4к видеобуфера) чтобы "хотелки к загружаемым данным" изначально прошить в ПЗУ. Один хрен ставить ПЗУ 2764 не имеет смысла - их даже на помойках сейчас уже не найти, а к примеру W27c512 пока продается, стоит копейки, она в таком же корпусе DIP28 и 64к вместо 8к. Т.е. все равно при сборке поставим более емкую ПЗУ с "занулеными" старшими адресами. А так, в первом блоке можно прошить собственно знакогенератор, во втором - примитивы для рисования, далее каждый по желанию: фонты, логотипы, что душа пожелает. Записал в этот регистр/ячейку 0 (или по Сбросу) - получи текстовый режим, записал 1 - чанковая графика, 2 - еще один "более другой фонт", и т.д. ...
Аппаратно это лучше сделать в Меге (ибо корпусов 1533 и так уже перебор): значения регистра она прочитает от Хоста аналогично прочим данным и соответствующе (увидев по значению адреса) выставит одну/две/три/... из своих свободных ножек в 0/1, эти ножки завести на старшие разряды ПЗУ.
Громоздкого там ничего нет. Меня остановило совсем другое. Рассчеты показывают, что 640х400 - тяжеловато для большинства 8-ми битных систем, именно поэтому я графику пока не трогаю. Регистры палитры тоже потом. Пускай конструкция будет простой. А вот переключалку страниц ЗГ - это можно хоть сейчас, можно кучку шрифтов зашить

- - - Добавлено - - -

Немного поразмыслив, пришел к выводу что буфер атрибутов можно построить в обход ВГ75. Синхронизировать работу можно по сигналам HRTC и CCLK.
Смысл в том что по аналогии с ВГ75 придется построить свои 2 буфера по 80 байт, символы выводить в ВГ75, а атрибуты в свой буфер. Счет начинать от конца HRTC, атрибуты из буфера выводить по CCLK. Переключалка буферов должна начинать считать от конца VRTC. Как только поднялась DRQ и выдалось 80 байт в ВГ75 и 80 байт в атрибуты, переключаем буфер. Под переключалкой я подразумеваю переключение счетчика адресов буфера. При записи от меги, счетчик адресов тактируется сигналом WR. А при чтении сигналом CCLK от видео генератора.

- - - Добавлено - - -

в итоге один буфер читается, один пишется, потом они меняются.
И снова я прихожу к мысли, что ВГ75 как бы становится лишней. Поэтому лучше пускай работает, на сколько хватает ее возможностей.