I found this on the BIOS old code, but doesnt seem worked onmy system. Could it be each BIOS installed on each computers had a different code?
VBE_DISPI_INDEX_ID equ 0
VBE_DISPI_INDEX_XRES equ 1
VBE_DISPI_INDEX_YRES equ 2
VBE_DISPI_INDEX_BPP equ 3
VBE_DISPI_INDEX_ENABLE equ 4
VBE_DISPI_INDEX_BANK equ 5
VBE_DISPI_INDEX_VIRT_WIDTH equ 6
VBE_DISPI_INDEX_VIRT_HEIGHT equ 7
VBE_DISPI_INDEX_X_OFFSET equ 8
VBE_DISPI_INDEX_Y_OFFSET equ 9
VBE_DISPI_INDEX_NB equ 0xa
VBE_DISPI_ID0 equ 0xB0C0
VBE_DISPI_ID1 equ 0xB0C1
VBE_DISPI_ID2 equ 0xB0C2
VBE_DISPI_DISABLED equ 000h
VBE_DISPI_ENABLED equ 001h
VBE_DISPI_LFB_ENABLED equ 040h
VBE_DISPI_NOCLEARMEM equ 080h
fVBE_OutW proc index:dword,val:dword
mov eax,index
mov edx,01ceh
out dx,ax
mov eax,val
mov edx,01d0h
out dx,ax
ret
fVBE_OutW endp
fvga_vbe_set_mode proc _width:dword,height:dword,depth:dword
mov al,0
mov edx,03c0h
out dx,al
invoke fVBE_OutW,VBE_DISPI_INDEX_ENABLE,VBE_DISPI_DISABLED
invoke fVBE_OutW,VBE_DISPI_INDEX_X_OFFSET, 0;
invoke fVBE_OutW,VBE_DISPI_INDEX_Y_OFFSET, 0;
invoke fVBE_OutW,VBE_DISPI_INDEX_XRES, _width;
invoke fVBE_OutW,VBE_DISPI_INDEX_YRES, height;
invoke fVBE_OutW,VBE_DISPI_INDEX_BPP, depth;
invoke fVBE_OutW,VBE_DISPI_INDEX_ENABLE,VBE_DISPI_ENABLED
mov al,0
mov edx,03c0h
out dx,al
mov al,20h
mov edx,03c0h
out dx,al
ret
fvga_vbe_set_mode endp