Если вы просто хотите разместить что-то на экране и думаете, что вам действительно очень нравится проводка, вы можете стремиться к графической системе персонажей начала 1980-х годов. Если вы сможете выбрать время для RS-170A, вы даже сможете подать сигнал на запасной AV-вход на 50-дюймовом плазменном телевизоре и начать ретроспективно.
Некоторые ранние системы использовали свои 8-битные процессоры для непосредственного генерирования дисплея, например, 6507 в Atari 2600 и Z-80 в Timex Sinclair ZX-81. Вы можете даже сделать то же самое с современными микроконтроллерами. Преимущество этого способа в том, что аппаратное обеспечение простое, но программное обеспечение, как правило, должно быть на ассемблере, и оно очень требовательно, и результаты будут по-настоящему ошеломляющими. Возможно, 2600 использовали дополнительное аппаратное обеспечение, но у TIA не было большого количества FIFO, и 6502 (ну, действительно, 6507) должны были сбрасывать в него байты в реальном времени. В этом подходе нет стандартного режима видео; Каждое приложение, которое использует видео, должно быть тесно связано с необходимостью поддержания потока пикселей.
Если вы действительно хотите создать что-то из TTL, следующим уровнем сложности будет выбор текстового отображения на основе ROM. Это позволяет поместить любой, скажем, 256 символов в любой из, например, 40 столбцов и 25 позиций строк. Есть несколько способов сделать это.
Один из способов - сделать то, что сделал модель TRS80, которую я сделал. Группа из 74161 счетчиков с ассортиментом ворот генерировала видео-адрес; три 74157-х мультиплексируют 12-битный адрес ЦП с видео-адресом для подачи адреса в 2К статического ОЗУ. Данные ОЗУ буферизировались обратно в ЦП, но подавались без буферизации в качестве адреса в ПЗУ набора символов. Не было автобусного арбитража; если ЦП требовал видеопамяти, включалась видеосистема, что приводило к эффекту «снега». Адрес мультиплексированного видео был объединен с некоторыми строками из секции счетчика, чтобы округлить низкие адреса; вывод ПЗУ символов был сброшен в регистр сдвига 74166. Все это отделилось от кристалла 14,31818 МГц. При таком подходе у вас будет ровно один видеорежим, полностью реализованный на аппаратном уровне, например 40x25 или 64x16 и т. Д.,
Другой способ - собрать так называемую микросхему CRTC, такую как 6845. Они объединили большую часть логики счетчика и склеивания и предоставили процессору интерфейс управляющего регистра, чтобы вы могли перепрограммировать некоторые моменты времени. Такие системы можно сделать несколько более гибкими, например, вы можете получить 40x25 и 80x25 из одного и того же оборудования под контролем регистра. Если вы разбираетесь в тактовых частотах, вы можете позволить своему ЦП иметь свободный доступ к видеопамяти в течение одной половины часов, а генератор видеоадреса - в течение другой половины часов, что устраняет необходимость арбитража шины и устранение эффекта снега.
Однако, если вы хотите использовать реальные графические режимы, вы быстро обнаружите, что создавать собственные режимы проблематично. Первоначально Apple 2 управляла этим, но в этой системе было что-то вроде 110 MSI TTL-чипов, и даже при этом были некоторые забавные вещи, такие как нелинейное отображение видеобуфера на дисплей и крайне ограниченная цветовая палитра. , чтобы назвать два. И Воз считается общепризнанным, что имел подсказку. К тому времени, когда появился «2e», Apple уже включила видеосистему в специальный чип. Примерно в то же время C-64 обязан своими графическими возможностями специальным чипам.
Так что .. я бы сказал там о двух способах сделать это. Один из способов - достать ваше ведро старого TTL и стремиться к одноцветному текстовому дисплею 80x25; Другой способ - получить хорошую оценочную плату ПЛИС, выполнить все это на VHDL и начать с текстового дисплея 80x25.