VGA на МЭСМ-6
May. 27th, 2019 11:17 pmСделал простенький VGA 320х240 контроллер с 4-мя битовыми плоскостями:

Управляется через три регистра:
77737 - регистр защелки адреса с автоинкрементом по записи в DATA-регистр.
77736 - регистр выбора битовой плоскости, 0 - белый, 1,2 и 3 соотв R G B.
77730 - DATA-регистр запись в который пишет в память контроллера по адресу защелки адреса, увеличивая её на единицу. Учитываются только младшие 8-бит аккумулятора. Т.е. прокрашивается сразу 8 пикселей битовой плоскости.
Конечно, контроллеру нужны режимы наложения битов по плоскостям, но это на потом когда будет SDRAM (её скорости надеюсь хватит чтобы работал и процессор и реальное разрешение хотябы 640х480 12бит на пиксель при 60fps)
Внутри МЭСМ-6 работает небольшой, написанный на БЕМШ, UART-приемник упрощенных пакетов похожих на Intel-HEX:
:LLAAAATTDD
где LL размер пакета (не больше 6 байт)
AAAA - адрес куда записать
TT - всегда 00
DD - данные от 1 до 6 байт.
"Система-франкенштейн" управляется с ПК скриптом на python который шлет в МЭСМ по COM-порту пакеты с адресами портов VGA контроллера.
На скорости 9600 бод, с учетом overhead пакетов, уходит 2 минуты на одну битовую плоскость.
С использованием 4-х плоскостей приходится вгружать на 115200.


Управляется через три регистра:
77737 - регистр защелки адреса с автоинкрементом по записи в DATA-регистр.
77736 - регистр выбора битовой плоскости, 0 - белый, 1,2 и 3 соотв R G B.
77730 - DATA-регистр запись в который пишет в память контроллера по адресу защелки адреса, увеличивая её на единицу. Учитываются только младшие 8-бит аккумулятора. Т.е. прокрашивается сразу 8 пикселей битовой плоскости.
Конечно, контроллеру нужны режимы наложения битов по плоскостям, но это на потом когда будет SDRAM (её скорости надеюсь хватит чтобы работал и процессор и реальное разрешение хотябы 640х480 12бит на пиксель при 60fps)
Внутри МЭСМ-6 работает небольшой, написанный на БЕМШ, UART-приемник упрощенных пакетов похожих на Intel-HEX:
:LLAAAATTDD
где LL размер пакета (не больше 6 байт)
AAAA - адрес куда записать
TT - всегда 00
DD - данные от 1 до 6 байт.
"Система-франкенштейн" управляется с ПК скриптом на python который шлет в МЭСМ по COM-порту пакеты с адресами портов VGA контроллера.
На скорости 9600 бод, с учетом overhead пакетов, уходит 2 минуты на одну битовую плоскость.
С использованием 4-х плоскостей приходится вгружать на 115200.
