:oops: Видеоконтроллер

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Andy
Сообщения: 238
Зарегистрирован: 17 фев 2004, 08:15
Откуда: Минск

Там вообще нет вектора на это прерывание(без комм.)
Почему нет и где нет? (Читаем пост "Как задавать вопросы в этом разделе").
Ведь режимы СВГА документированы, а регистры нет
Документированы и регистры, только сейчас программирование портов не в моде и документации почти нет. Документация Вам нужна на регистры 3С0-3CF,3B4-5,3D4-5,3DA (это основные - реально их намного больше). За режим, развертку и все такое вроде бы отвечают порты 3D4-3D5.
Кстати, если бы мне вдруг приперло посмотреть как биос выполняет int 10h - я бы его протрассировал. Ничто не мешает пройтись по нему под ДОС'ом в отладчике (в том же td.exe).
Andy
Сообщения: 238
Зарегистрирован: 17 фев 2004, 08:15
Откуда: Минск

А можно поподробнее как TD память трассировать? Он же просит на входе файл?
Так и надо файл. Берешь в программе и перехватываешь int 10h. Далее заполняешь регистры как при установке видеорежима БИОС'ом (ax == 4F02h для SVGA).

Код: Выделить всё

...
	mov	ax,3510h
	int	21h
	
	mov	word ptr old_10h,bx
	mov	word ptr old_10h+2,es
	
	mov	ax,4f02h
	mov	bx,116h // 1024х768х64к
	call	dword ptr old_10h
...
old_10h dd ?
Зпускаешь прогу в td.exe и степишь. После "call dword ptr old_10h" попадешь на оригинальный обработчик int 10h (если его никто не перехватил, в любом случает это не проблема) и трассируешь его, при это набираешься терпения и смотришь что он делает. Если опыт есть - то разберешься что в какие порты он отправляет чтобы установить конкретный видео режим.
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):режим 640х400х256
Ты серьёзно? Не 640*480, а именно 640*400? Ни разу не видел такого режима.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):Ты серьёзно? Не 640*480, а именно 640*400? Ни разу не видел такого режима.
Странно, очень популярный был режим в свое время. Преимущества его были в том, что кадр укладывался в 256Кб и число страниц для свопа было не меньше 2 даже на SVGA 512K
It's a long way to the top if you wanna rock'n'roll
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):Странно, очень популярный был режим в свое время. Преимущества его были в том, что кадр укладывался в 256Кб и число страниц для свопа было не меньше 2 даже на SVGA 512K
Тогда задумайся над отсутвием популярности у режима 320*240*16 (у тех кто имеет нормальные адаптеры). Кроме того, зачем вообще ставить свжа, если видорежим понижается по сравнению с его предшественником? А видеостраницы можно листать программно через память даже если адптер вообще не понимает, как их может быть больше одной. У меня их даже на спектруме было три в полные шесть колобайт, хотя адаптер вообще не умел их листать.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):А видеостраницы можно листать программно через память
В том то все и дело, что раньше память экономили и кадры формировали в видеопамяти на неактивной странице.
It's a long way to the top if you wanna rock'n'roll
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

А видеопамять можно не экономить? Её-то всегда меньше.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответить