Адресация в АСМ - торможу...

Тема в разделе "WASM.ASSEMBLER", создана пользователем mercury2004, 16 окт 2004.

  1. mercury2004

    mercury2004 New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2004
    Сообщения:
    3
    Адрес дальней аппаратной видео-процедуры в 16-разрядном досовом режиме выглядел так:

    C000:2A46(CS:IP)

    Как он будет выглядеть в 32-х разрядном(CS:EIP) защищённом режиме?

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

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    зайди на sasm!
     
  3. mercury2004

    mercury2004 New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2004
    Сообщения:
    3
    Сори, что есть sasm?
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Лучше Фроловых почитай.
     
  5. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    С 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
     
  7. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105




    Насколько понимаю, если это не в ВИН2000, тогда

    ssss:C0002a46 , где ssss - селектор.

    режимы знаю слабо, поэтому про селектор

    смотри доки или спроси других.

    Но просто эта процедура должна уметь работать

    в режиме 32!
     
  8. mercury2004

    mercury2004 New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2004
    Сообщения:
    3
    Короче, не знал что такое может быть..

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

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    mercury2004



    поделись информацией, желательно с текстами

    программ, как тебе удалось вызвать INT10.

    адрес valterg#inbox.ru

    Заранее гранд мерси.