Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Sergeydan
Зарегистрирован: 17.06.2003 Сообщения: 2
|
Добавлено: Вт Июн 17 2003 14:26 Заголовок сообщения: Изменение разрешения монитора в MS-DOS |
|
|
Коллеги. Нет ли у кого функции на ассемблере выставляющее разрешение экрана 1024*768. |
|
Вернуться к началу |
|
|
sh
Зарегистрирован: 11.03.2002 Сообщения: 121
|
Добавлено: Вт Июн 17 2003 21:00 Заголовок сообщения: Re: Изменение разрешения монитора в MS-DOS |
|
|
mov ax,4f02h mov bx,105h int 10h
но гарантии нет что на твоей видюхе заработает. правильнее сначала проверить поддерживаемые SVGA режимы. к тому же тебе ещё придётся переключаться между банками если ты не в защищённом режиме собрался работать, а если в защищённом то можно работать через VBE опять же если видюха поддерживет. для VBE если не изменяет память к обычному номеру VESA режима нужно добавить 4000h |
|
Вернуться к началу |
|
|
Sergeydan
Зарегистрирован: 17.06.2003 Сообщения: 2
|
Добавлено: Ср Июн 18 2003 10:42 Заголовок сообщения: Re: Изменение разрешения монитора в MS-DOS |
|
|
Спасибо за помощь SH. Данный фрагмент я хочу "подшить" к программе написанной на древней версии C. Максимальный у этой версии режим 640*480+ 16 цветов. Если не в тягость - Поясни эти слова: к тому же тебе ещё придётся переключаться между банками если ты не в защищённом режиме собрался работать, а если в защищённом то можно работать через VBE опять же если видюха поддерживет. для VBE если не изменяет память к обычному номеру VESA режима нужно добавить 4000h. А если есть код - буду благодарен. |
|
Вернуться к началу |
|
|
sh
Зарегистрирован: 11.03.2002 Сообщения: 121
|
Добавлено: Ср Июн 18 2003 15:05 Заголовок сообщения: Re: Изменение разрешения монитора в MS-DOS |
|
|
ну дело тут в том что если ты работаешь с большими разрешениями, то требуется памяти больше 64кбайт, для твоего разрешения требуется 1024*768*1 = 786432 байт, а у доса стока нету, ты просто физически в реальном режиме не сможешь адресовать больше мега. поэтому часть памяти видюхи маппится в окно размером 64кбайта. если ты пишешь например в видео память по адресу 10000 (выводишь пиксель), то замаппин банк номер 0, если в память по адресу 100000 но соответственно банк номер 1 и т.д. Есть специальная функция у int 10h которая переключает банки. Т.е. вывод пикселя это следующие операции - расчёт адреса, вычисление номера банка, переключение банка, запись по адресу в пределах 64к (тоже надо вычислить). Если же ты работаешь в защищённом режиме, то можешь адресовать всю память сколько есть на компе, и поэтому тебе ничего переключать не надо пишешь без всяких переключений, но карта должна поддерживать плюс есть свои тонкости. у меня есть исходники как для VESA так и для VBE на ассемблере если очень надо могу выслать. |
|
Вернуться к началу |
|
|
|