Вот постарался изобразить схему. Лаптя приличнаяНо до CGA я еще не дотянул, эта видяшка вполне еще приемлемая
Продолжу техническое описание.
Байт данных и байт атрибутов не должны содержать 1 в старшем разряде, а то ВГ75 воспримет это как управляющий код.
Вообще писать туда управляющие коды можно, для этого даже есть небольшой запас объема видео страницы, но это должно быть осмысленными действиями.
Байт атрибутов: 0 FB FG FR BB BG BR ZG, где F RGB-цвет символа, B RGB-цвет фона, ZG-старший бит кода символа.
Байт данных соответственно 0XXXXXXX, где X-младшие 7бит кода символа.
Байт конфигурационного регистра CP0000XXX, где CP- кодовая страница(0-CP866,1-KOI8R), X-в какую видеостраницу будут записываться данные.
Страница для отображения переключается в регистре стартового адреса DMA. Ну Вы поняличерез механизм склейки пересылаемых блоков.
А теперь расскажу как же оживить этого монстра.
Для начала в +FE0 записываем, к примеру 0, это кодировка CP866 и 0-вая видеостраница.
Чистим видестраницу, записывая с +000 до +FA0 в четные адреса 'пробел', в нечетные 70H.
Пора запустить видеогенератор:
0 --> +FE9
79 --> +FE8
0b10011000 --> +FE8
0FH --> +FE8
0b00001001 --> +FE8
0b11100000 --> +FE9
тут надо подождать не менее двух CCLK, а то ВГ75 не поймет че с нее хотят.
0b00100001 --> +FE9
и, о чудо, появится развертка и оно запустится!
В исходном состоянии после сброса, DMA на ручнике. Это очень хорошо для нас, можно с видюхи пока еще читать.
сбрасываем пятый бит регистра статуса ВГ75
<-- +FE9
а теперь ждем пока он снова установится, постоянно читая +FE9
установился, отлично. Начинаем быстро готовить DMA скармливать видеостраницу (пусть будет 0-вая):
80H --> +FF8 ; потомучто влом мне отдельно 3 канал программировать.
0 -- > +FF4 ;low start adr
0 -- > +FF4 ;high start adr
9FH -- > +FF5
8FH -- > +FF5 ; couter + mode
A4H --> +FF8 и еще раз автозагрузка и старт канала 2.
И усе! Оно готово, теперь в него можно писать. Чтение бессмысленно с этого момента.
vga4_2vg_dma.PDF




Но до CGA я еще не дотянул, эта видяшка вполне еще приемлемая
через механизм склейки пересылаемых блоков.
Ответить с цитированием