hos/rmmod/vesa.inc

86 lines
1.3 KiB
PHP

; vesa.inc
; Author: Josh Holtrop
; Date: 01/04/05
; Modified: 01/04/05
; real mode vesa functions
; sample bochs VBE modes:
;0x000c6a86 <bogus+ 0>: 0x0100 0x0101 0x0102 0x0103 0x0105 0x0110 0x0111 0x0112
;0x000c6a96 <bogus+ 16>: 0x0113 0x0114 0x0115 0x0116 0x0117 0x0118 0x0142 0x0143
;0x000c6aa6 <bogus+ 32>: 0x0144 0x0146 0xffff
%define VESA_MODE_SUPPORTED 0x01
%define VESA_MODE_COLOR 0x08
%define VESA_MODE_GRAPHICS 0x10
%define VESA_MODE_LFB 0x80
vesa_return: dw 0
vesa_get_info: ;vesa_get_info(word seg, word offset)
push bp
mov bp, sp
pusha
push es
push ds
mov ax, [bp + 4]
mov es, ax
mov di, [bp + 6]
mov ax, 0x4F00
int 0x10
sub ax, 0x004F
mov [vesa_return], ax
pop ds
pop es
popa
pop bp
mov ax, [vesa_return]
ret
vesa_get_mode_info: ;vesa_get_info(word seg, word offset, word mode)
push bp
mov bp, sp
pusha
push es
push ds
mov ax, [bp + 4]
mov es, ax
mov di, [bp + 6]
mov cx, [bp + 8]
mov ax, 0x4F01
int 0x10
sub ax, 0x004F
mov [vesa_return], ax
pop ds
pop es
popa
pop bp
mov ax, [vesa_return]
ret
vesa_set_mode: ;vesa_set_mode(word mode)
push bp
mov bp, sp
pusha
push es
push ds
mov bx, [bp + 4]
mov ax, 0x4F02
int 0x10
sub ax, 0x004F
mov [vesa_return], ax
pop ds
pop es
popa
pop bp
mov ax, [vesa_return]
ret