Помощь - Поиск - Пользователи - Календарь
Полная версия: SVGA на Паскале
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Archvingel
Тут на одном форуме довольно давно видел описание способа включения на Паскале SVGA-режима (1024*768*8 бит) с помощью асм. Попробовал включить у себя - получилось. Но тут недавно поменял видюху, решил попробовать еще раз - а он не хочет, пишет "Video input out of range"и черный экран. Старая карта была Radeon 9600, новая - NVIDIA GeForce 6600. Видел вот здесь. Объясните, кто может, в чем косяк?
Altair
При инициализации SVGA, ты указываешь разрешение экрана, попробуй поставить разрешение меньше.
На компьютере у меня тоже SVGA в верхних режимах не "идет".
CMOS
Попробуй

Код
d:=InstallUserDriver('vesa',nil);{vesa.bgi кинь в /bin}
m:=4;
InitGraph(d,m,'');
Archvingel
Дело в том, что я хотел попробовать самостоятельно включить этот режим, то есть прямо на ассемблере. Хочется во-первых, понять как это происходит, а во-вторых, включить 32-битный режим, но для этого сперва должен заработать 8-битный. Я, собственно, потому и спросил, что хочется знать, почему раньше работал, а теперь - нет. Может, там ерунда какая-нибудь, две минуты возни...
Altair
А мое сообщение ты проигнорировал ?

ну тогда покажи, как ты инициализируешь видеорежим, и я перенесутему в соотв. раздел.
Archvingel
Я ж в первом сообщении дал ссылку blink.gif . Просто влом все сюда постить. http://faqs.org.ru/forum/viewtopic.php?p=9...226dd0f7a#94430 - здесь написано. Hазрешение в этом способе не указывается, только номер видеорежима, а уж комп сам разбирается.
Archon
Прерывание 10h видео-BIOS используется для управления дисплеем. Номер функции записывается перед вызовом команды INT 10h в регистр AH. Функции видео-BIOS зашиты в постоянную память видеоадаптера, и реализация их в разных адаптерах неодинакова.

Вобщем, для выбора расширенного видеорежима прерывание 10h нужно вызывать с содержимым регистра AX = 4F02h (номер функции) и кодом режима в регистре BX.

например для 1024x768x256 делаем так:

MOV AX, 4F02h
MOV BX, 105h ; <--вот это код режима
INT 10h

Коды режимов:
100h - 640x400x256
101h - 640x480x256
102h - 800x600x16
103h - 800x600x256
104h - 1024x768x16
105h - 1024x768x256
106h - 1280x1024x16
107h - 1280x1024x256
108h - 80x60, текстовый режим

Попробуй поставить видеорежим 103h или 101h, это и имел ввиду Altair.
Archvingel
Попробовал - начиная со 102h не работает, 100h и 101h - нормально
Archon
Ну что поделать? Карма... wink.gif
Romtek
Это проблемы драйверов видеокарты. Проверено.
Или обнови их или довольствуйся меньшим разрешением экрана.
SKVOZNJAK
Если видеорежим нужен под виндовс, можно попытаться довести до ума исходники с http://sdl4fp.sourceforge.net/ Натыкать в модули halt(1) и искать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.