86 lines
1.3 KiB
PHP
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
|
|
|