pouët.net

XMODES by Abaddon [web]

;XMODES by TomCat/Abaddon

;Intel
;30h: 640x480 8bit (640) 101h
;32h: 800x600 8bit (832) 103h
;34h: 1024x768 8bit (1024) 105h
;41h: 640x480 16bit (1280) 111h
;43h: 800x600 16bit (1600) 114h
;45h: 1024x768 16bit (2048) 117h
;50h: 640x480 32bit (2560) 112h
;52h: 800x600 32bit (3200) 115h
;54h: 1024x768 32bit (4096) 118h
;7Dh: 1366x768 8bit (1408) 17Dh
;7Eh: 1366x768 16bit (2752) 17Eh
;7Fh: 1366x768 32bit (5504) 17Fh

;nVidia
;11h: 640x480 1bit (80)
;12h: 640x480 4bit (80)
;13h: 320x200 8bit (320)
;21h: 640x480 32bit (2560) 112h
;22h: 800x600 32bit (3200) 115h
;3Fh: 1024x768 32bit (4096) 118h
;4Bh: 1280x720 8bit (1280) 14Bh
;4Ch: 1280x720 16bit (2560) 14Ch
;4Dh: 1280x720 32bit (5120) 14Dh
;5Ch: 800x600 8bit (800) 103h
;5Eh: 1024x768 8bit (1024) 105h
;5Fh: 640x480 8bit (640) 101h
;6Eh: 640x480 16bit (1280) 111h
;6Fh: 800x600 16bit (1600) 114h
;72h: 1024x768 16bit (2048) 117h

ORG 256
 MOV    DI,BP
search:
 STOSW
 PUSH   AX
 INT    10H
 MOV    AH,3
 INT    10H
 JCXZ   @F
 DEC    DI
 DEC    DI
@@:
 MOV    AX,3
 INT    10H
 POP    AX
 INC    AL
 JNS    search

 MOV    DX,text0
 MOV    AH,9
 INT    21H
 MOV    SI,BP
next:
 LODSW
 PUSH   AX
 XCHG   CX,AX
 MOV    AX,4F01H
 INT    10H
 CMP    AX,004FH
 POP    AX
 JNE    skip
 MOV    BL,16
 CALL   PrintNum
 MOV    DX,text1
 MOV    AH,9
 INT    21H
 MOV    AX,[DI+12H]
 MOV    BL,10
 CALL   PrintNum
 MOV    DL,'x'
 MOV    AH,2
 INT    21H
 MOV    AX,[DI+14H]
 CALL   PrintNum
 MOV    DL,' '
 MOV    AH,2
 INT    21H
 MOV    AL,[DI+19H]
 CBW
 CALL   PrintNum
 MOV    DX,text4
 MOV    AH,9
 INT    21H
 MOV    AX,[DI+10H]
 CALL   PrintNum
 MOV    DX,text5
 MOV    AH,9
 INT    21H
 PUSHA
 PUSH   DI
 MOV    AX,4F00H
 MOV    DI,AX
 INT    10H
 LFS    SI,[DI+0EH]
 POP    DI
vesa:
 FS
 LODSW
 MOV    CX,AX
 INC    AX
 JZ     ok
 PUSHA
 ADD    DI,1AH
 MOV    AX,4F01H
 INT    10H
 ADD    DI,10H
 LEA    SI,[DI-1AH]
 MOV    CX,10
 REPE   CMPSB
 POPA
 JNE    vesa

 XCHG   AX,CX
 MOV    BL,16
 CALL   PrintNum
ok:
 MOV    DX,text7
 MOV    AH,9
 INT    21H
 POPA
skip:
 CMP    SI,DI
 JNE    next
RETN

PrintNum:
 PUSHA
 SUB    CX,CX
.1:
 SUB    DX,DX
 DIV    BX
 PUSH   DX
 INC    CX
 TEST   AX,AX
 JNZ    .1
.2:
 POP    AX
 ADD    AL,'0'
 CMP    AL,'9'
 JNA    @F
 ADD    AL,'A'-'9'-1
@@:
 XCHG   AX,DX
 MOV    AH,2
 INT    21H
 LOOP   .2
 CMP    BL,16
 JNE    @F
 MOV    DL,'h'
 INT    21H
@@:
 POPA
RETN

text0   DB 'XMODES by TomCat/Abaddon'
text7   DB 13,10,'$'
text1   DB ': $'
text4   DB 'bit ($'
text5   DB ') $'