Прерывания и функции BIOS в защищенном режиме

Тема в разделе "WASM.ZEN", создана пользователем _Explorer, 18 мар 2005.

  1. _Explorer

    _Explorer New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2005
    Сообщения:
    7
    Можно ли как-нибудь использовать прерывания и функции BIOS в защищенном 32-х разрядном режиме ? Желательно без режима виртуального 8086-го :)

    Хотя разрядность не проблема, это можно решить вызовом через шлюз. Но что, если функциям понадобится сделать дальний jmp или перезагрузить сегментный регистр ? Обработка идет уже совсем иначе, с использованием селекторов (хотя это только предположения, я точно не знаю, изменяют ли функции BIOS сегментные регистры или нет).
     
  2. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Функции bios не вызываются из PM без эмуляции.
     
  3. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Некоторые функции BIOS можно без проблем вызывать из 16-bit ProtMode, некоторые требуют трансляции параметров-указателей. Также есть полноценная поддержка 32-bit програм (например у APM, VESA, etc.)
     
  4. Hunter

    Hunter New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    47
    _BC_, а можно чуть поподробнее ? :)
     
  5. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Поподробнее... Можно почитать с DDK98 раздел V86-Mode Memory Manager. Там API translation, API mapping. Если есть интерес, можно распаковать vmm32.vxd, взять оттуда xlat.vxd (не помню точно название) и расковырять. Насчет стандартной поддержки 32битных программ BIOS'ом -- см. IntList ;)