x86128: (Default)
[personal profile] x86128 posting in [community profile] besm6
Сделал простенький 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.






Date: 2019-05-28 12:29 am (UTC)
From: [personal profile] mrupor
Выглядить очень прилично! С памятью должна лететь! Надо заняться тестами, тогда это будет "игрушка" еще та: лампочики + звук - будет полный улет.

Date: 2019-05-29 07:54 pm (UTC)
vak: (Default)
From: [personal profile] vak
Симпатично. Будет быстрее, если слать сразу строку пикселей одним пакетом. Но писать разбор пакета на БЕМШе малоприятно. Лучше бы на Паскале. Линкер уже как-то работает, осталось допилить паскалевскую библиотеку, и можно будет компилить и прошивать прямо в FPGA.

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 14th, 2026 06:50 pm
Powered by Dreamwidth Studios