| Index: clext.c |
| =================================================================== |
| RCS file: /sources/vgabios/vgabios/clext.c,v |
| retrieving revision 1.10 |
| diff -u -w -r1.10 clext.c |
| --- clext.c 25 Mar 2006 10:19:15 -0000 1.10 |
| +++ clext.c 14 May 2006 20:49:29 -0000 |
| @@ -544,6 +544,13 @@ |
| cirrus_set_video_mode_extended: |
| call cirrus_switch_mode |
| pop ax ;; mode |
| + test al, #0x80 |
| + jnz cirrus_set_video_mode_extended_1 |
| + push ax |
| + mov ax, #0xffff ; set to 0xff to keep win 2K happy |
| + call cirrus_clear_vram |
| + pop ax |
| +cirrus_set_video_mode_extended_1: |
| and al, #0x7f |
| |
| push ds |
| @@ -1011,6 +1018,13 @@ |
| jnz cirrus_vesa_02h_3 |
| call cirrus_enable_16k_granularity |
| cirrus_vesa_02h_3: |
| + test bx, #0x8000 ;; no clear |
| + jnz cirrus_vesa_02h_4 |
| + push ax |
| + xor ax,ax |
| + call cirrus_clear_vram |
| + pop ax |
| +cirrus_vesa_02h_4: |
| pop ax |
| push ds |
| #ifdef CIRRUS_VESA3_PMINFO |
| @@ -1479,6 +1493,38 @@ |
| pop bx |
| ret |
| |
| +cirrus_clear_vram: |
| + pusha |
| + push es |
| + mov si, ax |
| + |
| + call cirrus_enable_16k_granularity |
| + call cirrus_extbios_85h |
| + shl al, #2 |
| + mov bl, al |
| + xor ah,ah |
| +cirrus_clear_vram_1: |
| + mov al, #0x09 |
| + mov dx, #0x3ce |
| + out dx, ax |
| + push ax |
| + mov cx, #0xa000 |
| + mov es, cx |
| + xor di, di |
| + mov ax, si |
| + mov cx, #8192 |
| + cld |
| + rep |
| + stosw |
| + pop ax |
| + inc ah |
| + cmp ah, bl |
| + jne cirrus_clear_vram_1 |
| + |
| + pop es |
| + popa |
| + ret |
| + |
| cirrus_extbios_handlers: |
| ;; 80h |
| dw cirrus_extbios_80h |