Advertisement
Guest User

VESA.nasm

a guest
Jan 18th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; GDT Layout:
  2.  
  3. ; 00 - NULL
  4. ; 08 - 64 Code
  5. ; 10 - 64 Data
  6. ; 18 - 16 Code (0000 - FFFF)
  7. ; 20 - 16 Data (0000 - FFFF)
  8. ; 28 - 32 Code (Flat)
  9. ; 30 - 32 Data (Flat)
  10.  
  11. section .text
  12. bits 32
  13. global SVGA_INFO
  14. global SVGA_MODE_INFO
  15. global SVGA_SET_MODE
  16. global VBE_DC_CHECK
  17. global VBE_DC_EDID
  18.  
  19. SVGA_INFO:
  20.     pusha
  21.     mov eax, 0x4F00
  22.     mov edi, [esp + 36]
  23.     jmp WORD 0x18:DoVBECall
  24.  
  25. SVGA_MODE_INFO:
  26.     pusha
  27.     mov eax, 0x4F01
  28.     mov edi, [esp + 36]
  29.     mov ecx, [esp + 40]
  30.     jmp WORD 0x18:DoVBECall
  31.  
  32. SVGA_SET_MODE:
  33.     pusha
  34.     mov eax, 0x4F02
  35.     mov edi, [esp + 36]
  36.     mov ebx, [esp + 40]
  37.     jmp WORD 0x18:DoVBECall
  38.  
  39. VBE_DC_CHECK:
  40.     pusha
  41.     mov eax, 0x4F15
  42.     xor bl, bl
  43.     jmp WORD 0x18:DoVBECall
  44.  
  45. VBE_DC_EDID:
  46.     pusha
  47.     mov eax, 0x4F15
  48.     mov bl, 1
  49.     xor cx, cx
  50.     mov edi, [esp + 36]
  51.     jmp WORD 0x18:DoVBECall
  52.  
  53. Return:
  54.     mov dx, 0x30
  55.     mov ds, dx
  56.     mov es, dx
  57.     mov ss, dx
  58.     xor ax, 0x4F
  59.     mov [esp + 28], eax
  60.     popa
  61.     ret
  62.  
  63. bits 16
  64. DoVBECall:
  65.     mov dx, 0x20
  66.     mov ds, dx
  67.     mov es, dx
  68.     mov ss, dx
  69.     mov edx, cr0
  70.     and dl, 0xFE
  71.     mov cr0, edx
  72.     jmp 0:.CallVBE
  73.     .CallVBE:
  74.         xor dx, dx
  75.         mov ds, dx
  76.         mov es, dx
  77.         mov ss, dx
  78.         sti
  79.         int 0x10
  80.         cli
  81.         mov edx, cr0
  82.         or dl, 1
  83.         mov cr0, edx
  84.         jmp 0x28:Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement