VBE

Тема в разделе "WASM.OS.DEVEL", создана пользователем _evil, 26 сен 2007.

  1. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    Не могу установить частоту обновления экрана через VBE. Версия VBE у меня 2.0 . Все параметры перепробовал и через GTF разных версий считал – не работает, не пашет под Win и под MSDOS. Может кто-нибудь простенький пример кинет (желательно вместе с .com/.exe) или может ошибки подскажет.

    Код (Text):
    1.         format  MZ
    2.         heap    0
    3.         stack   8000h
    4. mm:
    5.        mov   ax,cs
    6.       ;mov   ax,0  тоже не помогло
    7.        mov   es,ax
    8.        lea   di,[param_CRT]
    9.  
    10.        mov ax,04f02h
    11.       ;mov bx,0100100100000101b
    12.        mov bx,0000100100000101b
    13.       ;mov bx,905h
    14.        int 10h       ; не работает
    15.  
    16.  
    17.                 mov   ax, 0a000h
    18.                 mov   es, ax
    19.                 mov   di, 0h
    20.                 mov   cx ,00ff0h
    21. print_t_p_r:
    22.                 mov   al,055h
    23.                 mov   [es:di],al
    24.                 inc   di
    25.                 loop   print_t_p_r
    26.  
    27.  
    28.  
    29.                 mov   AH,0  ; Call bios function "GET KEYSTROKE"
    30.                 int   16h
    31.  
    32.                 int   19h
    33. ret
    34.  
    35.  
    36. struc crtinfo{          ;  всё перебирал
    37. HorizontalTotal         dw   1312D
    38. HorizontalSyncStart     dw   1040D
    39. HorizontalSyncEnd       dw   1136D
    40. VerticalTotal           dw    800D
    41. VerticalSyncStart       dw    769D
    42. VerticalSyncEnd         dw    772D
    43. Flags                   db    01110b  ;все флаги перебирал
    44. PixelClock              dd 78750000D
    45. RefreshRate             dw    7500D
    46. Reserved                db    40 dup (0) ; remainder of ModelnfoBlock
    47. };
    48.  
    49. yyy:
    50.  param_CRT  crtinfo
     
  2. Ra_

    Ra_ New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    289
  3. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    В ней этот момент не рассмотрен, да и вообще в этой книге опечатки (D11 из регистра BX в книге "зарезервирован", а в RTFеме он используется для установки CRTS значений)

    http://ftp.bspu.unibel.by/pub/Programming/vbe3.pdf
    http://vesa.org/Store/buystandards.htm

    В RTFеме не сказано что этот бит он только для VBE 3.0
     
  4. Ra_

    Ra_ New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    289
  5. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    aL==4fh Function is supported
    aH==01h Function call failed


    He –He !!! A кому-нибудь помогали коды ошибок при работе с металлом !!! ??? !!!
    Это не Win API запускать!

    139c – на что намекаешь, цифры fasm нормально понимает и D, и B, и H сам проверял.
     
  6. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    _evil
    Смотрю в interrupt.lst и читаю
    Совсем другая функция получается (нет es:di)
     
  7. Ra_

    Ra_ New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    289
  8. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    _evil
    Блин, в старый interrupt.lst зашел.
     
  9. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    Что такое “interrupt.lst”

    4F03h – работает нормально, но если в bx добавь 11-й бит то 4F02h с ним уже не работает.

    Может у кого-нибудь осталась спецификация на VBE 2.0 а то на vesa.org только 3.0 ?
     
  10. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    _evil
    INTLIST of Ralf Braun. (Перечень всех прерываний со всеми выполняемыми функциями и еще кое-какая полезная информация).
    ЗЫ
    Может VBE 2.0 не поддерживает твой вариант вызова, а как раз тот, который я привел?
     
  11. Ra_

    Ra_ New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    289