Синхрогенератор. Схемотехника, которая формирует все необходимые сигналы для построения изображения, в т.ч. перебор адресов ячеек экранной области в нужной последовательности.
Всё дело в том, что в отличие от телевизора, где можно подать сигнал плюс-минус километр и, если что, подкрутить отвёрткой, в VGA всё очень строго. Если не попадаем в стандарт VGA, то просто получаем "out of range".
Также, в отличие от ТВ, у VGA т.н. прогрессивная развёртка, т.е. принципиально иначе строится изображение.
Далее. Единственный подходящий режим с "кратным" пиксельклоком и приемлемыми размерами: 800х600 пикселей и кадровой 60 Гц. Всё! Остальные режимы "кривые", в том смысле, что клок там требуется на частотах некратных Орионовскими 2.5, 5, 10 МГц.
В 320х200 экран Ориона не влезает. В 640х480 если пиксель в пиксель, то очень неэффективно используется пространство, если удваивать пиксели, то опять же не влезает экран.
И только 800/2=400 на 600/2=300 как раз адекватно отобразит орионовские 384х256, с удваиванием пикселей по горизонтали и вертикали.
Родной пиксельклок режима 800х600@60 составляет 40 МГц. У нас задвоенные пиксели, значит достаточно 20 МГц. По вертикали просто дублируем строки. Итого один пиксель Ориона состоит из четырёх фактических VGA'шных.
В вышеупомянутом синхрогенераторе я цепочками ЛЭ из быстродействующих серий 74ACTххх подбирал нужные времянки сигналов! Повторюсь, SVGA - это не телевизор.
Я сперва сделал на асинхронных счётчиках, ничего не вышло. Пришлось использвать "непопсовые" счётчики, а в цепях V.Sync и H.Sync подбирать "паровозики" ЛЭ в качестве задержек.
К тому же сейчас проще купить 74xCT-серию, и в то же время остаёмся в рамках феньшуя и религии
Сложности возникают на этапе разруливания доступа ЦПУ и видеочасти. Но я упирался в 20-мегагерцовый процессор (имхо, если уж разрабатывать новодел, то на быстром Z80, а иначе и смысла нет).






Ответить с цитированием