home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Equalizer BBS
/
equalizer-bbs-collection_2004.zip
/
equalizer-bbs-collection
/
DEMOSCENE-STUFF
/
IBYTES02.ZIP
/
SRC_HI!.ZIP
/
SETVGA.ASM
< prev
next >
Wrap
Assembly Source File
|
1994-08-07
|
1KB
|
99 lines
ideal
p386
model large,pascal
codeseg VGA
; -- set_vga_mode ----------------------------------------------
;
public set_vga_mode
proc set_vga_mode far
mov ax,13h
int 10h
IF 0
mov dx,03C4h
mov ax,0604h
out dx,ax
mov dx,03CEh
mov ax,4005h
out dx,ax
mov al,06h
out dx,al
inc dx
in al,dx
and al,0FDh
out dx,al
mov dx,03D4h
mov al,14h
out dx,al
inc dx
in al,dx
and al,0BFh
out dx,al
dec dx
mov al,17h
out dx,al
inc dx
in al,dx
or al,40h
out dx,al
ELSE
mov dx,03C4h ;disable display
mov ax,2101h
out dx,ax
mov ax,0604h
out dx,ax
mov dx,03D4h
mov ax,0014h
out dx,ax
; mov ax,4009h
; out dx,ax
mov ax,0E317h
out dx,ax
ENDIF
mov dx,03CEh
mov ax,0ff08h
out dx,ax
mov dx,03C4h
mov ax,0f02h
out dx,ax
push es
mov ax,0A000h
mov es,ax
xor di,di
mov ax,di
mov cx,8000h
rep stosw
mov ax,0101h
out dx,ax
pop es
ret
endp set_vga_mode
; -- set_vga_page ----------------------------------------------
; AL-currpage, ret:AX-seg of next page
public set_vga_page
proc set_vga_page far
push dx
push ax
and al,3
mov ah,65536/4/256
mul ah
mov ah,al
mov al,12
mov dx,03d4h
out dx,ax
; mov ax,000dh
; out dx,ax
pop ax
inc ax
and ax,1 ; Two pages are enough almost for all
mov ah,65536/4/256
mul ah
shl ax,4
add ax,0a000h
pop dx
ret
endp set_vga_page
end