Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; GDT Layout:
- ; 00 - NULL
- ; 08 - 64 Code
- ; 10 - 64 Data
- ; 18 - 16 Code (0000 - FFFF)
- ; 20 - 16 Data (0000 - FFFF)
- ; 28 - 32 Code (Flat)
- ; 30 - 32 Data (Flat)
- section .text
- bits 32
- global SVGA_INFO
- global SVGA_MODE_INFO
- global SVGA_SET_MODE
- global VBE_DC_CHECK
- global VBE_DC_EDID
- SVGA_INFO:
- pusha
- mov eax, 0x4F00
- mov edi, [esp + 36]
- jmp WORD 0x18:DoVBECall
- SVGA_MODE_INFO:
- pusha
- mov eax, 0x4F01
- mov edi, [esp + 36]
- mov ecx, [esp + 40]
- jmp WORD 0x18:DoVBECall
- SVGA_SET_MODE:
- pusha
- mov eax, 0x4F02
- mov edi, [esp + 36]
- mov ebx, [esp + 40]
- jmp WORD 0x18:DoVBECall
- VBE_DC_CHECK:
- pusha
- mov eax, 0x4F15
- xor bl, bl
- jmp WORD 0x18:DoVBECall
- VBE_DC_EDID:
- pusha
- mov eax, 0x4F15
- mov bl, 1
- xor cx, cx
- mov edi, [esp + 36]
- jmp WORD 0x18:DoVBECall
- Return:
- mov dx, 0x30
- mov ds, dx
- mov es, dx
- mov ss, dx
- xor ax, 0x4F
- mov [esp + 28], eax
- popa
- ret
- bits 16
- DoVBECall:
- mov dx, 0x20
- mov ds, dx
- mov es, dx
- mov ss, dx
- mov edx, cr0
- and dl, 0xFE
- mov cr0, edx
- jmp 0:.CallVBE
- .CallVBE:
- xor dx, dx
- mov ds, dx
- mov es, dx
- mov ss, dx
- sti
- int 0x10
- cli
- mov edx, cr0
- or dl, 1
- mov cr0, edx
- jmp 0x28:Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement