Мануал выложить стоит.
Краткий мануал по программированию видеокарты на MC6845. v0.1 (c)Freddy 2020.
Прежде чем приступить к использованию данного изделия, рекомендую изучить назначение регистров видеоконтроллера MC6845.
Изделие представляет из себя законченную, самодостаточную видеокарту, рассчитанную на работу в текстовых режимах, укладывающихся в стандарты VGA для частоты пикселей 25.175МГц. Схемы синхронизации позволяют использовать видеорежимы 640х350@70Гц, 640x400@70Гц, 640x480@60Гц при выводе 16 цветов для фона (на одно знакоместо) и 16 цветов символа. При использовании шрифта 8х8 возможно получить текстовый режим 80х60 символов.
Аппаратные требования:
-4Кб в адресном пространстве памяти;
-16 адресов в пространстве портов ввода/вывода;
-шина управления как у процессоров Intel 8080 и 8086, т.е. с раздельными сигналами ~IOWR,~IORD,~MR, ~MW.
Системная шина видеокарты (видеошина) представляет собой конвейер с отложенной операцией чтения/записи и предназначена для изоляции видеопамяти от системной шины процессора и обеспечения прозрачного доступа к видеопамяти. Прозрачный доступ обеспечивается многократно избыточной производительностью видеошины (3Мгц) и не способностью многих устаревших процессоров дважды обращаться к видеопамяти быстрее чем время цикла видеошины (330нс). Для современных риск процессоров, драйвер вывода на дисплей должен включаться в обработчик прерывания системного таймера, настроенного соответствующим образом, чтобы обращения к видеоадаптеру не происходили чаще времени цикла видеошины. Видеошина не чувствительна к длине управляющих сигналов системной шины, минимальная ширина сигналов управления ограничена лишь примененной серией логических элементов. При чтении из видеопамяти следует помнить, что актуальные данные появятся в самом худшем случае не ранее чем через время цикла видеошины. Это не представляет неудобств. Следует использовать метод с первым холостым чтением, после которого с каждым последующим чтением, будут возвращаться актуальные данные предыдущего чтения.
Организация адресного пространства:
Видеокарта имеет на борту 16кб памяти, предназначенной для хранения кодов символов и их атрибутов. Со стороны системной шины доступ обеспечивается через 4кб окно, переключаемое битами 0,1 регистра конфигурации U30. Бит 7 этого регистра ответственен за переключение шрифта знакогенератора (в данном случае его высоты).
Джампером J1 выбирается стартовый адрес окна в адресном пространстве памяти, J2 - то же самое для портов ввода вывода.
Карта портов видеоадаптера:
XX+00 = индексный регистр видеоконтроллера
XX+01 = чтение/запись данных регистра видеоконтроллера
XX+02 = запись в регистр конфигурации
Формат видеопамяти:
Четные байты - коды символов, не четные байты - их атрибуты цвета.
Атрибут имеет следующее назначение бит:
7 6 5 4 3 2 1 0
BI BB,BG,BR,FI,FB,FG,FR
где биты 7 и 3 яркость фона и символа соответственно, а биты 6,5,4 и 2,1,0 - синий, зеленый, красный цвет фона и символа соответственно.
Пример инициализации:
Запускать буду для режима 80х25 символов с шрифтом 8х16 и большим мигающим с частотой 1/32VS курсорным блоком высотой на все знакоместо.
1. Нужно очистить всю видеопамять (пробел с белым цветом символа на черном фоне)
2.В регистры R0-R15 видеоконтроллера записываем строчку байт 99,80,82,12,27,1,25,25,0,0x0F,0b01100000,0x0F,0,0, 0,0.
Появится черный экран с курсором в левом верхнем углу.
3. Можно записывать коды символов и их атрибуты.
Положение курсора R14:R15 (H:L), стартовый адрес видеобуфера R12:R13 (H:L).
- - - Добавлено - - -
P.S устройство программно совместимо с MDA и текстовым режимом HGC при соответствующей переделке дешифрации адресов.