diff options
author | Volker Ruppert <info@vruppert.de> | 2006-08-18 20:39:32 +0000 |
---|---|---|
committer | Volker Ruppert <info@vruppert.de> | 2006-08-18 20:39:32 +0000 |
commit | 4eefe2c313351dd185536d23218c47aeb4642fec (patch) | |
tree | 9b4c0aaf0f8fa37ad229e7499c71301cd188e54a | |
parent | 5dd7ac73163039572829dca8b7a7eedced0af1bf (diff) | |
download | qemu-vgabios-4eefe2c313351dd185536d23218c47aeb4642fec.tar.gz |
- improved VGA compatible setup for >=8bpp VBE modes (CRTC doubleword mode and
GRDC shift register setting added)
- now using symbolic name for CRTC address register
-rw-r--r-- | vbe.c | 28 |
1 files changed, 21 insertions, 7 deletions
@@ -473,10 +473,10 @@ vga_set_virt_width: call dispi_get_bpp cmp al, #0x04 ja set_width_svga - shr bx, #2 + shr bx, #1 set_width_svga: - shr bx, #2 - mov dx, #0x03d4 + shr bx, #3 + mov dx, # VGAREG_VGA_CRTC_ADDRESS mov ah, bl mov al, #0x13 out dx, ax @@ -529,10 +529,9 @@ _vga_compat_setup: mov dx, # VBE_DISPI_IOPORT_DATA in ax, dx push ax - mov dx, #0x03d4 + mov dx, # VGAREG_VGA_CRTC_ADDRESS mov ax, #0x0011 out dx, ax - mov dx, #0x03d4 pop ax push ax shr ax, #3 @@ -551,7 +550,7 @@ _vga_compat_setup: in ax, dx dec ax push ax - mov dx, #0x03d4 + mov dx, # VGAREG_VGA_CRTC_ADDRESS mov ah, al mov al, #0x12 out dx, ax @@ -572,7 +571,7 @@ bit9_clear: out dx, al ; other settings - mov dx, #0x03d4 + mov dx, # VGAREG_VGA_CRTC_ADDRESS mov ax, #0x0009 out dx, ax mov dx, # VGAREG_ACTL_RESET @@ -602,6 +601,13 @@ bit9_clear: in ax, dx cmp al, #0x08 jb vga_compat_end + mov dx, # VGAREG_VGA_CRTC_ADDRESS + mov al, #0x14 + out dx, al + mov dx, # VGAREG_VGA_CRTC_DATA + in al, dx + or al, #0x40 + out dx, al mov dx, # VGAREG_ACTL_RESET in al, dx mov dx, # VGAREG_ACTL_ADDRESS @@ -621,6 +627,14 @@ bit9_clear: in al, dx or al, #0x08 out dx, al + mov dx, # VGAREG_GRDC_ADDRESS + mov al, #0x05 + out dx, al + mov dx, # VGAREG_GRDC_DATA + in al, dx + and al, #0x9f + or al, #0x40 + out dx, al vga_compat_end: pop dx |