· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Адресация в АСМ - торможу...

Посл.отвђт Сообщенiе


Дата: Окт 16, 2004 12:16:20

Адрес дальней аппаратной видео-процедуры в 16-разрядном досовом режиме выглядел так:
C000:2A46(CS:IP)
Как он будет выглядеть в 32-х разрядном(CS:EIP) защищённом режиме?
Пробовал:С000:00002A46,0000:000C2A46 - ругается((


Дата: Окт 16, 2004 12:27:46

зайди на sasm!


Дата: Окт 16, 2004 14:48:09

Сори, что есть sasm?


Дата: Окт 16, 2004 20:02:10

Лучше Фроловых почитай.


Дата: Окт 16, 2004 21:47:30


Дата: Окт 17, 2004 14:42:32

С 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


Дата: Окт 18, 2004 15:12:26

„Пробовал:С000:00002A46,0000:000C2A46 - ругается((“

Насколько понимаю, если это не в ВИН2000, тогда
ssss:C0002a46 , где ssss - селектор.
режимы знаю слабо, поэтому про селектор
смотри доки или спроси других.
Но просто эта процедура должна уметь работать
в режиме 32!


Дата: Окт 22, 2004 18:48:01

Короче, не знал что такое может быть..
Нахожу точку 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 разряда,переписать в свой модуль и обращаться уже к ней.С каждым компом, на котором другая видеокарта придётся делать тоже самое


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.104