Адрес дальней аппаратной видео-процедуры в 16-разрядном досовом режиме выглядел так: C000:2A46(CS:IP) Как он будет выглядеть в 32-х разрядном(CS:EIP) защищённом режиме? Пробовал:С000:00002A46,0000:000C2A46 - ругается((
С INT 10 немножко по-другому, если конечно у вас современная видео-карта. ================================= Obtaining the Protected Mode Entry Point Starting with VBE/Core 3.0, all the VBE functions are optionally accessible from 16-bit and 32- bit protected mode applications and operating systems via a new ‘Protected Mode Entry Point’. The protected mode entry point defines a special location that can be used to directly call the VBE functions as 16-bit protected mode code. The application or OS does not call the BIOS code directly from protected mode, but first makes a copy of the BIOS image in a writeable section of memory and then calls the code within this relocated memory block. The entry point is located within a special ‘Protected Mode Information Block’, which will be located somewhere within the first 32Kb of the BIOS image (if this information block is not found, then the BIOS does not support this new interface). ============================ У меня в NTVDM BIOS действительно в C000:0000 и VESA через INT 10 не работает. В самой системе ( WIN2000 SP3) при наличии SoftICE 4.27 video-BIOS уже видимо скопирован в 0008:BB2B5000 , т.к. с 0008:С0000000 - лажа. Найти у себя его вы можете по сигнатурам "VGA" и "PMID" - они почти друг за другом идут. И уже 3-й раз повторюсь : это все взято из http://www.vesa.org/vbe3.pdf Официально(!) открытая часть стандарта VESA 3.0
Насколько понимаю, если это не в ВИН2000, тогда ssss:C0002a46 , где ssss - селектор. режимы знаю слабо, поэтому про селектор смотри доки или спроси других. Но просто эта процедура должна уметь работать в режиме 32!
Короче, не знал что такое может быть.. Нахожу точку 32-х разрядную входа(всё не хухры-мухры,а по скачаной документации)с помощью ф-ии ax=4F0Ah.Из неё выхожу на адрес переключения страниц, который ведёт в сплошные нули..Читаю в документации, что в некоторых VBE-3(а у меня именно VBE-3) 32-х разрядной точки входа нет,так как на ранних этапах её в VBE-3 предполагался вывод только через линейный кадровый буфер(LFB).Фиг с ним,с помощью ф-ии 4F00h смотрю, поддерживается ли LFB в этой видеокарте - нифига не поддерживается!Я не путаю, всё остальное там есть, например производитель "Intel Corporation",видеокарта "Intel(R) 815 Chipset.Hardware Version 0.0".Как делать программу,если видеокарты могут иметь или не иметь 32-х разр. точку входа, иметь или не иметь LFB?По-моему это просто разгильдяйство. Выход по-моему один.Брать 16-разрядную точку входа, с помощью отладчика переписать на бумажку байты этой функции, адаптировать под 32 разряда,переписать в свой модуль и обращаться уже к ней.С каждым компом, на котором другая видеокарта придётся делать тоже самое
mercury2004 поделись информацией, желательно с текстами программ, как тебе удалось вызвать INT10. адрес valterg#inbox.ru Заранее гранд мерси.