;-----------------------------------------------------------------------------;
;     THiS CODE iS FREEWARE. YOU MAY USE iT iN YOUR PRODUCTS, FEEL FREE TO    ;
;     MODiFY iT, BUT PLEASE DON'T SPREAD THE  MODiFiED VERSiON. THANK YOU!    ;
;-----------------------------------------------------------------------------;
;        PROGRAMMED BY GABOR SZABO aka CYBERDANCER/SHOCK! iN 1993-94-95       ;
;-----------------------------------------------------------------------------;

SETMODE:        PUSH    BX
                PUSH    AX
                CMP     CS:VGACARD,12
                JE      SET_EVEREX       ;EVEREX SETTiNG, BY iNT 10H 0070H
                CMP     AL,1
                JE      SET400
                CMP     AL,3
                JE      SET600
                MOV     AX,CS:MODE480
                MOV     BX,101H          ;JUST FOR THE VESA 480 MODE
                JMP     SET_DONE
SET600:         MOV     AX,CS:MODE600
                MOV     BX,103H          ;JUST FOR THE VESA 600 MODE
                JMP     SET_DONE
SET400:         MOV     AX,CS:MODE400
                CMP     CS:FLAG400,1     ;IS THERE A 400 LINES VESA MODE?
                JE      OK_400           ;YEAH
                MOV     BX,101H          ;NOPE
                JMP     SET_DONE
OK_400:         MOV     BX,100H          ;JUST FOR THE VESA 400 MODE
SET_DONE:       iNT     10H
                JMP     END_OF_SETMODE
SET_EVEREX:     CMP     CS:MODE600,1
                JNE     SET_EVEREX_480
                MOV     BL,31H
                MOV     AX,0070H
                JMP     iNTTiZHA
SET_EVEREX_480: MOV     AX,0070H
                MOV     BL,30H           ;640X480X256 ON EVEREX
iNTTiZHA:       iNT     10H
END_OF_SETMODE: POP     AX
                POP     BX
                RET

BANKSWITCH:     CMP     CS:VGACARD,0
                JA      VESA
                PUSH    DX               ;PARADiSE VGA BANK SWiTCHiNG
                PUSH    AX
                PUSH    AX
                MOV     DX,3CEH
                MOV     AL,9
                OUT     DX,AL
                iNC     DX
                POP     AX
                SHL     AX,4
                OUT     DX,AL
                POP     AX
                POP     DX
                RET

VESA:           CMP     CS:VGACARD,1
                JA      TRiDENT
                PUSH    AX BX DX
                MUL     CS:VESAGRAN     ;SET GRANULARITY
                MOV     DX,AX
                MOV     BX,0
                MOV     AX,4F05H        ;DO THE BANK SWITCHING
                INT     10H
                POP     DX BX AX
                RET
TRiDENT:        CMP     CS:VGACARD,2
                JA      TSENG4000
                PUSH    AX
                PUSH    DX
                PUSH    AX
                MOV     DX,3CEH         ;SET PAGE SiZE TO 64K
                MOV     AL,6
                OUT     DX,AL
                iNC     DL
                iN      AL,DX
                DEC     DL
                OR      AL,4
                MOV     AH,AL
                MOV     AL,6
                OUT     DX,AX
                MOV     DL,0C4H         ;SWiTCH TO BPS MODE
                MOV     AL,0BH
                OUT     DX,AL
                iNC     DL
                iN      AL,DX
                DEC     DL
                POP     AX
                MOV     AH,AL
                XOR     AH,2
                MOV     DX,3C4H
                MOV     AL,0EH
                OUT     DX,AX
                POP     DX
                POP     AX
                RET
TSENG4000:      CMP     CS:VGACARD,3
                JA      ViDEO7
                PUSH    AX
                PUSH    DX
                MOV     AH,AL
                MOV     DX,3BFH        ;ENABLE ACCESS TO EXTENDED REGiSTERS
                MOV     AL,3
                OUT     DX,AL
                MOV     DL,0D8H
                MOV     AL,0A0H
                OUT     DX,AL
                AND     AH,15
                MOV     AL,AH
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                OR      AL,AH
                MOV     DL,0CDH
                OUT     DX,AL
                POP     DX
                POP     AX
                RET

ViDEO7:         CMP     CS:VGACARD,4
                JA      ATiVGA
                PUSH    AX
                PUSH    DX
                PUSH    CX
                AND     AX,15
                MOV     CH,AL
                MOV     DX,3C4H
                MOV     AX,0EA06H
                OUT     DX,AX
                MOV     AH,CH
                AND     AH,1
                MOV     AL,0F9H
                OUT     DX,AX
                MOV     AL,CH
                AND     AL,1100B
                MOV     AH,AL
                SHR     AH,1
                SHR     AH,1
                OR      AH,AL
                MOV     AL,0F6H
                OUT     DX,AL
                iNC     DX
                iN      AL,DX
                DEC     DX
                AND     AL,NOT 1111B
                OR      AH,AL
                MOV     AL,0F6H
                OUT     DX,AX
                MOV     AH,CH
                MOV     CL,4
                SHL     AH,CL
                AND     AH,100000B
                MOV     DL,0CCH
                iN      AL,DX
                MOV     DL,0C2H
                AND     AL,NOT 100000B
                OR      AL,AH
                OUT     DX,AL
                POP     CX
                POP     DX
                POP     AX
                RET

ATiVGA:         CMP     CS:VGACARD,5
                JA      AHEADA
                PUSH    AX
                PUSH    DX
                MOV     AH,AL
                MOV     DX,1CEH
                MOV     AL,0B2H
                OUT     DX,AL
                iNC     DL
                iN      AL,DX
                SHL     AH,1
                AND     AL,0E1H
                OR      AH,AL
                MOV     AL,0B2H
                DEC     DL
                OUT     DX,AX
                POP     DX
                POP     AX
                RET

AHEADA:         CMP     CS:VGACARD,6
                JA      AHEADB
                PUSH    AX
                PUSH    DX
                PUSH    CX
                MOV     CH,AL
                MOV     DX,3CEH         ;ENABLE EXTENDED REGiSTERS
                MOV     AX,200FH
                OUT     DX,AX
                MOV     DL,0CCH         ;BiT 0
                iN      AL,DX
                MOV     DL,0C2H
                AND     AL,11011111B
                SHR     CH,1
                JNC     SKPA
                OR      AL,00100000B
SKPA:           OUT     DX,AL
                MOV     DL,0CFH         ;BiTS 1,2,3
                MOV     AL,0
                OUT     DX,AL
                iNC     DX
                iN      AL,DX
                DEC     DX
                AND     AL,11111000B
                OR      AL,CH
                MOV     AH,AL
                MOV     AL,0
                OUT     DX,AX
                POP     CX
                POP     DX
                POP     AX
                RET

AHEADB:         CMP     CS:VGACARD,7
                JA      DiAMOND
                PUSH    AX
                PUSH    DX
                PUSH    CX
                MOV     CH,AL
                MOV     DX,3CEH         ;ENABLE EXTENDED REGiSTERS
                MOV     AX,200FH
                OUT     DX,AX
                MOV     AH,CH
                MOV     CL,4
                SHL     AH,CL
                OR      AH,CH
                MOV     AL,0DH
                OUT     DX,AX
                POP     CX
                POP     DX
                POP     AX
                RET
DiAMOND:        CMP     CS:VGACARD,8
                JA      STBVGA
                PUSH    AX
                PUSH    DX
                MOV     AH,AL
                MOV     DX,3BFH        ;ENABLE ACCESS TO EXTENDED REGiSTERS
                MOV     AL,3
                OUT     DX,AL
                MOV     DL,0D8H
                MOV     AL,0A0H
                OUT     DX,AL
                AND     AH,15
                MOV     AL,AH
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                OR      AL,AH
                MOV     DL,0CDH
                OUT     DX,AL
                POP     DX
                POP     AX
                RET
STBVGA:         CMP     CS:VGACARD,9
                JA      NCRVGA
                PUSH    AX
                PUSH    DX
                MOV     AH,AL
                MOV     DX,3BFH        ;ENABLE ACCESS TO EXTENDED REGiSTERS
                MOV     AL,3
                OUT     DX,AL
                MOV     DL,0D8H
                MOV     AL,0A0H
                OUT     DX,AL
                AND     AH,15
                MOV     AL,AH
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                OR      AL,AH
                MOV     DL,0CDH
                OUT     DX,AL
                POP     DX
                POP     AX
                RET
NCRVGA:         CMP     CS:VGACARD,10
                JA      TSENGET3000
                MOV     BX,AX
                MOV     AL,18H
                MOV     DX,3C4H
                OUT     DX,AL
                iNC     DX
                SHL     BX,2
                MOV     AX,BX
                OUT     DX,AL
                RET

TSENGET3000:    CMP     CS:VGACARD,11
                JA      EVEREX_          ;TSENG ET-3000 BANK SWiTCHiNG
                PUSH    AX
                PUSH    DX
                AND     AL,7
                MOV     AH,AL
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                OR      AL,AH
                OR      AL,01000000B
                MOV     DX,3CDH
                OUT     DX,AL
                POP     DX
                POP     AX
                RET

EVEREX_:        CMP     CS:VGACARD,12               ;EVEREX
                JA      OAK_
                PUSH    AX
                PUSH    DX
                PUSH    CX
                MOV     CL,AL
                MOV     DX,3C4H
                MOV     AL,8
                OUT     DX,AL
                iNC     DL
                iN      AL,DX
                DEC     DL
                SHL     AL,1
                SHR     CL,1
                RCR     AL,1
                MOV     AH,AL
                MOV     AL,8
                OUT     DX,AX
                MOV     DL,0CCH
                iN      AL,DX
                MOV     DL,0C2H
                AND     AL,0DFH
                SHR     CL,1
                JC      EVER_EZ
                OR      AL,20H
EVER_EZ:        OUT     DX,AL
                POP     CX
                POP     DX
                POP     AX
                RET

OAK_:           CMP     CS:VGACARD,13    ;OTi-067
                JA      CHiPSTECH
                PUSH    AX
                PUSH    DX
                AND     AL,15
                MOV     AH,AL
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                SHL     AL,1
                OR      AL,AH
                MOV     DX,3DFH
                OUT     DX,AL
                POP     DX
                POP     AX
                RET

CHiPSTECH:      CMP     CS:VGACARD,14    ;CHiPS & TECH
                JA      REALTEKLAPOZ
                PUSH    AX
                PUSH    DX
                PUSH    BX
                MOV     BL,AL
                MOV     DX,46E8H         ;PLACE CHiP iN SETUP MODE
                MOV     AX,1EH
                OUT     DX,AX
                MOV     DX,103H          ;ENABLE EXTENDED REGiSTERS
                MOV     AX,0080H
                OUT     DX,AX
                MOV     DX,46E8H         ;BRiNG CHiP OUT OF SETUP MODE
                MOV     AX,0EH
                OUT     DX,AX
                MOV     AH,BL
                SHL     AH,2             ;CHANGE 64K BANK NUMBER TO 16K
                MOV     AL,10H
                MOV     DX,3D6H
                OUT     DX,AX
                POP     BX
                POP     DX
                POP     AX
                RET
REALTEKLAPOZ:   CMP     CS:VGACARD,15
                JA      S3LAPOZ
                PUSH    DX
                MOV     DX,3D7H
                OUT     DX,AL            ;REALTEK VGA BANK SW. (HOW EASY)
                POP     DX
                RET

S3LAPOZ:        CMP     CS:VGACARD,16
                JA      CiRRUSLAPOZ
                MOV     DX,3D4H          ;ENABLE EXTENDED REGiSTERS
                PUSH    AX
                MOV     AL,38H
                OUT     DX,AL
                iNC     DX
                MOV     AL,48H
                OUT     DX,AL
                DEC     DX               ;ENABLE WRiTE TO BANK REGiSTERS
                MOV     AL,31H
                OUT     DX,AL
                iNC     DX
                MOV     AL,89H
                iN      AL,DX
                PUSH    AX
                DEC     DX
                MOV     AL,31H
                OUT     DX,AL
                iNC     DX
                POP     AX
                OR      AL,9
                OUT     DX,AL
                DEC     DX               ;SWiTCH BANKS
                MOV     AL,35H
                OUT     DX,AL
                iNC     DX
                POP     AX
                OUT     DX,AL
                DEC     DX               ;DiSABLE EXTENDED REGiSTERS
                MOV     AL,38H
                OUT     DX,AL
                iNC     DX
                MOV     AL,0
                OUT     DX,AL
                RET

CiRRUSLAPOZ:    CMP     CS:VGACARD,17
                JA      MXLAPOZ
                PUSH    DX
                PUSH    AX
                PUSH    AX
                MOV     DX,3CEH
                MOV     AL,9
                OUT     DX,AL
                iNC     DX
                POP     AX
                SHL     AX,4
                OUT     DX,AL
                POP     AX
                POP     DX
                RET

MXLAPOZ:        CMP     CS:VGACARD,18
                JA      PRiMUSLAPOZ
                PUSH    DX
                PUSH    AX
                MOV     AL,0C5H
                MOV     DX,3C4H
                OUT     DX,AL
                iNC     DX
                POP     AX
                OUT     DX,AL
                POP     DX
                RET

PRiMUSLAPOZ:    CMP     CS:VGACARD,19
                JA      AVANCELAPOZ
                PUSH    DX
                MOV     DX,3D6H
                OUT     DX,AL
                POP     DX
                RET
AVANCELAPOZ:    CMP     CS:VGACARD,20
                JA      COMPAQLAPOZ
                PUSH    DX
                MOV     DX,3D7H
                OUT     DX,AL
                POP     DX
                RET
COMPAQLAPOZ:    CMP     CS:VGACARD,21
                JA      VALAMiMAS
                PUSH    DX
                PUSH    AX
                MOV     DX,3CEH
                MOV     AL,45H
                OUT     DX,AL
                POP     AX
                iNC     DX
                SHL     AX,4
                OUT     DX,AL
                POP     DX
                RET
VALAMiMAS:      RET


DETECTiONS:     MOV     AX,CS
                MOV     ES,AX
                MOV     AH,3
                iNT     10H
                MOV     BL,3
                MOV     BH,0
                MOV     BP,OFFSET CS:iNFOLiNE
                MOV     AL,1
                MOV     AH,13H
                MOV     CX,21
                iNT     10H

TRiDECT:        PUSH    CS
                POP     DS
                MOV     DX,03C4H
                MOV     AX,14
                OUT     DX,AX
                iNC     DX
                iN      AX,DX
                MOV     CS:OLDVALUE,AX
                MOV     AX,0
                OUT     DX,AX
                iN      AX,DX
                AND     AX,15
                MOV     CS:VALUE,AX
                MOV     AX,CS:OLDVALUE
                OUT     DX,AX
                CMP     CS:VALUE,2
                JNE     PARADiSEDET
                MOV     AH,9
                MOV     DX,OFFSET CS:TRiDETECTED
                iNT     21H
                JMP     VESADETECT

PARADiSEDET:    MOV     AX,0C000H
                MOV     DS,AX
                MOV     Si,7DH
                LODSW
                CMP     AX,'GV'
                JNE     AHEADDETECT
                LODSW
                CMP     AX,'=A'
                JNE     AHEADDETECT
                MOV     AX,CS
                MOV     DS,AX
                MOV     AH,9
                MOV     DX,OFFSET CS:PARADETECTED
                iNT     21H
                JMP     VESADETECT

AHEADDETECT:    MOV     AX,0C000H
                MOV     DS,AX
                MOV     Si,25H
                LODSW
                CMP     AX,'HA'
                JNE     TSENGDETECT
                LODSW
                CMP     AX,'AE'
                JNE     TSENGDETECT
                MOV     AX,CS
                MOV     DS,AX
                MOV     AH,9
                MOV     DX,OFFSET CS:AHEADDETECTED
                iNT     21H
                JMP     VESADETECT
TSENGDETECT:
                MOV     DX,3CDH
                iN      AL,DX
                MOV     AH,AL
                MOV     AL,55H
                OUT     DX,AL
                iN      AL,DX
                XCHG    AH,AL
                OUT     DX,AL
                CMP     AH,55H
                JNE     REALTEKDETECT
                DEC     DX
                iN      AL,DX
                MOV     DL,0D4H
                AND     AL,1
                JNE     ET01
                MOV     DL,0B4H
ET01:           MOV     AL,33H
                OUT     DX,AL
                iNC     DX
                iN      AL,DX
                MOV     CL,AL
                XOR     AL,0FH
                MOV     AH,AL
                OUT     DX,AL
                iN      AL,DX
                XCHG    AL,CL
                OUT     DX,AL
                CMP     AH,CL
                JNE     ET3000
ET4000:         MOV     AX,CS
                MOV     DS,AX
                MOV     AH,9
                MOV     DX,OFFSET CS:ET4000DET
                iNT     21H
                JMP     VESADETECT
ET3000:         MOV     AX,CS
                MOV     DS,AX
                MOV     AH,9
                MOV     DX,OFFSET CS:ET3000DET
                iNT     21H
                JMP     VESADETECT
REALTEKDETECT:  MOV     DX,03CCH
                iN      AL,DX
                MOV     DL,0D4H
                SHR     AL,1
                JB      REAL1
                MOV     DL,0B4H
REAL1:          MOV     AL,1FH
                OUT     DX,AL
                iNC     DX
                iN      AL,DX
                MOV     AH,AL
                OUT     DX,AL
                iN      AL,DX
                CMP     AL,2AH
                JNE     VESADETECT
                PUSH    CS
                POP     DS
                MOV     DX,OFFSET CS:RTVGADET
                MOV     AH,9
                iNT     21H
                JMP     VESADETECT

VESADETECT:     MOV     AX,4F03H
                iNT     10H
                CMP     AL,4FH
                JNE     UNDETECT  
                MOV     AX,CS
                MOV     DS,AX
                MOV     DX,OFFSET CS:VESADETECTED
                MOV     AH,9
                iNT     21H
                MOV     AX,CS
                MOV     ES,AX
                MOV     Di,OFFSET CS:VESATABLE
                MOV     CX,100H
                MOV     AX,4F01H
                iNT     10H
                CMP     AL,4FH
                JNE     NOKDET
                MOV     CS:FLAG400,1       ;VAN 640X400X256
NOKDET:         MOV     BX,WORD PTR ES:[DI+4]
                MOV     AX,64
                DIV     BL
                MOV     CS:VESAGRAN,AL
                MOV     AX,CS:[Di+2]
                CMP     AL,7
                JE      WRiTABLEVESA
                MOV     AH,3
                iNT     10H
                MOV     BL,4
                MOV     BH,0
                MOV     BP,OFFSET CS:VESAWARNiNG
                MOV     AL,1
                MOV     AH,13H
                MOV     CX,128
                iNT     10H
WRiTABLEVESA:   RET

UNDETECT:       MOV     AX,CS
                MOV     DS,AX
                MOV     AH,9
                MOV     DX,OFFSET CS:UNDETECTED
                iNT     21H
                RET
ASKVGA:         MOV     AX,12H
                iNT     10H
                MOV     AX,CS
                MOV     DS,AX
                CALL    DETECTiONS
                MOV     AX,CS
                MOV     ES,AX
                MOV     AH,3
                iNT     10H
                MOV     BL,3
                MOV     BH,0
                MOV     BP,OFFSET CS:WHATVGA
                MOV     AL,1
                MOV     AH,13H
                MOV     CX,22
                iNT     10H
                MOV     AX,CS
                MOV     DS,AX
                MOV     AH,9
                MOV     DX,OFFSET CS:WHATVGA2
                iNT     21H
UJRAASK:        MOV     AH,8
                iNT     21H
                CMP     AL,27
                JNE     NEMAKARKiLEPNi
                MOV     AX,3
                iNT     10H
                MOV     AX,4C00H
                iNT     21H
NEMAKARKiLEPNi: CMP     AL,30H
                JB      NEMSZAM_
                CMP     AL,39H
                JA      NEMSZAM_
                SUB     AL,30H
                MOV     CS:VGACARD,AL
                MOV     AH,0
                SHL     AX,1
                MOV     DX,CS
                MOV     DS,DX
                MOV     Si,OFFSET CS:VGAMODES2
                ADD     Si,AX
                PUSH    AX
                LODSW
                MOV     CS:MODE480,AX
                POP     AX
                MOV     Si,OFFSET CS:VGAMODES1
                ADD     Si,AX
                PUSH    AX
                LODSW
                MOV     CS:MODE400,AX
                POP     AX
                MOV     Si,OFFSET CS:VGAMODES3
                ADD     Si,AX
                LODSW
                MOV     CS:MODE600,AX
                RET
NEMSZAM_:       CMP     AL,'A'
                JB      NEMNAGYBETU
                CMP     AL,'L'
                JA      NEMNAGYBETU
                SUB     AL,55
                MOV     CS:VGACARD,AL
                MOV     AH,0
                SHL     AX,1
                MOV     DX,CS
                MOV     DS,DX
                MOV     Si,OFFSET CS:VGAMODES2
                ADD     Si,AX
                PUSH    AX
                LODSW
                MOV     CS:MODE480,AX
                POP     AX
                MOV     Si,OFFSET CS:VGAMODES1
                ADD     Si,AX
                PUSH    AX
                LODSW
                MOV     CS:MODE400,AX
                POP     AX
                MOV     Si,OFFSET CS:VGAMODES3
                ADD     Si,AX
                LODSW
                MOV     CS:MODE600,AX
                RET
NEWASK:         JMP     UJRAASK
NEMNAGYBETU:    CMP     AL,'a'
                JB      NEWASK
                CMP     AL,'l'
                JA      NEWASK
                SUB     AL,87
                MOV     CS:VGACARD,AL
                MOV     AH,0
                SHL     AX,1
                MOV     DX,CS
                MOV     DS,DX
                MOV     Si,OFFSET CS:VGAMODES2
                ADD     Si,AX
                PUSH    AX
                LODSW
                MOV     CS:MODE480,AX
                POP     AX
                MOV     Si,OFFSET CS:VGAMODES1
                ADD     Si,AX
                PUSH    AX
                LODSW
                MOV     CS:MODE400,AX
                POP     AX
                MOV     Si,OFFSET CS:VGAMODES3
                ADD     Si,AX
                LODSW
                MOV     CS:MODE600,AX
                RET

VGACARD         DB      0
WHATVGA         DB      10,13,10,13
                DB      'CHOOSE A VGA CARD:'
WHATVGA2  DB ' 0. WD PARADiSE                   K. AVANCE AL-2101',10,13
DB '                   1. VESA                          L. OLD COMPAQ',10,13
DB '                   2. TRiDENT                       ',10,13
DB '                   3. ET-4000 COMPATiBLES           ',10,13
DB '                   4. ViDEO 7                       ',10,13
DB '                   5. ATi                           ',10,13
DB '                   6. AHEAD A                       ',10,13
DB '                   7. AHEAD B                       ',10,13
DB '                   8. DiAMOND SPEEDSTAR 24          ',10,13
DB '                   9. STB                           ',10,13
DB '                   A. NCR                           ',10,13
DB '                   B. ET-3000 COMPATiBLES           ',10,13
DB '                   C. EVEREX                        ',10,13
DB '                   D. OAK                           ',10,13
DB '                   E. CHiPS & TECH OLD              ',10,13
DB '                   G. S3 805/801/911                ',10,13
DB '                   H. CiRRUS LOGiC, AVGA            ',10,13
DB '                   i. MX-68010                      ',10,13
DB '                   J. PRiMUS P-2000                 ESC. QUiTS NOW',10,13
DB '$'

iNFOLiNE        DB      10,13
                DB      'DETECTED:          '
TRiDETECTED     DB      'TRiDENT SVGA$'
PARADETECTED    DB      'PARADiSE SVGA$'
AHEADDETECTED   DB      'AHEAD SVGA$'
UNDETECTED      DB      'UNKNOWN SVGA$'
ET3000DET       DB      'TSENG ET-3000 SVGA$'
ET4000DET       DB      'TSENG ET-4000 SVGA$'
RTVGADET        DB      'REALTEK SVGA$'
VESADETECTED    DB      10,13
                DB      '                   VESA COMPATiBLE SVGA',10,13,'$'
OLDVALUE        DW      0
VALUE           DW      0
MODE480         DW      0
MODE400         DW      0
MODE600         DW      0
VESAGRAN        DB      0
FLAG400         DW      0

VGAMODES2       DW      5FH,4F02H,5DH,2EH,67H,62H,61H,61H,2EH,2EH,5FH,2EH,0,53H
                DW      79H,26H,69H,5FH,59H,2DH,2AH,2EH
VGAMODES1       DW      5EH,4F02H,5CH,2FH,66H,61H,60H,60H,2FH,2FH,5EH,2EH,0,53H
                DW      78H,25H,69H,5FH,58H,2DH,29H,2EH
VGAMODES3       DW      5CH,4F02H,5EH,30H,69H,63H,62H,62H,30H,30H,5CH,30H,1,54H
                DW      7BH,27H,6BH,5CH,5AH,2BH,2CH,2FH
VESATABLE       DB      256/4   DUP ('VESA')
VESAWARNiNG     DB      10,13,'DON''T SELECT VESA NOW, BECAUSE UNABLE TO'
                DB      ' READ FROM THE WiNDOW A.',10,13
                DB      'PLEASE LOAD A BETTER VESA DRiVER,'
                DB      ' iF YOU WANNA SELECT VESA !'
