VirtualBox

Changeset 33850 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Nov 8, 2010 2:37:09 PM (14 years ago)
Author:
vboxsync
Message:

VGABIOS: Really wait for retrace when asked to do so.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/BIOS/vbe.c

    r33656 r33850  
    157157vesa_pm_set_display_start:
    158158  cmp  bl, #0x80
    159   je   vesa_pm_set_display_start1
     159  je   vesa_pm_set_display_start1_wait
    160160  cmp  bl, #0x00
    161161  je   vesa_pm_set_display_start1
    162162  mov  ax, #0x0100
    163163  ret
     164vesa_pm_set_display_start1_wait:
     165  push edx
     166  mov  dx, #0x03da
     167wnv_loop_32:
     168  in   al, dx
     169  test al, #8
     170  jnz  wnv_loop_32
     171wv_loop_32:
     172  in   al, dx
     173  test al, #8
     174  jz   wv_loop_32
     175  pop  edx
    164176vesa_pm_set_display_start1:
    165177; convert offset to (X, Y) coordinate
     
    263275#endif
    264276
     277;; Vertical retrace waiting
     278wait_vsync:
     279  push ax
     280  push dx
     281  mov  dx, #0x03da
     282wv_loop:
     283  in   al, dx
     284  test al, #8
     285  jz   wv_loop
     286  pop  dx
     287  pop  ax
     288  ret
     289
     290wait_not_vsync:
     291  push ax
     292  push dx
     293  mov  dx, #0x03da
     294wnv_loop:
     295  in   al, dx
     296  test al, #8
     297  jnz  wnv_loop
     298  pop  dx
     299  pop  ax
     300  ret
     301
    265302; DISPI ioport functions
    266303
     
    657694  mov  dx, # VGAREG_VGA_CRTC_ADDRESS
    658695  mov  ax, #0x0009
    659   out  dx, ax
     696  out  dx, al
     697  mov  dx, # VGAREG_VGA_CRTC_DATA
     698  in   al, dx
     699  and  al, #0x60    // clear double scan bit and cell height
     700  out  dx, al
     701  mov  dx, # VGAREG_VGA_CRTC_ADDRESS
    660702  mov  al, #0x17
    661703  out  dx, al
     
    16081650vbe_biosfn_set_get_display_start:
    16091651  cmp  bl, #0x80
    1610   je   set_display_start
     1652  je   set_display_start_wait
    16111653  cmp  bl, #0x01
    16121654  je   get_display_start
     
    16141656  mov  ax, #0x0100
    16151657  ret
     1658set_display_start_wait:
     1659  call wait_not_vsync
     1660  call wait_vsync
    16161661set_display_start:
    16171662  mov  ax, cx
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette