From 4eefe2c313351dd185536d23218c47aeb4642fec Mon Sep 17 00:00:00 2001 From: Volker Ruppert Date: Fri, 18 Aug 2006 20:39:32 +0000 Subject: - 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 --- vbe.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/vbe.c b/vbe.c index 1462009..801c675 100644 --- a/vbe.c +++ b/vbe.c @@ -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 -- cgit v1.2.3