Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ SVGA на Паскале

Автор: Archvingel 19.05.2006 15:09

Тут на одном форуме довольно давно видел описание способа включения на Паскале SVGA-режима (1024*768*8 бит) с помощью асм. Попробовал включить у себя - получилось. Но тут недавно поменял видюху, решил попробовать еще раз - а он не хочет, пишет "Video input out of range"и черный экран. Старая карта была Radeon 9600, новая - NVIDIA GeForce 6600. Видел вот http://faqs.org.ru/forum/viewtopic.php?p=94430&sid=e865ce6b8c24fb96673e3ad226dd0f7a#94430. Объясните, кто может, в чем косяк?

Автор: Altair 20.05.2006 13:30

При инициализации SVGA, ты указываешь разрешение экрана, попробуй поставить разрешение меньше.
На компьютере у меня тоже SVGA в верхних режимах не "идет".

Автор: CMOS 20.05.2006 18:27

Попробуй

Код
d:=InstallUserDriver('vesa',nil);{vesa.bgi кинь в /bin}
m:=4;
InitGraph(d,m,'');

Автор: Archvingel 20.05.2006 18:53

Дело в том, что я хотел попробовать самостоятельно включить этот режим, то есть прямо на ассемблере. Хочется во-первых, понять как это происходит, а во-вторых, включить 32-битный режим, но для этого сперва должен заработать 8-битный. Я, собственно, потому и спросил, что хочется знать, почему раньше работал, а теперь - нет. Может, там ерунда какая-нибудь, две минуты возни...

Автор: Altair 21.05.2006 14:46

А мое сообщение ты проигнорировал ?

ну тогда покажи, как ты инициализируешь видеорежим, и я перенесутему в соотв. раздел.

Автор: Archvingel 21.05.2006 18:29

Я ж в первом сообщении дал ссылку blink.gif . Просто влом все сюда постить. http://faqs.org.ru/forum/viewtopic.php?p=94430&sid=e865ce6b8c24fb96673e3ad226dd0f7a#94430 - здесь написано. Hазрешение в этом способе не указывается, только номер видеорежима, а уж комп сам разбирается.

Автор: Archon 28.05.2006 5:15

Прерывание 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 28.05.2006 23:16

Попробовал - начиная со 102h не работает, 100h и 101h - нормально

Автор: Archon 29.05.2006 2:37

Ну что поделать? Карма... wink.gif

Автор: Romtek 5.06.2006 18:17

Это проблемы драйверов видеокарты. Проверено.
Или обнови их или довольствуйся меньшим разрешением экрана.

Автор: SKVOZNJAK 17.06.2006 22:37

Если видеорежим нужен под виндовс, можно попытаться довести до ума исходники с http://sdl4fp.sourceforge.net/ Натыкать в модули halt(1) и искать.