VirtualBox

Ignore:
Timestamp:
Apr 14, 2014 7:29:58 AM (11 years ago)
Author:
vboxsync
Message:

update alternative BIOS sources

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

Legend:

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

    r50159 r51062  
    254254    mov bx, 0c000h                            ; bb 00 c0
    255255    mov ds, bx                                ; 8e db
    256     call 03040h                               ; e8 50 2f
     256    call 02ffdh                               ; e8 0d 2f
    257257    popaw                                     ; 61
    258258    pop DS                                    ; 1f
     
    15071507  times 194 db 0
    15081508
    1509 section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f80 class=CODE group=AUTO
     1509section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f3d class=CODE group=AUTO
    15101510set_int_vector_:                             ; 0xc0a00 LB 0x1a
    15111511    push bx                                   ; 53
     
    15611561    call 00a1ah                               ; e8 ac ff
    15621562    call 00a36h                               ; e8 c5 ff
    1563     call 034afh                               ; e8 3b 2a
     1563    call 0346ch                               ; e8 f8 29
    15641564    mov dx, strict word 00022h                ; ba 22 00
    15651565    mov ax, strict word 00010h                ; b8 10 00
     
    15881588    mov dx, strict word 00060h                ; ba 60 00
    15891589    mov ax, strict word 00040h                ; b8 40 00
    1590     call 02f93h                               ; e8 e7 24
     1590    call 02f50h                               ; e8 a4 24
    15911591    push SS                                   ; 16
    15921592    pop ES                                    ; 07
     
    15961596    add dx, strict byte 00050h                ; 83 c2 50
    15971597    mov ax, strict word 00040h                ; b8 40 00
    1598     call 02f93h                               ; e8 d4 24
     1598    call 02f50h                               ; e8 91 24
    15991599    push SS                                   ; 16
    16001600    pop ES                                    ; 07
     
    16171617    mov dx, strict word 00049h                ; ba 49 00
    16181618    mov ax, strict word 00040h                ; b8 40 00
    1619     call 02f77h                               ; e8 95 24
     1619    call 02f34h                               ; e8 52 24
    16201620    xor ah, ah                                ; 30 e4
    1621     call 02f50h                               ; e8 69 24
     1621    call 02f0dh                               ; e8 26 24
    16221622    mov ch, al                                ; 88 c5
    16231623    cmp AL, strict byte 0ffh                  ; 3c ff
     
    16351635    mov dx, 00084h                            ; ba 84 00
    16361636    mov ax, strict word 00040h                ; b8 40 00
    1637     call 02f77h                               ; e8 64 24
     1637    call 02f34h                               ; e8 21 24
    16381638    movzx di, al                              ; 0f b6 f8
    16391639    inc di                                    ; 47
    16401640    mov dx, strict word 0004ah                ; ba 4a 00
    16411641    mov ax, strict word 00040h                ; b8 40 00
    1642     call 02f93h                               ; e8 73 24
     1642    call 02f50h                               ; e8 30 24
    16431643    movzx bx, ch                              ; 0f b6 dd
    16441644    sal bx, 003h                              ; c1 e3 03
     
    16601660    add dx, ax                                ; 01 c2
    16611661    mov ax, word [bx+04833h]                  ; 8b 87 33 48
    1662     call 02f93h                               ; e8 3c 24
     1662    call 02f50h                               ; e8 f9 23
    16631663    mov word [ss:si], ax                      ; 36 89 04
    16641664    lea sp, [bp-008h]                         ; 8d 66 f8
     
    16971697    mov dx, strict word 0007ch                ; ba 7c 00
    16981698    xor ax, ax                                ; 31 c0
    1699     call 02fafh                               ; e8 19 24
     1699    call 02f6ch                               ; e8 d6 23
    17001700    push SS                                   ; 16
    17011701    pop ES                                    ; 07
     
    17051705    mov dx, 00085h                            ; ba 85 00
    17061706    mov ax, strict word 00040h                ; b8 40 00
    1707     call 02f77h                               ; e8 cd 23
     1707    call 02f34h                               ; e8 8a 23
    17081708    xor ah, ah                                ; 30 e4
    17091709    push SS                                   ; 16
     
    17121712    mov dx, 00084h                            ; ba 84 00
    17131713    mov ax, strict word 00040h                ; b8 40 00
    1714     call 02f77h                               ; e8 bd 23
     1714    call 02f34h                               ; e8 7a 23
    17151715    xor ah, ah                                ; 30 e4
    17161716    push SS                                   ; 16
     
    17501750    mov dx, strict word 00049h                ; ba 49 00
    17511751    mov ax, strict word 00040h                ; b8 40 00
    1752     call 02f77h                               ; e8 6a 23
     1752    call 02f34h                               ; e8 27 23
    17531753    xor ah, ah                                ; 30 e4
    1754     call 02f50h                               ; e8 3e 23
     1754    call 02f0dh                               ; e8 fb 22
    17551755    mov cl, al                                ; 88 c1
    17561756    cmp AL, strict byte 0ffh                  ; 3c ff
     
    17741774    mov dx, strict word 0004ah                ; ba 4a 00
    17751775    mov ax, strict word 00040h                ; b8 40 00
    1776     call 02f93h                               ; e8 3f 23
     1776    call 02f50h                               ; e8 fc 22
    17771777    imul ax, word [bp-00ah]                   ; 0f af 46 f6
    17781778    mov bx, si                                ; 89 f3
     
    17951795    mov dx, bx                                ; 89 da
    17961796    mov ax, 0a000h                            ; b8 00 a0
    1797     call 02f77h                               ; e8 e9 22
     1797    call 02f34h                               ; e8 a6 22
    17981798    and al, byte [bp-008h]                    ; 22 46 f8
    17991799    test al, al                               ; 84 c0
     
    18161816    mov dx, bx                                ; 89 da
    18171817    mov ax, 0b800h                            ; b8 00 b8
    1818     call 02f77h                               ; e8 b4 22
     1818    call 02f34h                               ; e8 71 22
    18191819    movzx bx, cl                              ; 0f b6 d9
    18201820    sal bx, 003h                              ; c1 e3 03
     
    18461846    mov dx, strict word 0004ah                ; ba 4a 00
    18471847    mov ax, strict word 00040h                ; b8 40 00
    1848     call 02f93h                               ; e8 86 22
     1848    call 02f50h                               ; e8 43 22
    18491849    sal ax, 003h                              ; c1 e0 03
    18501850    imul ax, word [bp-00ah]                   ; 0f af 46 f6
     
    18521852    add dx, ax                                ; 01 c2
    18531853    mov ax, 0a000h                            ; b8 00 a0
    1854     call 02f77h                               ; e8 59 22
     1854    call 02f34h                               ; e8 16 22
    18551855    mov ch, al                                ; 88 c5
    18561856    jmp short 00d24h                          ; eb 02
     
    19591959    mov dx, strict word 00060h                ; ba 60 00
    19601960    mov ax, strict word 00040h                ; b8 40 00
    1961     call 02fa1h                               ; e8 c0 21
     1961    call 02f5eh                               ; e8 7d 21
    19621962    mov dx, 00089h                            ; ba 89 00
    19631963    mov ax, strict word 00040h                ; b8 40 00
    1964     call 02f77h                               ; e8 8d 21
     1964    call 02f34h                               ; e8 4a 21
    19651965    mov bl, al                                ; 88 c3
    19661966    mov dx, 00085h                            ; ba 85 00
    19671967    mov ax, strict word 00040h                ; b8 40 00
    1968     call 02f93h                               ; e8 9e 21
     1968    call 02f50h                               ; e8 5b 21
    19691969    mov dx, ax                                ; 89 c2
    19701970    test bl, 001h                             ; f6 c3 01
     
    19971997    mov dx, strict word 00063h                ; ba 63 00
    19981998    mov ax, strict word 00040h                ; b8 40 00
    1999     call 02f93h                               ; e8 57 21
     1999    call 02f50h                               ; e8 14 21
    20002000    mov bx, ax                                ; 89 c3
    20012001    mov AL, strict byte 00ah                  ; b0 0a
     
    20362036    mov bx, cx                                ; 89 cb
    20372037    mov ax, strict word 00040h                ; b8 40 00
    2038     call 02fa1h                               ; e8 20 21
     2038    call 02f5eh                               ; e8 dd 20
    20392039    mov dx, strict word 00062h                ; ba 62 00
    20402040    mov ax, strict word 00040h                ; b8 40 00
    2041     call 02f77h                               ; e8 ed 20
     2041    call 02f34h                               ; e8 aa 20
    20422042    cmp al, byte [bp-008h]                    ; 3a 46 f8
    20432043    jne short 00ef8h                          ; 75 69
    20442044    mov dx, strict word 0004ah                ; ba 4a 00
    20452045    mov ax, strict word 00040h                ; b8 40 00
    2046     call 02f93h                               ; e8 fb 20
     2046    call 02f50h                               ; e8 b8 20
    20472047    mov bx, ax                                ; 89 c3
    20482048    mov dx, 00084h                            ; ba 84 00
    20492049    mov ax, strict word 00040h                ; b8 40 00
    2050     call 02f77h                               ; e8 d4 20
     2050    call 02f34h                               ; e8 91 20
    20512051    xor ah, ah                                ; 30 e4
    20522052    mov dx, ax                                ; 89 c2
     
    20682068    mov dx, strict word 00063h                ; ba 63 00
    20692069    mov ax, strict word 00040h                ; b8 40 00
    2070     call 02f93h                               ; e8 bd 20
     2070    call 02f50h                               ; e8 7a 20
    20712071    mov bx, ax                                ; 89 c3
    20722072    mov AL, strict byte 00eh                  ; b0 0e
     
    21072107    mov dx, strict word 00049h                ; ba 49 00
    21082108    mov ax, strict word 00040h                ; b8 40 00
    2109     call 02f77h                               ; e8 5c 20
     2109    call 02f34h                               ; e8 19 20
    21102110    xor ah, ah                                ; 30 e4
    2111     call 02f50h                               ; e8 30 20
     2111    call 02f0dh                               ; e8 ed 1f
    21122112    mov ch, al                                ; 88 c5
    21132113    cmp AL, strict byte 0ffh                  ; 3c ff
     
    21242124    mov dx, strict word 0004ah                ; ba 4a 00
    21252125    mov ax, strict word 00040h                ; b8 40 00
    2126     call 02f93h                               ; e8 47 20
     2126    call 02f50h                               ; e8 04 20
    21272127    mov bx, ax                                ; 89 c3
    21282128    mov dx, 00084h                            ; ba 84 00
    21292129    mov ax, strict word 00040h                ; b8 40 00
    2130     call 02f77h                               ; e8 20 20
     2130    call 02f34h                               ; e8 dd 1f
    21312131    xor ah, ah                                ; 30 e4
    21322132    inc ax                                    ; 40
     
    21422142    mov dx, strict word 0004eh                ; ba 4e 00
    21432143    mov ax, strict word 00040h                ; b8 40 00
    2144     call 02fa1h                               ; e8 2a 20
     2144    call 02f5eh                               ; e8 e7 1f
    21452145    or si, 000ffh                             ; 81 ce ff 00
    21462146    lea bx, [si+001h]                         ; 8d 5c 01
     
    21542154    mov dx, strict word 00063h                ; ba 63 00
    21552155    mov ax, strict word 00040h                ; b8 40 00
    2156     call 02f93h                               ; e8 f5 1f
     2156    call 02f50h                               ; e8 b2 1f
    21572157    mov si, ax                                ; 89 c6
    21582158    mov AL, strict byte 00ch                  ; b0 0c
     
    21752175    mov dx, strict word 00062h                ; ba 62 00
    21762176    mov ax, strict word 00040h                ; b8 40 00
    2177     call 02f85h                               ; e8 bb 1f
     2177    call 02f42h                               ; e8 78 1f
    21782178    mov dx, word [bp-00eh]                    ; 8b 56 f2
    21792179    mov ax, si                                ; 89 f0
     
    22102210    and byte [bp-00eh], 07fh                  ; 80 66 f2 7f
    22112211    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2212     call 02f50h                               ; e8 43 1f
     2212    call 02f0dh                               ; e8 00 1f
    22132213    mov byte [bp-012h], al                    ; 88 46 ee
    22142214    cmp AL, strict byte 0ffh                  ; 3c ff
     
    22272227    mov dx, 00087h                            ; ba 87 00
    22282228    mov ax, strict word 00040h                ; b8 40 00
    2229     call 02f77h                               ; e8 30 1f
     2229    call 02f34h                               ; e8 ed 1e
    22302230    mov dx, 00088h                            ; ba 88 00
    22312231    mov ax, strict word 00040h                ; b8 40 00
    2232     call 02f77h                               ; e8 27 1f
     2232    call 02f34h                               ; e8 e4 1e
    22332233    mov dx, 00089h                            ; ba 89 00
    22342234    mov ax, strict word 00040h                ; b8 40 00
    2235     call 02f77h                               ; e8 1e 1f
     2235    call 02f34h                               ; e8 db 1e
    22362236    mov ah, al                                ; 88 c4
    22372237    test AL, strict byte 008h                 ; a8 08
     
    24352435    mov dx, strict word 00049h                ; ba 49 00
    24362436    mov ax, strict word 00040h                ; b8 40 00
    2437     call 02f85h                               ; e8 52 1d
     2437    call 02f42h                               ; e8 0f 1d
    24382438    mov bx, word [bp-018h]                    ; 8b 5e e8
    24392439    mov dx, strict word 0004ah                ; ba 4a 00
    24402440    mov ax, strict word 00040h                ; b8 40 00
    2441     call 02fa1h                               ; e8 62 1d
     2441    call 02f5eh                               ; e8 1f 1d
    24422442    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    24432443    sal bx, 006h                              ; c1 e3 06
     
    24452445    mov dx, strict word 0004ch                ; ba 4c 00
    24462446    mov ax, strict word 00040h                ; b8 40 00
    2447     call 02fa1h                               ; e8 4e 1d
     2447    call 02f5eh                               ; e8 0b 1d
    24482448    mov bx, si                                ; 89 f3
    24492449    mov dx, strict word 00063h                ; ba 63 00
    24502450    mov ax, strict word 00040h                ; b8 40 00
    2451     call 02fa1h                               ; e8 43 1d
     2451    call 02f5eh                               ; e8 00 1d
    24522452    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    24532453    mov dx, 00084h                            ; ba 84 00
    24542454    mov ax, strict word 00040h                ; b8 40 00
    2455     call 02f85h                               ; e8 1a 1d
     2455    call 02f42h                               ; e8 d7 1c
    24562456    mov bx, word [bp-014h]                    ; 8b 5e ec
    24572457    mov dx, 00085h                            ; ba 85 00
    24582458    mov ax, strict word 00040h                ; b8 40 00
    2459     call 02fa1h                               ; e8 2a 1d
     2459    call 02f5eh                               ; e8 e7 1c
    24602460    mov al, byte [bp-010h]                    ; 8a 46 f0
    24612461    or AL, strict byte 060h                   ; 0c 60
     
    24632463    mov dx, 00087h                            ; ba 87 00
    24642464    mov ax, strict word 00040h                ; b8 40 00
    2465     call 02f85h                               ; e8 fd 1c
     2465    call 02f42h                               ; e8 ba 1c
    24662466    mov bx, 000f9h                            ; bb f9 00
    24672467    mov dx, 00088h                            ; ba 88 00
    24682468    mov ax, strict word 00040h                ; b8 40 00
    2469     call 02f85h                               ; e8 f1 1c
     2469    call 02f42h                               ; e8 ae 1c
    24702470    mov dx, 00089h                            ; ba 89 00
    24712471    mov ax, strict word 00040h                ; b8 40 00
    2472     call 02f77h                               ; e8 da 1c
     2472    call 02f34h                               ; e8 97 1c
    24732473    and AL, strict byte 07fh                  ; 24 7f
    24742474    movzx bx, al                              ; 0f b6 d8
    24752475    mov dx, 00089h                            ; ba 89 00
    24762476    mov ax, strict word 00040h                ; b8 40 00
    2477     call 02f85h                               ; e8 da 1c
     2477    call 02f42h                               ; e8 97 1c
    24782478    mov bx, strict word 00008h                ; bb 08 00
    24792479    mov dx, 0008ah                            ; ba 8a 00
    24802480    mov ax, strict word 00040h                ; b8 40 00
    2481     call 02f85h                               ; e8 ce 1c
     2481    call 02f42h                               ; e8 8b 1c
    24822482    mov cx, ds                                ; 8c d9
    24832483    mov bx, 05593h                            ; bb 93 55
    24842484    mov dx, 000a8h                            ; ba a8 00
    24852485    mov ax, strict word 00040h                ; b8 40 00
    2486     call 02fc1h                               ; e8 fc 1c
     2486    call 02f7eh                               ; e8 b9 1c
    24872487    xor bx, bx                                ; 31 db
    24882488    mov dx, strict word 00065h                ; ba 65 00
    24892489    mov ax, strict word 00040h                ; b8 40 00
    2490     call 02f85h                               ; e8 b5 1c
     2490    call 02f42h                               ; e8 72 1c
    24912491    xor bx, bx                                ; 31 db
    24922492    mov dx, strict word 00066h                ; ba 66 00
    24932493    mov ax, strict word 00040h                ; b8 40 00
    2494     call 02f85h                               ; e8 aa 1c
     2494    call 02f42h                               ; e8 67 1c
    24952495    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    24962496    sal bx, 003h                              ; c1 e3 03
     
    27942794    mov dx, strict word 00049h                ; ba 49 00
    27952795    mov ax, strict word 00040h                ; b8 40 00
    2796     call 02f77h                               ; e8 e4 19
     2796    call 02f34h                               ; e8 a1 19
    27972797    xor ah, ah                                ; 30 e4
    2798     call 02f50h                               ; e8 b8 19
     2798    call 02f0dh                               ; e8 75 19
    27992799    mov byte [bp-00eh], al                    ; 88 46 f2
    28002800    cmp AL, strict byte 0ffh                  ; 3c ff
     
    28022802    mov dx, 00084h                            ; ba 84 00
    28032803    mov ax, strict word 00040h                ; b8 40 00
    2804     call 02f77h                               ; e8 cd 19
     2804    call 02f34h                               ; e8 8a 19
    28052805    movzx cx, al                              ; 0f b6 c8
    28062806    inc cx                                    ; 41
    28072807    mov dx, strict word 0004ah                ; ba 4a 00
    28082808    mov ax, strict word 00040h                ; b8 40 00
    2809     call 02f93h                               ; e8 dc 19
     2809    call 02f50h                               ; e8 99 19
    28102810    mov word [bp-016h], ax                    ; 89 46 ea
    28112811    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
     
    28132813    mov dx, strict word 00062h                ; ba 62 00
    28142814    mov ax, strict word 00040h                ; b8 40 00
    2815     call 02f77h                               ; e8 ae 19
     2815    call 02f34h                               ; e8 6b 19
    28162816    mov byte [bp+008h], al                    ; 88 46 08
    28172817    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    32793279    mov dx, si                                ; 89 f2
    32803280    mov ax, 0a000h                            ; b8 00 a0
    3281     call 02f85h                               ; e8 8e 14
     3281    call 02f42h                               ; e8 4b 14
    32823282    inc byte [bp-008h]                        ; fe 46 f8
    32833283    cmp byte [bp-008h], 008h                  ; 80 7e f8 08
     
    32953295    mov dx, si                                ; 89 f2
    32963296    mov ax, 0a000h                            ; b8 00 a0
    3297     call 02f77h                               ; e8 56 14
     3297    call 02f34h                               ; e8 13 14
    32983298    movzx ax, ch                              ; 0f b6 c5
    32993299    add ax, word [bp-00ah]                    ; 03 46 f6
     
    33693369    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33703370    mov ax, 0b800h                            ; b8 00 b8
    3371     call 02f85h                               ; e8 b7 13
     3371    call 02f42h                               ; e8 74 13
    33723372    inc byte [bp-006h]                        ; fe 46 fa
    33733373    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
     
    33893389    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33903390    mov ax, 0b800h                            ; b8 00 b8
    3391     call 02f77h                               ; e8 6d 13
     3391    call 02f34h                               ; e8 2a 13
    33923392    jmp near 01b8bh                           ; e9 7e ff
    33933393    test ch, ch                               ; 84 ed
     
    33973397    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33983398    mov ax, 0b800h                            ; b8 00 b8
    3399     call 02f77h                               ; e8 57 13
     3399    call 02f34h                               ; e8 14 13
    34003400    jmp short 01c24h                          ; eb 02
    34013401    xor al, al                                ; 30 c0
     
    34283428    mov dx, word [bp-00ah]                    ; 8b 56 f6
    34293429    mov ax, 0b800h                            ; b8 00 b8
    3430     call 02f85h                               ; e8 1c 13
     3430    call 02f42h                               ; e8 d9 12
    34313431    inc word [bp-00ah]                        ; ff 46 f6
    34323432    jmp short 01c0dh                          ; eb 9f
     
    34723472    add dx, word [bp-00ah]                    ; 03 56 f6
    34733473    mov ax, 0a000h                            ; b8 00 a0
    3474     call 02f85h                               ; e8 b1 12
     3474    call 02f42h                               ; e8 6e 12
    34753475    shr byte [bp-008h], 1                     ; d0 6e f8
    34763476    db  0feh, 0c5h
     
    35083508    mov dx, strict word 00049h                ; ba 49 00
    35093509    mov ax, strict word 00040h                ; b8 40 00
    3510     call 02f77h                               ; e8 53 12
     3510    call 02f34h                               ; e8 10 12
    35113511    xor ah, ah                                ; 30 e4
    3512     call 02f50h                               ; e8 27 12
     3512    call 02f0dh                               ; e8 e4 11
    35133513    mov cl, al                                ; 88 c1
    35143514    mov byte [bp-006h], al                    ; 88 46 fa
     
    35273527    mov dx, 00084h                            ; ba 84 00
    35283528    mov ax, strict word 00040h                ; b8 40 00
    3529     call 02f77h                               ; e8 1c 12
     3529    call 02f34h                               ; e8 d9 11
    35303530    xor ah, ah                                ; 30 e4
    35313531    inc ax                                    ; 40
     
    35333533    mov dx, strict word 0004ah                ; ba 4a 00
    35343534    mov ax, strict word 00040h                ; b8 40 00
    3535     call 02f93h                               ; e8 29 12
     3535    call 02f50h                               ; e8 e6 11
    35363536    mov word [bp-016h], ax                    ; 89 46 ea
    35373537    movzx bx, cl                              ; 0f b6 d9
     
    36383638    mov dx, strict word 00049h                ; ba 49 00
    36393639    mov ax, strict word 00040h                ; b8 40 00
    3640     call 02f77h                               ; e8 eb 10
     3640    call 02f34h                               ; e8 a8 10
    36413641    xor ah, ah                                ; 30 e4
    3642     call 02f50h                               ; e8 bf 10
     3642    call 02f0dh                               ; e8 7c 10
    36433643    mov cl, al                                ; 88 c1
    36443644    mov byte [bp-00eh], al                    ; 88 46 f2
     
    36573657    mov dx, 00084h                            ; ba 84 00
    36583658    mov ax, strict word 00040h                ; b8 40 00
    3659     call 02f77h                               ; e8 b4 10
     3659    call 02f34h                               ; e8 71 10
    36603660    xor ah, ah                                ; 30 e4
    36613661    inc ax                                    ; 40
     
    36633663    mov dx, strict word 0004ah                ; ba 4a 00
    36643664    mov ax, strict word 00040h                ; b8 40 00
    3665     call 02f93h                               ; e8 c1 10
     3665    call 02f50h                               ; e8 7e 10
    36663666    mov word [bp-016h], ax                    ; 89 46 ea
    36673667    movzx di, cl                              ; 0f b6 f9
     
    36943694    mov dx, cx                                ; 89 ca
    36953695    mov ax, di                                ; 89 f8
    3696     call 02f85h                               ; e8 5b 10
     3696    call 02f42h                               ; e8 18 10
    36973697    inc cx                                    ; 41
    36983698    inc cx                                    ; 41
     
    37673767    mov dx, strict word 00049h                ; ba 49 00
    37683768    mov ax, strict word 00040h                ; b8 40 00
    3769     call 02f77h                               ; e8 82 0f
     3769    call 02f34h                               ; e8 3f 0f
    37703770    xor ah, ah                                ; 30 e4
    3771     call 02f50h                               ; e8 56 0f
     3771    call 02f0dh                               ; e8 13 0f
    37723772    mov byte [bp-004h], al                    ; 88 46 fc
    37733773    cmp AL, strict byte 0ffh                  ; 3c ff
     
    37913791    mov dx, strict word 0004ah                ; ba 4a 00
    37923792    mov ax, strict word 00040h                ; b8 40 00
    3793     call 02f93h                               ; e8 5a 0f
     3793    call 02f50h                               ; e8 17 0f
    37943794    imul ax, cx                               ; 0f af c1
    37953795    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    38103810    mov dx, bx                                ; 89 da
    38113811    mov ax, 0a000h                            ; b8 00 a0
    3812     call 02f77h                               ; e8 0e 0f
     3812    call 02f34h                               ; e8 cb 0e
    38133813    test byte [bp-006h], 080h                 ; f6 46 fa 80
    38143814    je short 02076h                           ; 74 07
     
    38193819    mov dx, word [bp-008h]                    ; 8b 56 f8
    38203820    mov ax, 0a000h                            ; b8 00 a0
    3821     call 02f85h                               ; e8 02 0f
     3821    call 02f42h                               ; e8 bf 0e
    38223822    mov ax, 0ff08h                            ; b8 08 ff
    38233823    mov dx, 003ceh                            ; ba ce 03
     
    38453845    mov dx, word [bp-008h]                    ; 8b 56 f8
    38463846    mov ax, 0b800h                            ; b8 00 b8
    3847     call 02f77h                               ; e8 af 0e
     3847    call 02f34h                               ; e8 6c 0e
    38483848    mov bl, al                                ; 88 c3
    38493849    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
     
    38813881    mov dx, word [bp-008h]                    ; 8b 56 f8
    38823882    mov ax, 0b800h                            ; b8 00 b8
    3883     call 02f85h                               ; e8 64 0e
     3883    call 02f42h                               ; e8 21 0e
    38843884    lea sp, [bp-002h]                         ; 8d 66 fe
    38853885    pop si                                    ; 5e
     
    38883888    mov dx, strict word 0004ah                ; ba 4a 00
    38893889    mov ax, strict word 00040h                ; b8 40 00
    3890     call 02f93h                               ; e8 63 0e
     3890    call 02f50h                               ; e8 20 0e
    38913891    sal ax, 003h                              ; c1 e0 03
    38923892    imul cx, ax                               ; 0f af c8
     
    38983898    mov ax, 0a000h                            ; b8 00 a0
    38993899    jmp short 0211eh                          ; eb d5
    3900 biosfn_write_teletype_:                      ; 0xc2149 LB 0x284
     3900biosfn_write_teletype_:                      ; 0xc2149 LB 0x241
    39013901    push bp                                   ; 55
    39023902    mov bp, sp                                ; 89 e5
     
    39043904    sub sp, strict byte 00016h                ; 83 ec 16
    39053905    mov byte [bp-00ch], al                    ; 88 46 f4
    3906     mov byte [bp-004h], dl                    ; 88 56 fc
    3907     mov byte [bp-006h], bl                    ; 88 5e fa
    3908     mov byte [bp-010h], cl                    ; 88 4e f0
     3906    mov byte [bp-006h], dl                    ; 88 56 fa
     3907    mov byte [bp-004h], bl                    ; 88 5e fc
     3908    mov byte [bp-00eh], cl                    ; 88 4e f2
    39093909    cmp dl, 0ffh                              ; 80 fa ff
    39103910    jne short 0216dh                          ; 75 0c
    39113911    mov dx, strict word 00062h                ; ba 62 00
    39123912    mov ax, strict word 00040h                ; b8 40 00
    3913     call 02f77h                               ; e8 0d 0e
    3914     mov byte [bp-004h], al                    ; 88 46 fc
     3913    call 02f34h                               ; e8 ca 0d
     3914    mov byte [bp-006h], al                    ; 88 46 fa
    39153915    mov dx, strict word 00049h                ; ba 49 00
    39163916    mov ax, strict word 00040h                ; b8 40 00
    3917     call 02f77h                               ; e8 01 0e
     3917    call 02f34h                               ; e8 be 0d
    39183918    xor ah, ah                                ; 30 e4
    3919     call 02f50h                               ; e8 d5 0d
    3920     mov byte [bp-00eh], al                    ; 88 46 f2
     3919    call 02f0dh                               ; e8 92 0d
     3920    mov byte [bp-010h], al                    ; 88 46 f0
    39213921    cmp AL, strict byte 0ffh                  ; 3c ff
    3922     je near 023c7h                            ; 0f 84 43 02
    3923     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     3922    je near 02384h                            ; 0f 84 00 02
     3923    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    39243924    lea bx, [bp-018h]                         ; 8d 5e e8
    39253925    lea dx, [bp-016h]                         ; 8d 56 ea
     
    39333933    mov dx, 00084h                            ; ba 84 00
    39343934    mov ax, strict word 00040h                ; b8 40 00
    3935     call 02f77h                               ; e8 cc 0d
     3935    call 02f34h                               ; e8 89 0d
    39363936    xor ah, ah                                ; 30 e4
    39373937    inc ax                                    ; 40
     
    39393939    mov dx, strict word 0004ah                ; ba 4a 00
    39403940    mov ax, strict word 00040h                ; b8 40 00
    3941     call 02f93h                               ; e8 d9 0d
     3941    call 02f50h                               ; e8 96 0d
    39423942    mov word [bp-012h], ax                    ; 89 46 ee
    39433943    mov al, byte [bp-00ch]                    ; 8a 46 f4
    3944     cmp AL, strict byte 009h                  ; 3c 09
    3945     jc short 021d0h                           ; 72 0c
    3946     jbe short 021f7h                          ; 76 31
     3944    cmp AL, strict byte 008h                  ; 3c 08
     3945    jc short 021d2h                           ; 72 0e
     3946    jbe short 021dah                          ; 76 14
    39473947    cmp AL, strict byte 00dh                  ; 3c 0d
    3948     je short 021eah                           ; 74 20
     3948    je short 021e8h                           ; 74 1e
    39493949    cmp AL, strict byte 00ah                  ; 3c 0a
    3950     je short 021f1h                           ; 74 23
    3951     jmp short 02238h                          ; eb 68
    3952     cmp AL, strict byte 008h                  ; 3c 08
    3953     je short 021dch                           ; 74 08
     3950    je near 022dah                            ; 0f 84 0a 01
     3951    jmp short 021efh                          ; eb 1d
    39543952    cmp AL, strict byte 007h                  ; 3c 07
    3955     je near 02314h                            ; 0f 84 3a 01
    3956     jmp short 02238h                          ; eb 5c
     3953    je near 022ddh                            ; 0f 84 05 01
     3954    jmp short 021efh                          ; eb 15
    39573955    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3958     jbe near 02314h                           ; 0f 86 30 01
     3956    jbe near 022ddh                           ; 0f 86 fb 00
    39593957    dec byte [bp-008h]                        ; fe 4e f8
    3960     jmp near 02314h                           ; e9 2a 01
     3958    jmp near 022ddh                           ; e9 f5 00
    39613959    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    3962     jmp near 02314h                           ; e9 23 01
    3963     inc byte [bp-00ah]                        ; fe 46 f6
    3964     jmp near 02314h                           ; e9 1d 01
    3965     movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
    3966     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    3967     movzx si, byte [bp-004h]                  ; 0f b6 76 fc
    3968     mov dx, si                                ; 89 f2
    3969     mov ax, strict word 00020h                ; b8 20 00
    3970     call 02149h                               ; e8 3e ff
    3971     lea bx, [bp-018h]                         ; 8d 5e e8
    3972     lea dx, [bp-016h]                         ; 8d 56 ea
    3973     mov ax, si                                ; 89 f0
    3974     call 00a88h                               ; e8 72 e8
    3975     mov al, byte [bp-018h]                    ; 8a 46 e8
    3976     mov byte [bp-008h], al                    ; 88 46 f8
    3977     mov ax, word [bp-018h]                    ; 8b 46 e8
    3978     xor al, al                                ; 30 c0
    3979     shr ax, 008h                              ; c1 e8 08
    3980     mov byte [bp-00ah], al                    ; 88 46 f6
    3981     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3982     mov bx, strict word 00008h                ; bb 08 00
    3983     cwd                                       ; 99
    3984     idiv bx                                   ; f7 fb
    3985     test dx, dx                               ; 85 d2
    3986     je short 021f7h                           ; 74 c2
    3987     jmp near 02314h                           ; e9 dc 00
    3988     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     3960    jmp near 022ddh                           ; e9 ee 00
     3961    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    39893962    mov si, bx                                ; 89 de
    39903963    sal si, 003h                              ; c1 e6 03
    39913964    cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
    3992     jne short 02293h                          ; 75 4b
     3965    jne short 0224ch                          ; 75 4d
    39933966    mov ax, word [bp-012h]                    ; 8b 46 ee
    39943967    imul ax, word [bp-014h]                   ; 0f af 46 ec
    39953968    add ax, ax                                ; 01 c0
    39963969    or AL, strict byte 0ffh                   ; 0c ff
    3997     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    3998     inc ax                                    ; 40
    3999     imul dx, ax                               ; 0f af d0
    4000     movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
    4001     imul cx, word [bp-012h]                   ; 0f af 4e ee
    4002     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    4003     add cx, bx                                ; 01 d9
    4004     add cx, cx                                ; 01 c9
    4005     add cx, dx                                ; 01 d1
     3970    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     3971    mov cx, ax                                ; 89 c1
     3972    inc cx                                    ; 41
     3973    imul cx, dx                               ; 0f af ca
     3974    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3975    imul ax, word [bp-012h]                   ; 0f af 46 ee
     3976    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     3977    add ax, dx                                ; 01 d0
     3978    add ax, ax                                ; 01 c0
     3979    add cx, ax                                ; 01 c1
    40063980    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    40073981    mov ax, word [si+04833h]                  ; 8b 84 33 48
    40083982    mov dx, cx                                ; 89 ca
    4009     call 02f85h                               ; e8 0b 0d
    4010     cmp byte [bp-010h], 003h                  ; 80 7e f0 03
    4011     jne near 02311h                           ; 0f 85 8f 00
    4012     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     3983    call 02f42h                               ; e8 0f 0d
     3984    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
     3985    jne near 022cah                           ; 0f 85 8f 00
     3986    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    40133987    mov dx, cx                                ; 89 ca
    40143988    inc dx                                    ; 42
    40153989    mov ax, word [si+04833h]                  ; 8b 84 33 48
    4016     call 02f85h                               ; e8 f5 0c
    4017     jmp near 02311h                           ; e9 7e 00
     3990    call 02f42h                               ; e8 f9 0c
     3991    jmp near 022cah                           ; e9 7e 00
    40183992    movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
    40193993    sal bx, 006h                              ; c1 e3 06
     
    40223996    mov al, byte [si+04831h]                  ; 8a 84 31 48
    40233997    cmp AL, strict byte 003h                  ; 3c 03
    4024     jc short 022b7h                           ; 72 0c
    4025     jbe short 022bdh                          ; 76 10
     3998    jc short 02270h                           ; 72 0c
     3999    jbe short 02276h                          ; 76 10
    40264000    cmp AL, strict byte 005h                  ; 3c 05
    4027     je short 022f9h                           ; 74 48
     4001    je short 022b2h                           ; 74 48
    40284002    cmp AL, strict byte 004h                  ; 3c 04
    4029     je short 022bdh                           ; 74 08
    4030     jmp short 02311h                          ; eb 5a
     4003    je short 02276h                           ; 74 08
     4004    jmp short 022cah                          ; eb 5a
    40314005    cmp AL, strict byte 002h                  ; 3c 02
    4032     je short 022dbh                           ; 74 20
    4033     jmp short 02311h                          ; eb 54
     4006    je short 02294h                           ; 74 20
     4007    jmp short 022cah                          ; eb 54
    40344008    movzx ax, ah                              ; 0f b6 c4
    40354009    push ax                                   ; 50
     
    40384012    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
    40394013    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    4040     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4014    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40414015    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4042     call 01a6eh                               ; e8 95 f7
    4043     jmp short 02311h                          ; eb 36
     4016    call 01a6eh                               ; e8 dc f7
     4017    jmp short 022cah                          ; eb 36
    40444018    movzx ax, dl                              ; 0f b6 c2
    40454019    push ax                                   ; 50
     
    40484022    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
    40494023    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    4050     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4024    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40514025    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4052     call 01b59h                               ; e8 62 f8
    4053     jmp short 02311h                          ; eb 18
     4026    call 01b59h                               ; e8 a9 f8
     4027    jmp short 022cah                          ; eb 18
    40544028    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    40554029    push ax                                   ; 50
    40564030    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
    40574031    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    4058     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4032    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40594033    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4060     call 01c77h                               ; e8 66 f9
     4034    call 01c77h                               ; e8 ad f9
    40614035    inc byte [bp-008h]                        ; fe 46 f8
    40624036    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    40634037    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4064     jne short 02324h                          ; 75 07
     4038    jne short 022ddh                          ; 75 07
    40654039    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    40664040    inc byte [bp-00ah]                        ; fe 46 f6
    40674041    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    40684042    cmp ax, word [bp-014h]                    ; 3b 46 ec
    4069     jne near 023abh                           ; 0f 85 7c 00
    4070     movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
     4043    jne near 02368h                           ; 0f 85 80 00
     4044    movzx si, byte [bp-010h]                  ; 0f b6 76 f0
    40714045    sal si, 003h                              ; c1 e6 03
    4072     mov bl, byte [bp-014h]                    ; 8a 5e ec
     4046    mov bh, byte [bp-014h]                    ; 8a 7e ec
     4047    db  0feh, 0cfh
     4048    ; dec bh                                    ; fe cf
     4049    mov bl, byte [bp-012h]                    ; 8a 5e ee
    40734050    db  0feh, 0cbh
    40744051    ; dec bl                                    ; fe cb
    4075     mov bh, byte [bp-012h]                    ; 8a 7e ee
    4076     db  0feh, 0cfh
    4077     ; dec bh                                    ; fe cf
    40784052    cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
    4079     jne short 0238dh                          ; 75 46
     4053    jne short 0234ah                          ; 75 4a
    40804054    mov ax, word [bp-012h]                    ; 8b 46 ee
    40814055    imul ax, word [bp-014h]                   ; 0f af 46 ec
    40824056    add ax, ax                                ; 01 c0
    40834057    or AL, strict byte 0ffh                   ; 0c ff
    4084     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    4085     inc ax                                    ; 40
    4086     imul dx, ax                               ; 0f af d0
     4058    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4059    mov cx, ax                                ; 89 c1
     4060    inc cx                                    ; 41
     4061    imul cx, dx                               ; 0f af ca
    40874062    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    40884063    dec ax                                    ; 48
    40894064    imul ax, word [bp-012h]                   ; 0f af 46 ee
    4090     movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    4091     add cx, ax                                ; 01 c1
    4092     add cx, cx                                ; 01 c9
    4093     add dx, cx                                ; 01 ca
     4065    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     4066    add ax, dx                                ; 01 d0
     4067    add ax, ax                                ; 01 c0
     4068    mov dx, cx                                ; 89 ca
     4069    add dx, ax                                ; 01 c2
    40944070    inc dx                                    ; 42
    40954071    mov ax, word [si+04833h]                  ; 8b 84 33 48
    4096     call 02f77h                               ; e8 02 0c
     4072    call 02f34h                               ; e8 02 0c
    40974073    push strict byte 00001h                   ; 6a 01
    4098     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     4074    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4075    push dx                                   ; 52
     4076    movzx dx, bl                              ; 0f b6 d3
    40994077    push dx                                   ; 52
    41004078    movzx dx, bh                              ; 0f b6 d7
    4101     push dx                                   ; 52
    4102     movzx dx, bl                              ; 0f b6 d3
    41034079    push dx                                   ; 52
    41044080    movzx dx, al                              ; 0f b6 d0
    41054081    xor cx, cx                                ; 31 c9
    41064082    xor bx, bx                                ; 31 db
    4107     jmp short 023a2h                          ; eb 15
     4083    jmp short 0235fh                          ; eb 15
    41084084    push strict byte 00001h                   ; 6a 01
    4109     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     4085    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     4086    push ax                                   ; 50
     4087    movzx ax, bl                              ; 0f b6 c3
    41104088    push ax                                   ; 50
    41114089    movzx ax, bh                              ; 0f b6 c7
    4112     push ax                                   ; 50
    4113     movzx ax, bl                              ; 0f b6 c3
    41144090    push ax                                   ; 50
    41154091    xor cx, cx                                ; 31 c9
     
    41174093    xor dx, dx                                ; 31 d2
    41184094    mov ax, strict word 00001h                ; b8 01 00
    4119     call 01568h                               ; e8 c0 f1
     4095    call 01568h                               ; e8 03 f2
    41204096    dec byte [bp-00ah]                        ; fe 4e f6
    41214097    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     
    41254101    add word [bp-018h], ax                    ; 01 46 e8
    41264102    mov dx, word [bp-018h]                    ; 8b 56 e8
    4127     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4128     call 00e5eh                               ; e8 97 ea
     4103    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     4104    call 00e5eh                               ; e8 da ea
    41294105    lea sp, [bp-002h]                         ; 8d 66 fe
    41304106    pop si                                    ; 5e
    41314107    pop bp                                    ; 5d
    41324108    retn                                      ; c3
    4133 get_font_access_:                            ; 0xc23cd LB 0x2c
     4109get_font_access_:                            ; 0xc238a LB 0x2c
    41344110    push bp                                   ; 55
    41354111    mov bp, sp                                ; 89 e5
     
    41554131    pop bp                                    ; 5d
    41564132    retn                                      ; c3
    4157 release_font_access_:                        ; 0xc23f9 LB 0x3c
     4133release_font_access_:                        ; 0xc23b6 LB 0x3c
    41584134    push bp                                   ; 55
    41594135    mov bp, sp                                ; 89 e5
     
    41874163    pop bp                                    ; 5d
    41884164    retn                                      ; c3
    4189 set_scan_lines_:                             ; 0xc2435 LB 0xbf
     4165set_scan_lines_:                             ; 0xc23f2 LB 0xbf
    41904166    push bp                                   ; 55
    41914167    mov bp, sp                                ; 89 e5
     
    41984174    mov dx, strict word 00063h                ; ba 63 00
    41994175    mov ax, strict word 00040h                ; b8 40 00
    4200     call 02f93h                               ; e8 4b 0b
     4176    call 02f50h                               ; e8 4b 0b
    42014177    mov dx, ax                                ; 89 c2
    42024178    mov si, ax                                ; 89 c6
     
    42154191    out DX, AL                                ; ee
    42164192    cmp bl, 008h                              ; 80 fb 08
    4217     jne short 0246ch                          ; 75 08
     4193    jne short 02429h                          ; 75 08
    42184194    mov dx, strict word 00007h                ; ba 07 00
    42194195    mov ax, strict word 00006h                ; b8 06 00
    4220     jmp short 02479h                          ; eb 0d
     4196    jmp short 02436h                          ; eb 0d
    42214197    mov al, bl                                ; 88 d8
    42224198    sub AL, strict byte 003h                  ; 2c 03
     
    42254201    sub AL, strict byte 004h                  ; 2c 04
    42264202    xor ah, ah                                ; 30 e4
    4227     call 00dbah                               ; e8 3e e9
     4203    call 00dbah                               ; e8 81 e9
    42284204    movzx di, bl                              ; 0f b6 fb
    42294205    mov bx, di                                ; 89 fb
    42304206    mov dx, 00085h                            ; ba 85 00
    42314207    mov ax, strict word 00040h                ; b8 40 00
    4232     call 02fa1h                               ; e8 17 0b
     4208    call 02f5eh                               ; e8 17 0b
    42334209    mov AL, strict byte 012h                  ; b0 12
    42344210    mov dx, si                                ; 89 f2
     
    42654241    mov dx, 00084h                            ; ba 84 00
    42664242    mov ax, strict word 00040h                ; b8 40 00
    4267     call 02f85h                               ; e8 b7 0a
     4243    call 02f42h                               ; e8 b7 0a
    42684244    mov dx, strict word 0004ah                ; ba 4a 00
    42694245    mov ax, strict word 00040h                ; b8 40 00
    4270     call 02f93h                               ; e8 bc 0a
     4246    call 02f50h                               ; e8 bc 0a
    42714247    movzx dx, cl                              ; 0f b6 d1
    42724248    mov bx, ax                                ; 89 c3
     
    42754251    mov dx, strict word 0004ch                ; ba 4c 00
    42764252    mov ax, strict word 00040h                ; b8 40 00
    4277     call 02fa1h                               ; e8 b7 0a
     4253    call 02f5eh                               ; e8 b7 0a
    42784254    lea sp, [bp-00ah]                         ; 8d 66 f6
    42794255    pop di                                    ; 5f
     
    42844260    pop bp                                    ; 5d
    42854261    retn                                      ; c3
    4286 biosfn_load_text_user_pat_:                  ; 0xc24f4 LB 0x7d
     4262biosfn_load_text_user_pat_:                  ; 0xc24b1 LB 0x7d
    42874263    push bp                                   ; 55
    42884264    mov bp, sp                                ; 89 e5
     
    42944270    mov word [bp-008h], bx                    ; 89 5e f8
    42954271    mov word [bp-00ah], cx                    ; 89 4e f6
    4296     call 023cdh                               ; e8 c2 fe
     4272    call 0238ah                               ; e8 c2 fe
    42974273    mov al, byte [bp+006h]                    ; 8a 46 06
    42984274    and AL, strict byte 003h                  ; 24 03
     
    43084284    xor bx, bx                                ; 31 db
    43094285    cmp bx, word [bp-00ah]                    ; 3b 5e f6
    4310     jnc short 02558h                          ; 73 2b
     4286    jnc short 02515h                          ; 73 2b
    43114287    movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
    43124288    mov si, bx                                ; 89 de
     
    43214297    mov es, ax                                ; 8e c0
    43224298    cld                                       ; fc
    4323     jcxz 02555h                               ; e3 06
     4299    jcxz 02512h                               ; e3 06
    43244300    push DS                                   ; 1e
    43254301    mov ds, dx                                ; 8e da
     
    43274303    pop DS                                    ; 1f
    43284304    inc bx                                    ; 43
    4329     jmp short 02528h                          ; eb d0
    4330     call 023f9h                               ; e8 9e fe
     4305    jmp short 024e5h                          ; eb d0
     4306    call 023b6h                               ; e8 9e fe
    43314307    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
    4332     jc short 02568h                           ; 72 07
     4308    jc short 02525h                           ; 72 07
    43334309    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    4334     call 02435h                               ; e8 cd fe
     4310    call 023f2h                               ; e8 cd fe
    43354311    lea sp, [bp-004h]                         ; 8d 66 fc
    43364312    pop di                                    ; 5f
     
    43384314    pop bp                                    ; 5d
    43394315    retn 00006h                               ; c2 06 00
    4340 biosfn_load_text_8_14_pat_:                  ; 0xc2571 LB 0x70
     4316biosfn_load_text_8_14_pat_:                  ; 0xc252e LB 0x70
    43414317    push bp                                   ; 55
    43424318    mov bp, sp                                ; 89 e5
     
    43484324    push ax                                   ; 50
    43494325    mov byte [bp-00ah], al                    ; 88 46 f6
    4350     call 023cdh                               ; e8 4d fe
     4326    call 0238ah                               ; e8 4d fe
    43514327    mov al, dl                                ; 88 d0
    43524328    and AL, strict byte 003h                  ; 24 03
     
    43614337    mov word [bp-00ch], bx                    ; 89 5e f4
    43624338    xor bx, bx                                ; 31 db
    4363     jmp short 025a3h                          ; eb 06
     4339    jmp short 02560h                          ; eb 06
    43644340    cmp bx, 00100h                            ; 81 fb 00 01
    4365     jnc short 025c9h                          ; 73 26
     4341    jnc short 02586h                          ; 73 26
    43664342    imul si, bx, strict byte 0000eh           ; 6b f3 0e
    43674343    mov di, bx                                ; 89 df
     
    43744350    mov es, ax                                ; 8e c0
    43754351    cld                                       ; fc
    4376     jcxz 025c6h                               ; e3 06
     4352    jcxz 02583h                               ; e3 06
    43774353    push DS                                   ; 1e
    43784354    mov ds, dx                                ; 8e da
     
    43804356    pop DS                                    ; 1f
    43814357    inc bx                                    ; 43
    4382     jmp short 0259dh                          ; eb d4
    4383     call 023f9h                               ; e8 2d fe
     4358    jmp short 0255ah                          ; eb d4
     4359    call 023b6h                               ; e8 2d fe
    43844360    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4385     jc short 025d8h                           ; 72 06
     4361    jc short 02595h                           ; 72 06
    43864362    mov ax, strict word 0000eh                ; b8 0e 00
    4387     call 02435h                               ; e8 5d fe
     4363    call 023f2h                               ; e8 5d fe
    43884364    lea sp, [bp-008h]                         ; 8d 66 f8
    43894365    pop di                                    ; 5f
     
    43934369    pop bp                                    ; 5d
    43944370    retn                                      ; c3
    4395 biosfn_load_text_8_8_pat_:                   ; 0xc25e1 LB 0x72
     4371biosfn_load_text_8_8_pat_:                   ; 0xc259e LB 0x72
    43964372    push bp                                   ; 55
    43974373    mov bp, sp                                ; 89 e5
     
    44034379    push ax                                   ; 50
    44044380    mov byte [bp-00ah], al                    ; 88 46 f6
    4405     call 023cdh                               ; e8 dd fd
     4381    call 0238ah                               ; e8 dd fd
    44064382    mov al, dl                                ; 88 d0
    44074383    and AL, strict byte 003h                  ; 24 03
     
    44164392    mov word [bp-00ch], bx                    ; 89 5e f4
    44174393    xor bx, bx                                ; 31 db
    4418     jmp short 02613h                          ; eb 06
     4394    jmp short 025d0h                          ; eb 06
    44194395    cmp bx, 00100h                            ; 81 fb 00 01
    4420     jnc short 0263bh                          ; 73 28
     4396    jnc short 025f8h                          ; 73 28
    44214397    mov si, bx                                ; 89 de
    44224398    sal si, 003h                              ; c1 e6 03
     
    44304406    mov es, ax                                ; 8e c0
    44314407    cld                                       ; fc
    4432     jcxz 02638h                               ; e3 06
     4408    jcxz 025f5h                               ; e3 06
    44334409    push DS                                   ; 1e
    44344410    mov ds, dx                                ; 8e da
     
    44364412    pop DS                                    ; 1f
    44374413    inc bx                                    ; 43
    4438     jmp short 0260dh                          ; eb d2
    4439     call 023f9h                               ; e8 bb fd
     4414    jmp short 025cah                          ; eb d2
     4415    call 023b6h                               ; e8 bb fd
    44404416    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4441     jc short 0264ah                           ; 72 06
     4417    jc short 02607h                           ; 72 06
    44424418    mov ax, strict word 00008h                ; b8 08 00
    4443     call 02435h                               ; e8 eb fd
     4419    call 023f2h                               ; e8 eb fd
    44444420    lea sp, [bp-008h]                         ; 8d 66 f8
    44454421    pop di                                    ; 5f
     
    44494425    pop bp                                    ; 5d
    44504426    retn                                      ; c3
    4451 biosfn_load_text_8_16_pat_:                  ; 0xc2653 LB 0x72
     4427biosfn_load_text_8_16_pat_:                  ; 0xc2610 LB 0x72
    44524428    push bp                                   ; 55
    44534429    mov bp, sp                                ; 89 e5
     
    44594435    push ax                                   ; 50
    44604436    mov byte [bp-00ah], al                    ; 88 46 f6
    4461     call 023cdh                               ; e8 6b fd
     4437    call 0238ah                               ; e8 6b fd
    44624438    mov al, dl                                ; 88 d0
    44634439    and AL, strict byte 003h                  ; 24 03
     
    44724448    mov word [bp-00ch], bx                    ; 89 5e f4
    44734449    xor bx, bx                                ; 31 db
    4474     jmp short 02685h                          ; eb 06
     4450    jmp short 02642h                          ; eb 06
    44754451    cmp bx, 00100h                            ; 81 fb 00 01
    4476     jnc short 026adh                          ; 73 28
     4452    jnc short 0266ah                          ; 73 28
    44774453    mov si, bx                                ; 89 de
    44784454    sal si, 004h                              ; c1 e6 04
     
    44864462    mov es, ax                                ; 8e c0
    44874463    cld                                       ; fc
    4488     jcxz 026aah                               ; e3 06
     4464    jcxz 02667h                               ; e3 06
    44894465    push DS                                   ; 1e
    44904466    mov ds, dx                                ; 8e da
     
    44924468    pop DS                                    ; 1f
    44934469    inc bx                                    ; 43
    4494     jmp short 0267fh                          ; eb d2
    4495     call 023f9h                               ; e8 49 fd
     4470    jmp short 0263ch                          ; eb d2
     4471    call 023b6h                               ; e8 49 fd
    44964472    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4497     jc short 026bch                           ; 72 06
     4473    jc short 02679h                           ; 72 06
    44984474    mov ax, strict word 00010h                ; b8 10 00
    4499     call 02435h                               ; e8 79 fd
     4475    call 023f2h                               ; e8 79 fd
    45004476    lea sp, [bp-008h]                         ; 8d 66 f8
    45014477    pop di                                    ; 5f
     
    45054481    pop bp                                    ; 5d
    45064482    retn                                      ; c3
    4507 biosfn_load_gfx_8_8_chars_:                  ; 0xc26c5 LB 0x5
     4483biosfn_load_gfx_8_8_chars_:                  ; 0xc2682 LB 0x5
    45084484    push bp                                   ; 55
    45094485    mov bp, sp                                ; 89 e5
    45104486    pop bp                                    ; 5d
    45114487    retn                                      ; c3
    4512 biosfn_load_gfx_user_chars_:                 ; 0xc26ca LB 0x7
     4488biosfn_load_gfx_user_chars_:                 ; 0xc2687 LB 0x7
    45134489    push bp                                   ; 55
    45144490    mov bp, sp                                ; 89 e5
    45154491    pop bp                                    ; 5d
    45164492    retn 00002h                               ; c2 02 00
    4517 biosfn_load_gfx_8_14_chars_:                 ; 0xc26d1 LB 0x5
     4493biosfn_load_gfx_8_14_chars_:                 ; 0xc268e LB 0x5
    45184494    push bp                                   ; 55
    45194495    mov bp, sp                                ; 89 e5
    45204496    pop bp                                    ; 5d
    45214497    retn                                      ; c3
    4522 biosfn_load_gfx_8_8_dd_chars_:               ; 0xc26d6 LB 0x5
     4498biosfn_load_gfx_8_8_dd_chars_:               ; 0xc2693 LB 0x5
    45234499    push bp                                   ; 55
    45244500    mov bp, sp                                ; 89 e5
    45254501    pop bp                                    ; 5d
    45264502    retn                                      ; c3
    4527 biosfn_load_gfx_8_16_chars_:                 ; 0xc26db LB 0x5
     4503biosfn_load_gfx_8_16_chars_:                 ; 0xc2698 LB 0x5
    45284504    push bp                                   ; 55
    45294505    mov bp, sp                                ; 89 e5
    45304506    pop bp                                    ; 5d
    45314507    retn                                      ; c3
    4532 biosfn_alternate_prtsc_:                     ; 0xc26e0 LB 0x5
     4508biosfn_alternate_prtsc_:                     ; 0xc269d LB 0x5
    45334509    push bp                                   ; 55
    45344510    mov bp, sp                                ; 89 e5
    45354511    pop bp                                    ; 5d
    45364512    retn                                      ; c3
    4537 biosfn_switch_video_interface_:              ; 0xc26e5 LB 0x5
     4513biosfn_switch_video_interface_:              ; 0xc26a2 LB 0x5
    45384514    push bp                                   ; 55
    45394515    mov bp, sp                                ; 89 e5
    45404516    pop bp                                    ; 5d
    45414517    retn                                      ; c3
    4542 biosfn_enable_video_refresh_control_:        ; 0xc26ea LB 0x5
     4518biosfn_enable_video_refresh_control_:        ; 0xc26a7 LB 0x5
    45434519    push bp                                   ; 55
    45444520    mov bp, sp                                ; 89 e5
    45454521    pop bp                                    ; 5d
    45464522    retn                                      ; c3
    4547 biosfn_write_string_:                        ; 0xc26ef LB 0x9c
     4523biosfn_write_string_:                        ; 0xc26ac LB 0x9c
    45484524    push bp                                   ; 55
    45494525    mov bp, sp                                ; 89 e5
     
    45594535    lea bx, [bp-00eh]                         ; 8d 5e f2
    45604536    lea dx, [bp-00ch]                         ; 8d 56 f4
    4561     call 00a88h                               ; e8 77 e3
     4537    call 00a88h                               ; e8 ba e3
    45624538    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
    4563     jne short 02728h                          ; 75 11
     4539    jne short 026e5h                          ; 75 11
    45644540    mov al, byte [bp-00eh]                    ; 8a 46 f2
    45654541    mov byte [bp+006h], al                    ; 88 46 06
     
    45734549    add dx, ax                                ; 01 c2
    45744550    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4575     call 00e5eh                               ; e8 22 e7
     4551    call 00e5eh                               ; e8 65 e7
    45764552    dec si                                    ; 4e
    45774553    cmp si, strict byte 0ffffh                ; 83 fe ff
    4578     je short 02772h                           ; 74 30
     4554    je short 0272fh                           ; 74 30
    45794555    mov dx, di                                ; 89 fa
    45804556    inc di                                    ; 47
    45814557    mov ax, word [bp+008h]                    ; 8b 46 08
    4582     call 02f77h                               ; e8 2c 08
     4558    call 02f34h                               ; e8 2c 08
    45834559    mov cl, al                                ; 88 c1
    45844560    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    4585     je short 0275fh                           ; 74 0c
     4561    je short 0271ch                           ; 74 0c
    45864562    mov dx, di                                ; 89 fa
    45874563    inc di                                    ; 47
    45884564    mov ax, word [bp+008h]                    ; 8b 46 08
    4589     call 02f77h                               ; e8 1b 08
     4565    call 02f34h                               ; e8 1b 08
    45904566    mov byte [bp-006h], al                    ; 88 46 fa
    45914567    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     
    45934569    movzx ax, cl                              ; 0f b6 c1
    45944570    mov cx, strict word 00003h                ; b9 03 00
    4595     call 02149h                               ; e8 d9 f9
    4596     jmp short 0273ch                          ; eb ca
     4571    call 02149h                               ; e8 1c fa
     4572    jmp short 026f9h                          ; eb ca
    45974573    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    4598     jne short 02782h                          ; 75 0a
     4574    jne short 0273fh                          ; 75 0a
    45994575    mov dx, word [bp-00eh]                    ; 8b 56 f2
    46004576    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4601     call 00e5eh                               ; e8 dc e6
     4577    call 00e5eh                               ; e8 1f e7
    46024578    lea sp, [bp-004h]                         ; 8d 66 fc
    46034579    pop di                                    ; 5f
     
    46054581    pop bp                                    ; 5d
    46064582    retn 00008h                               ; c2 08 00
    4607 biosfn_read_state_info_:                     ; 0xc278b LB 0x101
     4583biosfn_read_state_info_:                     ; 0xc2748 LB 0x101
    46084584    push bp                                   ; 55
    46094585    mov bp, sp                                ; 89 e5
     
    46174593    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46184594    mov ax, word [bp-008h]                    ; 8b 46 f8
    4619     call 02fc1h                               ; e8 20 08
     4595    call 02f7eh                               ; e8 20 08
    46204596    mov di, word [bp-00ah]                    ; 8b 7e f6
    46214597    add di, strict byte 00004h                ; 83 c7 04
     
    46254601    mov es, [bp-008h]                         ; 8e 46 f8
    46264602    cld                                       ; fc
    4627     jcxz 027bch                               ; e3 06
     4603    jcxz 02779h                               ; e3 06
    46284604    push DS                                   ; 1e
    46294605    mov ds, dx                                ; 8e da
     
    46374613    mov es, [bp-008h]                         ; 8e 46 f8
    46384614    cld                                       ; fc
    4639     jcxz 027d7h                               ; e3 06
     4615    jcxz 02794h                               ; e3 06
    46404616    push DS                                   ; 1e
    46414617    mov ds, dx                                ; 8e da
     
    46444620    mov dx, 0008ah                            ; ba 8a 00
    46454621    mov ax, strict word 00040h                ; b8 40 00
    4646     call 02f77h                               ; e8 97 07
     4622    call 02f34h                               ; e8 97 07
    46474623    movzx bx, al                              ; 0f b6 d8
    46484624    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46494625    add dx, strict byte 00025h                ; 83 c2 25
    46504626    mov ax, word [bp-008h]                    ; 8b 46 f8
    4651     call 02f85h                               ; e8 96 07
     4627    call 02f42h                               ; e8 96 07
    46524628    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46534629    add dx, strict byte 00026h                ; 83 c2 26
    46544630    xor bx, bx                                ; 31 db
    46554631    mov ax, word [bp-008h]                    ; 8b 46 f8
    4656     call 02f85h                               ; e8 88 07
     4632    call 02f42h                               ; e8 88 07
    46574633    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46584634    add dx, strict byte 00027h                ; 83 c2 27
    46594635    mov bx, strict word 00010h                ; bb 10 00
    46604636    mov ax, word [bp-008h]                    ; 8b 46 f8
    4661     call 02f85h                               ; e8 79 07
     4637    call 02f42h                               ; e8 79 07
    46624638    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46634639    add dx, strict byte 00028h                ; 83 c2 28
    46644640    xor bx, bx                                ; 31 db
    46654641    mov ax, word [bp-008h]                    ; 8b 46 f8
    4666     call 02f85h                               ; e8 6b 07
     4642    call 02f42h                               ; e8 6b 07
    46674643    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46684644    add dx, strict byte 00029h                ; 83 c2 29
    46694645    mov bx, strict word 00008h                ; bb 08 00
    46704646    mov ax, word [bp-008h]                    ; 8b 46 f8
    4671     call 02f85h                               ; e8 5c 07
     4647    call 02f42h                               ; e8 5c 07
    46724648    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46734649    add dx, strict byte 0002ah                ; 83 c2 2a
    46744650    mov bx, strict word 00002h                ; bb 02 00
    46754651    mov ax, word [bp-008h]                    ; 8b 46 f8
    4676     call 02f85h                               ; e8 4d 07
     4652    call 02f42h                               ; e8 4d 07
    46774653    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46784654    add dx, strict byte 0002bh                ; 83 c2 2b
    46794655    xor bx, bx                                ; 31 db
    46804656    mov ax, word [bp-008h]                    ; 8b 46 f8
    4681     call 02f85h                               ; e8 3f 07
     4657    call 02f42h                               ; e8 3f 07
    46824658    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46834659    add dx, strict byte 0002ch                ; 83 c2 2c
    46844660    xor bx, bx                                ; 31 db
    46854661    mov ax, word [bp-008h]                    ; 8b 46 f8
    4686     call 02f85h                               ; e8 31 07
     4662    call 02f42h                               ; e8 31 07
    46874663    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46884664    add dx, strict byte 00031h                ; 83 c2 31
    46894665    mov bx, strict word 00003h                ; bb 03 00
    46904666    mov ax, word [bp-008h]                    ; 8b 46 f8
    4691     call 02f85h                               ; e8 22 07
     4667    call 02f42h                               ; e8 22 07
    46924668    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46934669    add dx, strict byte 00032h                ; 83 c2 32
    46944670    xor bx, bx                                ; 31 db
    46954671    mov ax, word [bp-008h]                    ; 8b 46 f8
    4696     call 02f85h                               ; e8 14 07
     4672    call 02f42h                               ; e8 14 07
    46974673    mov di, word [bp-00ah]                    ; 8b 7e f6
    46984674    add di, strict byte 00033h                ; 83 c7 33
     
    47014677    mov es, [bp-008h]                         ; 8e 46 f8
    47024678    cld                                       ; fc
    4703     jcxz 02884h                               ; e3 02
     4679    jcxz 02841h                               ; e3 02
    47044680    rep stosb                                 ; f3 aa
    47054681    lea sp, [bp-006h]                         ; 8d 66 fa
     
    47094685    pop bp                                    ; 5d
    47104686    retn                                      ; c3
    4711 biosfn_read_video_state_size2_:              ; 0xc288c LB 0x23
     4687biosfn_read_video_state_size2_:              ; 0xc2849 LB 0x23
    47124688    push dx                                   ; 52
    47134689    push bp                                   ; 55
     
    47164692    xor ax, ax                                ; 31 c0
    47174693    test dl, 001h                             ; f6 c2 01
    4718     je short 0289ch                           ; 74 03
     4694    je short 02859h                           ; 74 03
    47194695    mov ax, strict word 00046h                ; b8 46 00
    47204696    test dl, 002h                             ; f6 c2 02
    4721     je short 028a4h                           ; 74 03
     4697    je short 02861h                           ; 74 03
    47224698    add ax, strict word 0002ah                ; 05 2a 00
    47234699    test dl, 004h                             ; f6 c2 04
    4724     je short 028ach                           ; 74 03
     4700    je short 02869h                           ; 74 03
    47254701    add ax, 00304h                            ; 05 04 03
    47264702    pop bp                                    ; 5d
    47274703    pop dx                                    ; 5a
    47284704    retn                                      ; c3
    4729 vga_get_video_state_size_:                   ; 0xc28af LB 0x12
     4705vga_get_video_state_size_:                   ; 0xc286c LB 0x12
    47304706    push bp                                   ; 55
    47314707    mov bp, sp                                ; 89 e5
    47324708    push bx                                   ; 53
    47334709    mov bx, dx                                ; 89 d3
    4734     call 0288ch                               ; e8 d4 ff
     4710    call 02849h                               ; e8 d4 ff
    47354711    mov word [ss:bx], ax                      ; 36 89 07
    47364712    lea sp, [bp-002h]                         ; 8d 66 fe
     
    47384714    pop bp                                    ; 5d
    47394715    retn                                      ; c3
    4740 biosfn_save_video_state_:                    ; 0xc28c1 LB 0x369
     4716biosfn_save_video_state_:                    ; 0xc287e LB 0x369
    47414717    push bp                                   ; 55
    47424718    mov bp, sp                                ; 89 e5
     
    47514727    mov dx, strict word 00063h                ; ba 63 00
    47524728    mov ax, strict word 00040h                ; b8 40 00
    4753     call 02f93h                               ; e8 bc 06
     4729    call 02f50h                               ; e8 bc 06
    47544730    mov di, ax                                ; 89 c7
    47554731    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    4756     je near 02a44h                            ; 0f 84 63 01
     4732    je near 02a01h                            ; 0f 84 63 01
    47574733    mov dx, 003c4h                            ; ba c4 03
    47584734    in AL, DX                                 ; ec
     
    47624738    mov dx, cx                                ; 89 ca
    47634739    mov ax, si                                ; 89 f0
    4764     call 02f85h                               ; e8 94 06
     4740    call 02f42h                               ; e8 94 06
    47654741    inc cx                                    ; 41
    47664742    mov dx, di                                ; 89 fa
     
    47714747    mov dx, cx                                ; 89 ca
    47724748    mov ax, si                                ; 89 f0
    4773     call 02f85h                               ; e8 84 06
     4749    call 02f42h                               ; e8 84 06
    47744750    inc cx                                    ; 41
    47754751    mov dx, 003ceh                            ; ba ce 03
     
    47804756    mov dx, cx                                ; 89 ca
    47814757    mov ax, si                                ; 89 f0
    4782     call 02f85h                               ; e8 73 06
     4758    call 02f42h                               ; e8 73 06
    47834759    inc cx                                    ; 41
    47844760    mov dx, 003dah                            ; ba da 03
     
    47944770    mov dx, cx                                ; 89 ca
    47954771    mov ax, si                                ; 89 f0
    4796     call 02f85h                               ; e8 58 06
     4772    call 02f42h                               ; e8 58 06
    47974773    inc cx                                    ; 41
    47984774    mov dx, 003cah                            ; ba ca 03
     
    48034779    mov dx, cx                                ; 89 ca
    48044780    mov ax, si                                ; 89 f0
    4805     call 02f85h                               ; e8 47 06
     4781    call 02f42h                               ; e8 47 06
    48064782    mov ax, strict word 00001h                ; b8 01 00
    48074783    mov word [bp-00ah], ax                    ; 89 46 f6
    48084784    add cx, ax                                ; 01 c1
    4809     jmp short 0294eh                          ; eb 06
     4785    jmp short 0290bh                          ; eb 06
    48104786    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
    4811     jnbe short 0296bh                         ; 77 1d
     4787    jnbe short 02928h                         ; 77 1d
    48124788    mov al, byte [bp-00ah]                    ; 8a 46 f6
    48134789    mov dx, 003c4h                            ; ba c4 03
     
    48204796    mov dx, cx                                ; 89 ca
    48214797    mov ax, si                                ; 89 f0
    4822     call 02f85h                               ; e8 20 06
     4798    call 02f42h                               ; e8 20 06
    48234799    inc cx                                    ; 41
    48244800    inc word [bp-00ah]                        ; ff 46 f6
    4825     jmp short 02948h                          ; eb dd
     4801    jmp short 02905h                          ; eb dd
    48264802    xor al, al                                ; 30 c0
    48274803    mov dx, 003c4h                            ; ba c4 03
     
    48344810    mov dx, cx                                ; 89 ca
    48354811    mov ax, si                                ; 89 f0
    4836     call 02f85h                               ; e8 04 06
     4812    call 02f42h                               ; e8 04 06
    48374813    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    48384814    inc cx                                    ; 41
    4839     jmp short 0298fh                          ; eb 06
     4815    jmp short 0294ch                          ; eb 06
    48404816    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
    4841     jnbe short 029abh                         ; 77 1c
     4817    jnbe short 02968h                         ; 77 1c
    48424818    mov al, byte [bp-00ah]                    ; 8a 46 f6
    48434819    mov dx, di                                ; 89 fa
     
    48504826    mov dx, cx                                ; 89 ca
    48514827    mov ax, si                                ; 89 f0
    4852     call 02f85h                               ; e8 e0 05
     4828    call 02f42h                               ; e8 e0 05
    48534829    inc cx                                    ; 41
    48544830    inc word [bp-00ah]                        ; ff 46 f6
    4855     jmp short 02989h                          ; eb de
     4831    jmp short 02946h                          ; eb de
    48564832    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    4857     jmp short 029b8h                          ; eb 06
     4833    jmp short 02975h                          ; eb 06
    48584834    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
    4859     jnbe short 029e1h                         ; 77 29
     4835    jnbe short 0299eh                         ; 77 29
    48604836    mov dx, 003dah                            ; ba da 03
    48614837    in AL, DX                                 ; ec
     
    48744850    mov dx, cx                                ; 89 ca
    48754851    mov ax, si                                ; 89 f0
    4876     call 02f85h                               ; e8 aa 05
     4852    call 02f42h                               ; e8 aa 05
    48774853    inc cx                                    ; 41
    48784854    inc word [bp-00ah]                        ; ff 46 f6
    4879     jmp short 029b2h                          ; eb d1
     4855    jmp short 0296fh                          ; eb d1
    48804856    mov dx, 003dah                            ; ba da 03
    48814857    in AL, DX                                 ; ec
     
    48834859    ; sub ah, ah                                ; 2a e4
    48844860    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    4885     jmp short 029f4h                          ; eb 06
     4861    jmp short 029b1h                          ; eb 06
    48864862    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    4887     jnbe short 02a11h                         ; 77 1d
     4863    jnbe short 029ceh                         ; 77 1d
    48884864    mov al, byte [bp-00ah]                    ; 8a 46 f6
    48894865    mov dx, 003ceh                            ; ba ce 03
     
    48964872    mov dx, cx                                ; 89 ca
    48974873    mov ax, si                                ; 89 f0
    4898     call 02f85h                               ; e8 7a 05
     4874    call 02f42h                               ; e8 7a 05
    48994875    inc cx                                    ; 41
    49004876    inc word [bp-00ah]                        ; ff 46 f6
    4901     jmp short 029eeh                          ; eb dd
     4877    jmp short 029abh                          ; eb dd
    49024878    mov bx, di                                ; 89 fb
    49034879    mov dx, cx                                ; 89 ca
    49044880    mov ax, si                                ; 89 f0
    4905     call 02fa1h                               ; e8 87 05
     4881    call 02f5eh                               ; e8 87 05
    49064882    inc cx                                    ; 41
    49074883    inc cx                                    ; 41
     
    49094885    mov dx, cx                                ; 89 ca
    49104886    mov ax, si                                ; 89 f0
    4911     call 02f85h                               ; e8 60 05
     4887    call 02f42h                               ; e8 60 05
    49124888    inc cx                                    ; 41
    49134889    xor bx, bx                                ; 31 db
    49144890    mov dx, cx                                ; 89 ca
    49154891    mov ax, si                                ; 89 f0
    4916     call 02f85h                               ; e8 56 05
     4892    call 02f42h                               ; e8 56 05
    49174893    inc cx                                    ; 41
    49184894    xor bx, bx                                ; 31 db
    49194895    mov dx, cx                                ; 89 ca
    49204896    mov ax, si                                ; 89 f0
    4921     call 02f85h                               ; e8 4c 05
     4897    call 02f42h                               ; e8 4c 05
    49224898    inc cx                                    ; 41
    49234899    xor bx, bx                                ; 31 db
    49244900    mov dx, cx                                ; 89 ca
    49254901    mov ax, si                                ; 89 f0
    4926     call 02f85h                               ; e8 42 05
     4902    call 02f42h                               ; e8 42 05
    49274903    inc cx                                    ; 41
    49284904    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    4929     je near 02bb3h                            ; 0f 84 67 01
     4905    je near 02b70h                            ; 0f 84 67 01
    49304906    mov dx, strict word 00049h                ; ba 49 00
    49314907    mov ax, strict word 00040h                ; b8 40 00
    4932     call 02f77h                               ; e8 22 05
     4908    call 02f34h                               ; e8 22 05
    49334909    movzx bx, al                              ; 0f b6 d8
    49344910    mov dx, cx                                ; 89 ca
    49354911    mov ax, si                                ; 89 f0
    4936     call 02f85h                               ; e8 26 05
     4912    call 02f42h                               ; e8 26 05
    49374913    inc cx                                    ; 41
    49384914    mov dx, strict word 0004ah                ; ba 4a 00
    49394915    mov ax, strict word 00040h                ; b8 40 00
    4940     call 02f93h                               ; e8 2a 05
     4916    call 02f50h                               ; e8 2a 05
    49414917    mov bx, ax                                ; 89 c3
    49424918    mov dx, cx                                ; 89 ca
    49434919    mov ax, si                                ; 89 f0
    4944     call 02fa1h                               ; e8 2f 05
     4920    call 02f5eh                               ; e8 2f 05
    49454921    inc cx                                    ; 41
    49464922    inc cx                                    ; 41
    49474923    mov dx, strict word 0004ch                ; ba 4c 00
    49484924    mov ax, strict word 00040h                ; b8 40 00
    4949     call 02f93h                               ; e8 16 05
     4925    call 02f50h                               ; e8 16 05
    49504926    mov bx, ax                                ; 89 c3
    49514927    mov dx, cx                                ; 89 ca
    49524928    mov ax, si                                ; 89 f0
    4953     call 02fa1h                               ; e8 1b 05
     4929    call 02f5eh                               ; e8 1b 05
    49544930    inc cx                                    ; 41
    49554931    inc cx                                    ; 41
    49564932    mov dx, strict word 00063h                ; ba 63 00
    49574933    mov ax, strict word 00040h                ; b8 40 00
    4958     call 02f93h                               ; e8 02 05
     4934    call 02f50h                               ; e8 02 05
    49594935    mov bx, ax                                ; 89 c3
    49604936    mov dx, cx                                ; 89 ca
    49614937    mov ax, si                                ; 89 f0
    4962     call 02fa1h                               ; e8 07 05
     4938    call 02f5eh                               ; e8 07 05
    49634939    inc cx                                    ; 41
    49644940    inc cx                                    ; 41
    49654941    mov dx, 00084h                            ; ba 84 00
    49664942    mov ax, strict word 00040h                ; b8 40 00
    4967     call 02f77h                               ; e8 d2 04
     4943    call 02f34h                               ; e8 d2 04
    49684944    movzx bx, al                              ; 0f b6 d8
    49694945    mov dx, cx                                ; 89 ca
    49704946    mov ax, si                                ; 89 f0
    4971     call 02f85h                               ; e8 d6 04
     4947    call 02f42h                               ; e8 d6 04
    49724948    inc cx                                    ; 41
    49734949    mov dx, 00085h                            ; ba 85 00
    49744950    mov ax, strict word 00040h                ; b8 40 00
    4975     call 02f93h                               ; e8 da 04
     4951    call 02f50h                               ; e8 da 04
    49764952    mov bx, ax                                ; 89 c3
    49774953    mov dx, cx                                ; 89 ca
    49784954    mov ax, si                                ; 89 f0
    4979     call 02fa1h                               ; e8 df 04
     4955    call 02f5eh                               ; e8 df 04
    49804956    inc cx                                    ; 41
    49814957    inc cx                                    ; 41
    49824958    mov dx, 00087h                            ; ba 87 00
    49834959    mov ax, strict word 00040h                ; b8 40 00
    4984     call 02f77h                               ; e8 aa 04
     4960    call 02f34h                               ; e8 aa 04
    49854961    movzx bx, al                              ; 0f b6 d8
    49864962    mov dx, cx                                ; 89 ca
    49874963    mov ax, si                                ; 89 f0
    4988     call 02f85h                               ; e8 ae 04
     4964    call 02f42h                               ; e8 ae 04
    49894965    inc cx                                    ; 41
    49904966    mov dx, 00088h                            ; ba 88 00
    49914967    mov ax, strict word 00040h                ; b8 40 00
    4992     call 02f77h                               ; e8 96 04
     4968    call 02f34h                               ; e8 96 04
    49934969    movzx bx, al                              ; 0f b6 d8
    49944970    mov dx, cx                                ; 89 ca
    49954971    mov ax, si                                ; 89 f0
    4996     call 02f85h                               ; e8 9a 04
     4972    call 02f42h                               ; e8 9a 04
    49974973    inc cx                                    ; 41
    49984974    mov dx, 00089h                            ; ba 89 00
    49994975    mov ax, strict word 00040h                ; b8 40 00
    5000     call 02f77h                               ; e8 82 04
     4976    call 02f34h                               ; e8 82 04
    50014977    movzx bx, al                              ; 0f b6 d8
    50024978    mov dx, cx                                ; 89 ca
    50034979    mov ax, si                                ; 89 f0
    5004     call 02f85h                               ; e8 86 04
     4980    call 02f42h                               ; e8 86 04
    50054981    inc cx                                    ; 41
    50064982    mov dx, strict word 00060h                ; ba 60 00
    50074983    mov ax, strict word 00040h                ; b8 40 00
    5008     call 02f93h                               ; e8 8a 04
     4984    call 02f50h                               ; e8 8a 04
    50094985    mov bx, ax                                ; 89 c3
    50104986    mov dx, cx                                ; 89 ca
    50114987    mov ax, si                                ; 89 f0
    5012     call 02fa1h                               ; e8 8f 04
     4988    call 02f5eh                               ; e8 8f 04
    50134989    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    50144990    inc cx                                    ; 41
    50154991    inc cx                                    ; 41
    5016     jmp short 02b21h                          ; eb 06
     4992    jmp short 02adeh                          ; eb 06
    50174993    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5018     jnc short 02b3fh                          ; 73 1e
     4994    jnc short 02afch                          ; 73 1e
    50194995    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50204996    add dx, dx                                ; 01 d2
    50214997    add dx, strict byte 00050h                ; 83 c2 50
    50224998    mov ax, strict word 00040h                ; b8 40 00
    5023     call 02f93h                               ; e8 64 04
     4999    call 02f50h                               ; e8 64 04
    50245000    mov bx, ax                                ; 89 c3
    50255001    mov dx, cx                                ; 89 ca
    50265002    mov ax, si                                ; 89 f0
    5027     call 02fa1h                               ; e8 69 04
     5003    call 02f5eh                               ; e8 69 04
    50285004    inc cx                                    ; 41
    50295005    inc cx                                    ; 41
    50305006    inc word [bp-00ah]                        ; ff 46 f6
    5031     jmp short 02b1bh                          ; eb dc
     5007    jmp short 02ad8h                          ; eb dc
    50325008    mov dx, strict word 0004eh                ; ba 4e 00
    50335009    mov ax, strict word 00040h                ; b8 40 00
    5034     call 02f93h                               ; e8 4b 04
     5010    call 02f50h                               ; e8 4b 04
    50355011    mov bx, ax                                ; 89 c3
    50365012    mov dx, cx                                ; 89 ca
    50375013    mov ax, si                                ; 89 f0
    5038     call 02fa1h                               ; e8 50 04
     5014    call 02f5eh                               ; e8 50 04
    50395015    inc cx                                    ; 41
    50405016    inc cx                                    ; 41
    50415017    mov dx, strict word 00062h                ; ba 62 00
    50425018    mov ax, strict word 00040h                ; b8 40 00
    5043     call 02f77h                               ; e8 1b 04
     5019    call 02f34h                               ; e8 1b 04
    50445020    movzx bx, al                              ; 0f b6 d8
    50455021    mov dx, cx                                ; 89 ca
    50465022    mov ax, si                                ; 89 f0
    5047     call 02f85h                               ; e8 1f 04
     5023    call 02f42h                               ; e8 1f 04
    50485024    inc cx                                    ; 41
    50495025    mov dx, strict word 0007ch                ; ba 7c 00
    50505026    xor ax, ax                                ; 31 c0
    5051     call 02f93h                               ; e8 24 04
     5027    call 02f50h                               ; e8 24 04
    50525028    mov bx, ax                                ; 89 c3
    50535029    mov dx, cx                                ; 89 ca
    50545030    mov ax, si                                ; 89 f0
    5055     call 02fa1h                               ; e8 29 04
     5031    call 02f5eh                               ; e8 29 04
    50565032    inc cx                                    ; 41
    50575033    inc cx                                    ; 41
    50585034    mov dx, strict word 0007eh                ; ba 7e 00
    50595035    xor ax, ax                                ; 31 c0
    5060     call 02f93h                               ; e8 11 04
     5036    call 02f50h                               ; e8 11 04
    50615037    mov bx, ax                                ; 89 c3
    50625038    mov dx, cx                                ; 89 ca
    50635039    mov ax, si                                ; 89 f0
    5064     call 02fa1h                               ; e8 16 04
     5040    call 02f5eh                               ; e8 16 04
    50655041    inc cx                                    ; 41
    50665042    inc cx                                    ; 41
    50675043    mov dx, 0010ch                            ; ba 0c 01
    50685044    xor ax, ax                                ; 31 c0
    5069     call 02f93h                               ; e8 fe 03
     5045    call 02f50h                               ; e8 fe 03
    50705046    mov bx, ax                                ; 89 c3
    50715047    mov dx, cx                                ; 89 ca
    50725048    mov ax, si                                ; 89 f0
    5073     call 02fa1h                               ; e8 03 04
     5049    call 02f5eh                               ; e8 03 04
    50745050    inc cx                                    ; 41
    50755051    inc cx                                    ; 41
    50765052    mov dx, 0010eh                            ; ba 0e 01
    50775053    xor ax, ax                                ; 31 c0
    5078     call 02f93h                               ; e8 eb 03
     5054    call 02f50h                               ; e8 eb 03
    50795055    mov bx, ax                                ; 89 c3
    50805056    mov dx, cx                                ; 89 ca
    50815057    mov ax, si                                ; 89 f0
    5082     call 02fa1h                               ; e8 f0 03
     5058    call 02f5eh                               ; e8 f0 03
    50835059    inc cx                                    ; 41
    50845060    inc cx                                    ; 41
    50855061    test byte [bp-00ch], 004h                 ; f6 46 f4 04
    5086     je short 02c20h                           ; 74 67
     5062    je short 02bddh                           ; 74 67
    50875063    mov dx, 003c7h                            ; ba c7 03
    50885064    in AL, DX                                 ; ec
     
    50925068    mov dx, cx                                ; 89 ca
    50935069    mov ax, si                                ; 89 f0
    5094     call 02f85h                               ; e8 bc 03
     5070    call 02f42h                               ; e8 bc 03
    50955071    inc cx                                    ; 41
    50965072    mov dx, 003c8h                            ; ba c8 03
     
    51015077    mov dx, cx                                ; 89 ca
    51025078    mov ax, si                                ; 89 f0
    5103     call 02f85h                               ; e8 ab 03
     5079    call 02f42h                               ; e8 ab 03
    51045080    inc cx                                    ; 41
    51055081    mov dx, 003c6h                            ; ba c6 03
     
    51105086    mov dx, cx                                ; 89 ca
    51115087    mov ax, si                                ; 89 f0
    5112     call 02f85h                               ; e8 9a 03
     5088    call 02f42h                               ; e8 9a 03
    51135089    inc cx                                    ; 41
    51145090    xor al, al                                ; 30 c0
     
    51175093    xor ah, ah                                ; 30 e4
    51185094    mov word [bp-00ah], ax                    ; 89 46 f6
    5119     jmp short 02c00h                          ; eb 07
     5095    jmp short 02bbdh                          ; eb 07
    51205096    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
    5121     jnc short 02c16h                          ; 73 16
     5097    jnc short 02bd3h                          ; 73 16
    51225098    mov dx, 003c9h                            ; ba c9 03
    51235099    in AL, DX                                 ; ec
     
    51275103    mov dx, cx                                ; 89 ca
    51285104    mov ax, si                                ; 89 f0
    5129     call 02f85h                               ; e8 75 03
     5105    call 02f42h                               ; e8 75 03
    51305106    inc cx                                    ; 41
    51315107    inc word [bp-00ah]                        ; ff 46 f6
    5132     jmp short 02bf9h                          ; eb e3
     5108    jmp short 02bb6h                          ; eb e3
    51335109    xor bx, bx                                ; 31 db
    51345110    mov dx, cx                                ; 89 ca
    51355111    mov ax, si                                ; 89 f0
    5136     call 02f85h                               ; e8 66 03
     5112    call 02f42h                               ; e8 66 03
    51375113    inc cx                                    ; 41
    51385114    mov ax, cx                                ; 89 c8
     
    51435119    pop bp                                    ; 5d
    51445120    retn                                      ; c3
    5145 biosfn_restore_video_state_:                 ; 0xc2c2a LB 0x326
     5121biosfn_restore_video_state_:                 ; 0xc2be7 LB 0x326
    51465122    push bp                                   ; 55
    51475123    mov bp, sp                                ; 89 e5
     
    51545130    mov cx, bx                                ; 89 d9
    51555131    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    5156     je near 02d8ah                            ; 0f 84 4a 01
     5132    je near 02d47h                            ; 0f 84 4a 01
    51575133    mov dx, 003dah                            ; ba da 03
    51585134    in AL, DX                                 ; ec
     
    51615137    lea dx, [bx+040h]                         ; 8d 57 40
    51625138    mov ax, si                                ; 89 f0
    5163     call 02f93h                               ; e8 45 03
     5139    call 02f50h                               ; e8 45 03
    51645140    mov di, ax                                ; 89 c7
    51655141    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    51665142    lea cx, [bx+005h]                         ; 8d 4f 05
    5167     jmp short 02c60h                          ; eb 06
     5143    jmp short 02c1dh                          ; eb 06
    51685144    cmp word [bp-008h], strict byte 00004h    ; 83 7e f8 04
    5169     jnbe short 02c78h                         ; 77 18
     5145    jnbe short 02c35h                         ; 77 18
    51705146    mov al, byte [bp-008h]                    ; 8a 46 f8
    51715147    mov dx, 003c4h                            ; ba c4 03
     
    51735149    mov dx, cx                                ; 89 ca
    51745150    mov ax, si                                ; 89 f0
    5175     call 02f77h                               ; e8 09 03
     5151    call 02f34h                               ; e8 09 03
    51765152    mov dx, 003c5h                            ; ba c5 03
    51775153    out DX, AL                                ; ee
    51785154    inc cx                                    ; 41
    51795155    inc word [bp-008h]                        ; ff 46 f8
    5180     jmp short 02c5ah                          ; eb e2
     5156    jmp short 02c17h                          ; eb e2
    51815157    xor al, al                                ; 30 c0
    51825158    mov dx, 003c4h                            ; ba c4 03
     
    51845160    mov dx, cx                                ; 89 ca
    51855161    mov ax, si                                ; 89 f0
    5186     call 02f77h                               ; e8 f2 02
     5162    call 02f34h                               ; e8 f2 02
    51875163    mov dx, 003c5h                            ; ba c5 03
    51885164    out DX, AL                                ; ee
     
    51925168    out DX, ax                                ; ef
    51935169    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5194     jmp short 02c9dh                          ; eb 06
     5170    jmp short 02c5ah                          ; eb 06
    51955171    cmp word [bp-008h], strict byte 00018h    ; 83 7e f8 18
    5196     jnbe short 02cbah                         ; 77 1d
     5172    jnbe short 02c77h                         ; 77 1d
    51975173    cmp word [bp-008h], strict byte 00011h    ; 83 7e f8 11
    5198     je short 02cb4h                           ; 74 11
     5174    je short 02c71h                           ; 74 11
    51995175    mov al, byte [bp-008h]                    ; 8a 46 f8
    52005176    mov dx, di                                ; 89 fa
     
    52025178    mov dx, cx                                ; 89 ca
    52035179    mov ax, si                                ; 89 f0
    5204     call 02f77h                               ; e8 c7 02
     5180    call 02f34h                               ; e8 c7 02
    52055181    lea dx, [di+001h]                         ; 8d 55 01
    52065182    out DX, AL                                ; ee
    52075183    inc cx                                    ; 41
    52085184    inc word [bp-008h]                        ; ff 46 f8
    5209     jmp short 02c97h                          ; eb dd
     5185    jmp short 02c54h                          ; eb dd
    52105186    mov dx, 003cch                            ; ba cc 03
    52115187    in AL, DX                                 ; ec
     
    52155191    mov word [bp-00ah], ax                    ; 89 46 f6
    52165192    cmp di, 003d4h                            ; 81 ff d4 03
    5217     jne short 02ccfh                          ; 75 04
     5193    jne short 02c8ch                          ; 75 04
    52185194    or byte [bp-00ah], 001h                   ; 80 4e f6 01
    52195195    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    52265202    add dx, strict byte 0fff9h                ; 83 c2 f9
    52275203    mov ax, si                                ; 89 f0
    5228     call 02f77h                               ; e8 92 02
     5204    call 02f34h                               ; e8 92 02
    52295205    lea dx, [di+001h]                         ; 8d 55 01
    52305206    out DX, AL                                ; ee
    52315207    lea dx, [bx+003h]                         ; 8d 57 03
    52325208    mov ax, si                                ; 89 f0
    5233     call 02f77h                               ; e8 86 02
     5209    call 02f34h                               ; e8 86 02
    52345210    xor ah, ah                                ; 30 e4
    52355211    mov word [bp-00ch], ax                    ; 89 46 f4
     
    52395215    ; sub ah, ah                                ; 2a e4
    52405216    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5241     jmp short 02d09h                          ; eb 06
     5217    jmp short 02cc6h                          ; eb 06
    52425218    cmp word [bp-008h], strict byte 00013h    ; 83 7e f8 13
    5243     jnbe short 02d27h                         ; 77 1e
     5219    jnbe short 02ce4h                         ; 77 1e
    52445220    mov ax, word [bp-00ch]                    ; 8b 46 f4
    52455221    and ax, strict word 00020h                ; 25 20 00
     
    52495225    mov dx, cx                                ; 89 ca
    52505226    mov ax, si                                ; 89 f0
    5251     call 02f77h                               ; e8 5a 02
     5227    call 02f34h                               ; e8 5a 02
    52525228    mov dx, 003c0h                            ; ba c0 03
    52535229    out DX, AL                                ; ee
    52545230    inc cx                                    ; 41
    52555231    inc word [bp-008h]                        ; ff 46 f8
    5256     jmp short 02d03h                          ; eb dc
     5232    jmp short 02cc0h                          ; eb dc
    52575233    mov al, byte [bp-00ch]                    ; 8a 46 f4
    52585234    mov dx, 003c0h                            ; ba c0 03
     
    52635239    ; sub ah, ah                                ; 2a e4
    52645240    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5265     jmp short 02d41h                          ; eb 06
     5241    jmp short 02cfeh                          ; eb 06
    52665242    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
    5267     jnbe short 02d59h                         ; 77 18
     5243    jnbe short 02d16h                         ; 77 18
    52685244    mov al, byte [bp-008h]                    ; 8a 46 f8
    52695245    mov dx, 003ceh                            ; ba ce 03
     
    52715247    mov dx, cx                                ; 89 ca
    52725248    mov ax, si                                ; 89 f0
    5273     call 02f77h                               ; e8 28 02
     5249    call 02f34h                               ; e8 28 02
    52745250    mov dx, 003cfh                            ; ba cf 03
    52755251    out DX, AL                                ; ee
    52765252    inc cx                                    ; 41
    52775253    inc word [bp-008h]                        ; ff 46 f8
    5278     jmp short 02d3bh                          ; eb e2
     5254    jmp short 02cf8h                          ; eb e2
    52795255    add cx, strict byte 00006h                ; 83 c1 06
    52805256    mov dx, bx                                ; 89 da
    52815257    mov ax, si                                ; 89 f0
    5282     call 02f77h                               ; e8 14 02
     5258    call 02f34h                               ; e8 14 02
    52835259    mov dx, 003c4h                            ; ba c4 03
    52845260    out DX, AL                                ; ee
     
    52865262    mov dx, bx                                ; 89 da
    52875263    mov ax, si                                ; 89 f0
    5288     call 02f77h                               ; e8 08 02
     5264    call 02f34h                               ; e8 08 02
    52895265    mov dx, di                                ; 89 fa
    52905266    out DX, AL                                ; ee
     
    52925268    mov dx, bx                                ; 89 da
    52935269    mov ax, si                                ; 89 f0
    5294     call 02f77h                               ; e8 fd 01
     5270    call 02f34h                               ; e8 fd 01
    52955271    mov dx, 003ceh                            ; ba ce 03
    52965272    out DX, AL                                ; ee
    52975273    lea dx, [bx+002h]                         ; 8d 57 02
    52985274    mov ax, si                                ; 89 f0
    5299     call 02f77h                               ; e8 f1 01
     5275    call 02f34h                               ; e8 f1 01
    53005276    lea dx, [di+006h]                         ; 8d 55 06
    53015277    out DX, AL                                ; ee
    53025278    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    5303     je near 02ef9h                            ; 0f 84 67 01
    5304     mov dx, cx                                ; 89 ca
    5305     mov ax, si                                ; 89 f0
    5306     call 02f77h                               ; e8 de 01
     5279    je near 02eb6h                            ; 0f 84 67 01
     5280    mov dx, cx                                ; 89 ca
     5281    mov ax, si                                ; 89 f0
     5282    call 02f34h                               ; e8 de 01
    53075283    movzx bx, al                              ; 0f b6 d8
    53085284    mov dx, strict word 00049h                ; ba 49 00
    53095285    mov ax, strict word 00040h                ; b8 40 00
    5310     call 02f85h                               ; e8 e0 01
    5311     inc cx                                    ; 41
    5312     mov dx, cx                                ; 89 ca
    5313     mov ax, si                                ; 89 f0
    5314     call 02f93h                               ; e8 e6 01
     5286    call 02f42h                               ; e8 e0 01
     5287    inc cx                                    ; 41
     5288    mov dx, cx                                ; 89 ca
     5289    mov ax, si                                ; 89 f0
     5290    call 02f50h                               ; e8 e6 01
    53155291    mov bx, ax                                ; 89 c3
    53165292    mov dx, strict word 0004ah                ; ba 4a 00
    53175293    mov ax, strict word 00040h                ; b8 40 00
    5318     call 02fa1h                               ; e8 e9 01
    5319     inc cx                                    ; 41
    5320     inc cx                                    ; 41
    5321     mov dx, cx                                ; 89 ca
    5322     mov ax, si                                ; 89 f0
    5323     call 02f93h                               ; e8 d2 01
     5294    call 02f5eh                               ; e8 e9 01
     5295    inc cx                                    ; 41
     5296    inc cx                                    ; 41
     5297    mov dx, cx                                ; 89 ca
     5298    mov ax, si                                ; 89 f0
     5299    call 02f50h                               ; e8 d2 01
    53245300    mov bx, ax                                ; 89 c3
    53255301    mov dx, strict word 0004ch                ; ba 4c 00
    53265302    mov ax, strict word 00040h                ; b8 40 00
    5327     call 02fa1h                               ; e8 d5 01
    5328     inc cx                                    ; 41
    5329     inc cx                                    ; 41
    5330     mov dx, cx                                ; 89 ca
    5331     mov ax, si                                ; 89 f0
    5332     call 02f93h                               ; e8 be 01
     5303    call 02f5eh                               ; e8 d5 01
     5304    inc cx                                    ; 41
     5305    inc cx                                    ; 41
     5306    mov dx, cx                                ; 89 ca
     5307    mov ax, si                                ; 89 f0
     5308    call 02f50h                               ; e8 be 01
    53335309    mov bx, ax                                ; 89 c3
    53345310    mov dx, strict word 00063h                ; ba 63 00
    53355311    mov ax, strict word 00040h                ; b8 40 00
    5336     call 02fa1h                               ; e8 c1 01
    5337     inc cx                                    ; 41
    5338     inc cx                                    ; 41
    5339     mov dx, cx                                ; 89 ca
    5340     mov ax, si                                ; 89 f0
    5341     call 02f77h                               ; e8 8e 01
     5312    call 02f5eh                               ; e8 c1 01
     5313    inc cx                                    ; 41
     5314    inc cx                                    ; 41
     5315    mov dx, cx                                ; 89 ca
     5316    mov ax, si                                ; 89 f0
     5317    call 02f34h                               ; e8 8e 01
    53425318    movzx bx, al                              ; 0f b6 d8
    53435319    mov dx, 00084h                            ; ba 84 00
    53445320    mov ax, strict word 00040h                ; b8 40 00
    5345     call 02f85h                               ; e8 90 01
    5346     inc cx                                    ; 41
    5347     mov dx, cx                                ; 89 ca
    5348     mov ax, si                                ; 89 f0
    5349     call 02f93h                               ; e8 96 01
     5321    call 02f42h                               ; e8 90 01
     5322    inc cx                                    ; 41
     5323    mov dx, cx                                ; 89 ca
     5324    mov ax, si                                ; 89 f0
     5325    call 02f50h                               ; e8 96 01
    53505326    mov bx, ax                                ; 89 c3
    53515327    mov dx, 00085h                            ; ba 85 00
    53525328    mov ax, strict word 00040h                ; b8 40 00
    5353     call 02fa1h                               ; e8 99 01
    5354     inc cx                                    ; 41
    5355     inc cx                                    ; 41
    5356     mov dx, cx                                ; 89 ca
    5357     mov ax, si                                ; 89 f0
    5358     call 02f77h                               ; e8 66 01
     5329    call 02f5eh                               ; e8 99 01
     5330    inc cx                                    ; 41
     5331    inc cx                                    ; 41
     5332    mov dx, cx                                ; 89 ca
     5333    mov ax, si                                ; 89 f0
     5334    call 02f34h                               ; e8 66 01
    53595335    movzx bx, al                              ; 0f b6 d8
    53605336    mov dx, 00087h                            ; ba 87 00
    53615337    mov ax, strict word 00040h                ; b8 40 00
    5362     call 02f85h                               ; e8 68 01
    5363     inc cx                                    ; 41
    5364     mov dx, cx                                ; 89 ca
    5365     mov ax, si                                ; 89 f0
    5366     call 02f77h                               ; e8 52 01
     5338    call 02f42h                               ; e8 68 01
     5339    inc cx                                    ; 41
     5340    mov dx, cx                                ; 89 ca
     5341    mov ax, si                                ; 89 f0
     5342    call 02f34h                               ; e8 52 01
    53675343    movzx bx, al                              ; 0f b6 d8
    53685344    mov dx, 00088h                            ; ba 88 00
    53695345    mov ax, strict word 00040h                ; b8 40 00
    5370     call 02f85h                               ; e8 54 01
    5371     inc cx                                    ; 41
    5372     mov dx, cx                                ; 89 ca
    5373     mov ax, si                                ; 89 f0
    5374     call 02f77h                               ; e8 3e 01
     5346    call 02f42h                               ; e8 54 01
     5347    inc cx                                    ; 41
     5348    mov dx, cx                                ; 89 ca
     5349    mov ax, si                                ; 89 f0
     5350    call 02f34h                               ; e8 3e 01
    53755351    movzx bx, al                              ; 0f b6 d8
    53765352    mov dx, 00089h                            ; ba 89 00
    53775353    mov ax, strict word 00040h                ; b8 40 00
    5378     call 02f85h                               ; e8 40 01
    5379     inc cx                                    ; 41
    5380     mov dx, cx                                ; 89 ca
    5381     mov ax, si                                ; 89 f0
    5382     call 02f93h                               ; e8 46 01
     5354    call 02f42h                               ; e8 40 01
     5355    inc cx                                    ; 41
     5356    mov dx, cx                                ; 89 ca
     5357    mov ax, si                                ; 89 f0
     5358    call 02f50h                               ; e8 46 01
    53835359    mov bx, ax                                ; 89 c3
    53845360    mov dx, strict word 00060h                ; ba 60 00
    53855361    mov ax, strict word 00040h                ; b8 40 00
    5386     call 02fa1h                               ; e8 49 01
     5362    call 02f5eh                               ; e8 49 01
    53875363    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    53885364    inc cx                                    ; 41
    53895365    inc cx                                    ; 41
    5390     jmp short 02e67h                          ; eb 06
     5366    jmp short 02e24h                          ; eb 06
    53915367    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
    5392     jnc short 02e85h                          ; 73 1e
    5393     mov dx, cx                                ; 89 ca
    5394     mov ax, si                                ; 89 f0
    5395     call 02f93h                               ; e8 25 01
     5368    jnc short 02e42h                          ; 73 1e
     5369    mov dx, cx                                ; 89 ca
     5370    mov ax, si                                ; 89 f0
     5371    call 02f50h                               ; e8 25 01
    53965372    mov bx, ax                                ; 89 c3
    53975373    mov dx, word [bp-008h]                    ; 8b 56 f8
     
    53995375    add dx, strict byte 00050h                ; 83 c2 50
    54005376    mov ax, strict word 00040h                ; b8 40 00
    5401     call 02fa1h                               ; e8 23 01
     5377    call 02f5eh                               ; e8 23 01
    54025378    inc cx                                    ; 41
    54035379    inc cx                                    ; 41
    54045380    inc word [bp-008h]                        ; ff 46 f8
    5405     jmp short 02e61h                          ; eb dc
    5406     mov dx, cx                                ; 89 ca
    5407     mov ax, si                                ; 89 f0
    5408     call 02f93h                               ; e8 07 01
     5381    jmp short 02e1eh                          ; eb dc
     5382    mov dx, cx                                ; 89 ca
     5383    mov ax, si                                ; 89 f0
     5384    call 02f50h                               ; e8 07 01
    54095385    mov bx, ax                                ; 89 c3
    54105386    mov dx, strict word 0004eh                ; ba 4e 00
    54115387    mov ax, strict word 00040h                ; b8 40 00
    5412     call 02fa1h                               ; e8 0a 01
    5413     inc cx                                    ; 41
    5414     inc cx                                    ; 41
    5415     mov dx, cx                                ; 89 ca
    5416     mov ax, si                                ; 89 f0
    5417     call 02f77h                               ; e8 d7 00
     5388    call 02f5eh                               ; e8 0a 01
     5389    inc cx                                    ; 41
     5390    inc cx                                    ; 41
     5391    mov dx, cx                                ; 89 ca
     5392    mov ax, si                                ; 89 f0
     5393    call 02f34h                               ; e8 d7 00
    54185394    movzx bx, al                              ; 0f b6 d8
    54195395    mov dx, strict word 00062h                ; ba 62 00
    54205396    mov ax, strict word 00040h                ; b8 40 00
    5421     call 02f85h                               ; e8 d9 00
    5422     inc cx                                    ; 41
    5423     mov dx, cx                                ; 89 ca
    5424     mov ax, si                                ; 89 f0
    5425     call 02f93h                               ; e8 df 00
     5397    call 02f42h                               ; e8 d9 00
     5398    inc cx                                    ; 41
     5399    mov dx, cx                                ; 89 ca
     5400    mov ax, si                                ; 89 f0
     5401    call 02f50h                               ; e8 df 00
    54265402    mov bx, ax                                ; 89 c3
    54275403    mov dx, strict word 0007ch                ; ba 7c 00
    54285404    xor ax, ax                                ; 31 c0
    5429     call 02fa1h                               ; e8 e3 00
    5430     inc cx                                    ; 41
    5431     inc cx                                    ; 41
    5432     mov dx, cx                                ; 89 ca
    5433     mov ax, si                                ; 89 f0
    5434     call 02f93h                               ; e8 cc 00
     5405    call 02f5eh                               ; e8 e3 00
     5406    inc cx                                    ; 41
     5407    inc cx                                    ; 41
     5408    mov dx, cx                                ; 89 ca
     5409    mov ax, si                                ; 89 f0
     5410    call 02f50h                               ; e8 cc 00
    54355411    mov bx, ax                                ; 89 c3
    54365412    mov dx, strict word 0007eh                ; ba 7e 00
    54375413    xor ax, ax                                ; 31 c0
    5438     call 02fa1h                               ; e8 d0 00
    5439     inc cx                                    ; 41
    5440     inc cx                                    ; 41
    5441     mov dx, cx                                ; 89 ca
    5442     mov ax, si                                ; 89 f0
    5443     call 02f93h                               ; e8 b9 00
     5414    call 02f5eh                               ; e8 d0 00
     5415    inc cx                                    ; 41
     5416    inc cx                                    ; 41
     5417    mov dx, cx                                ; 89 ca
     5418    mov ax, si                                ; 89 f0
     5419    call 02f50h                               ; e8 b9 00
    54445420    mov bx, ax                                ; 89 c3
    54455421    mov dx, 0010ch                            ; ba 0c 01
    54465422    xor ax, ax                                ; 31 c0
    5447     call 02fa1h                               ; e8 bd 00
    5448     inc cx                                    ; 41
    5449     inc cx                                    ; 41
    5450     mov dx, cx                                ; 89 ca
    5451     mov ax, si                                ; 89 f0
    5452     call 02f93h                               ; e8 a6 00
     5423    call 02f5eh                               ; e8 bd 00
     5424    inc cx                                    ; 41
     5425    inc cx                                    ; 41
     5426    mov dx, cx                                ; 89 ca
     5427    mov ax, si                                ; 89 f0
     5428    call 02f50h                               ; e8 a6 00
    54535429    mov bx, ax                                ; 89 c3
    54545430    mov dx, 0010eh                            ; ba 0e 01
    54555431    xor ax, ax                                ; 31 c0
    5456     call 02fa1h                               ; e8 aa 00
     5432    call 02f5eh                               ; e8 aa 00
    54575433    inc cx                                    ; 41
    54585434    inc cx                                    ; 41
    54595435    test byte [bp-00eh], 004h                 ; f6 46 f2 04
    5460     je short 02f46h                           ; 74 47
    5461     inc cx                                    ; 41
    5462     mov dx, cx                                ; 89 ca
    5463     mov ax, si                                ; 89 f0
    5464     call 02f77h                               ; e8 70 00
     5436    je short 02f03h                           ; 74 47
     5437    inc cx                                    ; 41
     5438    mov dx, cx                                ; 89 ca
     5439    mov ax, si                                ; 89 f0
     5440    call 02f34h                               ; e8 70 00
    54655441    xor ah, ah                                ; 30 e4
    54665442    mov word [bp-00ah], ax                    ; 89 46 f6
     
    54685444    mov dx, cx                                ; 89 ca
    54695445    mov ax, si                                ; 89 f0
    5470     call 02f77h                               ; e8 63 00
     5446    call 02f34h                               ; e8 63 00
    54715447    mov dx, 003c6h                            ; ba c6 03
    54725448    out DX, AL                                ; ee
     
    54775453    xor ah, ah                                ; 30 e4
    54785454    mov word [bp-008h], ax                    ; 89 46 f8
    5479     jmp short 02f2dh                          ; eb 07
     5455    jmp short 02eeah                          ; eb 07
    54805456    cmp word [bp-008h], 00300h                ; 81 7e f8 00 03
    5481     jnc short 02f3eh                          ; 73 11
    5482     mov dx, cx                                ; 89 ca
    5483     mov ax, si                                ; 89 f0
    5484     call 02f77h                               ; e8 43 00
     5457    jnc short 02efbh                          ; 73 11
     5458    mov dx, cx                                ; 89 ca
     5459    mov ax, si                                ; 89 f0
     5460    call 02f34h                               ; e8 43 00
    54855461    mov dx, 003c9h                            ; ba c9 03
    54865462    out DX, AL                                ; ee
    54875463    inc cx                                    ; 41
    54885464    inc word [bp-008h]                        ; ff 46 f8
    5489     jmp short 02f26h                          ; eb e8
     5465    jmp short 02ee3h                          ; eb e8
    54905466    inc cx                                    ; 41
    54915467    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    54995475    pop bp                                    ; 5d
    55005476    retn                                      ; c3
    5501 find_vga_entry_:                             ; 0xc2f50 LB 0x27
     5477find_vga_entry_:                             ; 0xc2f0d LB 0x27
    55025478    push bx                                   ; 53
    55035479    push dx                                   ; 52
     
    55075483    mov AH, strict byte 0ffh                  ; b4 ff
    55085484    xor al, al                                ; 30 c0
    5509     jmp short 02f63h                          ; eb 06
     5485    jmp short 02f20h                          ; eb 06
    55105486    db  0feh, 0c0h
    55115487    ; inc al                                    ; fe c0
    55125488    cmp AL, strict byte 00fh                  ; 3c 0f
    5513     jnbe short 02f71h                         ; 77 0e
     5489    jnbe short 02f2eh                         ; 77 0e
    55145490    movzx bx, al                              ; 0f b6 d8
    55155491    sal bx, 003h                              ; c1 e3 03
    55165492    cmp dl, byte [bx+0482fh]                  ; 3a 97 2f 48
    5517     jne short 02f5dh                          ; 75 ee
     5493    jne short 02f1ah                          ; 75 ee
    55185494    mov ah, al                                ; 88 c4
    55195495    mov al, ah                                ; 88 e0
     
    55225498    pop bx                                    ; 5b
    55235499    retn                                      ; c3
    5524 read_byte_:                                  ; 0xc2f77 LB 0xe
     5500read_byte_:                                  ; 0xc2f34 LB 0xe
    55255501    push bx                                   ; 53
    55265502    push bp                                   ; 55
     
    55325508    pop bx                                    ; 5b
    55335509    retn                                      ; c3
    5534 write_byte_:                                 ; 0xc2f85 LB 0xe
     5510write_byte_:                                 ; 0xc2f42 LB 0xe
    55355511    push si                                   ; 56
    55365512    push bp                                   ; 55
     
    55425518    pop si                                    ; 5e
    55435519    retn                                      ; c3
    5544 read_word_:                                  ; 0xc2f93 LB 0xe
     5520read_word_:                                  ; 0xc2f50 LB 0xe
    55455521    push bx                                   ; 53
    55465522    push bp                                   ; 55
     
    55525528    pop bx                                    ; 5b
    55535529    retn                                      ; c3
    5554 write_word_:                                 ; 0xc2fa1 LB 0xe
     5530write_word_:                                 ; 0xc2f5e LB 0xe
    55555531    push si                                   ; 56
    55565532    push bp                                   ; 55
     
    55625538    pop si                                    ; 5e
    55635539    retn                                      ; c3
    5564 read_dword_:                                 ; 0xc2faf LB 0x12
     5540read_dword_:                                 ; 0xc2f6c LB 0x12
    55655541    push bx                                   ; 53
    55665542    push bp                                   ; 55
     
    55735549    pop bx                                    ; 5b
    55745550    retn                                      ; c3
    5575 write_dword_:                                ; 0xc2fc1 LB 0x7f
     5551write_dword_:                                ; 0xc2f7e LB 0x7f
    55765552    push si                                   ; 56
    55775553    push bp                                   ; 55
     
    55955571    add ax, 00304h                            ; 05 04 03
    55965572    add al, byte [bx+di]                      ; 02 01
    5597     add byte [bp+di], al                      ; 00 03
    5598     xor AL, strict byte 06eh                  ; 34 6e
    5599     xor byte [si-03fd0h], ch                  ; 30 ac 30 c0
    5600     xor cl, dl                                ; 30 d1
    5601     xor ch, ah                                ; 30 e5
    5602     xor dh, dh                                ; 30 f6
    5603     xor byte [bx+si], al                      ; 30 00
    5604     xor word [bp+si], di                      ; 31 3a
    5605     xor word [04f31h], di                     ; 31 3e 31 4f
    5606     xor word [si+031h], bp                    ; 31 6c 31
    5607     mov word [bx+di], si                      ; 89 31
    5608     test ax, 0c631h                           ; a9 31 c6
    5609     xor bp, bx                                ; 31 dd
    5610     xor cx, bp                                ; 31 e9
    5611     xor sp, ax                                ; 31 c4
    5612     db  032h, 0ffh
    5613     ; xor bh, bh                                ; 32 ff
    5614     xor ch, byte [bx]                         ; 32 2f
    5615     xor ax, word [si+033h]                    ; 33 44 33
    5616     xchg byte [bp+di], dh                     ; 86 33
     5573    add al, al                                ; 00 c0
     5574    xor bp, word [bp+di]                      ; 33 2b
     5575    xor byte [bx+di+030h], ch                 ; 30 69 30
     5576    jnl short 02fddh                          ; 7d 30
     5577    db  08eh
     5578    xor byte [bp+si-04cd0h], ah               ; 30 a2 30 b3
     5579    xor byte [di-008d0h], bh                  ; 30 bd 30 f7
     5580    xor bl, bh                                ; 30 fb
     5581    xor byte [si], cl                         ; 30 0c
     5582    xor word [bx+di], bp                      ; 31 29
     5583    xor word [bp+031h], ax                    ; 31 46 31
     5584    xor dword [bp+di-065cfh], eax             ; 66 31 83 31 9a
     5585    xor word [bp-07ecfh], sp                  ; 31 a6 31 81
     5586    xor bh, byte [si-013ceh]                  ; 32 bc 32 ec
     5587    xor al, byte [bx+di]                      ; 32 01
     5588    xor ax, word [bp+di+033h]                 ; 33 43 33
    56175589    xor byte [si], ah                         ; 30 24
    56185590    and sp, word [bp+si]                      ; 23 22
     
    56225594    add AL, strict byte 002h                  ; 04 02
    56235595    add word [bx+si], ax                      ; 01 00
    5624     add si, word [si]                         ; 03 34
    5625     or dh, byte [bp+si]                       ; 0a 32
    5626     xor byte [bp+si], dh                      ; 30 32
    5627     inc cx                                    ; 41
    5628     xor dl, byte [bp+si+032h]                 ; 32 52 32
    5629     or dh, byte [bp+si]                       ; 0a 32
    5630     xor byte [bp+si], dh                      ; 30 32
    5631     inc cx                                    ; 41
    5632     xor dl, byte [bp+si+032h]                 ; 32 52 32
    5633     arpl word [bp+si], si                     ; 63 32
    5634     outsw                                     ; 6f
    5635     xor cl, byte [bp+si-06aceh]               ; 32 8a 32 95
    5636     xor ah, byte [bx+si-054ceh]               ; 32 a0 32 ab
     5596    db  0c0h, 033h, 0c7h
     5597    ; sal byte [bp+di], 0c7h                    ; c0 33 c7
     5598    xor bp, bp                                ; 31 ed
     5599    xor si, di                                ; 31 fe
     5600    xor word [bx], cx                         ; 31 0f
     5601    db  032h, 0c7h
     5602    ; xor al, bh                                ; 32 c7
     5603    xor bp, bp                                ; 31 ed
     5604    xor si, di                                ; 31 fe
     5605    xor word [bx], cx                         ; 31 0f
     5606    xor ah, byte [bx+si]                      ; 32 20
     5607    xor ch, byte [si]                         ; 32 2c
     5608    xor al, byte [bx+032h]                    ; 32 47 32
     5609    push dx                                   ; 52
     5610    xor bl, byte [di+032h]                    ; 32 5d 32
     5611    db  068h
    56375612    db  032h
    5638 _int10_func:                                 ; 0xc3040 LB 0x3ca
     5613_int10_func:                                 ; 0xc2ffd LB 0x3ca
    56395614    push bp                                   ; 55
    56405615    mov bp, sp                                ; 89 e5
     
    56465621    shr ax, 008h                              ; c1 e8 08
    56475622    cmp ax, strict word 0004fh                ; 3d 4f 00
    5648     jnbe near 03403h                          ; 0f 87 ad 03
     5623    jnbe near 033c0h                          ; 0f 87 ad 03
    56495624    push CS                                   ; 0e
    56505625    pop ES                                    ; 07
    56515626    mov cx, strict word 00016h                ; b9 16 00
    5652     mov di, 02fd3h                            ; bf d3 2f
     5627    mov di, 02f90h                            ; bf 90 2f
    56535628    repne scasb                               ; f2 ae
    56545629    sal cx, 1                                 ; d1 e1
    56555630    mov di, cx                                ; 89 cf
    5656     mov ax, word [cs:di+02fe8h]               ; 2e 8b 85 e8 2f
     5631    mov ax, word [cs:di+02fa5h]               ; 2e 8b 85 a5 2f
    56575632    mov cl, byte [bp+012h]                    ; 8a 4e 12
    56585633    jmp ax                                    ; ff e0
    56595634    mov al, byte [bp+012h]                    ; 8a 46 12
    56605635    xor ah, ah                                ; 30 e4
    5661     call 00fdch                               ; e8 66 df
     5636    call 00fdch                               ; e8 a9 df
    56625637    mov ax, word [bp+012h]                    ; 8b 46 12
    56635638    and ax, strict word 0007fh                ; 25 7f 00
    56645639    cmp ax, strict word 00007h                ; 3d 07 00
    5665     je short 03096h                           ; 74 15
     5640    je short 03053h                           ; 74 15
    56665641    cmp ax, strict word 00006h                ; 3d 06 00
    5667     je short 0308dh                           ; 74 07
     5642    je short 0304ah                           ; 74 07
    56685643    cmp ax, strict word 00005h                ; 3d 05 00
    5669     jbe short 03096h                          ; 76 0b
    5670     jmp short 0309fh                          ; eb 12
     5644    jbe short 03053h                          ; 76 0b
     5645    jmp short 0305ch                          ; eb 12
    56715646    mov ax, word [bp+012h]                    ; 8b 46 12
    56725647    xor al, al                                ; 30 c0
    56735648    or AL, strict byte 03fh                   ; 0c 3f
    5674     jmp short 030a6h                          ; eb 10
     5649    jmp short 03063h                          ; eb 10
    56755650    mov ax, word [bp+012h]                    ; 8b 46 12
    56765651    xor al, al                                ; 30 c0
    56775652    or AL, strict byte 030h                   ; 0c 30
    5678     jmp short 030a6h                          ; eb 07
     5653    jmp short 03063h                          ; eb 07
    56795654    mov ax, word [bp+012h]                    ; 8b 46 12
    56805655    xor al, al                                ; 30 c0
    56815656    or AL, strict byte 020h                   ; 0c 20
    56825657    mov word [bp+012h], ax                    ; 89 46 12
    5683     jmp near 03403h                           ; e9 57 03
     5658    jmp near 033c0h                           ; e9 57 03
    56845659    mov al, byte [bp+010h]                    ; 8a 46 10
    56855660    movzx dx, al                              ; 0f b6 d0
     
    56875662    shr ax, 008h                              ; c1 e8 08
    56885663    xor ah, ah                                ; 30 e4
    5689     call 00dbah                               ; e8 fd dc
    5690     jmp near 03403h                           ; e9 43 03
     5664    call 00dbah                               ; e8 40 dd
     5665    jmp near 033c0h                           ; e9 43 03
    56915666    mov dx, word [bp+00eh]                    ; 8b 56 0e
    56925667    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56935668    shr ax, 008h                              ; c1 e8 08
    56945669    xor ah, ah                                ; 30 e4
    5695     call 00e5eh                               ; e8 90 dd
    5696     jmp near 03403h                           ; e9 32 03
     5670    call 00e5eh                               ; e8 d3 dd
     5671    jmp near 033c0h                           ; e9 32 03
    56975672    lea bx, [bp+00eh]                         ; 8d 5e 0e
    56985673    lea dx, [bp+010h]                         ; 8d 56 10
     
    57005675    shr ax, 008h                              ; c1 e8 08
    57015676    xor ah, ah                                ; 30 e4
    5702     call 00a88h                               ; e8 a6 d9
    5703     jmp near 03403h                           ; e9 1e 03
     5677    call 00a88h                               ; e8 e9 d9
     5678    jmp near 033c0h                           ; e9 1e 03
    57045679    xor ax, ax                                ; 31 c0
    57055680    mov word [bp+012h], ax                    ; 89 46 12
     
    57075682    mov word [bp+010h], ax                    ; 89 46 10
    57085683    mov word [bp+00eh], ax                    ; 89 46 0e
    5709     jmp near 03403h                           ; e9 0d 03
     5684    jmp near 033c0h                           ; e9 0d 03
    57105685    mov al, cl                                ; 88 c8
    57115686    xor ah, ah                                ; 30 e4
    5712     call 00f00h                               ; e8 03 de
    5713     jmp near 03403h                           ; e9 03 03
     5687    call 00f00h                               ; e8 46 de
     5688    jmp near 033c0h                           ; e9 03 03
    57145689    mov ax, strict word 00001h                ; b8 01 00
    57155690    push ax                                   ; 50
     
    57335708    mov al, byte [bp+012h]                    ; 8a 46 12
    57345709    xor ah, ah                                ; 30 e4
    5735     call 01568h                               ; e8 31 e4
    5736     jmp near 03403h                           ; e9 c9 02
     5710    call 01568h                               ; e8 74 e4
     5711    jmp near 033c0h                           ; e9 c9 02
    57375712    xor ax, ax                                ; 31 c0
    5738     jmp short 03103h                          ; eb c5
     5713    jmp short 030c0h                          ; eb c5
    57395714    lea dx, [bp+012h]                         ; 8d 56 12
    57405715    mov ax, word [bp+00ch]                    ; 8b 46 0c
    57415716    shr ax, 008h                              ; c1 e8 08
    57425717    xor ah, ah                                ; 30 e4
    5743     call 00acbh                               ; e8 7f d9
    5744     jmp near 03403h                           ; e9 b4 02
     5718    call 00acbh                               ; e8 c2 d9
     5719    jmp near 033c0h                           ; e9 b4 02
    57455720    mov cx, word [bp+010h]                    ; 8b 4e 10
    57465721    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57515726    mov al, byte [bp+012h]                    ; 8a 46 12
    57525727    xor ah, ah                                ; 30 e4
    5753     call 01d08h                               ; e8 9f eb
    5754     jmp near 03403h                           ; e9 97 02
     5728    call 01d08h                               ; e8 e2 eb
     5729    jmp near 033c0h                           ; e9 97 02
    57555730    mov cx, word [bp+010h]                    ; 8b 4e 10
    57565731    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57615736    mov al, byte [bp+012h]                    ; 8a 46 12
    57625737    xor ah, ah                                ; 30 e4
    5763     call 01e70h                               ; e8 ea ec
    5764     jmp near 03403h                           ; e9 7a 02
     5738    call 01e70h                               ; e8 2d ed
     5739    jmp near 033c0h                           ; e9 7a 02
    57655740    mov cx, word [bp+00eh]                    ; 8b 4e 0e
    57665741    mov bx, word [bp+010h]                    ; 8b 5e 10
     
    57725747    mov al, byte [bp-006h]                    ; 8a 46 fa
    57735748    xor ah, ah                                ; 30 e4
    5774     call 01fdfh                               ; e8 39 ee
    5775     jmp near 03403h                           ; e9 5a 02
     5749    call 01fdfh                               ; e8 7c ee
     5750    jmp near 033c0h                           ; e9 5a 02
    57765751    lea cx, [bp+012h]                         ; 8d 4e 12
    57775752    mov bx, word [bp+00eh]                    ; 8b 5e 0e
     
    57825757    mov al, byte [bp-006h]                    ; 8a 46 fa
    57835758    xor ah, ah                                ; 30 e4
    5784     call 00bf5h                               ; e8 32 da
    5785     jmp near 03403h                           ; e9 3d 02
     5759    call 00bf5h                               ; e8 75 da
     5760    jmp near 033c0h                           ; e9 3d 02
    57865761    mov cx, strict word 00002h                ; b9 02 00
    57875762    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57905765    mov al, byte [bp+012h]                    ; 8a 46 12
    57915766    xor ah, ah                                ; 30 e4
    5792     call 02149h                               ; e8 6f ef
    5793     jmp near 03403h                           ; e9 26 02
     5767    call 02149h                               ; e8 b2 ef
     5768    jmp near 033c0h                           ; e9 26 02
    57945769    mov dx, word [bp+010h]                    ; 8b 56 10
    57955770    mov ax, word [bp+00ch]                    ; 8b 46 0c
    5796     call 00d2eh                               ; e8 48 db
    5797     jmp near 03403h                           ; e9 1a 02
     5771    call 00d2eh                               ; e8 8b db
     5772    jmp near 033c0h                           ; e9 1a 02
    57985773    mov ax, word [bp+012h]                    ; 8b 46 12
    57995774    xor ah, ah                                ; 30 e4
    58005775    cmp ax, strict word 00030h                ; 3d 30 00
    5801     jnbe near 03403h                          ; 0f 87 0e 02
     5776    jnbe near 033c0h                          ; 0f 87 0e 02
    58025777    push CS                                   ; 0e
    58035778    pop ES                                    ; 07
    58045779    mov cx, strict word 0000fh                ; b9 0f 00
    5805     mov di, 03014h                            ; bf 14 30
     5780    mov di, 02fd1h                            ; bf d1 2f
    58065781    repne scasb                               ; f2 ae
    58075782    sal cx, 1                                 ; d1 e1
    58085783    mov di, cx                                ; 89 cf
    5809     mov ax, word [cs:di+03022h]               ; 2e 8b 85 22 30
     5784    mov ax, word [cs:di+02fdfh]               ; 2e 8b 85 df 2f
    58105785    jmp ax                                    ; ff e0
    58115786    mov ax, word [bp+00ch]                    ; 8b 46 0c
     
    58225797    mov bx, word [bp+008h]                    ; 8b 5e 08
    58235798    mov dx, word [bp+016h]                    ; 8b 56 16
    5824     call 024f4h                               ; e8 c7 f2
    5825     jmp near 03403h                           ; e9 d3 01
     5799    call 024b1h                               ; e8 c7 f2
     5800    jmp near 033c0h                           ; e9 d3 01
    58265801    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58275802    movzx dx, al                              ; 0f b6 d0
    58285803    mov al, byte [bp+012h]                    ; 8a 46 12
    58295804    xor ah, ah                                ; 30 e4
    5830     call 02571h                               ; e8 33 f3
    5831     jmp near 03403h                           ; e9 c2 01
     5805    call 0252eh                               ; e8 33 f3
     5806    jmp near 033c0h                           ; e9 c2 01
    58325807    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58335808    movzx dx, al                              ; 0f b6 d0
    58345809    mov al, byte [bp+012h]                    ; 8a 46 12
    58355810    xor ah, ah                                ; 30 e4
    5836     call 025e1h                               ; e8 92 f3
    5837     jmp near 03403h                           ; e9 b1 01
     5811    call 0259eh                               ; e8 92 f3
     5812    jmp near 033c0h                           ; e9 b1 01
    58385813    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58395814    movzx dx, al                              ; 0f b6 d0
    58405815    mov al, byte [bp+012h]                    ; 8a 46 12
    58415816    xor ah, ah                                ; 30 e4
    5842     call 02653h                               ; e8 f3 f3
    5843     jmp near 03403h                           ; e9 a0 01
     5817    call 02610h                               ; e8 f3 f3
     5818    jmp near 033c0h                           ; e9 a0 01
    58445819    mov dx, word [bp+008h]                    ; 8b 56 08
    58455820    mov ax, word [bp+016h]                    ; 8b 46 16
    5846     call 026c5h                               ; e8 59 f4
    5847     jmp near 03403h                           ; e9 94 01
     5821    call 02682h                               ; e8 59 f4
     5822    jmp near 033c0h                           ; e9 94 01
    58485823    mov al, byte [bp+00eh]                    ; 8a 46 0e
    58495824    xor ah, ah                                ; 30 e4
     
    58545829    mov dx, word [bp+008h]                    ; 8b 56 08
    58555830    mov ax, word [bp+016h]                    ; 8b 46 16
    5856     call 026cah                               ; e8 43 f4
    5857     jmp near 03403h                           ; e9 79 01
     5831    call 02687h                               ; e8 43 f4
     5832    jmp near 033c0h                           ; e9 79 01
    58585833    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58595834    xor ah, ah                                ; 30 e4
    5860     call 026d1h                               ; e8 3f f4
    5861     jmp near 03403h                           ; e9 6e 01
     5835    call 0268eh                               ; e8 3f f4
     5836    jmp near 033c0h                           ; e9 6e 01
    58625837    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58635838    xor ah, ah                                ; 30 e4
    5864     call 026d6h                               ; e8 39 f4
    5865     jmp near 03403h                           ; e9 63 01
     5839    call 02693h                               ; e8 39 f4
     5840    jmp near 033c0h                           ; e9 63 01
    58665841    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58675842    xor ah, ah                                ; 30 e4
    5868     call 026dbh                               ; e8 33 f4
    5869     jmp near 03403h                           ; e9 58 01
     5843    call 02698h                               ; e8 33 f4
     5844    jmp near 033c0h                           ; e9 58 01
    58705845    lea ax, [bp+00eh]                         ; 8d 46 0e
    58715846    push ax                                   ; 50
     
    58755850    mov ax, word [bp+00ch]                    ; 8b 46 0c
    58765851    shr ax, 008h                              ; c1 e8 08
    5877     call 00b73h                               ; e8 b2 d8
    5878     jmp near 03403h                           ; e9 3f 01
     5852    call 00b73h                               ; e8 f5 d8
     5853    jmp near 033c0h                           ; e9 3f 01
    58795854    mov ax, word [bp+00ch]                    ; 8b 46 0c
    58805855    xor ah, ah                                ; 30 e4
    58815856    cmp ax, strict word 00036h                ; 3d 36 00
    5882     je short 032f6h                           ; 74 28
     5857    je short 032b3h                           ; 74 28
    58835858    cmp ax, strict word 00035h                ; 3d 35 00
    5884     je short 032e0h                           ; 74 0d
     5859    je short 0329dh                           ; 74 0d
    58855860    cmp ax, strict word 00020h                ; 3d 20 00
    5886     jne near 03403h                           ; 0f 85 29 01
    5887     call 026e0h                               ; e8 03 f4
    5888     jmp near 03403h                           ; e9 23 01
     5861    jne near 033c0h                           ; 0f 85 29 01
     5862    call 0269dh                               ; e8 03 f4
     5863    jmp near 033c0h                           ; e9 23 01
    58895864    movzx ax, cl                              ; 0f b6 c1
    58905865    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    58915866    mov dx, word [bp+016h]                    ; 8b 56 16
    5892     call 026e5h                               ; e8 f9 f3
     5867    call 026a2h                               ; e8 f9 f3
    58935868    mov ax, word [bp+012h]                    ; 8b 46 12
    58945869    xor al, al                                ; 30 c0
    58955870    or AL, strict byte 012h                   ; 0c 12
    5896     jmp near 030a6h                           ; e9 b0 fd
     5871    jmp near 03063h                           ; e9 b0 fd
    58975872    mov al, cl                                ; 88 c8
    58985873    xor ah, ah                                ; 30 e4
    5899     call 026eah                               ; e8 ed f3
    5900     jmp short 032ech                          ; eb ed
     5874    call 026a7h                               ; e8 ed f3
     5875    jmp short 032a9h                          ; eb ed
    59015876    push word [bp+008h]                       ; ff 76 08
    59025877    push word [bp+016h]                       ; ff 76 16
     
    59155890    movzx ax, cl                              ; 0f b6 c1
    59165891    mov cx, word [bp+010h]                    ; 8b 4e 10
    5917     call 026efh                               ; e8 c3 f3
    5918     jmp near 03403h                           ; e9 d4 00
     5892    call 026ach                               ; e8 c3 f3
     5893    jmp near 033c0h                           ; e9 d4 00
    59195894    mov bx, si                                ; 89 f3
    59205895    mov dx, word [bp+016h]                    ; 8b 56 16
    59215896    mov ax, word [bp+00ch]                    ; 8b 46 0c
    5922     call 0278bh                               ; e8 51 f4
     5897    call 02748h                               ; e8 51 f4
    59235898    mov ax, word [bp+012h]                    ; 8b 46 12
    59245899    xor al, al                                ; 30 c0
    59255900    or AL, strict byte 01bh                   ; 0c 1b
    5926     jmp near 030a6h                           ; e9 62 fd
     5901    jmp near 03063h                           ; e9 62 fd
    59275902    mov ax, word [bp+012h]                    ; 8b 46 12
    59285903    xor ah, ah                                ; 30 e4
    59295904    cmp ax, strict word 00002h                ; 3d 02 00
    5930     je short 03370h                           ; 74 22
     5905    je short 0332dh                           ; 74 22
    59315906    cmp ax, strict word 00001h                ; 3d 01 00
    5932     je short 03362h                           ; 74 0f
     5907    je short 0331fh                           ; 74 0f
    59335908    test ax, ax                               ; 85 c0
    5934     jne short 0337ch                          ; 75 25
     5909    jne short 03339h                          ; 75 25
    59355910    lea dx, [bp+00ch]                         ; 8d 56 0c
    59365911    mov ax, word [bp+010h]                    ; 8b 46 10
    5937     call 028afh                               ; e8 4f f5
    5938     jmp short 0337ch                          ; eb 1a
     5912    call 0286ch                               ; e8 4f f5
     5913    jmp short 03339h                          ; eb 1a
    59395914    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    59405915    mov dx, word [bp+016h]                    ; 8b 56 16
    59415916    mov ax, word [bp+010h]                    ; 8b 46 10
    5942     call 028c1h                               ; e8 53 f5
    5943     jmp short 0337ch                          ; eb 0c
     5917    call 0287eh                               ; e8 53 f5
     5918    jmp short 03339h                          ; eb 0c
    59445919    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    59455920    mov dx, word [bp+016h]                    ; 8b 56 16
    59465921    mov ax, word [bp+010h]                    ; 8b 46 10
    5947     call 02c2ah                               ; e8 ae f8
     5922    call 02be7h                               ; e8 ae f8
    59485923    mov ax, word [bp+012h]                    ; 8b 46 12
    59495924    xor al, al                                ; 30 c0
    59505925    or AL, strict byte 01ch                   ; 0c 1c
    5951     jmp near 030a6h                           ; e9 20 fd
    5952     call 007a4h                               ; e8 1b d4
     5926    jmp near 03063h                           ; e9 20 fd
     5927    call 007a4h                               ; e8 5e d4
    59535928    test ax, ax                               ; 85 c0
    5954     je near 033feh                            ; 0f 84 6f 00
     5929    je near 033bbh                            ; 0f 84 6f 00
    59555930    mov ax, word [bp+012h]                    ; 8b 46 12
    59565931    xor ah, ah                                ; 30 e4
    59575932    cmp ax, strict word 00002h                ; 3d 02 00
    5958     jc short 033ach                           ; 72 13
    5959     jbe short 033d2h                          ; 76 37
     5933    jc short 03369h                           ; 72 13
     5934    jbe short 0338fh                          ; 76 37
    59605935    cmp ax, strict word 0000ah                ; 3d 0a 00
    5961     je short 033f7h                           ; 74 57
     5936    je short 033b4h                           ; 74 57
    59625937    cmp ax, strict word 00009h                ; 3d 09 00
    5963     je short 033f7h                           ; 74 52
     5938    je short 033b4h                           ; 74 52
    59645939    cmp ax, strict word 00004h                ; 3d 04 00
    5965     je short 033e2h                           ; 74 38
    5966     jmp short 033f7h                          ; eb 4b
     5940    je short 0339fh                           ; 74 38
     5941    jmp short 033b4h                          ; eb 4b
    59675942    cmp ax, strict word 00001h                ; 3d 01 00
    5968     je short 033c2h                           ; 74 11
     5943    je short 0337fh                           ; 74 11
    59695944    test ax, ax                               ; 85 c0
    5970     jne short 033f7h                          ; 75 42
     5945    jne short 033b4h                          ; 75 42
    59715946    mov bx, si                                ; 89 f3
    59725947    mov dx, word [bp+016h]                    ; 8b 56 16
    59735948    lea ax, [bp+012h]                         ; 8d 46 12
    5974     call 03530h                               ; e8 70 01
    5975     jmp short 03403h                          ; eb 41
     5949    call 034edh                               ; e8 70 01
     5950    jmp short 033c0h                          ; eb 41
    59765951    mov cx, si                                ; 89 f1
    59775952    mov bx, word [bp+016h]                    ; 8b 5e 16
    59785953    mov dx, word [bp+010h]                    ; 8b 56 10
    59795954    lea ax, [bp+012h]                         ; 8d 46 12
    5980     call 03659h                               ; e8 89 02
    5981     jmp short 03403h                          ; eb 31
     5955    call 03616h                               ; e8 89 02
     5956    jmp short 033c0h                          ; eb 31
    59825957    mov cx, si                                ; 89 f1
    59835958    mov bx, word [bp+016h]                    ; 8b 5e 16
    59845959    mov dx, word [bp+00ch]                    ; 8b 56 0c
    59855960    lea ax, [bp+012h]                         ; 8d 46 12
    5986     call 0370dh                               ; e8 2d 03
    5987     jmp short 03403h                          ; eb 21
     5961    call 036cah                               ; e8 2d 03
     5962    jmp short 033c0h                          ; eb 21
    59885963    lea ax, [bp+00ch]                         ; 8d 46 0c
    59895964    push ax                                   ; 50
     
    59925967    mov dx, word [bp+010h]                    ; 8b 56 10
    59935968    lea ax, [bp+012h]                         ; 8d 46 12
    5994     call 038f4h                               ; e8 ff 04
    5995     jmp short 03403h                          ; eb 0c
     5969    call 038b1h                               ; e8 ff 04
     5970    jmp short 033c0h                          ; eb 0c
    59965971    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    5997     jmp short 03403h                          ; eb 05
     5972    jmp short 033c0h                          ; eb 05
    59985973    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    59995974    lea sp, [bp-004h]                         ; 8d 66 fc
     
    60025977    pop bp                                    ; 5d
    60035978    retn                                      ; c3
    6004 dispi_set_xres_:                             ; 0xc340a LB 0x1b
     5979dispi_set_xres_:                             ; 0xc33c7 LB 0x1b
    60055980    push bp                                   ; 55
    60065981    mov bp, sp                                ; 89 e5
     
    60195994    pop bp                                    ; 5d
    60205995    retn                                      ; c3
    6021 dispi_set_yres_:                             ; 0xc3425 LB 0x1b
     5996dispi_set_yres_:                             ; 0xc33e2 LB 0x1b
    60225997    push bp                                   ; 55
    60235998    mov bp, sp                                ; 89 e5
     
    60366011    pop bp                                    ; 5d
    60376012    retn                                      ; c3
    6038 dispi_set_bpp_:                              ; 0xc3440 LB 0x1b
     6013dispi_set_bpp_:                              ; 0xc33fd LB 0x1b
    60396014    push bp                                   ; 55
    60406015    mov bp, sp                                ; 89 e5
     
    60536028    pop bp                                    ; 5d
    60546029    retn                                      ; c3
    6055 in_word_:                                    ; 0xc345b LB 0x12
     6030in_word_:                                    ; 0xc3418 LB 0x12
    60566031    push bp                                   ; 55
    60576032    mov bp, sp                                ; 89 e5
     
    60666041    pop bp                                    ; 5d
    60676042    retn                                      ; c3
    6068 in_byte_:                                    ; 0xc346d LB 0x14
     6043in_byte_:                                    ; 0xc342a LB 0x14
    60696044    push bp                                   ; 55
    60706045    mov bp, sp                                ; 89 e5
     
    60816056    pop bp                                    ; 5d
    60826057    retn                                      ; c3
    6083 dispi_get_id_:                               ; 0xc3481 LB 0x14
     6058dispi_get_id_:                               ; 0xc343e LB 0x14
    60846059    push bp                                   ; 55
    60856060    mov bp, sp                                ; 89 e5
     
    60946069    pop bp                                    ; 5d
    60956070    retn                                      ; c3
    6096 dispi_set_id_:                               ; 0xc3495 LB 0x1a
     6071dispi_set_id_:                               ; 0xc3452 LB 0x1a
    60976072    push bp                                   ; 55
    60986073    mov bp, sp                                ; 89 e5
     
    61116086    pop bp                                    ; 5d
    61126087    retn                                      ; c3
    6113 vbe_init_:                                   ; 0xc34af LB 0x2c
     6088vbe_init_:                                   ; 0xc346c LB 0x2c
    61146089    push bp                                   ; 55
    61156090    mov bp, sp                                ; 89 e5
     
    61176092    push dx                                   ; 52
    61186093    mov ax, 0b0c0h                            ; b8 c0 b0
    6119     call 03495h                               ; e8 db ff
    6120     call 03481h                               ; e8 c4 ff
     6094    call 03452h                               ; e8 db ff
     6095    call 0343eh                               ; e8 c4 ff
    61216096    cmp ax, 0b0c0h                            ; 3d c0 b0
    6122     jne short 034d4h                          ; 75 12
     6097    jne short 03491h                          ; 75 12
    61236098    mov bx, strict word 00001h                ; bb 01 00
    61246099    mov dx, 000b9h                            ; ba b9 00
    61256100    mov ax, strict word 00040h                ; b8 40 00
    6126     call 02f85h                               ; e8 b7 fa
     6101    call 02f42h                               ; e8 b7 fa
    61276102    mov ax, 0b0c4h                            ; b8 c4 b0
    6128     call 03495h                               ; e8 c1 ff
     6103    call 03452h                               ; e8 c1 ff
    61296104    lea sp, [bp-004h]                         ; 8d 66 fc
    61306105    pop dx                                    ; 5a
     
    61326107    pop bp                                    ; 5d
    61336108    retn                                      ; c3
    6134 mode_info_find_mode_:                        ; 0xc34db LB 0x55
     6109mode_info_find_mode_:                        ; 0xc3498 LB 0x55
    61356110    push bp                                   ; 55
    61366111    mov bp, sp                                ; 89 e5
     
    61436118    xor dx, dx                                ; 31 d2
    61446119    mov ax, 003b6h                            ; b8 b6 03
    6145     call 0345bh                               ; e8 6d ff
     6120    call 03418h                               ; e8 6d ff
    61466121    cmp ax, 077cch                            ; 3d cc 77
    6147     jne short 03525h                          ; 75 32
     6122    jne short 034e2h                          ; 75 32
    61486123    mov bx, strict word 00004h                ; bb 04 00
    61496124    mov dx, bx                                ; 89 da
    61506125    mov ax, 003b6h                            ; b8 b6 03
    6151     call 0345bh                               ; e8 5d ff
     6126    call 03418h                               ; e8 5d ff
    61526127    mov cx, ax                                ; 89 c1
    61536128    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6154     je short 03525h                           ; 74 20
     6129    je short 034e2h                           ; 74 20
    61556130    lea dx, [bx+002h]                         ; 8d 57 02
    61566131    mov ax, 003b6h                            ; b8 b6 03
    6157     call 0345bh                               ; e8 4d ff
     6132    call 03418h                               ; e8 4d ff
    61586133    lea dx, [bx+044h]                         ; 8d 57 44
    61596134    cmp cx, di                                ; 39 f9
    6160     jne short 03521h                          ; 75 0c
     6135    jne short 034deh                          ; 75 0c
    61616136    test si, si                               ; 85 f6
    6162     jne short 0351dh                          ; 75 04
     6137    jne short 034dah                          ; 75 04
    61636138    mov ax, bx                                ; 89 d8
    6164     jmp short 03527h                          ; eb 0a
     6139    jmp short 034e4h                          ; eb 0a
    61656140    test AL, strict byte 080h                 ; a8 80
    6166     jne short 03519h                          ; 75 f8
     6141    jne short 034d6h                          ; 75 f8
    61676142    mov bx, dx                                ; 89 d3
    6168     jmp short 034f8h                          ; eb d3
     6143    jmp short 034b5h                          ; eb d3
    61696144    xor ax, ax                                ; 31 c0
    61706145    lea sp, [bp-008h]                         ; 8d 66 f8
     
    61756150    pop bp                                    ; 5d
    61766151    retn                                      ; c3
    6177 vbe_biosfn_return_controller_information_: ; 0xc3530 LB 0x129
     6152vbe_biosfn_return_controller_information_: ; 0xc34ed LB 0x129
    61786153    push bp                                   ; 55
    61796154    mov bp, sp                                ; 89 e5
     
    61866161    mov word [bp-00ah], bx                    ; 89 5e f6
    61876162    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6188     call 005a7h                               ; e8 5f d0
     6163    call 005a7h                               ; e8 a2 d0
    61896164    mov word [bp-010h], ax                    ; 89 46 f0
    61906165    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    61926167    xor dx, dx                                ; 31 d2
    61936168    mov ax, 003b6h                            ; b8 b6 03
    6194     call 0345bh                               ; e8 02 ff
     6169    call 03418h                               ; e8 02 ff
    61956170    cmp ax, 077cch                            ; 3d cc 77
    6196     je short 03568h                           ; 74 0a
     6171    je short 03525h                           ; 74 0a
    61976172    push SS                                   ; 16
    61986173    pop ES                                    ; 07
    61996174    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6200     jmp near 03651h                           ; e9 e9 00
     6175    jmp near 0360eh                           ; e9 e9 00
    62016176    mov cx, strict word 00004h                ; b9 04 00
    62026177    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    62036178    mov es, [bp-008h]                         ; 8e 46 f8
    62046179    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6205     jne short 03582h                          ; 75 07
     6180    jne short 0353fh                          ; 75 07
    62066181    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6207     je short 03591h                           ; 74 0f
     6182    je short 0354eh                           ; 74 0f
    62086183    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6209     jne short 03596h                          ; 75 0c
     6184    jne short 03553h                          ; 75 0c
    62106185    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6211     jne short 03596h                          ; 75 05
     6186    jne short 03553h                          ; 75 05
    62126187    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    62136188    mov es, [bp-008h]                         ; 8e 46 f8
     
    62256200    mov dx, strict word 0ffffh                ; ba ff ff
    62266201    mov ax, 003b6h                            ; b8 b6 03
    6227     call 0345bh                               ; e8 8a fe
     6202    call 03418h                               ; e8 8a fe
    62286203    mov es, [bp-008h]                         ; 8e 46 f8
    62296204    mov word [es:bx+012h], ax                 ; 26 89 47 12
    62306205    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6231     je short 03602h                           ; 74 24
     6206    je short 035bfh                           ; 74 24
    62326207    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    62336208    mov word [es:bx+016h], 07e35h             ; 26 c7 47 16 35 7e
     
    62406215    add dx, strict byte 0001bh                ; 83 c2 1b
    62416216    mov ax, 003b6h                            ; b8 b6 03
    6242     call 0346dh                               ; e8 60 fe
     6217    call 0342ah                               ; e8 60 fe
    62436218    xor ah, ah                                ; 30 e4
    62446219    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6245     jnbe short 0362dh                         ; 77 19
     6220    jnbe short 035eah                         ; 77 19
    62466221    mov dx, cx                                ; 89 ca
    62476222    mov ax, 003b6h                            ; b8 b6 03
    6248     call 0345bh                               ; e8 3f fe
     6223    call 03418h                               ; e8 3f fe
    62496224    mov bx, ax                                ; 89 c3
    62506225    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62516226    add dx, word [bp-00ch]                    ; 03 56 f4
    62526227    mov ax, di                                ; 89 f8
    6253     call 02fa1h                               ; e8 78 f9
     6228    call 02f5eh                               ; e8 78 f9
    62546229    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    62556230    add cx, strict byte 00044h                ; 83 c1 44
    62566231    mov dx, cx                                ; 89 ca
    62576232    mov ax, 003b6h                            ; b8 b6 03
    6258     call 0345bh                               ; e8 23 fe
     6233    call 03418h                               ; e8 23 fe
    62596234    mov bx, ax                                ; 89 c3
    62606235    cmp ax, strict word 0ffffh                ; 3d ff ff
    6261     jne short 03602h                          ; 75 c3
     6236    jne short 035bfh                          ; 75 c3
    62626237    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62636238    add dx, word [bp-00ch]                    ; 03 56 f4
    62646239    mov ax, di                                ; 89 f8
    6265     call 02fa1h                               ; e8 57 f9
     6240    call 02f5eh                               ; e8 57 f9
    62666241    push SS                                   ; 16
    62676242    pop ES                                    ; 07
     
    62736248    pop bp                                    ; 5d
    62746249    retn                                      ; c3
    6275 vbe_biosfn_return_mode_information_:         ; 0xc3659 LB 0xb4
     6250vbe_biosfn_return_mode_information_:         ; 0xc3616 LB 0xb4
    62766251    push bp                                   ; 55
    62776252    mov bp, sp                                ; 89 e5
     
    62896264    xor dh, dh                                ; 30 f6
    62906265    and ah, 001h                              ; 80 e4 01
    6291     call 034dbh                               ; e8 65 fe
     6266    call 03498h                               ; e8 65 fe
    62926267    mov word [bp-008h], ax                    ; 89 46 f8
    62936268    test ax, ax                               ; 85 c0
    6294     je near 036fbh                            ; 0f 84 7c 00
     6269    je near 036b8h                            ; 0f 84 7c 00
    62956270    mov cx, 00100h                            ; b9 00 01
    62966271    xor ax, ax                                ; 31 c0
     
    62986273    mov es, bx                                ; 8e c3
    62996274    cld                                       ; fc
    6300     jcxz 0368eh                               ; e3 02
     6275    jcxz 0364bh                               ; e3 02
    63016276    rep stosb                                 ; f3 aa
    63026277    xor cx, cx                                ; 31 c9
    6303     jmp short 03697h                          ; eb 05
     6278    jmp short 03654h                          ; eb 05
    63046279    cmp cx, strict byte 00042h                ; 83 f9 42
    6305     jnc short 036b4h                          ; 73 1d
     6280    jnc short 03671h                          ; 73 1d
    63066281    mov dx, word [bp-008h]                    ; 8b 56 f8
    63076282    inc dx                                    ; 42
     
    63096284    add dx, cx                                ; 01 ca
    63106285    mov ax, 003b6h                            ; b8 b6 03
    6311     call 0346dh                               ; e8 c9 fd
     6286    call 0342ah                               ; e8 c9 fd
    63126287    movzx bx, al                              ; 0f b6 d8
    63136288    mov dx, word [bp-006h]                    ; 8b 56 fa
    63146289    add dx, cx                                ; 01 ca
    63156290    mov ax, si                                ; 89 f0
    6316     call 02f85h                               ; e8 d4 f8
    6317     inc cx                                    ; 41
    6318     jmp short 03692h                          ; eb de
     6291    call 02f42h                               ; e8 d4 f8
     6292    inc cx                                    ; 41
     6293    jmp short 0364fh                          ; eb de
    63196294    mov dx, word [bp-006h]                    ; 8b 56 fa
    63206295    inc dx                                    ; 42
    63216296    inc dx                                    ; 42
    63226297    mov ax, si                                ; 89 f0
    6323     call 02f77h                               ; e8 b9 f8
     6298    call 02f34h                               ; e8 b9 f8
    63246299    test AL, strict byte 001h                 ; a8 01
    6325     je short 036deh                           ; 74 1c
     6300    je short 0369bh                           ; 74 1c
    63266301    mov dx, word [bp-006h]                    ; 8b 56 fa
    63276302    add dx, strict byte 0000ch                ; 83 c2 0c
    63286303    mov bx, 00605h                            ; bb 05 06
    63296304    mov ax, si                                ; 89 f0
    6330     call 02fa1h                               ; e8 d1 f8
     6305    call 02f5eh                               ; e8 d1 f8
    63316306    mov dx, word [bp-006h]                    ; 8b 56 fa
    63326307    add dx, strict byte 0000eh                ; 83 c2 0e
    63336308    mov bx, 0c000h                            ; bb 00 c0
    63346309    mov ax, si                                ; 89 f0
    6335     call 02fa1h                               ; e8 c3 f8
     6310    call 02f5eh                               ; e8 c3 f8
    63366311    mov ax, strict word 0000bh                ; b8 0b 00
    63376312    mov dx, 001ceh                            ; ba ce 01
     
    63436318    mov bx, ax                                ; 89 c3
    63446319    mov ax, si                                ; 89 f0
    6345     call 02fa1h                               ; e8 ab f8
     6320    call 02f5eh                               ; e8 ab f8
    63466321    mov ax, strict word 0004fh                ; b8 4f 00
    6347     jmp short 036feh                          ; eb 03
     6322    jmp short 036bbh                          ; eb 03
    63486323    mov ax, 00100h                            ; b8 00 01
    63496324    push SS                                   ; 16
     
    63566331    pop bp                                    ; 5d
    63576332    retn                                      ; c3
    6358 vbe_biosfn_set_mode_:                        ; 0xc370d LB 0xe9
     6333vbe_biosfn_set_mode_:                        ; 0xc36ca LB 0xe9
    63596334    push bp                                   ; 55
    63606335    mov bp, sp                                ; 89 e5
     
    63706345    mov ax, dx                                ; 89 d0
    63716346    test dx, dx                               ; 85 d2
    6372     je short 0372dh                           ; 74 03
     6347    je short 036eah                           ; 74 03
    63736348    mov dx, strict word 00040h                ; ba 40 00
    63746349    mov byte [bp-006h], dl                    ; 88 56 fa
    63756350    test byte [bp-009h], 080h                 ; f6 46 f7 80
    6376     je short 0373bh                           ; 74 05
     6351    je short 036f8h                           ; 74 05
    63776352    mov dx, 00080h                            ; ba 80 00
    6378     jmp short 0373dh                          ; eb 02
     6353    jmp short 036fah                          ; eb 02
    63796354    xor dx, dx                                ; 31 d2
    63806355    mov byte [bp-008h], dl                    ; 88 56 f8
    63816356    and byte [bp-009h], 001h                  ; 80 66 f7 01
    63826357    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    6383     jnc short 0375dh                          ; 73 12
     6358    jnc short 0371ah                          ; 73 12
    63846359    xor ax, ax                                ; 31 c0
    6385     call 005c9h                               ; e8 79 ce
     6360    call 005c9h                               ; e8 bc ce
    63866361    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6387     call 00fdch                               ; e8 85 d8
     6362    call 00fdch                               ; e8 c8 d8
    63886363    mov ax, strict word 0004fh                ; b8 4f 00
    6389     jmp near 037ech                           ; e9 8f 00
     6364    jmp near 037a9h                           ; e9 8f 00
    63906365    mov dx, ax                                ; 89 c2
    63916366    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6392     call 034dbh                               ; e8 76 fd
     6367    call 03498h                               ; e8 76 fd
    63936368    mov bx, ax                                ; 89 c3
    63946369    test ax, ax                               ; 85 c0
    6395     je near 037e9h                            ; 0f 84 7c 00
     6370    je near 037a6h                            ; 0f 84 7c 00
    63966371    lea dx, [bx+014h]                         ; 8d 57 14
    63976372    mov ax, 003b6h                            ; b8 b6 03
    6398     call 0345bh                               ; e8 e5 fc
     6373    call 03418h                               ; e8 e5 fc
    63996374    mov cx, ax                                ; 89 c1
    64006375    lea dx, [bx+016h]                         ; 8d 57 16
    64016376    mov ax, 003b6h                            ; b8 b6 03
    6402     call 0345bh                               ; e8 da fc
     6377    call 03418h                               ; e8 da fc
    64036378    mov di, ax                                ; 89 c7
    64046379    lea dx, [bx+01bh]                         ; 8d 57 1b
    64056380    mov ax, 003b6h                            ; b8 b6 03
    6406     call 0346dh                               ; e8 e1 fc
     6381    call 0342ah                               ; e8 e1 fc
    64076382    mov bl, al                                ; 88 c3
    64086383    mov dl, al                                ; 88 c2
    64096384    xor ax, ax                                ; 31 c0
    6410     call 005c9h                               ; e8 34 ce
     6385    call 005c9h                               ; e8 77 ce
    64116386    cmp bl, 004h                              ; 80 fb 04
    6412     jne short 037a0h                          ; 75 06
     6387    jne short 0375dh                          ; 75 06
    64136388    mov ax, strict word 0006ah                ; b8 6a 00
    6414     call 00fdch                               ; e8 3c d8
     6389    call 00fdch                               ; e8 7f d8
    64156390    movzx ax, dl                              ; 0f b6 c2
    6416     call 03440h                               ; e8 9a fc
     6391    call 033fdh                               ; e8 9a fc
    64176392    mov ax, cx                                ; 89 c8
    6418     call 0340ah                               ; e8 5f fc
     6393    call 033c7h                               ; e8 5f fc
    64196394    mov ax, di                                ; 89 f8
    6420     call 03425h                               ; e8 75 fc
     6395    call 033e2h                               ; e8 75 fc
    64216396    xor ax, ax                                ; 31 c0
    6422     call 005e7h                               ; e8 32 ce
     6397    call 005e7h                               ; e8 75 ce
    64236398    mov al, byte [bp-008h]                    ; 8a 46 f8
    64246399    or AL, strict byte 001h                   ; 0c 01
     
    64266401    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    64276402    or ax, dx                                 ; 09 d0
    6428     call 005c9h                               ; e8 03 ce
    6429     call 006c3h                               ; e8 fa ce
     6403    call 005c9h                               ; e8 46 ce
     6404    call 006c3h                               ; e8 3d cf
    64306405    mov bx, word [bp-00ah]                    ; 8b 5e f6
    64316406    mov dx, 000bah                            ; ba ba 00
    64326407    mov ax, strict word 00040h                ; b8 40 00
    6433     call 02fa1h                               ; e8 cc f7
     6408    call 02f5eh                               ; e8 cc f7
    64346409    mov al, byte [bp-008h]                    ; 8a 46 f8
    64356410    or AL, strict byte 060h                   ; 0c 60
     
    64376412    mov dx, 00087h                            ; ba 87 00
    64386413    mov ax, strict word 00040h                ; b8 40 00
    6439     call 02f85h                               ; e8 9f f7
    6440     jmp near 03757h                           ; e9 6e ff
     6414    call 02f42h                               ; e8 9f f7
     6415    jmp near 03714h                           ; e9 6e ff
    64416416    mov ax, 00100h                            ; b8 00 01
    64426417    mov word [ss:si], ax                      ; 36 89 04
     
    64466421    pop bp                                    ; 5d
    64476422    retn                                      ; c3
    6448 vbe_biosfn_read_video_state_size_:           ; 0xc37f6 LB 0x8
     6423vbe_biosfn_read_video_state_size_:           ; 0xc37b3 LB 0x8
    64496424    push bp                                   ; 55
    64506425    mov bp, sp                                ; 89 e5
     
    64526427    pop bp                                    ; 5d
    64536428    retn                                      ; c3
    6454 vbe_biosfn_save_video_state_:                ; 0xc37fe LB 0x5b
     6429vbe_biosfn_save_video_state_:                ; 0xc37bb LB 0x5b
    64556430    push bp                                   ; 55
    64566431    mov bp, sp                                ; 89 e5
     
    64716446    mov dx, cx                                ; 89 ca
    64726447    mov ax, di                                ; 89 f8
    6473     call 02fa1h                               ; e8 80 f7
     6448    call 02f5eh                               ; e8 80 f7
    64746449    inc cx                                    ; 41
    64756450    inc cx                                    ; 41
    64766451    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    6477     je short 03850h                           ; 74 27
     6452    je short 0380dh                           ; 74 27
    64786453    mov si, strict word 00001h                ; be 01 00
    6479     jmp short 03833h                          ; eb 05
     6454    jmp short 037f0h                          ; eb 05
    64806455    cmp si, strict byte 00009h                ; 83 fe 09
    6481     jnbe short 03850h                         ; 77 1d
     6456    jnbe short 0380dh                         ; 77 1d
    64826457    cmp si, strict byte 00004h                ; 83 fe 04
    6483     je short 0384dh                           ; 74 15
     6458    je short 0380ah                           ; 74 15
    64846459    mov ax, si                                ; 89 f0
    64856460    mov dx, 001ceh                            ; ba ce 01
     
    64906465    mov dx, cx                                ; 89 ca
    64916466    mov ax, di                                ; 89 f8
    6492     call 02fa1h                               ; e8 56 f7
     6467    call 02f5eh                               ; e8 56 f7
    64936468    inc cx                                    ; 41
    64946469    inc cx                                    ; 41
    64956470    inc si                                    ; 46
    6496     jmp short 0382eh                          ; eb de
     6471    jmp short 037ebh                          ; eb de
    64976472    lea sp, [bp-008h]                         ; 8d 66 f8
    64986473    pop di                                    ; 5f
     
    65026477    pop bp                                    ; 5d
    65036478    retn                                      ; c3
    6504 vbe_biosfn_restore_video_state_:             ; 0xc3859 LB 0x9b
     6479vbe_biosfn_restore_video_state_:             ; 0xc3816 LB 0x9b
    65056480    push bp                                   ; 55
    65066481    mov bp, sp                                ; 89 e5
     
    65116486    mov cx, ax                                ; 89 c1
    65126487    mov bx, dx                                ; 89 d3
    6513     call 02f93h                               ; e8 2c f7
     6488    call 02f50h                               ; e8 2c f7
    65146489    mov word [bp-008h], ax                    ; 89 46 f8
    65156490    inc bx                                    ; 43
    65166491    inc bx                                    ; 43
    65176492    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6518     jne short 03882h                          ; 75 10
     6493    jne short 0383fh                          ; 75 10
    65196494    mov ax, strict word 00004h                ; b8 04 00
    65206495    mov dx, 001ceh                            ; ba ce 01
     
    65236498    mov dx, 001cfh                            ; ba cf 01
    65246499    out DX, ax                                ; ef
    6525     jmp short 038ech                          ; eb 6a
     6500    jmp short 038a9h                          ; eb 6a
    65266501    mov ax, strict word 00001h                ; b8 01 00
    65276502    mov dx, 001ceh                            ; ba ce 01
     
    65296504    mov dx, bx                                ; 89 da
    65306505    mov ax, cx                                ; 89 c8
    6531     call 02f93h                               ; e8 03 f7
     6506    call 02f50h                               ; e8 03 f7
    65326507    mov dx, 001cfh                            ; ba cf 01
    65336508    out DX, ax                                ; ef
     
    65396514    mov dx, bx                                ; 89 da
    65406515    mov ax, cx                                ; 89 c8
    6541     call 02f93h                               ; e8 ef f6
     6516    call 02f50h                               ; e8 ef f6
    65426517    mov dx, 001cfh                            ; ba cf 01
    65436518    out DX, ax                                ; ef
     
    65496524    mov dx, bx                                ; 89 da
    65506525    mov ax, cx                                ; 89 c8
    6551     call 02f93h                               ; e8 db f6
     6526    call 02f50h                               ; e8 db f6
    65526527    mov dx, 001cfh                            ; ba cf 01
    65536528    out DX, ax                                ; ef
     
    65616536    out DX, ax                                ; ef
    65626537    mov si, strict word 00005h                ; be 05 00
    6563     jmp short 038d6h                          ; eb 05
     6538    jmp short 03893h                          ; eb 05
    65646539    cmp si, strict byte 00009h                ; 83 fe 09
    6565     jnbe short 038ech                         ; 77 16
     6540    jnbe short 038a9h                         ; 77 16
    65666541    mov ax, si                                ; 89 f0
    65676542    mov dx, 001ceh                            ; ba ce 01
     
    65696544    mov dx, bx                                ; 89 da
    65706545    mov ax, cx                                ; 89 c8
    6571     call 02f93h                               ; e8 b0 f6
     6546    call 02f50h                               ; e8 b0 f6
    65726547    mov dx, 001cfh                            ; ba cf 01
    65736548    out DX, ax                                ; ef
     
    65756550    inc bx                                    ; 43
    65766551    inc si                                    ; 46
    6577     jmp short 038d1h                          ; eb e5
     6552    jmp short 0388eh                          ; eb e5
    65786553    lea sp, [bp-006h]                         ; 8d 66 fa
    65796554    pop si                                    ; 5e
     
    65826557    pop bp                                    ; 5d
    65836558    retn                                      ; c3
    6584 vbe_biosfn_save_restore_state_:              ; 0xc38f4 LB 0x8c
     6559vbe_biosfn_save_restore_state_:              ; 0xc38b1 LB 0x8c
    65856560    push bp                                   ; 55
    65866561    mov bp, sp                                ; 89 e5
     
    65956570    xor ah, ah                                ; 30 e4
    65966571    cmp ax, strict word 00002h                ; 3d 02 00
    6597     je short 03953h                           ; 74 45
     6572    je short 03910h                           ; 74 45
    65986573    cmp ax, strict word 00001h                ; 3d 01 00
    6599     je short 03937h                           ; 74 24
     6574    je short 038f4h                           ; 74 24
    66006575    test ax, ax                               ; 85 c0
    6601     jne short 0396fh                          ; 75 58
     6576    jne short 0392ch                          ; 75 58
    66026577    mov ax, word [bp-006h]                    ; 8b 46 fa
    6603     call 0288ch                               ; e8 6f ef
     6578    call 02849h                               ; e8 6f ef
    66046579    mov cx, ax                                ; 89 c1
    66056580    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6606     je short 0392ah                           ; 74 05
    6607     call 037f6h                               ; e8 ce fe
     6581    je short 038e7h                           ; 74 05
     6582    call 037b3h                               ; e8 ce fe
    66086583    add ax, cx                                ; 01 c8
    66096584    add ax, strict word 0003fh                ; 05 3f 00
     
    66126587    pop ES                                    ; 07
    66136588    mov word [es:bx], ax                      ; 26 89 07
    6614     jmp short 03972h                          ; eb 3b
     6589    jmp short 0392fh                          ; eb 3b
    66156590    push SS                                   ; 16
    66166591    pop ES                                    ; 07
     
    66186593    mov dx, cx                                ; 89 ca
    66196594    mov ax, word [bp-006h]                    ; 8b 46 fa
    6620     call 028c1h                               ; e8 7d ef
     6595    call 0287eh                               ; e8 7d ef
    66216596    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6622     je short 03972h                           ; 74 28
     6597    je short 0392fh                           ; 74 28
    66236598    mov dx, ax                                ; 89 c2
    66246599    mov ax, cx                                ; 89 c8
    6625     call 037feh                               ; e8 ad fe
    6626     jmp short 03972h                          ; eb 1f
     6600    call 037bbh                               ; e8 ad fe
     6601    jmp short 0392fh                          ; eb 1f
    66276602    push SS                                   ; 16
    66286603    pop ES                                    ; 07
     
    66306605    mov dx, cx                                ; 89 ca
    66316606    mov ax, word [bp-006h]                    ; 8b 46 fa
    6632     call 02c2ah                               ; e8 ca f2
     6607    call 02be7h                               ; e8 ca f2
    66336608    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6634     je short 03972h                           ; 74 0c
     6609    je short 0392fh                           ; 74 0c
    66356610    mov dx, ax                                ; 89 c2
    66366611    mov ax, cx                                ; 89 c8
    6637     call 03859h                               ; e8 ec fe
    6638     jmp short 03972h                          ; eb 03
     6612    call 03816h                               ; e8 ec fe
     6613    jmp short 0392fh                          ; eb 03
    66396614    mov di, 00100h                            ; bf 00 01
    66406615    push SS                                   ; 16
     
    66476622    retn 00002h                               ; c2 02 00
    66486623
    6649   ; Padding 0xc80 bytes at 0xc3980
    6650   times 3200 db 0
     6624  ; Padding 0xcc3 bytes at 0xc393d
     6625  times 3267 db 0
    66516626
    66526627section VBE32 progbits vstart=0x4600 align=1 ; size=0x115 class=CODE group=AUTO
     
    77017676    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    77027677    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7703     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01ch
     7678    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.md5sum

    r50159 r51062  
    1 70d2883225c6a0e2a6d9d96362e9adad *VBoxVgaBios.rom
     1be05e86993fbde08237d26cfc61fb370 *VBoxVgaBios.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