Посмотрел картинки из игр на плоском мониторе с соотношением сторон 3х4 в WINDOWS в режиме 640х480@60Hz. Удвоенного размера (имитация размера точек в режимах 256х192 и 320х240) отлично, даже крупновато. Одинарного размера - тоже хорошо различимо. Если большую часть экрана занять статическими изображениями, параметрами, предметами и т.п., а действие будет происходить только на части экрана, то скорость может быть приемлемой.
В режиме 640х480 только затраты времени на сканер выше, так как точки надо выводить в два раза чаще. Тут может помочь буфер VGA. Буфер имеет две границы MAX и MIN. Пока к памяти нет обращений от Z80 и блиттера заполнять буфер по максмуму по 8 точек зараз. Частоту тактов SDRAM сделать 100 или 125 МГц. Это кратно частоте точек VGA 25 МГц в режиме 640х480 или 12.5 МГц в режиме 320х240. Как только объем данных в буфере становится MIN - приостанавливается блиттер и производится чтение данных в буфер VGA, пока не заполнится до MAX. Естественно, Z80 имеет больший приоритет при доступе к SDRAM.
Как только сделаем блиттер, перейдем к линиям. А точку сделать очень просто. Цвет мы записываем в регистр COLOR, координаты в регистры Y и X. А по координатам легко вычислить адрес точки на экране.Линия конечно обязательно.
(кружочки, прямоугольники - опционально)
Это конечно интересно, но нам важно не название карты, а наличие режима. Он должен быть на всех видеокартах с разным названием. Нет режима - название уже не важно. Хотя потом, может быть, добавим.Лучше чтоб строка (ноль в конце строки) читалась.
Каждый IN читает след байт.
типа "super video card ", 0
Потом, откуда-то, нужно прочитать "версия прошивки FPGA" и "версия платы". Это уже в байтами читается, не строкой.
В стандартном режиме INT использовался для начала построения изображения в ОЗУ экрана, запуска очередной ноты в музыке, опроса клавиатуры. Самое важное - определить время, когда можно начать рисовать на экране новый кадр игры, а музыке и клавиатуре не важно положение инта на экране.Насчет инта:
Кадровый инт генерить как обычно, не сдвигать никуда.
Но, чтобы можно было карте задать номера линий, на этих линиях карта будет генерить строчный инт.
Поэтому, если сделать выбор, в какой строке генерировать INT - этого будет достаточно. Если делать два или больше интов - то нужно уже будет генерировать разные вектры прерываний. Может когда-нибудь. Пока оставим один с выбором строки (для справки - их 525).





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