VESA 3.0
-
Ares
RE:VESA 3.0
Well my code is kind of big
. Its a kernel. I will write how do I call the initalization func from protected mode. Its a 16-bit code witch is an INT 50 called from 32-bit code:
[BITS 16]
_INT50:
Mov word [Gs:5121+(_INT49End - _INT49)+_Ss], Ss
Mov dword [Gs:5121+(_INT49End - _INT49)+_ESP], ESP
Mov Ss, word [Gs:5113]
Mov Sp, 1024
_CALL DB 9AH
OFFSET DW 0 ; OFFSET to the INITALIZATION func taken from the PMID block
SELEKTOR DW 0 ; The 16-bit code selector points to the VB
Mov Ss, word [Gs:5121+(_INT49End - _INT49)+_Ss]
Mov ESP, dword [Gs:5121+(_INT49End - _INT49)+_ESP]
IRETD
_Ss DW 0
_ESP DD 0
_INT50End:
[BITS 16]
_INT50:
Mov word [Gs:5121+(_INT49End - _INT49)+_Ss], Ss
Mov dword [Gs:5121+(_INT49End - _INT49)+_ESP], ESP
Mov Ss, word [Gs:5113]
Mov Sp, 1024
_CALL DB 9AH
OFFSET DW 0 ; OFFSET to the INITALIZATION func taken from the PMID block
SELEKTOR DW 0 ; The 16-bit code selector points to the VB
Mov Ss, word [Gs:5121+(_INT49End - _INT49)+_Ss]
Mov ESP, dword [Gs:5121+(_INT49End - _INT49)+_ESP]
IRETD
_Ss DW 0
_ESP DD 0
_INT50End: