VESA в защищенном режиме

Тема в разделе "WASM.ASSEMBLER", создана пользователем Aloner, 11 апр 2008.

  1. reversecode

    reversecode Guest

    Публикаций:
    0
    поробуй watcom C++
    там с LFB точно проблем нет
    стаб уже в протекте
    юзаешь сразу через DPMI функции VESA
    одно но
    система должна поддерживать VBE
    если небудет
    ищи драйвер vbe....exe
    щас невспомню но поискать могу если надо
     
  2. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    А у тя есть сам расширитель от watcom C++?
     
  3. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    dos4gw - это расширитель ДОСа,который надо со своим obj компилить?
     
  4. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    То есть Свап файл делает?
     
  5. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    dos4gw, по крайней мере его бесплатная версия своп делать не умеет. Но 1гб физической памяти под досом выделит без проблем, ежели таковая имеется.
    а под виндами x64 оно не пашет :dntknw:(((( облом... :'-( хотя надо новые версии посмотреть - чем черт не шутит... а то у меня еще 11.0
     
  6. Ykidia

    Ykidia Member

    Публикаций:
    0
    Регистрация:
    21 июн 2005
    Сообщения:
    99
    Адрес:
    Санкт-Петербург
    Aloner
    Можно сделать так (у меня именно эта схема и пока она меня устраивает). Для компиляции в *.obj используешь TASM от Borland (а вернее, надо взять где-то здесь лежащий немного доведенный до ума как раз для 32-bit flat mode). Для получения *.exe используешь WLINK от Watcom. В качестве DOS-расширителя (чтобы работал без геморроя int 21h и прочие) рекомендую использовать DOS32/A и навсегда забыть о поделках навроде rtmres.exe.

    Теперь по шагам - как это делается у меня.

    1. Компилируем исходник. На выходе *.obj:
    tasm /l /t /m /ml /zi /p ikpuk.asm

    2. Получаем *.exe. На этом этапе формат у него не DOS, а OS/2 (так удобнее расширителю)
    wlink form os2 le op m op c f ikpuk.obj n ikpuk.exe

    3. Теперь нам надо а) встроить DOS-расширитель в получившееся хозяйство, так, чтобы расширитель первым получал управление, переводил проц в защищенный 32-битный режим и только потом передавал управление нашей программе; и б) преобразовать *.exe в удобоваримый формат, подходящий как для DOS, так и для DOS-окна в Windows. Это все делается одной утилитой из набора, прилагаемого к расширителю DOS32/A:
    sc /B /Q ikpuk.exe
    (для выполнения нужной нам функции в одном каталоге с этой утилитой необходимо поместить еще dos32a.exe и sb.exe из того же набора)

    Все готово. Первые же команды нашей программы уже выполняются в защищенном режиме, с наличием интерфейса DPMI (либо от ОС, либо от самого DOS32/A), а также некоторые функции int'ов уже транслируются расширителем напрямую, т.е. для их вызова нет необходимости в функции 0300h прерывания int 31h и прочем геморрое. Какие конкретно функции и прерывания транслируются, а какие нет - в документации на DOS32/A на его офсайте.
     
  7. Ykidia

    Ykidia Member

    Публикаций:
    0
    Регистрация:
    21 июн 2005
    Сообщения:
    99
    Адрес:
    Санкт-Петербург
    Я допустил неточность в названии - правильнее DOS/32A
     
  8. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    Ykidia
    Спасибо за хорошее, детальное описание!!!
    Буду пробовать. Если понравится работать под расширителем - переведу свой 3D Engine на DPMI.
     
  9. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Ты точно тот wlink используеш?
    Там для разных host OS разные линкеры есть.
    В папке BINW - для DOS, Win9x; в BINNT - для Win2k и выше.
    Как для OS/2 называется не знаю, не ставил.
    Это всё при условии что во время установки были выбраны галочками нужные host OS.
     
  10. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    Ra_
    Оригинальное сообщение :))
     
  11. Ykidia

    Ykidia Member

    Публикаций:
    0
    Регистрация:
    21 июн 2005
    Сообщения:
    99
    Адрес:
    Санкт-Петербург
    Раньше использовал wlink.exe для DOS, потом почему-то сменил на wlink.exe+wlink.dll (вроде скачал весь комплект с open watcom, установил и вытащил оттуда эти 2 файла) для WIN, работает и на W2k3 Server, и на W2k, и на WXP.
     
  12. sarin

    sarin Member

    Публикаций:
    0
    Регистрация:
    2 июн 2005
    Сообщения:
    30
    Попалось небольшое обсужение по теме:

    http://forum.sources.ru/index.php?showtopic=50471

    Думаю будет интересно с ИСТОРИЧЕСКОй точки зрения.
    К тому же там дается ссылочка на редкий документ по VBE/AF ( http://www.filesearch.ru/cgi-bin/s?q=vbeaf&t=f&d=&x=0&y=0 )
    Код (Text):
    1. VESA BIOS Extension/Accelerator Functions (VBE/AF)
    2. Version: 1.0P
    3. Document Revision: .12P
    впоследствии "выпавший" или "выделившийся" ? из стандарта VESA. Автор этого документа - Kendall Bennett, разработчик UniVESA/UniVBE/SDD/Snap.

    SNAP SDK, кстати тоже интересная вещица - http://www.scitechsoft.com/ftp/devel/
     
  13. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    sarin
    Нет,не выповший его просто не утвердиле как стандарт.
     
  14. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Кто-нибудь может сказать, lfb появилась в vb2 или vbe3?

    В vbe3 написано что если в системе более одно контроллера то его можно задействовать только через "VBE/AF Accelerator Functions specification". Интересно какой был смысл в непринятии этой спецификации, её обновления и по сей день и ссылки на нее из принятого стандарта если она вроде как непринята...
    Кто-нибудь занимался несколькими видео контроллерами?
     
  15. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    похоже что LFB появился все-таки в vbe2
     
  16. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    http://www.osp.ru/pcworld/1998/08/159480/

    http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/video/miniport/vbe/

    ищу VBE/DDC спецификацию, надо узнавать какое разрешение поддерживает монитор, но пока что-то я её не нашел...
     
  17. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    NoName
    LFB появиля в VBE2. Смотри стандарт

    Я нет. Но думаю там первый контроллер берет на сабя задачу совместимости.

    Стандарты на VESA.org доступны только регется надо. Раньше в свободном доступе были.

    DDC он же EDID
    На ftp выложил все что у меня по VESA есть. А да для работы с FTP нужна поддержка протокол IPv6. :P
    ftp://[2001:0:d5c7:a2d6:18ad:3939:c173:2f7]/
     
  18. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Это не обязательно. Есть тунели IPv4 IPv6 в висте подефолту через MS сервер кидают. Можно еще через интеловский настроить. В XP драйвер ставить.
     
  19. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Сделал cmd->ipv6 install
    ...
     
  20. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    ищу также E-EDID стандарт.