VirtualBox

Ignore:
Timestamp:
Jul 4, 2017 11:02:25 AM (7 years ago)
Author:
vboxsync
Message:

updated alternative system BIOS and VGA BIOS sources

Location:
trunk/src/VBox/Devices/Graphics/BIOS
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm

    r63627 r67771  
    165165
    166166
    167 section VGAROM progbits vstart=0x0 align=1 ; size=0x985 class=CODE group=AUTO
     167section VGAROM progbits vstart=0x0 align=1 ; size=0x8fd class=CODE group=AUTO
    168168    db  055h, 0aah, 040h, 0e9h, 063h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    169169    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
     
    173173    cmp ah, 00fh                              ; 80 fc 0f
    174174    jne short 0002eh                          ; 75 06
    175     call 00183h                               ; e8 58 01
    176     jmp near 000f3h                           ; e9 c5 00
     175    call 0017ah                               ; e8 4f 01
     176    jmp near 000eah                           ; e9 bc 00
    177177    cmp ah, 01ah                              ; 80 fc 1a
    178178    jne short 00039h                          ; 75 06
    179     call 00538h                               ; e8 02 05
    180     jmp near 000f3h                           ; e9 ba 00
     179    call 0052fh                               ; e8 f9 04
     180    jmp near 000eah                           ; e9 b1 00
    181181    cmp ah, 00bh                              ; 80 fc 0b
    182182    jne short 00044h                          ; 75 06
    183     call 000f5h                               ; e8 b4 00
    184     jmp near 000f3h                           ; e9 af 00
     183    call 000ech                               ; e8 ab 00
     184    jmp near 000eah                           ; e9 a6 00
    185185    cmp ax, 01103h                            ; 3d 03 11
    186186    jne short 0004fh                          ; 75 06
    187     call 0042fh                               ; e8 e3 03
    188     jmp near 000f3h                           ; e9 a4 00
     187    call 00426h                               ; e8 da 03
     188    jmp near 000eah                           ; e9 9b 00
    189189    cmp ah, 012h                              ; 80 fc 12
    190190    jne short 00092h                          ; 75 3e
    191191    cmp bl, 010h                              ; 80 fb 10
    192192    jne short 0005fh                          ; 75 06
    193     call 0043ch                               ; e8 e0 03
    194     jmp near 000f3h                           ; e9 94 00
     193    call 00433h                               ; e8 d7 03
     194    jmp near 000eah                           ; e9 8b 00
    195195    cmp bl, 030h                              ; 80 fb 30
    196196    jne short 0006ah                          ; 75 06
    197     call 0045fh                               ; e8 f8 03
    198     jmp near 000f3h                           ; e9 89 00
     197    call 00456h                               ; e8 ef 03
     198    jmp near 000eah                           ; e9 80 00
    199199    cmp bl, 031h                              ; 80 fb 31
    200200    jne short 00074h                          ; 75 05
    201     call 004b2h                               ; e8 40 04
    202     jmp short 000f3h                          ; eb 7f
     201    call 004a9h                               ; e8 37 04
     202    jmp short 000eah                          ; eb 76
    203203    cmp bl, 032h                              ; 80 fb 32
    204204    jne short 0007eh                          ; 75 05
    205     call 004d4h                               ; e8 58 04
    206     jmp short 000f3h                          ; eb 75
     205    call 004cbh                               ; e8 4f 04
     206    jmp short 000eah                          ; eb 6c
    207207    cmp bl, 033h                              ; 80 fb 33
    208208    jne short 00088h                          ; 75 05
    209     call 004f2h                               ; e8 6c 04
    210     jmp short 000f3h                          ; eb 6b
     209    call 004e9h                               ; e8 63 04
     210    jmp short 000eah                          ; eb 62
    211211    cmp bl, 034h                              ; 80 fb 34
    212     jne short 000e5h                          ; 75 58
    213     call 00516h                               ; e8 86 04
    214     jmp short 000f3h                          ; eb 61
     212    jne short 000dch                          ; 75 4f
     213    call 0050dh                               ; e8 7d 04
     214    jmp short 000eah                          ; eb 58
    215215    cmp ax, 0101bh                            ; 3d 1b 10
    216     je short 000e5h                           ; 74 4e
     216    je short 000dch                           ; 74 45
    217217    cmp ah, 010h                              ; 80 fc 10
    218218    jne short 000a1h                          ; 75 05
    219     call 001aah                               ; e8 0b 01
    220     jmp short 000f3h                          ; eb 52
     219    call 001a1h                               ; e8 02 01
     220    jmp short 000eah                          ; eb 49
    221221    cmp ah, 04fh                              ; 80 fc 4f
    222     jne short 000e5h                          ; 75 3f
     222    jne short 000dch                          ; 75 36
    223223    cmp AL, strict byte 003h                  ; 3c 03
    224224    jne short 000afh                          ; 75 05
    225     call 0080dh                               ; e8 60 07
    226     jmp short 000f3h                          ; eb 44
     225    call 007d2h                               ; e8 25 07
     226    jmp short 000eah                          ; eb 3b
    227227    cmp AL, strict byte 005h                  ; 3c 05
    228228    jne short 000b8h                          ; 75 05
    229     call 00832h                               ; e8 7c 07
    230     jmp short 000f3h                          ; eb 3b
    231     cmp AL, strict byte 006h                  ; 3c 06
     229    call 007f7h                               ; e8 41 07
     230    jmp short 000eah                          ; eb 32
     231    cmp AL, strict byte 007h                  ; 3c 07
    232232    jne short 000c1h                          ; 75 05
    233     call 0085fh                               ; e8 a0 07
    234     jmp short 000f3h                          ; eb 32
    235     cmp AL, strict byte 007h                  ; 3c 07
     233    call 00824h                               ; e8 65 07
     234    jmp short 000eah                          ; eb 29
     235    cmp AL, strict byte 008h                  ; 3c 08
    236236    jne short 000cah                          ; 75 05
    237     call 008ach                               ; e8 e4 07
    238     jmp short 000f3h                          ; eb 29
    239     cmp AL, strict byte 008h                  ; 3c 08
     237    call 00858h                               ; e8 90 07
     238    jmp short 000eah                          ; eb 20
     239    cmp AL, strict byte 009h                  ; 3c 09
    240240    jne short 000d3h                          ; 75 05
    241     call 008e0h                               ; e8 0f 08
    242     jmp short 000f3h                          ; eb 20
    243     cmp AL, strict byte 009h                  ; 3c 09
     241    call 0088fh                               ; e8 be 07
     242    jmp short 000eah                          ; eb 17
     243    cmp AL, strict byte 00ah                  ; 3c 0a
    244244    jne short 000dch                          ; 75 05
    245     call 00917h                               ; e8 3d 08
    246     jmp short 000f3h                          ; eb 17
    247     cmp AL, strict byte 00ah                  ; 3c 0a
    248     jne short 000e5h                          ; 75 05
    249     call 0096eh                               ; e8 8b 08
    250     jmp short 000f3h                          ; eb 0e
     245    call 008e6h                               ; e8 0c 08
     246    jmp short 000eah                          ; eb 0e
    251247    push ES                                   ; 06
    252248    push DS                                   ; 1e
     
    254250    mov bx, 0c000h                            ; bb 00 c0
    255251    mov ds, bx                                ; 8e db
    256     call 0322eh                               ; e8 3e 31
     252    call 03245h                               ; e8 5e 31
    257253    popaw                                     ; 61
    258254    pop DS                                    ; 1f
     
    261257    iret                                      ; cf
    262258    cmp bh, 000h                              ; 80 ff 00
    263     je short 00100h                           ; 74 06
     259    je short 000f7h                           ; 74 06
    264260    cmp bh, 001h                              ; 80 ff 01
    265     je short 00151h                           ; 74 52
     261    je short 00148h                           ; 74 52
    266262    retn                                      ; c3
    267263    push ax                                   ; 50
     
    275271    in AL, DX                                 ; ec
    276272    cmp byte [word 00049h], 003h              ; 80 3e 49 00 03
    277     jbe short 00144h                          ; 76 2f
     273    jbe short 0013bh                          ; 76 2f
    278274    mov dx, 003c0h                            ; ba c0 03
    279275    mov AL, strict byte 000h                  ; b0 00
     
    283279    and AL, strict byte 00fh                  ; 24 0f
    284280    test AL, strict byte 008h                 ; a8 08
    285     je short 00125h                           ; 74 02
     281    je short 0011ch                           ; 74 02
    286282    add AL, strict byte 008h                  ; 04 08
    287283    out DX, AL                                ; ee
     
    302298    ; inc cl                                    ; fe c1
    303299    cmp cl, 004h                              ; 80 f9 04
    304     jne short 0012bh                          ; 75 e7
     300    jne short 00122h                          ; 75 e7
    305301    mov AL, strict byte 020h                  ; b0 20
    306302    out DX, AL                                ; ee
     
    335331    ; inc cl                                    ; fe c1
    336332    cmp cl, 004h                              ; 80 f9 04
    337     jne short 0015eh                          ; 75 e7
     333    jne short 00155h                          ; 75 e7
    338334    mov AL, strict byte 020h                  ; b0 20
    339335    out DX, AL                                ; ee
     
    368364    retn                                      ; c3
    369365    cmp AL, strict byte 000h                  ; 3c 00
    370     jne short 001b0h                          ; 75 02
    371     jmp short 00211h                          ; eb 61
     366    jne short 001a7h                          ; 75 02
     367    jmp short 00208h                          ; eb 61
    372368    cmp AL, strict byte 001h                  ; 3c 01
    373     jne short 001b6h                          ; 75 02
    374     jmp short 0022fh                          ; eb 79
     369    jne short 001adh                          ; 75 02
     370    jmp short 00226h                          ; eb 79
    375371    cmp AL, strict byte 002h                  ; 3c 02
    376     jne short 001bch                          ; 75 02
    377     jmp short 00237h                          ; eb 7b
     372    jne short 001b3h                          ; 75 02
     373    jmp short 0022eh                          ; eb 7b
    378374    cmp AL, strict byte 003h                  ; 3c 03
    379     jne short 001c3h                          ; 75 03
    380     jmp near 00268h                           ; e9 a5 00
     375    jne short 001bah                          ; 75 03
     376    jmp near 0025fh                           ; e9 a5 00
    381377    cmp AL, strict byte 007h                  ; 3c 07
    382     jne short 001cah                          ; 75 03
    383     jmp near 00292h                           ; e9 c8 00
     378    jne short 001c1h                          ; 75 03
     379    jmp near 00289h                           ; e9 c8 00
    384380    cmp AL, strict byte 008h                  ; 3c 08
    385     jne short 001d1h                          ; 75 03
    386     jmp near 002bah                           ; e9 e9 00
     381    jne short 001c8h                          ; 75 03
     382    jmp near 002b1h                           ; e9 e9 00
    387383    cmp AL, strict byte 009h                  ; 3c 09
    388     jne short 001d8h                          ; 75 03
    389     jmp near 002c8h                           ; e9 f0 00
     384    jne short 001cfh                          ; 75 03
     385    jmp near 002bfh                           ; e9 f0 00
    390386    cmp AL, strict byte 010h                  ; 3c 10
    391     jne short 001dfh                          ; 75 03
    392     jmp near 0030dh                           ; e9 2e 01
     387    jne short 001d6h                          ; 75 03
     388    jmp near 00304h                           ; e9 2e 01
    393389    cmp AL, strict byte 012h                  ; 3c 12
    394     jne short 001e6h                          ; 75 03
    395     jmp near 00326h                           ; e9 40 01
     390    jne short 001ddh                          ; 75 03
     391    jmp near 0031dh                           ; e9 40 01
    396392    cmp AL, strict byte 013h                  ; 3c 13
    397     jne short 001edh                          ; 75 03
    398     jmp near 0034eh                           ; e9 61 01
     393    jne short 001e4h                          ; 75 03
     394    jmp near 00345h                           ; e9 61 01
    399395    cmp AL, strict byte 015h                  ; 3c 15
    400     jne short 001f4h                          ; 75 03
    401     jmp near 00395h                           ; e9 a1 01
     396    jne short 001ebh                          ; 75 03
     397    jmp near 0038ch                           ; e9 a1 01
    402398    cmp AL, strict byte 017h                  ; 3c 17
    403     jne short 001fbh                          ; 75 03
    404     jmp near 003b0h                           ; e9 b5 01
     399    jne short 001f2h                          ; 75 03
     400    jmp near 003a7h                           ; e9 b5 01
    405401    cmp AL, strict byte 018h                  ; 3c 18
    406     jne short 00202h                          ; 75 03
    407     jmp near 003d8h                           ; e9 d6 01
     402    jne short 001f9h                          ; 75 03
     403    jmp near 003cfh                           ; e9 d6 01
    408404    cmp AL, strict byte 019h                  ; 3c 19
    409     jne short 00209h                          ; 75 03
    410     jmp near 003e3h                           ; e9 da 01
     405    jne short 00200h                          ; 75 03
     406    jmp near 003dah                           ; e9 da 01
    411407    cmp AL, strict byte 01ah                  ; 3c 1a
    412     jne short 00210h                          ; 75 03
    413     jmp near 003eeh                           ; e9 de 01
     408    jne short 00207h                          ; 75 03
     409    jmp near 003e5h                           ; e9 de 01
    414410    retn                                      ; c3
    415411    cmp bl, 014h                              ; 80 fb 14
    416     jnbe short 0022eh                         ; 77 18
     412    jnbe short 00225h                         ; 77 18
    417413    push ax                                   ; 50
    418414    push dx                                   ; 52
     
    435431    push bx                                   ; 53
    436432    mov BL, strict byte 011h                  ; b3 11
    437     call 00211h                               ; e8 dc ff
     433    call 00208h                               ; e8 dc ff
    438434    pop bx                                    ; 5b
    439435    retn                                      ; c3
     
    457453    ; inc cl                                    ; fe c1
    458454    cmp cl, 010h                              ; 80 f9 10
    459     jne short 00246h                          ; 75 f1
     455    jne short 0023dh                          ; 75 f1
    460456    mov AL, strict byte 011h                  ; b0 11
    461457    out DX, AL                                ; ee
     
    497493    retn                                      ; c3
    498494    cmp bl, 014h                              ; 80 fb 14
    499     jnbe short 002b9h                         ; 77 22
     495    jnbe short 002b0h                         ; 77 22
    500496    push ax                                   ; 50
    501497    push dx                                   ; 52
     
    523519    push bx                                   ; 53
    524520    mov BL, strict byte 011h                  ; b3 11
    525     call 00292h                               ; e8 d1 ff
     521    call 00289h                               ; e8 d1 ff
    526522    db  08ah, 0c7h
    527523    ; mov al, bh                                ; 8a c7
     
    551547    ; inc cl                                    ; fe c1
    552548    cmp cl, 010h                              ; 80 f9 10
    553     jne short 002d0h                          ; 75 e7
     549    jne short 002c7h                          ; 75 e7
    554550    mov dx, 003dah                            ; ba da 03
    555551    in AL, DX                                 ; ec
     
    616612    inc bx                                    ; 43
    617613    dec cx                                    ; 49
    618     jne short 00337h                          ; 75 ee
     614    jne short 0032eh                          ; 75 ee
    619615    pop dx                                    ; 5a
    620616    pop cx                                    ; 59
     
    633629    in AL, DX                                 ; ec
    634630    and bl, 001h                              ; 80 e3 01
    635     jne short 00371h                          ; 75 0d
     631    jne short 00368h                          ; 75 0d
    636632    and AL, strict byte 07fh                  ; 24 7f
    637633    sal bh, 007h                              ; c0 e7 07
     
    640636    mov dx, 003c0h                            ; ba c0 03
    641637    out DX, AL                                ; ee
    642     jmp short 0038ah                          ; eb 19
     638    jmp short 00381h                          ; eb 19
    643639    push ax                                   ; 50
    644640    mov dx, 003dah                            ; ba da 03
     
    649645    pop ax                                    ; 58
    650646    and AL, strict byte 080h                  ; 24 80
    651     jne short 00384h                          ; 75 03
     647    jne short 0037bh                          ; 75 03
    652648    sal bh, 002h                              ; c0 e7 02
    653649    and bh, 00fh                              ; 80 e7 0f
     
    708704    inc bx                                    ; 43
    709705    dec cx                                    ; 49
    710     jne short 003c1h                          ; 75 ee
     706    jne short 003b8h                          ; 75 ee
    711707    pop dx                                    ; 5a
    712708    pop cx                                    ; 59
     
    755751    and bh, 00fh                              ; 80 e7 0f
    756752    test bl, 001h                             ; f6 c3 01
    757     jne short 0041eh                          ; 75 03
     753    jne short 00415h                          ; 75 03
    758754    shr bh, 002h                              ; c0 ef 02
    759755    mov dx, 003dah                            ; ba da 03
     
    790786    mov bx, strict word 00003h                ; bb 03 00
    791787    cmp ax, 003b4h                            ; 3d b4 03
    792     jne short 0045ch                          ; 75 02
     788    jne short 00453h                          ; 75 02
    793789    mov BH, strict byte 001h                  ; b7 01
    794790    pop ax                                    ; 58
     
    807803    mov ah, byte [bx]                         ; 8a 27
    808804    cmp dl, 001h                              ; 80 fa 01
    809     je short 0048dh                           ; 74 15
    810     jc short 00497h                           ; 72 1d
     805    je short 00484h                           ; 74 15
     806    jc short 0048eh                           ; 72 1d
    811807    cmp dl, 002h                              ; 80 fa 02
    812     je short 00481h                           ; 74 02
    813     jmp short 004abh                          ; eb 2a
     808    je short 00478h                           ; 74 02
     809    jmp short 004a2h                          ; eb 2a
    814810    and AL, strict byte 07fh                  ; 24 7f
    815811    or AL, strict byte 010h                   ; 0c 10
    816812    and ah, 0f0h                              ; 80 e4 f0
    817813    or ah, 009h                               ; 80 cc 09
    818     jne short 004a1h                          ; 75 14
     814    jne short 00498h                          ; 75 14
    819815    and AL, strict byte 06fh                  ; 24 6f
    820816    and ah, 0f0h                              ; 80 e4 f0
    821817    or ah, 009h                               ; 80 cc 09
    822     jne short 004a1h                          ; 75 0a
     818    jne short 00498h                          ; 75 0a
    823819    and AL, strict byte 0efh                  ; 24 ef
    824820    or AL, strict byte 080h                   ; 0c 80
     
    914910    retn                                      ; c3
    915911    cmp AL, strict byte 000h                  ; 3c 00
    916     je short 00541h                           ; 74 05
     912    je short 00538h                           ; 74 05
    917913    cmp AL, strict byte 001h                  ; 3c 01
    918     je short 00556h                           ; 74 16
     914    je short 0054dh                           ; 74 16
    919915    retn                                      ; c3
    920916    push DS                                   ; 1e
     
    948944    pop DS                                    ; 1f
    949945    retn                                      ; c3
    950     times 0x5 db 0
     946    times 0xe db 0
    951947do_out_dx_ax:                                ; 0xc0570 LB 0x7
    952948    xchg ah, al                               ; 86 c4
     
    10541050    pop dx                                    ; 5a
    10551051    retn                                      ; c3
    1056 _dispi_set_bank_farcall:                     ; 0xc0629 LB 0xe4
     1052_dispi_set_bank_farcall:                     ; 0xc0629 LB 0xa9
    10571053    cmp bx, 00100h                            ; 81 fb 00 01
    10581054    je short 00653h                           ; 74 24
     
    11421138    pop ax                                    ; 58
    11431139    retn                                      ; c3
    1144     call 006b5h                               ; e8 e0 ff
    1145     push dx                                   ; 52
    1146     push ax                                   ; 50
    1147     mov dx, 001ceh                            ; ba ce 01
    1148     mov ax, strict word 00006h                ; b8 06 00
    1149     call 00570h                               ; e8 90 fe
    1150     pop ax                                    ; 58
    1151     mov dx, 001cfh                            ; ba cf 01
    1152     call 00570h                               ; e8 89 fe
    1153     pop dx                                    ; 5a
    1154     retn                                      ; c3
    1155     push dx                                   ; 52
    1156     mov dx, 001ceh                            ; ba ce 01
    1157     mov ax, strict word 00006h                ; b8 06 00
    1158     call 00570h                               ; e8 7d fe
    1159     mov dx, 001cfh                            ; ba cf 01
    1160     call 00577h                               ; e8 7e fe
    1161     pop dx                                    ; 5a
    1162     retn                                      ; c3
    1163     push dx                                   ; 52
    1164     mov dx, 001ceh                            ; ba ce 01
    1165     mov ax, strict word 00007h                ; b8 07 00
    1166     call 00570h                               ; e8 6b fe
    1167     mov dx, 001cfh                            ; ba cf 01
    1168     call 00577h                               ; e8 6c fe
    1169     pop dx                                    ; 5a
    1170     retn                                      ; c3
    1171 _vga_compat_setup:                           ; 0xc070d LB 0xed
     1140_vga_compat_setup:                           ; 0xc06d2 LB 0xed
    11721141    push ax                                   ; 50
    11731142    push dx                                   ; 52
    11741143    mov dx, 001ceh                            ; ba ce 01
    11751144    mov ax, strict word 00001h                ; b8 01 00
    1176     call 00570h                               ; e8 58 fe
     1145    call 00570h                               ; e8 93 fe
    11771146    mov dx, 001cfh                            ; ba cf 01
    1178     call 00577h                               ; e8 59 fe
     1147    call 00577h                               ; e8 94 fe
    11791148    push ax                                   ; 50
    11801149    mov dx, 003d4h                            ; ba d4 03
     
    11901159    out DX, ax                                ; ef
    11911160    pop ax                                    ; 58
    1192     call 006b5h                               ; e8 80 ff
     1161    call 006b5h                               ; e8 bb ff
    11931162    mov dx, 001ceh                            ; ba ce 01
    11941163    mov ax, strict word 00002h                ; b8 02 00
    1195     call 00570h                               ; e8 32 fe
     1164    call 00570h                               ; e8 6d fe
    11961165    mov dx, 001cfh                            ; ba cf 01
    1197     call 00577h                               ; e8 33 fe
     1166    call 00577h                               ; e8 6e fe
    11981167    dec ax                                    ; 48
    11991168    push ax                                   ; 50
     
    12101179    and AL, strict byte 0bdh                  ; 24 bd
    12111180    test ah, 001h                             ; f6 c4 01
    1212     je short 0075dh                           ; 74 02
     1181    je short 00722h                           ; 74 02
    12131182    or AL, strict byte 002h                   ; 0c 02
    12141183    test ah, 002h                             ; f6 c4 02
    1215     je short 00764h                           ; 74 02
     1184    je short 00729h                           ; 74 02
    12161185    or AL, strict byte 040h                   ; 0c 40
    12171186    out DX, AL                                ; ee
     
    12501219    mov dx, 001ceh                            ; ba ce 01
    12511220    mov ax, strict word 00003h                ; b8 03 00
    1252     call 00570h                               ; e8 c2 fd
     1221    call 00570h                               ; e8 fd fd
    12531222    mov dx, 001cfh                            ; ba cf 01
    1254     call 00577h                               ; e8 c3 fd
     1223    call 00577h                               ; e8 fe fd
    12551224    cmp AL, strict byte 008h                  ; 3c 08
    1256     jc short 007f8h                           ; 72 40
     1225    jc short 007bdh                           ; 72 40
    12571226    mov dx, 003d4h                            ; ba d4 03
    12581227    mov AL, strict byte 014h                  ; b0 14
     
    12911260    pop dx                                    ; 5a
    12921261    pop ax                                    ; 58
    1293 _vbe_has_vbe_display:                        ; 0xc07fa LB 0x13
     1262_vbe_has_vbe_display:                        ; 0xc07bf LB 0x13
    12941263    push DS                                   ; 1e
    12951264    push bx                                   ; 53
     
    13041273    pop DS                                    ; 1f
    13051274    retn                                      ; c3
    1306 vbe_biosfn_return_current_mode:              ; 0xc080d LB 0x25
     1275vbe_biosfn_return_current_mode:              ; 0xc07d2 LB 0x25
    13071276    push DS                                   ; 1e
    13081277    mov ax, strict word 00040h                ; b8 40 00
    13091278    mov ds, ax                                ; 8e d8
    1310     call 005f1h                               ; e8 db fd
     1279    call 005f1h                               ; e8 16 fe
    13111280    and ax, strict byte 00001h                ; 83 e0 01
    1312     je short 00824h                           ; 74 09
     1281    je short 007e9h                           ; 74 09
    13131282    mov bx, 000bah                            ; bb ba 00
    13141283    mov ax, word [bx]                         ; 8b 07
    13151284    db  08bh, 0d8h
    13161285    ; mov bx, ax                                ; 8b d8
    1317     jne short 0082dh                          ; 75 09
     1286    jne short 007f2h                          ; 75 09
    13181287    mov bx, strict word 00049h                ; bb 49 00
    13191288    mov al, byte [bx]                         ; 8a 07
     
    13251294    pop DS                                    ; 1f
    13261295    retn                                      ; c3
    1327 vbe_biosfn_display_window_control:           ; 0xc0832 LB 0x2d
     1296vbe_biosfn_display_window_control:           ; 0xc07f7 LB 0x2d
    13281297    cmp bl, 000h                              ; 80 fb 00
    1329     jne short 0085bh                          ; 75 24
     1298    jne short 00820h                          ; 75 24
    13301299    cmp bh, 001h                              ; 80 ff 01
    1331     je short 00852h                           ; 74 16
    1332     jc short 00842h                           ; 72 04
     1300    je short 00817h                           ; 74 16
     1301    jc short 00807h                           ; 72 04
    13331302    mov ax, 00100h                            ; b8 00 01
    13341303    retn                                      ; c3
    13351304    db  08bh, 0c2h
    13361305    ; mov ax, dx                                ; 8b c2
    1337     call 00603h                               ; e8 bc fd
    1338     call 00617h                               ; e8 cd fd
     1306    call 00603h                               ; e8 f7 fd
     1307    call 00617h                               ; e8 08 fe
    13391308    db  03bh, 0c2h
    13401309    ; cmp ax, dx                                ; 3b c2
    1341     jne short 0085bh                          ; 75 0d
     1310    jne short 00820h                          ; 75 0d
    13421311    mov ax, strict word 0004fh                ; b8 4f 00
    13431312    retn                                      ; c3
    1344     call 00617h                               ; e8 c2 fd
     1313    call 00617h                               ; e8 fd fd
    13451314    db  08bh, 0d0h
    13461315    ; mov dx, ax                                ; 8b d0
     
    13491318    mov ax, 0014fh                            ; b8 4f 01
    13501319    retn                                      ; c3
    1351 vbe_biosfn_set_get_logical_scan_line_length: ; 0xc085f LB 0x4d
     1320vbe_biosfn_set_get_display_start:            ; 0xc0824 LB 0x34
     1321    cmp bl, 080h                              ; 80 fb 80
     1322    je short 00834h                           ; 74 0b
     1323    cmp bl, 001h                              ; 80 fb 01
     1324    je short 00848h                           ; 74 1a
     1325    jc short 0083ah                           ; 72 0a
     1326    mov ax, 00100h                            ; b8 00 01
     1327    retn                                      ; c3
     1328    call 00589h                               ; e8 52 fd
     1329    call 0057ch                               ; e8 42 fd
    13521330    db  08bh, 0c1h
    13531331    ; mov ax, cx                                ; 8b c1
    1354     cmp bl, 001h                              ; 80 fb 01
    1355     je short 0088ah                           ; 74 24
    1356     cmp bl, 002h                              ; 80 fb 02
    1357     je short 00871h                           ; 74 06
    1358     jc short 00887h                           ; 72 1a
    1359     mov ax, 00100h                            ; b8 00 01
    1360     retn                                      ; c3
    1361     push ax                                   ; 50
    1362     call 00596h                               ; e8 21 fd
    1363     db  032h, 0ffh
    1364     ; xor bh, bh                                ; 32 ff
    1365     db  08ah, 0dch
    1366     ; mov bl, ah                                ; 8a dc
    1367     db  00ah, 0dbh
    1368     ; or bl, bl                                 ; 0a db
    1369     pop ax                                    ; 58
    1370     jne short 00883h                          ; 75 05
    1371     sal ax, 003h                              ; c1 e0 03
    1372     mov BL, strict byte 001h                  ; b3 01
    1373     db  033h, 0d2h
    1374     ; xor dx, dx                                ; 33 d2
    1375     div bx                                    ; f7 f3
    1376     call 006d2h                               ; e8 48 fe
    1377     call 00596h                               ; e8 09 fd
    1378     db  032h, 0ffh
    1379     ; xor bh, bh                                ; 32 ff
    1380     db  08ah, 0dch
    1381     ; mov bl, ah                                ; 8a dc
    1382     call 006e9h                               ; e8 55 fe
     1332    call 00669h                               ; e8 2a fe
     1333    db  08bh, 0c2h
     1334    ; mov ax, dx                                ; 8b c2
     1335    call 0068fh                               ; e8 4b fe
     1336    mov ax, strict word 0004fh                ; b8 4f 00
     1337    retn                                      ; c3
     1338    call 0067dh                               ; e8 32 fe
    13831339    db  08bh, 0c8h
    13841340    ; mov cx, ax                                ; 8b c8
    1385     db  00ah, 0dbh
    1386     ; or bl, bl                                 ; 0a db
    1387     jne short 0089fh                          ; 75 05
    1388     shr ax, 003h                              ; c1 e8 03
    1389     mov BL, strict byte 001h                  ; b3 01
    1390     mul bx                                    ; f7 e3
    1391     db  08bh, 0d8h
    1392     ; mov bx, ax                                ; 8b d8
    1393     call 006fbh                               ; e8 55 fe
    1394     db  08bh, 0d0h
    1395     ; mov dx, ax                                ; 8b d0
    1396     mov ax, strict word 0004fh                ; b8 4f 00
    1397     retn                                      ; c3
    1398 vbe_biosfn_set_get_display_start:            ; 0xc08ac LB 0x34
    1399     cmp bl, 080h                              ; 80 fb 80
    1400     je short 008bch                           ; 74 0b
    1401     cmp bl, 001h                              ; 80 fb 01
    1402     je short 008d0h                           ; 74 1a
    1403     jc short 008c2h                           ; 72 0a
    1404     mov ax, 00100h                            ; b8 00 01
    1405     retn                                      ; c3
    1406     call 00589h                               ; e8 ca fc
    1407     call 0057ch                               ; e8 ba fc
    1408     db  08bh, 0c1h
    1409     ; mov ax, cx                                ; 8b c1
    1410     call 00669h                               ; e8 a2 fd
    1411     db  08bh, 0c2h
    1412     ; mov ax, dx                                ; 8b c2
    1413     call 0068fh                               ; e8 c3 fd
    1414     mov ax, strict word 0004fh                ; b8 4f 00
    1415     retn                                      ; c3
    1416     call 0067dh                               ; e8 aa fd
    1417     db  08bh, 0c8h
    1418     ; mov cx, ax                                ; 8b c8
    1419     call 006a3h                               ; e8 cb fd
     1341    call 006a3h                               ; e8 53 fe
    14201342    db  08bh, 0d0h
    14211343    ; mov dx, ax                                ; 8b d0
     
    14241346    mov ax, strict word 0004fh                ; b8 4f 00
    14251347    retn                                      ; c3
    1426 vbe_biosfn_set_get_dac_palette_format:       ; 0xc08e0 LB 0x37
     1348vbe_biosfn_set_get_dac_palette_format:       ; 0xc0858 LB 0x37
    14271349    cmp bl, 001h                              ; 80 fb 01
    1428     je short 00903h                           ; 74 1e
    1429     jc short 008ebh                           ; 72 04
     1350    je short 0087bh                           ; 74 1e
     1351    jc short 00863h                           ; 72 04
    14301352    mov ax, 00100h                            ; b8 00 01
    14311353    retn                                      ; c3
    1432     call 005f1h                               ; e8 03 fd
     1354    call 005f1h                               ; e8 8b fd
    14331355    cmp bh, 006h                              ; 80 ff 06
    1434     je short 008fdh                           ; 74 0a
     1356    je short 00875h                           ; 74 0a
    14351357    cmp bh, 008h                              ; 80 ff 08
    1436     jne short 00913h                          ; 75 1b
     1358    jne short 0088bh                          ; 75 1b
    14371359    or ax, strict byte 00020h                 ; 83 c8 20
    1438     jne short 00900h                          ; 75 03
     1360    jne short 00878h                          ; 75 03
    14391361    and ax, strict byte 0ffdfh                ; 83 e0 df
    1440     call 005ddh                               ; e8 da fc
     1362    call 005ddh                               ; e8 62 fd
    14411363    mov BH, strict byte 006h                  ; b7 06
    1442     call 005f1h                               ; e8 e9 fc
     1364    call 005f1h                               ; e8 71 fd
    14431365    and ax, strict byte 00020h                ; 83 e0 20
    1444     je short 0090fh                           ; 74 02
     1366    je short 00887h                           ; 74 02
    14451367    mov BH, strict byte 008h                  ; b7 08
    14461368    mov ax, strict word 0004fh                ; b8 4f 00
     
    14481370    mov ax, 0014fh                            ; b8 4f 01
    14491371    retn                                      ; c3
    1450 vbe_biosfn_set_get_palette_data:             ; 0xc0917 LB 0x57
     1372vbe_biosfn_set_get_palette_data:             ; 0xc088f LB 0x57
    14511373    test bl, bl                               ; 84 db
    1452     je short 0092ah                           ; 74 0f
     1374    je short 008a2h                           ; 74 0f
    14531375    cmp bl, 001h                              ; 80 fb 01
    1454     je short 0094ah                           ; 74 2a
     1376    je short 008c2h                           ; 74 2a
    14551377    cmp bl, 003h                              ; 80 fb 03
    1456     jbe short 0096ah                          ; 76 45
     1378    jbe short 008e2h                          ; 76 45
    14571379    cmp bl, 080h                              ; 80 fb 80
    1458     jne short 00966h                          ; 75 3c
     1380    jne short 008deh                          ; 75 3c
    14591381    pushaw                                    ; 60
    14601382    push DS                                   ; 1e
     
    14791401    ; mov al, bl                                ; 8a c3
    14801402    out DX, AL                                ; ee
    1481     loop 00937h                               ; e2 f3
     1403    loop 008afh                               ; e2 f3
    14821404    pop DS                                    ; 1f
    14831405    popaw                                     ; 61
     
    15031425    ; mov ax, bx                                ; 8b c3
    15041426    stosw                                     ; ab
    1505     loop 00956h                               ; e2 f3
     1427    loop 008ceh                               ; e2 f3
    15061428    popaw                                     ; 61
    1507     jmp short 00946h                          ; eb e0
     1429    jmp short 008beh                          ; eb e0
    15081430    mov ax, 0014fh                            ; b8 4f 01
    15091431    retn                                      ; c3
    15101432    mov ax, 0024fh                            ; b8 4f 02
    15111433    retn                                      ; c3
    1512 vbe_biosfn_return_protected_mode_interface: ; 0xc096e LB 0x17
     1434vbe_biosfn_return_protected_mode_interface: ; 0xc08e6 LB 0x17
    15131435    test bl, bl                               ; 84 db
    1514     jne short 00981h                          ; 75 0f
     1436    jne short 008f9h                          ; 75 0f
    15151437    mov di, 0c000h                            ; bf 00 c0
    15161438    mov es, di                                ; 8e c7
     
    15221444    retn                                      ; c3
    15231445
    1524   ; Padding 0x7b bytes at 0xc0985
    1525   times 123 db 0
     1446  ; Padding 0x103 bytes at 0xc08fd
     1447  times 259 db 0
    15261448
    1527 section _TEXT progbits vstart=0xa00 align=1 ; size=0x316b class=CODE group=AUTO
     1449section _TEXT progbits vstart=0xa00 align=1 ; size=0x3282 class=CODE group=AUTO
    15281450set_int_vector_:                             ; 0xc0a00 LB 0x1b
    15291451    push bx                                   ; 53
     
    15811503    call 00a1bh                               ; e8 ab ff
    15821504    call 00a37h                               ; e8 c4 ff
    1583     call 03689h                               ; e8 13 2c
     1505    call 036f0h                               ; e8 7a 2c
    15841506    mov dx, strict word 00022h                ; ba 22 00
    15851507    mov ax, strict word 00010h                ; b8 10 00
     
    22722194    and AL, strict byte 080h                  ; 24 80
    22732195    mov byte [bp-012h], al                    ; 88 46 ee
    2274     call 007fah                               ; e8 c8 f7
     2196    call 007bfh                               ; e8 8d f7
    22752197    test ax, ax                               ; 85 c0
    22762198    je short 01042h                           ; 74 0c
     
    60675989    pop bx                                    ; 5b
    60685990    retn                                      ; c3
    6069 write_dword_:                                ; 0xc31af LB 0x7f
     5991write_dword_:                                ; 0xc31af LB 0x96
    60705992    push si                                   ; 56
    60715993    push bp                                   ; 55
     
    60896011    add ax, 00304h                            ; 05 04 03
    60906012    add al, byte [bx+di]                      ; 02 01
    6091     add cl, dl                                ; 00 d1
    6092     xor ax, 0325ah                            ; 35 5a 32
    6093     xchg di, ax                               ; 97
    6094     xor ch, byte [si-043ceh]                  ; 32 ac 32 bc
    6095     db  032h, 0cfh
    6096     ; xor cl, bh                                ; 32 cf
    6097     db  032h, 0dfh
    6098     ; xor bl, bh                                ; 32 df
    6099     db  032h, 0e8h
    6100     ; xor ch, al                                ; 32 e8
    6101     xor ah, byte [bx+si]                      ; 32 20
    6102     xor sp, word [si]                         ; 33 24
    6103     xor si, word [di]                         ; 33 35
    6104     xor dx, word [bp+si+033h]                 ; 33 52 33
    6105     outsw                                     ; 6f
    6106     xor dx, word [bx+si-052cdh]               ; 33 90 33 ad
    6107     db  033h, 0c3h
    6108     ; xor ax, bx                                ; 33 c3
    6109     db  033h, 0cfh
    6110     ; xor cx, di                                ; 33 cf
    6111     xor bx, word [bx+di-031cch]               ; 33 99 34 ce
    6112     xor AL, strict byte 0fdh                  ; 34 fd
    6113     xor AL, strict byte 012h                  ; 34 12
    6114     xor ax, 03554h                            ; 35 54 35
     6013    add dh, cl                                ; 00 ce
     6014    xor ax, 03276h                            ; 35 76 32
     6015    mov BL, strict byte 032h                  ; b3 32
     6016    db  0c6h, 032h, 0d6h
     6017    ; mov byte [bp+si], 0d6h                    ; c6 32 d6
     6018    db  032h, 0e9h
     6019    ; xor ch, cl                                ; 32 e9
     6020    db  032h, 0f9h
     6021    ; xor bh, cl                                ; 32 f9
     6022    xor al, byte [bx+si]                      ; 32 00
     6023    xor di, word [bx+si]                      ; 33 38
     6024    xor di, word [si]                         ; 33 3c
     6025    xor cx, word [di+033h]                    ; 33 4d 33
     6026    push 08333h                               ; 68 33 83
     6027    xor bx, word [bp+di-047cdh]               ; 33 9b 33 b8
     6028    db  033h, 0cch
     6029    ; xor cx, sp                                ; 33 cc
     6030    db  033h, 0d8h
     6031    ; xor bx, ax                                ; 33 d8
     6032    xor cx, word [bx-03bcch]                  ; 33 8f 34 c4
     6033    xor AL, strict byte 0f5h                  ; 34 f5
     6034    xor AL, strict byte 00ah                  ; 34 0a
     6035    xor ax, 03547h                            ; 35 47 35
    61156036    xor byte [si], ah                         ; 30 24
    61166037    and sp, word [bp+si]                      ; 23 22
     
    61206041    add AL, strict byte 002h                  ; 04 02
    61216042    add word [bx+si], ax                      ; 01 00
    6122     db  0d1h, 035h
    6123     ; sal word [di], 1                          ; d1 35
    6124     out DX, AL                                ; ee
    6125     xor cx, word [bx]                         ; 33 0f
    6126     xor AL, strict byte 01eh                  ; 34 1e
    6127     xor AL, strict byte 02dh                  ; 34 2d
    6128     xor AL, strict byte 0eeh                  ; 34 ee
    6129     xor cx, word [bx]                         ; 33 0f
    6130     xor AL, strict byte 01eh                  ; 34 1e
    6131     xor AL, strict byte 02dh                  ; 34 2d
    6132     xor AL, strict byte 03ch                  ; 34 3c
    6133     xor AL, strict byte 048h                  ; 34 48
    6134     xor AL, strict byte 063h                  ; 34 63
     6043    into                                      ; ce
     6044    xor ax, 033f5h                            ; 35 f5 33
     6045    push SS                                   ; 16
     6046    xor AL, strict byte 025h                  ; 34 25
     6047    xor AL, strict byte 034h                  ; 34 34
     6048    xor AL, strict byte 0f5h                  ; 34 f5
     6049    xor dx, word [02534h]                     ; 33 16 34 25
     6050    xor AL, strict byte 034h                  ; 34 34
     6051    xor AL, strict byte 043h                  ; 34 43
     6052    xor AL, strict byte 04fh                  ; 34 4f
     6053    xor AL, strict byte 068h                  ; 34 68
    61356054    xor AL, strict byte 06dh                  ; 34 6d
     6055    xor AL, strict byte 072h                  ; 34 72
    61366056    xor AL, strict byte 077h                  ; 34 77
    6137     xor AL, strict byte 081h                  ; 34 81
    6138     db  034h
    6139 _int10_func:                                 ; 0xc322e LB 0x3aa
     6057    xor AL, strict byte 00ah                  ; 34 0a
     6058    or word [00204h], ax                      ; 09 06 04 02
     6059    add word [bx+si], ax                      ; 01 00
     6060    retn 06d35h                               ; c2 35 6d
     6061    xor ax, 0357ah                            ; 35 7a 35
     6062    mov dh, byte [di]                         ; 8a 35
     6063    call far 0c235h:0af35h                    ; 9a 35 af 35 c2
     6064    xor ax, 035c2h                            ; 35 c2 35
     6065_int10_func:                                 ; 0xc3245 LB 0x390
    61406066    push bp                                   ; 55
    61416067    mov bp, sp                                ; 89 e5
     
    61476073    shr ax, 008h                              ; c1 e8 08
    61486074    cmp ax, strict word 0004fh                ; 3d 4f 00
    6149     jnbe short 032a9h                         ; 77 67
     6075    jnbe short 032c3h                         ; 77 6a
    61506076    push CS                                   ; 0e
    61516077    pop ES                                    ; 07
     
    61556081    sal cx, 1                                 ; d1 e1
    61566082    mov di, cx                                ; 89 cf
    6157     mov ax, word [cs:di+031d6h]               ; 2e 8b 85 d6 31
    6158     mov cl, byte [bp+012h]                    ; 8a 4e 12
    6159     jmp ax                                    ; ff e0
     6083    mov bx, word [cs:di+031d6h]               ; 2e 8b 9d d6 31
     6084    mov ax, word [bp+012h]                    ; 8b 46 12
     6085    xor ah, ah                                ; 30 e4
     6086    mov dl, byte [bp+012h]                    ; 8a 56 12
     6087    jmp bx                                    ; ff e3
    61606088    mov al, byte [bp+012h]                    ; 8a 46 12
    61616089    xor ah, ah                                ; 30 e4
    6162     call 0101ch                               ; e8 ba dd
     6090    call 0101ch                               ; e8 9e dd
    61636091    mov ax, word [bp+012h]                    ; 8b 46 12
    61646092    and ax, strict word 0007fh                ; 25 7f 00
    61656093    cmp ax, strict word 00007h                ; 3d 07 00
    6166     je short 03282h                           ; 74 15
     6094    je short 0329eh                           ; 74 15
    61676095    cmp ax, strict word 00006h                ; 3d 06 00
    6168     je short 03279h                           ; 74 07
     6096    je short 03295h                           ; 74 07
    61696097    cmp ax, strict word 00005h                ; 3d 05 00
    6170     jbe short 03282h                          ; 76 0b
    6171     jmp short 0328bh                          ; eb 12
     6098    jbe short 0329eh                          ; 76 0b
     6099    jmp short 032a7h                          ; eb 12
    61726100    mov ax, word [bp+012h]                    ; 8b 46 12
    61736101    xor al, al                                ; 30 c0
    61746102    or AL, strict byte 03fh                   ; 0c 3f
    6175     jmp short 03292h                          ; eb 10
     6103    jmp short 032aeh                          ; eb 10
    61766104    mov ax, word [bp+012h]                    ; 8b 46 12
    61776105    xor al, al                                ; 30 c0
    61786106    or AL, strict byte 030h                   ; 0c 30
    6179     jmp short 03292h                          ; eb 07
     6107    jmp short 032aeh                          ; eb 07
    61806108    mov ax, word [bp+012h]                    ; 8b 46 12
    61816109    xor al, al                                ; 30 c0
    61826110    or AL, strict byte 020h                   ; 0c 20
    61836111    mov word [bp+012h], ax                    ; 89 46 12
    6184     jmp short 032a9h                          ; eb 12
     6112    jmp short 032c3h                          ; eb 10
    61856113    mov al, byte [bp+010h]                    ; 8a 46 10
    6186     xor ah, ah                                ; 30 e4
    61876114    mov dx, ax                                ; 89 c2
    61886115    mov ax, word [bp+010h]                    ; 8b 46 10
    61896116    shr ax, 008h                              ; c1 e8 08
    61906117    xor ah, ah                                ; 30 e4
    6191     call 00dcbh                               ; e8 22 db
    6192     jmp near 035d1h                           ; e9 25 03
     6118    call 00dcbh                               ; e8 08 db
     6119    jmp near 035ceh                           ; e9 08 03
    61936120    mov dx, word [bp+00eh]                    ; 8b 56 0e
    61946121    mov ax, word [bp+00ch]                    ; 8b 46 0c
    61956122    shr ax, 008h                              ; c1 e8 08
    61966123    xor ah, ah                                ; 30 e4
    6197     call 00e79h                               ; e8 bf db
    6198     jmp short 032a9h                          ; eb ed
     6124    call 00e79h                               ; e8 a5 db
     6125    jmp short 032c3h                          ; eb ed
    61996126    lea bx, [bp+00eh]                         ; 8d 5e 0e
    62006127    lea dx, [bp+010h]                         ; 8d 56 10
     
    62026129    shr ax, 008h                              ; c1 e8 08
    62036130    xor ah, ah                                ; 30 e4
    6204     call 00a8bh                               ; e8 be d7
    6205     jmp short 032a9h                          ; eb da
    6206     xor ax, ax                                ; 31 c0
     6131    call 00a8bh                               ; e8 a4 d7
     6132    jmp short 032c3h                          ; eb da
     6133    xor al, al                                ; 30 c0
    62076134    mov word [bp+012h], ax                    ; 89 46 12
    62086135    mov word [bp+00ch], ax                    ; 89 46 0c
    62096136    mov word [bp+010h], ax                    ; 89 46 10
    62106137    mov word [bp+00eh], ax                    ; 89 46 0e
    6211     jmp short 032a9h                          ; eb ca
    6212     mov al, cl                                ; 88 c8
    6213     xor ah, ah                                ; 30 e4
    6214     call 00f2eh                               ; e8 48 dc
    6215     jmp short 032a9h                          ; eb c1
     6138    jmp short 032c3h                          ; eb ca
     6139    mov al, dl                                ; 88 d0
     6140    call 00f2eh                               ; e8 30 dc
     6141    jmp short 032c3h                          ; eb c3
    62166142    mov ax, strict word 00001h                ; b8 01 00
    62176143    push ax                                   ; 50
     
    62366162    mov dx, ax                                ; 89 c2
    62376163    mov al, byte [bp+012h]                    ; 8a 46 12
    6238     call 01647h                               ; e8 29 e3
    6239     jmp short 032a9h                          ; eb 89
    6240     xor ax, ax                                ; 31 c0
    6241     jmp short 032ebh                          ; eb c7
     6164    call 01647h                               ; e8 11 e3
     6165    jmp short 032c3h                          ; eb 8b
     6166    xor al, al                                ; 30 c0
     6167    jmp short 03303h                          ; eb c7
    62426168    lea dx, [bp+012h]                         ; 8d 56 12
    62436169    mov ax, word [bp+00ch]                    ; 8b 46 0c
    62446170    shr ax, 008h                              ; c1 e8 08
    62456171    xor ah, ah                                ; 30 e4
    6246     call 00ad1h                               ; e8 9f d7
    6247     jmp near 035d1h                           ; e9 9c 02
     6172    call 00ad1h                               ; e8 87 d7
     6173    jmp near 035ceh                           ; e9 81 02
    62486174    mov cx, word [bp+010h]                    ; 8b 4e 10
    62496175    mov al, byte [bp+00ch]                    ; 8a 46 0c
    6250     xor ah, ah                                ; 30 e4
    62516176    mov bx, ax                                ; 89 c3
    62526177    mov ax, word [bp+00ch]                    ; 8b 46 0c
     
    62556180    mov dx, ax                                ; 89 c2
    62566181    mov al, byte [bp+012h]                    ; 8a 46 12
    6257     call 01e7eh                               ; e8 2f eb
    6258     jmp near 035d1h                           ; e9 7f 02
     6182    call 01e7eh                               ; e8 19 eb
     6183    jmp near 035ceh                           ; e9 66 02
    62596184    mov cx, word [bp+010h]                    ; 8b 4e 10
    62606185    mov al, byte [bp+00ch]                    ; 8a 46 0c
    6261     xor ah, ah                                ; 30 e4
    62626186    mov bx, ax                                ; 89 c3
    62636187    mov ax, word [bp+00ch]                    ; 8b 46 0c
     
    62666190    mov dx, ax                                ; 89 c2
    62676191    mov al, byte [bp+012h]                    ; 8a 46 12
    6268     call 0200bh                               ; e8 9f ec
    6269     jmp near 035d1h                           ; e9 62 02
     6192    call 0200bh                               ; e8 8b ec
     6193    jmp near 035ceh                           ; e9 4b 02
    62706194    mov cx, word [bp+00eh]                    ; 8b 4e 0e
    62716195    mov bx, word [bp+010h]                    ; 8b 5e 10
    6272     mov al, byte [bp+012h]                    ; 8a 46 12
    6273     xor ah, ah                                ; 30 e4
     6196    mov al, dl                                ; 88 d0
    62746197    mov dx, ax                                ; 89 c2
    62756198    mov ax, word [bp+00ch]                    ; 8b 46 0c
    62766199    shr ax, 008h                              ; c1 e8 08
    6277     mov word [bp-006h], ax                    ; 89 46 fa
    6278     mov al, byte [bp-006h]                    ; 8a 46 fa
    6279     xor ah, ah                                ; 30 e4
    6280     call 021a1h                               ; e8 14 ee
    6281     jmp near 035d1h                           ; e9 41 02
     6200    xor ah, ah                                ; 30 e4
     6201    call 021a1h                               ; e8 09 ee
     6202    jmp near 035ceh                           ; e9 33 02
    62826203    lea cx, [bp+012h]                         ; 8d 4e 12
    62836204    mov bx, word [bp+00eh]                    ; 8b 5e 0e
     
    62886209    mov al, byte [bp-006h]                    ; 8a 46 fa
    62896210    xor ah, ah                                ; 30 e4
    6290     call 00bfch                               ; e8 52 d8
    6291     jmp near 035d1h                           ; e9 24 02
     6211    call 00bfch                               ; e8 47 d8
     6212    jmp near 035ceh                           ; e9 16 02
    62926213    mov cx, strict word 00002h                ; b9 02 00
    62936214    mov al, byte [bp+00ch]                    ; 8a 46 0c
    6294     xor ah, ah                                ; 30 e4
    62956215    mov bx, ax                                ; 89 c3
    62966216    mov dx, 000ffh                            ; ba ff 00
    62976217    mov al, byte [bp+012h]                    ; 8a 46 12
    6298     call 0231ch                               ; e8 5c ef
    6299     jmp near 035d1h                           ; e9 0e 02
     6218    call 0231ch                               ; e8 53 ef
     6219    jmp near 035ceh                           ; e9 02 02
    63006220    mov dx, word [bp+010h]                    ; 8b 56 10
    63016221    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6302     call 00d3eh                               ; e8 72 d9
    6303     jmp near 035d1h                           ; e9 02 02
    6304     mov ax, word [bp+012h]                    ; 8b 46 12
    6305     xor ah, ah                                ; 30 e4
     6222    call 00d3eh                               ; e8 69 d9
     6223    jmp near 035ceh                           ; e9 f6 01
    63066224    cmp ax, strict word 00030h                ; 3d 30 00
    6307     jnbe short 03445h                         ; 77 6c
     6225    jnbe short 0344ch                         ; 77 6f
    63086226    push CS                                   ; 0e
    63096227    pop ES                                    ; 07
     
    63136231    sal cx, 1                                 ; d1 e1
    63146232    mov di, cx                                ; 89 cf
    6315     mov ax, word [cs:di+03210h]               ; 2e 8b 85 10 32
    6316     jmp ax                                    ; ff e0
     6233    mov dx, word [cs:di+03210h]               ; 2e 8b 95 10 32
     6234    mov al, byte [bp+00ch]                    ; 8a 46 0c
     6235    jmp dx                                    ; ff e2
    63176236    mov ax, word [bp+00ch]                    ; 8b 46 0c
    63186237    shr ax, 008h                              ; c1 e8 08
     
    63266245    mov bx, word [bp+008h]                    ; 8b 5e 08
    63276246    mov dx, word [bp+016h]                    ; 8b 56 16
    6328     call 026b5h                               ; e8 a8 f2
    6329     jmp short 03445h                          ; eb 36
     6247    call 026b5h                               ; e8 a1 f2
     6248    jmp short 0344ch                          ; eb 36
    63306249    mov al, byte [bp+00ch]                    ; 8a 46 0c
    63316250    xor ah, ah                                ; 30 e4
    63326251    mov dx, ax                                ; 89 c2
    63336252    mov al, byte [bp+012h]                    ; 8a 46 12
    6334     call 02735h                               ; e8 19 f3
    6335     jmp short 03445h                          ; eb 27
     6253    call 02735h                               ; e8 12 f3
     6254    jmp short 0344ch                          ; eb 27
    63366255    mov al, byte [bp+00ch]                    ; 8a 46 0c
    63376256    xor ah, ah                                ; 30 e4
    63386257    mov dx, ax                                ; 89 c2
    63396258    mov al, byte [bp+012h]                    ; 8a 46 12
    6340     call 027a3h                               ; e8 78 f3
    6341     jmp short 03445h                          ; eb 18
     6259    call 027a3h                               ; e8 71 f3
     6260    jmp short 0344ch                          ; eb 18
    63426261    mov al, byte [bp+00ch]                    ; 8a 46 0c
    63436262    xor ah, ah                                ; 30 e4
    63446263    mov dx, ax                                ; 89 c2
    63456264    mov al, byte [bp+012h]                    ; 8a 46 12
    6346     call 02813h                               ; e8 d9 f3
    6347     jmp short 03445h                          ; eb 09
     6265    call 02813h                               ; e8 d2 f3
     6266    jmp short 0344ch                          ; eb 09
    63486267    mov dx, word [bp+008h]                    ; 8b 56 08
    63496268    mov ax, word [bp+016h]                    ; 8b 46 16
    6350     call 02883h                               ; e8 3e f4
    6351     jmp near 035d1h                           ; e9 89 01
     6269    call 02883h                               ; e8 37 f4
     6270    jmp near 035ceh                           ; e9 7f 01
    63526271    mov al, byte [bp+00eh]                    ; 8a 46 0e
    6353     xor ah, ah                                ; 30 e4
    63546272    push ax                                   ; 50
    63556273    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    63596277    mov cx, ax                                ; 89 c1
    63606278    mov ax, si                                ; 89 f0
    6361     call 02888h                               ; e8 27 f4
    6362     jmp short 03445h                          ; eb e2
    6363     mov al, byte [bp+00ch]                    ; 8a 46 0c
    6364     xor ah, ah                                ; 30 e4
     6279    call 02888h                               ; e8 22 f4
     6280    jmp short 0344ch                          ; eb e4
    63656281    call 0288fh                               ; e8 24 f4
    6366     jmp short 03445h                          ; eb d8
    6367     mov al, byte [bp+00ch]                    ; 8a 46 0c
    6368     xor ah, ah                                ; 30 e4
    6369     call 02894h                               ; e8 1f f4
    6370     jmp short 03445h                          ; eb ce
    6371     mov al, byte [bp+00ch]                    ; 8a 46 0c
    6372     xor ah, ah                                ; 30 e4
    6373     call 02899h                               ; e8 1a f4
    6374     jmp short 03445h                          ; eb c4
     6282    jmp short 0344ch                          ; eb df
     6283    call 02894h                               ; e8 24 f4
     6284    jmp short 0344ch                          ; eb da
     6285    call 02899h                               ; e8 24 f4
     6286    jmp short 0344ch                          ; eb d5
    63756287    lea ax, [bp+00eh]                         ; 8d 46 0e
    63766288    push ax                                   ; 50
     6289    mov ax, word [bp+00ch]                    ; 8b 46 0c
     6290    shr ax, 008h                              ; c1 e8 08
    63776291    lea cx, [bp+010h]                         ; 8d 4e 10
    63786292    lea bx, [bp+008h]                         ; 8d 5e 08
    63796293    lea dx, [bp+016h]                         ; 8d 56 16
     6294    call 00b81h                               ; e8 f4 d6
     6295    jmp short 0344ch                          ; eb bd
    63806296    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6381     shr ax, 008h                              ; c1 e8 08
    6382     call 00b81h                               ; e8 ea d6
    6383     jmp short 03445h                          ; eb ac
    6384     mov ax, word [bp+00ch]                    ; 8b 46 0c
    63856297    xor ah, ah                                ; 30 e4
    63866298    cmp ax, strict word 00036h                ; 3d 36 00
    6387     je short 034c7h                           ; 74 24
     6299    je short 034bdh                           ; 74 24
    63886300    cmp ax, strict word 00035h                ; 3d 35 00
    6389     je short 034b2h                           ; 74 0a
     6301    je short 034a8h                           ; 74 0a
    63906302    cmp ax, strict word 00020h                ; 3d 20 00
    6391     jne short 034fah                          ; 75 4d
    6392     call 0289eh                               ; e8 ee f3
    6393     jmp short 034fah                          ; eb 48
    6394     mov al, cl                                ; 88 c8
     6303    jne short 034f2h                          ; 75 4f
     6304    call 0289eh                               ; e8 f8 f3
     6305    jmp short 034f2h                          ; eb 4a
     6306    mov al, dl                                ; 88 d0
    63956307    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    63966308    mov dx, word [bp+016h]                    ; 8b 56 16
    6397     call 028a3h                               ; e8 e6 f3
     6309    call 028a3h                               ; e8 f0 f3
    63986310    mov ax, word [bp+012h]                    ; 8b 46 12
    63996311    xor al, al                                ; 30 c0
    64006312    or AL, strict byte 012h                   ; 0c 12
    6401     jmp near 03292h                           ; e9 cb fd
    6402     mov al, cl                                ; 88 c8
    6403     call 028a8h                               ; e8 dc f3
    6404     jmp short 034bdh                          ; eb ef
     6313    jmp near 032aeh                           ; e9 f1 fd
     6314    mov al, dl                                ; 88 d0
     6315    call 028a8h                               ; e8 e6 f3
     6316    jmp short 034b3h                          ; eb ef
    64056317    push word [bp+008h]                       ; ff 76 08
    64066318    push word [bp+016h]                       ; ff 76 16
    64076319    mov al, byte [bp+00eh]                    ; 8a 46 0e
    6408     xor ah, ah                                ; 30 e4
    64096320    push ax                                   ; 50
    64106321    mov ax, word [bp+00eh]                    ; 8b 46 0e
     
    64176328    shr ax, 008h                              ; c1 e8 08
    64186329    xor ah, ah                                ; 30 e4
     6330    xor dh, dh                                ; 30 f6
     6331    mov si, dx                                ; 89 d6
     6332    mov cx, word [bp+010h]                    ; 8b 4e 10
    64196333    mov dx, ax                                ; 89 c2
    6420     mov al, cl                                ; 88 c8
    6421     mov cx, word [bp+010h]                    ; 8b 4e 10
    6422     call 028adh                               ; e8 b3 f3
    6423     jmp near 035d1h                           ; e9 d4 00
     6334    mov ax, si                                ; 89 f0
     6335    call 028adh                               ; e8 bb f3
     6336    jmp near 035ceh                           ; e9 d9 00
    64246337    mov bx, si                                ; 89 f3
    64256338    mov dx, word [bp+016h]                    ; 8b 56 16
    64266339    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6427     call 0294fh                               ; e8 47 f4
     6340    call 0294fh                               ; e8 4f f4
    64286341    mov ax, word [bp+012h]                    ; 8b 46 12
    64296342    xor al, al                                ; 30 c0
    64306343    or AL, strict byte 01bh                   ; 0c 1b
    6431     jmp near 03292h                           ; e9 80 fd
    6432     mov ax, word [bp+012h]                    ; 8b 46 12
    6433     xor ah, ah                                ; 30 e4
     6344    jmp near 032aeh                           ; e9 a4 fd
    64346345    cmp ax, strict word 00002h                ; 3d 02 00
    6435     je short 0353eh                           ; 74 22
     6346    je short 03531h                           ; 74 22
    64366347    cmp ax, strict word 00001h                ; 3d 01 00
    6437     je short 03530h                           ; 74 0f
     6348    je short 03523h                           ; 74 0f
    64386349    test ax, ax                               ; 85 c0
    6439     jne short 0354ah                          ; 75 25
     6350    jne short 0353dh                          ; 75 25
    64406351    lea dx, [bp+00ch]                         ; 8d 56 0c
    64416352    mov ax, word [bp+010h]                    ; 8b 46 10
    6442     call 02a74h                               ; e8 46 f5
    6443     jmp short 0354ah                          ; eb 1a
     6353    call 02a74h                               ; e8 53 f5
     6354    jmp short 0353dh                          ; eb 1a
    64446355    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    64456356    mov dx, word [bp+016h]                    ; 8b 56 16
    64466357    mov ax, word [bp+010h]                    ; 8b 46 10
    6447     call 02a86h                               ; e8 4a f5
    6448     jmp short 0354ah                          ; eb 0c
     6358    call 02a86h                               ; e8 57 f5
     6359    jmp short 0353dh                          ; eb 0c
    64496360    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    64506361    mov dx, word [bp+016h]                    ; 8b 56 16
    64516362    mov ax, word [bp+010h]                    ; 8b 46 10
    6452     call 02e07h                               ; e8 bd f8
     6363    call 02e07h                               ; e8 ca f8
    64536364    mov ax, word [bp+012h]                    ; 8b 46 12
    64546365    xor al, al                                ; 30 c0
    64556366    or AL, strict byte 01ch                   ; 0c 1c
    6456     jmp near 03292h                           ; e9 3e fd
    6457     call 007fah                               ; e8 a3 d2
     6367    jmp near 032aeh                           ; e9 67 fd
     6368    call 007bfh                               ; e8 75 d2
    64586369    test ax, ax                               ; 85 c0
    6459     je short 035aeh                           ; 74 53
     6370    je short 035c0h                           ; 74 72
    64606371    mov ax, word [bp+012h]                    ; 8b 46 12
    64616372    xor ah, ah                                ; 30 e4
    6462     cmp ax, strict word 00002h                ; 3d 02 00
    6463     jc short 03578h                           ; 72 13
    6464     jbe short 0359eh                          ; 76 37
    64656373    cmp ax, strict word 0000ah                ; 3d 0a 00
    6466     je short 035c5h                           ; 74 59
    6467     cmp ax, strict word 00009h                ; 3d 09 00
    6468     je short 035c5h                           ; 74 54
    6469     cmp ax, strict word 00004h                ; 3d 04 00
    6470     je short 035b0h                           ; 74 3a
    6471     jmp short 035c5h                          ; eb 4d
    6472     cmp ax, strict word 00001h                ; 3d 01 00
    6473     je short 0358eh                           ; 74 11
    6474     test ax, ax                               ; 85 c0
    6475     jne short 035c5h                          ; 75 44
     6374    jnbe short 035c2h                         ; 77 6a
     6375    push CS                                   ; 0e
     6376    pop ES                                    ; 07
     6377    mov cx, strict word 00008h                ; b9 08 00
     6378    mov di, 0322eh                            ; bf 2e 32
     6379    repne scasb                               ; f2 ae
     6380    sal cx, 1                                 ; d1 e1
     6381    mov di, cx                                ; 89 cf
     6382    mov ax, word [cs:di+03235h]               ; 2e 8b 85 35 32
     6383    jmp ax                                    ; ff e0
    64766384    mov bx, si                                ; 89 f3
    64776385    mov dx, word [bp+016h]                    ; 8b 56 16
    64786386    lea ax, [bp+012h]                         ; 8d 46 12
    6479     call 0370ah                               ; e8 7e 01
    6480     jmp short 035d1h                          ; eb 43
     6387    call 03771h                               ; e8 f9 01
     6388    jmp short 035ceh                          ; eb 54
    64816389    mov cx, si                                ; 89 f1
    64826390    mov bx, word [bp+016h]                    ; 8b 5e 16
    64836391    mov dx, word [bp+010h]                    ; 8b 56 10
    64846392    lea ax, [bp+012h]                         ; 8d 46 12
    6485     call 03839h                               ; e8 9d 02
    6486     jmp short 035d1h                          ; eb 33
     6393    call 038a0h                               ; e8 18 03
     6394    jmp short 035ceh                          ; eb 44
    64876395    mov cx, si                                ; 89 f1
    64886396    mov bx, word [bp+016h]                    ; 8b 5e 16
    64896397    mov dx, word [bp+00ch]                    ; 8b 56 0c
    64906398    lea ax, [bp+012h]                         ; 8d 46 12
    6491     call 038f6h                               ; e8 4a 03
    6492     jmp short 035d1h                          ; eb 23
    6493     jmp short 035cch                          ; eb 1c
     6399    call 0395dh                               ; e8 c5 03
     6400    jmp short 035ceh                          ; eb 34
    64946401    lea ax, [bp+00ch]                         ; 8d 46 0c
    64956402    push ax                                   ; 50
     
    64986405    mov dx, word [bp+010h]                    ; 8b 56 10
    64996406    lea ax, [bp+012h]                         ; 8d 46 12
    6500     call 03adfh                               ; e8 1c 05
    6501     jmp short 035d1h                          ; eb 0c
     6407    call 03b46h                               ; e8 99 05
     6408    jmp short 035ceh                          ; eb 1f
     6409    lea cx, [bp+00eh]                         ; 8d 4e 0e
     6410    lea bx, [bp+010h]                         ; 8d 5e 10
     6411    lea dx, [bp+00ch]                         ; 8d 56 0c
     6412    lea ax, [bp+012h]                         ; 8d 46 12
     6413    call 03bd2h                               ; e8 14 06
     6414    jmp short 035ceh                          ; eb 0e
     6415    jmp short 035c9h                          ; eb 07
    65026416    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    6503     jmp short 035d1h                          ; eb 05
     6417    jmp short 035ceh                          ; eb 05
    65046418    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    65056419    lea sp, [bp-004h]                         ; 8d 66 fc
     
    65086422    pop bp                                    ; 5d
    65096423    retn                                      ; c3
    6510 dispi_set_xres_:                             ; 0xc35d8 LB 0x1f
     6424dispi_set_xres_:                             ; 0xc35d5 LB 0x1f
    65116425    push bp                                   ; 55
    65126426    mov bp, sp                                ; 89 e5
     
    65166430    mov ax, strict word 00001h                ; b8 01 00
    65176431    mov dx, 001ceh                            ; ba ce 01
    6518     call 00570h                               ; e8 88 cf
     6432    call 00570h                               ; e8 8b cf
    65196433    mov ax, bx                                ; 89 d8
    65206434    mov dx, 001cfh                            ; ba cf 01
    6521     call 00570h                               ; e8 80 cf
     6435    call 00570h                               ; e8 83 cf
    65226436    lea sp, [bp-004h]                         ; 8d 66 fc
    65236437    pop dx                                    ; 5a
     
    65256439    pop bp                                    ; 5d
    65266440    retn                                      ; c3
    6527 dispi_set_yres_:                             ; 0xc35f7 LB 0x1f
     6441dispi_set_yres_:                             ; 0xc35f4 LB 0x1f
    65286442    push bp                                   ; 55
    65296443    mov bp, sp                                ; 89 e5
     
    65336447    mov ax, strict word 00002h                ; b8 02 00
    65346448    mov dx, 001ceh                            ; ba ce 01
    6535     call 00570h                               ; e8 69 cf
     6449    call 00570h                               ; e8 6c cf
    65366450    mov ax, bx                                ; 89 d8
    65376451    mov dx, 001cfh                            ; ba cf 01
    6538     call 00570h                               ; e8 61 cf
     6452    call 00570h                               ; e8 64 cf
    65396453    lea sp, [bp-004h]                         ; 8d 66 fc
    65406454    pop dx                                    ; 5a
     
    65426456    pop bp                                    ; 5d
    65436457    retn                                      ; c3
    6544 dispi_set_bpp_:                              ; 0xc3616 LB 0x1f
     6458dispi_set_bpp_:                              ; 0xc3613 LB 0x1f
    65456459    push bp                                   ; 55
    65466460    mov bp, sp                                ; 89 e5
     
    65506464    mov ax, strict word 00003h                ; b8 03 00
    65516465    mov dx, 001ceh                            ; ba ce 01
    6552     call 00570h                               ; e8 4a cf
     6466    call 00570h                               ; e8 4d cf
    65536467    mov ax, bx                                ; 89 d8
    65546468    mov dx, 001cfh                            ; ba cf 01
    6555     call 00570h                               ; e8 42 cf
     6469    call 00570h                               ; e8 45 cf
    65566470    lea sp, [bp-004h]                         ; 8d 66 fc
    65576471    pop dx                                    ; 5a
     
    65596473    pop bp                                    ; 5d
    65606474    retn                                      ; c3
    6561 in_word_:                                    ; 0xc3635 LB 0x12
     6475dispi_get_bpp_:                              ; 0xc3632 LB 0x19
     6476    push bp                                   ; 55
     6477    mov bp, sp                                ; 89 e5
     6478    push dx                                   ; 52
     6479    mov ax, strict word 00003h                ; b8 03 00
     6480    mov dx, 001ceh                            ; ba ce 01
     6481    call 00570h                               ; e8 31 cf
     6482    mov dx, 001cfh                            ; ba cf 01
     6483    call 00577h                               ; e8 32 cf
     6484    lea sp, [bp-002h]                         ; 8d 66 fe
     6485    pop dx                                    ; 5a
     6486    pop bp                                    ; 5d
     6487    retn                                      ; c3
     6488dispi_set_virt_width_:                       ; 0xc364b LB 0x1f
     6489    push bp                                   ; 55
     6490    mov bp, sp                                ; 89 e5
     6491    push bx                                   ; 53
     6492    push dx                                   ; 52
     6493    mov bx, ax                                ; 89 c3
     6494    mov ax, strict word 00006h                ; b8 06 00
     6495    mov dx, 001ceh                            ; ba ce 01
     6496    call 00570h                               ; e8 15 cf
     6497    mov ax, bx                                ; 89 d8
     6498    mov dx, 001cfh                            ; ba cf 01
     6499    call 00570h                               ; e8 0d cf
     6500    lea sp, [bp-004h]                         ; 8d 66 fc
     6501    pop dx                                    ; 5a
     6502    pop bx                                    ; 5b
     6503    pop bp                                    ; 5d
     6504    retn                                      ; c3
     6505dispi_get_virt_width_:                       ; 0xc366a LB 0x19
     6506    push bp                                   ; 55
     6507    mov bp, sp                                ; 89 e5
     6508    push dx                                   ; 52
     6509    mov ax, strict word 00006h                ; b8 06 00
     6510    mov dx, 001ceh                            ; ba ce 01
     6511    call 00570h                               ; e8 f9 ce
     6512    mov dx, 001cfh                            ; ba cf 01
     6513    call 00577h                               ; e8 fa ce
     6514    lea sp, [bp-002h]                         ; 8d 66 fe
     6515    pop dx                                    ; 5a
     6516    pop bp                                    ; 5d
     6517    retn                                      ; c3
     6518dispi_get_virt_height_:                      ; 0xc3683 LB 0x19
     6519    push bp                                   ; 55
     6520    mov bp, sp                                ; 89 e5
     6521    push dx                                   ; 52
     6522    mov ax, strict word 00007h                ; b8 07 00
     6523    mov dx, 001ceh                            ; ba ce 01
     6524    call 00570h                               ; e8 e0 ce
     6525    mov dx, 001cfh                            ; ba cf 01
     6526    call 00577h                               ; e8 e1 ce
     6527    lea sp, [bp-002h]                         ; 8d 66 fe
     6528    pop dx                                    ; 5a
     6529    pop bp                                    ; 5d
     6530    retn                                      ; c3
     6531in_word_:                                    ; 0xc369c LB 0x12
    65626532    push bp                                   ; 55
    65636533    mov bp, sp                                ; 89 e5
     
    65726542    pop bp                                    ; 5d
    65736543    retn                                      ; c3
    6574 in_byte_:                                    ; 0xc3647 LB 0x14
     6544in_byte_:                                    ; 0xc36ae LB 0x14
    65756545    push bp                                   ; 55
    65766546    mov bp, sp                                ; 89 e5
     
    65876557    pop bp                                    ; 5d
    65886558    retn                                      ; c3
    6589 dispi_get_id_:                               ; 0xc365b LB 0x14
     6559dispi_get_id_:                               ; 0xc36c2 LB 0x14
    65906560    push bp                                   ; 55
    65916561    mov bp, sp                                ; 89 e5
     
    66006570    pop bp                                    ; 5d
    66016571    retn                                      ; c3
    6602 dispi_set_id_:                               ; 0xc366f LB 0x1a
     6572dispi_set_id_:                               ; 0xc36d6 LB 0x1a
    66036573    push bp                                   ; 55
    66046574    mov bp, sp                                ; 89 e5
     
    66176587    pop bp                                    ; 5d
    66186588    retn                                      ; c3
    6619 vbe_init_:                                   ; 0xc3689 LB 0x2c
     6589vbe_init_:                                   ; 0xc36f0 LB 0x2c
    66206590    push bp                                   ; 55
    66216591    mov bp, sp                                ; 89 e5
     
    66236593    push dx                                   ; 52
    66246594    mov ax, 0b0c0h                            ; b8 c0 b0
    6625     call 0366fh                               ; e8 db ff
    6626     call 0365bh                               ; e8 c4 ff
     6595    call 036d6h                               ; e8 db ff
     6596    call 036c2h                               ; e8 c4 ff
    66276597    cmp ax, 0b0c0h                            ; 3d c0 b0
    6628     jne short 036aeh                          ; 75 12
     6598    jne short 03715h                          ; 75 12
    66296599    mov bx, strict word 00001h                ; bb 01 00
    66306600    mov dx, 000b9h                            ; ba b9 00
    66316601    mov ax, strict word 00040h                ; b8 40 00
    6632     call 03173h                               ; e8 cb fa
     6602    call 03173h                               ; e8 64 fa
    66336603    mov ax, 0b0c4h                            ; b8 c4 b0
    6634     call 0366fh                               ; e8 c1 ff
     6604    call 036d6h                               ; e8 c1 ff
    66356605    lea sp, [bp-004h]                         ; 8d 66 fc
    66366606    pop dx                                    ; 5a
     
    66386608    pop bp                                    ; 5d
    66396609    retn                                      ; c3
    6640 mode_info_find_mode_:                        ; 0xc36b5 LB 0x55
     6610mode_info_find_mode_:                        ; 0xc371c LB 0x55
    66416611    push bp                                   ; 55
    66426612    mov bp, sp                                ; 89 e5
     
    66496619    xor dx, dx                                ; 31 d2
    66506620    mov ax, 003b6h                            ; b8 b6 03
    6651     call 03635h                               ; e8 6d ff
     6621    call 0369ch                               ; e8 6d ff
    66526622    cmp ax, 077cch                            ; 3d cc 77
    6653     jne short 036ffh                          ; 75 32
     6623    jne short 03766h                          ; 75 32
    66546624    mov bx, strict word 00004h                ; bb 04 00
    66556625    mov dx, bx                                ; 89 da
    66566626    mov ax, 003b6h                            ; b8 b6 03
    6657     call 03635h                               ; e8 5d ff
     6627    call 0369ch                               ; e8 5d ff
    66586628    mov cx, ax                                ; 89 c1
    66596629    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6660     je short 036ffh                           ; 74 20
     6630    je short 03766h                           ; 74 20
    66616631    lea dx, [bx+002h]                         ; 8d 57 02
    66626632    mov ax, 003b6h                            ; b8 b6 03
    6663     call 03635h                               ; e8 4d ff
     6633    call 0369ch                               ; e8 4d ff
    66646634    lea dx, [bx+044h]                         ; 8d 57 44
    66656635    cmp cx, di                                ; 39 f9
    6666     jne short 036fbh                          ; 75 0c
     6636    jne short 03762h                          ; 75 0c
    66676637    test si, si                               ; 85 f6
    6668     jne short 036f7h                          ; 75 04
     6638    jne short 0375eh                          ; 75 04
    66696639    mov ax, bx                                ; 89 d8
    6670     jmp short 03701h                          ; eb 0a
     6640    jmp short 03768h                          ; eb 0a
    66716641    test AL, strict byte 080h                 ; a8 80
    6672     jne short 036f3h                          ; 75 f8
     6642    jne short 0375ah                          ; 75 f8
    66736643    mov bx, dx                                ; 89 d3
    6674     jmp short 036d2h                          ; eb d3
     6644    jmp short 03739h                          ; eb d3
    66756645    xor ax, ax                                ; 31 c0
    66766646    lea sp, [bp-008h]                         ; 8d 66 f8
     
    66816651    pop bp                                    ; 5d
    66826652    retn                                      ; c3
    6683 vbe_biosfn_return_controller_information_: ; 0xc370a LB 0x12f
     6653vbe_biosfn_return_controller_information_: ; 0xc3771 LB 0x12f
    66846654    push bp                                   ; 55
    66856655    mov bp, sp                                ; 89 e5
     
    66926662    mov word [bp-00ah], bx                    ; 89 5e f6
    66936663    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6694     call 005b7h                               ; e8 95 ce
     6664    call 005b7h                               ; e8 2e ce
    66956665    mov word [bp-010h], ax                    ; 89 46 f0
    66966666    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    66986668    xor dx, dx                                ; 31 d2
    66996669    mov ax, 003b6h                            ; b8 b6 03
    6700     call 03635h                               ; e8 02 ff
     6670    call 0369ch                               ; e8 02 ff
    67016671    cmp ax, 077cch                            ; 3d cc 77
    6702     je short 03742h                           ; 74 0a
     6672    je short 037a9h                           ; 74 0a
    67036673    push SS                                   ; 16
    67046674    pop ES                                    ; 07
    67056675    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6706     jmp near 03831h                           ; e9 ef 00
     6676    jmp near 03898h                           ; e9 ef 00
    67076677    mov cx, strict word 00004h                ; b9 04 00
    67086678    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    67096679    mov es, [bp-008h]                         ; 8e 46 f8
    67106680    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6711     jne short 0375ch                          ; 75 07
     6681    jne short 037c3h                          ; 75 07
    67126682    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6713     je short 0376bh                           ; 74 0f
     6683    je short 037d2h                           ; 74 0f
    67146684    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6715     jne short 03770h                          ; 75 0c
     6685    jne short 037d7h                          ; 75 0c
    67166686    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6717     jne short 03770h                          ; 75 05
     6687    jne short 037d7h                          ; 75 05
    67186688    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    67196689    mov es, [bp-008h]                         ; 8e 46 f8
     
    67316701    mov dx, strict word 0ffffh                ; ba ff ff
    67326702    mov ax, 003b6h                            ; b8 b6 03
    6733     call 03635h                               ; e8 84 fe
     6703    call 0369ch                               ; e8 84 fe
    67346704    mov es, [bp-008h]                         ; 8e 46 f8
    67356705    mov word [es:bx+012h], ax                 ; 26 89 47 12
    67366706    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6737     je short 037e2h                           ; 74 24
     6707    je short 03849h                           ; 74 24
    67386708    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    67396709    mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
     
    67466716    add dx, strict byte 0001bh                ; 83 c2 1b
    67476717    mov ax, 003b6h                            ; b8 b6 03
    6748     call 03647h                               ; e8 5a fe
     6718    call 036aeh                               ; e8 5a fe
    67496719    xor ah, ah                                ; 30 e4
    67506720    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6751     jnbe short 0380dh                         ; 77 19
     6721    jnbe short 03874h                         ; 77 19
    67526722    mov dx, cx                                ; 89 ca
    67536723    mov ax, 003b6h                            ; b8 b6 03
    6754     call 03635h                               ; e8 39 fe
     6724    call 0369ch                               ; e8 39 fe
    67556725    mov bx, ax                                ; 89 c3
    67566726    mov dx, word [bp-00ah]                    ; 8b 56 f6
    67576727    add dx, word [bp-00ch]                    ; 03 56 f4
    67586728    mov ax, di                                ; 89 f8
    6759     call 0318fh                               ; e8 86 f9
     6729    call 0318fh                               ; e8 1f f9
    67606730    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    67616731    add cx, strict byte 00044h                ; 83 c1 44
    67626732    mov dx, cx                                ; 89 ca
    67636733    mov ax, 003b6h                            ; b8 b6 03
    6764     call 03635h                               ; e8 1d fe
     6734    call 0369ch                               ; e8 1d fe
    67656735    mov bx, ax                                ; 89 c3
    67666736    cmp ax, strict word 0ffffh                ; 3d ff ff
    6767     jne short 037e2h                          ; 75 c3
     6737    jne short 03849h                          ; 75 c3
    67686738    mov dx, word [bp-00ah]                    ; 8b 56 f6
    67696739    add dx, word [bp-00ch]                    ; 03 56 f4
    67706740    mov ax, di                                ; 89 f8
    6771     call 0318fh                               ; e8 65 f9
     6741    call 0318fh                               ; e8 fe f8
    67726742    push SS                                   ; 16
    67736743    pop ES                                    ; 07
     
    67796749    pop bp                                    ; 5d
    67806750    retn                                      ; c3
    6781 vbe_biosfn_return_mode_information_:         ; 0xc3839 LB 0xbd
     6751vbe_biosfn_return_mode_information_:         ; 0xc38a0 LB 0xbd
    67826752    push bp                                   ; 55
    67836753    mov bp, sp                                ; 89 e5
     
    67916761    mov word [bp-006h], cx                    ; 89 4e fa
    67926762    test dh, 040h                             ; f6 c6 40
    6793     je short 03852h                           ; 74 05
     6763    je short 038b9h                           ; 74 05
    67946764    mov dx, strict word 00001h                ; ba 01 00
    6795     jmp short 03854h                          ; eb 02
     6765    jmp short 038bbh                          ; eb 02
    67966766    xor dx, dx                                ; 31 d2
    67976767    and ah, 001h                              ; 80 e4 01
    6798     call 036b5h                               ; e8 5b fe
     6768    call 0371ch                               ; e8 5b fe
    67996769    mov word [bp-008h], ax                    ; 89 46 f8
    68006770    test ax, ax                               ; 85 c0
    6801     je short 03897h                           ; 74 36
     6771    je short 038feh                           ; 74 36
    68026772    mov cx, 00100h                            ; b9 00 01
    68036773    xor ax, ax                                ; 31 c0
     
    68056775    mov es, si                                ; 8e c6
    68066776    cld                                       ; fc
    6807     jcxz 03870h                               ; e3 02
     6777    jcxz 038d7h                               ; e3 02
    68086778    rep stosb                                 ; f3 aa
    68096779    xor cx, cx                                ; 31 c9
    6810     jmp short 03879h                          ; eb 05
     6780    jmp short 038e0h                          ; eb 05
    68116781    cmp cx, strict byte 00042h                ; 83 f9 42
    6812     jnc short 03899h                          ; 73 20
     6782    jnc short 03900h                          ; 73 20
    68136783    mov dx, word [bp-008h]                    ; 8b 56 f8
    68146784    inc dx                                    ; 42
     
    68166786    add dx, cx                                ; 01 ca
    68176787    mov ax, 003b6h                            ; b8 b6 03
    6818     call 03647h                               ; e8 c1 fd
     6788    call 036aeh                               ; e8 c1 fd
    68196789    mov bl, al                                ; 88 c3
    68206790    xor bh, bh                                ; 30 ff
     
    68226792    add dx, cx                                ; 01 ca
    68236793    mov ax, si                                ; 89 f0
    6824     call 03173h                               ; e8 df f8
    6825     inc cx                                    ; 41
    6826     jmp short 03874h                          ; eb dd
    6827     jmp short 038e4h                          ; eb 4b
     6794    call 03173h                               ; e8 78 f8
     6795    inc cx                                    ; 41
     6796    jmp short 038dbh                          ; eb dd
     6797    jmp short 0394bh                          ; eb 4b
    68286798    mov dx, word [bp-006h]                    ; 8b 56 fa
    68296799    inc dx                                    ; 42
    68306800    inc dx                                    ; 42
    68316801    mov ax, si                                ; 89 f0
    6832     call 03165h                               ; e8 c2 f8
     6802    call 03165h                               ; e8 5b f8
    68336803    test AL, strict byte 001h                 ; a8 01
    6834     je short 038c3h                           ; 74 1c
     6804    je short 0392ah                           ; 74 1c
    68356805    mov dx, word [bp-006h]                    ; 8b 56 fa
    68366806    add dx, strict byte 0000ch                ; 83 c2 0c
    68376807    mov bx, 00629h                            ; bb 29 06
    68386808    mov ax, si                                ; 89 f0
    6839     call 0318fh                               ; e8 da f8
     6809    call 0318fh                               ; e8 73 f8
    68406810    mov dx, word [bp-006h]                    ; 8b 56 fa
    68416811    add dx, strict byte 0000eh                ; 83 c2 0e
    68426812    mov bx, 0c000h                            ; bb 00 c0
    68436813    mov ax, si                                ; 89 f0
    6844     call 0318fh                               ; e8 cc f8
     6814    call 0318fh                               ; e8 65 f8
    68456815    mov ax, strict word 0000bh                ; b8 0b 00
    68466816    mov dx, 001ceh                            ; ba ce 01
    6847     call 00570h                               ; e8 a4 cc
     6817    call 00570h                               ; e8 3d cc
    68486818    mov dx, 001cfh                            ; ba cf 01
    6849     call 00577h                               ; e8 a5 cc
     6819    call 00577h                               ; e8 3e cc
    68506820    mov dx, word [bp-006h]                    ; 8b 56 fa
    68516821    add dx, strict byte 0002ah                ; 83 c2 2a
    68526822    mov bx, ax                                ; 89 c3
    68536823    mov ax, si                                ; 89 f0
    6854     call 0318fh                               ; e8 b0 f8
     6824    call 0318fh                               ; e8 49 f8
    68556825    mov ax, strict word 0004fh                ; b8 4f 00
    6856     jmp short 038e7h                          ; eb 03
     6826    jmp short 0394eh                          ; eb 03
    68576827    mov ax, 00100h                            ; b8 00 01
    68586828    push SS                                   ; 16
     
    68656835    pop bp                                    ; 5d
    68666836    retn                                      ; c3
    6867 vbe_biosfn_set_mode_:                        ; 0xc38f6 LB 0xeb
     6837vbe_biosfn_set_mode_:                        ; 0xc395d LB 0xeb
    68686838    push bp                                   ; 55
    68696839    mov bp, sp                                ; 89 e5
     
    68746844    mov word [bp-00ah], dx                    ; 89 56 f6
    68756845    test byte [bp-009h], 040h                 ; f6 46 f7 40
    6876     je short 0390eh                           ; 74 05
     6846    je short 03975h                           ; 74 05
    68776847    mov ax, strict word 00001h                ; b8 01 00
    6878     jmp short 03910h                          ; eb 02
     6848    jmp short 03977h                          ; eb 02
    68796849    xor ax, ax                                ; 31 c0
    68806850    mov dx, ax                                ; 89 c2
    68816851    test ax, ax                               ; 85 c0
    6882     je short 03919h                           ; 74 03
     6852    je short 03980h                           ; 74 03
    68836853    mov ax, strict word 00040h                ; b8 40 00
    68846854    mov byte [bp-006h], al                    ; 88 46 fa
    68856855    test byte [bp-009h], 080h                 ; f6 46 f7 80
    6886     je short 03927h                           ; 74 05
     6856    je short 0398eh                           ; 74 05
    68876857    mov ax, 00080h                            ; b8 80 00
    6888     jmp short 03929h                          ; eb 02
     6858    jmp short 03990h                          ; eb 02
    68896859    xor ax, ax                                ; 31 c0
    68906860    mov byte [bp-008h], al                    ; 88 46 f8
    68916861    and byte [bp-009h], 001h                  ; 80 66 f7 01
    68926862    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    6893     jnc short 0394ah                          ; 73 13
     6863    jnc short 039b1h                          ; 73 13
    68946864    xor ax, ax                                ; 31 c0
    6895     call 005ddh                               ; e8 a1 cc
     6865    call 005ddh                               ; e8 3a cc
    68966866    mov al, byte [bp-00ah]                    ; 8a 46 f6
    68976867    xor ah, ah                                ; 30 e4
    6898     call 0101ch                               ; e8 d8 d6
     6868    call 0101ch                               ; e8 71 d6
    68996869    mov ax, strict word 0004fh                ; b8 4f 00
    6900     jmp near 039d7h                           ; e9 8d 00
     6870    jmp near 03a3eh                           ; e9 8d 00
    69016871    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6902     call 036b5h                               ; e8 65 fd
     6872    call 0371ch                               ; e8 65 fd
    69036873    mov bx, ax                                ; 89 c3
    69046874    test ax, ax                               ; 85 c0
    6905     jne short 03959h                          ; 75 03
    6906     jmp near 039d4h                           ; e9 7b 00
     6875    jne short 039c0h                          ; 75 03
     6876    jmp near 03a3bh                           ; e9 7b 00
    69076877    lea dx, [bx+014h]                         ; 8d 57 14
    69086878    mov ax, 003b6h                            ; b8 b6 03
    6909     call 03635h                               ; e8 d3 fc
     6879    call 0369ch                               ; e8 d3 fc
    69106880    mov cx, ax                                ; 89 c1
    69116881    lea dx, [bx+016h]                         ; 8d 57 16
    69126882    mov ax, 003b6h                            ; b8 b6 03
    6913     call 03635h                               ; e8 c8 fc
     6883    call 0369ch                               ; e8 c8 fc
    69146884    mov di, ax                                ; 89 c7
    69156885    lea dx, [bx+01bh]                         ; 8d 57 1b
    69166886    mov ax, 003b6h                            ; b8 b6 03
    6917     call 03647h                               ; e8 cf fc
     6887    call 036aeh                               ; e8 cf fc
    69186888    mov bl, al                                ; 88 c3
    69196889    mov dl, al                                ; 88 c2
    69206890    xor ax, ax                                ; 31 c0
    6921     call 005ddh                               ; e8 5c cc
     6891    call 005ddh                               ; e8 f5 cb
    69226892    cmp bl, 004h                              ; 80 fb 04
    6923     jne short 0398ch                          ; 75 06
     6893    jne short 039f3h                          ; 75 06
    69246894    mov ax, strict word 0006ah                ; b8 6a 00
    6925     call 0101ch                               ; e8 90 d6
     6895    call 0101ch                               ; e8 29 d6
    69266896    mov al, dl                                ; 88 d0
    69276897    xor ah, ah                                ; 30 e4
    6928     call 03616h                               ; e8 83 fc
     6898    call 03613h                               ; e8 19 fc
    69296899    mov ax, cx                                ; 89 c8
    6930     call 035d8h                               ; e8 40 fc
     6900    call 035d5h                               ; e8 d6 fb
    69316901    mov ax, di                                ; 89 f8
    6932     call 035f7h                               ; e8 5a fc
     6902    call 035f4h                               ; e8 f0 fb
    69336903    xor ax, ax                                ; 31 c0
    6934     call 00603h                               ; e8 61 cc
     6904    call 00603h                               ; e8 fa cb
    69356905    mov al, byte [bp-008h]                    ; 8a 46 f8
    69366906    or AL, strict byte 001h                   ; 0c 01
     
    69386908    mov dl, byte [bp-006h]                    ; 8a 56 fa
    69396909    or al, dl                                 ; 08 d0
    6940     call 005ddh                               ; e8 2c cc
    6941     call 0070dh                               ; e8 59 cd
     6910    call 005ddh                               ; e8 c5 cb
     6911    call 006d2h                               ; e8 b7 cc
    69426912    mov bx, word [bp-00ah]                    ; 8b 5e f6
    69436913    mov dx, 000bah                            ; ba ba 00
    69446914    mov ax, strict word 00040h                ; b8 40 00
    6945     call 0318fh                               ; e8 cf f7
     6915    call 0318fh                               ; e8 68 f7
    69466916    mov bl, byte [bp-008h]                    ; 8a 5e f8
    69476917    or bl, 060h                               ; 80 cb 60
     
    69496919    mov dx, 00087h                            ; ba 87 00
    69506920    mov ax, strict word 00040h                ; b8 40 00
    6951     call 03173h                               ; e8 a2 f7
    6952     jmp near 03944h                           ; e9 70 ff
     6921    call 03173h                               ; e8 3b f7
     6922    jmp near 039abh                           ; e9 70 ff
    69536923    mov ax, 00100h                            ; b8 00 01
    69546924    mov word [ss:si], ax                      ; 36 89 04
     
    69586928    pop bp                                    ; 5d
    69596929    retn                                      ; c3
    6960 vbe_biosfn_read_video_state_size_:           ; 0xc39e1 LB 0x8
     6930vbe_biosfn_read_video_state_size_:           ; 0xc3a48 LB 0x8
    69616931    push bp                                   ; 55
    69626932    mov bp, sp                                ; 89 e5
     
    69646934    pop bp                                    ; 5d
    69656935    retn                                      ; c3
    6966 vbe_biosfn_save_video_state_:                ; 0xc39e9 LB 0x5b
     6936vbe_biosfn_save_video_state_:                ; 0xc3a50 LB 0x5b
    69676937    push bp                                   ; 55
    69686938    mov bp, sp                                ; 89 e5
     
    69836953    mov dx, cx                                ; 89 ca
    69846954    mov ax, di                                ; 89 f8
    6985     call 0318fh                               ; e8 83 f7
     6955    call 0318fh                               ; e8 1c f7
    69866956    inc cx                                    ; 41
    69876957    inc cx                                    ; 41
    69886958    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    6989     je short 03a3bh                           ; 74 27
     6959    je short 03aa2h                           ; 74 27
    69906960    mov si, strict word 00001h                ; be 01 00
    6991     jmp short 03a1eh                          ; eb 05
     6961    jmp short 03a85h                          ; eb 05
    69926962    cmp si, strict byte 00009h                ; 83 fe 09
    6993     jnbe short 03a3bh                         ; 77 1d
     6963    jnbe short 03aa2h                         ; 77 1d
    69946964    cmp si, strict byte 00004h                ; 83 fe 04
    6995     je short 03a38h                           ; 74 15
     6965    je short 03a9fh                           ; 74 15
    69966966    mov ax, si                                ; 89 f0
    69976967    mov dx, 001ceh                            ; ba ce 01
     
    70026972    mov dx, cx                                ; 89 ca
    70036973    mov ax, di                                ; 89 f8
    7004     call 0318fh                               ; e8 59 f7
     6974    call 0318fh                               ; e8 f2 f6
    70056975    inc cx                                    ; 41
    70066976    inc cx                                    ; 41
    70076977    inc si                                    ; 46
    7008     jmp short 03a19h                          ; eb de
     6978    jmp short 03a80h                          ; eb de
    70096979    lea sp, [bp-008h]                         ; 8d 66 f8
    70106980    pop di                                    ; 5f
     
    70146984    pop bp                                    ; 5d
    70156985    retn                                      ; c3
    7016 vbe_biosfn_restore_video_state_:             ; 0xc3a44 LB 0x9b
     6986vbe_biosfn_restore_video_state_:             ; 0xc3aab LB 0x9b
    70176987    push bp                                   ; 55
    70186988    mov bp, sp                                ; 89 e5
     
    70236993    mov cx, ax                                ; 89 c1
    70246994    mov bx, dx                                ; 89 d3
    7025     call 03181h                               ; e8 2f f7
     6995    call 03181h                               ; e8 c8 f6
    70266996    mov word [bp-008h], ax                    ; 89 46 f8
    70276997    inc bx                                    ; 43
    70286998    inc bx                                    ; 43
    70296999    test byte [bp-008h], 001h                 ; f6 46 f8 01
    7030     jne short 03a6dh                          ; 75 10
     7000    jne short 03ad4h                          ; 75 10
    70317001    mov ax, strict word 00004h                ; b8 04 00
    70327002    mov dx, 001ceh                            ; ba ce 01
     
    70357005    mov dx, 001cfh                            ; ba cf 01
    70367006    out DX, ax                                ; ef
    7037     jmp short 03ad7h                          ; eb 6a
     7007    jmp short 03b3eh                          ; eb 6a
    70387008    mov ax, strict word 00001h                ; b8 01 00
    70397009    mov dx, 001ceh                            ; ba ce 01
     
    70417011    mov dx, bx                                ; 89 da
    70427012    mov ax, cx                                ; 89 c8
    7043     call 03181h                               ; e8 06 f7
     7013    call 03181h                               ; e8 9f f6
    70447014    mov dx, 001cfh                            ; ba cf 01
    70457015    out DX, ax                                ; ef
     
    70517021    mov dx, bx                                ; 89 da
    70527022    mov ax, cx                                ; 89 c8
    7053     call 03181h                               ; e8 f2 f6
     7023    call 03181h                               ; e8 8b f6
    70547024    mov dx, 001cfh                            ; ba cf 01
    70557025    out DX, ax                                ; ef
     
    70617031    mov dx, bx                                ; 89 da
    70627032    mov ax, cx                                ; 89 c8
    7063     call 03181h                               ; e8 de f6
     7033    call 03181h                               ; e8 77 f6
    70647034    mov dx, 001cfh                            ; ba cf 01
    70657035    out DX, ax                                ; ef
     
    70737043    out DX, ax                                ; ef
    70747044    mov si, strict word 00005h                ; be 05 00
    7075     jmp short 03ac1h                          ; eb 05
     7045    jmp short 03b28h                          ; eb 05
    70767046    cmp si, strict byte 00009h                ; 83 fe 09
    7077     jnbe short 03ad7h                         ; 77 16
     7047    jnbe short 03b3eh                         ; 77 16
    70787048    mov ax, si                                ; 89 f0
    70797049    mov dx, 001ceh                            ; ba ce 01
     
    70817051    mov dx, bx                                ; 89 da
    70827052    mov ax, cx                                ; 89 c8
    7083     call 03181h                               ; e8 b3 f6
     7053    call 03181h                               ; e8 4c f6
    70847054    mov dx, 001cfh                            ; ba cf 01
    70857055    out DX, ax                                ; ef
     
    70877057    inc bx                                    ; 43
    70887058    inc si                                    ; 46
    7089     jmp short 03abch                          ; eb e5
     7059    jmp short 03b23h                          ; eb e5
    70907060    lea sp, [bp-006h]                         ; 8d 66 fa
    70917061    pop si                                    ; 5e
     
    70947064    pop bp                                    ; 5d
    70957065    retn                                      ; c3
    7096 vbe_biosfn_save_restore_state_:              ; 0xc3adf LB 0x8c
     7066vbe_biosfn_save_restore_state_:              ; 0xc3b46 LB 0x8c
    70977067    push bp                                   ; 55
    70987068    mov bp, sp                                ; 89 e5
     
    71077077    xor ah, ah                                ; 30 e4
    71087078    cmp ax, strict word 00002h                ; 3d 02 00
    7109     je short 03b3eh                           ; 74 45
     7079    je short 03ba5h                           ; 74 45
    71107080    cmp ax, strict word 00001h                ; 3d 01 00
    7111     je short 03b22h                           ; 74 24
     7081    je short 03b89h                           ; 74 24
    71127082    test ax, ax                               ; 85 c0
    7113     jne short 03b5ah                          ; 75 58
     7083    jne short 03bc1h                          ; 75 58
    71147084    mov ax, word [bp-006h]                    ; 8b 46 fa
    7115     call 02a51h                               ; e8 49 ef
     7085    call 02a51h                               ; e8 e2 ee
    71167086    mov cx, ax                                ; 89 c1
    71177087    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7118     je short 03b15h                           ; 74 05
    7119     call 039e1h                               ; e8 ce fe
     7088    je short 03b7ch                           ; 74 05
     7089    call 03a48h                               ; e8 ce fe
    71207090    add ax, cx                                ; 01 c8
    71217091    add ax, strict word 0003fh                ; 05 3f 00
     
    71247094    pop ES                                    ; 07
    71257095    mov word [es:bx], ax                      ; 26 89 07
    7126     jmp short 03b5dh                          ; eb 3b
     7096    jmp short 03bc4h                          ; eb 3b
    71277097    push SS                                   ; 16
    71287098    pop ES                                    ; 07
     
    71307100    mov dx, cx                                ; 89 ca
    71317101    mov ax, word [bp-006h]                    ; 8b 46 fa
    7132     call 02a86h                               ; e8 57 ef
     7102    call 02a86h                               ; e8 f0 ee
    71337103    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7134     je short 03b5dh                           ; 74 28
     7104    je short 03bc4h                           ; 74 28
    71357105    mov dx, ax                                ; 89 c2
    71367106    mov ax, cx                                ; 89 c8
    7137     call 039e9h                               ; e8 ad fe
    7138     jmp short 03b5dh                          ; eb 1f
     7107    call 03a50h                               ; e8 ad fe
     7108    jmp short 03bc4h                          ; eb 1f
    71397109    push SS                                   ; 16
    71407110    pop ES                                    ; 07
     
    71427112    mov dx, cx                                ; 89 ca
    71437113    mov ax, word [bp-006h]                    ; 8b 46 fa
    7144     call 02e07h                               ; e8 bc f2
     7114    call 02e07h                               ; e8 55 f2
    71457115    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7146     je short 03b5dh                           ; 74 0c
     7116    je short 03bc4h                           ; 74 0c
    71477117    mov dx, ax                                ; 89 c2
    71487118    mov ax, cx                                ; 89 c8
    7149     call 03a44h                               ; e8 ec fe
    7150     jmp short 03b5dh                          ; eb 03
     7119    call 03aabh                               ; e8 ec fe
     7120    jmp short 03bc4h                          ; eb 03
    71517121    mov di, 00100h                            ; bf 00 01
    71527122    push SS                                   ; 16
     
    71587128    pop bp                                    ; 5d
    71597129    retn 00002h                               ; c2 02 00
     7130vbe_biosfn_get_set_scanline_length_:         ; 0xc3bd2 LB 0xb0
     7131    push bp                                   ; 55
     7132    mov bp, sp                                ; 89 e5
     7133    push si                                   ; 56
     7134    push di                                   ; 57
     7135    sub sp, strict byte 00006h                ; 83 ec 06
     7136    push ax                                   ; 50
     7137    mov si, dx                                ; 89 d6
     7138    mov di, bx                                ; 89 df
     7139    mov word [bp-008h], cx                    ; 89 4e f8
     7140    call 03632h                               ; e8 4d fa
     7141    mov cl, al                                ; 88 c1
     7142    mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
     7143    push SS                                   ; 16
     7144    pop ES                                    ; 07
     7145    mov bx, word [es:di]                      ; 26 8b 1d
     7146    mov al, byte [es:si]                      ; 26 8a 04
     7147    cmp AL, strict byte 002h                  ; 3c 02
     7148    je short 03c02h                           ; 74 0a
     7149    cmp AL, strict byte 001h                  ; 3c 01
     7150    je short 03c2ah                           ; 74 2e
     7151    test al, al                               ; 84 c0
     7152    je short 03c25h                           ; 74 25
     7153    jmp short 03c6bh                          ; eb 69
     7154    cmp cl, 004h                              ; 80 f9 04
     7155    jne short 03c0ch                          ; 75 05
     7156    sal bx, 003h                              ; c1 e3 03
     7157    jmp short 03c25h                          ; eb 19
     7158    mov al, cl                                ; 88 c8
     7159    xor ah, ah                                ; 30 e4
     7160    cwd                                       ; 99
     7161    sal dx, 003h                              ; c1 e2 03
     7162    db  01bh, 0c2h
     7163    ; sbb ax, dx                                ; 1b c2
     7164    sar ax, 003h                              ; c1 f8 03
     7165    mov word [bp-00ah], ax                    ; 89 46 f6
     7166    mov ax, bx                                ; 89 d8
     7167    xor dx, dx                                ; 31 d2
     7168    div word [bp-00ah]                        ; f7 76 f6
     7169    mov bx, ax                                ; 89 c3
     7170    mov ax, bx                                ; 89 d8
     7171    call 0364bh                               ; e8 21 fa
     7172    call 0366ah                               ; e8 3d fa
     7173    mov bx, ax                                ; 89 c3
     7174    push SS                                   ; 16
     7175    pop ES                                    ; 07
     7176    mov word [es:di], ax                      ; 26 89 05
     7177    cmp cl, 004h                              ; 80 f9 04
     7178    jne short 03c3eh                          ; 75 05
     7179    shr bx, 003h                              ; c1 eb 03
     7180    jmp short 03c53h                          ; eb 15
     7181    mov al, cl                                ; 88 c8
     7182    xor ah, ah                                ; 30 e4
     7183    cwd                                       ; 99
     7184    sal dx, 003h                              ; c1 e2 03
     7185    db  01bh, 0c2h
     7186    ; sbb ax, dx                                ; 1b c2
     7187    sar ax, 003h                              ; c1 f8 03
     7188    mov di, ax                                ; 89 c7
     7189    mov ax, bx                                ; 89 d8
     7190    mul di                                    ; f7 e7
     7191    mov bx, ax                                ; 89 c3
     7192    add bx, strict byte 00003h                ; 83 c3 03
     7193    and bl, 0fch                              ; 80 e3 fc
     7194    push SS                                   ; 16
     7195    pop ES                                    ; 07
     7196    mov word [es:si], bx                      ; 26 89 1c
     7197    call 03683h                               ; e8 22 fa
     7198    push SS                                   ; 16
     7199    pop ES                                    ; 07
     7200    mov bx, word [bp-008h]                    ; 8b 5e f8
     7201    mov word [es:bx], ax                      ; 26 89 07
     7202    jmp short 03c70h                          ; eb 05
     7203    mov word [bp-006h], 00100h                ; c7 46 fa 00 01
     7204    push SS                                   ; 16
     7205    pop ES                                    ; 07
     7206    mov ax, word [bp-006h]                    ; 8b 46 fa
     7207    mov bx, word [bp-00ch]                    ; 8b 5e f4
     7208    mov word [es:bx], ax                      ; 26 89 07
     7209    lea sp, [bp-004h]                         ; 8d 66 fc
     7210    pop di                                    ; 5f
     7211    pop si                                    ; 5e
     7212    pop bp                                    ; 5d
     7213    retn                                      ; c3
    71607214
    7161   ; Padding 0x895 bytes at 0xc3b6b
    7162   times 2197 db 0
     7215  ; Padding 0x77e bytes at 0xc3c82
     7216  times 1918 db 0
    71637217
    71647218section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
     
    82488302    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    82498303    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8250     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07fh
     8304    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 012h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum

    r63627 r67771  
    1 8d91125af3fbd678849835b1667fb315 *VBoxVgaBios286.rom
     1c07f3ce46876cfd3480942a249080396 *VBoxVgaBios286.rom
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm

    r63627 r67771  
    165165
    166166
    167 section VGAROM progbits vstart=0x0 align=1 ; size=0x992 class=CODE group=AUTO
     167section VGAROM progbits vstart=0x0 align=1 ; size=0x90a class=CODE group=AUTO
    168168    db  055h, 0aah, 040h, 0e9h, 062h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    169169    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
     
    173173    cmp ah, 00fh                              ; 80 fc 0f
    174174    jne short 0002eh                          ; 75 06
    175     call 00183h                               ; e8 58 01
    176     jmp near 000f3h                           ; e9 c5 00
     175    call 0017ah                               ; e8 4f 01
     176    jmp near 000eah                           ; e9 bc 00
    177177    cmp ah, 01ah                              ; 80 fc 1a
    178178    jne short 00039h                          ; 75 06
    179     call 00538h                               ; e8 02 05
    180     jmp near 000f3h                           ; e9 ba 00
     179    call 0052fh                               ; e8 f9 04
     180    jmp near 000eah                           ; e9 b1 00
    181181    cmp ah, 00bh                              ; 80 fc 0b
    182182    jne short 00044h                          ; 75 06
    183     call 000f5h                               ; e8 b4 00
    184     jmp near 000f3h                           ; e9 af 00
     183    call 000ech                               ; e8 ab 00
     184    jmp near 000eah                           ; e9 a6 00
    185185    cmp ax, 01103h                            ; 3d 03 11
    186186    jne short 0004fh                          ; 75 06
    187     call 0042fh                               ; e8 e3 03
    188     jmp near 000f3h                           ; e9 a4 00
     187    call 00426h                               ; e8 da 03
     188    jmp near 000eah                           ; e9 9b 00
    189189    cmp ah, 012h                              ; 80 fc 12
    190190    jne short 00092h                          ; 75 3e
    191191    cmp bl, 010h                              ; 80 fb 10
    192192    jne short 0005fh                          ; 75 06
    193     call 0043ch                               ; e8 e0 03
    194     jmp near 000f3h                           ; e9 94 00
     193    call 00433h                               ; e8 d7 03
     194    jmp near 000eah                           ; e9 8b 00
    195195    cmp bl, 030h                              ; 80 fb 30
    196196    jne short 0006ah                          ; 75 06
    197     call 0045fh                               ; e8 f8 03
    198     jmp near 000f3h                           ; e9 89 00
     197    call 00456h                               ; e8 ef 03
     198    jmp near 000eah                           ; e9 80 00
    199199    cmp bl, 031h                              ; 80 fb 31
    200200    jne short 00074h                          ; 75 05
    201     call 004b2h                               ; e8 40 04
    202     jmp short 000f3h                          ; eb 7f
     201    call 004a9h                               ; e8 37 04
     202    jmp short 000eah                          ; eb 76
    203203    cmp bl, 032h                              ; 80 fb 32
    204204    jne short 0007eh                          ; 75 05
    205     call 004d4h                               ; e8 58 04
    206     jmp short 000f3h                          ; eb 75
     205    call 004cbh                               ; e8 4f 04
     206    jmp short 000eah                          ; eb 6c
    207207    cmp bl, 033h                              ; 80 fb 33
    208208    jne short 00088h                          ; 75 05
    209     call 004f2h                               ; e8 6c 04
    210     jmp short 000f3h                          ; eb 6b
     209    call 004e9h                               ; e8 63 04
     210    jmp short 000eah                          ; eb 62
    211211    cmp bl, 034h                              ; 80 fb 34
    212     jne short 000e5h                          ; 75 58
    213     call 00516h                               ; e8 86 04
    214     jmp short 000f3h                          ; eb 61
     212    jne short 000dch                          ; 75 4f
     213    call 0050dh                               ; e8 7d 04
     214    jmp short 000eah                          ; eb 58
    215215    cmp ax, 0101bh                            ; 3d 1b 10
    216     je short 000e5h                           ; 74 4e
     216    je short 000dch                           ; 74 45
    217217    cmp ah, 010h                              ; 80 fc 10
    218218    jne short 000a1h                          ; 75 05
    219     call 001aah                               ; e8 0b 01
    220     jmp short 000f3h                          ; eb 52
     219    call 001a1h                               ; e8 02 01
     220    jmp short 000eah                          ; eb 49
    221221    cmp ah, 04fh                              ; 80 fc 4f
    222     jne short 000e5h                          ; 75 3f
     222    jne short 000dch                          ; 75 36
    223223    cmp AL, strict byte 003h                  ; 3c 03
    224224    jne short 000afh                          ; 75 05
    225     call 0080dh                               ; e8 60 07
    226     jmp short 000f3h                          ; eb 44
     225    call 007d2h                               ; e8 25 07
     226    jmp short 000eah                          ; eb 3b
    227227    cmp AL, strict byte 005h                  ; 3c 05
    228228    jne short 000b8h                          ; 75 05
    229     call 00832h                               ; e8 7c 07
    230     jmp short 000f3h                          ; eb 3b
    231     cmp AL, strict byte 006h                  ; 3c 06
     229    call 007f7h                               ; e8 41 07
     230    jmp short 000eah                          ; eb 32
     231    cmp AL, strict byte 007h                  ; 3c 07
    232232    jne short 000c1h                          ; 75 05
    233     call 0085fh                               ; e8 a0 07
    234     jmp short 000f3h                          ; eb 32
    235     cmp AL, strict byte 007h                  ; 3c 07
     233    call 00824h                               ; e8 65 07
     234    jmp short 000eah                          ; eb 29
     235    cmp AL, strict byte 008h                  ; 3c 08
    236236    jne short 000cah                          ; 75 05
    237     call 008ach                               ; e8 e4 07
    238     jmp short 000f3h                          ; eb 29
    239     cmp AL, strict byte 008h                  ; 3c 08
     237    call 00858h                               ; e8 90 07
     238    jmp short 000eah                          ; eb 20
     239    cmp AL, strict byte 009h                  ; 3c 09
    240240    jne short 000d3h                          ; 75 05
    241     call 008e0h                               ; e8 0f 08
    242     jmp short 000f3h                          ; eb 20
    243     cmp AL, strict byte 009h                  ; 3c 09
     241    call 0088fh                               ; e8 be 07
     242    jmp short 000eah                          ; eb 17
     243    cmp AL, strict byte 00ah                  ; 3c 0a
    244244    jne short 000dch                          ; 75 05
    245     call 00917h                               ; e8 3d 08
    246     jmp short 000f3h                          ; eb 17
    247     cmp AL, strict byte 00ah                  ; 3c 0a
    248     jne short 000e5h                          ; 75 05
    249     call 0097bh                               ; e8 98 08
    250     jmp short 000f3h                          ; eb 0e
     245    call 008f3h                               ; e8 19 08
     246    jmp short 000eah                          ; eb 0e
    251247    push ES                                   ; 06
    252248    push DS                                   ; 1e
     
    254250    mov bx, 0c000h                            ; bb 00 c0
    255251    mov ds, bx                                ; 8e db
    256     call 03007h                               ; e8 17 2f
     252    call 0301eh                               ; e8 37 2f
    257253    popaw                                     ; 61
    258254    pop DS                                    ; 1f
     
    261257    iret                                      ; cf
    262258    cmp bh, 000h                              ; 80 ff 00
    263     je short 00100h                           ; 74 06
     259    je short 000f7h                           ; 74 06
    264260    cmp bh, 001h                              ; 80 ff 01
    265     je short 00151h                           ; 74 52
     261    je short 00148h                           ; 74 52
    266262    retn                                      ; c3
    267263    push ax                                   ; 50
     
    275271    in AL, DX                                 ; ec
    276272    cmp byte [word 00049h], 003h              ; 80 3e 49 00 03
    277     jbe short 00144h                          ; 76 2f
     273    jbe short 0013bh                          ; 76 2f
    278274    mov dx, 003c0h                            ; ba c0 03
    279275    mov AL, strict byte 000h                  ; b0 00
     
    283279    and AL, strict byte 00fh                  ; 24 0f
    284280    test AL, strict byte 008h                 ; a8 08
    285     je short 00125h                           ; 74 02
     281    je short 0011ch                           ; 74 02
    286282    add AL, strict byte 008h                  ; 04 08
    287283    out DX, AL                                ; ee
     
    302298    ; inc cl                                    ; fe c1
    303299    cmp cl, 004h                              ; 80 f9 04
    304     jne short 0012bh                          ; 75 e7
     300    jne short 00122h                          ; 75 e7
    305301    mov AL, strict byte 020h                  ; b0 20
    306302    out DX, AL                                ; ee
     
    335331    ; inc cl                                    ; fe c1
    336332    cmp cl, 004h                              ; 80 f9 04
    337     jne short 0015eh                          ; 75 e7
     333    jne short 00155h                          ; 75 e7
    338334    mov AL, strict byte 020h                  ; b0 20
    339335    out DX, AL                                ; ee
     
    368364    retn                                      ; c3
    369365    cmp AL, strict byte 000h                  ; 3c 00
    370     jne short 001b0h                          ; 75 02
    371     jmp short 00211h                          ; eb 61
     366    jne short 001a7h                          ; 75 02
     367    jmp short 00208h                          ; eb 61
    372368    cmp AL, strict byte 001h                  ; 3c 01
    373     jne short 001b6h                          ; 75 02
    374     jmp short 0022fh                          ; eb 79
     369    jne short 001adh                          ; 75 02
     370    jmp short 00226h                          ; eb 79
    375371    cmp AL, strict byte 002h                  ; 3c 02
    376     jne short 001bch                          ; 75 02
    377     jmp short 00237h                          ; eb 7b
     372    jne short 001b3h                          ; 75 02
     373    jmp short 0022eh                          ; eb 7b
    378374    cmp AL, strict byte 003h                  ; 3c 03
    379     jne short 001c3h                          ; 75 03
    380     jmp near 00268h                           ; e9 a5 00
     375    jne short 001bah                          ; 75 03
     376    jmp near 0025fh                           ; e9 a5 00
    381377    cmp AL, strict byte 007h                  ; 3c 07
    382     jne short 001cah                          ; 75 03
    383     jmp near 00292h                           ; e9 c8 00
     378    jne short 001c1h                          ; 75 03
     379    jmp near 00289h                           ; e9 c8 00
    384380    cmp AL, strict byte 008h                  ; 3c 08
    385     jne short 001d1h                          ; 75 03
    386     jmp near 002bah                           ; e9 e9 00
     381    jne short 001c8h                          ; 75 03
     382    jmp near 002b1h                           ; e9 e9 00
    387383    cmp AL, strict byte 009h                  ; 3c 09
    388     jne short 001d8h                          ; 75 03
    389     jmp near 002c8h                           ; e9 f0 00
     384    jne short 001cfh                          ; 75 03
     385    jmp near 002bfh                           ; e9 f0 00
    390386    cmp AL, strict byte 010h                  ; 3c 10
    391     jne short 001dfh                          ; 75 03
    392     jmp near 0030dh                           ; e9 2e 01
     387    jne short 001d6h                          ; 75 03
     388    jmp near 00304h                           ; e9 2e 01
    393389    cmp AL, strict byte 012h                  ; 3c 12
    394     jne short 001e6h                          ; 75 03
    395     jmp near 00326h                           ; e9 40 01
     390    jne short 001ddh                          ; 75 03
     391    jmp near 0031dh                           ; e9 40 01
    396392    cmp AL, strict byte 013h                  ; 3c 13
    397     jne short 001edh                          ; 75 03
    398     jmp near 0034eh                           ; e9 61 01
     393    jne short 001e4h                          ; 75 03
     394    jmp near 00345h                           ; e9 61 01
    399395    cmp AL, strict byte 015h                  ; 3c 15
    400     jne short 001f4h                          ; 75 03
    401     jmp near 00395h                           ; e9 a1 01
     396    jne short 001ebh                          ; 75 03
     397    jmp near 0038ch                           ; e9 a1 01
    402398    cmp AL, strict byte 017h                  ; 3c 17
    403     jne short 001fbh                          ; 75 03
    404     jmp near 003b0h                           ; e9 b5 01
     399    jne short 001f2h                          ; 75 03
     400    jmp near 003a7h                           ; e9 b5 01
    405401    cmp AL, strict byte 018h                  ; 3c 18
    406     jne short 00202h                          ; 75 03
    407     jmp near 003d8h                           ; e9 d6 01
     402    jne short 001f9h                          ; 75 03
     403    jmp near 003cfh                           ; e9 d6 01
    408404    cmp AL, strict byte 019h                  ; 3c 19
    409     jne short 00209h                          ; 75 03
    410     jmp near 003e3h                           ; e9 da 01
     405    jne short 00200h                          ; 75 03
     406    jmp near 003dah                           ; e9 da 01
    411407    cmp AL, strict byte 01ah                  ; 3c 1a
    412     jne short 00210h                          ; 75 03
    413     jmp near 003eeh                           ; e9 de 01
     408    jne short 00207h                          ; 75 03
     409    jmp near 003e5h                           ; e9 de 01
    414410    retn                                      ; c3
    415411    cmp bl, 014h                              ; 80 fb 14
    416     jnbe short 0022eh                         ; 77 18
     412    jnbe short 00225h                         ; 77 18
    417413    push ax                                   ; 50
    418414    push dx                                   ; 52
     
    435431    push bx                                   ; 53
    436432    mov BL, strict byte 011h                  ; b3 11
    437     call 00211h                               ; e8 dc ff
     433    call 00208h                               ; e8 dc ff
    438434    pop bx                                    ; 5b
    439435    retn                                      ; c3
     
    457453    ; inc cl                                    ; fe c1
    458454    cmp cl, 010h                              ; 80 f9 10
    459     jne short 00246h                          ; 75 f1
     455    jne short 0023dh                          ; 75 f1
    460456    mov AL, strict byte 011h                  ; b0 11
    461457    out DX, AL                                ; ee
     
    497493    retn                                      ; c3
    498494    cmp bl, 014h                              ; 80 fb 14
    499     jnbe short 002b9h                         ; 77 22
     495    jnbe short 002b0h                         ; 77 22
    500496    push ax                                   ; 50
    501497    push dx                                   ; 52
     
    523519    push bx                                   ; 53
    524520    mov BL, strict byte 011h                  ; b3 11
    525     call 00292h                               ; e8 d1 ff
     521    call 00289h                               ; e8 d1 ff
    526522    db  08ah, 0c7h
    527523    ; mov al, bh                                ; 8a c7
     
    551547    ; inc cl                                    ; fe c1
    552548    cmp cl, 010h                              ; 80 f9 10
    553     jne short 002d0h                          ; 75 e7
     549    jne short 002c7h                          ; 75 e7
    554550    mov dx, 003dah                            ; ba da 03
    555551    in AL, DX                                 ; ec
     
    616612    inc bx                                    ; 43
    617613    dec cx                                    ; 49
    618     jne short 00337h                          ; 75 ee
     614    jne short 0032eh                          ; 75 ee
    619615    pop dx                                    ; 5a
    620616    pop cx                                    ; 59
     
    633629    in AL, DX                                 ; ec
    634630    and bl, 001h                              ; 80 e3 01
    635     jne short 00371h                          ; 75 0d
     631    jne short 00368h                          ; 75 0d
    636632    and AL, strict byte 07fh                  ; 24 7f
    637633    sal bh, 007h                              ; c0 e7 07
     
    640636    mov dx, 003c0h                            ; ba c0 03
    641637    out DX, AL                                ; ee
    642     jmp short 0038ah                          ; eb 19
     638    jmp short 00381h                          ; eb 19
    643639    push ax                                   ; 50
    644640    mov dx, 003dah                            ; ba da 03
     
    649645    pop ax                                    ; 58
    650646    and AL, strict byte 080h                  ; 24 80
    651     jne short 00384h                          ; 75 03
     647    jne short 0037bh                          ; 75 03
    652648    sal bh, 002h                              ; c0 e7 02
    653649    and bh, 00fh                              ; 80 e7 0f
     
    708704    inc bx                                    ; 43
    709705    dec cx                                    ; 49
    710     jne short 003c1h                          ; 75 ee
     706    jne short 003b8h                          ; 75 ee
    711707    pop dx                                    ; 5a
    712708    pop cx                                    ; 59
     
    755751    and bh, 00fh                              ; 80 e7 0f
    756752    test bl, 001h                             ; f6 c3 01
    757     jne short 0041eh                          ; 75 03
     753    jne short 00415h                          ; 75 03
    758754    shr bh, 002h                              ; c0 ef 02
    759755    mov dx, 003dah                            ; ba da 03
     
    790786    mov bx, strict word 00003h                ; bb 03 00
    791787    cmp ax, 003b4h                            ; 3d b4 03
    792     jne short 0045ch                          ; 75 02
     788    jne short 00453h                          ; 75 02
    793789    mov BH, strict byte 001h                  ; b7 01
    794790    pop ax                                    ; 58
     
    807803    mov ah, byte [bx]                         ; 8a 27
    808804    cmp dl, 001h                              ; 80 fa 01
    809     je short 0048dh                           ; 74 15
    810     jc short 00497h                           ; 72 1d
     805    je short 00484h                           ; 74 15
     806    jc short 0048eh                           ; 72 1d
    811807    cmp dl, 002h                              ; 80 fa 02
    812     je short 00481h                           ; 74 02
    813     jmp short 004abh                          ; eb 2a
     808    je short 00478h                           ; 74 02
     809    jmp short 004a2h                          ; eb 2a
    814810    and AL, strict byte 07fh                  ; 24 7f
    815811    or AL, strict byte 010h                   ; 0c 10
    816812    and ah, 0f0h                              ; 80 e4 f0
    817813    or ah, 009h                               ; 80 cc 09
    818     jne short 004a1h                          ; 75 14
     814    jne short 00498h                          ; 75 14
    819815    and AL, strict byte 06fh                  ; 24 6f
    820816    and ah, 0f0h                              ; 80 e4 f0
    821817    or ah, 009h                               ; 80 cc 09
    822     jne short 004a1h                          ; 75 0a
     818    jne short 00498h                          ; 75 0a
    823819    and AL, strict byte 0efh                  ; 24 ef
    824820    or AL, strict byte 080h                   ; 0c 80
     
    914910    retn                                      ; c3
    915911    cmp AL, strict byte 000h                  ; 3c 00
    916     je short 00541h                           ; 74 05
     912    je short 00538h                           ; 74 05
    917913    cmp AL, strict byte 001h                  ; 3c 01
    918     je short 00556h                           ; 74 16
     914    je short 0054dh                           ; 74 16
    919915    retn                                      ; c3
    920916    push DS                                   ; 1e
     
    948944    pop DS                                    ; 1f
    949945    retn                                      ; c3
    950     times 0x5 db 0
     946    times 0xe db 0
    951947do_out_dx_ax:                                ; 0xc0570 LB 0x7
    952948    xchg ah, al                               ; 86 c4
     
    10541050    pop dx                                    ; 5a
    10551051    retn                                      ; c3
    1056 _dispi_set_bank_farcall:                     ; 0xc0629 LB 0xe4
     1052_dispi_set_bank_farcall:                     ; 0xc0629 LB 0xa9
    10571053    cmp bx, 00100h                            ; 81 fb 00 01
    10581054    je short 00653h                           ; 74 24
     
    11421138    pop ax                                    ; 58
    11431139    retn                                      ; c3
    1144     call 006b5h                               ; e8 e0 ff
    1145     push dx                                   ; 52
    1146     push ax                                   ; 50
    1147     mov dx, 001ceh                            ; ba ce 01
    1148     mov ax, strict word 00006h                ; b8 06 00
    1149     call 00570h                               ; e8 90 fe
    1150     pop ax                                    ; 58
    1151     mov dx, 001cfh                            ; ba cf 01
    1152     call 00570h                               ; e8 89 fe
    1153     pop dx                                    ; 5a
    1154     retn                                      ; c3
    1155     push dx                                   ; 52
    1156     mov dx, 001ceh                            ; ba ce 01
    1157     mov ax, strict word 00006h                ; b8 06 00
    1158     call 00570h                               ; e8 7d fe
    1159     mov dx, 001cfh                            ; ba cf 01
    1160     call 00577h                               ; e8 7e fe
    1161     pop dx                                    ; 5a
    1162     retn                                      ; c3
    1163     push dx                                   ; 52
    1164     mov dx, 001ceh                            ; ba ce 01
    1165     mov ax, strict word 00007h                ; b8 07 00
    1166     call 00570h                               ; e8 6b fe
    1167     mov dx, 001cfh                            ; ba cf 01
    1168     call 00577h                               ; e8 6c fe
    1169     pop dx                                    ; 5a
    1170     retn                                      ; c3
    1171 _vga_compat_setup:                           ; 0xc070d LB 0xed
     1140_vga_compat_setup:                           ; 0xc06d2 LB 0xed
    11721141    push ax                                   ; 50
    11731142    push dx                                   ; 52
    11741143    mov dx, 001ceh                            ; ba ce 01
    11751144    mov ax, strict word 00001h                ; b8 01 00
    1176     call 00570h                               ; e8 58 fe
     1145    call 00570h                               ; e8 93 fe
    11771146    mov dx, 001cfh                            ; ba cf 01
    1178     call 00577h                               ; e8 59 fe
     1147    call 00577h                               ; e8 94 fe
    11791148    push ax                                   ; 50
    11801149    mov dx, 003d4h                            ; ba d4 03
     
    11901159    out DX, ax                                ; ef
    11911160    pop ax                                    ; 58
    1192     call 006b5h                               ; e8 80 ff
     1161    call 006b5h                               ; e8 bb ff
    11931162    mov dx, 001ceh                            ; ba ce 01
    11941163    mov ax, strict word 00002h                ; b8 02 00
    1195     call 00570h                               ; e8 32 fe
     1164    call 00570h                               ; e8 6d fe
    11961165    mov dx, 001cfh                            ; ba cf 01
    1197     call 00577h                               ; e8 33 fe
     1166    call 00577h                               ; e8 6e fe
    11981167    dec ax                                    ; 48
    11991168    push ax                                   ; 50
     
    12101179    and AL, strict byte 0bdh                  ; 24 bd
    12111180    test ah, 001h                             ; f6 c4 01
    1212     je short 0075dh                           ; 74 02
     1181    je short 00722h                           ; 74 02
    12131182    or AL, strict byte 002h                   ; 0c 02
    12141183    test ah, 002h                             ; f6 c4 02
    1215     je short 00764h                           ; 74 02
     1184    je short 00729h                           ; 74 02
    12161185    or AL, strict byte 040h                   ; 0c 40
    12171186    out DX, AL                                ; ee
     
    12501219    mov dx, 001ceh                            ; ba ce 01
    12511220    mov ax, strict word 00003h                ; b8 03 00
    1252     call 00570h                               ; e8 c2 fd
     1221    call 00570h                               ; e8 fd fd
    12531222    mov dx, 001cfh                            ; ba cf 01
    1254     call 00577h                               ; e8 c3 fd
     1223    call 00577h                               ; e8 fe fd
    12551224    cmp AL, strict byte 008h                  ; 3c 08
    1256     jc short 007f8h                           ; 72 40
     1225    jc short 007bdh                           ; 72 40
    12571226    mov dx, 003d4h                            ; ba d4 03
    12581227    mov AL, strict byte 014h                  ; b0 14
     
    12911260    pop dx                                    ; 5a
    12921261    pop ax                                    ; 58
    1293 _vbe_has_vbe_display:                        ; 0xc07fa LB 0x13
     1262_vbe_has_vbe_display:                        ; 0xc07bf LB 0x13
    12941263    push DS                                   ; 1e
    12951264    push bx                                   ; 53
     
    13041273    pop DS                                    ; 1f
    13051274    retn                                      ; c3
    1306 vbe_biosfn_return_current_mode:              ; 0xc080d LB 0x25
     1275vbe_biosfn_return_current_mode:              ; 0xc07d2 LB 0x25
    13071276    push DS                                   ; 1e
    13081277    mov ax, strict word 00040h                ; b8 40 00
    13091278    mov ds, ax                                ; 8e d8
    1310     call 005f1h                               ; e8 db fd
     1279    call 005f1h                               ; e8 16 fe
    13111280    and ax, strict byte 00001h                ; 83 e0 01
    1312     je short 00824h                           ; 74 09
     1281    je short 007e9h                           ; 74 09
    13131282    mov bx, 000bah                            ; bb ba 00
    13141283    mov ax, word [bx]                         ; 8b 07
    13151284    db  08bh, 0d8h
    13161285    ; mov bx, ax                                ; 8b d8
    1317     jne short 0082dh                          ; 75 09
     1286    jne short 007f2h                          ; 75 09
    13181287    mov bx, strict word 00049h                ; bb 49 00
    13191288    mov al, byte [bx]                         ; 8a 07
     
    13251294    pop DS                                    ; 1f
    13261295    retn                                      ; c3
    1327 vbe_biosfn_display_window_control:           ; 0xc0832 LB 0x2d
     1296vbe_biosfn_display_window_control:           ; 0xc07f7 LB 0x2d
    13281297    cmp bl, 000h                              ; 80 fb 00
    1329     jne short 0085bh                          ; 75 24
     1298    jne short 00820h                          ; 75 24
    13301299    cmp bh, 001h                              ; 80 ff 01
    1331     je short 00852h                           ; 74 16
    1332     jc short 00842h                           ; 72 04
     1300    je short 00817h                           ; 74 16
     1301    jc short 00807h                           ; 72 04
    13331302    mov ax, 00100h                            ; b8 00 01
    13341303    retn                                      ; c3
    13351304    db  08bh, 0c2h
    13361305    ; mov ax, dx                                ; 8b c2
    1337     call 00603h                               ; e8 bc fd
    1338     call 00617h                               ; e8 cd fd
     1306    call 00603h                               ; e8 f7 fd
     1307    call 00617h                               ; e8 08 fe
    13391308    db  03bh, 0c2h
    13401309    ; cmp ax, dx                                ; 3b c2
    1341     jne short 0085bh                          ; 75 0d
     1310    jne short 00820h                          ; 75 0d
    13421311    mov ax, strict word 0004fh                ; b8 4f 00
    13431312    retn                                      ; c3
    1344     call 00617h                               ; e8 c2 fd
     1313    call 00617h                               ; e8 fd fd
    13451314    db  08bh, 0d0h
    13461315    ; mov dx, ax                                ; 8b d0
     
    13491318    mov ax, 0014fh                            ; b8 4f 01
    13501319    retn                                      ; c3
    1351 vbe_biosfn_set_get_logical_scan_line_length: ; 0xc085f LB 0x4d
     1320vbe_biosfn_set_get_display_start:            ; 0xc0824 LB 0x34
     1321    cmp bl, 080h                              ; 80 fb 80
     1322    je short 00834h                           ; 74 0b
     1323    cmp bl, 001h                              ; 80 fb 01
     1324    je short 00848h                           ; 74 1a
     1325    jc short 0083ah                           ; 72 0a
     1326    mov ax, 00100h                            ; b8 00 01
     1327    retn                                      ; c3
     1328    call 00589h                               ; e8 52 fd
     1329    call 0057ch                               ; e8 42 fd
    13521330    db  08bh, 0c1h
    13531331    ; mov ax, cx                                ; 8b c1
    1354     cmp bl, 001h                              ; 80 fb 01
    1355     je short 0088ah                           ; 74 24
    1356     cmp bl, 002h                              ; 80 fb 02
    1357     je short 00871h                           ; 74 06
    1358     jc short 00887h                           ; 72 1a
    1359     mov ax, 00100h                            ; b8 00 01
    1360     retn                                      ; c3
    1361     push ax                                   ; 50
    1362     call 00596h                               ; e8 21 fd
    1363     db  032h, 0ffh
    1364     ; xor bh, bh                                ; 32 ff
    1365     db  08ah, 0dch
    1366     ; mov bl, ah                                ; 8a dc
    1367     db  00ah, 0dbh
    1368     ; or bl, bl                                 ; 0a db
    1369     pop ax                                    ; 58
    1370     jne short 00883h                          ; 75 05
    1371     sal ax, 003h                              ; c1 e0 03
    1372     mov BL, strict byte 001h                  ; b3 01
    1373     db  033h, 0d2h
    1374     ; xor dx, dx                                ; 33 d2
    1375     div bx                                    ; f7 f3
    1376     call 006d2h                               ; e8 48 fe
    1377     call 00596h                               ; e8 09 fd
    1378     db  032h, 0ffh
    1379     ; xor bh, bh                                ; 32 ff
    1380     db  08ah, 0dch
    1381     ; mov bl, ah                                ; 8a dc
    1382     call 006e9h                               ; e8 55 fe
     1332    call 00669h                               ; e8 2a fe
     1333    db  08bh, 0c2h
     1334    ; mov ax, dx                                ; 8b c2
     1335    call 0068fh                               ; e8 4b fe
     1336    mov ax, strict word 0004fh                ; b8 4f 00
     1337    retn                                      ; c3
     1338    call 0067dh                               ; e8 32 fe
    13831339    db  08bh, 0c8h
    13841340    ; mov cx, ax                                ; 8b c8
    1385     db  00ah, 0dbh
    1386     ; or bl, bl                                 ; 0a db
    1387     jne short 0089fh                          ; 75 05
    1388     shr ax, 003h                              ; c1 e8 03
    1389     mov BL, strict byte 001h                  ; b3 01
    1390     mul bx                                    ; f7 e3
    1391     db  08bh, 0d8h
    1392     ; mov bx, ax                                ; 8b d8
    1393     call 006fbh                               ; e8 55 fe
    1394     db  08bh, 0d0h
    1395     ; mov dx, ax                                ; 8b d0
    1396     mov ax, strict word 0004fh                ; b8 4f 00
    1397     retn                                      ; c3
    1398 vbe_biosfn_set_get_display_start:            ; 0xc08ac LB 0x34
    1399     cmp bl, 080h                              ; 80 fb 80
    1400     je short 008bch                           ; 74 0b
    1401     cmp bl, 001h                              ; 80 fb 01
    1402     je short 008d0h                           ; 74 1a
    1403     jc short 008c2h                           ; 72 0a
    1404     mov ax, 00100h                            ; b8 00 01
    1405     retn                                      ; c3
    1406     call 00589h                               ; e8 ca fc
    1407     call 0057ch                               ; e8 ba fc
    1408     db  08bh, 0c1h
    1409     ; mov ax, cx                                ; 8b c1
    1410     call 00669h                               ; e8 a2 fd
    1411     db  08bh, 0c2h
    1412     ; mov ax, dx                                ; 8b c2
    1413     call 0068fh                               ; e8 c3 fd
    1414     mov ax, strict word 0004fh                ; b8 4f 00
    1415     retn                                      ; c3
    1416     call 0067dh                               ; e8 aa fd
    1417     db  08bh, 0c8h
    1418     ; mov cx, ax                                ; 8b c8
    1419     call 006a3h                               ; e8 cb fd
     1341    call 006a3h                               ; e8 53 fe
    14201342    db  08bh, 0d0h
    14211343    ; mov dx, ax                                ; 8b d0
     
    14241346    mov ax, strict word 0004fh                ; b8 4f 00
    14251347    retn                                      ; c3
    1426 vbe_biosfn_set_get_dac_palette_format:       ; 0xc08e0 LB 0x37
     1348vbe_biosfn_set_get_dac_palette_format:       ; 0xc0858 LB 0x37
    14271349    cmp bl, 001h                              ; 80 fb 01
    1428     je short 00903h                           ; 74 1e
    1429     jc short 008ebh                           ; 72 04
     1350    je short 0087bh                           ; 74 1e
     1351    jc short 00863h                           ; 72 04
    14301352    mov ax, 00100h                            ; b8 00 01
    14311353    retn                                      ; c3
    1432     call 005f1h                               ; e8 03 fd
     1354    call 005f1h                               ; e8 8b fd
    14331355    cmp bh, 006h                              ; 80 ff 06
    1434     je short 008fdh                           ; 74 0a
     1356    je short 00875h                           ; 74 0a
    14351357    cmp bh, 008h                              ; 80 ff 08
    1436     jne short 00913h                          ; 75 1b
     1358    jne short 0088bh                          ; 75 1b
    14371359    or ax, strict byte 00020h                 ; 83 c8 20
    1438     jne short 00900h                          ; 75 03
     1360    jne short 00878h                          ; 75 03
    14391361    and ax, strict byte 0ffdfh                ; 83 e0 df
    1440     call 005ddh                               ; e8 da fc
     1362    call 005ddh                               ; e8 62 fd
    14411363    mov BH, strict byte 006h                  ; b7 06
    1442     call 005f1h                               ; e8 e9 fc
     1364    call 005f1h                               ; e8 71 fd
    14431365    and ax, strict byte 00020h                ; 83 e0 20
    1444     je short 0090fh                           ; 74 02
     1366    je short 00887h                           ; 74 02
    14451367    mov BH, strict byte 008h                  ; b7 08
    14461368    mov ax, strict word 0004fh                ; b8 4f 00
     
    14481370    mov ax, 0014fh                            ; b8 4f 01
    14491371    retn                                      ; c3
    1450 vbe_biosfn_set_get_palette_data:             ; 0xc0917 LB 0x64
     1372vbe_biosfn_set_get_palette_data:             ; 0xc088f LB 0x64
    14511373    test bl, bl                               ; 84 db
    1452     je short 0092ah                           ; 74 0f
     1374    je short 008a2h                           ; 74 0f
    14531375    cmp bl, 001h                              ; 80 fb 01
    1454     je short 00952h                           ; 74 32
     1376    je short 008cah                           ; 74 32
    14551377    cmp bl, 003h                              ; 80 fb 03
    1456     jbe short 00977h                          ; 76 52
     1378    jbe short 008efh                          ; 76 52
    14571379    cmp bl, 080h                              ; 80 fb 80
    1458     jne short 00973h                          ; 75 49
     1380    jne short 008ebh                          ; 75 49
    14591381    pushad                                    ; 66 60
    14601382    push DS                                   ; 1e
     
    14751397    rol eax, 008h                             ; 66 c1 c0 08
    14761398    out DX, AL                                ; ee
    1477     loop 00938h                               ; e2 ed
     1399    loop 008b0h                               ; e2 ed
    14781400    pop DS                                    ; 1f
    14791401    popad                                     ; 66 61
     
    14941416    in AL, DX                                 ; ec
    14951417    stosd                                     ; 66 ab
    1496     loop 0095dh                               ; e2 ee
     1418    loop 008d5h                               ; e2 ee
    14971419    popad                                     ; 66 61
    1498     jmp short 0094eh                          ; eb db
     1420    jmp short 008c6h                          ; eb db
    14991421    mov ax, 0014fh                            ; b8 4f 01
    15001422    retn                                      ; c3
    15011423    mov ax, 0024fh                            ; b8 4f 02
    15021424    retn                                      ; c3
    1503 vbe_biosfn_return_protected_mode_interface: ; 0xc097b LB 0x17
     1425vbe_biosfn_return_protected_mode_interface: ; 0xc08f3 LB 0x17
    15041426    test bl, bl                               ; 84 db
    1505     jne short 0098eh                          ; 75 0f
     1427    jne short 00906h                          ; 75 0f
    15061428    mov di, 0c000h                            ; bf 00 c0
    15071429    mov es, di                                ; 8e c7
     
    15131435    retn                                      ; c3
    15141436
    1515   ; Padding 0x6e bytes at 0xc0992
    1516   times 110 db 0
     1437  ; Padding 0xf6 bytes at 0xc090a
     1438  times 246 db 0
    15171439
    1518 section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f57 class=CODE group=AUTO
     1440section _TEXT progbits vstart=0xa00 align=1 ; size=0x3081 class=CODE group=AUTO
    15191441set_int_vector_:                             ; 0xc0a00 LB 0x1a
    15201442    push bx                                   ; 53
     
    15701492    call 00a1ah                               ; e8 ac ff
    15711493    call 00a36h                               ; e8 c5 ff
    1572     call 03482h                               ; e8 0e 2a
     1494    call 03503h                               ; e8 8f 2a
    15731495    mov dx, strict word 00022h                ; ba 22 00
    15741496    mov ax, strict word 00010h                ; b8 10 00
     
    22082130    and AL, strict byte 080h                  ; 24 80
    22092131    mov byte [bp-010h], al                    ; 88 46 f0
    2210     call 007fah                               ; e8 08 f8
     2132    call 007bfh                               ; e8 cd f7
    22112133    test ax, ax                               ; 85 c0
    22122134    je short 01002h                           ; 74 0c
     
    55615483    pop bx                                    ; 5b
    55625484    retn                                      ; c3
    5563 write_dword_:                                ; 0xc2f88 LB 0x7f
     5485write_dword_:                                ; 0xc2f88 LB 0x96
    55645486    push si                                   ; 56
    55655487    push bp                                   ; 55
     
    55835505    add ax, 00304h                            ; 05 04 03
    55845506    add al, byte [bx+di]                      ; 02 01
    5585     add dl, cl                                ; 00 ca
    5586     xor si, word [di]                         ; 33 35
    5587     xor byte [bp+di+030h], dh                 ; 30 73 30
    5588     xchg word [bx+si], si                     ; 87 30
    5589     cbw                                       ; 98
    5590     xor byte [si-042d0h], ch                  ; 30 ac 30 bd
    5591     xor bh, al                                ; 30 c7
    5592     xor byte [bx+di], al                      ; 30 01
    5593     xor word [di], ax                         ; 31 05
    5594     xor word [03331h], dx                     ; 31 16 31 33
    5595     xor word [bx+si+031h], dx                 ; 31 50 31
    5596     jo short 02ffch                           ; 70 31
    5597     lea si, [bx+di]                           ; 8d 31
    5598     movsb                                     ; a4
    5599     xor word [bx+si-074cfh], si               ; 31 b0 31 8b
    5600     db  032h, 0c6h
    5601     ; xor al, dh                                ; 32 c6
    5602     db  032h, 0f6h
    5603     ; xor dh, dh                                ; 32 f6
    5604     xor cl, byte [bp+di]                      ; 32 0b
    5605     xor cx, word [di+033h]                    ; 33 4d 33
     5507    add cl, ah                                ; 00 e1
     5508    xor dx, word [bx+di+030h]                 ; 33 51 30
     5509    db  08fh, 030h
     5510    ; pop word [bx+si]                          ; 8f 30
     5511    mov word [0b430h], ax                     ; a3 30 b4
     5512    xor al, cl                                ; 30 c8
     5513    xor cl, bl                                ; 30 d9
     5514    xor bl, ah                                ; 30 e3
     5515    xor byte [di], bl                         ; 30 1d
     5516    xor word [bx+di], sp                      ; 31 21
     5517    xor word [bp+si], si                      ; 31 32
     5518    xor word [bx+031h], cx                    ; 31 4f 31
     5519    insb                                      ; 6c
     5520    xor word [bp+di-057cfh], cx               ; 31 8b 31 a8
     5521    xor word [bx-034cfh], di                  ; 31 bf 31 cb
     5522    xor word [bp+di-02aceh], bx               ; 31 9b 32 d5
     5523    xor cl, byte [bx+si]                      ; 32 08
     5524    xor bx, word [di]                         ; 33 1d
     5525    xor bx, word [bp+si+033h]                 ; 33 5a 33
    56065526    xor byte [si], ah                         ; 30 24
    56075527    and sp, word [bp+si]                      ; 23 22
     
    56115531    add AL, strict byte 002h                  ; 04 02
    56125532    add word [bx+si], ax                      ; 01 00
    5613     retf 0d133h                               ; ca 33 d1
    5614     xor di, si                                ; 31 f7
    5615     xor word [bx+si], cx                      ; 31 08
    5616     xor bl, byte [bx+di]                      ; 32 19
    5617     db  032h, 0d1h
    5618     ; xor dl, cl                                ; 32 d1
    5619     xor di, si                                ; 31 f7
    5620     xor word [bx+si], cx                      ; 31 08
    5621     xor bl, byte [bx+di]                      ; 32 19
    5622     xor ch, byte [bp+si]                      ; 32 2a
    5623     xor dh, byte [05132h]                     ; 32 36 32 51
    5624     xor bl, byte [si+032h]                    ; 32 5c 32
    5625     xor dh, byte [edx+032h]                   ; 67 32 72 32
    5626 _int10_func:                                 ; 0xc3007 LB 0x3ca
     5533    loope 0301eh                              ; e1 33
     5534    jmp far 02132h:01031h                     ; ea 31 10 32 21
     5535    xor dh, byte [bp+si]                      ; 32 32
     5536    db  032h, 0eah
     5537    ; xor ch, dl                                ; 32 ea
     5538    xor word [bx+si], dx                      ; 31 10
     5539    xor ah, byte [bx+di]                      ; 32 21
     5540    xor dh, byte [bp+si]                      ; 32 32
     5541    xor al, byte [bp+di+032h]                 ; 32 43 32
     5542    dec di                                    ; 4f
     5543    xor ch, byte [bp+si+032h]                 ; 32 6a 32
     5544    jc short 03035h                           ; 72 32
     5545    jp short 03037h                           ; 7a 32
     5546    db  082h, 032h, 00ah
     5547    ; xor byte [bp+si], 00ah                    ; 82 32 0a
     5548    or word [00204h], ax                      ; 09 06 04 02
     5549    add word [bx+si], ax                      ; 01 00
     5550    aad 033h                                  ; d5 33
     5551    db  082h, 033h, 08fh
     5552    ; xor byte [bp+di], 08fh                    ; 82 33 8f
     5553    xor bx, word [bx-050cdh]                  ; 33 9f 33 af
     5554    db  033h, 0c4h
     5555    ; xor ax, sp                                ; 33 c4
     5556    db  033h, 0d5h
     5557    ; xor dx, bp                                ; 33 d5
     5558    db  033h, 0d5h
     5559    ; xor dx, bp                                ; 33 d5
     5560    db  033h
     5561_int10_func:                                 ; 0xc301e LB 0x3ca
    56275562    push bp                                   ; 55
    56285563    mov bp, sp                                ; 89 e5
     
    56345569    shr ax, 008h                              ; c1 e8 08
    56355570    cmp ax, strict word 0004fh                ; 3d 4f 00
    5636     jnbe near 033cah                          ; 0f 87 ad 03
     5571    jnbe near 033e1h                          ; 0f 87 ad 03
    56375572    push CS                                   ; 0e
    56385573    pop ES                                    ; 07
     
    56425577    sal cx, 1                                 ; d1 e1
    56435578    mov di, cx                                ; 89 cf
    5644     mov ax, word [cs:di+02fafh]               ; 2e 8b 85 af 2f
    5645     mov cl, byte [bp+012h]                    ; 8a 4e 12
    5646     jmp ax                                    ; ff e0
     5579    mov bx, word [cs:di+02fafh]               ; 2e 8b 9d af 2f
     5580    mov ax, word [bp+012h]                    ; 8b 46 12
     5581    xor ah, ah                                ; 30 e4
     5582    mov dl, byte [bp+012h]                    ; 8a 56 12
     5583    jmp bx                                    ; ff e3
    56475584    mov al, byte [bp+012h]                    ; 8a 46 12
    56485585    xor ah, ah                                ; 30 e4
    5649     call 00fdch                               ; e8 9f df
     5586    call 00fdch                               ; e8 83 df
    56505587    mov ax, word [bp+012h]                    ; 8b 46 12
    56515588    and ax, strict word 0007fh                ; 25 7f 00
    56525589    cmp ax, strict word 00007h                ; 3d 07 00
    5653     je short 0305dh                           ; 74 15
     5590    je short 03079h                           ; 74 15
    56545591    cmp ax, strict word 00006h                ; 3d 06 00
    5655     je short 03054h                           ; 74 07
     5592    je short 03070h                           ; 74 07
    56565593    cmp ax, strict word 00005h                ; 3d 05 00
    5657     jbe short 0305dh                          ; 76 0b
    5658     jmp short 03066h                          ; eb 12
     5594    jbe short 03079h                          ; 76 0b
     5595    jmp short 03082h                          ; eb 12
    56595596    mov ax, word [bp+012h]                    ; 8b 46 12
    56605597    xor al, al                                ; 30 c0
    56615598    or AL, strict byte 03fh                   ; 0c 3f
    5662     jmp short 0306dh                          ; eb 10
     5599    jmp short 03089h                          ; eb 10
    56635600    mov ax, word [bp+012h]                    ; 8b 46 12
    56645601    xor al, al                                ; 30 c0
    56655602    or AL, strict byte 030h                   ; 0c 30
    5666     jmp short 0306dh                          ; eb 07
     5603    jmp short 03089h                          ; eb 07
    56675604    mov ax, word [bp+012h]                    ; 8b 46 12
    56685605    xor al, al                                ; 30 c0
    56695606    or AL, strict byte 020h                   ; 0c 20
    56705607    mov word [bp+012h], ax                    ; 89 46 12
    5671     jmp near 033cah                           ; e9 57 03
     5608    jmp near 033e1h                           ; e9 52 03
    56725609    mov al, byte [bp+010h]                    ; 8a 46 10
    56735610    movzx dx, al                              ; 0f b6 d0
     
    56755612    shr ax, 008h                              ; c1 e8 08
    56765613    xor ah, ah                                ; 30 e4
    5677     call 00dbah                               ; e8 36 dd
    5678     jmp near 033cah                           ; e9 43 03
     5614    call 00dbah                               ; e8 1a dd
     5615    jmp near 033e1h                           ; e9 3e 03
    56795616    mov dx, word [bp+00eh]                    ; 8b 56 0e
    56805617    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56815618    shr ax, 008h                              ; c1 e8 08
    56825619    xor ah, ah                                ; 30 e4
    5683     call 00e5eh                               ; e8 c9 dd
    5684     jmp near 033cah                           ; e9 32 03
     5620    call 00e5eh                               ; e8 ad dd
     5621    jmp near 033e1h                           ; e9 2d 03
    56855622    lea bx, [bp+00eh]                         ; 8d 5e 0e
    56865623    lea dx, [bp+010h]                         ; 8d 56 10
     
    56885625    shr ax, 008h                              ; c1 e8 08
    56895626    xor ah, ah                                ; 30 e4
    5690     call 00a88h                               ; e8 df d9
    5691     jmp near 033cah                           ; e9 1e 03
    5692     xor ax, ax                                ; 31 c0
     5627    call 00a88h                               ; e8 c3 d9
     5628    jmp near 033e1h                           ; e9 19 03
     5629    xor al, al                                ; 30 c0
    56935630    mov word [bp+012h], ax                    ; 89 46 12
    56945631    mov word [bp+00ch], ax                    ; 89 46 0c
    56955632    mov word [bp+010h], ax                    ; 89 46 10
    56965633    mov word [bp+00eh], ax                    ; 89 46 0e
    5697     jmp near 033cah                           ; e9 0d 03
    5698     mov al, cl                                ; 88 c8
     5634    jmp near 033e1h                           ; e9 08 03
     5635    mov al, dl                                ; 88 d0
    56995636    xor ah, ah                                ; 30 e4
    5700     call 00f00h                               ; e8 3c de
    5701     jmp near 033cah                           ; e9 03 03
     5637    call 00f00h                               ; e8 20 de
     5638    jmp near 033e1h                           ; e9 fe 02
    57025639    mov ax, strict word 00001h                ; b8 01 00
    57035640    push ax                                   ; 50
     
    57215658    mov al, byte [bp+012h]                    ; 8a 46 12
    57225659    xor ah, ah                                ; 30 e4
    5723     call 01572h                               ; e8 74 e4
    5724     jmp near 033cah                           ; e9 c9 02
    5725     xor ax, ax                                ; 31 c0
    5726     jmp short 030cah                          ; eb c5
     5660    call 01572h                               ; e8 58 e4
     5661    jmp near 033e1h                           ; e9 c4 02
     5662    xor al, al                                ; 30 c0
     5663    jmp short 030e6h                          ; eb c5
    57275664    lea dx, [bp+012h]                         ; 8d 56 12
    57285665    mov ax, word [bp+00ch]                    ; 8b 46 0c
    57295666    shr ax, 008h                              ; c1 e8 08
    57305667    xor ah, ah                                ; 30 e4
    5731     call 00acbh                               ; e8 b8 d9
    5732     jmp near 033cah                           ; e9 b4 02
     5668    call 00acbh                               ; e8 9c d9
     5669    jmp near 033e1h                           ; e9 af 02
    57335670    mov cx, word [bp+010h]                    ; 8b 4e 10
    57345671    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57395676    mov al, byte [bp+012h]                    ; 8a 46 12
    57405677    xor ah, ah                                ; 30 e4
    5741     call 01d12h                               ; e8 e2 eb
    5742     jmp near 033cah                           ; e9 97 02
     5678    call 01d12h                               ; e8 c6 eb
     5679    jmp near 033e1h                           ; e9 92 02
    57435680    mov cx, word [bp+010h]                    ; 8b 4e 10
    57445681    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57495686    mov al, byte [bp+012h]                    ; 8a 46 12
    57505687    xor ah, ah                                ; 30 e4
    5751     call 01e7ah                               ; e8 2d ed
    5752     jmp near 033cah                           ; e9 7a 02
     5688    call 01e7ah                               ; e8 11 ed
     5689    jmp near 033e1h                           ; e9 75 02
    57535690    mov cx, word [bp+00eh]                    ; 8b 4e 0e
    57545691    mov bx, word [bp+010h]                    ; 8b 5e 10
    5755     mov al, byte [bp+012h]                    ; 8a 46 12
     5692    mov al, dl                                ; 88 d0
    57565693    movzx dx, al                              ; 0f b6 d0
    57575694    mov ax, word [bp+00ch]                    ; 8b 46 0c
     
    57605697    mov al, byte [bp-006h]                    ; 8a 46 fa
    57615698    xor ah, ah                                ; 30 e4
    5762     call 01fe9h                               ; e8 7c ee
    5763     jmp near 033cah                           ; e9 5a 02
     5699    call 01fe9h                               ; e8 61 ee
     5700    jmp near 033e1h                           ; e9 56 02
    57645701    lea cx, [bp+012h]                         ; 8d 4e 12
    57655702    mov bx, word [bp+00eh]                    ; 8b 5e 0e
     
    57705707    mov al, byte [bp-006h]                    ; 8a 46 fa
    57715708    xor ah, ah                                ; 30 e4
    5772     call 00bf5h                               ; e8 6b da
    5773     jmp near 033cah                           ; e9 3d 02
     5709    call 00bf5h                               ; e8 50 da
     5710    jmp near 033e1h                           ; e9 39 02
    57745711    mov cx, strict word 00002h                ; b9 02 00
    57755712    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57785715    mov al, byte [bp+012h]                    ; 8a 46 12
    57795716    xor ah, ah                                ; 30 e4
    5780     call 02153h                               ; e8 b2 ef
    5781     jmp near 033cah                           ; e9 26 02
     5717    call 02153h                               ; e8 97 ef
     5718    jmp near 033e1h                           ; e9 22 02
    57825719    mov dx, word [bp+010h]                    ; 8b 56 10
    57835720    mov ax, word [bp+00ch]                    ; 8b 46 0c
    5784     call 00d2eh                               ; e8 81 db
    5785     jmp near 033cah                           ; e9 1a 02
    5786     mov ax, word [bp+012h]                    ; 8b 46 12
    5787     xor ah, ah                                ; 30 e4
     5721    call 00d2eh                               ; e8 66 db
     5722    jmp near 033e1h                           ; e9 16 02
    57885723    cmp ax, strict word 00030h                ; 3d 30 00
    5789     jnbe near 033cah                          ; 0f 87 0e 02
     5724    jnbe near 033e1h                          ; 0f 87 0f 02
    57905725    push CS                                   ; 0e
    57915726    pop ES                                    ; 07
     
    57955730    sal cx, 1                                 ; d1 e1
    57965731    mov di, cx                                ; 89 cf
    5797     mov ax, word [cs:di+02fe9h]               ; 2e 8b 85 e9 2f
    5798     jmp ax                                    ; ff e0
     5732    mov dx, word [cs:di+02fe9h]               ; 2e 8b 95 e9 2f
     5733    mov al, byte [bp+00ch]                    ; 8a 46 0c
     5734    jmp dx                                    ; ff e2
    57995735    mov ax, word [bp+00ch]                    ; 8b 46 0c
    58005736    shr ax, 008h                              ; c1 e8 08
     
    58105746    mov bx, word [bp+008h]                    ; 8b 5e 08
    58115747    mov dx, word [bp+016h]                    ; 8b 56 16
    5812     call 024bbh                               ; e8 c7 f2
    5813     jmp near 033cah                           ; e9 d3 01
     5748    call 024bbh                               ; e8 ae f2
     5749    jmp near 033e1h                           ; e9 d1 01
    58145750    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58155751    movzx dx, al                              ; 0f b6 d0
    58165752    mov al, byte [bp+012h]                    ; 8a 46 12
    58175753    xor ah, ah                                ; 30 e4
    5818     call 02538h                               ; e8 33 f3
    5819     jmp near 033cah                           ; e9 c2 01
     5754    call 02538h                               ; e8 1a f3
     5755    jmp near 033e1h                           ; e9 c0 01
    58205756    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58215757    movzx dx, al                              ; 0f b6 d0
    58225758    mov al, byte [bp+012h]                    ; 8a 46 12
    58235759    xor ah, ah                                ; 30 e4
    5824     call 025a8h                               ; e8 92 f3
    5825     jmp near 033cah                           ; e9 b1 01
     5760    call 025a8h                               ; e8 79 f3
     5761    jmp near 033e1h                           ; e9 af 01
    58265762    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58275763    movzx dx, al                              ; 0f b6 d0
    58285764    mov al, byte [bp+012h]                    ; 8a 46 12
    58295765    xor ah, ah                                ; 30 e4
    5830     call 0261ah                               ; e8 f3 f3
    5831     jmp near 033cah                           ; e9 a0 01
     5766    call 0261ah                               ; e8 da f3
     5767    jmp near 033e1h                           ; e9 9e 01
    58325768    mov dx, word [bp+008h]                    ; 8b 56 08
    58335769    mov ax, word [bp+016h]                    ; 8b 46 16
    5834     call 0268ch                               ; e8 59 f4
    5835     jmp near 033cah                           ; e9 94 01
     5770    call 0268ch                               ; e8 40 f4
     5771    jmp near 033e1h                           ; e9 92 01
    58365772    mov al, byte [bp+00eh]                    ; 8a 46 0e
    58375773    xor ah, ah                                ; 30 e4
     
    58425778    mov dx, word [bp+008h]                    ; 8b 56 08
    58435779    mov ax, word [bp+016h]                    ; 8b 46 16
    5844     call 02691h                               ; e8 43 f4
    5845     jmp near 033cah                           ; e9 79 01
    5846     mov al, byte [bp+00ch]                    ; 8a 46 0c
     5780    call 02691h                               ; e8 2a f4
     5781    jmp near 033e1h                           ; e9 77 01
    58475782    xor ah, ah                                ; 30 e4
    5848     call 02698h                               ; e8 3f f4
    5849     jmp near 033cah                           ; e9 6e 01
    5850     mov al, byte [bp+00ch]                    ; 8a 46 0c
     5783    call 02698h                               ; e8 29 f4
     5784    jmp near 033e1h                           ; e9 6f 01
    58515785    xor ah, ah                                ; 30 e4
    5852     call 0269dh                               ; e8 39 f4
    5853     jmp near 033cah                           ; e9 63 01
    5854     mov al, byte [bp+00ch]                    ; 8a 46 0c
     5786    call 0269dh                               ; e8 26 f4
     5787    jmp near 033e1h                           ; e9 67 01
    58555788    xor ah, ah                                ; 30 e4
    5856     call 026a2h                               ; e8 33 f4
    5857     jmp near 033cah                           ; e9 58 01
     5789    call 026a2h                               ; e8 23 f4
     5790    jmp near 033e1h                           ; e9 5f 01
    58585791    lea ax, [bp+00eh]                         ; 8d 46 0e
    58595792    push ax                                   ; 50
     5793    mov ax, word [bp+00ch]                    ; 8b 46 0c
     5794    shr ax, 008h                              ; c1 e8 08
    58605795    lea cx, [bp+010h]                         ; 8d 4e 10
    58615796    lea bx, [bp+008h]                         ; 8d 5e 08
    58625797    lea dx, [bp+016h]                         ; 8d 56 16
    5863     mov ax, word [bp+00ch]                    ; 8b 46 0c
    5864     shr ax, 008h                              ; c1 e8 08
    5865     call 00b73h                               ; e8 eb d8
    5866     jmp near 033cah                           ; e9 3f 01
     5798    call 00b73h                               ; e8 db d8
     5799    jmp near 033e1h                           ; e9 46 01
    58675800    mov ax, word [bp+00ch]                    ; 8b 46 0c
    58685801    xor ah, ah                                ; 30 e4
    58695802    cmp ax, strict word 00036h                ; 3d 36 00
    5870     je short 032bdh                           ; 74 28
     5803    je short 032cdh                           ; 74 28
    58715804    cmp ax, strict word 00035h                ; 3d 35 00
    5872     je short 032a7h                           ; 74 0d
     5805    je short 032b7h                           ; 74 0d
    58735806    cmp ax, strict word 00020h                ; 3d 20 00
    5874     jne near 033cah                           ; 0f 85 29 01
    5875     call 026a7h                               ; e8 03 f4
    5876     jmp near 033cah                           ; e9 23 01
    5877     movzx ax, cl                              ; 0f b6 c1
     5807    jne near 033e1h                           ; 0f 85 30 01
     5808    call 026a7h                               ; e8 f3 f3
     5809    jmp near 033e1h                           ; e9 2a 01
     5810    movzx ax, dl                              ; 0f b6 c2
    58785811    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    58795812    mov dx, word [bp+016h]                    ; 8b 56 16
    5880     call 026ach                               ; e8 f9 f3
     5813    call 026ach                               ; e8 e9 f3
    58815814    mov ax, word [bp+012h]                    ; 8b 46 12
    58825815    xor al, al                                ; 30 c0
    58835816    or AL, strict byte 012h                   ; 0c 12
    5884     jmp near 0306dh                           ; e9 b0 fd
    5885     mov al, cl                                ; 88 c8
    5886     xor ah, ah                                ; 30 e4
    5887     call 026b1h                               ; e8 ed f3
    5888     jmp short 032b3h                          ; eb ed
     5817    jmp near 03089h                           ; e9 bc fd
     5818    movzx ax, dl                              ; 0f b6 c2
     5819    call 026b1h                               ; e8 de f3
     5820    jmp short 032c3h                          ; eb ee
    58895821    push word [bp+008h]                       ; ff 76 08
    58905822    push word [bp+016h]                       ; ff 76 16
     
    59005832    mov ax, word [bp+00ch]                    ; 8b 46 0c
    59015833    shr ax, 008h                              ; c1 e8 08
    5902     movzx dx, al                              ; 0f b6 d0
    5903     movzx ax, cl                              ; 0f b6 c1
     5834    xor ah, ah                                ; 30 e4
     5835    movzx si, dl                              ; 0f b6 f2
    59045836    mov cx, word [bp+010h]                    ; 8b 4e 10
    5905     call 026b6h                               ; e8 c3 f3
    5906     jmp near 033cah                           ; e9 d4 00
     5837    mov dx, ax                                ; 89 c2
     5838    mov ax, si                                ; 89 f0
     5839    call 026b6h                               ; e8 b1 f3
     5840    jmp near 033e1h                           ; e9 d9 00
    59075841    mov bx, si                                ; 89 f3
    59085842    mov dx, word [bp+016h]                    ; 8b 56 16
    59095843    mov ax, word [bp+00ch]                    ; 8b 46 0c
    5910     call 02752h                               ; e8 51 f4
     5844    call 02752h                               ; e8 3f f4
    59115845    mov ax, word [bp+012h]                    ; 8b 46 12
    59125846    xor al, al                                ; 30 c0
    59135847    or AL, strict byte 01bh                   ; 0c 1b
    5914     jmp near 0306dh                           ; e9 62 fd
    5915     mov ax, word [bp+012h]                    ; 8b 46 12
    5916     xor ah, ah                                ; 30 e4
     5848    jmp near 03089h                           ; e9 6c fd
    59175849    cmp ax, strict word 00002h                ; 3d 02 00
    5918     je short 03337h                           ; 74 22
     5850    je short 03344h                           ; 74 22
    59195851    cmp ax, strict word 00001h                ; 3d 01 00
    5920     je short 03329h                           ; 74 0f
     5852    je short 03336h                           ; 74 0f
    59215853    test ax, ax                               ; 85 c0
    5922     jne short 03343h                          ; 75 25
     5854    jne short 03350h                          ; 75 25
    59235855    lea dx, [bp+00ch]                         ; 8d 56 0c
    59245856    mov ax, word [bp+010h]                    ; 8b 46 10
    5925     call 02876h                               ; e8 4f f5
    5926     jmp short 03343h                          ; eb 1a
     5857    call 02876h                               ; e8 42 f5
     5858    jmp short 03350h                          ; eb 1a
    59275859    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    59285860    mov dx, word [bp+016h]                    ; 8b 56 16
    59295861    mov ax, word [bp+010h]                    ; 8b 46 10
    5930     call 02888h                               ; e8 53 f5
    5931     jmp short 03343h                          ; eb 0c
     5862    call 02888h                               ; e8 46 f5
     5863    jmp short 03350h                          ; eb 0c
    59325864    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    59335865    mov dx, word [bp+016h]                    ; 8b 56 16
    59345866    mov ax, word [bp+010h]                    ; 8b 46 10
    5935     call 02bf1h                               ; e8 ae f8
     5867    call 02bf1h                               ; e8 a1 f8
    59365868    mov ax, word [bp+012h]                    ; 8b 46 12
    59375869    xor al, al                                ; 30 c0
    59385870    or AL, strict byte 01ch                   ; 0c 1c
    5939     jmp near 0306dh                           ; e9 20 fd
    5940     call 007fah                               ; e8 aa d4
     5871    jmp near 03089h                           ; e9 2f fd
     5872    call 007bfh                               ; e8 62 d4
    59415873    test ax, ax                               ; 85 c0
    5942     je near 033c5h                            ; 0f 84 6f 00
     5874    je near 033dch                            ; 0f 84 79 00
    59435875    mov ax, word [bp+012h]                    ; 8b 46 12
    59445876    xor ah, ah                                ; 30 e4
    5945     cmp ax, strict word 00002h                ; 3d 02 00
    5946     jc short 03373h                           ; 72 13
    5947     jbe short 03399h                          ; 76 37
    59485877    cmp ax, strict word 0000ah                ; 3d 0a 00
    5949     je short 033beh                           ; 74 57
    5950     cmp ax, strict word 00009h                ; 3d 09 00
    5951     je short 033beh                           ; 74 52
    5952     cmp ax, strict word 00004h                ; 3d 04 00
    5953     je short 033a9h                           ; 74 38
    5954     jmp short 033beh                          ; eb 4b
    5955     cmp ax, strict word 00001h                ; 3d 01 00
    5956     je short 03389h                           ; 74 11
    5957     test ax, ax                               ; 85 c0
    5958     jne short 033beh                          ; 75 42
     5878    jnbe short 033d5h                         ; 77 68
     5879    push CS                                   ; 0e
     5880    pop ES                                    ; 07
     5881    mov cx, strict word 00008h                ; b9 08 00
     5882    mov di, 03007h                            ; bf 07 30
     5883    repne scasb                               ; f2 ae
     5884    sal cx, 1                                 ; d1 e1
     5885    mov di, cx                                ; 89 cf
     5886    mov ax, word [cs:di+0300eh]               ; 2e 8b 85 0e 30
     5887    jmp ax                                    ; ff e0
    59595888    mov bx, si                                ; 89 f3
    59605889    mov dx, word [bp+016h]                    ; 8b 56 16
    59615890    lea ax, [bp+012h]                         ; 8d 46 12
    5962     call 03503h                               ; e8 7c 01
    5963     jmp short 033cah                          ; eb 41
     5891    call 03584h                               ; e8 f7 01
     5892    jmp short 033e1h                          ; eb 52
    59645893    mov cx, si                                ; 89 f1
    59655894    mov bx, word [bp+016h]                    ; 8b 5e 16
    59665895    mov dx, word [bp+010h]                    ; 8b 56 10
    59675896    lea ax, [bp+012h]                         ; 8d 46 12
    5968     call 0362ch                               ; e8 95 02
    5969     jmp short 033cah                          ; eb 31
     5897    call 036adh                               ; e8 10 03
     5898    jmp short 033e1h                          ; eb 42
    59705899    mov cx, si                                ; 89 f1
    59715900    mov bx, word [bp+016h]                    ; 8b 5e 16
    59725901    mov dx, word [bp+00ch]                    ; 8b 56 0c
    59735902    lea ax, [bp+012h]                         ; 8d 46 12
    5974     call 036e4h                               ; e8 3d 03
    5975     jmp short 033cah                          ; eb 21
     5903    call 03765h                               ; e8 b8 03
     5904    jmp short 033e1h                          ; eb 32
    59765905    lea ax, [bp+00ch]                         ; 8d 46 0c
    59775906    push ax                                   ; 50
     
    59805909    mov dx, word [bp+010h]                    ; 8b 56 10
    59815910    lea ax, [bp+012h]                         ; 8d 46 12
    5982     call 038cbh                               ; e8 0f 05
    5983     jmp short 033cah                          ; eb 0c
     5911    call 0394ch                               ; e8 8a 05
     5912    jmp short 033e1h                          ; eb 1d
     5913    lea cx, [bp+00eh]                         ; 8d 4e 0e
     5914    lea bx, [bp+010h]                         ; 8d 5e 10
     5915    lea dx, [bp+00ch]                         ; 8d 56 0c
     5916    lea ax, [bp+012h]                         ; 8d 46 12
     5917    call 039d8h                               ; e8 05 06
     5918    jmp short 033e1h                          ; eb 0c
    59845919    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    5985     jmp short 033cah                          ; eb 05
     5920    jmp short 033e1h                          ; eb 05
    59865921    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    59875922    lea sp, [bp-004h]                         ; 8d 66 fc
     
    59905925    pop bp                                    ; 5d
    59915926    retn                                      ; c3
    5992 dispi_set_xres_:                             ; 0xc33d1 LB 0x1f
     5927dispi_set_xres_:                             ; 0xc33e8 LB 0x1f
    59935928    push bp                                   ; 55
    59945929    mov bp, sp                                ; 89 e5
     
    59985933    mov ax, strict word 00001h                ; b8 01 00
    59995934    mov dx, 001ceh                            ; ba ce 01
    6000     call 00570h                               ; e8 8f d1
     5935    call 00570h                               ; e8 78 d1
    60015936    mov ax, bx                                ; 89 d8
    60025937    mov dx, 001cfh                            ; ba cf 01
    6003     call 00570h                               ; e8 87 d1
     5938    call 00570h                               ; e8 70 d1
    60045939    lea sp, [bp-004h]                         ; 8d 66 fc
    60055940    pop dx                                    ; 5a
     
    60075942    pop bp                                    ; 5d
    60085943    retn                                      ; c3
    6009 dispi_set_yres_:                             ; 0xc33f0 LB 0x1f
     5944dispi_set_yres_:                             ; 0xc3407 LB 0x1f
    60105945    push bp                                   ; 55
    60115946    mov bp, sp                                ; 89 e5
     
    60155950    mov ax, strict word 00002h                ; b8 02 00
    60165951    mov dx, 001ceh                            ; ba ce 01
    6017     call 00570h                               ; e8 70 d1
     5952    call 00570h                               ; e8 59 d1
    60185953    mov ax, bx                                ; 89 d8
    60195954    mov dx, 001cfh                            ; ba cf 01
    6020     call 00570h                               ; e8 68 d1
     5955    call 00570h                               ; e8 51 d1
    60215956    lea sp, [bp-004h]                         ; 8d 66 fc
    60225957    pop dx                                    ; 5a
     
    60245959    pop bp                                    ; 5d
    60255960    retn                                      ; c3
    6026 dispi_set_bpp_:                              ; 0xc340f LB 0x1f
     5961dispi_set_bpp_:                              ; 0xc3426 LB 0x1f
    60275962    push bp                                   ; 55
    60285963    mov bp, sp                                ; 89 e5
     
    60325967    mov ax, strict word 00003h                ; b8 03 00
    60335968    mov dx, 001ceh                            ; ba ce 01
    6034     call 00570h                               ; e8 51 d1
     5969    call 00570h                               ; e8 3a d1
    60355970    mov ax, bx                                ; 89 d8
    60365971    mov dx, 001cfh                            ; ba cf 01
    6037     call 00570h                               ; e8 49 d1
     5972    call 00570h                               ; e8 32 d1
    60385973    lea sp, [bp-004h]                         ; 8d 66 fc
    60395974    pop dx                                    ; 5a
     
    60415976    pop bp                                    ; 5d
    60425977    retn                                      ; c3
    6043 in_word_:                                    ; 0xc342e LB 0x12
     5978dispi_get_bpp_:                              ; 0xc3445 LB 0x19
     5979    push bp                                   ; 55
     5980    mov bp, sp                                ; 89 e5
     5981    push dx                                   ; 52
     5982    mov ax, strict word 00003h                ; b8 03 00
     5983    mov dx, 001ceh                            ; ba ce 01
     5984    call 00570h                               ; e8 1e d1
     5985    mov dx, 001cfh                            ; ba cf 01
     5986    call 00577h                               ; e8 1f d1
     5987    lea sp, [bp-002h]                         ; 8d 66 fe
     5988    pop dx                                    ; 5a
     5989    pop bp                                    ; 5d
     5990    retn                                      ; c3
     5991dispi_set_virt_width_:                       ; 0xc345e LB 0x1f
     5992    push bp                                   ; 55
     5993    mov bp, sp                                ; 89 e5
     5994    push bx                                   ; 53
     5995    push dx                                   ; 52
     5996    mov bx, ax                                ; 89 c3
     5997    mov ax, strict word 00006h                ; b8 06 00
     5998    mov dx, 001ceh                            ; ba ce 01
     5999    call 00570h                               ; e8 02 d1
     6000    mov ax, bx                                ; 89 d8
     6001    mov dx, 001cfh                            ; ba cf 01
     6002    call 00570h                               ; e8 fa d0
     6003    lea sp, [bp-004h]                         ; 8d 66 fc
     6004    pop dx                                    ; 5a
     6005    pop bx                                    ; 5b
     6006    pop bp                                    ; 5d
     6007    retn                                      ; c3
     6008dispi_get_virt_width_:                       ; 0xc347d LB 0x19
     6009    push bp                                   ; 55
     6010    mov bp, sp                                ; 89 e5
     6011    push dx                                   ; 52
     6012    mov ax, strict word 00006h                ; b8 06 00
     6013    mov dx, 001ceh                            ; ba ce 01
     6014    call 00570h                               ; e8 e6 d0
     6015    mov dx, 001cfh                            ; ba cf 01
     6016    call 00577h                               ; e8 e7 d0
     6017    lea sp, [bp-002h]                         ; 8d 66 fe
     6018    pop dx                                    ; 5a
     6019    pop bp                                    ; 5d
     6020    retn                                      ; c3
     6021dispi_get_virt_height_:                      ; 0xc3496 LB 0x19
     6022    push bp                                   ; 55
     6023    mov bp, sp                                ; 89 e5
     6024    push dx                                   ; 52
     6025    mov ax, strict word 00007h                ; b8 07 00
     6026    mov dx, 001ceh                            ; ba ce 01
     6027    call 00570h                               ; e8 cd d0
     6028    mov dx, 001cfh                            ; ba cf 01
     6029    call 00577h                               ; e8 ce d0
     6030    lea sp, [bp-002h]                         ; 8d 66 fe
     6031    pop dx                                    ; 5a
     6032    pop bp                                    ; 5d
     6033    retn                                      ; c3
     6034in_word_:                                    ; 0xc34af LB 0x12
    60446035    push bp                                   ; 55
    60456036    mov bp, sp                                ; 89 e5
     
    60546045    pop bp                                    ; 5d
    60556046    retn                                      ; c3
    6056 in_byte_:                                    ; 0xc3440 LB 0x14
     6047in_byte_:                                    ; 0xc34c1 LB 0x14
    60576048    push bp                                   ; 55
    60586049    mov bp, sp                                ; 89 e5
     
    60696060    pop bp                                    ; 5d
    60706061    retn                                      ; c3
    6071 dispi_get_id_:                               ; 0xc3454 LB 0x14
     6062dispi_get_id_:                               ; 0xc34d5 LB 0x14
    60726063    push bp                                   ; 55
    60736064    mov bp, sp                                ; 89 e5
     
    60826073    pop bp                                    ; 5d
    60836074    retn                                      ; c3
    6084 dispi_set_id_:                               ; 0xc3468 LB 0x1a
     6075dispi_set_id_:                               ; 0xc34e9 LB 0x1a
    60856076    push bp                                   ; 55
    60866077    mov bp, sp                                ; 89 e5
     
    60996090    pop bp                                    ; 5d
    61006091    retn                                      ; c3
    6101 vbe_init_:                                   ; 0xc3482 LB 0x2c
     6092vbe_init_:                                   ; 0xc3503 LB 0x2c
    61026093    push bp                                   ; 55
    61036094    mov bp, sp                                ; 89 e5
     
    61056096    push dx                                   ; 52
    61066097    mov ax, 0b0c0h                            ; b8 c0 b0
    6107     call 03468h                               ; e8 db ff
    6108     call 03454h                               ; e8 c4 ff
     6098    call 034e9h                               ; e8 db ff
     6099    call 034d5h                               ; e8 c4 ff
    61096100    cmp ax, 0b0c0h                            ; 3d c0 b0
    6110     jne short 034a7h                          ; 75 12
     6101    jne short 03528h                          ; 75 12
    61116102    mov bx, strict word 00001h                ; bb 01 00
    61126103    mov dx, 000b9h                            ; ba b9 00
    61136104    mov ax, strict word 00040h                ; b8 40 00
    6114     call 02f4ch                               ; e8 ab fa
     6105    call 02f4ch                               ; e8 2a fa
    61156106    mov ax, 0b0c4h                            ; b8 c4 b0
    6116     call 03468h                               ; e8 c1 ff
     6107    call 034e9h                               ; e8 c1 ff
    61176108    lea sp, [bp-004h]                         ; 8d 66 fc
    61186109    pop dx                                    ; 5a
     
    61206111    pop bp                                    ; 5d
    61216112    retn                                      ; c3
    6122 mode_info_find_mode_:                        ; 0xc34ae LB 0x55
     6113mode_info_find_mode_:                        ; 0xc352f LB 0x55
    61236114    push bp                                   ; 55
    61246115    mov bp, sp                                ; 89 e5
     
    61316122    xor dx, dx                                ; 31 d2
    61326123    mov ax, 003b6h                            ; b8 b6 03
    6133     call 0342eh                               ; e8 6d ff
     6124    call 034afh                               ; e8 6d ff
    61346125    cmp ax, 077cch                            ; 3d cc 77
    6135     jne short 034f8h                          ; 75 32
     6126    jne short 03579h                          ; 75 32
    61366127    mov bx, strict word 00004h                ; bb 04 00
    61376128    mov dx, bx                                ; 89 da
    61386129    mov ax, 003b6h                            ; b8 b6 03
    6139     call 0342eh                               ; e8 5d ff
     6130    call 034afh                               ; e8 5d ff
    61406131    mov cx, ax                                ; 89 c1
    61416132    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6142     je short 034f8h                           ; 74 20
     6133    je short 03579h                           ; 74 20
    61436134    lea dx, [bx+002h]                         ; 8d 57 02
    61446135    mov ax, 003b6h                            ; b8 b6 03
    6145     call 0342eh                               ; e8 4d ff
     6136    call 034afh                               ; e8 4d ff
    61466137    lea dx, [bx+044h]                         ; 8d 57 44
    61476138    cmp cx, di                                ; 39 f9
    6148     jne short 034f4h                          ; 75 0c
     6139    jne short 03575h                          ; 75 0c
    61496140    test si, si                               ; 85 f6
    6150     jne short 034f0h                          ; 75 04
     6141    jne short 03571h                          ; 75 04
    61516142    mov ax, bx                                ; 89 d8
    6152     jmp short 034fah                          ; eb 0a
     6143    jmp short 0357bh                          ; eb 0a
    61536144    test AL, strict byte 080h                 ; a8 80
    6154     jne short 034ech                          ; 75 f8
     6145    jne short 0356dh                          ; 75 f8
    61556146    mov bx, dx                                ; 89 d3
    6156     jmp short 034cbh                          ; eb d3
     6147    jmp short 0354ch                          ; eb d3
    61576148    xor ax, ax                                ; 31 c0
    61586149    lea sp, [bp-008h]                         ; 8d 66 f8
     
    61636154    pop bp                                    ; 5d
    61646155    retn                                      ; c3
    6165 vbe_biosfn_return_controller_information_: ; 0xc3503 LB 0x129
     6156vbe_biosfn_return_controller_information_: ; 0xc3584 LB 0x129
    61666157    push bp                                   ; 55
    61676158    mov bp, sp                                ; 89 e5
     
    61746165    mov word [bp-00ah], bx                    ; 89 5e f6
    61756166    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6176     call 005b7h                               ; e8 9c d0
     6167    call 005b7h                               ; e8 1b d0
    61776168    mov word [bp-010h], ax                    ; 89 46 f0
    61786169    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    61806171    xor dx, dx                                ; 31 d2
    61816172    mov ax, 003b6h                            ; b8 b6 03
    6182     call 0342eh                               ; e8 02 ff
     6173    call 034afh                               ; e8 02 ff
    61836174    cmp ax, 077cch                            ; 3d cc 77
    6184     je short 0353bh                           ; 74 0a
     6175    je short 035bch                           ; 74 0a
    61856176    push SS                                   ; 16
    61866177    pop ES                                    ; 07
    61876178    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6188     jmp near 03624h                           ; e9 e9 00
     6179    jmp near 036a5h                           ; e9 e9 00
    61896180    mov cx, strict word 00004h                ; b9 04 00
    61906181    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    61916182    mov es, [bp-008h]                         ; 8e 46 f8
    61926183    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6193     jne short 03555h                          ; 75 07
     6184    jne short 035d6h                          ; 75 07
    61946185    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6195     je short 03564h                           ; 74 0f
     6186    je short 035e5h                           ; 74 0f
    61966187    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6197     jne short 03569h                          ; 75 0c
     6188    jne short 035eah                          ; 75 0c
    61986189    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6199     jne short 03569h                          ; 75 05
     6190    jne short 035eah                          ; 75 05
    62006191    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    62016192    mov es, [bp-008h]                         ; 8e 46 f8
     
    62136204    mov dx, strict word 0ffffh                ; ba ff ff
    62146205    mov ax, 003b6h                            ; b8 b6 03
    6215     call 0342eh                               ; e8 8a fe
     6206    call 034afh                               ; e8 8a fe
    62166207    mov es, [bp-008h]                         ; 8e 46 f8
    62176208    mov word [es:bx+012h], ax                 ; 26 89 47 12
    62186209    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6219     je short 035d5h                           ; 74 24
     6210    je short 03656h                           ; 74 24
    62206211    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    62216212    mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
     
    62286219    add dx, strict byte 0001bh                ; 83 c2 1b
    62296220    mov ax, 003b6h                            ; b8 b6 03
    6230     call 03440h                               ; e8 60 fe
     6221    call 034c1h                               ; e8 60 fe
    62316222    xor ah, ah                                ; 30 e4
    62326223    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6233     jnbe short 03600h                         ; 77 19
     6224    jnbe short 03681h                         ; 77 19
    62346225    mov dx, cx                                ; 89 ca
    62356226    mov ax, 003b6h                            ; b8 b6 03
    6236     call 0342eh                               ; e8 3f fe
     6227    call 034afh                               ; e8 3f fe
    62376228    mov bx, ax                                ; 89 c3
    62386229    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62396230    add dx, word [bp-00ch]                    ; 03 56 f4
    62406231    mov ax, di                                ; 89 f8
    6241     call 02f68h                               ; e8 6c f9
     6232    call 02f68h                               ; e8 eb f8
    62426233    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    62436234    add cx, strict byte 00044h                ; 83 c1 44
    62446235    mov dx, cx                                ; 89 ca
    62456236    mov ax, 003b6h                            ; b8 b6 03
    6246     call 0342eh                               ; e8 23 fe
     6237    call 034afh                               ; e8 23 fe
    62476238    mov bx, ax                                ; 89 c3
    62486239    cmp ax, strict word 0ffffh                ; 3d ff ff
    6249     jne short 035d5h                          ; 75 c3
     6240    jne short 03656h                          ; 75 c3
    62506241    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62516242    add dx, word [bp-00ch]                    ; 03 56 f4
    62526243    mov ax, di                                ; 89 f8
    6253     call 02f68h                               ; e8 4b f9
     6244    call 02f68h                               ; e8 ca f8
    62546245    push SS                                   ; 16
    62556246    pop ES                                    ; 07
     
    62616252    pop bp                                    ; 5d
    62626253    retn                                      ; c3
    6263 vbe_biosfn_return_mode_information_:         ; 0xc362c LB 0xb8
     6254vbe_biosfn_return_mode_information_:         ; 0xc36ad LB 0xb8
    62646255    push bp                                   ; 55
    62656256    mov bp, sp                                ; 89 e5
     
    62776268    xor dh, dh                                ; 30 f6
    62786269    and ah, 001h                              ; 80 e4 01
    6279     call 034aeh                               ; e8 65 fe
     6270    call 0352fh                               ; e8 65 fe
    62806271    mov word [bp-008h], ax                    ; 89 46 f8
    62816272    test ax, ax                               ; 85 c0
    6282     je near 036d2h                            ; 0f 84 80 00
     6273    je near 03753h                            ; 0f 84 80 00
    62836274    mov cx, 00100h                            ; b9 00 01
    62846275    xor ax, ax                                ; 31 c0
     
    62866277    mov es, bx                                ; 8e c3
    62876278    cld                                       ; fc
    6288     jcxz 03661h                               ; e3 02
     6279    jcxz 036e2h                               ; e3 02
    62896280    rep stosb                                 ; f3 aa
    62906281    xor cx, cx                                ; 31 c9
    6291     jmp short 0366ah                          ; eb 05
     6282    jmp short 036ebh                          ; eb 05
    62926283    cmp cx, strict byte 00042h                ; 83 f9 42
    6293     jnc short 03687h                          ; 73 1d
     6284    jnc short 03708h                          ; 73 1d
    62946285    mov dx, word [bp-008h]                    ; 8b 56 f8
    62956286    inc dx                                    ; 42
     
    62976288    add dx, cx                                ; 01 ca
    62986289    mov ax, 003b6h                            ; b8 b6 03
    6299     call 03440h                               ; e8 c9 fd
     6290    call 034c1h                               ; e8 c9 fd
    63006291    movzx bx, al                              ; 0f b6 d8
    63016292    mov dx, word [bp-006h]                    ; 8b 56 fa
    63026293    add dx, cx                                ; 01 ca
    63036294    mov ax, si                                ; 89 f0
    6304     call 02f4ch                               ; e8 c8 f8
    6305     inc cx                                    ; 41
    6306     jmp short 03665h                          ; eb de
     6295    call 02f4ch                               ; e8 47 f8
     6296    inc cx                                    ; 41
     6297    jmp short 036e6h                          ; eb de
    63076298    mov dx, word [bp-006h]                    ; 8b 56 fa
    63086299    inc dx                                    ; 42
    63096300    inc dx                                    ; 42
    63106301    mov ax, si                                ; 89 f0
    6311     call 02f3eh                               ; e8 ad f8
     6302    call 02f3eh                               ; e8 2c f8
    63126303    test AL, strict byte 001h                 ; a8 01
    6313     je short 036b1h                           ; 74 1c
     6304    je short 03732h                           ; 74 1c
    63146305    mov dx, word [bp-006h]                    ; 8b 56 fa
    63156306    add dx, strict byte 0000ch                ; 83 c2 0c
    63166307    mov bx, 00629h                            ; bb 29 06
    63176308    mov ax, si                                ; 89 f0
    6318     call 02f68h                               ; e8 c5 f8
     6309    call 02f68h                               ; e8 44 f8
    63196310    mov dx, word [bp-006h]                    ; 8b 56 fa
    63206311    add dx, strict byte 0000eh                ; 83 c2 0e
    63216312    mov bx, 0c000h                            ; bb 00 c0
    63226313    mov ax, si                                ; 89 f0
    6323     call 02f68h                               ; e8 b7 f8
     6314    call 02f68h                               ; e8 36 f8
    63246315    mov ax, strict word 0000bh                ; b8 0b 00
    63256316    mov dx, 001ceh                            ; ba ce 01
    6326     call 00570h                               ; e8 b6 ce
     6317    call 00570h                               ; e8 35 ce
    63276318    mov dx, 001cfh                            ; ba cf 01
    6328     call 00577h                               ; e8 b7 ce
     6319    call 00577h                               ; e8 36 ce
    63296320    mov dx, word [bp-006h]                    ; 8b 56 fa
    63306321    add dx, strict byte 0002ah                ; 83 c2 2a
    63316322    mov bx, ax                                ; 89 c3
    63326323    mov ax, si                                ; 89 f0
    6333     call 02f68h                               ; e8 9b f8
     6324    call 02f68h                               ; e8 1a f8
    63346325    mov ax, strict word 0004fh                ; b8 4f 00
    6335     jmp short 036d5h                          ; eb 03
     6326    jmp short 03756h                          ; eb 03
    63366327    mov ax, 00100h                            ; b8 00 01
    63376328    push SS                                   ; 16
     
    63446335    pop bp                                    ; 5d
    63456336    retn                                      ; c3
    6346 vbe_biosfn_set_mode_:                        ; 0xc36e4 LB 0xe9
     6337vbe_biosfn_set_mode_:                        ; 0xc3765 LB 0xe9
    63476338    push bp                                   ; 55
    63486339    mov bp, sp                                ; 89 e5
     
    63586349    mov ax, dx                                ; 89 d0
    63596350    test dx, dx                               ; 85 d2
    6360     je short 03704h                           ; 74 03
     6351    je short 03785h                           ; 74 03
    63616352    mov dx, strict word 00040h                ; ba 40 00
    63626353    mov byte [bp-006h], dl                    ; 88 56 fa
    63636354    test byte [bp-009h], 080h                 ; f6 46 f7 80
    6364     je short 03712h                           ; 74 05
     6355    je short 03793h                           ; 74 05
    63656356    mov dx, 00080h                            ; ba 80 00
    6366     jmp short 03714h                          ; eb 02
     6357    jmp short 03795h                          ; eb 02
    63676358    xor dx, dx                                ; 31 d2
    63686359    mov byte [bp-008h], dl                    ; 88 56 f8
    63696360    and byte [bp-009h], 001h                  ; 80 66 f7 01
    63706361    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    6371     jnc short 03734h                          ; 73 12
     6362    jnc short 037b5h                          ; 73 12
    63726363    xor ax, ax                                ; 31 c0
    6373     call 005ddh                               ; e8 b6 ce
     6364    call 005ddh                               ; e8 35 ce
    63746365    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6375     call 00fdch                               ; e8 ae d8
     6366    call 00fdch                               ; e8 2d d8
    63766367    mov ax, strict word 0004fh                ; b8 4f 00
    6377     jmp near 037c3h                           ; e9 8f 00
     6368    jmp near 03844h                           ; e9 8f 00
    63786369    mov dx, ax                                ; 89 c2
    63796370    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6380     call 034aeh                               ; e8 72 fd
     6371    call 0352fh                               ; e8 72 fd
    63816372    mov bx, ax                                ; 89 c3
    63826373    test ax, ax                               ; 85 c0
    6383     je near 037c0h                            ; 0f 84 7c 00
     6374    je near 03841h                            ; 0f 84 7c 00
    63846375    lea dx, [bx+014h]                         ; 8d 57 14
    63856376    mov ax, 003b6h                            ; b8 b6 03
    6386     call 0342eh                               ; e8 e1 fc
     6377    call 034afh                               ; e8 e1 fc
    63876378    mov cx, ax                                ; 89 c1
    63886379    lea dx, [bx+016h]                         ; 8d 57 16
    63896380    mov ax, 003b6h                            ; b8 b6 03
    6390     call 0342eh                               ; e8 d6 fc
     6381    call 034afh                               ; e8 d6 fc
    63916382    mov di, ax                                ; 89 c7
    63926383    lea dx, [bx+01bh]                         ; 8d 57 1b
    63936384    mov ax, 003b6h                            ; b8 b6 03
    6394     call 03440h                               ; e8 dd fc
     6385    call 034c1h                               ; e8 dd fc
    63956386    mov bl, al                                ; 88 c3
    63966387    mov dl, al                                ; 88 c2
    63976388    xor ax, ax                                ; 31 c0
    6398     call 005ddh                               ; e8 71 ce
     6389    call 005ddh                               ; e8 f0 cd
    63996390    cmp bl, 004h                              ; 80 fb 04
    6400     jne short 03777h                          ; 75 06
     6391    jne short 037f8h                          ; 75 06
    64016392    mov ax, strict word 0006ah                ; b8 6a 00
    6402     call 00fdch                               ; e8 65 d8
     6393    call 00fdch                               ; e8 e4 d7
    64036394    movzx ax, dl                              ; 0f b6 c2
    6404     call 0340fh                               ; e8 92 fc
     6395    call 03426h                               ; e8 28 fc
    64056396    mov ax, cx                                ; 89 c8
    6406     call 033d1h                               ; e8 4f fc
     6397    call 033e8h                               ; e8 e5 fb
    64076398    mov ax, di                                ; 89 f8
    6408     call 033f0h                               ; e8 69 fc
     6399    call 03407h                               ; e8 ff fb
    64096400    xor ax, ax                                ; 31 c0
    6410     call 00603h                               ; e8 77 ce
     6401    call 00603h                               ; e8 f6 cd
    64116402    mov al, byte [bp-008h]                    ; 8a 46 f8
    64126403    or AL, strict byte 001h                   ; 0c 01
     
    64146405    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    64156406    or ax, dx                                 ; 09 d0
    6416     call 005ddh                               ; e8 40 ce
    6417     call 0070dh                               ; e8 6d cf
     6407    call 005ddh                               ; e8 bf cd
     6408    call 006d2h                               ; e8 b1 ce
    64186409    mov bx, word [bp-00ah]                    ; 8b 5e f6
    64196410    mov dx, 000bah                            ; ba ba 00
    64206411    mov ax, strict word 00040h                ; b8 40 00
    6421     call 02f68h                               ; e8 bc f7
     6412    call 02f68h                               ; e8 3b f7
    64226413    mov al, byte [bp-008h]                    ; 8a 46 f8
    64236414    or AL, strict byte 060h                   ; 0c 60
     
    64256416    mov dx, 00087h                            ; ba 87 00
    64266417    mov ax, strict word 00040h                ; b8 40 00
    6427     call 02f4ch                               ; e8 8f f7
    6428     jmp near 0372eh                           ; e9 6e ff
     6418    call 02f4ch                               ; e8 0e f7
     6419    jmp near 037afh                           ; e9 6e ff
    64296420    mov ax, 00100h                            ; b8 00 01
    64306421    mov word [ss:si], ax                      ; 36 89 04
     
    64346425    pop bp                                    ; 5d
    64356426    retn                                      ; c3
    6436 vbe_biosfn_read_video_state_size_:           ; 0xc37cd LB 0x8
     6427vbe_biosfn_read_video_state_size_:           ; 0xc384e LB 0x8
    64376428    push bp                                   ; 55
    64386429    mov bp, sp                                ; 89 e5
     
    64406431    pop bp                                    ; 5d
    64416432    retn                                      ; c3
    6442 vbe_biosfn_save_video_state_:                ; 0xc37d5 LB 0x5b
     6433vbe_biosfn_save_video_state_:                ; 0xc3856 LB 0x5b
    64436434    push bp                                   ; 55
    64446435    mov bp, sp                                ; 89 e5
     
    64596450    mov dx, cx                                ; 89 ca
    64606451    mov ax, di                                ; 89 f8
    6461     call 02f68h                               ; e8 70 f7
     6452    call 02f68h                               ; e8 ef f6
    64626453    inc cx                                    ; 41
    64636454    inc cx                                    ; 41
    64646455    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    6465     je short 03827h                           ; 74 27
     6456    je short 038a8h                           ; 74 27
    64666457    mov si, strict word 00001h                ; be 01 00
    6467     jmp short 0380ah                          ; eb 05
     6458    jmp short 0388bh                          ; eb 05
    64686459    cmp si, strict byte 00009h                ; 83 fe 09
    6469     jnbe short 03827h                         ; 77 1d
     6460    jnbe short 038a8h                         ; 77 1d
    64706461    cmp si, strict byte 00004h                ; 83 fe 04
    6471     je short 03824h                           ; 74 15
     6462    je short 038a5h                           ; 74 15
    64726463    mov ax, si                                ; 89 f0
    64736464    mov dx, 001ceh                            ; ba ce 01
     
    64786469    mov dx, cx                                ; 89 ca
    64796470    mov ax, di                                ; 89 f8
    6480     call 02f68h                               ; e8 46 f7
     6471    call 02f68h                               ; e8 c5 f6
    64816472    inc cx                                    ; 41
    64826473    inc cx                                    ; 41
    64836474    inc si                                    ; 46
    6484     jmp short 03805h                          ; eb de
     6475    jmp short 03886h                          ; eb de
    64856476    lea sp, [bp-008h]                         ; 8d 66 f8
    64866477    pop di                                    ; 5f
     
    64906481    pop bp                                    ; 5d
    64916482    retn                                      ; c3
    6492 vbe_biosfn_restore_video_state_:             ; 0xc3830 LB 0x9b
     6483vbe_biosfn_restore_video_state_:             ; 0xc38b1 LB 0x9b
    64936484    push bp                                   ; 55
    64946485    mov bp, sp                                ; 89 e5
     
    64996490    mov cx, ax                                ; 89 c1
    65006491    mov bx, dx                                ; 89 d3
    6501     call 02f5ah                               ; e8 1c f7
     6492    call 02f5ah                               ; e8 9b f6
    65026493    mov word [bp-008h], ax                    ; 89 46 f8
    65036494    inc bx                                    ; 43
    65046495    inc bx                                    ; 43
    65056496    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6506     jne short 03859h                          ; 75 10
     6497    jne short 038dah                          ; 75 10
    65076498    mov ax, strict word 00004h                ; b8 04 00
    65086499    mov dx, 001ceh                            ; ba ce 01
     
    65116502    mov dx, 001cfh                            ; ba cf 01
    65126503    out DX, ax                                ; ef
    6513     jmp short 038c3h                          ; eb 6a
     6504    jmp short 03944h                          ; eb 6a
    65146505    mov ax, strict word 00001h                ; b8 01 00
    65156506    mov dx, 001ceh                            ; ba ce 01
     
    65176508    mov dx, bx                                ; 89 da
    65186509    mov ax, cx                                ; 89 c8
    6519     call 02f5ah                               ; e8 f3 f6
     6510    call 02f5ah                               ; e8 72 f6
    65206511    mov dx, 001cfh                            ; ba cf 01
    65216512    out DX, ax                                ; ef
     
    65276518    mov dx, bx                                ; 89 da
    65286519    mov ax, cx                                ; 89 c8
    6529     call 02f5ah                               ; e8 df f6
     6520    call 02f5ah                               ; e8 5e f6
    65306521    mov dx, 001cfh                            ; ba cf 01
    65316522    out DX, ax                                ; ef
     
    65376528    mov dx, bx                                ; 89 da
    65386529    mov ax, cx                                ; 89 c8
    6539     call 02f5ah                               ; e8 cb f6
     6530    call 02f5ah                               ; e8 4a f6
    65406531    mov dx, 001cfh                            ; ba cf 01
    65416532    out DX, ax                                ; ef
     
    65496540    out DX, ax                                ; ef
    65506541    mov si, strict word 00005h                ; be 05 00
    6551     jmp short 038adh                          ; eb 05
     6542    jmp short 0392eh                          ; eb 05
    65526543    cmp si, strict byte 00009h                ; 83 fe 09
    6553     jnbe short 038c3h                         ; 77 16
     6544    jnbe short 03944h                         ; 77 16
    65546545    mov ax, si                                ; 89 f0
    65556546    mov dx, 001ceh                            ; ba ce 01
     
    65576548    mov dx, bx                                ; 89 da
    65586549    mov ax, cx                                ; 89 c8
    6559     call 02f5ah                               ; e8 a0 f6
     6550    call 02f5ah                               ; e8 1f f6
    65606551    mov dx, 001cfh                            ; ba cf 01
    65616552    out DX, ax                                ; ef
     
    65636554    inc bx                                    ; 43
    65646555    inc si                                    ; 46
    6565     jmp short 038a8h                          ; eb e5
     6556    jmp short 03929h                          ; eb e5
    65666557    lea sp, [bp-006h]                         ; 8d 66 fa
    65676558    pop si                                    ; 5e
     
    65706561    pop bp                                    ; 5d
    65716562    retn                                      ; c3
    6572 vbe_biosfn_save_restore_state_:              ; 0xc38cb LB 0x8c
     6563vbe_biosfn_save_restore_state_:              ; 0xc394c LB 0x8c
    65736564    push bp                                   ; 55
    65746565    mov bp, sp                                ; 89 e5
     
    65836574    xor ah, ah                                ; 30 e4
    65846575    cmp ax, strict word 00002h                ; 3d 02 00
    6585     je short 0392ah                           ; 74 45
     6576    je short 039abh                           ; 74 45
    65866577    cmp ax, strict word 00001h                ; 3d 01 00
    6587     je short 0390eh                           ; 74 24
     6578    je short 0398fh                           ; 74 24
    65886579    test ax, ax                               ; 85 c0
    6589     jne short 03946h                          ; 75 58
     6580    jne short 039c7h                          ; 75 58
    65906581    mov ax, word [bp-006h]                    ; 8b 46 fa
    6591     call 02853h                               ; e8 5f ef
     6582    call 02853h                               ; e8 de ee
    65926583    mov cx, ax                                ; 89 c1
    65936584    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6594     je short 03901h                           ; 74 05
    6595     call 037cdh                               ; e8 ce fe
     6585    je short 03982h                           ; 74 05
     6586    call 0384eh                               ; e8 ce fe
    65966587    add ax, cx                                ; 01 c8
    65976588    add ax, strict word 0003fh                ; 05 3f 00
     
    66006591    pop ES                                    ; 07
    66016592    mov word [es:bx], ax                      ; 26 89 07
    6602     jmp short 03949h                          ; eb 3b
     6593    jmp short 039cah                          ; eb 3b
    66036594    push SS                                   ; 16
    66046595    pop ES                                    ; 07
     
    66066597    mov dx, cx                                ; 89 ca
    66076598    mov ax, word [bp-006h]                    ; 8b 46 fa
    6608     call 02888h                               ; e8 6d ef
     6599    call 02888h                               ; e8 ec ee
    66096600    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6610     je short 03949h                           ; 74 28
     6601    je short 039cah                           ; 74 28
    66116602    mov dx, ax                                ; 89 c2
    66126603    mov ax, cx                                ; 89 c8
    6613     call 037d5h                               ; e8 ad fe
    6614     jmp short 03949h                          ; eb 1f
     6604    call 03856h                               ; e8 ad fe
     6605    jmp short 039cah                          ; eb 1f
    66156606    push SS                                   ; 16
    66166607    pop ES                                    ; 07
     
    66186609    mov dx, cx                                ; 89 ca
    66196610    mov ax, word [bp-006h]                    ; 8b 46 fa
    6620     call 02bf1h                               ; e8 ba f2
     6611    call 02bf1h                               ; e8 39 f2
    66216612    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6622     je short 03949h                           ; 74 0c
     6613    je short 039cah                           ; 74 0c
    66236614    mov dx, ax                                ; 89 c2
    66246615    mov ax, cx                                ; 89 c8
    6625     call 03830h                               ; e8 ec fe
    6626     jmp short 03949h                          ; eb 03
     6616    call 038b1h                               ; e8 ec fe
     6617    jmp short 039cah                          ; eb 03
    66276618    mov di, 00100h                            ; bf 00 01
    66286619    push SS                                   ; 16
     
    66346625    pop bp                                    ; 5d
    66356626    retn 00002h                               ; c2 02 00
     6627vbe_biosfn_get_set_scanline_length_:         ; 0xc39d8 LB 0xa9
     6628    push bp                                   ; 55
     6629    mov bp, sp                                ; 89 e5
     6630    push si                                   ; 56
     6631    push di                                   ; 57
     6632    sub sp, strict byte 00006h                ; 83 ec 06
     6633    push ax                                   ; 50
     6634    mov si, dx                                ; 89 d6
     6635    mov di, bx                                ; 89 df
     6636    mov word [bp-008h], cx                    ; 89 4e f8
     6637    call 03445h                               ; e8 5a fa
     6638    mov cl, al                                ; 88 c1
     6639    mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
     6640    push SS                                   ; 16
     6641    pop ES                                    ; 07
     6642    mov bx, word [es:di]                      ; 26 8b 1d
     6643    mov al, byte [es:si]                      ; 26 8a 04
     6644    cmp AL, strict byte 002h                  ; 3c 02
     6645    je short 03a08h                           ; 74 0a
     6646    cmp AL, strict byte 001h                  ; 3c 01
     6647    je short 03a2fh                           ; 74 2d
     6648    test al, al                               ; 84 c0
     6649    je short 03a2ah                           ; 74 24
     6650    jmp short 03a6ah                          ; eb 62
     6651    cmp cl, 004h                              ; 80 f9 04
     6652    jne short 03a12h                          ; 75 05
     6653    sal bx, 003h                              ; c1 e3 03
     6654    jmp short 03a2ah                          ; eb 18
     6655    movzx ax, cl                              ; 0f b6 c1
     6656    cwd                                       ; 99
     6657    sal dx, 003h                              ; c1 e2 03
     6658    db  01bh, 0c2h
     6659    ; sbb ax, dx                                ; 1b c2
     6660    sar ax, 003h                              ; c1 f8 03
     6661    mov word [bp-00ah], ax                    ; 89 46 f6
     6662    mov ax, bx                                ; 89 d8
     6663    xor dx, dx                                ; 31 d2
     6664    div word [bp-00ah]                        ; f7 76 f6
     6665    mov bx, ax                                ; 89 c3
     6666    mov ax, bx                                ; 89 d8
     6667    call 0345eh                               ; e8 2f fa
     6668    call 0347dh                               ; e8 4b fa
     6669    mov bx, ax                                ; 89 c3
     6670    push SS                                   ; 16
     6671    pop ES                                    ; 07
     6672    mov word [es:di], ax                      ; 26 89 05
     6673    cmp cl, 004h                              ; 80 f9 04
     6674    jne short 03a43h                          ; 75 05
     6675    shr bx, 003h                              ; c1 eb 03
     6676    jmp short 03a52h                          ; eb 0f
     6677    movzx ax, cl                              ; 0f b6 c1
     6678    cwd                                       ; 99
     6679    sal dx, 003h                              ; c1 e2 03
     6680    db  01bh, 0c2h
     6681    ; sbb ax, dx                                ; 1b c2
     6682    sar ax, 003h                              ; c1 f8 03
     6683    imul bx, ax                               ; 0f af d8
     6684    add bx, strict byte 00003h                ; 83 c3 03
     6685    and bl, 0fch                              ; 80 e3 fc
     6686    push SS                                   ; 16
     6687    pop ES                                    ; 07
     6688    mov word [es:si], bx                      ; 26 89 1c
     6689    call 03496h                               ; e8 36 fa
     6690    push SS                                   ; 16
     6691    pop ES                                    ; 07
     6692    mov bx, word [bp-008h]                    ; 8b 5e f8
     6693    mov word [es:bx], ax                      ; 26 89 07
     6694    jmp short 03a6fh                          ; eb 05
     6695    mov word [bp-006h], 00100h                ; c7 46 fa 00 01
     6696    push SS                                   ; 16
     6697    pop ES                                    ; 07
     6698    mov ax, word [bp-006h]                    ; 8b 46 fa
     6699    mov bx, word [bp-00ch]                    ; 8b 5e f4
     6700    mov word [es:bx], ax                      ; 26 89 07
     6701    lea sp, [bp-004h]                         ; 8d 66 fc
     6702    pop di                                    ; 5f
     6703    pop si                                    ; 5e
     6704    pop bp                                    ; 5d
     6705    retn                                      ; c3
    66366706
    6637   ; Padding 0xaa9 bytes at 0xc3957
    6638   times 2729 db 0
     6707  ; Padding 0x97f bytes at 0xc3a81
     6708  times 2431 db 0
    66396709
    66406710section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
     
    77247794    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    77257795    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7726     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 074h
     7796    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum

    r63627 r67771  
    1 d85d3d2ccbf7d43eb62789921f0d3447 *VBoxVgaBios386.rom
     1899b6314ed620084b02c8bad14876d3b *VBoxVgaBios386.rom
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm

    r63627 r67771  
    165165
    166166
    167 section VGAROM progbits vstart=0x0 align=1 ; size=0x9e0 class=CODE group=AUTO
     167section VGAROM progbits vstart=0x0 align=1 ; size=0x942 class=CODE group=AUTO
    168168    db  055h, 0aah, 040h, 0e9h, 064h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    169169    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
    170170    db  04dh, 000h
    171 vgabios_int10_handler:                       ; 0xc0022 LB 0x57e
     171vgabios_int10_handler:                       ; 0xc0022 LB 0x56e
    172172    pushfw                                    ; 9c
    173173    cmp ah, 00fh                              ; 80 fc 0f
    174174    jne short 0002eh                          ; 75 06
    175     call 00193h                               ; e8 68 01
    176     jmp near 00103h                           ; e9 d5 00
     175    call 00189h                               ; e8 5e 01
     176    jmp near 000f9h                           ; e9 cb 00
    177177    cmp ah, 01ah                              ; 80 fc 1a
    178178    jne short 00039h                          ; 75 06
    179     call 00566h                               ; e8 30 05
    180     jmp near 00103h                           ; e9 ca 00
     179    call 0055ch                               ; e8 26 05
     180    jmp near 000f9h                           ; e9 c0 00
    181181    cmp ah, 00bh                              ; 80 fc 0b
    182182    jne short 00044h                          ; 75 06
    183     call 00105h                               ; e8 c4 00
    184     jmp near 00103h                           ; e9 bf 00
     183    call 000fbh                               ; e8 ba 00
     184    jmp near 000f9h                           ; e9 b5 00
    185185    cmp ax, 01103h                            ; 3d 03 11
    186186    jne short 0004fh                          ; 75 06
    187     call 0045ah                               ; e8 0e 04
    188     jmp near 00103h                           ; e9 b4 00
     187    call 00450h                               ; e8 04 04
     188    jmp near 000f9h                           ; e9 aa 00
    189189    cmp ah, 012h                              ; 80 fc 12
    190     jne short 00094h                          ; 75 40
     190    jne short 00093h                          ; 75 3f
    191191    cmp bl, 010h                              ; 80 fb 10
    192192    jne short 0005fh                          ; 75 06
    193     call 00467h                               ; e8 0b 04
    194     jmp near 00103h                           ; e9 a4 00
     193    call 0045dh                               ; e8 01 04
     194    jmp near 000f9h                           ; e9 9a 00
    195195    cmp bl, 030h                              ; 80 fb 30
    196196    jne short 0006ah                          ; 75 06
    197     call 0048ah                               ; e8 23 04
    198     jmp near 00103h                           ; e9 99 00
     197    call 00480h                               ; e8 19 04
     198    jmp near 000f9h                           ; e9 8f 00
    199199    cmp bl, 031h                              ; 80 fb 31
    200200    jne short 00075h                          ; 75 06
    201     call 004ddh                               ; e8 6b 04
    202     jmp near 00103h                           ; e9 8e 00
     201    call 004d3h                               ; e8 61 04
     202    jmp near 000f9h                           ; e9 84 00
    203203    cmp bl, 032h                              ; 80 fb 32
    204     jne short 00080h                          ; 75 06
    205     call 00502h                               ; e8 85 04
    206     jmp near 00103h                           ; e9 83 00
     204    jne short 0007fh                          ; 75 05
     205    call 004f8h                               ; e8 7b 04
     206    jmp short 000f9h                          ; eb 7a
    207207    cmp bl, 033h                              ; 80 fb 33
    208     jne short 0008ah                          ; 75 05
    209     call 00520h                               ; e8 98 04
    210     jmp short 00103h                          ; eb 79
     208    jne short 00089h                          ; 75 05
     209    call 00516h                               ; e8 8f 04
     210    jmp short 000f9h                          ; eb 70
    211211    cmp bl, 034h                              ; 80 fb 34
    212     jne short 000e7h                          ; 75 58
    213     call 00544h                               ; e8 b2 04
    214     jmp short 00103h                          ; eb 6f
     212    jne short 000ddh                          ; 75 4f
     213    call 0053ah                               ; e8 a9 04
     214    jmp short 000f9h                          ; eb 66
    215215    cmp ax, 0101bh                            ; 3d 1b 10
    216     je short 000e7h                           ; 74 4e
     216    je short 000ddh                           ; 74 45
    217217    cmp ah, 010h                              ; 80 fc 10
    218     jne short 000a3h                          ; 75 05
    219     call 001bah                               ; e8 19 01
    220     jmp short 00103h                          ; eb 60
     218    jne short 000a2h                          ; 75 05
     219    call 001b0h                               ; e8 10 01
     220    jmp short 000f9h                          ; eb 57
    221221    cmp ah, 04fh                              ; 80 fc 4f
    222     jne short 000e7h                          ; 75 3f
     222    jne short 000ddh                          ; 75 36
    223223    cmp AL, strict byte 003h                  ; 3c 03
    224     jne short 000b1h                          ; 75 05
    225     call 00846h                               ; e8 97 07
    226     jmp short 00103h                          ; eb 52
     224    jne short 000b0h                          ; 75 05
     225    call 007fbh                               ; e8 4d 07
     226    jmp short 000f9h                          ; eb 49
    227227    cmp AL, strict byte 005h                  ; 3c 05
    228     jne short 000bah                          ; 75 05
    229     call 0086bh                               ; e8 b3 07
    230     jmp short 00103h                          ; eb 49
    231     cmp AL, strict byte 006h                  ; 3c 06
    232     jne short 000c3h                          ; 75 05
    233     call 00898h                               ; e8 d7 07
    234     jmp short 00103h                          ; eb 40
     228    jne short 000b9h                          ; 75 05
     229    call 00820h                               ; e8 69 07
     230    jmp short 000f9h                          ; eb 40
    235231    cmp AL, strict byte 007h                  ; 3c 07
    236     jne short 000cch                          ; 75 05
    237     call 008ebh                               ; e8 21 08
    238     jmp short 00103h                          ; eb 37
     232    jne short 000c2h                          ; 75 05
     233    call 0084dh                               ; e8 8d 07
     234    jmp short 000f9h                          ; eb 37
    239235    cmp AL, strict byte 008h                  ; 3c 08
    240     jne short 000d5h                          ; 75 05
    241     call 0091fh                               ; e8 4c 08
    242     jmp short 00103h                          ; eb 2e
     236    jne short 000cbh                          ; 75 05
     237    call 00881h                               ; e8 b8 07
     238    jmp short 000f9h                          ; eb 2e
    243239    cmp AL, strict byte 009h                  ; 3c 09
    244     jne short 000deh                          ; 75 05
    245     call 00956h                               ; e8 7a 08
    246     jmp short 00103h                          ; eb 25
     240    jne short 000d4h                          ; 75 05
     241    call 008b8h                               ; e8 e6 07
     242    jmp short 000f9h                          ; eb 25
    247243    cmp AL, strict byte 00ah                  ; 3c 0a
    248     jne short 000e7h                          ; 75 05
    249     call 009c9h                               ; e8 e4 08
    250     jmp short 00103h                          ; eb 1c
     244    jne short 000ddh                          ; 75 05
     245    call 0092bh                               ; e8 50 08
     246    jmp short 000f9h                          ; eb 1c
    251247    push ES                                   ; 06
    252248    push DS                                   ; 1e
     
    261257    mov bx, 0c000h                            ; bb 00 c0
    262258    mov ds, bx                                ; 8e db
    263     call 03264h                               ; e8 6b 31
     259    call 0327bh                               ; e8 8c 31
    264260    pop di                                    ; 5f
    265261    pop si                                    ; 5e
     
    275271    iret                                      ; cf
    276272    cmp bh, 000h                              ; 80 ff 00
    277     je short 00110h                           ; 74 06
     273    je short 00106h                           ; 74 06
    278274    cmp bh, 001h                              ; 80 ff 01
    279     je short 00161h                           ; 74 52
     275    je short 00157h                           ; 74 52
    280276    retn                                      ; c3
    281277    push ax                                   ; 50
     
    289285    in AL, DX                                 ; ec
    290286    cmp byte [word 00049h], 003h              ; 80 3e 49 00 03
    291     jbe short 00154h                          ; 76 2f
     287    jbe short 0014ah                          ; 76 2f
    292288    mov dx, 003c0h                            ; ba c0 03
    293289    mov AL, strict byte 000h                  ; b0 00
     
    297293    and AL, strict byte 00fh                  ; 24 0f
    298294    test AL, strict byte 008h                 ; a8 08
    299     je short 00135h                           ; 74 02
     295    je short 0012bh                           ; 74 02
    300296    add AL, strict byte 008h                  ; 04 08
    301297    out DX, AL                                ; ee
     
    316312    ; inc cl                                    ; fe c1
    317313    cmp cl, 004h                              ; 80 f9 04
    318     jne short 0013bh                          ; 75 e7
     314    jne short 00131h                          ; 75 e7
    319315    mov AL, strict byte 020h                  ; b0 20
    320316    out DX, AL                                ; ee
     
    349345    ; inc cl                                    ; fe c1
    350346    cmp cl, 004h                              ; 80 f9 04
    351     jne short 0016eh                          ; 75 e7
     347    jne short 00164h                          ; 75 e7
    352348    mov AL, strict byte 020h                  ; b0 20
    353349    out DX, AL                                ; ee
     
    382378    retn                                      ; c3
    383379    cmp AL, strict byte 000h                  ; 3c 00
    384     jne short 001c0h                          ; 75 02
    385     jmp short 00221h                          ; eb 61
     380    jne short 001b6h                          ; 75 02
     381    jmp short 00217h                          ; eb 61
    386382    cmp AL, strict byte 001h                  ; 3c 01
    387     jne short 001c6h                          ; 75 02
    388     jmp short 0023fh                          ; eb 79
     383    jne short 001bch                          ; 75 02
     384    jmp short 00235h                          ; eb 79
    389385    cmp AL, strict byte 002h                  ; 3c 02
    390     jne short 001cch                          ; 75 02
    391     jmp short 00247h                          ; eb 7b
     386    jne short 001c2h                          ; 75 02
     387    jmp short 0023dh                          ; eb 7b
    392388    cmp AL, strict byte 003h                  ; 3c 03
    393     jne short 001d3h                          ; 75 03
    394     jmp near 00278h                           ; e9 a5 00
     389    jne short 001c9h                          ; 75 03
     390    jmp near 0026eh                           ; e9 a5 00
    395391    cmp AL, strict byte 007h                  ; 3c 07
    396     jne short 001dah                          ; 75 03
    397     jmp near 002a5h                           ; e9 cb 00
     392    jne short 001d0h                          ; 75 03
     393    jmp near 0029bh                           ; e9 cb 00
    398394    cmp AL, strict byte 008h                  ; 3c 08
    399     jne short 001e1h                          ; 75 03
    400     jmp near 002cdh                           ; e9 ec 00
     395    jne short 001d7h                          ; 75 03
     396    jmp near 002c3h                           ; e9 ec 00
    401397    cmp AL, strict byte 009h                  ; 3c 09
    402     jne short 001e8h                          ; 75 03
    403     jmp near 002dbh                           ; e9 f3 00
     398    jne short 001deh                          ; 75 03
     399    jmp near 002d1h                           ; e9 f3 00
    404400    cmp AL, strict byte 010h                  ; 3c 10
    405     jne short 001efh                          ; 75 03
    406     jmp near 00320h                           ; e9 31 01
     401    jne short 001e5h                          ; 75 03
     402    jmp near 00316h                           ; e9 31 01
    407403    cmp AL, strict byte 012h                  ; 3c 12
    408     jne short 001f6h                          ; 75 03
    409     jmp near 00339h                           ; e9 43 01
     404    jne short 001ech                          ; 75 03
     405    jmp near 0032fh                           ; e9 43 01
    410406    cmp AL, strict byte 013h                  ; 3c 13
    411     jne short 001fdh                          ; 75 03
    412     jmp near 00361h                           ; e9 64 01
     407    jne short 001f3h                          ; 75 03
     408    jmp near 00357h                           ; e9 64 01
    413409    cmp AL, strict byte 015h                  ; 3c 15
    414     jne short 00204h                          ; 75 03
    415     jmp near 003b4h                           ; e9 b0 01
     410    jne short 001fah                          ; 75 03
     411    jmp near 003aah                           ; e9 b0 01
    416412    cmp AL, strict byte 017h                  ; 3c 17
    417     jne short 0020bh                          ; 75 03
    418     jmp near 003cfh                           ; e9 c4 01
     413    jne short 00201h                          ; 75 03
     414    jmp near 003c5h                           ; e9 c4 01
    419415    cmp AL, strict byte 018h                  ; 3c 18
    420     jne short 00212h                          ; 75 03
    421     jmp near 003f7h                           ; e9 e5 01
     416    jne short 00208h                          ; 75 03
     417    jmp near 003edh                           ; e9 e5 01
    422418    cmp AL, strict byte 019h                  ; 3c 19
    423     jne short 00219h                          ; 75 03
    424     jmp near 00402h                           ; e9 e9 01
     419    jne short 0020fh                          ; 75 03
     420    jmp near 003f8h                           ; e9 e9 01
    425421    cmp AL, strict byte 01ah                  ; 3c 1a
    426     jne short 00220h                          ; 75 03
    427     jmp near 0040dh                           ; e9 ed 01
     422    jne short 00216h                          ; 75 03
     423    jmp near 00403h                           ; e9 ed 01
    428424    retn                                      ; c3
    429425    cmp bl, 014h                              ; 80 fb 14
    430     jnbe short 0023eh                         ; 77 18
     426    jnbe short 00234h                         ; 77 18
    431427    push ax                                   ; 50
    432428    push dx                                   ; 52
     
    449445    push bx                                   ; 53
    450446    mov BL, strict byte 011h                  ; b3 11
    451     call 00221h                               ; e8 dc ff
     447    call 00217h                               ; e8 dc ff
    452448    pop bx                                    ; 5b
    453449    retn                                      ; c3
     
    471467    ; inc cl                                    ; fe c1
    472468    cmp cl, 010h                              ; 80 f9 10
    473     jne short 00256h                          ; 75 f1
     469    jne short 0024ch                          ; 75 f1
    474470    mov AL, strict byte 011h                  ; b0 11
    475471    out DX, AL                                ; ee
     
    513509    retn                                      ; c3
    514510    cmp bl, 014h                              ; 80 fb 14
    515     jnbe short 002cch                         ; 77 22
     511    jnbe short 002c2h                         ; 77 22
    516512    push ax                                   ; 50
    517513    push dx                                   ; 52
     
    539535    push bx                                   ; 53
    540536    mov BL, strict byte 011h                  ; b3 11
    541     call 002a5h                               ; e8 d1 ff
     537    call 0029bh                               ; e8 d1 ff
    542538    db  08ah, 0c7h
    543539    ; mov al, bh                                ; 8a c7
     
    567563    ; inc cl                                    ; fe c1
    568564    cmp cl, 010h                              ; 80 f9 10
    569     jne short 002e3h                          ; 75 e7
     565    jne short 002d9h                          ; 75 e7
    570566    mov dx, 003dah                            ; ba da 03
    571567    in AL, DX                                 ; ec
     
    632628    inc bx                                    ; 43
    633629    dec cx                                    ; 49
    634     jne short 0034ah                          ; 75 ee
     630    jne short 00340h                          ; 75 ee
    635631    pop dx                                    ; 5a
    636632    pop cx                                    ; 59
     
    649645    in AL, DX                                 ; ec
    650646    and bl, 001h                              ; 80 e3 01
    651     jne short 0038fh                          ; 75 18
     647    jne short 00385h                          ; 75 18
    652648    and AL, strict byte 07fh                  ; 24 7f
    653649    sal bh, 1                                 ; d0 e7
     
    662658    mov dx, 003c0h                            ; ba c0 03
    663659    out DX, AL                                ; ee
    664     jmp short 003a9h                          ; eb 1a
     660    jmp short 0039fh                          ; eb 1a
    665661    push ax                                   ; 50
    666662    mov dx, 003dah                            ; ba da 03
     
    671667    pop ax                                    ; 58
    672668    and AL, strict byte 080h                  ; 24 80
    673     jne short 003a3h                          ; 75 04
     669    jne short 00399h                          ; 75 04
    674670    sal bh, 1                                 ; d0 e7
    675671    sal bh, 1                                 ; d0 e7
     
    731727    inc bx                                    ; 43
    732728    dec cx                                    ; 49
    733     jne short 003e0h                          ; 75 ee
     729    jne short 003d6h                          ; 75 ee
    734730    pop dx                                    ; 5a
    735731    pop cx                                    ; 59
     
    784780    and bh, 00fh                              ; 80 e7 0f
    785781    test bl, 001h                             ; f6 c3 01
    786     jne short 00449h                          ; 75 04
     782    jne short 0043fh                          ; 75 04
    787783    shr bh, 1                                 ; d0 ef
    788784    shr bh, 1                                 ; d0 ef
     
    820816    mov bx, strict word 00003h                ; bb 03 00
    821817    cmp ax, 003b4h                            ; 3d b4 03
    822     jne short 00487h                          ; 75 02
     818    jne short 0047dh                          ; 75 02
    823819    mov BH, strict byte 001h                  ; b7 01
    824820    pop ax                                    ; 58
     
    837833    mov ah, byte [bx]                         ; 8a 27
    838834    cmp dl, 001h                              ; 80 fa 01
    839     je short 004b8h                           ; 74 15
    840     jc short 004c2h                           ; 72 1d
     835    je short 004aeh                           ; 74 15
     836    jc short 004b8h                           ; 72 1d
    841837    cmp dl, 002h                              ; 80 fa 02
    842     je short 004ach                           ; 74 02
    843     jmp short 004d6h                          ; eb 2a
     838    je short 004a2h                           ; 74 02
     839    jmp short 004cch                          ; eb 2a
    844840    and AL, strict byte 07fh                  ; 24 7f
    845841    or AL, strict byte 010h                   ; 0c 10
    846842    and ah, 0f0h                              ; 80 e4 f0
    847843    or ah, 009h                               ; 80 cc 09
    848     jne short 004cch                          ; 75 14
     844    jne short 004c2h                          ; 75 14
    849845    and AL, strict byte 06fh                  ; 24 6f
    850846    and ah, 0f0h                              ; 80 e4 f0
    851847    or ah, 009h                               ; 80 cc 09
    852     jne short 004cch                          ; 75 0a
     848    jne short 004c2h                          ; 75 0a
    853849    and AL, strict byte 0efh                  ; 24 ef
    854850    or AL, strict byte 080h                   ; 0c 80
     
    946942    retn                                      ; c3
    947943    cmp AL, strict byte 000h                  ; 3c 00
    948     je short 0056fh                           ; 74 05
     944    je short 00565h                           ; 74 05
    949945    cmp AL, strict byte 001h                  ; 3c 01
    950     je short 00584h                           ; 74 16
     946    je short 0057ah                           ; 74 16
    951947    retn                                      ; c3
    952948    push DS                                   ; 1e
     
    980976    pop DS                                    ; 1f
    981977    retn                                      ; c3
    982     times 0x7 db 0
    983 do_out_dx_ax:                                ; 0xc05a0 LB 0x7
     978    times 0x1 db 0
     979do_out_dx_ax:                                ; 0xc0590 LB 0x7
    984980    xchg ah, al                               ; 86 c4
    985981    out DX, AL                                ; ee
     
    987983    out DX, AL                                ; ee
    988984    retn                                      ; c3
    989 do_in_ax_dx:                                 ; 0xc05a7 LB 0x43
     985do_in_ax_dx:                                 ; 0xc0597 LB 0x43
    990986    in AL, DX                                 ; ec
    991987    xchg ah, al                               ; 86 c4
     
    997993    in AL, DX                                 ; ec
    998994    test AL, strict byte 008h                 ; a8 08
    999     je short 005b1h                           ; 74 fb
     995    je short 005a1h                           ; 74 fb
    1000996    pop dx                                    ; 5a
    1001997    pop ax                                    ; 58
     
    10061002    in AL, DX                                 ; ec
    10071003    test AL, strict byte 008h                 ; a8 08
    1008     jne short 005beh                          ; 75 fb
     1004    jne short 005aeh                          ; 75 fb
    10091005    pop dx                                    ; 5a
    10101006    pop ax                                    ; 58
     
    10131009    mov dx, 001ceh                            ; ba ce 01
    10141010    mov ax, strict word 00003h                ; b8 03 00
    1015     call 005a0h                               ; e8 d0 ff
     1011    call 00590h                               ; e8 d0 ff
    10161012    mov dx, 001cfh                            ; ba cf 01
    1017     call 005a7h                               ; e8 d1 ff
     1013    call 00597h                               ; e8 d1 ff
    10181014    cmp AL, strict byte 004h                  ; 3c 04
    1019     jbe short 005e8h                          ; 76 0e
     1015    jbe short 005d8h                          ; 76 0e
    10201016    db  08ah, 0e0h
    10211017    ; mov ah, al                                ; 8a e0
     
    10241020    shr ah, 1                                 ; d0 ec
    10251021    test AL, strict byte 007h                 ; a8 07
    1026     je short 005e8h                           ; 74 02
     1022    je short 005d8h                           ; 74 02
    10271023    db  0feh, 0c4h
    10281024    ; inc ah                                    ; fe c4
    10291025    pop dx                                    ; 5a
    10301026    retn                                      ; c3
    1031 _dispi_get_max_bpp:                          ; 0xc05ea LB 0x26
     1027_dispi_get_max_bpp:                          ; 0xc05da LB 0x26
    10321028    push dx                                   ; 52
    10331029    push bx                                   ; 53
    1034     call 00624h                               ; e8 35 00
     1030    call 00614h                               ; e8 35 00
    10351031    db  08bh, 0d8h
    10361032    ; mov bx, ax                                ; 8b d8
    10371033    or ax, strict byte 00002h                 ; 83 c8 02
    1038     call 00610h                               ; e8 19 00
     1034    call 00600h                               ; e8 19 00
    10391035    mov dx, 001ceh                            ; ba ce 01
    10401036    mov ax, strict word 00003h                ; b8 03 00
    1041     call 005a0h                               ; e8 a0 ff
     1037    call 00590h                               ; e8 a0 ff
    10421038    mov dx, 001cfh                            ; ba cf 01
    1043     call 005a7h                               ; e8 a1 ff
     1039    call 00597h                               ; e8 a1 ff
    10441040    push ax                                   ; 50
    10451041    db  08bh, 0c3h
    10461042    ; mov ax, bx                                ; 8b c3
    1047     call 00610h                               ; e8 04 00
     1043    call 00600h                               ; e8 04 00
    10481044    pop ax                                    ; 58
    10491045    pop bx                                    ; 5b
    10501046    pop dx                                    ; 5a
    10511047    retn                                      ; c3
    1052 dispi_set_enable_:                           ; 0xc0610 LB 0x26
     1048dispi_set_enable_:                           ; 0xc0600 LB 0x26
    10531049    push dx                                   ; 52
    10541050    push ax                                   ; 50
    10551051    mov dx, 001ceh                            ; ba ce 01
    10561052    mov ax, strict word 00004h                ; b8 04 00
    1057     call 005a0h                               ; e8 85 ff
     1053    call 00590h                               ; e8 85 ff
    10581054    pop ax                                    ; 58
    10591055    mov dx, 001cfh                            ; ba cf 01
    1060     call 005a0h                               ; e8 7e ff
     1056    call 00590h                               ; e8 7e ff
    10611057    pop dx                                    ; 5a
    10621058    retn                                      ; c3
     
    10641060    mov dx, 001ceh                            ; ba ce 01
    10651061    mov ax, strict word 00004h                ; b8 04 00
    1066     call 005a0h                               ; e8 72 ff
     1062    call 00590h                               ; e8 72 ff
    10671063    mov dx, 001cfh                            ; ba cf 01
    1068     call 005a7h                               ; e8 73 ff
     1064    call 00597h                               ; e8 73 ff
    10691065    pop dx                                    ; 5a
    10701066    retn                                      ; c3
    1071 dispi_set_bank_:                             ; 0xc0636 LB 0x26
     1067dispi_set_bank_:                             ; 0xc0626 LB 0x26
    10721068    push dx                                   ; 52
    10731069    push ax                                   ; 50
    10741070    mov dx, 001ceh                            ; ba ce 01
    10751071    mov ax, strict word 00005h                ; b8 05 00
    1076     call 005a0h                               ; e8 5f ff
     1072    call 00590h                               ; e8 5f ff
    10771073    pop ax                                    ; 58
    10781074    mov dx, 001cfh                            ; ba cf 01
    1079     call 005a0h                               ; e8 58 ff
     1075    call 00590h                               ; e8 58 ff
    10801076    pop dx                                    ; 5a
    10811077    retn                                      ; c3
     
    10831079    mov dx, 001ceh                            ; ba ce 01
    10841080    mov ax, strict word 00005h                ; b8 05 00
    1085     call 005a0h                               ; e8 4c ff
     1081    call 00590h                               ; e8 4c ff
    10861082    mov dx, 001cfh                            ; ba cf 01
    1087     call 005a7h                               ; e8 4d ff
     1083    call 00597h                               ; e8 4d ff
    10881084    pop dx                                    ; 5a
    10891085    retn                                      ; c3
    1090 _dispi_set_bank_farcall:                     ; 0xc065c LB 0xe7
     1086_dispi_set_bank_farcall:                     ; 0xc064c LB 0xac
    10911087    cmp bx, 00100h                            ; 81 fb 00 01
    1092     je short 00686h                           ; 74 24
     1088    je short 00676h                           ; 74 24
    10931089    db  00bh, 0dbh
    10941090    ; or bx, bx                                 ; 0b db
    1095     jne short 00698h                          ; 75 32
     1091    jne short 00688h                          ; 75 32
    10961092    db  08bh, 0c2h
    10971093    ; mov ax, dx                                ; 8b c2
     
    11001096    mov ax, strict word 00005h                ; b8 05 00
    11011097    mov dx, 001ceh                            ; ba ce 01
    1102     call 005a0h                               ; e8 2d ff
     1098    call 00590h                               ; e8 2d ff
    11031099    pop ax                                    ; 58
    11041100    mov dx, 001cfh                            ; ba cf 01
    1105     call 005a0h                               ; e8 26 ff
    1106     call 005a7h                               ; e8 2a ff
     1101    call 00590h                               ; e8 26 ff
     1102    call 00597h                               ; e8 2a ff
    11071103    pop dx                                    ; 5a
    11081104    db  03bh, 0d0h
    11091105    ; cmp dx, ax                                ; 3b d0
    1110     jne short 00698h                          ; 75 16
     1106    jne short 00688h                          ; 75 16
    11111107    mov ax, strict word 0004fh                ; b8 4f 00
    11121108    retf                                      ; cb
    11131109    mov ax, strict word 00005h                ; b8 05 00
    11141110    mov dx, 001ceh                            ; ba ce 01
    1115     call 005a0h                               ; e8 11 ff
     1111    call 00590h                               ; e8 11 ff
    11161112    mov dx, 001cfh                            ; ba cf 01
    1117     call 005a7h                               ; e8 12 ff
     1113    call 00597h                               ; e8 12 ff
    11181114    db  08bh, 0d0h
    11191115    ; mov dx, ax                                ; 8b d0
     
    11251121    mov dx, 001ceh                            ; ba ce 01
    11261122    mov ax, strict word 00008h                ; b8 08 00
    1127     call 005a0h                               ; e8 f9 fe
     1123    call 00590h                               ; e8 f9 fe
    11281124    pop ax                                    ; 58
    11291125    mov dx, 001cfh                            ; ba cf 01
    1130     call 005a0h                               ; e8 f2 fe
     1126    call 00590h                               ; e8 f2 fe
    11311127    pop dx                                    ; 5a
    11321128    retn                                      ; c3
     
    11341130    mov dx, 001ceh                            ; ba ce 01
    11351131    mov ax, strict word 00008h                ; b8 08 00
    1136     call 005a0h                               ; e8 e6 fe
     1132    call 00590h                               ; e8 e6 fe
    11371133    mov dx, 001cfh                            ; ba cf 01
    1138     call 005a7h                               ; e8 e7 fe
     1134    call 00597h                               ; e8 e7 fe
    11391135    pop dx                                    ; 5a
    11401136    retn                                      ; c3
     
    11431139    mov dx, 001ceh                            ; ba ce 01
    11441140    mov ax, strict word 00009h                ; b8 09 00
    1145     call 005a0h                               ; e8 d3 fe
     1141    call 00590h                               ; e8 d3 fe
    11461142    pop ax                                    ; 58
    11471143    mov dx, 001cfh                            ; ba cf 01
    1148     call 005a0h                               ; e8 cc fe
     1144    call 00590h                               ; e8 cc fe
    11491145    pop dx                                    ; 5a
    11501146    retn                                      ; c3
     
    11521148    mov dx, 001ceh                            ; ba ce 01
    11531149    mov ax, strict word 00009h                ; b8 09 00
    1154     call 005a0h                               ; e8 c0 fe
     1150    call 00590h                               ; e8 c0 fe
    11551151    mov dx, 001cfh                            ; ba cf 01
    1156     call 005a7h                               ; e8 c1 fe
     1152    call 00597h                               ; e8 c1 fe
    11571153    pop dx                                    ; 5a
    11581154    retn                                      ; c3
     
    11621158    db  08bh, 0d8h
    11631159    ; mov bx, ax                                ; 8b d8
    1164     call 005c6h                               ; e8 d6 fe
     1160    call 005b6h                               ; e8 d6 fe
    11651161    cmp AL, strict byte 004h                  ; 3c 04
    1166     jnbe short 006f6h                         ; 77 02
     1162    jnbe short 006e6h                         ; 77 02
    11671163    shr bx, 1                                 ; d1 eb
    11681164    shr bx, 1                                 ; d1 eb
     
    11781174    pop ax                                    ; 58
    11791175    retn                                      ; c3
    1180     call 006e8h                               ; e8 dd ff
    1181     push dx                                   ; 52
    1182     push ax                                   ; 50
    1183     mov dx, 001ceh                            ; ba ce 01
    1184     mov ax, strict word 00006h                ; b8 06 00
    1185     call 005a0h                               ; e8 8a fe
    1186     pop ax                                    ; 58
    1187     mov dx, 001cfh                            ; ba cf 01
    1188     call 005a0h                               ; e8 83 fe
    1189     pop dx                                    ; 5a
    1190     retn                                      ; c3
    1191     push dx                                   ; 52
    1192     mov dx, 001ceh                            ; ba ce 01
    1193     mov ax, strict word 00006h                ; b8 06 00
    1194     call 005a0h                               ; e8 77 fe
    1195     mov dx, 001cfh                            ; ba cf 01
    1196     call 005a7h                               ; e8 78 fe
    1197     pop dx                                    ; 5a
    1198     retn                                      ; c3
    1199     push dx                                   ; 52
    1200     mov dx, 001ceh                            ; ba ce 01
    1201     mov ax, strict word 00007h                ; b8 07 00
    1202     call 005a0h                               ; e8 65 fe
    1203     mov dx, 001cfh                            ; ba cf 01
    1204     call 005a7h                               ; e8 66 fe
    1205     pop dx                                    ; 5a
    1206     retn                                      ; c3
    1207 _vga_compat_setup:                           ; 0xc0743 LB 0xf0
     1176_vga_compat_setup:                           ; 0xc06f8 LB 0xf0
    12081177    push ax                                   ; 50
    12091178    push dx                                   ; 52
    12101179    mov dx, 001ceh                            ; ba ce 01
    12111180    mov ax, strict word 00001h                ; b8 01 00
    1212     call 005a0h                               ; e8 52 fe
     1181    call 00590h                               ; e8 8d fe
    12131182    mov dx, 001cfh                            ; ba cf 01
    1214     call 005a7h                               ; e8 53 fe
     1183    call 00597h                               ; e8 8e fe
    12151184    push ax                                   ; 50
    12161185    mov dx, 003d4h                            ; ba d4 03
     
    12281197    out DX, ax                                ; ef
    12291198    pop ax                                    ; 58
    1230     call 006e8h                               ; e8 7a ff
     1199    call 006d8h                               ; e8 b5 ff
    12311200    mov dx, 001ceh                            ; ba ce 01
    12321201    mov ax, strict word 00002h                ; b8 02 00
    1233     call 005a0h                               ; e8 29 fe
     1202    call 00590h                               ; e8 64 fe
    12341203    mov dx, 001cfh                            ; ba cf 01
    1235     call 005a7h                               ; e8 2a fe
     1204    call 00597h                               ; e8 65 fe
    12361205    dec ax                                    ; 48
    12371206    push ax                                   ; 50
     
    12481217    and AL, strict byte 0bdh                  ; 24 bd
    12491218    test ah, 001h                             ; f6 c4 01
    1250     je short 00796h                           ; 74 02
     1219    je short 0074bh                           ; 74 02
    12511220    or AL, strict byte 002h                   ; 0c 02
    12521221    test ah, 002h                             ; f6 c4 02
    1253     je short 0079dh                           ; 74 02
     1222    je short 00752h                           ; 74 02
    12541223    or AL, strict byte 040h                   ; 0c 40
    12551224    out DX, AL                                ; ee
     
    12881257    mov dx, 001ceh                            ; ba ce 01
    12891258    mov ax, strict word 00003h                ; b8 03 00
    1290     call 005a0h                               ; e8 b9 fd
     1259    call 00590h                               ; e8 f4 fd
    12911260    mov dx, 001cfh                            ; ba cf 01
    1292     call 005a7h                               ; e8 ba fd
     1261    call 00597h                               ; e8 f5 fd
    12931262    cmp AL, strict byte 008h                  ; 3c 08
    1294     jc short 00831h                           ; 72 40
     1263    jc short 007e6h                           ; 72 40
    12951264    mov dx, 003d4h                            ; ba d4 03
    12961265    mov AL, strict byte 014h                  ; b0 14
     
    13291298    pop dx                                    ; 5a
    13301299    pop ax                                    ; 58
    1331 _vbe_has_vbe_display:                        ; 0xc0833 LB 0x13
     1300_vbe_has_vbe_display:                        ; 0xc07e8 LB 0x13
    13321301    push DS                                   ; 1e
    13331302    push bx                                   ; 53
     
    13421311    pop DS                                    ; 1f
    13431312    retn                                      ; c3
    1344 vbe_biosfn_return_current_mode:              ; 0xc0846 LB 0x25
     1313vbe_biosfn_return_current_mode:              ; 0xc07fb LB 0x25
    13451314    push DS                                   ; 1e
    13461315    mov ax, strict word 00040h                ; b8 40 00
    13471316    mov ds, ax                                ; 8e d8
    1348     call 00624h                               ; e8 d5 fd
     1317    call 00614h                               ; e8 10 fe
    13491318    and ax, strict byte 00001h                ; 83 e0 01
    1350     je short 0085dh                           ; 74 09
     1319    je short 00812h                           ; 74 09
    13511320    mov bx, 000bah                            ; bb ba 00
    13521321    mov ax, word [bx]                         ; 8b 07
    13531322    db  08bh, 0d8h
    13541323    ; mov bx, ax                                ; 8b d8
    1355     jne short 00866h                          ; 75 09
     1324    jne short 0081bh                          ; 75 09
    13561325    mov bx, strict word 00049h                ; bb 49 00
    13571326    mov al, byte [bx]                         ; 8a 07
     
    13631332    pop DS                                    ; 1f
    13641333    retn                                      ; c3
    1365 vbe_biosfn_display_window_control:           ; 0xc086b LB 0x2d
     1334vbe_biosfn_display_window_control:           ; 0xc0820 LB 0x2d
    13661335    cmp bl, 000h                              ; 80 fb 00
    1367     jne short 00894h                          ; 75 24
     1336    jne short 00849h                          ; 75 24
    13681337    cmp bh, 001h                              ; 80 ff 01
    1369     je short 0088bh                           ; 74 16
    1370     jc short 0087bh                           ; 72 04
     1338    je short 00840h                           ; 74 16
     1339    jc short 00830h                           ; 72 04
    13711340    mov ax, 00100h                            ; b8 00 01
    13721341    retn                                      ; c3
    13731342    db  08bh, 0c2h
    13741343    ; mov ax, dx                                ; 8b c2
    1375     call 00636h                               ; e8 b6 fd
    1376     call 0064ah                               ; e8 c7 fd
     1344    call 00626h                               ; e8 f1 fd
     1345    call 0063ah                               ; e8 02 fe
    13771346    db  03bh, 0c2h
    13781347    ; cmp ax, dx                                ; 3b c2
    1379     jne short 00894h                          ; 75 0d
     1348    jne short 00849h                          ; 75 0d
    13801349    mov ax, strict word 0004fh                ; b8 4f 00
    13811350    retn                                      ; c3
    1382     call 0064ah                               ; e8 bc fd
     1351    call 0063ah                               ; e8 f7 fd
    13831352    db  08bh, 0d0h
    13841353    ; mov dx, ax                                ; 8b d0
     
    13871356    mov ax, 0014fh                            ; b8 4f 01
    13881357    retn                                      ; c3
    1389 vbe_biosfn_set_get_logical_scan_line_length: ; 0xc0898 LB 0x53
     1358vbe_biosfn_set_get_display_start:            ; 0xc084d LB 0x34
     1359    cmp bl, 080h                              ; 80 fb 80
     1360    je short 0085dh                           ; 74 0b
     1361    cmp bl, 001h                              ; 80 fb 01
     1362    je short 00871h                           ; 74 1a
     1363    jc short 00863h                           ; 72 0a
     1364    mov ax, 00100h                            ; b8 00 01
     1365    retn                                      ; c3
     1366    call 005a9h                               ; e8 49 fd
     1367    call 0059ch                               ; e8 39 fd
    13901368    db  08bh, 0c1h
    13911369    ; mov ax, cx                                ; 8b c1
    1392     cmp bl, 001h                              ; 80 fb 01
    1393     je short 008c6h                           ; 74 27
    1394     cmp bl, 002h                              ; 80 fb 02
    1395     je short 008aah                           ; 74 06
    1396     jc short 008c3h                           ; 72 1d
    1397     mov ax, 00100h                            ; b8 00 01
    1398     retn                                      ; c3
    1399     push ax                                   ; 50
    1400     call 005c6h                               ; e8 18 fd
    1401     db  032h, 0ffh
    1402     ; xor bh, bh                                ; 32 ff
    1403     db  08ah, 0dch
    1404     ; mov bl, ah                                ; 8a dc
    1405     db  00ah, 0dbh
    1406     ; or bl, bl                                 ; 0a db
    1407     pop ax                                    ; 58
    1408     jne short 008bfh                          ; 75 08
    1409     sal ax, 1                                 ; d1 e0
    1410     sal ax, 1                                 ; d1 e0
    1411     sal ax, 1                                 ; d1 e0
    1412     mov BL, strict byte 001h                  ; b3 01
    1413     db  033h, 0d2h
    1414     ; xor dx, dx                                ; 33 d2
    1415     div bx                                    ; f7 f3
    1416     call 00708h                               ; e8 42 fe
    1417     call 005c6h                               ; e8 fd fc
    1418     db  032h, 0ffh
    1419     ; xor bh, bh                                ; 32 ff
    1420     db  08ah, 0dch
    1421     ; mov bl, ah                                ; 8a dc
    1422     call 0071fh                               ; e8 4f fe
     1370    call 0068ch                               ; e8 24 fe
     1371    db  08bh, 0c2h
     1372    ; mov ax, dx                                ; 8b c2
     1373    call 006b2h                               ; e8 45 fe
     1374    mov ax, strict word 0004fh                ; b8 4f 00
     1375    retn                                      ; c3
     1376    call 006a0h                               ; e8 2c fe
    14231377    db  08bh, 0c8h
    14241378    ; mov cx, ax                                ; 8b c8
    1425     db  00ah, 0dbh
    1426     ; or bl, bl                                 ; 0a db
    1427     jne short 008deh                          ; 75 08
    1428     shr ax, 1                                 ; d1 e8
    1429     shr ax, 1                                 ; d1 e8
    1430     shr ax, 1                                 ; d1 e8
    1431     mov BL, strict byte 001h                  ; b3 01
    1432     mul bx                                    ; f7 e3
    1433     db  08bh, 0d8h
    1434     ; mov bx, ax                                ; 8b d8
    1435     call 00731h                               ; e8 4c fe
    1436     db  08bh, 0d0h
    1437     ; mov dx, ax                                ; 8b d0
    1438     mov ax, strict word 0004fh                ; b8 4f 00
    1439     retn                                      ; c3
    1440 vbe_biosfn_set_get_display_start:            ; 0xc08eb LB 0x34
    1441     cmp bl, 080h                              ; 80 fb 80
    1442     je short 008fbh                           ; 74 0b
    1443     cmp bl, 001h                              ; 80 fb 01
    1444     je short 0090fh                           ; 74 1a
    1445     jc short 00901h                           ; 72 0a
    1446     mov ax, 00100h                            ; b8 00 01
    1447     retn                                      ; c3
    1448     call 005b9h                               ; e8 bb fc
    1449     call 005ach                               ; e8 ab fc
    1450     db  08bh, 0c1h
    1451     ; mov ax, cx                                ; 8b c1
    1452     call 0069ch                               ; e8 96 fd
    1453     db  08bh, 0c2h
    1454     ; mov ax, dx                                ; 8b c2
    1455     call 006c2h                               ; e8 b7 fd
    1456     mov ax, strict word 0004fh                ; b8 4f 00
    1457     retn                                      ; c3
    1458     call 006b0h                               ; e8 9e fd
    1459     db  08bh, 0c8h
    1460     ; mov cx, ax                                ; 8b c8
    1461     call 006d6h                               ; e8 bf fd
     1379    call 006c6h                               ; e8 4d fe
    14621380    db  08bh, 0d0h
    14631381    ; mov dx, ax                                ; 8b d0
     
    14661384    mov ax, strict word 0004fh                ; b8 4f 00
    14671385    retn                                      ; c3
    1468 vbe_biosfn_set_get_dac_palette_format:       ; 0xc091f LB 0x37
     1386vbe_biosfn_set_get_dac_palette_format:       ; 0xc0881 LB 0x37
    14691387    cmp bl, 001h                              ; 80 fb 01
    1470     je short 00942h                           ; 74 1e
    1471     jc short 0092ah                           ; 72 04
     1388    je short 008a4h                           ; 74 1e
     1389    jc short 0088ch                           ; 72 04
    14721390    mov ax, 00100h                            ; b8 00 01
    14731391    retn                                      ; c3
    1474     call 00624h                               ; e8 f7 fc
     1392    call 00614h                               ; e8 85 fd
    14751393    cmp bh, 006h                              ; 80 ff 06
    1476     je short 0093ch                           ; 74 0a
     1394    je short 0089eh                           ; 74 0a
    14771395    cmp bh, 008h                              ; 80 ff 08
    1478     jne short 00952h                          ; 75 1b
     1396    jne short 008b4h                          ; 75 1b
    14791397    or ax, strict byte 00020h                 ; 83 c8 20
    1480     jne short 0093fh                          ; 75 03
     1398    jne short 008a1h                          ; 75 03
    14811399    and ax, strict byte 0ffdfh                ; 83 e0 df
    1482     call 00610h                               ; e8 ce fc
     1400    call 00600h                               ; e8 5c fd
    14831401    mov BH, strict byte 006h                  ; b7 06
    1484     call 00624h                               ; e8 dd fc
     1402    call 00614h                               ; e8 6b fd
    14851403    and ax, strict byte 00020h                ; 83 e0 20
    1486     je short 0094eh                           ; 74 02
     1404    je short 008b0h                           ; 74 02
    14871405    mov BH, strict byte 008h                  ; b7 08
    14881406    mov ax, strict word 0004fh                ; b8 4f 00
     
    14901408    mov ax, 0014fh                            ; b8 4f 01
    14911409    retn                                      ; c3
    1492 vbe_biosfn_set_get_palette_data:             ; 0xc0956 LB 0x73
     1410vbe_biosfn_set_get_palette_data:             ; 0xc08b8 LB 0x73
    14931411    test bl, bl                               ; 84 db
    1494     je short 00969h                           ; 74 0f
     1412    je short 008cbh                           ; 74 0f
    14951413    cmp bl, 001h                              ; 80 fb 01
    1496     je short 00997h                           ; 74 38
     1414    je short 008f9h                           ; 74 38
    14971415    cmp bl, 003h                              ; 80 fb 03
    1498     jbe short 009c5h                          ; 76 61
     1416    jbe short 00927h                          ; 76 61
    14991417    cmp bl, 080h                              ; 80 fb 80
    1500     jne short 009c1h                          ; 75 58
     1418    jne short 00923h                          ; 75 58
    15011419    push ax                                   ; 50
    15021420    push cx                                   ; 51
     
    15281446    ; mov al, bl                                ; 8a c3
    15291447    out DX, AL                                ; ee
    1530     loop 0097dh                               ; e2 f3
     1448    loop 008dfh                               ; e2 f3
    15311449    pop DS                                    ; 1f
    15321450    pop di                                    ; 5f
     
    15661484    ; mov ax, bx                                ; 8b c3
    15671485    stosw                                     ; ab
    1568     loop 009aah                               ; e2 f3
     1486    loop 0090ch                               ; e2 f3
    15691487    pop di                                    ; 5f
    15701488    pop si                                    ; 5e
     
    15751493    pop cx                                    ; 59
    15761494    pop ax                                    ; 58
    1577     jmp short 00993h                          ; eb d2
     1495    jmp short 008f5h                          ; eb d2
    15781496    mov ax, 0014fh                            ; b8 4f 01
    15791497    retn                                      ; c3
    15801498    mov ax, 0024fh                            ; b8 4f 02
    15811499    retn                                      ; c3
    1582 vbe_biosfn_return_protected_mode_interface: ; 0xc09c9 LB 0x17
     1500vbe_biosfn_return_protected_mode_interface: ; 0xc092b LB 0x17
    15831501    test bl, bl                               ; 84 db
    1584     jne short 009dch                          ; 75 0f
     1502    jne short 0093eh                          ; 75 0f
    15851503    mov di, 0c000h                            ; bf 00 c0
    15861504    mov es, di                                ; 8e c7
     
    15921510    retn                                      ; c3
    15931511
    1594   ; Padding 0x20 bytes at 0xc09e0
    1595   times 32 db 0
     1512  ; Padding 0xbe bytes at 0xc0942
     1513  times 190 db 0
    15961514
    1597 section _TEXT progbits vstart=0xa00 align=1 ; size=0x3186 class=CODE group=AUTO
     1515section _TEXT progbits vstart=0xa00 align=1 ; size=0x3273 class=CODE group=AUTO
    15981516set_int_vector_:                             ; 0xc0a00 LB 0x1c
    15991517    push bx                                   ; 53
     
    16521570    call 00a1ch                               ; e8 ab ff
    16531571    call 00a38h                               ; e8 c4 ff
    1654     call 036a3h                               ; e8 2c 2c
     1572    call 036deh                               ; e8 67 2c
    16551573    mov dx, strict word 00022h                ; ba 22 00
    16561574    mov ax, strict word 00010h                ; b8 10 00
     
    23552273    and AL, strict byte 080h                  ; 24 80
    23562274    mov byte [bp-012h], al                    ; 88 46 ee
    2357     call 00833h                               ; e8 04 f8
     2275    call 007e8h                               ; e8 b9 f7
    23582276    test ax, ax                               ; 85 c0
    23592277    je short 0103fh                           ; 74 0c
     
    62126130    pop bx                                    ; 5b
    62136131    retn                                      ; c3
    6214 write_dword_:                                ; 0xc31e5 LB 0x7f
     6132write_dword_:                                ; 0xc31e5 LB 0x96
    62156133    push si                                   ; 56
    62166134    push bp                                   ; 55
     
    62346152    add ax, 00304h                            ; 05 04 03
    62356153    add al, byte [bx+di]                      ; 02 01
    6236     add bl, ch                                ; 00 eb
    6237     xor ax, 0328fh                            ; 35 8f 32
    6238     int3                                      ; cc
    6239     db  032h, 0dch
    6240     ; xor bl, ah                                ; 32 dc
    6241     db  032h, 0e9h
    6242     ; xor ch, cl                                ; 32 e9
    6243     db  032h, 0f9h
    6244     ; xor bh, cl                                ; 32 f9
    6245     xor cl, byte [bx+di]                      ; 32 09
    6246     xor dx, word [bp+si]                      ; 33 12
    6247     xor ax, word [si+033h]                    ; 33 44 33
    6248     imul si, word [bp+di], 03377h             ; 69 33 77 33
    6249     db  08fh, 033h
    6250     ; pop word [bp+di]                          ; 8f 33
    6251     cmpsw                                     ; a7
    6252     db  033h, 0c3h
    6253     ; xor ax, bx                                ; 33 c3
    6254     db  033h, 0d7h
    6255     ; xor dx, di                                ; 33 d7
    6256     db  033h, 0edh
    6257     ; xor bp, bp                                ; 33 ed
    6258     db  033h, 0f9h
    6259     ; xor di, cx                                ; 33 f9
    6260     xor di, word [di-00dcch]                  ; 33 bd 34 f2
    6261     xor AL, strict byte 017h                  ; 34 17
    6262     xor ax, 0352ch                            ; 35 2c 35
    6263     outsb                                     ; 6e
     6154    add byte [si-054cbh], bh                  ; 00 bc 35 ab
     6155    db  032h, 0e8h
     6156    ; xor ch, al                                ; 32 e8
     6157    db  032h, 0f6h
     6158    ; xor dh, dh                                ; 32 f6
     6159    xor al, byte [bx+di]                      ; 32 01
     6160    xor cx, word [bx]                         ; 33 0f
     6161    xor bx, word [bx]                         ; 33 1f
     6162    xor sp, word [04f33h]                     ; 33 26 33 4f
     6163    xor dx, word [bp+di+033h]                 ; 33 53 33
     6164    pop si                                    ; 5e
     6165    xor si, word [bp+di+033h]                 ; 33 73 33
     6166    mov word [bp+di], si                      ; 89 33
     6167    mov byte [0b433h], AL                     ; a2 33 b4
     6168    db  033h, 0c8h
     6169    ; xor cx, ax                                ; 33 c8
     6170    db  033h, 0d4h
     6171    ; xor dx, sp                                ; 33 d4
     6172    xor ax, word [bx-043cch]                  ; 33 87 34 bc
     6173    xor AL, strict byte 0e3h                  ; 34 e3
     6174    xor AL, strict byte 0f8h                  ; 34 f8
     6175    xor AL, strict byte 035h                  ; 34 35
    62646176    xor ax, 02430h                            ; 35 30 24
    62656177    and sp, word [bp+si]                      ; 23 22
     
    62696181    add AL, strict byte 002h                  ; 04 02
    62706182    add word [bx+si], ax                      ; 01 00
    6271     jmp short 0327dh                          ; eb 35
    6272     sbb byte [si], dh                         ; 18 34
    6273     db  036h, 034h, 045h
    6274     ; ss xor AL, strict byte 045h               ; 36 34 45
    6275     xor AL, strict byte 054h                  ; 34 54
    6276     xor AL, strict byte 018h                  ; 34 18
    6277     xor AL, strict byte 036h                  ; 34 36
    6278     xor AL, strict byte 045h                  ; 34 45
    6279     xor AL, strict byte 054h                  ; 34 54
    6280     xor AL, strict byte 063h                  ; 34 63
    6281     xor AL, strict byte 06fh                  ; 34 6f
    6282     xor AL, strict byte 088h                  ; 34 88
    6283     xor AL, strict byte 092h                  ; 34 92
    6284     xor AL, strict byte 09ch                  ; 34 9c
    6285     xor AL, strict byte 0a6h                  ; 34 a6
    6286     db  034h
    6287 _int10_func:                                 ; 0xc3264 LB 0x38e
     6183    mov sp, 0f135h                            ; bc 35 f1
     6184    xor cx, word [bx]                         ; 33 0f
     6185    xor AL, strict byte 01eh                  ; 34 1e
     6186    xor AL, strict byte 02dh                  ; 34 2d
     6187    xor AL, strict byte 0f1h                  ; 34 f1
     6188    xor cx, word [bx]                         ; 33 0f
     6189    xor AL, strict byte 01eh                  ; 34 1e
     6190    xor AL, strict byte 02dh                  ; 34 2d
     6191    xor AL, strict byte 03ch                  ; 34 3c
     6192    xor AL, strict byte 048h                  ; 34 48
     6193    xor AL, strict byte 061h                  ; 34 61
     6194    xor AL, strict byte 066h                  ; 34 66
     6195    xor AL, strict byte 06bh                  ; 34 6b
     6196    xor AL, strict byte 070h                  ; 34 70
     6197    xor AL, strict byte 00ah                  ; 34 0a
     6198    or word [00204h], ax                      ; 09 06 04 02
     6199    add word [bx+si], ax                      ; 01 00
     6200    mov AL, strict byte 035h                  ; b0 35
     6201    pop bx                                    ; 5b
     6202    xor ax, 03568h                            ; 35 68 35
     6203    js short 032a8h                           ; 78 35
     6204    mov byte [di], dh                         ; 88 35
     6205    popfw                                     ; 9d
     6206    xor ax, 035b0h                            ; 35 b0 35
     6207    mov AL, strict byte 035h                  ; b0 35
     6208_int10_func:                                 ; 0xc327b LB 0x348
    62886209    push bp                                   ; 55
    62896210    mov bp, sp                                ; 89 e5
     
    62956216    xor ah, ah                                ; 30 e4
    62966217    cmp ax, strict word 0004fh                ; 3d 4f 00
    6297     jnbe short 032d9h                         ; 77 62
     6218    jnbe short 032f3h                         ; 77 65
    62986219    push CS                                   ; 0e
    62996220    pop ES                                    ; 07
     
    63036224    sal cx, 1                                 ; d1 e1
    63046225    mov di, cx                                ; 89 cf
    6305     mov ax, word [cs:di+0320ch]               ; 2e 8b 85 0c 32
    6306     mov cl, byte [bp+012h]                    ; 8a 4e 12
    6307     jmp ax                                    ; ff e0
     6226    mov bx, word [cs:di+0320ch]               ; 2e 8b 9d 0c 32
     6227    mov ax, word [bp+012h]                    ; 8b 46 12
     6228    xor ah, ah                                ; 30 e4
     6229    mov dl, byte [bp+012h]                    ; 8a 56 12
     6230    jmp bx                                    ; ff e3
    63086231    mov al, byte [bp+012h]                    ; 8a 46 12
    63096232    xor ah, ah                                ; 30 e4
    6310     call 01019h                               ; e8 82 dd
     6233    call 01019h                               ; e8 66 dd
    63116234    mov ax, word [bp+012h]                    ; 8b 46 12
    63126235    and ax, strict word 0007fh                ; 25 7f 00
    63136236    cmp ax, strict word 00007h                ; 3d 07 00
    6314     je short 032b7h                           ; 74 15
     6237    je short 032d3h                           ; 74 15
    63156238    cmp ax, strict word 00006h                ; 3d 06 00
    6316     je short 032aeh                           ; 74 07
     6239    je short 032cah                           ; 74 07
    63176240    cmp ax, strict word 00005h                ; 3d 05 00
    6318     jbe short 032b7h                          ; 76 0b
    6319     jmp short 032c0h                          ; eb 12
     6241    jbe short 032d3h                          ; 76 0b
     6242    jmp short 032dch                          ; eb 12
    63206243    mov ax, word [bp+012h]                    ; 8b 46 12
    63216244    xor al, al                                ; 30 c0
    63226245    or AL, strict byte 03fh                   ; 0c 3f
    6323     jmp short 032c7h                          ; eb 10
     6246    jmp short 032e3h                          ; eb 10
    63246247    mov ax, word [bp+012h]                    ; 8b 46 12
    63256248    xor al, al                                ; 30 c0
    63266249    or AL, strict byte 030h                   ; 0c 30
    6327     jmp short 032c7h                          ; eb 07
     6250    jmp short 032e3h                          ; eb 07
    63286251    mov ax, word [bp+012h]                    ; 8b 46 12
    63296252    xor al, al                                ; 30 c0
    63306253    or AL, strict byte 020h                   ; 0c 20
    63316254    mov word [bp+012h], ax                    ; 89 46 12
    6332     jmp short 032d9h                          ; eb 0d
     6255    jmp short 032f3h                          ; eb 0b
    63336256    mov al, byte [bp+010h]                    ; 8a 46 10
    6334     xor ah, ah                                ; 30 e4
    63356257    mov dx, ax                                ; 89 c2
    63366258    mov al, byte [bp+011h]                    ; 8a 46 11
    6337     call 00ddeh                               ; e8 05 db
    6338     jmp near 035ebh                           ; e9 0f 03
     6259    call 00ddeh                               ; e8 eb da
     6260    jmp near 035bch                           ; e9 c6 02
    63396261    mov dx, word [bp+00eh]                    ; 8b 56 0e
    63406262    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6341     xor ah, ah                                ; 30 e4
    6342     call 00e91h                               ; e8 aa db
    6343     jmp short 032d9h                          ; eb f0
     6263    call 00e91h                               ; e8 92 db
     6264    jmp short 032f3h                          ; eb f2
    63446265    lea bx, [bp+00eh]                         ; 8d 5e 0e
    63456266    lea dx, [bp+010h]                         ; 8d 56 10
    63466267    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6347     xor ah, ah                                ; 30 e4
    6348     call 00a8ch                               ; e8 95 d7
    6349     jmp short 032d9h                          ; eb e0
    6350     xor ax, ax                                ; 31 c0
     6268    call 00a8ch                               ; e8 7f d7
     6269    jmp short 032f3h                          ; eb e4
     6270    xor al, al                                ; 30 c0
    63516271    mov word [bp+012h], ax                    ; 89 46 12
    63526272    mov word [bp+00ch], ax                    ; 89 46 0c
    63536273    mov word [bp+010h], ax                    ; 89 46 10
    63546274    mov word [bp+00eh], ax                    ; 89 46 0e
    6355     jmp short 032d9h                          ; eb d0
    6356     mov al, cl                                ; 88 c8
    6357     xor ah, ah                                ; 30 e4
    6358     call 00f34h                               ; e8 24 dc
    6359     jmp short 032d9h                          ; eb c7
     6275    jmp short 032f3h                          ; eb d4
     6276    mov al, dl                                ; 88 d0
     6277    call 00f34h                               ; e8 10 dc
     6278    jmp short 032f3h                          ; eb cd
    63606279    mov ax, strict word 00001h                ; b8 01 00
    63616280    push ax                                   ; 50
     
    63696288    mov al, byte [bp+010h]                    ; 8a 46 10
    63706289    mov cx, ax                                ; 89 c1
    6371     mov bl, byte [bp+011h]                    ; 8a 5e 11
    6372     xor bh, bh                                ; 30 ff
    6373     mov dl, byte [bp+00dh]                    ; 8a 56 0d
    6374     xor dh, dh                                ; 30 f6
    6375     mov al, byte [bp+012h]                    ; 8a 46 12
    6376     mov byte [bp-006h], al                    ; 88 46 fa
    6377     mov byte [bp-005h], ah                    ; 88 66 fb
    6378     mov ax, word [bp-006h]                    ; 8b 46 fa
    6379     call 01655h                               ; e8 13 e3
    6380     jmp short 032d9h                          ; eb 95
    6381     xor ax, ax                                ; 31 c0
    6382     push ax                                   ; 50
    6383     mov ax, 000ffh                            ; b8 ff 00
    6384     push ax                                   ; 50
    6385     mov al, byte [bp+00eh]                    ; 8a 46 0e
    6386     xor ah, ah                                ; 30 e4
    6387     push ax                                   ; 50
    6388     mov al, byte [bp+00fh]                    ; 8a 46 0f
    6389     push ax                                   ; 50
    6390     mov al, byte [bp+010h]                    ; 8a 46 10
    6391     mov cx, ax                                ; 89 c1
    6392     mov bl, byte [bp+011h]                    ; 8a 5e 11
    6393     xor bh, bh                                ; 30 ff
     6290    mov al, byte [bp+011h]                    ; 8a 46 11
     6291    mov bx, ax                                ; 89 c3
    63946292    mov al, byte [bp+00dh]                    ; 8a 46 0d
    63956293    mov dx, ax                                ; 89 c2
    63966294    mov al, byte [bp+012h]                    ; 8a 46 12
    6397     jmp short 0333fh                          ; eb d6
     6295    call 01655h                               ; e8 08 e3
     6296    jmp short 032f3h                          ; eb a4
     6297    xor al, al                                ; 30 c0
     6298    jmp short 03329h                          ; eb d6
    63986299    lea dx, [bp+012h]                         ; 8d 56 12
    63996300    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6400     xor ah, ah                                ; 30 e4
    6401     call 00ad2h                               ; e8 5e d7
    6402     jmp near 035ebh                           ; e9 74 02
     6301    call 00ad2h                               ; e8 76 d7
     6302    jmp short 032f3h                          ; eb 95
    64036303    mov cx, word [bp+010h]                    ; 8b 4e 10
    64046304    mov al, byte [bp+00ch]                    ; 8a 46 0c
    6405     xor ah, ah                                ; 30 e4
    64066305    mov bx, ax                                ; 89 c3
    64076306    mov al, byte [bp+00dh]                    ; 8a 46 0d
    64086307    mov dx, ax                                ; 89 c2
    64096308    mov al, byte [bp+012h]                    ; 8a 46 12
    6410     call 01ea9h                               ; e8 1d eb
    6411     jmp near 035ebh                           ; e9 5c 02
     6309    call 01ea9h                               ; e8 38 eb
     6310    jmp short 032f3h                          ; eb 80
    64126311    mov cx, word [bp+010h]                    ; 8b 4e 10
    64136312    mov al, byte [bp+00ch]                    ; 8a 46 0c
    6414     xor ah, ah                                ; 30 e4
    64156313    mov bx, ax                                ; 89 c3
    64166314    mov al, byte [bp+00dh]                    ; 8a 46 0d
    64176315    mov dx, ax                                ; 89 c2
    64186316    mov al, byte [bp+012h]                    ; 8a 46 12
    6419     call 0203bh                               ; e8 97 ec
    6420     jmp near 035ebh                           ; e9 44 02
     6317    call 0203bh                               ; e8 b5 ec
     6318    jmp near 035bch                           ; e9 33 02
    64216319    mov cx, word [bp+00eh]                    ; 8b 4e 0e
    64226320    mov bx, word [bp+010h]                    ; 8b 5e 10
    6423     mov dl, byte [bp+012h]                    ; 8a 56 12
    6424     xor dh, dh                                ; 30 f6
     6321    mov al, dl                                ; 88 d0
     6322    mov dx, ax                                ; 89 c2
    64256323    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6426     xor ah, ah                                ; 30 e4
    64276324    mov word [bp-006h], ax                    ; 89 46 fa
    64286325    mov al, byte [bp-006h]                    ; 8a 46 fa
    6429     call 021ceh                               ; e8 0e ee
    6430     jmp near 035ebh                           ; e9 28 02
     6326    call 021ceh                               ; e8 2f ee
     6327    jmp near 035bch                           ; e9 1a 02
    64316328    lea cx, [bp+012h]                         ; 8d 4e 12
    64326329    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    64336330    mov dx, word [bp+010h]                    ; 8b 56 10
    64346331    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6435     xor ah, ah                                ; 30 e4
    6436     call 00bfch                               ; e8 28 d8
    6437     jmp near 035ebh                           ; e9 14 02
     6332    call 00bfch                               ; e8 4b d8
     6333    jmp near 035bch                           ; e9 08 02
    64386334    mov cx, strict word 00002h                ; b9 02 00
    64396335    mov al, byte [bp+00ch]                    ; 8a 46 0c
    6440     xor ah, ah                                ; 30 e4
    64416336    mov bx, ax                                ; 89 c3
    64426337    mov dx, 000ffh                            ; ba ff 00
    64436338    mov al, byte [bp+012h]                    ; 8a 46 12
    6444     call 0234dh                               ; e8 63 ef
    6445     jmp near 035ebh                           ; e9 fe 01
     6339    call 0234dh                               ; e8 88 ef
     6340    jmp near 035bch                           ; e9 f4 01
    64466341    mov dx, word [bp+010h]                    ; 8b 56 10
    64476342    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6448     call 00d3fh                               ; e8 49 d9
    6449     jmp near 035ebh                           ; e9 f2 01
    6450     mov ax, word [bp+012h]                    ; 8b 46 12
    6451     xor ah, ah                                ; 30 e4
     6343    call 00d3fh                               ; e8 6e d9
     6344    jmp near 035bch                           ; e9 e8 01
    64526345    cmp ax, strict word 00030h                ; 3d 30 00
    6453     jnbe short 0346ch                         ; 77 69
     6346    jnbe short 03445h                         ; 77 6c
    64546347    push CS                                   ; 0e
    64556348    pop ES                                    ; 07
     
    64596352    sal cx, 1                                 ; d1 e1
    64606353    mov di, cx                                ; 89 cf
    6461     mov ax, word [cs:di+03246h]               ; 2e 8b 85 46 32
    6462     jmp ax                                    ; ff e0
     6354    mov dx, word [cs:di+03246h]               ; 2e 8b 95 46 32
     6355    mov al, byte [bp+00ch]                    ; 8a 46 0c
     6356    jmp dx                                    ; ff e2
    64636357    mov al, byte [bp+00dh]                    ; 8a 46 0d
    64646358    xor ah, ah                                ; 30 e4
     
    64716365    mov bx, word [bp+008h]                    ; 8b 5e 08
    64726366    mov dx, word [bp+016h]                    ; 8b 56 16
    6473     call 026dfh                               ; e8 ab f2
    6474     jmp short 0346ch                          ; eb 36
     6367    call 026dfh                               ; e8 d2 f2
     6368    jmp short 03445h                          ; eb 36
     6369    mov dl, byte [bp+00ch]                    ; 8a 56 0c
     6370    xor dh, dh                                ; 30 f6
     6371    mov al, byte [bp+012h]                    ; 8a 46 12
     6372    xor ah, ah                                ; 30 e4
     6373    call 02764h                               ; e8 48 f3
     6374    jmp short 03445h                          ; eb 27
    64756375    mov al, byte [bp+00ch]                    ; 8a 46 0c
    64766376    xor ah, ah                                ; 30 e4
    64776377    mov dx, ax                                ; 89 c2
    64786378    mov al, byte [bp+012h]                    ; 8a 46 12
    6479     call 02764h                               ; e8 21 f3
    6480     jmp short 0346ch                          ; eb 27
     6379    call 027dah                               ; e8 af f3
     6380    jmp short 03445h                          ; eb 18
    64816381    mov al, byte [bp+00ch]                    ; 8a 46 0c
    64826382    xor ah, ah                                ; 30 e4
    64836383    mov dx, ax                                ; 89 c2
    64846384    mov al, byte [bp+012h]                    ; 8a 46 12
    6485     call 027dah                               ; e8 88 f3
    6486     jmp short 0346ch                          ; eb 18
    6487     mov al, byte [bp+00ch]                    ; 8a 46 0c
    6488     xor ah, ah                                ; 30 e4
    6489     mov dx, ax                                ; 89 c2
    6490     mov al, byte [bp+012h]                    ; 8a 46 12
    6491     call 0284eh                               ; e8 ed f3
    6492     jmp short 0346ch                          ; eb 09
     6385    call 0284eh                               ; e8 14 f4
     6386    jmp short 03445h                          ; eb 09
    64936387    mov dx, word [bp+008h]                    ; 8b 56 08
    64946388    mov ax, word [bp+016h]                    ; 8b 46 16
    6495     call 028c2h                               ; e8 56 f4
    6496     jmp near 035ebh                           ; e9 7c 01
     6389    call 028c2h                               ; e8 7d f4
     6390    jmp near 035bch                           ; e9 74 01
    64976391    mov al, byte [bp+00eh]                    ; 8a 46 0e
    6498     xor ah, ah                                ; 30 e4
    64996392    push ax                                   ; 50
    65006393    mov al, byte [bp+00ch]                    ; 8a 46 0c
    6501     mov cx, ax                                ; 89 c1
    65026394    mov bx, word [bp+010h]                    ; 8b 5e 10
    65036395    mov dx, word [bp+008h]                    ; 8b 56 08
    6504     mov ax, word [bp+016h]                    ; 8b 46 16
    6505     call 028c7h                               ; e8 41 f4
    6506     jmp short 0346ch                          ; eb e4
    6507     mov al, byte [bp+00ch]                    ; 8a 46 0c
    6508     xor ah, ah                                ; 30 e4
    6509     call 028ceh                               ; e8 3e f4
    6510     jmp short 0346ch                          ; eb da
    6511     mov al, byte [bp+00ch]                    ; 8a 46 0c
    6512     xor ah, ah                                ; 30 e4
    6513     call 028d3h                               ; e8 39 f4
    6514     jmp short 0346ch                          ; eb d0
    6515     mov al, byte [bp+00ch]                    ; 8a 46 0c
    6516     xor ah, ah                                ; 30 e4
    6517     call 028d8h                               ; e8 34 f4
    6518     jmp short 0346ch                          ; eb c6
     6396    mov si, word [bp+016h]                    ; 8b 76 16
     6397    mov cx, ax                                ; 89 c1
     6398    mov ax, si                                ; 89 f0
     6399    call 028c7h                               ; e8 68 f4
     6400    jmp short 03445h                          ; eb e4
     6401    call 028ceh                               ; e8 6a f4
     6402    jmp short 03445h                          ; eb df
     6403    call 028d3h                               ; e8 6a f4
     6404    jmp short 03445h                          ; eb da
     6405    call 028d8h                               ; e8 6a f4
     6406    jmp short 03445h                          ; eb d5
    65196407    lea ax, [bp+00eh]                         ; 8d 46 0e
    65206408    push ax                                   ; 50
     6409    mov al, byte [bp+00dh]                    ; 8a 46 0d
     6410    xor ah, ah                                ; 30 e4
    65216411    lea cx, [bp+010h]                         ; 8d 4e 10
    65226412    lea bx, [bp+008h]                         ; 8d 5e 08
    65236413    lea dx, [bp+016h]                         ; 8d 56 16
    6524     mov al, byte [bp+00dh]                    ; 8a 46 0d
    6525     xor ah, ah                                ; 30 e4
    6526     call 00b81h                               ; e8 c6 d6
    6527     jmp short 0346ch                          ; eb af
     6414    call 00b81h                               ; e8 fc d6
     6415    jmp short 03445h                          ; eb be
    65286416    mov ax, word [bp+00ch]                    ; 8b 46 0c
    65296417    xor ah, ah                                ; 30 e4
    65306418    cmp ax, strict word 00036h                ; 3d 36 00
    6531     je short 034ebh                           ; 74 24
     6419    je short 034b5h                           ; 74 24
    65326420    cmp ax, strict word 00035h                ; 3d 35 00
    6533     je short 034d6h                           ; 74 0a
     6421    je short 034a0h                           ; 74 0a
    65346422    cmp ax, strict word 00020h                ; 3d 20 00
    6535     jne short 03514h                          ; 75 43
    6536     call 028ddh                               ; e8 09 f4
    6537     jmp short 03514h                          ; eb 3e
    6538     mov al, cl                                ; 88 c8
     6423    jne short 034e0h                          ; 75 45
     6424    call 028ddh                               ; e8 3f f4
     6425    jmp short 034e0h                          ; eb 40
     6426    mov al, dl                                ; 88 d0
    65396427    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    65406428    mov dx, word [bp+016h]                    ; 8b 56 16
    6541     call 028e2h                               ; e8 01 f4
     6429    call 028e2h                               ; e8 37 f4
    65426430    mov ax, word [bp+012h]                    ; 8b 46 12
    65436431    xor al, al                                ; 30 c0
    65446432    or AL, strict byte 012h                   ; 0c 12
    6545     jmp near 032c7h                           ; e9 dc fd
    6546     mov al, cl                                ; 88 c8
    6547     call 028e7h                               ; e8 f7 f3
    6548     jmp short 034e1h                          ; eb ef
     6433    jmp near 032e3h                           ; e9 2e fe
     6434    mov al, dl                                ; 88 d0
     6435    call 028e7h                               ; e8 2d f4
     6436    jmp short 034abh                          ; eb ef
    65496437    push word [bp+008h]                       ; ff 76 08
    65506438    push word [bp+016h]                       ; ff 76 16
    65516439    mov al, byte [bp+00eh]                    ; 8a 46 0e
    6552     xor ah, ah                                ; 30 e4
    65536440    push ax                                   ; 50
    65546441    mov al, byte [bp+00fh]                    ; 8a 46 0f
     
    65576444    mov bx, ax                                ; 89 c3
    65586445    mov al, byte [bp+00dh]                    ; 8a 46 0d
     6446    xor dh, dh                                ; 30 f6
     6447    mov si, dx                                ; 89 d6
     6448    mov cx, word [bp+010h]                    ; 8b 4e 10
    65596449    mov dx, ax                                ; 89 c2
    6560     mov al, cl                                ; 88 c8
    6561     mov cx, word [bp+010h]                    ; 8b 4e 10
    6562     call 028ech                               ; e8 d8 f3
    6563     jmp near 035ebh                           ; e9 d4 00
     6450    mov ax, si                                ; 89 f0
     6451    call 028ech                               ; e8 0c f4
     6452    jmp near 035bch                           ; e9 d9 00
    65646453    mov bx, si                                ; 89 f3
    65656454    mov dx, word [bp+016h]                    ; 8b 56 16
    65666455    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6567     call 02982h                               ; e8 60 f4
     6456    call 02982h                               ; e8 94 f4
    65686457    mov ax, word [bp+012h]                    ; 8b 46 12
    65696458    xor al, al                                ; 30 c0
    65706459    or AL, strict byte 01bh                   ; 0c 1b
    6571     jmp near 032c7h                           ; e9 9b fd
    6572     mov ax, word [bp+012h]                    ; 8b 46 12
    6573     xor ah, ah                                ; 30 e4
     6460    jmp near 032e3h                           ; e9 eb fd
    65746461    cmp ax, strict word 00002h                ; 3d 02 00
    6575     je short 03558h                           ; 74 22
     6462    je short 0351fh                           ; 74 22
    65766463    cmp ax, strict word 00001h                ; 3d 01 00
    6577     je short 0354ah                           ; 74 0f
     6464    je short 03511h                           ; 74 0f
    65786465    test ax, ax                               ; 85 c0
    6579     jne short 03564h                          ; 75 25
     6466    jne short 0352bh                          ; 75 25
    65806467    lea dx, [bp+00ch]                         ; 8d 56 0c
    65816468    mov ax, word [bp+010h]                    ; 8b 46 10
    6582     call 02aa7h                               ; e8 5f f5
    6583     jmp short 03564h                          ; eb 1a
     6469    call 02aa7h                               ; e8 98 f5
     6470    jmp short 0352bh                          ; eb 1a
    65846471    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    65856472    mov dx, word [bp+016h]                    ; 8b 56 16
    65866473    mov ax, word [bp+010h]                    ; 8b 46 10
    6587     call 02ab9h                               ; e8 63 f5
    6588     jmp short 03564h                          ; eb 0c
     6474    call 02ab9h                               ; e8 9c f5
     6475    jmp short 0352bh                          ; eb 0c
    65896476    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    65906477    mov dx, word [bp+016h]                    ; 8b 56 16
    65916478    mov ax, word [bp+010h]                    ; 8b 46 10
    6592     call 02e3ah                               ; e8 d6 f8
     6479    call 02e3ah                               ; e8 0f f9
    65936480    mov ax, word [bp+012h]                    ; 8b 46 12
    65946481    xor al, al                                ; 30 c0
    65956482    or AL, strict byte 01ch                   ; 0c 1c
    6596     jmp near 032c7h                           ; e9 59 fd
    6597     call 00833h                               ; e8 c2 d2
     6483    jmp near 032e3h                           ; e9 ae fd
     6484    call 007e8h                               ; e8 b0 d2
    65986485    test ax, ax                               ; 85 c0
    6599     je short 035c8h                           ; 74 53
     6486    je short 035aeh                           ; 74 72
    66006487    mov ax, word [bp+012h]                    ; 8b 46 12
    66016488    xor ah, ah                                ; 30 e4
    6602     cmp ax, strict word 00002h                ; 3d 02 00
    6603     jc short 03592h                           ; 72 13
    6604     jbe short 035b8h                          ; 76 37
    66056489    cmp ax, strict word 0000ah                ; 3d 0a 00
    6606     je short 035dfh                           ; 74 59
    6607     cmp ax, strict word 00009h                ; 3d 09 00
    6608     je short 035dfh                           ; 74 54
    6609     cmp ax, strict word 00004h                ; 3d 04 00
    6610     je short 035cah                           ; 74 3a
    6611     jmp short 035dfh                          ; eb 4d
    6612     cmp ax, strict word 00001h                ; 3d 01 00
    6613     je short 035a8h                           ; 74 11
    6614     test ax, ax                               ; 85 c0
    6615     jne short 035dfh                          ; 75 44
     6490    jnbe short 035b0h                         ; 77 6a
     6491    push CS                                   ; 0e
     6492    pop ES                                    ; 07
     6493    mov cx, strict word 00008h                ; b9 08 00
     6494    mov di, 03264h                            ; bf 64 32
     6495    repne scasb                               ; f2 ae
     6496    sal cx, 1                                 ; d1 e1
     6497    mov di, cx                                ; 89 cf
     6498    mov ax, word [cs:di+0326bh]               ; 2e 8b 85 6b 32
     6499    jmp ax                                    ; ff e0
    66166500    mov bx, si                                ; 89 f3
    66176501    mov dx, word [bp+016h]                    ; 8b 56 16
    66186502    lea ax, [bp+012h]                         ; 8d 46 12
    6619     call 03724h                               ; e8 7e 01
    6620     jmp short 035ebh                          ; eb 43
     6503    call 0375fh                               ; e8 f9 01
     6504    jmp short 035bch                          ; eb 54
    66216505    mov cx, si                                ; 89 f1
    66226506    mov bx, word [bp+016h]                    ; 8b 5e 16
    66236507    mov dx, word [bp+010h]                    ; 8b 56 10
    66246508    lea ax, [bp+012h]                         ; 8d 46 12
    6625     call 03853h                               ; e8 9d 02
    6626     jmp short 035ebh                          ; eb 33
     6509    call 0388eh                               ; e8 18 03
     6510    jmp short 035bch                          ; eb 44
    66276511    mov cx, si                                ; 89 f1
    66286512    mov bx, word [bp+016h]                    ; 8b 5e 16
    66296513    mov dx, word [bp+00ch]                    ; 8b 56 0c
    66306514    lea ax, [bp+012h]                         ; 8d 46 12
    6631     call 03910h                               ; e8 4a 03
    6632     jmp short 035ebh                          ; eb 23
    6633     jmp short 035e6h                          ; eb 1c
     6515    call 0394bh                               ; e8 c5 03
     6516    jmp short 035bch                          ; eb 34
    66346517    lea ax, [bp+00ch]                         ; 8d 46 0c
    66356518    push ax                                   ; 50
     
    66386521    mov dx, word [bp+010h]                    ; 8b 56 10
    66396522    lea ax, [bp+012h]                         ; 8d 46 12
    6640     call 03af9h                               ; e8 1c 05
    6641     jmp short 035ebh                          ; eb 0c
     6523    call 03b34h                               ; e8 99 05
     6524    jmp short 035bch                          ; eb 1f
     6525    lea cx, [bp+00eh]                         ; 8d 4e 0e
     6526    lea bx, [bp+010h]                         ; 8d 5e 10
     6527    lea dx, [bp+00ch]                         ; 8d 56 0c
     6528    lea ax, [bp+012h]                         ; 8d 46 12
     6529    call 03bc1h                               ; e8 15 06
     6530    jmp short 035bch                          ; eb 0e
     6531    jmp short 035b7h                          ; eb 07
    66426532    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    6643     jmp short 035ebh                          ; eb 05
     6533    jmp short 035bch                          ; eb 05
    66446534    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    66456535    lea sp, [bp-004h]                         ; 8d 66 fc
     
    66486538    pop bp                                    ; 5d
    66496539    retn                                      ; c3
    6650 dispi_set_xres_:                             ; 0xc35f2 LB 0x1f
     6540dispi_set_xres_:                             ; 0xc35c3 LB 0x1f
    66516541    push bp                                   ; 55
    66526542    mov bp, sp                                ; 89 e5
     
    66566546    mov ax, strict word 00001h                ; b8 01 00
    66576547    mov dx, 001ceh                            ; ba ce 01
    6658     call 005a0h                               ; e8 9e cf
     6548    call 00590h                               ; e8 bd cf
    66596549    mov ax, bx                                ; 89 d8
    66606550    mov dx, 001cfh                            ; ba cf 01
    6661     call 005a0h                               ; e8 96 cf
     6551    call 00590h                               ; e8 b5 cf
    66626552    lea sp, [bp-004h]                         ; 8d 66 fc
    66636553    pop dx                                    ; 5a
     
    66656555    pop bp                                    ; 5d
    66666556    retn                                      ; c3
    6667 dispi_set_yres_:                             ; 0xc3611 LB 0x1f
     6557dispi_set_yres_:                             ; 0xc35e2 LB 0x1f
    66686558    push bp                                   ; 55
    66696559    mov bp, sp                                ; 89 e5
     
    66736563    mov ax, strict word 00002h                ; b8 02 00
    66746564    mov dx, 001ceh                            ; ba ce 01
    6675     call 005a0h                               ; e8 7f cf
     6565    call 00590h                               ; e8 9e cf
    66766566    mov ax, bx                                ; 89 d8
    66776567    mov dx, 001cfh                            ; ba cf 01
    6678     call 005a0h                               ; e8 77 cf
     6568    call 00590h                               ; e8 96 cf
    66796569    lea sp, [bp-004h]                         ; 8d 66 fc
    66806570    pop dx                                    ; 5a
     
    66826572    pop bp                                    ; 5d
    66836573    retn                                      ; c3
    6684 dispi_set_bpp_:                              ; 0xc3630 LB 0x1f
     6574dispi_set_bpp_:                              ; 0xc3601 LB 0x1f
    66856575    push bp                                   ; 55
    66866576    mov bp, sp                                ; 89 e5
     
    66906580    mov ax, strict word 00003h                ; b8 03 00
    66916581    mov dx, 001ceh                            ; ba ce 01
    6692     call 005a0h                               ; e8 60 cf
     6582    call 00590h                               ; e8 7f cf
    66936583    mov ax, bx                                ; 89 d8
    66946584    mov dx, 001cfh                            ; ba cf 01
    6695     call 005a0h                               ; e8 58 cf
     6585    call 00590h                               ; e8 77 cf
    66966586    lea sp, [bp-004h]                         ; 8d 66 fc
    66976587    pop dx                                    ; 5a
     
    66996589    pop bp                                    ; 5d
    67006590    retn                                      ; c3
    6701 in_word_:                                    ; 0xc364f LB 0x12
     6591dispi_get_bpp_:                              ; 0xc3620 LB 0x19
     6592    push bp                                   ; 55
     6593    mov bp, sp                                ; 89 e5
     6594    push dx                                   ; 52
     6595    mov ax, strict word 00003h                ; b8 03 00
     6596    mov dx, 001ceh                            ; ba ce 01
     6597    call 00590h                               ; e8 63 cf
     6598    mov dx, 001cfh                            ; ba cf 01
     6599    call 00597h                               ; e8 64 cf
     6600    lea sp, [bp-002h]                         ; 8d 66 fe
     6601    pop dx                                    ; 5a
     6602    pop bp                                    ; 5d
     6603    retn                                      ; c3
     6604dispi_set_virt_width_:                       ; 0xc3639 LB 0x1f
     6605    push bp                                   ; 55
     6606    mov bp, sp                                ; 89 e5
     6607    push bx                                   ; 53
     6608    push dx                                   ; 52
     6609    mov bx, ax                                ; 89 c3
     6610    mov ax, strict word 00006h                ; b8 06 00
     6611    mov dx, 001ceh                            ; ba ce 01
     6612    call 00590h                               ; e8 47 cf
     6613    mov ax, bx                                ; 89 d8
     6614    mov dx, 001cfh                            ; ba cf 01
     6615    call 00590h                               ; e8 3f cf
     6616    lea sp, [bp-004h]                         ; 8d 66 fc
     6617    pop dx                                    ; 5a
     6618    pop bx                                    ; 5b
     6619    pop bp                                    ; 5d
     6620    retn                                      ; c3
     6621dispi_get_virt_width_:                       ; 0xc3658 LB 0x19
     6622    push bp                                   ; 55
     6623    mov bp, sp                                ; 89 e5
     6624    push dx                                   ; 52
     6625    mov ax, strict word 00006h                ; b8 06 00
     6626    mov dx, 001ceh                            ; ba ce 01
     6627    call 00590h                               ; e8 2b cf
     6628    mov dx, 001cfh                            ; ba cf 01
     6629    call 00597h                               ; e8 2c cf
     6630    lea sp, [bp-002h]                         ; 8d 66 fe
     6631    pop dx                                    ; 5a
     6632    pop bp                                    ; 5d
     6633    retn                                      ; c3
     6634dispi_get_virt_height_:                      ; 0xc3671 LB 0x19
     6635    push bp                                   ; 55
     6636    mov bp, sp                                ; 89 e5
     6637    push dx                                   ; 52
     6638    mov ax, strict word 00007h                ; b8 07 00
     6639    mov dx, 001ceh                            ; ba ce 01
     6640    call 00590h                               ; e8 12 cf
     6641    mov dx, 001cfh                            ; ba cf 01
     6642    call 00597h                               ; e8 13 cf
     6643    lea sp, [bp-002h]                         ; 8d 66 fe
     6644    pop dx                                    ; 5a
     6645    pop bp                                    ; 5d
     6646    retn                                      ; c3
     6647in_word_:                                    ; 0xc368a LB 0x12
    67026648    push bp                                   ; 55
    67036649    mov bp, sp                                ; 89 e5
     
    67126658    pop bp                                    ; 5d
    67136659    retn                                      ; c3
    6714 in_byte_:                                    ; 0xc3661 LB 0x14
     6660in_byte_:                                    ; 0xc369c LB 0x14
    67156661    push bp                                   ; 55
    67166662    mov bp, sp                                ; 89 e5
     
    67276673    pop bp                                    ; 5d
    67286674    retn                                      ; c3
    6729 dispi_get_id_:                               ; 0xc3675 LB 0x14
     6675dispi_get_id_:                               ; 0xc36b0 LB 0x14
    67306676    push bp                                   ; 55
    67316677    mov bp, sp                                ; 89 e5
     
    67406686    pop bp                                    ; 5d
    67416687    retn                                      ; c3
    6742 dispi_set_id_:                               ; 0xc3689 LB 0x1a
     6688dispi_set_id_:                               ; 0xc36c4 LB 0x1a
    67436689    push bp                                   ; 55
    67446690    mov bp, sp                                ; 89 e5
     
    67576703    pop bp                                    ; 5d
    67586704    retn                                      ; c3
    6759 vbe_init_:                                   ; 0xc36a3 LB 0x2c
     6705vbe_init_:                                   ; 0xc36de LB 0x2c
    67606706    push bp                                   ; 55
    67616707    mov bp, sp                                ; 89 e5
     
    67636709    push dx                                   ; 52
    67646710    mov ax, 0b0c0h                            ; b8 c0 b0
    6765     call 03689h                               ; e8 db ff
    6766     call 03675h                               ; e8 c4 ff
     6711    call 036c4h                               ; e8 db ff
     6712    call 036b0h                               ; e8 c4 ff
    67676713    cmp ax, 0b0c0h                            ; 3d c0 b0
    6768     jne short 036c8h                          ; 75 12
     6714    jne short 03703h                          ; 75 12
    67696715    mov bx, strict word 00001h                ; bb 01 00
    67706716    mov dx, 000b9h                            ; ba b9 00
    67716717    mov ax, strict word 00040h                ; b8 40 00
    6772     call 031a9h                               ; e8 e7 fa
     6718    call 031a9h                               ; e8 ac fa
    67736719    mov ax, 0b0c4h                            ; b8 c4 b0
    6774     call 03689h                               ; e8 c1 ff
     6720    call 036c4h                               ; e8 c1 ff
    67756721    lea sp, [bp-004h]                         ; 8d 66 fc
    67766722    pop dx                                    ; 5a
     
    67786724    pop bp                                    ; 5d
    67796725    retn                                      ; c3
    6780 mode_info_find_mode_:                        ; 0xc36cf LB 0x55
     6726mode_info_find_mode_:                        ; 0xc370a LB 0x55
    67816727    push bp                                   ; 55
    67826728    mov bp, sp                                ; 89 e5
     
    67896735    xor dx, dx                                ; 31 d2
    67906736    mov ax, 003b6h                            ; b8 b6 03
    6791     call 0364fh                               ; e8 6d ff
     6737    call 0368ah                               ; e8 6d ff
    67926738    cmp ax, 077cch                            ; 3d cc 77
    6793     jne short 03719h                          ; 75 32
     6739    jne short 03754h                          ; 75 32
    67946740    mov bx, strict word 00004h                ; bb 04 00
    67956741    mov dx, bx                                ; 89 da
    67966742    mov ax, 003b6h                            ; b8 b6 03
    6797     call 0364fh                               ; e8 5d ff
     6743    call 0368ah                               ; e8 5d ff
    67986744    mov cx, ax                                ; 89 c1
    67996745    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6800     je short 03719h                           ; 74 20
     6746    je short 03754h                           ; 74 20
    68016747    lea dx, [bx+002h]                         ; 8d 57 02
    68026748    mov ax, 003b6h                            ; b8 b6 03
    6803     call 0364fh                               ; e8 4d ff
     6749    call 0368ah                               ; e8 4d ff
    68046750    lea dx, [bx+044h]                         ; 8d 57 44
    68056751    cmp cx, di                                ; 39 f9
    6806     jne short 03715h                          ; 75 0c
     6752    jne short 03750h                          ; 75 0c
    68076753    test si, si                               ; 85 f6
    6808     jne short 03711h                          ; 75 04
     6754    jne short 0374ch                          ; 75 04
    68096755    mov ax, bx                                ; 89 d8
    6810     jmp short 0371bh                          ; eb 0a
     6756    jmp short 03756h                          ; eb 0a
    68116757    test AL, strict byte 080h                 ; a8 80
    6812     jne short 0370dh                          ; 75 f8
     6758    jne short 03748h                          ; 75 f8
    68136759    mov bx, dx                                ; 89 d3
    6814     jmp short 036ech                          ; eb d3
     6760    jmp short 03727h                          ; eb d3
    68156761    xor ax, ax                                ; 31 c0
    68166762    lea sp, [bp-008h]                         ; 8d 66 f8
     
    68216767    pop bp                                    ; 5d
    68226768    retn                                      ; c3
    6823 vbe_biosfn_return_controller_information_: ; 0xc3724 LB 0x12f
     6769vbe_biosfn_return_controller_information_: ; 0xc375f LB 0x12f
    68246770    push bp                                   ; 55
    68256771    mov bp, sp                                ; 89 e5
     
    68326778    mov word [bp-00ah], bx                    ; 89 5e f6
    68336779    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6834     call 005eah                               ; e8 ae ce
     6780    call 005dah                               ; e8 63 ce
    68356781    mov word [bp-010h], ax                    ; 89 46 f0
    68366782    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    68386784    xor dx, dx                                ; 31 d2
    68396785    mov ax, 003b6h                            ; b8 b6 03
    6840     call 0364fh                               ; e8 02 ff
     6786    call 0368ah                               ; e8 02 ff
    68416787    cmp ax, 077cch                            ; 3d cc 77
    6842     je short 0375ch                           ; 74 0a
     6788    je short 03797h                           ; 74 0a
    68436789    push SS                                   ; 16
    68446790    pop ES                                    ; 07
    68456791    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6846     jmp near 0384bh                           ; e9 ef 00
     6792    jmp near 03886h                           ; e9 ef 00
    68476793    mov cx, strict word 00004h                ; b9 04 00
    68486794    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    68496795    mov es, [bp-008h]                         ; 8e 46 f8
    68506796    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6851     jne short 03776h                          ; 75 07
     6797    jne short 037b1h                          ; 75 07
    68526798    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6853     je short 03785h                           ; 74 0f
     6799    je short 037c0h                           ; 74 0f
    68546800    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6855     jne short 0378ah                          ; 75 0c
     6801    jne short 037c5h                          ; 75 0c
    68566802    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6857     jne short 0378ah                          ; 75 05
     6803    jne short 037c5h                          ; 75 05
    68586804    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    68596805    mov es, [bp-008h]                         ; 8e 46 f8
     
    68716817    mov dx, strict word 0ffffh                ; ba ff ff
    68726818    mov ax, 003b6h                            ; b8 b6 03
    6873     call 0364fh                               ; e8 84 fe
     6819    call 0368ah                               ; e8 84 fe
    68746820    mov es, [bp-008h]                         ; 8e 46 f8
    68756821    mov word [es:bx+012h], ax                 ; 26 89 47 12
    68766822    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6877     je short 037fch                           ; 74 24
     6823    je short 03837h                           ; 74 24
    68786824    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    68796825    mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
     
    68866832    add dx, strict byte 0001bh                ; 83 c2 1b
    68876833    mov ax, 003b6h                            ; b8 b6 03
    6888     call 03661h                               ; e8 5a fe
     6834    call 0369ch                               ; e8 5a fe
    68896835    xor ah, ah                                ; 30 e4
    68906836    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6891     jnbe short 03827h                         ; 77 19
     6837    jnbe short 03862h                         ; 77 19
    68926838    mov dx, cx                                ; 89 ca
    68936839    mov ax, 003b6h                            ; b8 b6 03
    6894     call 0364fh                               ; e8 39 fe
     6840    call 0368ah                               ; e8 39 fe
    68956841    mov bx, ax                                ; 89 c3
    68966842    mov dx, word [bp-00ah]                    ; 8b 56 f6
    68976843    add dx, word [bp-00ch]                    ; 03 56 f4
    68986844    mov ax, di                                ; 89 f8
    6899     call 031c5h                               ; e8 a2 f9
     6845    call 031c5h                               ; e8 67 f9
    69006846    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    69016847    add cx, strict byte 00044h                ; 83 c1 44
    69026848    mov dx, cx                                ; 89 ca
    69036849    mov ax, 003b6h                            ; b8 b6 03
    6904     call 0364fh                               ; e8 1d fe
     6850    call 0368ah                               ; e8 1d fe
    69056851    mov bx, ax                                ; 89 c3
    69066852    cmp ax, strict word 0ffffh                ; 3d ff ff
    6907     jne short 037fch                          ; 75 c3
     6853    jne short 03837h                          ; 75 c3
    69086854    mov dx, word [bp-00ah]                    ; 8b 56 f6
    69096855    add dx, word [bp-00ch]                    ; 03 56 f4
    69106856    mov ax, di                                ; 89 f8
    6911     call 031c5h                               ; e8 81 f9
     6857    call 031c5h                               ; e8 46 f9
    69126858    push SS                                   ; 16
    69136859    pop ES                                    ; 07
     
    69196865    pop bp                                    ; 5d
    69206866    retn                                      ; c3
    6921 vbe_biosfn_return_mode_information_:         ; 0xc3853 LB 0xbd
     6867vbe_biosfn_return_mode_information_:         ; 0xc388e LB 0xbd
    69226868    push bp                                   ; 55
    69236869    mov bp, sp                                ; 89 e5
     
    69316877    mov word [bp-006h], cx                    ; 89 4e fa
    69326878    test dh, 040h                             ; f6 c6 40
    6933     je short 0386ch                           ; 74 05
     6879    je short 038a7h                           ; 74 05
    69346880    mov dx, strict word 00001h                ; ba 01 00
    6935     jmp short 0386eh                          ; eb 02
     6881    jmp short 038a9h                          ; eb 02
    69366882    xor dx, dx                                ; 31 d2
    69376883    and ah, 001h                              ; 80 e4 01
    6938     call 036cfh                               ; e8 5b fe
     6884    call 0370ah                               ; e8 5b fe
    69396885    mov word [bp-008h], ax                    ; 89 46 f8
    69406886    test ax, ax                               ; 85 c0
    6941     je short 038b1h                           ; 74 36
     6887    je short 038ech                           ; 74 36
    69426888    mov cx, 00100h                            ; b9 00 01
    69436889    xor ax, ax                                ; 31 c0
     
    69456891    mov es, si                                ; 8e c6
    69466892    cld                                       ; fc
    6947     jcxz 0388ah                               ; e3 02
     6893    jcxz 038c5h                               ; e3 02
    69486894    rep stosb                                 ; f3 aa
    69496895    xor cx, cx                                ; 31 c9
    6950     jmp short 03893h                          ; eb 05
     6896    jmp short 038ceh                          ; eb 05
    69516897    cmp cx, strict byte 00042h                ; 83 f9 42
    6952     jnc short 038b3h                          ; 73 20
     6898    jnc short 038eeh                          ; 73 20
    69536899    mov dx, word [bp-008h]                    ; 8b 56 f8
    69546900    inc dx                                    ; 42
     
    69566902    add dx, cx                                ; 01 ca
    69576903    mov ax, 003b6h                            ; b8 b6 03
    6958     call 03661h                               ; e8 c1 fd
     6904    call 0369ch                               ; e8 c1 fd
    69596905    mov bl, al                                ; 88 c3
    69606906    xor bh, bh                                ; 30 ff
     
    69626908    add dx, cx                                ; 01 ca
    69636909    mov ax, si                                ; 89 f0
    6964     call 031a9h                               ; e8 fb f8
    6965     inc cx                                    ; 41
    6966     jmp short 0388eh                          ; eb dd
    6967     jmp short 038feh                          ; eb 4b
     6910    call 031a9h                               ; e8 c0 f8
     6911    inc cx                                    ; 41
     6912    jmp short 038c9h                          ; eb dd
     6913    jmp short 03939h                          ; eb 4b
    69686914    mov dx, word [bp-006h]                    ; 8b 56 fa
    69696915    inc dx                                    ; 42
    69706916    inc dx                                    ; 42
    69716917    mov ax, si                                ; 89 f0
    6972     call 0319bh                               ; e8 de f8
     6918    call 0319bh                               ; e8 a3 f8
    69736919    test AL, strict byte 001h                 ; a8 01
    6974     je short 038ddh                           ; 74 1c
     6920    je short 03918h                           ; 74 1c
    69756921    mov dx, word [bp-006h]                    ; 8b 56 fa
    69766922    add dx, strict byte 0000ch                ; 83 c2 0c
    6977     mov bx, 0065ch                            ; bb 5c 06
     6923    mov bx, 0064ch                            ; bb 4c 06
    69786924    mov ax, si                                ; 89 f0
    6979     call 031c5h                               ; e8 f6 f8
     6925    call 031c5h                               ; e8 bb f8
    69806926    mov dx, word [bp-006h]                    ; 8b 56 fa
    69816927    add dx, strict byte 0000eh                ; 83 c2 0e
    69826928    mov bx, 0c000h                            ; bb 00 c0
    69836929    mov ax, si                                ; 89 f0
    6984     call 031c5h                               ; e8 e8 f8
     6930    call 031c5h                               ; e8 ad f8
    69856931    mov ax, strict word 0000bh                ; b8 0b 00
    69866932    mov dx, 001ceh                            ; ba ce 01
    6987     call 005a0h                               ; e8 ba cc
     6933    call 00590h                               ; e8 6f cc
    69886934    mov dx, 001cfh                            ; ba cf 01
    6989     call 005a7h                               ; e8 bb cc
     6935    call 00597h                               ; e8 70 cc
    69906936    mov dx, word [bp-006h]                    ; 8b 56 fa
    69916937    add dx, strict byte 0002ah                ; 83 c2 2a
    69926938    mov bx, ax                                ; 89 c3
    69936939    mov ax, si                                ; 89 f0
    6994     call 031c5h                               ; e8 cc f8
     6940    call 031c5h                               ; e8 91 f8
    69956941    mov ax, strict word 0004fh                ; b8 4f 00
    6996     jmp short 03901h                          ; eb 03
     6942    jmp short 0393ch                          ; eb 03
    69976943    mov ax, 00100h                            ; b8 00 01
    69986944    push SS                                   ; 16
     
    70056951    pop bp                                    ; 5d
    70066952    retn                                      ; c3
    7007 vbe_biosfn_set_mode_:                        ; 0xc3910 LB 0xeb
     6953vbe_biosfn_set_mode_:                        ; 0xc394b LB 0xeb
    70086954    push bp                                   ; 55
    70096955    mov bp, sp                                ; 89 e5
     
    70146960    mov word [bp-00ah], dx                    ; 89 56 f6
    70156961    test byte [bp-009h], 040h                 ; f6 46 f7 40
    7016     je short 03928h                           ; 74 05
     6962    je short 03963h                           ; 74 05
    70176963    mov ax, strict word 00001h                ; b8 01 00
    7018     jmp short 0392ah                          ; eb 02
     6964    jmp short 03965h                          ; eb 02
    70196965    xor ax, ax                                ; 31 c0
    70206966    mov dx, ax                                ; 89 c2
    70216967    test ax, ax                               ; 85 c0
    7022     je short 03933h                           ; 74 03
     6968    je short 0396eh                           ; 74 03
    70236969    mov ax, strict word 00040h                ; b8 40 00
    70246970    mov byte [bp-006h], al                    ; 88 46 fa
    70256971    test byte [bp-009h], 080h                 ; f6 46 f7 80
    7026     je short 03941h                           ; 74 05
     6972    je short 0397ch                           ; 74 05
    70276973    mov ax, 00080h                            ; b8 80 00
    7028     jmp short 03943h                          ; eb 02
     6974    jmp short 0397eh                          ; eb 02
    70296975    xor ax, ax                                ; 31 c0
    70306976    mov byte [bp-008h], al                    ; 88 46 f8
    70316977    and byte [bp-009h], 001h                  ; 80 66 f7 01
    70326978    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    7033     jnc short 03964h                          ; 73 13
     6979    jnc short 0399fh                          ; 73 13
    70346980    xor ax, ax                                ; 31 c0
    7035     call 00610h                               ; e8 ba cc
     6981    call 00600h                               ; e8 6f cc
    70366982    mov al, byte [bp-00ah]                    ; 8a 46 f6
    70376983    xor ah, ah                                ; 30 e4
    7038     call 01019h                               ; e8 bb d6
     6984    call 01019h                               ; e8 80 d6
    70396985    mov ax, strict word 0004fh                ; b8 4f 00
    7040     jmp near 039f1h                           ; e9 8d 00
     6986    jmp near 03a2ch                           ; e9 8d 00
    70416987    mov ax, word [bp-00ah]                    ; 8b 46 f6
    7042     call 036cfh                               ; e8 65 fd
     6988    call 0370ah                               ; e8 65 fd
    70436989    mov bx, ax                                ; 89 c3
    70446990    test ax, ax                               ; 85 c0
    7045     jne short 03973h                          ; 75 03
    7046     jmp near 039eeh                           ; e9 7b 00
     6991    jne short 039aeh                          ; 75 03
     6992    jmp near 03a29h                           ; e9 7b 00
    70476993    lea dx, [bx+014h]                         ; 8d 57 14
    70486994    mov ax, 003b6h                            ; b8 b6 03
    7049     call 0364fh                               ; e8 d3 fc
     6995    call 0368ah                               ; e8 d3 fc
    70506996    mov cx, ax                                ; 89 c1
    70516997    lea dx, [bx+016h]                         ; 8d 57 16
    70526998    mov ax, 003b6h                            ; b8 b6 03
    7053     call 0364fh                               ; e8 c8 fc
     6999    call 0368ah                               ; e8 c8 fc
    70547000    mov di, ax                                ; 89 c7
    70557001    lea dx, [bx+01bh]                         ; 8d 57 1b
    70567002    mov ax, 003b6h                            ; b8 b6 03
    7057     call 03661h                               ; e8 cf fc
     7003    call 0369ch                               ; e8 cf fc
    70587004    mov bl, al                                ; 88 c3
    70597005    mov dl, al                                ; 88 c2
    70607006    xor ax, ax                                ; 31 c0
    7061     call 00610h                               ; e8 75 cc
     7007    call 00600h                               ; e8 2a cc
    70627008    cmp bl, 004h                              ; 80 fb 04
    7063     jne short 039a6h                          ; 75 06
     7009    jne short 039e1h                          ; 75 06
    70647010    mov ax, strict word 0006ah                ; b8 6a 00
    7065     call 01019h                               ; e8 73 d6
     7011    call 01019h                               ; e8 38 d6
    70667012    mov al, dl                                ; 88 d0
    70677013    xor ah, ah                                ; 30 e4
    7068     call 03630h                               ; e8 83 fc
     7014    call 03601h                               ; e8 19 fc
    70697015    mov ax, cx                                ; 89 c8
    7070     call 035f2h                               ; e8 40 fc
     7016    call 035c3h                               ; e8 d6 fb
    70717017    mov ax, di                                ; 89 f8
    7072     call 03611h                               ; e8 5a fc
     7018    call 035e2h                               ; e8 f0 fb
    70737019    xor ax, ax                                ; 31 c0
    7074     call 00636h                               ; e8 7a cc
     7020    call 00626h                               ; e8 2f cc
    70757021    mov al, byte [bp-008h]                    ; 8a 46 f8
    70767022    or AL, strict byte 001h                   ; 0c 01
     
    70787024    mov dl, byte [bp-006h]                    ; 8a 56 fa
    70797025    or al, dl                                 ; 08 d0
    7080     call 00610h                               ; e8 45 cc
    7081     call 00743h                               ; e8 75 cd
     7026    call 00600h                               ; e8 fa cb
     7027    call 006f8h                               ; e8 ef cc
    70827028    mov bx, word [bp-00ah]                    ; 8b 5e f6
    70837029    mov dx, 000bah                            ; ba ba 00
    70847030    mov ax, strict word 00040h                ; b8 40 00
    7085     call 031c5h                               ; e8 eb f7
     7031    call 031c5h                               ; e8 b0 f7
    70867032    mov bl, byte [bp-008h]                    ; 8a 5e f8
    70877033    or bl, 060h                               ; 80 cb 60
     
    70897035    mov dx, 00087h                            ; ba 87 00
    70907036    mov ax, strict word 00040h                ; b8 40 00
    7091     call 031a9h                               ; e8 be f7
    7092     jmp near 0395eh                           ; e9 70 ff
     7037    call 031a9h                               ; e8 83 f7
     7038    jmp near 03999h                           ; e9 70 ff
    70937039    mov ax, 00100h                            ; b8 00 01
    70947040    mov word [ss:si], ax                      ; 36 89 04
     
    70987044    pop bp                                    ; 5d
    70997045    retn                                      ; c3
    7100 vbe_biosfn_read_video_state_size_:           ; 0xc39fb LB 0x8
     7046vbe_biosfn_read_video_state_size_:           ; 0xc3a36 LB 0x8
    71017047    push bp                                   ; 55
    71027048    mov bp, sp                                ; 89 e5
     
    71047050    pop bp                                    ; 5d
    71057051    retn                                      ; c3
    7106 vbe_biosfn_save_video_state_:                ; 0xc3a03 LB 0x5b
     7052vbe_biosfn_save_video_state_:                ; 0xc3a3e LB 0x5b
    71077053    push bp                                   ; 55
    71087054    mov bp, sp                                ; 89 e5
     
    71237069    mov dx, cx                                ; 89 ca
    71247070    mov ax, di                                ; 89 f8
    7125     call 031c5h                               ; e8 9f f7
     7071    call 031c5h                               ; e8 64 f7
    71267072    inc cx                                    ; 41
    71277073    inc cx                                    ; 41
    71287074    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7129     je short 03a55h                           ; 74 27
     7075    je short 03a90h                           ; 74 27
    71307076    mov si, strict word 00001h                ; be 01 00
    7131     jmp short 03a38h                          ; eb 05
     7077    jmp short 03a73h                          ; eb 05
    71327078    cmp si, strict byte 00009h                ; 83 fe 09
    7133     jnbe short 03a55h                         ; 77 1d
     7079    jnbe short 03a90h                         ; 77 1d
    71347080    cmp si, strict byte 00004h                ; 83 fe 04
    7135     je short 03a52h                           ; 74 15
     7081    je short 03a8dh                           ; 74 15
    71367082    mov ax, si                                ; 89 f0
    71377083    mov dx, 001ceh                            ; ba ce 01
     
    71427088    mov dx, cx                                ; 89 ca
    71437089    mov ax, di                                ; 89 f8
    7144     call 031c5h                               ; e8 75 f7
     7090    call 031c5h                               ; e8 3a f7
    71457091    inc cx                                    ; 41
    71467092    inc cx                                    ; 41
    71477093    inc si                                    ; 46
    7148     jmp short 03a33h                          ; eb de
     7094    jmp short 03a6eh                          ; eb de
    71497095    lea sp, [bp-008h]                         ; 8d 66 f8
    71507096    pop di                                    ; 5f
     
    71547100    pop bp                                    ; 5d
    71557101    retn                                      ; c3
    7156 vbe_biosfn_restore_video_state_:             ; 0xc3a5e LB 0x9b
     7102vbe_biosfn_restore_video_state_:             ; 0xc3a99 LB 0x9b
    71577103    push bp                                   ; 55
    71587104    mov bp, sp                                ; 89 e5
     
    71637109    mov cx, ax                                ; 89 c1
    71647110    mov bx, dx                                ; 89 d3
    7165     call 031b7h                               ; e8 4b f7
     7111    call 031b7h                               ; e8 10 f7
    71667112    mov word [bp-008h], ax                    ; 89 46 f8
    71677113    inc bx                                    ; 43
    71687114    inc bx                                    ; 43
    71697115    test byte [bp-008h], 001h                 ; f6 46 f8 01
    7170     jne short 03a87h                          ; 75 10
     7116    jne short 03ac2h                          ; 75 10
    71717117    mov ax, strict word 00004h                ; b8 04 00
    71727118    mov dx, 001ceh                            ; ba ce 01
     
    71757121    mov dx, 001cfh                            ; ba cf 01
    71767122    out DX, ax                                ; ef
    7177     jmp short 03af1h                          ; eb 6a
     7123    jmp short 03b2ch                          ; eb 6a
    71787124    mov ax, strict word 00001h                ; b8 01 00
    71797125    mov dx, 001ceh                            ; ba ce 01
     
    71817127    mov dx, bx                                ; 89 da
    71827128    mov ax, cx                                ; 89 c8
    7183     call 031b7h                               ; e8 22 f7
     7129    call 031b7h                               ; e8 e7 f6
    71847130    mov dx, 001cfh                            ; ba cf 01
    71857131    out DX, ax                                ; ef
     
    71917137    mov dx, bx                                ; 89 da
    71927138    mov ax, cx                                ; 89 c8
    7193     call 031b7h                               ; e8 0e f7
     7139    call 031b7h                               ; e8 d3 f6
    71947140    mov dx, 001cfh                            ; ba cf 01
    71957141    out DX, ax                                ; ef
     
    72017147    mov dx, bx                                ; 89 da
    72027148    mov ax, cx                                ; 89 c8
    7203     call 031b7h                               ; e8 fa f6
     7149    call 031b7h                               ; e8 bf f6
    72047150    mov dx, 001cfh                            ; ba cf 01
    72057151    out DX, ax                                ; ef
     
    72137159    out DX, ax                                ; ef
    72147160    mov si, strict word 00005h                ; be 05 00
    7215     jmp short 03adbh                          ; eb 05
     7161    jmp short 03b16h                          ; eb 05
    72167162    cmp si, strict byte 00009h                ; 83 fe 09
    7217     jnbe short 03af1h                         ; 77 16
     7163    jnbe short 03b2ch                         ; 77 16
    72187164    mov ax, si                                ; 89 f0
    72197165    mov dx, 001ceh                            ; ba ce 01
     
    72217167    mov dx, bx                                ; 89 da
    72227168    mov ax, cx                                ; 89 c8
    7223     call 031b7h                               ; e8 cf f6
     7169    call 031b7h                               ; e8 94 f6
    72247170    mov dx, 001cfh                            ; ba cf 01
    72257171    out DX, ax                                ; ef
     
    72277173    inc bx                                    ; 43
    72287174    inc si                                    ; 46
    7229     jmp short 03ad6h                          ; eb e5
     7175    jmp short 03b11h                          ; eb e5
    72307176    lea sp, [bp-006h]                         ; 8d 66 fa
    72317177    pop si                                    ; 5e
     
    72347180    pop bp                                    ; 5d
    72357181    retn                                      ; c3
    7236 vbe_biosfn_save_restore_state_:              ; 0xc3af9 LB 0x8d
     7182vbe_biosfn_save_restore_state_:              ; 0xc3b34 LB 0x8d
    72377183    push bp                                   ; 55
    72387184    mov bp, sp                                ; 89 e5
     
    72477193    xor ah, ah                                ; 30 e4
    72487194    cmp ax, strict word 00002h                ; 3d 02 00
    7249     je short 03b59h                           ; 74 46
     7195    je short 03b94h                           ; 74 46
    72507196    cmp ax, strict word 00001h                ; 3d 01 00
    7251     je short 03b3dh                           ; 74 25
     7197    je short 03b78h                           ; 74 25
    72527198    test ax, ax                               ; 85 c0
    7253     jne short 03b75h                          ; 75 59
     7199    jne short 03bb0h                          ; 75 59
    72547200    mov ax, word [bp-006h]                    ; 8b 46 fa
    7255     call 02a84h                               ; e8 62 ef
     7201    call 02a84h                               ; e8 27 ef
    72567202    mov cx, ax                                ; 89 c1
    72577203    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7258     je short 03b2fh                           ; 74 05
    7259     call 039fbh                               ; e8 ce fe
     7204    je short 03b6ah                           ; 74 05
     7205    call 03a36h                               ; e8 ce fe
    72607206    add ax, cx                                ; 01 c8
    72617207    add ax, strict word 0003fh                ; 05 3f 00
     
    72657211    pop ES                                    ; 07
    72667212    mov word [es:bx], ax                      ; 26 89 07
    7267     jmp short 03b78h                          ; eb 3b
     7213    jmp short 03bb3h                          ; eb 3b
    72687214    push SS                                   ; 16
    72697215    pop ES                                    ; 07
     
    72717217    mov dx, cx                                ; 89 ca
    72727218    mov ax, word [bp-006h]                    ; 8b 46 fa
    7273     call 02ab9h                               ; e8 6f ef
     7219    call 02ab9h                               ; e8 34 ef
    72747220    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7275     je short 03b78h                           ; 74 28
     7221    je short 03bb3h                           ; 74 28
    72767222    mov dx, ax                                ; 89 c2
    72777223    mov ax, cx                                ; 89 c8
    7278     call 03a03h                               ; e8 ac fe
    7279     jmp short 03b78h                          ; eb 1f
     7224    call 03a3eh                               ; e8 ac fe
     7225    jmp short 03bb3h                          ; eb 1f
    72807226    push SS                                   ; 16
    72817227    pop ES                                    ; 07
     
    72837229    mov dx, cx                                ; 89 ca
    72847230    mov ax, word [bp-006h]                    ; 8b 46 fa
    7285     call 02e3ah                               ; e8 d4 f2
     7231    call 02e3ah                               ; e8 99 f2
    72867232    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7287     je short 03b78h                           ; 74 0c
     7233    je short 03bb3h                           ; 74 0c
    72887234    mov dx, ax                                ; 89 c2
    72897235    mov ax, cx                                ; 89 c8
    7290     call 03a5eh                               ; e8 eb fe
    7291     jmp short 03b78h                          ; eb 03
     7236    call 03a99h                               ; e8 eb fe
     7237    jmp short 03bb3h                          ; eb 03
    72927238    mov di, 00100h                            ; bf 00 01
    72937239    push SS                                   ; 16
     
    72997245    pop bp                                    ; 5d
    73007246    retn 00002h                               ; c2 02 00
     7247vbe_biosfn_get_set_scanline_length_:         ; 0xc3bc1 LB 0xb2
     7248    push bp                                   ; 55
     7249    mov bp, sp                                ; 89 e5
     7250    push si                                   ; 56
     7251    push di                                   ; 57
     7252    sub sp, strict byte 00006h                ; 83 ec 06
     7253    push ax                                   ; 50
     7254    mov si, dx                                ; 89 d6
     7255    mov di, bx                                ; 89 df
     7256    mov word [bp-008h], cx                    ; 89 4e f8
     7257    call 03620h                               ; e8 4c fa
     7258    mov ch, al                                ; 88 c5
     7259    mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
     7260    push SS                                   ; 16
     7261    pop ES                                    ; 07
     7262    mov bx, word [es:di]                      ; 26 8b 1d
     7263    mov al, byte [es:si]                      ; 26 8a 04
     7264    cmp AL, strict byte 002h                  ; 3c 02
     7265    je short 03bf1h                           ; 74 0a
     7266    cmp AL, strict byte 001h                  ; 3c 01
     7267    je short 03c1ah                           ; 74 2f
     7268    test al, al                               ; 84 c0
     7269    je short 03c15h                           ; 74 26
     7270    jmp short 03c5ch                          ; eb 6b
     7271    cmp ch, 004h                              ; 80 fd 04
     7272    jne short 03bfch                          ; 75 06
     7273    mov CL, strict byte 003h                  ; b1 03
     7274    sal bx, CL                                ; d3 e3
     7275    jmp short 03c15h                          ; eb 19
     7276    mov al, ch                                ; 88 e8
     7277    xor ah, ah                                ; 30 e4
     7278    cwd                                       ; 99
     7279    mov CL, strict byte 003h                  ; b1 03
     7280    sal dx, CL                                ; d3 e2
     7281    db  01bh, 0c2h
     7282    ; sbb ax, dx                                ; 1b c2
     7283    sar ax, CL                                ; d3 f8
     7284    mov word [bp-00ah], ax                    ; 89 46 f6
     7285    mov ax, bx                                ; 89 d8
     7286    xor dx, dx                                ; 31 d2
     7287    div word [bp-00ah]                        ; f7 76 f6
     7288    mov bx, ax                                ; 89 c3
     7289    mov ax, bx                                ; 89 d8
     7290    call 03639h                               ; e8 1f fa
     7291    call 03658h                               ; e8 3b fa
     7292    mov bx, ax                                ; 89 c3
     7293    push SS                                   ; 16
     7294    pop ES                                    ; 07
     7295    mov word [es:di], ax                      ; 26 89 05
     7296    cmp ch, 004h                              ; 80 fd 04
     7297    jne short 03c2fh                          ; 75 06
     7298    mov CL, strict byte 003h                  ; b1 03
     7299    shr bx, CL                                ; d3 eb
     7300    jmp short 03c44h                          ; eb 15
     7301    mov al, ch                                ; 88 e8
     7302    xor ah, ah                                ; 30 e4
     7303    cwd                                       ; 99
     7304    mov CL, strict byte 003h                  ; b1 03
     7305    sal dx, CL                                ; d3 e2
     7306    db  01bh, 0c2h
     7307    ; sbb ax, dx                                ; 1b c2
     7308    sar ax, CL                                ; d3 f8
     7309    mov di, ax                                ; 89 c7
     7310    mov ax, bx                                ; 89 d8
     7311    mul di                                    ; f7 e7
     7312    mov bx, ax                                ; 89 c3
     7313    add bx, strict byte 00003h                ; 83 c3 03
     7314    and bl, 0fch                              ; 80 e3 fc
     7315    push SS                                   ; 16
     7316    pop ES                                    ; 07
     7317    mov word [es:si], bx                      ; 26 89 1c
     7318    call 03671h                               ; e8 1f fa
     7319    push SS                                   ; 16
     7320    pop ES                                    ; 07
     7321    mov bx, word [bp-008h]                    ; 8b 5e f8
     7322    mov word [es:bx], ax                      ; 26 89 07
     7323    jmp short 03c61h                          ; eb 05
     7324    mov word [bp-006h], 00100h                ; c7 46 fa 00 01
     7325    push SS                                   ; 16
     7326    pop ES                                    ; 07
     7327    mov ax, word [bp-006h]                    ; 8b 46 fa
     7328    mov bx, word [bp-00ch]                    ; 8b 5e f4
     7329    mov word [es:bx], ax                      ; 26 89 07
     7330    lea sp, [bp-004h]                         ; 8d 66 fc
     7331    pop di                                    ; 5f
     7332    pop si                                    ; 5e
     7333    pop bp                                    ; 5d
     7334    retn                                      ; c3
    73017335
    7302   ; Padding 0x87a bytes at 0xc3b86
    7303   times 2170 db 0
     7336  ; Padding 0x78d bytes at 0xc3c73
     7337  times 1933 db 0
    73047338
    73057339section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
     
    83898423    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    83908424    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8391     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 006h
     8425    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum

    r63627 r67771  
    1 41bd9ff8fec56dfa8c80333c5502caff *VBoxVgaBios8086.rom
     1098b8541e3fcf2071a9363b1fa83053d *VBoxVgaBios8086.rom
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette