VirtualBox

Ignore:
Timestamp:
May 15, 2014 8:21:54 AM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
93713
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

    r51062 r51255  
    254254    mov bx, 0c000h                            ; bb 00 c0
    255255    mov ds, bx                                ; 8e db
    256     call 02ffdh                               ; e8 0d 2f
     256    call 03007h                               ; e8 17 2f
    257257    popaw                                     ; 61
    258258    pop DS                                    ; 1f
     
    15071507  times 194 db 0
    15081508
    1509 section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f3d class=CODE group=AUTO
     1509section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f47 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 0346ch                               ; e8 f8 29
     1563    call 03476h                               ; e8 02 2a
    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 02f50h                               ; e8 a4 24
     1590    call 02f5ah                               ; e8 ae 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 02f50h                               ; e8 91 24
     1598    call 02f5ah                               ; e8 9b 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 02f34h                               ; e8 52 24
     1619    call 02f3eh                               ; e8 5c 24
    16201620    xor ah, ah                                ; 30 e4
    1621     call 02f0dh                               ; e8 26 24
     1621    call 02f17h                               ; e8 30 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 02f34h                               ; e8 21 24
     1637    call 02f3eh                               ; e8 2b 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 02f50h                               ; e8 30 24
     1642    call 02f5ah                               ; e8 3a 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 02f50h                               ; e8 f9 23
     1662    call 02f5ah                               ; e8 03 24
    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 02f6ch                               ; e8 d6 23
     1699    call 02f76h                               ; e8 e0 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 02f34h                               ; e8 8a 23
     1707    call 02f3eh                               ; e8 94 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 02f34h                               ; e8 7a 23
     1714    call 02f3eh                               ; e8 84 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 02f34h                               ; e8 27 23
     1752    call 02f3eh                               ; e8 31 23
    17531753    xor ah, ah                                ; 30 e4
    1754     call 02f0dh                               ; e8 fb 22
     1754    call 02f17h                               ; e8 05 23
    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 02f50h                               ; e8 fc 22
     1776    call 02f5ah                               ; e8 06 23
    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 02f34h                               ; e8 a6 22
     1797    call 02f3eh                               ; e8 b0 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 02f34h                               ; e8 71 22
     1818    call 02f3eh                               ; e8 7b 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 02f50h                               ; e8 43 22
     1848    call 02f5ah                               ; e8 4d 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 02f34h                               ; e8 16 22
     1854    call 02f3eh                               ; e8 20 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 02f5eh                               ; e8 7d 21
     1961    call 02f68h                               ; e8 87 21
    19621962    mov dx, 00089h                            ; ba 89 00
    19631963    mov ax, strict word 00040h                ; b8 40 00
    1964     call 02f34h                               ; e8 4a 21
     1964    call 02f3eh                               ; e8 54 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 02f50h                               ; e8 5b 21
     1968    call 02f5ah                               ; e8 65 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 02f50h                               ; e8 14 21
     1999    call 02f5ah                               ; e8 1e 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 02f5eh                               ; e8 dd 20
     2038    call 02f68h                               ; e8 e7 20
    20392039    mov dx, strict word 00062h                ; ba 62 00
    20402040    mov ax, strict word 00040h                ; b8 40 00
    2041     call 02f34h                               ; e8 aa 20
     2041    call 02f3eh                               ; e8 b4 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 02f50h                               ; e8 b8 20
     2046    call 02f5ah                               ; e8 c2 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 02f34h                               ; e8 91 20
     2050    call 02f3eh                               ; e8 9b 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 02f50h                               ; e8 7a 20
     2070    call 02f5ah                               ; e8 84 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 02f34h                               ; e8 19 20
     2109    call 02f3eh                               ; e8 23 20
    21102110    xor ah, ah                                ; 30 e4
    2111     call 02f0dh                               ; e8 ed 1f
     2111    call 02f17h                               ; e8 f7 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 02f50h                               ; e8 04 20
     2126    call 02f5ah                               ; e8 0e 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 02f34h                               ; e8 dd 1f
     2130    call 02f3eh                               ; e8 e7 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 02f5eh                               ; e8 e7 1f
     2144    call 02f68h                               ; e8 f1 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 02f50h                               ; e8 b2 1f
     2156    call 02f5ah                               ; e8 bc 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 02f42h                               ; e8 78 1f
     2177    call 02f4ch                               ; e8 82 1f
    21782178    mov dx, word [bp-00eh]                    ; 8b 56 f2
    21792179    mov ax, si                                ; 89 f0
     
    21872187    pop bp                                    ; 5d
    21882188    retn                                      ; c3
    2189 biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x387
     2189biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x391
    21902190    push bp                                   ; 55
    21912191    mov bp, sp                                ; 89 e5
     
    21962196    push di                                   ; 57
    21972197    sub sp, strict byte 00010h                ; 83 ec 10
    2198     mov byte [bp-00eh], al                    ; 88 46 f2
     2198    mov byte [bp-00ch], al                    ; 88 46 f4
    21992199    and AL, strict byte 080h                  ; 24 80
    22002200    mov byte [bp-010h], al                    ; 88 46 f0
     
    22082208    mov dx, 003c5h                            ; ba c5 03
    22092209    out DX, AL                                ; ee
    2210     and byte [bp-00eh], 07fh                  ; 80 66 f2 7f
    2211     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2212     call 02f0dh                               ; e8 00 1f
     2210    and byte [bp-00ch], 07fh                  ; 80 66 f4 7f
     2211    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
     2212    jne short 01010h                          ; 75 04
     2213    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     2214    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     2215    call 02f17h                               ; e8 00 1f
    22132216    mov byte [bp-012h], al                    ; 88 46 ee
    22142217    cmp AL, strict byte 0ffh                  ; 3c ff
    2215     je near 01359h                            ; 0f 84 43 03
     2218    je near 01363h                            ; 0f 84 43 03
    22162219    movzx si, al                              ; 0f b6 f0
    22172220    mov al, byte [si+048afh]                  ; 8a 84 af 48
    2218     mov byte [bp-00ch], al                    ; 88 46 f4
     2221    mov byte [bp-00eh], al                    ; 88 46 f2
    22192222    movzx bx, al                              ; 0f b6 d8
    22202223    sal bx, 006h                              ; c1 e3 06
     
    22272230    mov dx, 00087h                            ; ba 87 00
    22282231    mov ax, strict word 00040h                ; b8 40 00
    2229     call 02f34h                               ; e8 ed 1e
     2232    call 02f3eh                               ; e8 ed 1e
    22302233    mov dx, 00088h                            ; ba 88 00
    22312234    mov ax, strict word 00040h                ; b8 40 00
    2232     call 02f34h                               ; e8 e4 1e
     2235    call 02f3eh                               ; e8 e4 1e
    22332236    mov dx, 00089h                            ; ba 89 00
    22342237    mov ax, strict word 00040h                ; b8 40 00
    2235     call 02f34h                               ; e8 db 1e
     2238    call 02f3eh                               ; e8 db 1e
    22362239    mov ah, al                                ; 88 c4
    22372240    test AL, strict byte 008h                 ; a8 08
    2238     jne near 010ebh                           ; 0f 85 8a 00
     2241    jne near 010f5h                           ; 0f 85 8a 00
    22392242    mov bx, si                                ; 89 f3
    22402243    sal bx, 003h                              ; c1 e3 03
     
    22472250    mov bl, byte [bx+04836h]                  ; 8a 9f 36 48
    22482251    cmp bl, 001h                              ; 80 fb 01
    2249     jc short 0108bh                           ; 72 0e
    2250     jbe short 01094h                          ; 76 15
     2252    jc short 01095h                           ; 72 0e
     2253    jbe short 0109eh                          ; 76 15
    22512254    cmp bl, 003h                              ; 80 fb 03
    2252     je short 0109eh                           ; 74 1a
     2255    je short 010a8h                           ; 74 1a
    22532256    cmp bl, 002h                              ; 80 fb 02
    2254     je short 01099h                           ; 74 10
    2255     jmp short 010a1h                          ; eb 16
     2257    je short 010a3h                           ; 74 10
     2258    jmp short 010abh                          ; eb 16
    22562259    test bl, bl                               ; 84 db
    2257     jne short 010a1h                          ; 75 12
     2260    jne short 010abh                          ; 75 12
    22582261    mov di, 05043h                            ; bf 43 50
    2259     jmp short 010a1h                          ; eb 0d
     2262    jmp short 010abh                          ; eb 0d
    22602263    mov di, 05103h                            ; bf 03 51
    2261     jmp short 010a1h                          ; eb 08
     2264    jmp short 010abh                          ; eb 08
    22622265    mov di, 051c3h                            ; bf c3 51
    2263     jmp short 010a1h                          ; eb 03
     2266    jmp short 010abh                          ; eb 03
    22642267    mov di, 05283h                            ; bf 83 52
    22652268    xor bx, bx                                ; 31 db
    2266     jmp short 010b4h                          ; eb 0f
     2269    jmp short 010beh                          ; eb 0f
    22672270    xor al, al                                ; 30 c0
    22682271    mov dx, 003c9h                            ; ba c9 03
     
    22722275    inc bx                                    ; 43
    22732276    cmp bx, 00100h                            ; 81 fb 00 01
    2274     jnc short 010deh                          ; 73 2a
     2277    jnc short 010e8h                          ; 73 2a
    22752278    movzx si, byte [bp-012h]                  ; 0f b6 76 ee
    22762279    sal si, 003h                              ; c1 e6 03
     
    22782281    movzx dx, byte [si+048bfh]                ; 0f b6 94 bf 48
    22792282    cmp bx, dx                                ; 39 d3
    2280     jnbe short 010a5h                         ; 77 dc
     2283    jnbe short 010afh                         ; 77 dc
    22812284    imul si, bx, strict byte 00003h           ; 6b f3 03
    22822285    add si, di                                ; 01 fe
     
    22882291    mov al, byte [si+002h]                    ; 8a 44 02
    22892292    out DX, AL                                ; ee
    2290     jmp short 010adh                          ; eb cf
     2293    jmp short 010b7h                          ; eb cf
    22912294    test ah, 002h                             ; f6 c4 02
    2292     je short 010ebh                           ; 74 08
     2295    je short 010f5h                           ; 74 08
    22932296    mov dx, 00100h                            ; ba 00 01
    22942297    xor ax, ax                                ; 31 c0
    2295     call 00d2eh                               ; e8 43 fc
     2298    call 00d2eh                               ; e8 39 fc
    22962299    mov dx, 003dah                            ; ba da 03
    22972300    in AL, DX                                 ; ec
     
    22992302    ; sub ah, ah                                ; 2a e4
    23002303    xor bx, bx                                ; 31 db
    2301     jmp short 010fah                          ; eb 05
     2304    jmp short 01104h                          ; eb 05
    23022305    cmp bx, strict byte 00013h                ; 83 fb 13
    2303     jnbe short 01111h                         ; 77 17
     2306    jnbe short 0111bh                         ; 77 17
    23042307    mov al, bl                                ; 88 d8
    23052308    mov dx, 003c0h                            ; ba c0 03
    23062309    out DX, AL                                ; ee
    2307     movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     2310    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    23082311    sal si, 006h                              ; c1 e6 06
    23092312    add si, bx                                ; 01 de
     
    23112314    out DX, AL                                ; ee
    23122315    inc bx                                    ; 43
    2313     jmp short 010f5h                          ; eb e4
     2316    jmp short 010ffh                          ; eb e4
    23142317    mov AL, strict byte 014h                  ; b0 14
    23152318    mov dx, 003c0h                            ; ba c0 03
     
    23232326    out DX, AL                                ; ee
    23242327    mov bx, strict word 00001h                ; bb 01 00
    2325     jmp short 0112eh                          ; eb 05
     2328    jmp short 01138h                          ; eb 05
    23262329    cmp bx, strict byte 00004h                ; 83 fb 04
    2327     jnbe short 01148h                         ; 77 1a
     2330    jnbe short 01152h                         ; 77 1a
    23282331    mov al, bl                                ; 88 d8
    23292332    mov dx, 003c4h                            ; ba c4 03
    23302333    out DX, AL                                ; ee
    2331     movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     2334    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    23322335    sal si, 006h                              ; c1 e6 06
    23332336    add si, bx                                ; 01 de
     
    23362339    out DX, AL                                ; ee
    23372340    inc bx                                    ; 43
    2338     jmp short 01129h                          ; eb e1
     2341    jmp short 01133h                          ; eb e1
    23392342    xor bx, bx                                ; 31 db
    2340     jmp short 01151h                          ; eb 05
     2343    jmp short 0115bh                          ; eb 05
    23412344    cmp bx, strict byte 00008h                ; 83 fb 08
    2342     jnbe short 0116bh                         ; 77 1a
     2345    jnbe short 01175h                         ; 77 1a
    23432346    mov al, bl                                ; 88 d8
    23442347    mov dx, 003ceh                            ; ba ce 03
    23452348    out DX, AL                                ; ee
    2346     movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     2349    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    23472350    sal si, 006h                              ; c1 e6 06
    23482351    add si, bx                                ; 01 de
     
    23512354    out DX, AL                                ; ee
    23522355    inc bx                                    ; 43
    2353     jmp short 0114ch                          ; eb e1
     2356    jmp short 01156h                          ; eb e1
    23542357    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    23552358    sal bx, 003h                              ; c1 e3 03
    23562359    cmp byte [bx+04831h], 001h                ; 80 bf 31 48 01
    2357     jne short 0117eh                          ; 75 05
     2360    jne short 01188h                          ; 75 05
    23582361    mov dx, 003b4h                            ; ba b4 03
    2359     jmp short 01181h                          ; eb 03
     2362    jmp short 0118bh                          ; eb 03
    23602363    mov dx, 003d4h                            ; ba d4 03
    23612364    mov si, dx                                ; 89 d6
     
    23632366    out DX, ax                                ; ef
    23642367    xor bx, bx                                ; 31 db
    2365     jmp short 01190h                          ; eb 05
     2368    jmp short 0119ah                          ; eb 05
    23662369    cmp bx, strict byte 00018h                ; 83 fb 18
    2367     jnbe short 011abh                         ; 77 1b
     2370    jnbe short 011b5h                         ; 77 1b
    23682371    mov al, bl                                ; 88 d8
    23692372    mov dx, si                                ; 89 f2
    23702373    out DX, AL                                ; ee
    2371     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
     2374    movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    23722375    sal cx, 006h                              ; c1 e1 06
    23732376    mov di, cx                                ; 89 cf
     
    23772380    out DX, AL                                ; ee
    23782381    inc bx                                    ; 43
    2379     jmp short 0118bh                          ; eb e0
     2382    jmp short 01195h                          ; eb e0
    23802383    mov bx, cx                                ; 89 cb
    23812384    mov al, byte [bx+048cch]                  ; 8a 87 cc 48
     
    23902393    ; sub ah, ah                                ; 2a e4
    23912394    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2392     jne short 01226h                          ; 75 5f
     2395    jne short 01230h                          ; 75 5f
    23932396    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    23942397    sal bx, 003h                              ; c1 e3 03
    23952398    cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    2396     jne short 011e8h                          ; 75 13
     2399    jne short 011f2h                          ; 75 13
    23972400    mov es, [bx+04833h]                       ; 8e 87 33 48
    23982401    mov cx, 04000h                            ; b9 00 40
     
    24002403    xor di, di                                ; 31 ff
    24012404    cld                                       ; fc
    2402     jcxz 011e6h                               ; e3 02
     2405    jcxz 011f0h                               ; e3 02
    24032406    rep stosw                                 ; f3 ab
    2404     jmp short 01226h                          ; eb 3e
    2405     cmp byte [bp-00eh], 00dh                  ; 80 7e f2 0d
    2406     jnc short 01200h                          ; 73 12
     2407    jmp short 01230h                          ; eb 3e
     2408    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
     2409    jnc short 0120ah                          ; 73 12
    24072410    mov es, [bx+04833h]                       ; 8e 87 33 48
    24082411    mov cx, 04000h                            ; b9 00 40
     
    24102413    xor di, di                                ; 31 ff
    24112414    cld                                       ; fc
    2412     jcxz 011feh                               ; e3 02
     2415    jcxz 01208h                               ; e3 02
    24132416    rep stosw                                 ; f3 ab
    2414     jmp short 01226h                          ; eb 26
     2417    jmp short 01230h                          ; eb 26
    24152418    mov AL, strict byte 002h                  ; b0 02
    24162419    mov dx, 003c4h                            ; ba c4 03
     
    24282431    xor di, di                                ; 31 ff
    24292432    cld                                       ; fc
    2430     jcxz 01222h                               ; e3 02
     2433    jcxz 0122ch                               ; e3 02
    24312434    rep stosw                                 ; f3 ab
    24322435    mov al, byte [bp-01ah]                    ; 8a 46 e6
    24332436    out DX, AL                                ; ee
    2434     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     2437    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    24352438    mov dx, strict word 00049h                ; ba 49 00
    24362439    mov ax, strict word 00040h                ; b8 40 00
    2437     call 02f42h                               ; e8 0f 1d
     2440    call 02f4ch                               ; e8 0f 1d
    24382441    mov bx, word [bp-018h]                    ; 8b 5e e8
    24392442    mov dx, strict word 0004ah                ; ba 4a 00
    24402443    mov ax, strict word 00040h                ; b8 40 00
    2441     call 02f5eh                               ; e8 1f 1d
    2442     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     2444    call 02f68h                               ; e8 1f 1d
     2445    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    24432446    sal bx, 006h                              ; c1 e3 06
    24442447    mov bx, word [bx+048c6h]                  ; 8b 9f c6 48
    24452448    mov dx, strict word 0004ch                ; ba 4c 00
    24462449    mov ax, strict word 00040h                ; b8 40 00
    2447     call 02f5eh                               ; e8 0b 1d
     2450    call 02f68h                               ; e8 0b 1d
    24482451    mov bx, si                                ; 89 f3
    24492452    mov dx, strict word 00063h                ; ba 63 00
    24502453    mov ax, strict word 00040h                ; b8 40 00
    2451     call 02f5eh                               ; e8 00 1d
     2454    call 02f68h                               ; e8 00 1d
    24522455    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    24532456    mov dx, 00084h                            ; ba 84 00
    24542457    mov ax, strict word 00040h                ; b8 40 00
    2455     call 02f42h                               ; e8 d7 1c
     2458    call 02f4ch                               ; e8 d7 1c
    24562459    mov bx, word [bp-014h]                    ; 8b 5e ec
    24572460    mov dx, 00085h                            ; ba 85 00
    24582461    mov ax, strict word 00040h                ; b8 40 00
    2459     call 02f5eh                               ; e8 e7 1c
     2462    call 02f68h                               ; e8 e7 1c
    24602463    mov al, byte [bp-010h]                    ; 8a 46 f0
    24612464    or AL, strict byte 060h                   ; 0c 60
     
    24632466    mov dx, 00087h                            ; ba 87 00
    24642467    mov ax, strict word 00040h                ; b8 40 00
    2465     call 02f42h                               ; e8 ba 1c
     2468    call 02f4ch                               ; e8 ba 1c
    24662469    mov bx, 000f9h                            ; bb f9 00
    24672470    mov dx, 00088h                            ; ba 88 00
    24682471    mov ax, strict word 00040h                ; b8 40 00
    2469     call 02f42h                               ; e8 ae 1c
     2472    call 02f4ch                               ; e8 ae 1c
    24702473    mov dx, 00089h                            ; ba 89 00
    24712474    mov ax, strict word 00040h                ; b8 40 00
    2472     call 02f34h                               ; e8 97 1c
     2475    call 02f3eh                               ; e8 97 1c
    24732476    and AL, strict byte 07fh                  ; 24 7f
    24742477    movzx bx, al                              ; 0f b6 d8
    24752478    mov dx, 00089h                            ; ba 89 00
    24762479    mov ax, strict word 00040h                ; b8 40 00
    2477     call 02f42h                               ; e8 97 1c
     2480    call 02f4ch                               ; e8 97 1c
    24782481    mov bx, strict word 00008h                ; bb 08 00
    24792482    mov dx, 0008ah                            ; ba 8a 00
    24802483    mov ax, strict word 00040h                ; b8 40 00
    2481     call 02f42h                               ; e8 8b 1c
     2484    call 02f4ch                               ; e8 8b 1c
    24822485    mov cx, ds                                ; 8c d9
    24832486    mov bx, 05593h                            ; bb 93 55
    24842487    mov dx, 000a8h                            ; ba a8 00
    24852488    mov ax, strict word 00040h                ; b8 40 00
    2486     call 02f7eh                               ; e8 b9 1c
     2489    call 02f88h                               ; e8 b9 1c
    24872490    xor bx, bx                                ; 31 db
    24882491    mov dx, strict word 00065h                ; ba 65 00
    24892492    mov ax, strict word 00040h                ; b8 40 00
    2490     call 02f42h                               ; e8 72 1c
     2493    call 02f4ch                               ; e8 72 1c
    24912494    xor bx, bx                                ; 31 db
    24922495    mov dx, strict word 00066h                ; ba 66 00
    24932496    mov ax, strict word 00040h                ; b8 40 00
    2494     call 02f42h                               ; e8 67 1c
     2497    call 02f4ch                               ; e8 67 1c
    24952498    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    24962499    sal bx, 003h                              ; c1 e3 03
    24972500    cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    2498     jne short 012f2h                          ; 75 09
     2501    jne short 012fch                          ; 75 09
    24992502    mov dx, strict word 00007h                ; ba 07 00
    25002503    mov ax, strict word 00006h                ; b8 06 00
    2501     call 00dbah                               ; e8 c8 fa
     2504    call 00dbah                               ; e8 be fa
    25022505    xor bx, bx                                ; 31 db
    2503     jmp short 012fbh                          ; eb 05
     2506    jmp short 01305h                          ; eb 05
    25042507    cmp bx, strict byte 00008h                ; 83 fb 08
    2505     jnc short 01306h                          ; 73 0b
     2508    jnc short 01310h                          ; 73 0b
    25062509    movzx ax, bl                              ; 0f b6 c3
    25072510    xor dx, dx                                ; 31 d2
    2508     call 00e5eh                               ; e8 5b fb
     2511    call 00e5eh                               ; e8 51 fb
    25092512    inc bx                                    ; 43
    2510     jmp short 012f6h                          ; eb f0
     2513    jmp short 01300h                          ; eb f0
    25112514    xor ax, ax                                ; 31 c0
    2512     call 00f00h                               ; e8 f5 fb
     2515    call 00f00h                               ; e8 eb fb
    25132516    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    25142517    sal bx, 003h                              ; c1 e3 03
    25152518    cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    2516     jne short 01329h                          ; 75 10
     2519    jne short 01333h                          ; 75 10
    25172520    xor bl, bl                                ; 30 db
    25182521    mov AL, strict byte 004h                  ; b0 04
     
    25252528    mov dx, 059afh                            ; ba af 59
    25262529    mov ax, strict word 0001fh                ; b8 1f 00
    2527     call 00a00h                               ; e8 ce f6
     2530    call 00a00h                               ; e8 c4 f6
    25282531    mov ax, word [bp-014h]                    ; 8b 46 ec
    25292532    cmp ax, strict word 00010h                ; 3d 10 00
    2530     je short 01354h                           ; 74 1a
     2533    je short 0135eh                           ; 74 1a
    25312534    cmp ax, strict word 0000eh                ; 3d 0e 00
    2532     je short 0134fh                           ; 74 10
     2535    je short 01359h                           ; 74 10
    25332536    cmp ax, strict word 00008h                ; 3d 08 00
    2534     jne short 01359h                          ; 75 15
     2537    jne short 01363h                          ; 75 15
    25352538    mov dx, 055afh                            ; ba af 55
    25362539    mov ax, strict word 00043h                ; b8 43 00
    2537     call 00a00h                               ; e8 b3 f6
    2538     jmp short 01359h                          ; eb 0a
     2540    call 00a00h                               ; e8 a9 f6
     2541    jmp short 01363h                          ; eb 0a
    25392542    mov dx, 05dafh                            ; ba af 5d
    2540     jmp short 01347h                          ; eb f3
     2543    jmp short 01351h                          ; eb f3
    25412544    mov dx, 06bafh                            ; ba af 6b
    2542     jmp short 01347h                          ; eb ee
     2545    jmp short 01351h                          ; eb ee
    25432546    lea sp, [bp-00ah]                         ; 8d 66 f6
    25442547    pop di                                    ; 5f
     
    25492552    pop bp                                    ; 5d
    25502553    retn                                      ; c3
    2551 vgamem_copy_pl4_:                            ; 0xc1363 LB 0x76
     2554vgamem_copy_pl4_:                            ; 0xc136d LB 0x76
    25522555    push bp                                   ; 55
    25532556    mov bp, sp                                ; 89 e5
     
    25752578    xor bl, bl                                ; 30 db
    25762579    cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2577     jnc short 013c9h                          ; 73 29
     2580    jnc short 013d3h                          ; 73 29
    25782581    movzx cx, bh                              ; 0f b6 cf
    25792582    movzx si, bl                              ; 0f b6 f3
     
    25872590    mov es, dx                                ; 8e c2
    25882591    cld                                       ; fc
    2589     jcxz 013c5h                               ; e3 06
     2592    jcxz 013cfh                               ; e3 06
    25902593    push DS                                   ; 1e
    25912594    mov ds, dx                                ; 8e da
     
    25942597    db  0feh, 0c3h
    25952598    ; inc bl                                    ; fe c3
    2596     jmp short 0139bh                          ; eb d2
     2599    jmp short 013a5h                          ; eb d2
    25972600    mov ax, strict word 00005h                ; b8 05 00
    25982601    mov dx, 003ceh                            ; ba ce 03
     
    26032606    pop bp                                    ; 5d
    26042607    retn 00004h                               ; c2 04 00
    2605 vgamem_fill_pl4_:                            ; 0xc13d9 LB 0x61
     2608vgamem_fill_pl4_:                            ; 0xc13e3 LB 0x61
    26062609    push bp                                   ; 55
    26072610    mov bp, sp                                ; 89 e5
     
    26242627    xor bl, bl                                ; 30 db
    26252628    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2626     jnc short 0142bh                          ; 73 22
     2629    jnc short 01435h                          ; 73 22
    26272630    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
    26282631    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
     
    26342637    mov es, dx                                ; 8e c2
    26352638    cld                                       ; fc
    2636     jcxz 01427h                               ; e3 02
     2639    jcxz 01431h                               ; e3 02
    26372640    rep stosb                                 ; f3 aa
    26382641    db  0feh, 0c3h
    26392642    ; inc bl                                    ; fe c3
    2640     jmp short 01404h                          ; eb d9
     2643    jmp short 0140eh                          ; eb d9
    26412644    mov ax, strict word 00005h                ; b8 05 00
    26422645    mov dx, 003ceh                            ; ba ce 03
     
    26462649    pop bp                                    ; 5d
    26472650    retn 00004h                               ; c2 04 00
    2648 vgamem_copy_cga_:                            ; 0xc143a LB 0xa4
     2651vgamem_copy_cga_:                            ; 0xc1444 LB 0xa4
    26492652    push bp                                   ; 55
    26502653    mov bp, sp                                ; 89 e5
     
    26712674    xor bl, bl                                ; 30 db
    26722675    cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2673     jnc short 014d5h                          ; 73 61
     2676    jnc short 014dfh                          ; 73 61
    26742677    test bl, 001h                             ; f6 c3 01
    2675     je short 014aah                           ; 74 31
     2678    je short 014b4h                           ; 74 31
    26762679    movzx cx, bh                              ; 0f b6 cf
    26772680    movzx si, bl                              ; 0f b6 f3
     
    26882691    mov es, dx                                ; 8e c2
    26892692    cld                                       ; fc
    2690     jcxz 014a8h                               ; e3 06
     2693    jcxz 014b2h                               ; e3 06
    26912694    push DS                                   ; 1e
    26922695    mov ds, dx                                ; 8e da
    26932696    rep movsb                                 ; f3 a4
    26942697    pop DS                                    ; 1f
    2695     jmp short 014d1h                          ; eb 27
     2698    jmp short 014dbh                          ; eb 27
    26962699    movzx cx, bh                              ; 0f b6 cf
    26972700    movzx ax, bl                              ; 0f b6 c3
     
    27062709    mov es, dx                                ; 8e c2
    27072710    cld                                       ; fc
    2708     jcxz 014d1h                               ; e3 06
     2711    jcxz 014dbh                               ; e3 06
    27092712    push DS                                   ; 1e
    27102713    mov ds, dx                                ; 8e da
     
    27132716    db  0feh, 0c3h
    27142717    ; inc bl                                    ; fe c3
    2715     jmp short 0146fh                          ; eb 9a
     2718    jmp short 01479h                          ; eb 9a
    27162719    lea sp, [bp-004h]                         ; 8d 66 fc
    27172720    pop di                                    ; 5f
     
    27192722    pop bp                                    ; 5d
    27202723    retn 00004h                               ; c2 04 00
    2721 vgamem_fill_cga_:                            ; 0xc14de LB 0x8a
     2724vgamem_fill_cga_:                            ; 0xc14e8 LB 0x8a
    27222725    push bp                                   ; 55
    27232726    mov bp, sp                                ; 89 e5
     
    27382741    xor bl, bl                                ; 30 db
    27392742    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2740     jnc short 0155fh                          ; 73 57
     2743    jnc short 01569h                          ; 73 57
    27412744    test bl, 001h                             ; f6 c3 01
    2742     je short 0153ch                           ; 74 2f
     2745    je short 01546h                           ; 74 2f
    27432746    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    27442747    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
     
    27552758    mov es, dx                                ; 8e c2
    27562759    cld                                       ; fc
    2757     jcxz 0153ah                               ; e3 02
     2760    jcxz 01544h                               ; e3 02
    27582761    rep stosb                                 ; f3 aa
    2759     jmp short 0155bh                          ; eb 1f
     2762    jmp short 01565h                          ; eb 1f
    27602763    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    27612764    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
     
    27682771    mov es, dx                                ; 8e c2
    27692772    cld                                       ; fc
    2770     jcxz 0155bh                               ; e3 02
     2773    jcxz 01565h                               ; e3 02
    27712774    rep stosb                                 ; f3 aa
    27722775    db  0feh, 0c3h
    27732776    ; inc bl                                    ; fe c3
    2774     jmp short 01503h                          ; eb a4
     2777    jmp short 0150dh                          ; eb a4
    27752778    lea sp, [bp-004h]                         ; 8d 66 fc
    27762779    pop di                                    ; 5f
     
    27782781    pop bp                                    ; 5d
    27792782    retn 00004h                               ; c2 04 00
    2780 biosfn_scroll_:                              ; 0xc1568 LB 0x506
     2783biosfn_scroll_:                              ; 0xc1572 LB 0x506
    27812784    push bp                                   ; 55
    27822785    mov bp, sp                                ; 89 e5
     
    27892792    mov byte [bp-006h], cl                    ; 88 4e fa
    27902793    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2791     jnbe near 01a65h                          ; 0f 87 e2 04
     2794    jnbe near 01a6fh                          ; 0f 87 e2 04
    27922795    cmp cl, byte [bp+006h]                    ; 3a 4e 06
    2793     jnbe near 01a65h                          ; 0f 87 db 04
     2796    jnbe near 01a6fh                          ; 0f 87 db 04
    27942797    mov dx, strict word 00049h                ; ba 49 00
    27952798    mov ax, strict word 00040h                ; b8 40 00
    2796     call 02f34h                               ; e8 a1 19
     2799    call 02f3eh                               ; e8 a1 19
    27972800    xor ah, ah                                ; 30 e4
    2798     call 02f0dh                               ; e8 75 19
     2801    call 02f17h                               ; e8 75 19
    27992802    mov byte [bp-00eh], al                    ; 88 46 f2
    28002803    cmp AL, strict byte 0ffh                  ; 3c ff
    2801     je near 01a65h                            ; 0f 84 c4 04
     2804    je near 01a6fh                            ; 0f 84 c4 04
    28022805    mov dx, 00084h                            ; ba 84 00
    28032806    mov ax, strict word 00040h                ; b8 40 00
    2804     call 02f34h                               ; e8 8a 19
     2807    call 02f3eh                               ; e8 8a 19
    28052808    movzx cx, al                              ; 0f b6 c8
    28062809    inc cx                                    ; 41
    28072810    mov dx, strict word 0004ah                ; ba 4a 00
    28082811    mov ax, strict word 00040h                ; b8 40 00
    2809     call 02f50h                               ; e8 99 19
     2812    call 02f5ah                               ; e8 99 19
    28102813    mov word [bp-016h], ax                    ; 89 46 ea
    28112814    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
    2812     jne short 015cch                          ; 75 0c
     2815    jne short 015d6h                          ; 75 0c
    28132816    mov dx, strict word 00062h                ; ba 62 00
    28142817    mov ax, strict word 00040h                ; b8 40 00
    2815     call 02f34h                               ; e8 6b 19
     2818    call 02f3eh                               ; e8 6b 19
    28162819    mov byte [bp+008h], al                    ; 88 46 08
    28172820    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    28182821    cmp ax, cx                                ; 39 c8
    2819     jc short 015dbh                           ; 72 07
     2822    jc short 015e5h                           ; 72 07
    28202823    mov al, cl                                ; 88 c8
    28212824    db  0feh, 0c8h
     
    28242827    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
    28252828    cmp ax, word [bp-016h]                    ; 3b 46 ea
    2826     jc short 015ech                           ; 72 08
     2829    jc short 015f6h                           ; 72 08
    28272830    mov al, byte [bp-016h]                    ; 8a 46 ea
    28282831    db  0feh, 0c8h
     
    28312834    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    28322835    cmp ax, cx                                ; 39 c8
    2833     jbe short 015f8h                          ; 76 04
     2836    jbe short 01602h                          ; 76 04
    28342837    mov byte [bp-010h], 000h                  ; c6 46 f0 00
    28352838    mov al, byte [bp+006h]                    ; 8a 46 06
     
    28502853    imul ax, cx                               ; 0f af c1
    28512854    cmp byte [di+04830h], 000h                ; 80 bd 30 48 00
    2852     jne near 017c7h                           ; 0f 85 9f 01
     2855    jne near 017d1h                           ; 0f 85 9f 01
    28532856    mov dx, ax                                ; 89 c2
    28542857    add dx, ax                                ; 01 c2
     
    28582861    imul bx, dx                               ; 0f af da
    28592862    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2860     jne short 01677h                          ; 75 3a
     2863    jne short 01681h                          ; 75 3a
    28612864    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2862     jne short 01677h                          ; 75 34
     2865    jne short 01681h                          ; 75 34
    28632866    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2864     jne short 01677h                          ; 75 2e
     2867    jne short 01681h                          ; 75 2e
    28652868    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    28662869    cmp dx, word [bp-01ah]                    ; 3b 56 e6
    2867     jne short 01677h                          ; 75 25
     2870    jne short 01681h                          ; 75 25
    28682871    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
    28692872    cmp dx, word [bp-018h]                    ; 3b 56 e8
    2870     jne short 01677h                          ; 75 1c
     2873    jne short 01681h                          ; 75 1c
    28712874    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    28722875    sal dx, 008h                              ; c1 e2 08
     
    28772880    mov di, bx                                ; 89 df
    28782881    cld                                       ; fc
    2879     jcxz 01674h                               ; e3 02
     2882    jcxz 0167eh                               ; e3 02
    28802883    rep stosw                                 ; f3 ab
    2881     jmp near 01a65h                           ; e9 ee 03
     2884    jmp near 01a6fh                           ; e9 ee 03
    28822885    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    2883     jne near 0171ch                           ; 0f 85 9d 00
     2886    jne near 01726h                           ; 0f 85 9d 00
    28842887    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    28852888    mov word [bp-014h], ax                    ; 89 46 ec
    28862889    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    28872890    cmp dx, word [bp-014h]                    ; 3b 56 ec
    2888     jc near 01a65h                            ; 0f 82 d4 03
     2891    jc near 01a6fh                            ; 0f 82 d4 03
    28892892    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    28902893    add ax, word [bp-014h]                    ; 03 46 ec
    28912894    cmp ax, dx                                ; 39 d0
    2892     jnbe short 016a2h                         ; 77 06
     2895    jnbe short 016ach                         ; 77 06
    28932896    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2894     jne short 016d5h                          ; 75 33
     2897    jne short 016dfh                          ; 75 33
    28952898    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    28962899    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    29082911    mov es, [si+04833h]                       ; 8e 84 33 48
    29092912    cld                                       ; fc
    2910     jcxz 016d3h                               ; e3 02
     2913    jcxz 016ddh                               ; e3 02
    29112914    rep stosw                                 ; f3 ab
    2912     jmp short 01716h                          ; eb 41
     2915    jmp short 01720h                          ; eb 41
    29132916    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    29142917    mov word [bp-01ch], dx                    ; 89 56 e4
     
    29322935    mov es, ax                                ; 8e c0
    29332936    cld                                       ; fc
    2934     jcxz 01716h                               ; e3 06
     2937    jcxz 01720h                               ; e3 06
    29352938    push DS                                   ; 1e
    29362939    mov ds, dx                                ; 8e da
     
    29382941    pop DS                                    ; 1f
    29392942    inc word [bp-014h]                        ; ff 46 ec
    2940     jmp near 01686h                           ; e9 6a ff
     2943    jmp near 01690h                           ; e9 6a ff
    29412944    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    29422945    mov word [bp-014h], ax                    ; 89 46 ec
    29432946    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    29442947    cmp ax, word [bp-014h]                    ; 3b 46 ec
    2945     jnbe near 01a65h                          ; 0f 87 37 03
     2948    jnbe near 01a6fh                          ; 0f 87 37 03
    29462949    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    29472950    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    29482951    add ax, dx                                ; 01 d0
    29492952    cmp ax, word [bp-014h]                    ; 3b 46 ec
    2950     jnbe short 01743h                         ; 77 06
     2953    jnbe short 0174dh                         ; 77 06
    29512954    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2952     jne short 01776h                          ; 75 33
     2955    jne short 01780h                          ; 75 33
    29532956    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    29542957    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    29662969    mov es, [si+04833h]                       ; 8e 84 33 48
    29672970    cld                                       ; fc
    2968     jcxz 01774h                               ; e3 02
     2971    jcxz 0177eh                               ; e3 02
    29692972    rep stosw                                 ; f3 ab
    2970     jmp short 017b6h                          ; eb 40
     2973    jmp short 017c0h                          ; eb 40
    29712974    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    29722975    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     
    29892992    mov es, ax                                ; 8e c0
    29902993    cld                                       ; fc
    2991     jcxz 017b6h                               ; e3 06
     2994    jcxz 017c0h                               ; e3 06
    29922995    push DS                                   ; 1e
    29932996    mov ds, dx                                ; 8e da
     
    29962999    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    29973000    cmp ax, word [bp-014h]                    ; 3b 46 ec
    2998     jc near 01a65h                            ; 0f 82 a4 02
     3001    jc near 01a6fh                            ; 0f 82 a4 02
    29993002    dec word [bp-014h]                        ; ff 4e ec
    3000     jmp near 01723h                           ; e9 5c ff
     3003    jmp near 0172dh                           ; e9 5c ff
    30013004    movzx bx, byte [si+048afh]                ; 0f b6 9c af 48
    30023005    sal bx, 006h                              ; c1 e3 06
     
    30053008    mov bl, byte [di+04831h]                  ; 8a 9d 31 48
    30063009    cmp bl, 004h                              ; 80 fb 04
    3007     je short 017eeh                           ; 74 0f
     3010    je short 017f8h                           ; 74 0f
    30083011    cmp bl, 003h                              ; 80 fb 03
    3009     je short 017eeh                           ; 74 0a
     3012    je short 017f8h                           ; 74 0a
    30103013    cmp bl, 002h                              ; 80 fb 02
    3011     je near 0192dh                            ; 0f 84 42 01
    3012     jmp near 01a65h                           ; e9 77 02
     3014    je near 01937h                            ; 0f 84 42 01
     3015    jmp near 01a6fh                           ; e9 77 02
    30133016    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3014     jne short 01846h                          ; 75 52
     3017    jne short 01850h                          ; 75 52
    30153018    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3016     jne short 01846h                          ; 75 4c
     3019    jne short 01850h                          ; 75 4c
    30173020    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3018     jne short 01846h                          ; 75 46
     3021    jne short 01850h                          ; 75 46
    30193022    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    30203023    mov ax, cx                                ; 89 c8
    30213024    dec ax                                    ; 48
    30223025    cmp dx, ax                                ; 39 c2
    3023     jne short 01846h                          ; 75 3b
     3026    jne short 01850h                          ; 75 3b
    30243027    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
    30253028    mov ax, word [bp-016h]                    ; 8b 46 ea
    30263029    dec ax                                    ; 48
    30273030    cmp dx, ax                                ; 39 c2
    3028     jne short 01846h                          ; 75 2f
     3031    jne short 01850h                          ; 75 2f
    30293032    mov ax, 00205h                            ; b8 05 02
    30303033    mov dx, 003ceh                            ; ba ce 03
     
    30393042    xor di, di                                ; 31 ff
    30403043    cld                                       ; fc
    3041     jcxz 0183fh                               ; e3 02
     3044    jcxz 01849h                               ; e3 02
    30423045    rep stosb                                 ; f3 aa
    30433046    mov ax, strict word 00005h                ; b8 05 00
    30443047    out DX, ax                                ; ef
    3045     jmp near 01a65h                           ; e9 1f 02
     3048    jmp near 01a6fh                           ; e9 1f 02
    30463049    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3047     jne short 018b5h                          ; 75 69
     3050    jne short 018bfh                          ; 75 69
    30483051    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    30493052    mov word [bp-014h], ax                    ; 89 46 ec
    30503053    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    30513054    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3052     jc near 01a65h                            ; 0f 82 07 02
     3055    jc near 01a6fh                            ; 0f 82 07 02
    30533056    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    30543057    add dx, word [bp-014h]                    ; 03 56 ec
    30553058    cmp dx, ax                                ; 39 c2
    3056     jnbe short 0186fh                         ; 77 06
     3059    jnbe short 01879h                         ; 77 06
    30573060    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3058     jne short 0188eh                          ; 75 1f
     3061    jne short 01898h                          ; 75 1f
    30593062    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    30603063    push ax                                   ; 50
     
    30653068    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    30663069    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3067     call 013d9h                               ; e8 4d fb
    3068     jmp short 018b0h                          ; eb 22
     3070    call 013e3h                               ; e8 4d fb
     3071    jmp short 018bah                          ; eb 22
    30693072    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    30703073    push ax                                   ; 50
     
    30773080    movzx dx, al                              ; 0f b6 d0
    30783081    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3079     call 01363h                               ; e8 b3 fa
     3082    call 0136dh                               ; e8 b3 fa
    30803083    inc word [bp-014h]                        ; ff 46 ec
    3081     jmp short 01853h                          ; eb 9e
     3084    jmp short 0185dh                          ; eb 9e
    30823085    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    30833086    mov word [bp-014h], ax                    ; 89 46 ec
    30843087    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    30853088    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3086     jnbe near 01a65h                          ; 0f 87 9e 01
     3089    jnbe near 01a6fh                          ; 0f 87 9e 01
    30873090    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    30883091    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    30893092    add ax, dx                                ; 01 d0
    30903093    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3091     jnbe short 018dch                         ; 77 06
     3094    jnbe short 018e6h                         ; 77 06
    30923095    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3093     jne short 018fbh                          ; 75 1f
     3096    jne short 01905h                          ; 75 1f
    30943097    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    30953098    push ax                                   ; 50
     
    31003103    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    31013104    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3102     call 013d9h                               ; e8 e0 fa
    3103     jmp short 0191dh                          ; eb 22
     3105    call 013e3h                               ; e8 e0 fa
     3106    jmp short 01927h                          ; eb 22
    31043107    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    31053108    push ax                                   ; 50
     
    31123115    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    31133116    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3114     call 01363h                               ; e8 46 fa
     3117    call 0136dh                               ; e8 46 fa
    31153118    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    31163119    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3117     jc near 01a65h                            ; 0f 82 3d 01
     3120    jc near 01a6fh                            ; 0f 82 3d 01
    31183121    dec word [bp-014h]                        ; ff 4e ec
    3119     jmp short 018bch                          ; eb 8f
     3122    jmp short 018c6h                          ; eb 8f
    31203123    mov dl, byte [di+04832h]                  ; 8a 95 32 48
    31213124    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3122     jne short 01974h                          ; 75 3d
     3125    jne short 0197eh                          ; 75 3d
    31233126    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3124     jne short 01974h                          ; 75 37
     3127    jne short 0197eh                          ; 75 37
    31253128    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3126     jne short 01974h                          ; 75 31
     3129    jne short 0197eh                          ; 75 31
    31273130    movzx bx, byte [bp+004h]                  ; 0f b6 5e 04
    31283131    cmp bx, word [bp-01ah]                    ; 3b 5e e6
    3129     jne short 01974h                          ; 75 28
     3132    jne short 0197eh                          ; 75 28
    31303133    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
    31313134    cmp bx, word [bp-018h]                    ; 3b 5e e8
    3132     jne short 01974h                          ; 75 1f
     3135    jne short 0197eh                          ; 75 1f
    31333136    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    31343137    imul ax, bx                               ; 0f af c3
     
    31393142    xor di, di                                ; 31 ff
    31403143    cld                                       ; fc
    3141     jcxz 01971h                               ; e3 02
     3144    jcxz 0197bh                               ; e3 02
    31423145    rep stosb                                 ; f3 aa
    3143     jmp near 01a65h                           ; e9 f1 00
     3146    jmp near 01a6fh                           ; e9 f1 00
    31443147    cmp dl, 002h                              ; 80 fa 02
    3145     jne short 01982h                          ; 75 09
     3148    jne short 0198ch                          ; 75 09
    31463149    sal byte [bp-006h], 1                     ; d0 66 fa
    31473150    sal byte [bp-012h], 1                     ; d0 66 ee
    31483151    sal word [bp-016h], 1                     ; d1 66 ea
    31493152    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3150     jne short 019f1h                          ; 75 69
     3153    jne short 019fbh                          ; 75 69
    31513154    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    31523155    mov word [bp-014h], ax                    ; 89 46 ec
    31533156    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    31543157    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3155     jc near 01a65h                            ; 0f 82 cb 00
     3158    jc near 01a6fh                            ; 0f 82 cb 00
    31563159    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    31573160    add dx, word [bp-014h]                    ; 03 56 ec
    31583161    cmp dx, ax                                ; 39 c2
    3159     jnbe short 019abh                         ; 77 06
     3162    jnbe short 019b5h                         ; 77 06
    31603163    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3161     jne short 019cah                          ; 75 1f
     3164    jne short 019d4h                          ; 75 1f
    31623165    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    31633166    push ax                                   ; 50
     
    31683171    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    31693172    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3170     call 014deh                               ; e8 16 fb
    3171     jmp short 019ech                          ; eb 22
     3173    call 014e8h                               ; e8 16 fb
     3174    jmp short 019f6h                          ; eb 22
    31723175    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    31733176    push ax                                   ; 50
     
    31803183    movzx dx, al                              ; 0f b6 d0
    31813184    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3182     call 0143ah                               ; e8 4e fa
     3185    call 01444h                               ; e8 4e fa
    31833186    inc word [bp-014h]                        ; ff 46 ec
    3184     jmp short 0198fh                          ; eb 9e
     3187    jmp short 01999h                          ; eb 9e
    31853188    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    31863189    mov word [bp-014h], ax                    ; 89 46 ec
    31873190    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    31883191    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3189     jnbe short 01a65h                         ; 77 64
     3192    jnbe short 01a6fh                         ; 77 64
    31903193    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    31913194    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    31923195    add ax, dx                                ; 01 d0
    31933196    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3194     jnbe short 01a16h                         ; 77 06
     3197    jnbe short 01a20h                         ; 77 06
    31953198    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3196     jne short 01a35h                          ; 75 1f
     3199    jne short 01a3fh                          ; 75 1f
    31973200    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    31983201    push ax                                   ; 50
     
    32033206    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    32043207    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3205     call 014deh                               ; e8 ab fa
    3206     jmp short 01a57h                          ; eb 22
     3208    call 014e8h                               ; e8 ab fa
     3209    jmp short 01a61h                          ; eb 22
    32073210    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    32083211    push ax                                   ; 50
     
    32153218    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    32163219    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3217     call 0143ah                               ; e8 e3 f9
     3220    call 01444h                               ; e8 e3 f9
    32183221    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    32193222    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3220     jc short 01a65h                           ; 72 05
     3223    jc short 01a6fh                           ; 72 05
    32213224    dec word [bp-014h]                        ; ff 4e ec
    3222     jmp short 019f8h                          ; eb 93
     3225    jmp short 01a02h                          ; eb 93
    32233226    lea sp, [bp-004h]                         ; 8d 66 fc
    32243227    pop di                                    ; 5f
     
    32263229    pop bp                                    ; 5d
    32273230    retn 00008h                               ; c2 08 00
    3228 write_gfx_char_pl4_:                         ; 0xc1a6e LB 0xeb
     3231write_gfx_char_pl4_:                         ; 0xc1a78 LB 0xeb
    32293232    push bp                                   ; 55
    32303233    mov bp, sp                                ; 89 e5
     
    32353238    mov ah, bl                                ; 88 dc
    32363239    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
    3237     je short 01a8ch                           ; 74 0b
     3240    je short 01a96h                           ; 74 0b
    32383241    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
    3239     jne short 01a91h                          ; 75 0a
     3242    jne short 01a9bh                          ; 75 0a
    32403243    mov di, 05dafh                            ; bf af 5d
    3241     jmp short 01a94h                          ; eb 08
     3244    jmp short 01a9eh                          ; eb 08
    32423245    mov di, 06bafh                            ; bf af 6b
    3243     jmp short 01a94h                          ; eb 03
     3246    jmp short 01a9eh                          ; eb 03
    32443247    mov di, 055afh                            ; bf af 55
    32453248    movzx si, cl                              ; 0f b6 f1
     
    32613264    out DX, ax                                ; ef
    32623265    test byte [bp-006h], 080h                 ; f6 46 fa 80
    3263     je short 01acfh                           ; 74 06
     3266    je short 01ad9h                           ; 74 06
    32643267    mov ax, 01803h                            ; b8 03 18
    32653268    out DX, ax                                ; ef
    3266     jmp short 01ad3h                          ; eb 04
     3269    jmp short 01addh                          ; eb 04
    32673270    mov ax, strict word 00003h                ; b8 03 00
    32683271    out DX, ax                                ; ef
    32693272    xor ch, ch                                ; 30 ed
    32703273    cmp ch, byte [bp+006h]                    ; 3a 6e 06
    3271     jnc short 01b41h                          ; 73 67
     3274    jnc short 01b4bh                          ; 73 67
    32723275    movzx si, ch                              ; 0f b6 f5
    32733276    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    32753278    add si, word [bp-00eh]                    ; 03 76 f2
    32763279    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    3277     jmp short 01b00h                          ; eb 13
     3280    jmp short 01b0ah                          ; eb 13
    32783281    xor bx, bx                                ; 31 db
    32793282    mov dx, si                                ; 89 f2
    32803283    mov ax, 0a000h                            ; b8 00 a0
    3281     call 02f42h                               ; e8 4b 14
     3284    call 02f4ch                               ; e8 4b 14
    32823285    inc byte [bp-008h]                        ; fe 46 f8
    32833286    cmp byte [bp-008h], 008h                  ; 80 7e f8 08
    3284     jnc short 01b3dh                          ; 73 3d
     3287    jnc short 01b47h                          ; 73 3d
    32853288    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    32863289    mov cl, al                                ; 88 c1
     
    32953298    mov dx, si                                ; 89 f2
    32963299    mov ax, 0a000h                            ; b8 00 a0
    3297     call 02f34h                               ; e8 13 14
     3300    call 02f3eh                               ; e8 13 14
    32983301    movzx ax, ch                              ; 0f b6 c5
    32993302    add ax, word [bp-00ah]                    ; 03 46 f6
     
    33023305    movzx ax, byte [bx]                       ; 0f b6 07
    33033306    test word [bp-00ch], ax                   ; 85 46 f4
    3304     je short 01aedh                           ; 74 ba
     3307    je short 01af7h                           ; 74 ba
    33053308    mov al, byte [bp-006h]                    ; 8a 46 fa
    33063309    and AL, strict byte 00fh                  ; 24 0f
    33073310    movzx bx, al                              ; 0f b6 d8
    3308     jmp short 01aefh                          ; eb b2
     3311    jmp short 01af9h                          ; eb b2
    33093312    db  0feh, 0c5h
    33103313    ; inc ch                                    ; fe c5
    3311     jmp short 01ad5h                          ; eb 94
     3314    jmp short 01adfh                          ; eb 94
    33123315    mov ax, 0ff08h                            ; b8 08 ff
    33133316    mov dx, 003ceh                            ; ba ce 03
     
    33223325    pop bp                                    ; 5d
    33233326    retn 00004h                               ; c2 04 00
    3324 write_gfx_char_cga_:                         ; 0xc1b59 LB 0x11e
     3327write_gfx_char_cga_:                         ; 0xc1b63 LB 0x11e
    33253328    push bp                                   ; 55
    33263329    mov bp, sp                                ; 89 e5
     
    33403343    sal di, 003h                              ; c1 e7 03
    33413344    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    3342     jmp near 01bd9h                           ; e9 50 00
     3345    jmp near 01be3h                           ; e9 50 00
    33433346    xor al, al                                ; 30 c0
    33443347    xor ah, ah                                ; 30 e4
    3345     jmp short 01b9ah                          ; eb 0b
     3348    jmp short 01ba4h                          ; eb 0b
    33463349    or al, bl                                 ; 08 d8
    33473350    shr ch, 1                                 ; d0 ed
     
    33493352    ; inc ah                                    ; fe c4
    33503353    cmp ah, 008h                              ; 80 fc 08
    3351     jnc short 01bc2h                          ; 73 28
     3354    jnc short 01bcch                          ; 73 28
    33523355    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    33533356    add bx, di                                ; 01 fb
     
    33563359    movzx dx, ch                              ; 0f b6 d5
    33573360    test bx, dx                               ; 85 d3
    3358     je short 01b91h                           ; 74 e5
     3361    je short 01b9bh                           ; 74 e5
    33593362    mov CL, strict byte 007h                  ; b1 07
    33603363    sub cl, ah                                ; 28 e1
     
    33633366    sal bl, CL                                ; d2 e3
    33643367    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3365     je short 01b8fh                           ; 74 d1
     3368    je short 01b99h                           ; 74 d1
    33663369    xor al, bl                                ; 30 d8
    3367     jmp short 01b91h                          ; eb cf
     3370    jmp short 01b9bh                          ; eb cf
    33683371    movzx bx, al                              ; 0f b6 d8
    33693372    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33703373    mov ax, 0b800h                            ; b8 00 b8
    3371     call 02f42h                               ; e8 74 13
     3374    call 02f4ch                               ; e8 74 13
    33723375    inc byte [bp-006h]                        ; fe 46 fa
    33733376    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
    3374     jnc near 01c6eh                           ; 0f 83 95 00
     3377    jnc near 01c78h                           ; 0f 83 95 00
    33753378    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    33763379    sar ax, 1                                 ; d1 f8
     
    33803383    mov word [bp-00ah], bx                    ; 89 5e f6
    33813384    test byte [bp-006h], 001h                 ; f6 46 fa 01
    3382     je short 01bf4h                           ; 74 04
     3385    je short 01bfeh                           ; 74 04
    33833386    add byte [bp-009h], 020h                  ; 80 46 f7 20
    33843387    mov CH, strict byte 080h                  ; b5 80
    33853388    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
    3386     jne short 01c0dh                          ; 75 11
     3389    jne short 01c17h                          ; 75 11
    33873390    test byte [bp-008h], ch                   ; 84 6e f8
    3388     je short 01b89h                           ; 74 88
     3391    je short 01b93h                           ; 74 88
    33893392    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33903393    mov ax, 0b800h                            ; b8 00 b8
    3391     call 02f34h                               ; e8 2a 13
    3392     jmp near 01b8bh                           ; e9 7e ff
     3394    call 02f3eh                               ; e8 2a 13
     3395    jmp near 01b95h                           ; e9 7e ff
    33933396    test ch, ch                               ; 84 ed
    3394     jbe short 01bceh                          ; 76 bd
     3397    jbe short 01bd8h                          ; 76 bd
    33953398    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3396     je short 01c22h                           ; 74 0b
     3399    je short 01c2ch                           ; 74 0b
    33973400    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33983401    mov ax, 0b800h                            ; b8 00 b8
    3399     call 02f34h                               ; e8 14 13
    3400     jmp short 01c24h                          ; eb 02
     3402    call 02f3eh                               ; e8 14 13
     3403    jmp short 01c2eh                          ; eb 02
    34013404    xor al, al                                ; 30 c0
    34023405    xor ah, ah                                ; 30 e4
    3403     jmp short 01c33h                          ; eb 0b
     3406    jmp short 01c3dh                          ; eb 0b
    34043407    or al, bl                                 ; 08 d8
    34053408    shr ch, 1                                 ; d0 ed
     
    34073410    ; inc ah                                    ; fe c4
    34083411    cmp ah, 004h                              ; 80 fc 04
    3409     jnc short 01c5dh                          ; 73 2a
     3412    jnc short 01c67h                          ; 73 2a
    34103413    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    34113414    add bx, di                                ; 01 fb
     
    34143417    movzx bx, ch                              ; 0f b6 dd
    34153418    test bx, dx                               ; 85 d3
    3416     je short 01c2ah                           ; 74 e5
     3419    je short 01c34h                           ; 74 e5
    34173420    mov CL, strict byte 003h                  ; b1 03
    34183421    sub cl, ah                                ; 28 e1
     
    34223425    sal bl, CL                                ; d2 e3
    34233426    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3424     je short 01c28h                           ; 74 cf
     3427    je short 01c32h                           ; 74 cf
    34253428    xor al, bl                                ; 30 d8
    3426     jmp short 01c2ah                          ; eb cd
     3429    jmp short 01c34h                          ; eb cd
    34273430    movzx bx, al                              ; 0f b6 d8
    34283431    mov dx, word [bp-00ah]                    ; 8b 56 f6
    34293432    mov ax, 0b800h                            ; b8 00 b8
    3430     call 02f42h                               ; e8 d9 12
     3433    call 02f4ch                               ; e8 d9 12
    34313434    inc word [bp-00ah]                        ; ff 46 f6
    3432     jmp short 01c0dh                          ; eb 9f
     3435    jmp short 01c17h                          ; eb 9f
    34333436    lea sp, [bp-004h]                         ; 8d 66 fc
    34343437    pop di                                    ; 5f
     
    34363439    pop bp                                    ; 5d
    34373440    retn 00004h                               ; c2 04 00
    3438 write_gfx_char_lin_:                         ; 0xc1c77 LB 0x91
     3441write_gfx_char_lin_:                         ; 0xc1c81 LB 0x91
    34393442    push bp                                   ; 55
    34403443    mov bp, sp                                ; 89 e5
     
    34553458    sal si, 003h                              ; c1 e6 03
    34563459    xor cl, cl                                ; 30 c9
    3457     jmp short 01ce2h                          ; eb 3b
     3460    jmp short 01cech                          ; eb 3b
    34583461    cmp ch, 008h                              ; 80 fd 08
    3459     jnc short 01cdbh                          ; 73 2f
     3462    jnc short 01ce5h                          ; 73 2f
    34603463    xor al, al                                ; 30 c0
    34613464    movzx dx, cl                              ; 0f b6 d1
     
    34663469    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    34673470    test dx, bx                               ; 85 da
    3468     je short 01cc5h                           ; 74 03
     3471    je short 01ccfh                           ; 74 03
    34693472    mov al, byte [bp-006h]                    ; 8a 46 fa
    34703473    movzx bx, al                              ; 0f b6 d8
     
    34723475    add dx, word [bp-00ah]                    ; 03 56 f6
    34733476    mov ax, 0a000h                            ; b8 00 a0
    3474     call 02f42h                               ; e8 6e 12
     3477    call 02f4ch                               ; e8 6e 12
    34753478    shr byte [bp-008h], 1                     ; d0 6e f8
    34763479    db  0feh, 0c5h
    34773480    ; inc ch                                    ; fe c5
    3478     jmp short 01ca7h                          ; eb cc
     3481    jmp short 01cb1h                          ; eb cc
    34793482    db  0feh, 0c1h
    34803483    ; inc cl                                    ; fe c1
    34813484    cmp cl, 008h                              ; 80 f9 08
    3482     jnc short 01cffh                          ; 73 1d
     3485    jnc short 01d09h                          ; 73 1d
    34833486    movzx bx, cl                              ; 0f b6 d9
    34843487    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
     
    34903493    mov byte [bp-008h], 080h                  ; c6 46 f8 80
    34913494    xor ch, ch                                ; 30 ed
    3492     jmp short 01cach                          ; eb ad
     3495    jmp short 01cb6h                          ; eb ad
    34933496    lea sp, [bp-004h]                         ; 8d 66 fc
    34943497    pop di                                    ; 5f
     
    34963499    pop bp                                    ; 5d
    34973500    retn 00002h                               ; c2 02 00
    3498 biosfn_write_char_attr_:                     ; 0xc1d08 LB 0x168
     3501biosfn_write_char_attr_:                     ; 0xc1d12 LB 0x168
    34993502    push bp                                   ; 55
    35003503    mov bp, sp                                ; 89 e5
     
    35083511    mov dx, strict word 00049h                ; ba 49 00
    35093512    mov ax, strict word 00040h                ; b8 40 00
    3510     call 02f34h                               ; e8 10 12
     3513    call 02f3eh                               ; e8 10 12
    35113514    xor ah, ah                                ; 30 e4
    3512     call 02f0dh                               ; e8 e4 11
     3515    call 02f17h                               ; e8 e4 11
    35133516    mov cl, al                                ; 88 c1
    35143517    mov byte [bp-006h], al                    ; 88 46 fa
    35153518    cmp AL, strict byte 0ffh                  ; 3c ff
    3516     je near 01e69h                            ; 0f 84 35 01
     3519    je near 01e73h                            ; 0f 84 35 01
    35173520    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    35183521    lea bx, [bp-01ch]                         ; 8d 5e e4
    35193522    lea dx, [bp-01ah]                         ; 8d 56 e6
    3520     call 00a88h                               ; e8 47 ed
     3523    call 00a88h                               ; e8 3d ed
    35213524    mov al, byte [bp-01ch]                    ; 8a 46 e4
    35223525    mov byte [bp-00ch], al                    ; 88 46 f4
     
    35273530    mov dx, 00084h                            ; ba 84 00
    35283531    mov ax, strict word 00040h                ; b8 40 00
    3529     call 02f34h                               ; e8 d9 11
     3532    call 02f3eh                               ; e8 d9 11
    35303533    xor ah, ah                                ; 30 e4
    35313534    inc ax                                    ; 40
     
    35333536    mov dx, strict word 0004ah                ; ba 4a 00
    35343537    mov ax, strict word 00040h                ; b8 40 00
    3535     call 02f50h                               ; e8 e6 11
     3538    call 02f5ah                               ; e8 e6 11
    35363539    mov word [bp-016h], ax                    ; 89 46 ea
    35373540    movzx bx, cl                              ; 0f b6 d9
     
    35393542    sal di, 003h                              ; c1 e7 03
    35403543    cmp byte [di+04830h], 000h                ; 80 bd 30 48 00
    3541     jne short 01dc3h                          ; 75 47
     3544    jne short 01dcdh                          ; 75 47
    35423545    mov bx, word [bp-018h]                    ; 8b 5e e8
    35433546    imul bx, ax                               ; 0f af d8
     
    35633566    mov di, dx                                ; 89 d7
    35643567    cld                                       ; fc
    3565     jcxz 01dc0h                               ; e3 02
     3568    jcxz 01dcah                               ; e3 02
    35663569    rep stosw                                 ; f3 ab
    3567     jmp near 01e69h                           ; e9 a6 00
     3570    jmp near 01e73h                           ; e9 a6 00
    35683571    movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
    35693572    sal bx, 006h                              ; c1 e3 06
     
    35743577    dec si                                    ; 4e
    35753578    cmp si, strict byte 0ffffh                ; 83 fe ff
    3576     je near 01e69h                            ; 0f 84 88 00
     3579    je near 01e73h                            ; 0f 84 88 00
    35773580    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    35783581    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3579     jnc near 01e69h                           ; 0f 83 7d 00
     3582    jnc near 01e73h                           ; 0f 83 7d 00
    35803583    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    35813584    sal bx, 003h                              ; c1 e3 03
    35823585    mov al, byte [bx+04831h]                  ; 8a 87 31 48
    35833586    cmp AL, strict byte 003h                  ; 3c 03
    3584     jc short 01e07h                           ; 72 0c
    3585     jbe short 01e0dh                          ; 76 10
     3587    jc short 01e11h                           ; 72 0c
     3588    jbe short 01e17h                          ; 76 10
    35863589    cmp AL, strict byte 005h                  ; 3c 05
    3587     je short 01e4bh                           ; 74 4a
     3590    je short 01e55h                           ; 74 4a
    35883591    cmp AL, strict byte 004h                  ; 3c 04
    3589     je short 01e0dh                           ; 74 08
    3590     jmp short 01e63h                          ; eb 5c
     3592    je short 01e17h                           ; 74 08
     3593    jmp short 01e6dh                          ; eb 5c
    35913594    cmp AL, strict byte 002h                  ; 3c 02
    3592     je short 01e2ch                           ; 74 21
    3593     jmp short 01e63h                          ; eb 56
     3595    je short 01e36h                           ; 74 21
     3596    jmp short 01e6dh                          ; eb 56
    35943597    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    35953598    push ax                                   ; 50
     
    36003603    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    36013604    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3602     call 01a6eh                               ; e8 44 fc
    3603     jmp short 01e63h                          ; eb 37
     3605    call 01a78h                               ; e8 44 fc
     3606    jmp short 01e6dh                          ; eb 37
    36043607    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    36053608    push ax                                   ; 50
     
    36103613    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    36113614    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3612     call 01b59h                               ; e8 10 fd
    3613     jmp short 01e63h                          ; eb 18
     3615    call 01b63h                               ; e8 10 fd
     3616    jmp short 01e6dh                          ; eb 18
    36143617    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    36153618    push ax                                   ; 50
     
    36183621    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    36193622    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3620     call 01c77h                               ; e8 14 fe
     3623    call 01c81h                               ; e8 14 fe
    36213624    inc byte [bp-00ch]                        ; fe 46 f4
    3622     jmp near 01dd9h                           ; e9 70 ff
     3625    jmp near 01de3h                           ; e9 70 ff
    36233626    lea sp, [bp-004h]                         ; 8d 66 fc
    36243627    pop di                                    ; 5f
     
    36263629    pop bp                                    ; 5d
    36273630    retn                                      ; c3
    3628 biosfn_write_char_only_:                     ; 0xc1e70 LB 0x16f
     3631biosfn_write_char_only_:                     ; 0xc1e7a LB 0x16f
    36293632    push bp                                   ; 55
    36303633    mov bp, sp                                ; 89 e5
     
    36383641    mov dx, strict word 00049h                ; ba 49 00
    36393642    mov ax, strict word 00040h                ; b8 40 00
    3640     call 02f34h                               ; e8 a8 10
     3643    call 02f3eh                               ; e8 a8 10
    36413644    xor ah, ah                                ; 30 e4
    3642     call 02f0dh                               ; e8 7c 10
     3645    call 02f17h                               ; e8 7c 10
    36433646    mov cl, al                                ; 88 c1
    36443647    mov byte [bp-00eh], al                    ; 88 46 f2
    36453648    cmp AL, strict byte 0ffh                  ; 3c ff
    3646     je near 01fd8h                            ; 0f 84 3c 01
     3649    je near 01fe2h                            ; 0f 84 3c 01
    36473650    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    36483651    lea bx, [bp-01ch]                         ; 8d 5e e4
    36493652    lea dx, [bp-01ah]                         ; 8d 56 e6
    3650     call 00a88h                               ; e8 df eb
     3653    call 00a88h                               ; e8 d5 eb
    36513654    mov al, byte [bp-01ch]                    ; 8a 46 e4
    36523655    mov byte [bp-00ch], al                    ; 88 46 f4
     
    36573660    mov dx, 00084h                            ; ba 84 00
    36583661    mov ax, strict word 00040h                ; b8 40 00
    3659     call 02f34h                               ; e8 71 10
     3662    call 02f3eh                               ; e8 71 10
    36603663    xor ah, ah                                ; 30 e4
    36613664    inc ax                                    ; 40
     
    36633666    mov dx, strict word 0004ah                ; ba 4a 00
    36643667    mov ax, strict word 00040h                ; b8 40 00
    3665     call 02f50h                               ; e8 7e 10
     3668    call 02f5ah                               ; e8 7e 10
    36663669    mov word [bp-016h], ax                    ; 89 46 ea
    36673670    movzx di, cl                              ; 0f b6 f9
     
    36693672    sal bx, 003h                              ; c1 e3 03
    36703673    cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    3671     jne short 01f2eh                          ; 75 4a
     3674    jne short 01f38h                          ; 75 4a
    36723675    mov dx, word [bp-018h]                    ; 8b 56 e8
    36733676    imul dx, ax                               ; 0f af d0
     
    36863689    dec si                                    ; 4e
    36873690    cmp si, strict byte 0ffffh                ; 83 fe ff
    3688     je near 01fd8h                            ; 0f 84 c6 00
     3691    je near 01fe2h                            ; 0f 84 c6 00
    36893692    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    36903693    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     
    36943697    mov dx, cx                                ; 89 ca
    36953698    mov ax, di                                ; 89 f8
    3696     call 02f42h                               ; e8 18 10
    3697     inc cx                                    ; 41
    3698     inc cx                                    ; 41
    3699     jmp short 01f0ah                          ; eb dc
     3699    call 02f4ch                               ; e8 18 10
     3700    inc cx                                    ; 41
     3701    inc cx                                    ; 41
     3702    jmp short 01f14h                          ; eb dc
    37003703    movzx di, byte [di+048afh]                ; 0f b6 bd af 48
    37013704    sal di, 006h                              ; c1 e7 06
     
    37063709    dec si                                    ; 4e
    37073710    cmp si, strict byte 0ffffh                ; 83 fe ff
    3708     je near 01fd8h                            ; 0f 84 8c 00
     3711    je near 01fe2h                            ; 0f 84 8c 00
    37093712    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    37103713    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3711     jnc near 01fd8h                           ; 0f 83 81 00
     3714    jnc near 01fe2h                           ; 0f 83 81 00
    37123715    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    37133716    sal bx, 003h                              ; c1 e3 03
    37143717    mov bl, byte [bx+04831h]                  ; 8a 9f 31 48
    37153718    cmp bl, 003h                              ; 80 fb 03
    3716     jc short 01f75h                           ; 72 0e
    3717     jbe short 01f7ch                          ; 76 13
     3719    jc short 01f7fh                           ; 72 0e
     3720    jbe short 01f86h                          ; 76 13
    37183721    cmp bl, 005h                              ; 80 fb 05
    3719     je short 01fbah                           ; 74 4c
     3722    je short 01fc4h                           ; 74 4c
    37203723    cmp bl, 004h                              ; 80 fb 04
    3721     je short 01f7ch                           ; 74 09
    3722     jmp short 01fd2h                          ; eb 5d
     3724    je short 01f86h                           ; 74 09
     3725    jmp short 01fdch                          ; eb 5d
    37233726    cmp bl, 002h                              ; 80 fb 02
    3724     je short 01f9bh                           ; 74 21
    3725     jmp short 01fd2h                          ; eb 56
     3727    je short 01fa5h                           ; 74 21
     3728    jmp short 01fdch                          ; eb 56
    37263729    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    37273730    push ax                                   ; 50
     
    37323735    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    37333736    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3734     call 01a6eh                               ; e8 d5 fa
    3735     jmp short 01fd2h                          ; eb 37
     3737    call 01a78h                               ; e8 d5 fa
     3738    jmp short 01fdch                          ; eb 37
    37363739    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    37373740    push ax                                   ; 50
     
    37423745    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    37433746    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3744     call 01b59h                               ; e8 a1 fb
    3745     jmp short 01fd2h                          ; eb 18
     3747    call 01b63h                               ; e8 a1 fb
     3748    jmp short 01fdch                          ; eb 18
    37463749    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    37473750    push ax                                   ; 50
     
    37503753    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    37513754    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3752     call 01c77h                               ; e8 a5 fc
     3755    call 01c81h                               ; e8 a5 fc
    37533756    inc byte [bp-00ch]                        ; fe 46 f4
    3754     jmp near 01f44h                           ; e9 6c ff
     3757    jmp near 01f4eh                           ; e9 6c ff
    37553758    lea sp, [bp-004h]                         ; 8d 66 fc
    37563759    pop di                                    ; 5f
     
    37583761    pop bp                                    ; 5d
    37593762    retn                                      ; c3
    3760 biosfn_write_pixel_:                         ; 0xc1fdf LB 0x16a
     3763biosfn_write_pixel_:                         ; 0xc1fe9 LB 0x16a
    37613764    push bp                                   ; 55
    37623765    mov bp, sp                                ; 89 e5
     
    37673770    mov dx, strict word 00049h                ; ba 49 00
    37683771    mov ax, strict word 00040h                ; b8 40 00
    3769     call 02f34h                               ; e8 3f 0f
     3772    call 02f3eh                               ; e8 3f 0f
    37703773    xor ah, ah                                ; 30 e4
    3771     call 02f0dh                               ; e8 13 0f
     3774    call 02f17h                               ; e8 13 0f
    37723775    mov byte [bp-004h], al                    ; 88 46 fc
    37733776    cmp AL, strict byte 0ffh                  ; 3c ff
    3774     je near 02121h                            ; 0f 84 1e 01
     3777    je near 0212bh                            ; 0f 84 1e 01
    37753778    movzx bx, al                              ; 0f b6 d8
    37763779    sal bx, 003h                              ; c1 e3 03
    37773780    cmp byte [bx+04830h], 000h                ; 80 bf 30 48 00
    3778     je near 02121h                            ; 0f 84 0f 01
     3781    je near 0212bh                            ; 0f 84 0f 01
    37793782    mov al, byte [bx+04831h]                  ; 8a 87 31 48
    37803783    cmp AL, strict byte 003h                  ; 3c 03
    3781     jc short 02029h                           ; 72 0f
    3782     jbe short 02030h                          ; 76 14
     3784    jc short 02033h                           ; 72 0f
     3785    jbe short 0203ah                          ; 76 14
    37833786    cmp AL, strict byte 005h                  ; 3c 05
    3784     je near 02127h                            ; 0f 84 05 01
     3787    je near 02131h                            ; 0f 84 05 01
    37853788    cmp AL, strict byte 004h                  ; 3c 04
    3786     je short 02030h                           ; 74 0a
    3787     jmp near 02121h                           ; e9 f8 00
     3789    je short 0203ah                           ; 74 0a
     3790    jmp near 0212bh                           ; e9 f8 00
    37883791    cmp AL, strict byte 002h                  ; 3c 02
    3789     je short 02095h                           ; 74 68
    3790     jmp near 02121h                           ; e9 f1 00
     3792    je short 0209fh                           ; 74 68
     3793    jmp near 0212bh                           ; e9 f1 00
    37913794    mov dx, strict word 0004ah                ; ba 4a 00
    37923795    mov ax, strict word 00040h                ; b8 40 00
    3793     call 02f50h                               ; e8 17 0f
     3796    call 02f5ah                               ; e8 17 0f
    37943797    imul ax, cx                               ; 0f af c1
    37953798    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    38103813    mov dx, bx                                ; 89 da
    38113814    mov ax, 0a000h                            ; b8 00 a0
    3812     call 02f34h                               ; e8 cb 0e
     3815    call 02f3eh                               ; e8 cb 0e
    38133816    test byte [bp-006h], 080h                 ; f6 46 fa 80
    3814     je short 02076h                           ; 74 07
     3817    je short 02080h                           ; 74 07
    38153818    mov ax, 01803h                            ; b8 03 18
    38163819    mov dx, 003ceh                            ; ba ce 03
     
    38193822    mov dx, word [bp-008h]                    ; 8b 56 f8
    38203823    mov ax, 0a000h                            ; b8 00 a0
    3821     call 02f42h                               ; e8 bf 0e
     3824    call 02f4ch                               ; e8 bf 0e
    38223825    mov ax, 0ff08h                            ; b8 08 ff
    38233826    mov dx, 003ceh                            ; ba ce 03
     
    38273830    mov ax, strict word 00003h                ; b8 03 00
    38283831    out DX, ax                                ; ef
    3829     jmp near 02121h                           ; e9 8c 00
     3832    jmp near 0212bh                           ; e9 8c 00
    38303833    mov ax, cx                                ; 89 c8
    38313834    shr ax, 1                                 ; d1 e8
    38323835    imul ax, ax, strict byte 00050h           ; 6b c0 50
    38333836    cmp byte [bx+04832h], 002h                ; 80 bf 32 48 02
    3834     jne short 020abh                          ; 75 08
     3837    jne short 020b5h                          ; 75 08
    38353838    mov bx, word [bp-00ah]                    ; 8b 5e f6
    38363839    shr bx, 002h                              ; c1 eb 02
    3837     jmp short 020b1h                          ; eb 06
     3840    jmp short 020bbh                          ; eb 06
    38383841    mov bx, word [bp-00ah]                    ; 8b 5e f6
    38393842    shr bx, 003h                              ; c1 eb 03
     
    38413844    mov word [bp-008h], bx                    ; 89 5e f8
    38423845    test cl, 001h                             ; f6 c1 01
    3843     je short 020bfh                           ; 74 04
     3846    je short 020c9h                           ; 74 04
    38443847    add byte [bp-007h], 020h                  ; 80 46 f9 20
    38453848    mov dx, word [bp-008h]                    ; 8b 56 f8
    38463849    mov ax, 0b800h                            ; b8 00 b8
    3847     call 02f34h                               ; e8 6c 0e
     3850    call 02f3eh                               ; e8 6c 0e
    38483851    mov bl, al                                ; 88 c3
    38493852    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
    38503853    sal si, 003h                              ; c1 e6 03
    38513854    cmp byte [si+04832h], 002h                ; 80 bc 32 48 02
    3852     jne short 020f1h                          ; 75 19
     3855    jne short 020fbh                          ; 75 19
    38533856    mov al, byte [bp-00ah]                    ; 8a 46 f6
    38543857    and AL, strict byte 003h                  ; 24 03
     
    38613864    sal bh, CL                                ; d2 e7
    38623865    mov AL, strict byte 003h                  ; b0 03
    3863     jmp short 02104h                          ; eb 13
     3866    jmp short 0210eh                          ; eb 13
    38643867    mov al, byte [bp-00ah]                    ; 8a 46 f6
    38653868    and AL, strict byte 007h                  ; 24 07
     
    38723875    sal al, CL                                ; d2 e0
    38733876    test byte [bp-006h], 080h                 ; f6 46 fa 80
    3874     je short 02110h                           ; 74 04
     3877    je short 0211ah                           ; 74 04
    38753878    xor bl, bh                                ; 30 fb
    3876     jmp short 02116h                          ; eb 06
     3879    jmp short 02120h                          ; eb 06
    38773880    not al                                    ; f6 d0
    38783881    and bl, al                                ; 20 c3
     
    38813884    mov dx, word [bp-008h]                    ; 8b 56 f8
    38823885    mov ax, 0b800h                            ; b8 00 b8
    3883     call 02f42h                               ; e8 21 0e
     3886    call 02f4ch                               ; e8 21 0e
    38843887    lea sp, [bp-002h]                         ; 8d 66 fe
    38853888    pop si                                    ; 5e
     
    38883891    mov dx, strict word 0004ah                ; ba 4a 00
    38893892    mov ax, strict word 00040h                ; b8 40 00
    3890     call 02f50h                               ; e8 20 0e
     3893    call 02f5ah                               ; e8 20 0e
    38913894    sal ax, 003h                              ; c1 e0 03
    38923895    imul cx, ax                               ; 0f af c8
     
    38973900    mov dx, ax                                ; 89 c2
    38983901    mov ax, 0a000h                            ; b8 00 a0
    3899     jmp short 0211eh                          ; eb d5
    3900 biosfn_write_teletype_:                      ; 0xc2149 LB 0x241
     3902    jmp short 02128h                          ; eb d5
     3903biosfn_write_teletype_:                      ; 0xc2153 LB 0x241
    39013904    push bp                                   ; 55
    39023905    mov bp, sp                                ; 89 e5
     
    39083911    mov byte [bp-00eh], cl                    ; 88 4e f2
    39093912    cmp dl, 0ffh                              ; 80 fa ff
    3910     jne short 0216dh                          ; 75 0c
     3913    jne short 02177h                          ; 75 0c
    39113914    mov dx, strict word 00062h                ; ba 62 00
    39123915    mov ax, strict word 00040h                ; b8 40 00
    3913     call 02f34h                               ; e8 ca 0d
     3916    call 02f3eh                               ; e8 ca 0d
    39143917    mov byte [bp-006h], al                    ; 88 46 fa
    39153918    mov dx, strict word 00049h                ; ba 49 00
    39163919    mov ax, strict word 00040h                ; b8 40 00
    3917     call 02f34h                               ; e8 be 0d
     3920    call 02f3eh                               ; e8 be 0d
    39183921    xor ah, ah                                ; 30 e4
    3919     call 02f0dh                               ; e8 92 0d
     3922    call 02f17h                               ; e8 92 0d
    39203923    mov byte [bp-010h], al                    ; 88 46 f0
    39213924    cmp AL, strict byte 0ffh                  ; 3c ff
    3922     je near 02384h                            ; 0f 84 00 02
     3925    je near 0238eh                            ; 0f 84 00 02
    39233926    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    39243927    lea bx, [bp-018h]                         ; 8d 5e e8
    39253928    lea dx, [bp-016h]                         ; 8d 56 ea
    3926     call 00a88h                               ; e8 f7 e8
     3929    call 00a88h                               ; e8 ed e8
    39273930    mov al, byte [bp-018h]                    ; 8a 46 e8
    39283931    mov byte [bp-008h], al                    ; 88 46 f8
     
    39333936    mov dx, 00084h                            ; ba 84 00
    39343937    mov ax, strict word 00040h                ; b8 40 00
    3935     call 02f34h                               ; e8 89 0d
     3938    call 02f3eh                               ; e8 89 0d
    39363939    xor ah, ah                                ; 30 e4
    39373940    inc ax                                    ; 40
     
    39393942    mov dx, strict word 0004ah                ; ba 4a 00
    39403943    mov ax, strict word 00040h                ; b8 40 00
    3941     call 02f50h                               ; e8 96 0d
     3944    call 02f5ah                               ; e8 96 0d
    39423945    mov word [bp-012h], ax                    ; 89 46 ee
    39433946    mov al, byte [bp-00ch]                    ; 8a 46 f4
    39443947    cmp AL, strict byte 008h                  ; 3c 08
    3945     jc short 021d2h                           ; 72 0e
    3946     jbe short 021dah                          ; 76 14
     3948    jc short 021dch                           ; 72 0e
     3949    jbe short 021e4h                          ; 76 14
    39473950    cmp AL, strict byte 00dh                  ; 3c 0d
    3948     je short 021e8h                           ; 74 1e
     3951    je short 021f2h                           ; 74 1e
    39493952    cmp AL, strict byte 00ah                  ; 3c 0a
    3950     je near 022dah                            ; 0f 84 0a 01
    3951     jmp short 021efh                          ; eb 1d
     3953    je near 022e4h                            ; 0f 84 0a 01
     3954    jmp short 021f9h                          ; eb 1d
    39523955    cmp AL, strict byte 007h                  ; 3c 07
    3953     je near 022ddh                            ; 0f 84 05 01
    3954     jmp short 021efh                          ; eb 15
     3956    je near 022e7h                            ; 0f 84 05 01
     3957    jmp short 021f9h                          ; eb 15
    39553958    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3956     jbe near 022ddh                           ; 0f 86 fb 00
     3959    jbe near 022e7h                           ; 0f 86 fb 00
    39573960    dec byte [bp-008h]                        ; fe 4e f8
    3958     jmp near 022ddh                           ; e9 f5 00
     3961    jmp near 022e7h                           ; e9 f5 00
    39593962    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    3960     jmp near 022ddh                           ; e9 ee 00
     3963    jmp near 022e7h                           ; e9 ee 00
    39613964    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    39623965    mov si, bx                                ; 89 de
    39633966    sal si, 003h                              ; c1 e6 03
    39643967    cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
    3965     jne short 0224ch                          ; 75 4d
     3968    jne short 02256h                          ; 75 4d
    39663969    mov ax, word [bp-012h]                    ; 8b 46 ee
    39673970    imul ax, word [bp-014h]                   ; 0f af 46 ec
     
    39813984    mov ax, word [si+04833h]                  ; 8b 84 33 48
    39823985    mov dx, cx                                ; 89 ca
    3983     call 02f42h                               ; e8 0f 0d
     3986    call 02f4ch                               ; e8 0f 0d
    39843987    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
    3985     jne near 022cah                           ; 0f 85 8f 00
     3988    jne near 022d4h                           ; 0f 85 8f 00
    39863989    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    39873990    mov dx, cx                                ; 89 ca
    39883991    inc dx                                    ; 42
    39893992    mov ax, word [si+04833h]                  ; 8b 84 33 48
    3990     call 02f42h                               ; e8 f9 0c
    3991     jmp near 022cah                           ; e9 7e 00
     3993    call 02f4ch                               ; e8 f9 0c
     3994    jmp near 022d4h                           ; e9 7e 00
    39923995    movzx bx, byte [bx+048afh]                ; 0f b6 9f af 48
    39933996    sal bx, 006h                              ; c1 e3 06
     
    39963999    mov al, byte [si+04831h]                  ; 8a 84 31 48
    39974000    cmp AL, strict byte 003h                  ; 3c 03
    3998     jc short 02270h                           ; 72 0c
    3999     jbe short 02276h                          ; 76 10
     4001    jc short 0227ah                           ; 72 0c
     4002    jbe short 02280h                          ; 76 10
    40004003    cmp AL, strict byte 005h                  ; 3c 05
    4001     je short 022b2h                           ; 74 48
     4004    je short 022bch                           ; 74 48
    40024005    cmp AL, strict byte 004h                  ; 3c 04
    4003     je short 02276h                           ; 74 08
    4004     jmp short 022cah                          ; eb 5a
     4006    je short 02280h                           ; 74 08
     4007    jmp short 022d4h                          ; eb 5a
    40054008    cmp AL, strict byte 002h                  ; 3c 02
    4006     je short 02294h                           ; 74 20
    4007     jmp short 022cah                          ; eb 54
     4009    je short 0229eh                           ; 74 20
     4010    jmp short 022d4h                          ; eb 54
    40084011    movzx ax, ah                              ; 0f b6 c4
    40094012    push ax                                   ; 50
     
    40144017    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40154018    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4016     call 01a6eh                               ; e8 dc f7
    4017     jmp short 022cah                          ; eb 36
     4019    call 01a78h                               ; e8 dc f7
     4020    jmp short 022d4h                          ; eb 36
    40184021    movzx ax, dl                              ; 0f b6 c2
    40194022    push ax                                   ; 50
     
    40244027    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40254028    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4026     call 01b59h                               ; e8 a9 f8
    4027     jmp short 022cah                          ; eb 18
     4029    call 01b63h                               ; e8 a9 f8
     4030    jmp short 022d4h                          ; eb 18
    40284031    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    40294032    push ax                                   ; 50
     
    40324035    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40334036    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4034     call 01c77h                               ; e8 ad f9
     4037    call 01c81h                               ; e8 ad f9
    40354038    inc byte [bp-008h]                        ; fe 46 f8
    40364039    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    40374040    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4038     jne short 022ddh                          ; 75 07
     4041    jne short 022e7h                          ; 75 07
    40394042    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    40404043    inc byte [bp-00ah]                        ; fe 46 f6
    40414044    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    40424045    cmp ax, word [bp-014h]                    ; 3b 46 ec
    4043     jne near 02368h                           ; 0f 85 80 00
     4046    jne near 02372h                           ; 0f 85 80 00
    40444047    movzx si, byte [bp-010h]                  ; 0f b6 76 f0
    40454048    sal si, 003h                              ; c1 e6 03
     
    40514054    ; dec bl                                    ; fe cb
    40524055    cmp byte [si+04830h], 000h                ; 80 bc 30 48 00
    4053     jne short 0234ah                          ; 75 4a
     4056    jne short 02354h                          ; 75 4a
    40544057    mov ax, word [bp-012h]                    ; 8b 46 ee
    40554058    imul ax, word [bp-014h]                   ; 0f af 46 ec
     
    40704073    inc dx                                    ; 42
    40714074    mov ax, word [si+04833h]                  ; 8b 84 33 48
    4072     call 02f34h                               ; e8 02 0c
     4075    call 02f3eh                               ; e8 02 0c
    40734076    push strict byte 00001h                   ; 6a 01
    40744077    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    40814084    xor cx, cx                                ; 31 c9
    40824085    xor bx, bx                                ; 31 db
    4083     jmp short 0235fh                          ; eb 15
     4086    jmp short 02369h                          ; eb 15
    40844087    push strict byte 00001h                   ; 6a 01
    40854088    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     
    40934096    xor dx, dx                                ; 31 d2
    40944097    mov ax, strict word 00001h                ; b8 01 00
    4095     call 01568h                               ; e8 03 f2
     4098    call 01572h                               ; e8 03 f2
    40964099    dec byte [bp-00ah]                        ; fe 4e f6
    40974100    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     
    41024105    mov dx, word [bp-018h]                    ; 8b 56 e8
    41034106    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    4104     call 00e5eh                               ; e8 da ea
     4107    call 00e5eh                               ; e8 d0 ea
    41054108    lea sp, [bp-002h]                         ; 8d 66 fe
    41064109    pop si                                    ; 5e
    41074110    pop bp                                    ; 5d
    41084111    retn                                      ; c3
    4109 get_font_access_:                            ; 0xc238a LB 0x2c
     4112get_font_access_:                            ; 0xc2394 LB 0x2c
    41104113    push bp                                   ; 55
    41114114    mov bp, sp                                ; 89 e5
     
    41314134    pop bp                                    ; 5d
    41324135    retn                                      ; c3
    4133 release_font_access_:                        ; 0xc23b6 LB 0x3c
     4136release_font_access_:                        ; 0xc23c0 LB 0x3c
    41344137    push bp                                   ; 55
    41354138    mov bp, sp                                ; 89 e5
     
    41634166    pop bp                                    ; 5d
    41644167    retn                                      ; c3
    4165 set_scan_lines_:                             ; 0xc23f2 LB 0xbf
     4168set_scan_lines_:                             ; 0xc23fc LB 0xbf
    41664169    push bp                                   ; 55
    41674170    mov bp, sp                                ; 89 e5
     
    41744177    mov dx, strict word 00063h                ; ba 63 00
    41754178    mov ax, strict word 00040h                ; b8 40 00
    4176     call 02f50h                               ; e8 4b 0b
     4179    call 02f5ah                               ; e8 4b 0b
    41774180    mov dx, ax                                ; 89 c2
    41784181    mov si, ax                                ; 89 c6
     
    41914194    out DX, AL                                ; ee
    41924195    cmp bl, 008h                              ; 80 fb 08
    4193     jne short 02429h                          ; 75 08
     4196    jne short 02433h                          ; 75 08
    41944197    mov dx, strict word 00007h                ; ba 07 00
    41954198    mov ax, strict word 00006h                ; b8 06 00
    4196     jmp short 02436h                          ; eb 0d
     4199    jmp short 02440h                          ; eb 0d
    41974200    mov al, bl                                ; 88 d8
    41984201    sub AL, strict byte 003h                  ; 2c 03
     
    42014204    sub AL, strict byte 004h                  ; 2c 04
    42024205    xor ah, ah                                ; 30 e4
    4203     call 00dbah                               ; e8 81 e9
     4206    call 00dbah                               ; e8 77 e9
    42044207    movzx di, bl                              ; 0f b6 fb
    42054208    mov bx, di                                ; 89 fb
    42064209    mov dx, 00085h                            ; ba 85 00
    42074210    mov ax, strict word 00040h                ; b8 40 00
    4208     call 02f5eh                               ; e8 17 0b
     4211    call 02f68h                               ; e8 17 0b
    42094212    mov AL, strict byte 012h                  ; b0 12
    42104213    mov dx, si                                ; 89 f2
     
    42414244    mov dx, 00084h                            ; ba 84 00
    42424245    mov ax, strict word 00040h                ; b8 40 00
    4243     call 02f42h                               ; e8 b7 0a
     4246    call 02f4ch                               ; e8 b7 0a
    42444247    mov dx, strict word 0004ah                ; ba 4a 00
    42454248    mov ax, strict word 00040h                ; b8 40 00
    4246     call 02f50h                               ; e8 bc 0a
     4249    call 02f5ah                               ; e8 bc 0a
    42474250    movzx dx, cl                              ; 0f b6 d1
    42484251    mov bx, ax                                ; 89 c3
     
    42514254    mov dx, strict word 0004ch                ; ba 4c 00
    42524255    mov ax, strict word 00040h                ; b8 40 00
    4253     call 02f5eh                               ; e8 b7 0a
     4256    call 02f68h                               ; e8 b7 0a
    42544257    lea sp, [bp-00ah]                         ; 8d 66 f6
    42554258    pop di                                    ; 5f
     
    42604263    pop bp                                    ; 5d
    42614264    retn                                      ; c3
    4262 biosfn_load_text_user_pat_:                  ; 0xc24b1 LB 0x7d
     4265biosfn_load_text_user_pat_:                  ; 0xc24bb LB 0x7d
    42634266    push bp                                   ; 55
    42644267    mov bp, sp                                ; 89 e5
     
    42704273    mov word [bp-008h], bx                    ; 89 5e f8
    42714274    mov word [bp-00ah], cx                    ; 89 4e f6
    4272     call 0238ah                               ; e8 c2 fe
     4275    call 02394h                               ; e8 c2 fe
    42734276    mov al, byte [bp+006h]                    ; 8a 46 06
    42744277    and AL, strict byte 003h                  ; 24 03
     
    42844287    xor bx, bx                                ; 31 db
    42854288    cmp bx, word [bp-00ah]                    ; 3b 5e f6
    4286     jnc short 02515h                          ; 73 2b
     4289    jnc short 0251fh                          ; 73 2b
    42874290    movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
    42884291    mov si, bx                                ; 89 de
     
    42974300    mov es, ax                                ; 8e c0
    42984301    cld                                       ; fc
    4299     jcxz 02512h                               ; e3 06
     4302    jcxz 0251ch                               ; e3 06
    43004303    push DS                                   ; 1e
    43014304    mov ds, dx                                ; 8e da
     
    43034306    pop DS                                    ; 1f
    43044307    inc bx                                    ; 43
    4305     jmp short 024e5h                          ; eb d0
    4306     call 023b6h                               ; e8 9e fe
     4308    jmp short 024efh                          ; eb d0
     4309    call 023c0h                               ; e8 9e fe
    43074310    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
    4308     jc short 02525h                           ; 72 07
     4311    jc short 0252fh                           ; 72 07
    43094312    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    4310     call 023f2h                               ; e8 cd fe
     4313    call 023fch                               ; e8 cd fe
    43114314    lea sp, [bp-004h]                         ; 8d 66 fc
    43124315    pop di                                    ; 5f
     
    43144317    pop bp                                    ; 5d
    43154318    retn 00006h                               ; c2 06 00
    4316 biosfn_load_text_8_14_pat_:                  ; 0xc252e LB 0x70
     4319biosfn_load_text_8_14_pat_:                  ; 0xc2538 LB 0x70
    43174320    push bp                                   ; 55
    43184321    mov bp, sp                                ; 89 e5
     
    43244327    push ax                                   ; 50
    43254328    mov byte [bp-00ah], al                    ; 88 46 f6
    4326     call 0238ah                               ; e8 4d fe
     4329    call 02394h                               ; e8 4d fe
    43274330    mov al, dl                                ; 88 d0
    43284331    and AL, strict byte 003h                  ; 24 03
     
    43374340    mov word [bp-00ch], bx                    ; 89 5e f4
    43384341    xor bx, bx                                ; 31 db
    4339     jmp short 02560h                          ; eb 06
     4342    jmp short 0256ah                          ; eb 06
    43404343    cmp bx, 00100h                            ; 81 fb 00 01
    4341     jnc short 02586h                          ; 73 26
     4344    jnc short 02590h                          ; 73 26
    43424345    imul si, bx, strict byte 0000eh           ; 6b f3 0e
    43434346    mov di, bx                                ; 89 df
     
    43504353    mov es, ax                                ; 8e c0
    43514354    cld                                       ; fc
    4352     jcxz 02583h                               ; e3 06
     4355    jcxz 0258dh                               ; e3 06
    43534356    push DS                                   ; 1e
    43544357    mov ds, dx                                ; 8e da
     
    43564359    pop DS                                    ; 1f
    43574360    inc bx                                    ; 43
    4358     jmp short 0255ah                          ; eb d4
    4359     call 023b6h                               ; e8 2d fe
     4361    jmp short 02564h                          ; eb d4
     4362    call 023c0h                               ; e8 2d fe
    43604363    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4361     jc short 02595h                           ; 72 06
     4364    jc short 0259fh                           ; 72 06
    43624365    mov ax, strict word 0000eh                ; b8 0e 00
    4363     call 023f2h                               ; e8 5d fe
     4366    call 023fch                               ; e8 5d fe
    43644367    lea sp, [bp-008h]                         ; 8d 66 f8
    43654368    pop di                                    ; 5f
     
    43694372    pop bp                                    ; 5d
    43704373    retn                                      ; c3
    4371 biosfn_load_text_8_8_pat_:                   ; 0xc259e LB 0x72
     4374biosfn_load_text_8_8_pat_:                   ; 0xc25a8 LB 0x72
    43724375    push bp                                   ; 55
    43734376    mov bp, sp                                ; 89 e5
     
    43794382    push ax                                   ; 50
    43804383    mov byte [bp-00ah], al                    ; 88 46 f6
    4381     call 0238ah                               ; e8 dd fd
     4384    call 02394h                               ; e8 dd fd
    43824385    mov al, dl                                ; 88 d0
    43834386    and AL, strict byte 003h                  ; 24 03
     
    43924395    mov word [bp-00ch], bx                    ; 89 5e f4
    43934396    xor bx, bx                                ; 31 db
    4394     jmp short 025d0h                          ; eb 06
     4397    jmp short 025dah                          ; eb 06
    43954398    cmp bx, 00100h                            ; 81 fb 00 01
    4396     jnc short 025f8h                          ; 73 28
     4399    jnc short 02602h                          ; 73 28
    43974400    mov si, bx                                ; 89 de
    43984401    sal si, 003h                              ; c1 e6 03
     
    44064409    mov es, ax                                ; 8e c0
    44074410    cld                                       ; fc
    4408     jcxz 025f5h                               ; e3 06
     4411    jcxz 025ffh                               ; e3 06
    44094412    push DS                                   ; 1e
    44104413    mov ds, dx                                ; 8e da
     
    44124415    pop DS                                    ; 1f
    44134416    inc bx                                    ; 43
    4414     jmp short 025cah                          ; eb d2
    4415     call 023b6h                               ; e8 bb fd
     4417    jmp short 025d4h                          ; eb d2
     4418    call 023c0h                               ; e8 bb fd
    44164419    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4417     jc short 02607h                           ; 72 06
     4420    jc short 02611h                           ; 72 06
    44184421    mov ax, strict word 00008h                ; b8 08 00
    4419     call 023f2h                               ; e8 eb fd
     4422    call 023fch                               ; e8 eb fd
    44204423    lea sp, [bp-008h]                         ; 8d 66 f8
    44214424    pop di                                    ; 5f
     
    44254428    pop bp                                    ; 5d
    44264429    retn                                      ; c3
    4427 biosfn_load_text_8_16_pat_:                  ; 0xc2610 LB 0x72
     4430biosfn_load_text_8_16_pat_:                  ; 0xc261a LB 0x72
    44284431    push bp                                   ; 55
    44294432    mov bp, sp                                ; 89 e5
     
    44354438    push ax                                   ; 50
    44364439    mov byte [bp-00ah], al                    ; 88 46 f6
    4437     call 0238ah                               ; e8 6b fd
     4440    call 02394h                               ; e8 6b fd
    44384441    mov al, dl                                ; 88 d0
    44394442    and AL, strict byte 003h                  ; 24 03
     
    44484451    mov word [bp-00ch], bx                    ; 89 5e f4
    44494452    xor bx, bx                                ; 31 db
    4450     jmp short 02642h                          ; eb 06
     4453    jmp short 0264ch                          ; eb 06
    44514454    cmp bx, 00100h                            ; 81 fb 00 01
    4452     jnc short 0266ah                          ; 73 28
     4455    jnc short 02674h                          ; 73 28
    44534456    mov si, bx                                ; 89 de
    44544457    sal si, 004h                              ; c1 e6 04
     
    44624465    mov es, ax                                ; 8e c0
    44634466    cld                                       ; fc
    4464     jcxz 02667h                               ; e3 06
     4467    jcxz 02671h                               ; e3 06
    44654468    push DS                                   ; 1e
    44664469    mov ds, dx                                ; 8e da
     
    44684471    pop DS                                    ; 1f
    44694472    inc bx                                    ; 43
    4470     jmp short 0263ch                          ; eb d2
    4471     call 023b6h                               ; e8 49 fd
     4473    jmp short 02646h                          ; eb d2
     4474    call 023c0h                               ; e8 49 fd
    44724475    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4473     jc short 02679h                           ; 72 06
     4476    jc short 02683h                           ; 72 06
    44744477    mov ax, strict word 00010h                ; b8 10 00
    4475     call 023f2h                               ; e8 79 fd
     4478    call 023fch                               ; e8 79 fd
    44764479    lea sp, [bp-008h]                         ; 8d 66 f8
    44774480    pop di                                    ; 5f
     
    44814484    pop bp                                    ; 5d
    44824485    retn                                      ; c3
    4483 biosfn_load_gfx_8_8_chars_:                  ; 0xc2682 LB 0x5
     4486biosfn_load_gfx_8_8_chars_:                  ; 0xc268c LB 0x5
    44844487    push bp                                   ; 55
    44854488    mov bp, sp                                ; 89 e5
    44864489    pop bp                                    ; 5d
    44874490    retn                                      ; c3
    4488 biosfn_load_gfx_user_chars_:                 ; 0xc2687 LB 0x7
     4491biosfn_load_gfx_user_chars_:                 ; 0xc2691 LB 0x7
    44894492    push bp                                   ; 55
    44904493    mov bp, sp                                ; 89 e5
    44914494    pop bp                                    ; 5d
    44924495    retn 00002h                               ; c2 02 00
    4493 biosfn_load_gfx_8_14_chars_:                 ; 0xc268e LB 0x5
     4496biosfn_load_gfx_8_14_chars_:                 ; 0xc2698 LB 0x5
    44944497    push bp                                   ; 55
    44954498    mov bp, sp                                ; 89 e5
    44964499    pop bp                                    ; 5d
    44974500    retn                                      ; c3
    4498 biosfn_load_gfx_8_8_dd_chars_:               ; 0xc2693 LB 0x5
     4501biosfn_load_gfx_8_8_dd_chars_:               ; 0xc269d LB 0x5
    44994502    push bp                                   ; 55
    45004503    mov bp, sp                                ; 89 e5
    45014504    pop bp                                    ; 5d
    45024505    retn                                      ; c3
    4503 biosfn_load_gfx_8_16_chars_:                 ; 0xc2698 LB 0x5
     4506biosfn_load_gfx_8_16_chars_:                 ; 0xc26a2 LB 0x5
    45044507    push bp                                   ; 55
    45054508    mov bp, sp                                ; 89 e5
    45064509    pop bp                                    ; 5d
    45074510    retn                                      ; c3
    4508 biosfn_alternate_prtsc_:                     ; 0xc269d LB 0x5
     4511biosfn_alternate_prtsc_:                     ; 0xc26a7 LB 0x5
    45094512    push bp                                   ; 55
    45104513    mov bp, sp                                ; 89 e5
    45114514    pop bp                                    ; 5d
    45124515    retn                                      ; c3
    4513 biosfn_switch_video_interface_:              ; 0xc26a2 LB 0x5
     4516biosfn_switch_video_interface_:              ; 0xc26ac LB 0x5
    45144517    push bp                                   ; 55
    45154518    mov bp, sp                                ; 89 e5
    45164519    pop bp                                    ; 5d
    45174520    retn                                      ; c3
    4518 biosfn_enable_video_refresh_control_:        ; 0xc26a7 LB 0x5
     4521biosfn_enable_video_refresh_control_:        ; 0xc26b1 LB 0x5
    45194522    push bp                                   ; 55
    45204523    mov bp, sp                                ; 89 e5
    45214524    pop bp                                    ; 5d
    45224525    retn                                      ; c3
    4523 biosfn_write_string_:                        ; 0xc26ac LB 0x9c
     4526biosfn_write_string_:                        ; 0xc26b6 LB 0x9c
    45244527    push bp                                   ; 55
    45254528    mov bp, sp                                ; 89 e5
     
    45354538    lea bx, [bp-00eh]                         ; 8d 5e f2
    45364539    lea dx, [bp-00ch]                         ; 8d 56 f4
    4537     call 00a88h                               ; e8 ba e3
     4540    call 00a88h                               ; e8 b0 e3
    45384541    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
    4539     jne short 026e5h                          ; 75 11
     4542    jne short 026efh                          ; 75 11
    45404543    mov al, byte [bp-00eh]                    ; 8a 46 f2
    45414544    mov byte [bp+006h], al                    ; 88 46 06
     
    45494552    add dx, ax                                ; 01 c2
    45504553    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4551     call 00e5eh                               ; e8 65 e7
     4554    call 00e5eh                               ; e8 5b e7
    45524555    dec si                                    ; 4e
    45534556    cmp si, strict byte 0ffffh                ; 83 fe ff
    4554     je short 0272fh                           ; 74 30
     4557    je short 02739h                           ; 74 30
    45554558    mov dx, di                                ; 89 fa
    45564559    inc di                                    ; 47
    45574560    mov ax, word [bp+008h]                    ; 8b 46 08
    4558     call 02f34h                               ; e8 2c 08
     4561    call 02f3eh                               ; e8 2c 08
    45594562    mov cl, al                                ; 88 c1
    45604563    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    4561     je short 0271ch                           ; 74 0c
     4564    je short 02726h                           ; 74 0c
    45624565    mov dx, di                                ; 89 fa
    45634566    inc di                                    ; 47
    45644567    mov ax, word [bp+008h]                    ; 8b 46 08
    4565     call 02f34h                               ; e8 1b 08
     4568    call 02f3eh                               ; e8 1b 08
    45664569    mov byte [bp-006h], al                    ; 88 46 fa
    45674570    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     
    45694572    movzx ax, cl                              ; 0f b6 c1
    45704573    mov cx, strict word 00003h                ; b9 03 00
    4571     call 02149h                               ; e8 1c fa
    4572     jmp short 026f9h                          ; eb ca
     4574    call 02153h                               ; e8 1c fa
     4575    jmp short 02703h                          ; eb ca
    45734576    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    4574     jne short 0273fh                          ; 75 0a
     4577    jne short 02749h                          ; 75 0a
    45754578    mov dx, word [bp-00eh]                    ; 8b 56 f2
    45764579    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4577     call 00e5eh                               ; e8 1f e7
     4580    call 00e5eh                               ; e8 15 e7
    45784581    lea sp, [bp-004h]                         ; 8d 66 fc
    45794582    pop di                                    ; 5f
     
    45814584    pop bp                                    ; 5d
    45824585    retn 00008h                               ; c2 08 00
    4583 biosfn_read_state_info_:                     ; 0xc2748 LB 0x101
     4586biosfn_read_state_info_:                     ; 0xc2752 LB 0x101
    45844587    push bp                                   ; 55
    45854588    mov bp, sp                                ; 89 e5
     
    45934596    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45944597    mov ax, word [bp-008h]                    ; 8b 46 f8
    4595     call 02f7eh                               ; e8 20 08
     4598    call 02f88h                               ; e8 20 08
    45964599    mov di, word [bp-00ah]                    ; 8b 7e f6
    45974600    add di, strict byte 00004h                ; 83 c7 04
     
    46014604    mov es, [bp-008h]                         ; 8e 46 f8
    46024605    cld                                       ; fc
    4603     jcxz 02779h                               ; e3 06
     4606    jcxz 02783h                               ; e3 06
    46044607    push DS                                   ; 1e
    46054608    mov ds, dx                                ; 8e da
     
    46134616    mov es, [bp-008h]                         ; 8e 46 f8
    46144617    cld                                       ; fc
    4615     jcxz 02794h                               ; e3 06
     4618    jcxz 0279eh                               ; e3 06
    46164619    push DS                                   ; 1e
    46174620    mov ds, dx                                ; 8e da
     
    46204623    mov dx, 0008ah                            ; ba 8a 00
    46214624    mov ax, strict word 00040h                ; b8 40 00
    4622     call 02f34h                               ; e8 97 07
     4625    call 02f3eh                               ; e8 97 07
    46234626    movzx bx, al                              ; 0f b6 d8
    46244627    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46254628    add dx, strict byte 00025h                ; 83 c2 25
    46264629    mov ax, word [bp-008h]                    ; 8b 46 f8
    4627     call 02f42h                               ; e8 96 07
     4630    call 02f4ch                               ; e8 96 07
    46284631    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46294632    add dx, strict byte 00026h                ; 83 c2 26
    46304633    xor bx, bx                                ; 31 db
    46314634    mov ax, word [bp-008h]                    ; 8b 46 f8
    4632     call 02f42h                               ; e8 88 07
     4635    call 02f4ch                               ; e8 88 07
    46334636    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46344637    add dx, strict byte 00027h                ; 83 c2 27
    46354638    mov bx, strict word 00010h                ; bb 10 00
    46364639    mov ax, word [bp-008h]                    ; 8b 46 f8
    4637     call 02f42h                               ; e8 79 07
     4640    call 02f4ch                               ; e8 79 07
    46384641    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46394642    add dx, strict byte 00028h                ; 83 c2 28
    46404643    xor bx, bx                                ; 31 db
    46414644    mov ax, word [bp-008h]                    ; 8b 46 f8
    4642     call 02f42h                               ; e8 6b 07
     4645    call 02f4ch                               ; e8 6b 07
    46434646    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46444647    add dx, strict byte 00029h                ; 83 c2 29
    46454648    mov bx, strict word 00008h                ; bb 08 00
    46464649    mov ax, word [bp-008h]                    ; 8b 46 f8
    4647     call 02f42h                               ; e8 5c 07
     4650    call 02f4ch                               ; e8 5c 07
    46484651    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46494652    add dx, strict byte 0002ah                ; 83 c2 2a
    46504653    mov bx, strict word 00002h                ; bb 02 00
    46514654    mov ax, word [bp-008h]                    ; 8b 46 f8
    4652     call 02f42h                               ; e8 4d 07
     4655    call 02f4ch                               ; e8 4d 07
    46534656    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46544657    add dx, strict byte 0002bh                ; 83 c2 2b
    46554658    xor bx, bx                                ; 31 db
    46564659    mov ax, word [bp-008h]                    ; 8b 46 f8
    4657     call 02f42h                               ; e8 3f 07
     4660    call 02f4ch                               ; e8 3f 07
    46584661    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46594662    add dx, strict byte 0002ch                ; 83 c2 2c
    46604663    xor bx, bx                                ; 31 db
    46614664    mov ax, word [bp-008h]                    ; 8b 46 f8
    4662     call 02f42h                               ; e8 31 07
     4665    call 02f4ch                               ; e8 31 07
    46634666    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46644667    add dx, strict byte 00031h                ; 83 c2 31
    46654668    mov bx, strict word 00003h                ; bb 03 00
    46664669    mov ax, word [bp-008h]                    ; 8b 46 f8
    4667     call 02f42h                               ; e8 22 07
     4670    call 02f4ch                               ; e8 22 07
    46684671    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46694672    add dx, strict byte 00032h                ; 83 c2 32
    46704673    xor bx, bx                                ; 31 db
    46714674    mov ax, word [bp-008h]                    ; 8b 46 f8
    4672     call 02f42h                               ; e8 14 07
     4675    call 02f4ch                               ; e8 14 07
    46734676    mov di, word [bp-00ah]                    ; 8b 7e f6
    46744677    add di, strict byte 00033h                ; 83 c7 33
     
    46774680    mov es, [bp-008h]                         ; 8e 46 f8
    46784681    cld                                       ; fc
    4679     jcxz 02841h                               ; e3 02
     4682    jcxz 0284bh                               ; e3 02
    46804683    rep stosb                                 ; f3 aa
    46814684    lea sp, [bp-006h]                         ; 8d 66 fa
     
    46854688    pop bp                                    ; 5d
    46864689    retn                                      ; c3
    4687 biosfn_read_video_state_size2_:              ; 0xc2849 LB 0x23
     4690biosfn_read_video_state_size2_:              ; 0xc2853 LB 0x23
    46884691    push dx                                   ; 52
    46894692    push bp                                   ; 55
     
    46924695    xor ax, ax                                ; 31 c0
    46934696    test dl, 001h                             ; f6 c2 01
    4694     je short 02859h                           ; 74 03
     4697    je short 02863h                           ; 74 03
    46954698    mov ax, strict word 00046h                ; b8 46 00
    46964699    test dl, 002h                             ; f6 c2 02
    4697     je short 02861h                           ; 74 03
     4700    je short 0286bh                           ; 74 03
    46984701    add ax, strict word 0002ah                ; 05 2a 00
    46994702    test dl, 004h                             ; f6 c2 04
    4700     je short 02869h                           ; 74 03
     4703    je short 02873h                           ; 74 03
    47014704    add ax, 00304h                            ; 05 04 03
    47024705    pop bp                                    ; 5d
    47034706    pop dx                                    ; 5a
    47044707    retn                                      ; c3
    4705 vga_get_video_state_size_:                   ; 0xc286c LB 0x12
     4708vga_get_video_state_size_:                   ; 0xc2876 LB 0x12
    47064709    push bp                                   ; 55
    47074710    mov bp, sp                                ; 89 e5
    47084711    push bx                                   ; 53
    47094712    mov bx, dx                                ; 89 d3
    4710     call 02849h                               ; e8 d4 ff
     4713    call 02853h                               ; e8 d4 ff
    47114714    mov word [ss:bx], ax                      ; 36 89 07
    47124715    lea sp, [bp-002h]                         ; 8d 66 fe
     
    47144717    pop bp                                    ; 5d
    47154718    retn                                      ; c3
    4716 biosfn_save_video_state_:                    ; 0xc287e LB 0x369
     4719biosfn_save_video_state_:                    ; 0xc2888 LB 0x369
    47174720    push bp                                   ; 55
    47184721    mov bp, sp                                ; 89 e5
     
    47274730    mov dx, strict word 00063h                ; ba 63 00
    47284731    mov ax, strict word 00040h                ; b8 40 00
    4729     call 02f50h                               ; e8 bc 06
     4732    call 02f5ah                               ; e8 bc 06
    47304733    mov di, ax                                ; 89 c7
    47314734    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    4732     je near 02a01h                            ; 0f 84 63 01
     4735    je near 02a0bh                            ; 0f 84 63 01
    47334736    mov dx, 003c4h                            ; ba c4 03
    47344737    in AL, DX                                 ; ec
     
    47384741    mov dx, cx                                ; 89 ca
    47394742    mov ax, si                                ; 89 f0
    4740     call 02f42h                               ; e8 94 06
     4743    call 02f4ch                               ; e8 94 06
    47414744    inc cx                                    ; 41
    47424745    mov dx, di                                ; 89 fa
     
    47474750    mov dx, cx                                ; 89 ca
    47484751    mov ax, si                                ; 89 f0
    4749     call 02f42h                               ; e8 84 06
     4752    call 02f4ch                               ; e8 84 06
    47504753    inc cx                                    ; 41
    47514754    mov dx, 003ceh                            ; ba ce 03
     
    47564759    mov dx, cx                                ; 89 ca
    47574760    mov ax, si                                ; 89 f0
    4758     call 02f42h                               ; e8 73 06
     4761    call 02f4ch                               ; e8 73 06
    47594762    inc cx                                    ; 41
    47604763    mov dx, 003dah                            ; ba da 03
     
    47704773    mov dx, cx                                ; 89 ca
    47714774    mov ax, si                                ; 89 f0
    4772     call 02f42h                               ; e8 58 06
     4775    call 02f4ch                               ; e8 58 06
    47734776    inc cx                                    ; 41
    47744777    mov dx, 003cah                            ; ba ca 03
     
    47794782    mov dx, cx                                ; 89 ca
    47804783    mov ax, si                                ; 89 f0
    4781     call 02f42h                               ; e8 47 06
     4784    call 02f4ch                               ; e8 47 06
    47824785    mov ax, strict word 00001h                ; b8 01 00
    47834786    mov word [bp-00ah], ax                    ; 89 46 f6
    47844787    add cx, ax                                ; 01 c1
    4785     jmp short 0290bh                          ; eb 06
     4788    jmp short 02915h                          ; eb 06
    47864789    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
    4787     jnbe short 02928h                         ; 77 1d
     4790    jnbe short 02932h                         ; 77 1d
    47884791    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47894792    mov dx, 003c4h                            ; ba c4 03
     
    47964799    mov dx, cx                                ; 89 ca
    47974800    mov ax, si                                ; 89 f0
    4798     call 02f42h                               ; e8 20 06
     4801    call 02f4ch                               ; e8 20 06
    47994802    inc cx                                    ; 41
    48004803    inc word [bp-00ah]                        ; ff 46 f6
    4801     jmp short 02905h                          ; eb dd
     4804    jmp short 0290fh                          ; eb dd
    48024805    xor al, al                                ; 30 c0
    48034806    mov dx, 003c4h                            ; ba c4 03
     
    48104813    mov dx, cx                                ; 89 ca
    48114814    mov ax, si                                ; 89 f0
    4812     call 02f42h                               ; e8 04 06
     4815    call 02f4ch                               ; e8 04 06
    48134816    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    48144817    inc cx                                    ; 41
    4815     jmp short 0294ch                          ; eb 06
     4818    jmp short 02956h                          ; eb 06
    48164819    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
    4817     jnbe short 02968h                         ; 77 1c
     4820    jnbe short 02972h                         ; 77 1c
    48184821    mov al, byte [bp-00ah]                    ; 8a 46 f6
    48194822    mov dx, di                                ; 89 fa
     
    48264829    mov dx, cx                                ; 89 ca
    48274830    mov ax, si                                ; 89 f0
    4828     call 02f42h                               ; e8 e0 05
     4831    call 02f4ch                               ; e8 e0 05
    48294832    inc cx                                    ; 41
    48304833    inc word [bp-00ah]                        ; ff 46 f6
    4831     jmp short 02946h                          ; eb de
     4834    jmp short 02950h                          ; eb de
    48324835    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    4833     jmp short 02975h                          ; eb 06
     4836    jmp short 0297fh                          ; eb 06
    48344837    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
    4835     jnbe short 0299eh                         ; 77 29
     4838    jnbe short 029a8h                         ; 77 29
    48364839    mov dx, 003dah                            ; ba da 03
    48374840    in AL, DX                                 ; ec
     
    48504853    mov dx, cx                                ; 89 ca
    48514854    mov ax, si                                ; 89 f0
    4852     call 02f42h                               ; e8 aa 05
     4855    call 02f4ch                               ; e8 aa 05
    48534856    inc cx                                    ; 41
    48544857    inc word [bp-00ah]                        ; ff 46 f6
    4855     jmp short 0296fh                          ; eb d1
     4858    jmp short 02979h                          ; eb d1
    48564859    mov dx, 003dah                            ; ba da 03
    48574860    in AL, DX                                 ; ec
     
    48594862    ; sub ah, ah                                ; 2a e4
    48604863    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    4861     jmp short 029b1h                          ; eb 06
     4864    jmp short 029bbh                          ; eb 06
    48624865    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    4863     jnbe short 029ceh                         ; 77 1d
     4866    jnbe short 029d8h                         ; 77 1d
    48644867    mov al, byte [bp-00ah]                    ; 8a 46 f6
    48654868    mov dx, 003ceh                            ; ba ce 03
     
    48724875    mov dx, cx                                ; 89 ca
    48734876    mov ax, si                                ; 89 f0
    4874     call 02f42h                               ; e8 7a 05
     4877    call 02f4ch                               ; e8 7a 05
    48754878    inc cx                                    ; 41
    48764879    inc word [bp-00ah]                        ; ff 46 f6
    4877     jmp short 029abh                          ; eb dd
     4880    jmp short 029b5h                          ; eb dd
    48784881    mov bx, di                                ; 89 fb
    48794882    mov dx, cx                                ; 89 ca
    48804883    mov ax, si                                ; 89 f0
    4881     call 02f5eh                               ; e8 87 05
     4884    call 02f68h                               ; e8 87 05
    48824885    inc cx                                    ; 41
    48834886    inc cx                                    ; 41
     
    48854888    mov dx, cx                                ; 89 ca
    48864889    mov ax, si                                ; 89 f0
    4887     call 02f42h                               ; e8 60 05
     4890    call 02f4ch                               ; e8 60 05
    48884891    inc cx                                    ; 41
    48894892    xor bx, bx                                ; 31 db
    48904893    mov dx, cx                                ; 89 ca
    48914894    mov ax, si                                ; 89 f0
    4892     call 02f42h                               ; e8 56 05
     4895    call 02f4ch                               ; e8 56 05
    48934896    inc cx                                    ; 41
    48944897    xor bx, bx                                ; 31 db
    48954898    mov dx, cx                                ; 89 ca
    48964899    mov ax, si                                ; 89 f0
    4897     call 02f42h                               ; e8 4c 05
     4900    call 02f4ch                               ; e8 4c 05
    48984901    inc cx                                    ; 41
    48994902    xor bx, bx                                ; 31 db
    49004903    mov dx, cx                                ; 89 ca
    49014904    mov ax, si                                ; 89 f0
    4902     call 02f42h                               ; e8 42 05
     4905    call 02f4ch                               ; e8 42 05
    49034906    inc cx                                    ; 41
    49044907    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    4905     je near 02b70h                            ; 0f 84 67 01
     4908    je near 02b7ah                            ; 0f 84 67 01
    49064909    mov dx, strict word 00049h                ; ba 49 00
    49074910    mov ax, strict word 00040h                ; b8 40 00
    4908     call 02f34h                               ; e8 22 05
     4911    call 02f3eh                               ; e8 22 05
    49094912    movzx bx, al                              ; 0f b6 d8
    49104913    mov dx, cx                                ; 89 ca
    49114914    mov ax, si                                ; 89 f0
    4912     call 02f42h                               ; e8 26 05
     4915    call 02f4ch                               ; e8 26 05
    49134916    inc cx                                    ; 41
    49144917    mov dx, strict word 0004ah                ; ba 4a 00
    49154918    mov ax, strict word 00040h                ; b8 40 00
    4916     call 02f50h                               ; e8 2a 05
     4919    call 02f5ah                               ; e8 2a 05
    49174920    mov bx, ax                                ; 89 c3
    49184921    mov dx, cx                                ; 89 ca
    49194922    mov ax, si                                ; 89 f0
    4920     call 02f5eh                               ; e8 2f 05
     4923    call 02f68h                               ; e8 2f 05
    49214924    inc cx                                    ; 41
    49224925    inc cx                                    ; 41
    49234926    mov dx, strict word 0004ch                ; ba 4c 00
    49244927    mov ax, strict word 00040h                ; b8 40 00
    4925     call 02f50h                               ; e8 16 05
     4928    call 02f5ah                               ; e8 16 05
    49264929    mov bx, ax                                ; 89 c3
    49274930    mov dx, cx                                ; 89 ca
    49284931    mov ax, si                                ; 89 f0
    4929     call 02f5eh                               ; e8 1b 05
     4932    call 02f68h                               ; e8 1b 05
    49304933    inc cx                                    ; 41
    49314934    inc cx                                    ; 41
    49324935    mov dx, strict word 00063h                ; ba 63 00
    49334936    mov ax, strict word 00040h                ; b8 40 00
    4934     call 02f50h                               ; e8 02 05
     4937    call 02f5ah                               ; e8 02 05
    49354938    mov bx, ax                                ; 89 c3
    49364939    mov dx, cx                                ; 89 ca
    49374940    mov ax, si                                ; 89 f0
    4938     call 02f5eh                               ; e8 07 05
     4941    call 02f68h                               ; e8 07 05
    49394942    inc cx                                    ; 41
    49404943    inc cx                                    ; 41
    49414944    mov dx, 00084h                            ; ba 84 00
    49424945    mov ax, strict word 00040h                ; b8 40 00
    4943     call 02f34h                               ; e8 d2 04
     4946    call 02f3eh                               ; e8 d2 04
    49444947    movzx bx, al                              ; 0f b6 d8
    49454948    mov dx, cx                                ; 89 ca
    49464949    mov ax, si                                ; 89 f0
    4947     call 02f42h                               ; e8 d6 04
     4950    call 02f4ch                               ; e8 d6 04
    49484951    inc cx                                    ; 41
    49494952    mov dx, 00085h                            ; ba 85 00
    49504953    mov ax, strict word 00040h                ; b8 40 00
    4951     call 02f50h                               ; e8 da 04
     4954    call 02f5ah                               ; e8 da 04
    49524955    mov bx, ax                                ; 89 c3
    49534956    mov dx, cx                                ; 89 ca
    49544957    mov ax, si                                ; 89 f0
    4955     call 02f5eh                               ; e8 df 04
     4958    call 02f68h                               ; e8 df 04
    49564959    inc cx                                    ; 41
    49574960    inc cx                                    ; 41
    49584961    mov dx, 00087h                            ; ba 87 00
    49594962    mov ax, strict word 00040h                ; b8 40 00
    4960     call 02f34h                               ; e8 aa 04
     4963    call 02f3eh                               ; e8 aa 04
    49614964    movzx bx, al                              ; 0f b6 d8
    49624965    mov dx, cx                                ; 89 ca
    49634966    mov ax, si                                ; 89 f0
    4964     call 02f42h                               ; e8 ae 04
     4967    call 02f4ch                               ; e8 ae 04
    49654968    inc cx                                    ; 41
    49664969    mov dx, 00088h                            ; ba 88 00
    49674970    mov ax, strict word 00040h                ; b8 40 00
    4968     call 02f34h                               ; e8 96 04
     4971    call 02f3eh                               ; e8 96 04
    49694972    movzx bx, al                              ; 0f b6 d8
    49704973    mov dx, cx                                ; 89 ca
    49714974    mov ax, si                                ; 89 f0
    4972     call 02f42h                               ; e8 9a 04
     4975    call 02f4ch                               ; e8 9a 04
    49734976    inc cx                                    ; 41
    49744977    mov dx, 00089h                            ; ba 89 00
    49754978    mov ax, strict word 00040h                ; b8 40 00
    4976     call 02f34h                               ; e8 82 04
     4979    call 02f3eh                               ; e8 82 04
    49774980    movzx bx, al                              ; 0f b6 d8
    49784981    mov dx, cx                                ; 89 ca
    49794982    mov ax, si                                ; 89 f0
    4980     call 02f42h                               ; e8 86 04
     4983    call 02f4ch                               ; e8 86 04
    49814984    inc cx                                    ; 41
    49824985    mov dx, strict word 00060h                ; ba 60 00
    49834986    mov ax, strict word 00040h                ; b8 40 00
    4984     call 02f50h                               ; e8 8a 04
     4987    call 02f5ah                               ; e8 8a 04
    49854988    mov bx, ax                                ; 89 c3
    49864989    mov dx, cx                                ; 89 ca
    49874990    mov ax, si                                ; 89 f0
    4988     call 02f5eh                               ; e8 8f 04
     4991    call 02f68h                               ; e8 8f 04
    49894992    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    49904993    inc cx                                    ; 41
    49914994    inc cx                                    ; 41
    4992     jmp short 02adeh                          ; eb 06
     4995    jmp short 02ae8h                          ; eb 06
    49934996    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    4994     jnc short 02afch                          ; 73 1e
     4997    jnc short 02b06h                          ; 73 1e
    49954998    mov dx, word [bp-00ah]                    ; 8b 56 f6
    49964999    add dx, dx                                ; 01 d2
    49975000    add dx, strict byte 00050h                ; 83 c2 50
    49985001    mov ax, strict word 00040h                ; b8 40 00
    4999     call 02f50h                               ; e8 64 04
     5002    call 02f5ah                               ; e8 64 04
    50005003    mov bx, ax                                ; 89 c3
    50015004    mov dx, cx                                ; 89 ca
    50025005    mov ax, si                                ; 89 f0
    5003     call 02f5eh                               ; e8 69 04
     5006    call 02f68h                               ; e8 69 04
    50045007    inc cx                                    ; 41
    50055008    inc cx                                    ; 41
    50065009    inc word [bp-00ah]                        ; ff 46 f6
    5007     jmp short 02ad8h                          ; eb dc
     5010    jmp short 02ae2h                          ; eb dc
    50085011    mov dx, strict word 0004eh                ; ba 4e 00
    50095012    mov ax, strict word 00040h                ; b8 40 00
    5010     call 02f50h                               ; e8 4b 04
     5013    call 02f5ah                               ; e8 4b 04
    50115014    mov bx, ax                                ; 89 c3
    50125015    mov dx, cx                                ; 89 ca
    50135016    mov ax, si                                ; 89 f0
    5014     call 02f5eh                               ; e8 50 04
     5017    call 02f68h                               ; e8 50 04
    50155018    inc cx                                    ; 41
    50165019    inc cx                                    ; 41
    50175020    mov dx, strict word 00062h                ; ba 62 00
    50185021    mov ax, strict word 00040h                ; b8 40 00
    5019     call 02f34h                               ; e8 1b 04
     5022    call 02f3eh                               ; e8 1b 04
    50205023    movzx bx, al                              ; 0f b6 d8
    50215024    mov dx, cx                                ; 89 ca
    50225025    mov ax, si                                ; 89 f0
    5023     call 02f42h                               ; e8 1f 04
     5026    call 02f4ch                               ; e8 1f 04
    50245027    inc cx                                    ; 41
    50255028    mov dx, strict word 0007ch                ; ba 7c 00
    50265029    xor ax, ax                                ; 31 c0
    5027     call 02f50h                               ; e8 24 04
     5030    call 02f5ah                               ; e8 24 04
    50285031    mov bx, ax                                ; 89 c3
    50295032    mov dx, cx                                ; 89 ca
    50305033    mov ax, si                                ; 89 f0
    5031     call 02f5eh                               ; e8 29 04
     5034    call 02f68h                               ; e8 29 04
    50325035    inc cx                                    ; 41
    50335036    inc cx                                    ; 41
    50345037    mov dx, strict word 0007eh                ; ba 7e 00
    50355038    xor ax, ax                                ; 31 c0
    5036     call 02f50h                               ; e8 11 04
     5039    call 02f5ah                               ; e8 11 04
    50375040    mov bx, ax                                ; 89 c3
    50385041    mov dx, cx                                ; 89 ca
    50395042    mov ax, si                                ; 89 f0
    5040     call 02f5eh                               ; e8 16 04
     5043    call 02f68h                               ; e8 16 04
    50415044    inc cx                                    ; 41
    50425045    inc cx                                    ; 41
    50435046    mov dx, 0010ch                            ; ba 0c 01
    50445047    xor ax, ax                                ; 31 c0
    5045     call 02f50h                               ; e8 fe 03
     5048    call 02f5ah                               ; e8 fe 03
    50465049    mov bx, ax                                ; 89 c3
    50475050    mov dx, cx                                ; 89 ca
    50485051    mov ax, si                                ; 89 f0
    5049     call 02f5eh                               ; e8 03 04
     5052    call 02f68h                               ; e8 03 04
    50505053    inc cx                                    ; 41
    50515054    inc cx                                    ; 41
    50525055    mov dx, 0010eh                            ; ba 0e 01
    50535056    xor ax, ax                                ; 31 c0
    5054     call 02f50h                               ; e8 eb 03
     5057    call 02f5ah                               ; e8 eb 03
    50555058    mov bx, ax                                ; 89 c3
    50565059    mov dx, cx                                ; 89 ca
    50575060    mov ax, si                                ; 89 f0
    5058     call 02f5eh                               ; e8 f0 03
     5061    call 02f68h                               ; e8 f0 03
    50595062    inc cx                                    ; 41
    50605063    inc cx                                    ; 41
    50615064    test byte [bp-00ch], 004h                 ; f6 46 f4 04
    5062     je short 02bddh                           ; 74 67
     5065    je short 02be7h                           ; 74 67
    50635066    mov dx, 003c7h                            ; ba c7 03
    50645067    in AL, DX                                 ; ec
     
    50685071    mov dx, cx                                ; 89 ca
    50695072    mov ax, si                                ; 89 f0
    5070     call 02f42h                               ; e8 bc 03
     5073    call 02f4ch                               ; e8 bc 03
    50715074    inc cx                                    ; 41
    50725075    mov dx, 003c8h                            ; ba c8 03
     
    50775080    mov dx, cx                                ; 89 ca
    50785081    mov ax, si                                ; 89 f0
    5079     call 02f42h                               ; e8 ab 03
     5082    call 02f4ch                               ; e8 ab 03
    50805083    inc cx                                    ; 41
    50815084    mov dx, 003c6h                            ; ba c6 03
     
    50865089    mov dx, cx                                ; 89 ca
    50875090    mov ax, si                                ; 89 f0
    5088     call 02f42h                               ; e8 9a 03
     5091    call 02f4ch                               ; e8 9a 03
    50895092    inc cx                                    ; 41
    50905093    xor al, al                                ; 30 c0
     
    50935096    xor ah, ah                                ; 30 e4
    50945097    mov word [bp-00ah], ax                    ; 89 46 f6
    5095     jmp short 02bbdh                          ; eb 07
     5098    jmp short 02bc7h                          ; eb 07
    50965099    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
    5097     jnc short 02bd3h                          ; 73 16
     5100    jnc short 02bddh                          ; 73 16
    50985101    mov dx, 003c9h                            ; ba c9 03
    50995102    in AL, DX                                 ; ec
     
    51035106    mov dx, cx                                ; 89 ca
    51045107    mov ax, si                                ; 89 f0
    5105     call 02f42h                               ; e8 75 03
     5108    call 02f4ch                               ; e8 75 03
    51065109    inc cx                                    ; 41
    51075110    inc word [bp-00ah]                        ; ff 46 f6
    5108     jmp short 02bb6h                          ; eb e3
     5111    jmp short 02bc0h                          ; eb e3
    51095112    xor bx, bx                                ; 31 db
    51105113    mov dx, cx                                ; 89 ca
    51115114    mov ax, si                                ; 89 f0
    5112     call 02f42h                               ; e8 66 03
     5115    call 02f4ch                               ; e8 66 03
    51135116    inc cx                                    ; 41
    51145117    mov ax, cx                                ; 89 c8
     
    51195122    pop bp                                    ; 5d
    51205123    retn                                      ; c3
    5121 biosfn_restore_video_state_:                 ; 0xc2be7 LB 0x326
     5124biosfn_restore_video_state_:                 ; 0xc2bf1 LB 0x326
    51225125    push bp                                   ; 55
    51235126    mov bp, sp                                ; 89 e5
     
    51305133    mov cx, bx                                ; 89 d9
    51315134    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    5132     je near 02d47h                            ; 0f 84 4a 01
     5135    je near 02d51h                            ; 0f 84 4a 01
    51335136    mov dx, 003dah                            ; ba da 03
    51345137    in AL, DX                                 ; ec
     
    51375140    lea dx, [bx+040h]                         ; 8d 57 40
    51385141    mov ax, si                                ; 89 f0
    5139     call 02f50h                               ; e8 45 03
     5142    call 02f5ah                               ; e8 45 03
    51405143    mov di, ax                                ; 89 c7
    51415144    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    51425145    lea cx, [bx+005h]                         ; 8d 4f 05
    5143     jmp short 02c1dh                          ; eb 06
     5146    jmp short 02c27h                          ; eb 06
    51445147    cmp word [bp-008h], strict byte 00004h    ; 83 7e f8 04
    5145     jnbe short 02c35h                         ; 77 18
     5148    jnbe short 02c3fh                         ; 77 18
    51465149    mov al, byte [bp-008h]                    ; 8a 46 f8
    51475150    mov dx, 003c4h                            ; ba c4 03
     
    51495152    mov dx, cx                                ; 89 ca
    51505153    mov ax, si                                ; 89 f0
    5151     call 02f34h                               ; e8 09 03
     5154    call 02f3eh                               ; e8 09 03
    51525155    mov dx, 003c5h                            ; ba c5 03
    51535156    out DX, AL                                ; ee
    51545157    inc cx                                    ; 41
    51555158    inc word [bp-008h]                        ; ff 46 f8
    5156     jmp short 02c17h                          ; eb e2
     5159    jmp short 02c21h                          ; eb e2
    51575160    xor al, al                                ; 30 c0
    51585161    mov dx, 003c4h                            ; ba c4 03
     
    51605163    mov dx, cx                                ; 89 ca
    51615164    mov ax, si                                ; 89 f0
    5162     call 02f34h                               ; e8 f2 02
     5165    call 02f3eh                               ; e8 f2 02
    51635166    mov dx, 003c5h                            ; ba c5 03
    51645167    out DX, AL                                ; ee
     
    51685171    out DX, ax                                ; ef
    51695172    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5170     jmp short 02c5ah                          ; eb 06
     5173    jmp short 02c64h                          ; eb 06
    51715174    cmp word [bp-008h], strict byte 00018h    ; 83 7e f8 18
    5172     jnbe short 02c77h                         ; 77 1d
     5175    jnbe short 02c81h                         ; 77 1d
    51735176    cmp word [bp-008h], strict byte 00011h    ; 83 7e f8 11
    5174     je short 02c71h                           ; 74 11
     5177    je short 02c7bh                           ; 74 11
    51755178    mov al, byte [bp-008h]                    ; 8a 46 f8
    51765179    mov dx, di                                ; 89 fa
     
    51785181    mov dx, cx                                ; 89 ca
    51795182    mov ax, si                                ; 89 f0
    5180     call 02f34h                               ; e8 c7 02
     5183    call 02f3eh                               ; e8 c7 02
    51815184    lea dx, [di+001h]                         ; 8d 55 01
    51825185    out DX, AL                                ; ee
    51835186    inc cx                                    ; 41
    51845187    inc word [bp-008h]                        ; ff 46 f8
    5185     jmp short 02c54h                          ; eb dd
     5188    jmp short 02c5eh                          ; eb dd
    51865189    mov dx, 003cch                            ; ba cc 03
    51875190    in AL, DX                                 ; ec
     
    51915194    mov word [bp-00ah], ax                    ; 89 46 f6
    51925195    cmp di, 003d4h                            ; 81 ff d4 03
    5193     jne short 02c8ch                          ; 75 04
     5196    jne short 02c96h                          ; 75 04
    51945197    or byte [bp-00ah], 001h                   ; 80 4e f6 01
    51955198    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    52025205    add dx, strict byte 0fff9h                ; 83 c2 f9
    52035206    mov ax, si                                ; 89 f0
    5204     call 02f34h                               ; e8 92 02
     5207    call 02f3eh                               ; e8 92 02
    52055208    lea dx, [di+001h]                         ; 8d 55 01
    52065209    out DX, AL                                ; ee
    52075210    lea dx, [bx+003h]                         ; 8d 57 03
    52085211    mov ax, si                                ; 89 f0
    5209     call 02f34h                               ; e8 86 02
     5212    call 02f3eh                               ; e8 86 02
    52105213    xor ah, ah                                ; 30 e4
    52115214    mov word [bp-00ch], ax                    ; 89 46 f4
     
    52155218    ; sub ah, ah                                ; 2a e4
    52165219    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5217     jmp short 02cc6h                          ; eb 06
     5220    jmp short 02cd0h                          ; eb 06
    52185221    cmp word [bp-008h], strict byte 00013h    ; 83 7e f8 13
    5219     jnbe short 02ce4h                         ; 77 1e
     5222    jnbe short 02ceeh                         ; 77 1e
    52205223    mov ax, word [bp-00ch]                    ; 8b 46 f4
    52215224    and ax, strict word 00020h                ; 25 20 00
     
    52255228    mov dx, cx                                ; 89 ca
    52265229    mov ax, si                                ; 89 f0
    5227     call 02f34h                               ; e8 5a 02
     5230    call 02f3eh                               ; e8 5a 02
    52285231    mov dx, 003c0h                            ; ba c0 03
    52295232    out DX, AL                                ; ee
    52305233    inc cx                                    ; 41
    52315234    inc word [bp-008h]                        ; ff 46 f8
    5232     jmp short 02cc0h                          ; eb dc
     5235    jmp short 02ccah                          ; eb dc
    52335236    mov al, byte [bp-00ch]                    ; 8a 46 f4
    52345237    mov dx, 003c0h                            ; ba c0 03
     
    52395242    ; sub ah, ah                                ; 2a e4
    52405243    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5241     jmp short 02cfeh                          ; eb 06
     5244    jmp short 02d08h                          ; eb 06
    52425245    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
    5243     jnbe short 02d16h                         ; 77 18
     5246    jnbe short 02d20h                         ; 77 18
    52445247    mov al, byte [bp-008h]                    ; 8a 46 f8
    52455248    mov dx, 003ceh                            ; ba ce 03
     
    52475250    mov dx, cx                                ; 89 ca
    52485251    mov ax, si                                ; 89 f0
    5249     call 02f34h                               ; e8 28 02
     5252    call 02f3eh                               ; e8 28 02
    52505253    mov dx, 003cfh                            ; ba cf 03
    52515254    out DX, AL                                ; ee
    52525255    inc cx                                    ; 41
    52535256    inc word [bp-008h]                        ; ff 46 f8
    5254     jmp short 02cf8h                          ; eb e2
     5257    jmp short 02d02h                          ; eb e2
    52555258    add cx, strict byte 00006h                ; 83 c1 06
    52565259    mov dx, bx                                ; 89 da
    52575260    mov ax, si                                ; 89 f0
    5258     call 02f34h                               ; e8 14 02
     5261    call 02f3eh                               ; e8 14 02
    52595262    mov dx, 003c4h                            ; ba c4 03
    52605263    out DX, AL                                ; ee
     
    52625265    mov dx, bx                                ; 89 da
    52635266    mov ax, si                                ; 89 f0
    5264     call 02f34h                               ; e8 08 02
     5267    call 02f3eh                               ; e8 08 02
    52655268    mov dx, di                                ; 89 fa
    52665269    out DX, AL                                ; ee
     
    52685271    mov dx, bx                                ; 89 da
    52695272    mov ax, si                                ; 89 f0
    5270     call 02f34h                               ; e8 fd 01
     5273    call 02f3eh                               ; e8 fd 01
    52715274    mov dx, 003ceh                            ; ba ce 03
    52725275    out DX, AL                                ; ee
    52735276    lea dx, [bx+002h]                         ; 8d 57 02
    52745277    mov ax, si                                ; 89 f0
    5275     call 02f34h                               ; e8 f1 01
     5278    call 02f3eh                               ; e8 f1 01
    52765279    lea dx, [di+006h]                         ; 8d 55 06
    52775280    out DX, AL                                ; ee
    52785281    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    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
     5282    je near 02ec0h                            ; 0f 84 67 01
     5283    mov dx, cx                                ; 89 ca
     5284    mov ax, si                                ; 89 f0
     5285    call 02f3eh                               ; e8 de 01
    52835286    movzx bx, al                              ; 0f b6 d8
    52845287    mov dx, strict word 00049h                ; ba 49 00
    52855288    mov ax, strict word 00040h                ; b8 40 00
    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
     5289    call 02f4ch                               ; e8 e0 01
     5290    inc cx                                    ; 41
     5291    mov dx, cx                                ; 89 ca
     5292    mov ax, si                                ; 89 f0
     5293    call 02f5ah                               ; e8 e6 01
    52915294    mov bx, ax                                ; 89 c3
    52925295    mov dx, strict word 0004ah                ; ba 4a 00
    52935296    mov ax, strict word 00040h                ; b8 40 00
    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
     5297    call 02f68h                               ; e8 e9 01
     5298    inc cx                                    ; 41
     5299    inc cx                                    ; 41
     5300    mov dx, cx                                ; 89 ca
     5301    mov ax, si                                ; 89 f0
     5302    call 02f5ah                               ; e8 d2 01
    53005303    mov bx, ax                                ; 89 c3
    53015304    mov dx, strict word 0004ch                ; ba 4c 00
    53025305    mov ax, strict word 00040h                ; b8 40 00
    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
     5306    call 02f68h                               ; e8 d5 01
     5307    inc cx                                    ; 41
     5308    inc cx                                    ; 41
     5309    mov dx, cx                                ; 89 ca
     5310    mov ax, si                                ; 89 f0
     5311    call 02f5ah                               ; e8 be 01
    53095312    mov bx, ax                                ; 89 c3
    53105313    mov dx, strict word 00063h                ; ba 63 00
    53115314    mov ax, strict word 00040h                ; b8 40 00
    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
     5315    call 02f68h                               ; e8 c1 01
     5316    inc cx                                    ; 41
     5317    inc cx                                    ; 41
     5318    mov dx, cx                                ; 89 ca
     5319    mov ax, si                                ; 89 f0
     5320    call 02f3eh                               ; e8 8e 01
    53185321    movzx bx, al                              ; 0f b6 d8
    53195322    mov dx, 00084h                            ; ba 84 00
    53205323    mov ax, strict word 00040h                ; b8 40 00
    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
     5324    call 02f4ch                               ; e8 90 01
     5325    inc cx                                    ; 41
     5326    mov dx, cx                                ; 89 ca
     5327    mov ax, si                                ; 89 f0
     5328    call 02f5ah                               ; e8 96 01
    53265329    mov bx, ax                                ; 89 c3
    53275330    mov dx, 00085h                            ; ba 85 00
    53285331    mov ax, strict word 00040h                ; b8 40 00
    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
     5332    call 02f68h                               ; e8 99 01
     5333    inc cx                                    ; 41
     5334    inc cx                                    ; 41
     5335    mov dx, cx                                ; 89 ca
     5336    mov ax, si                                ; 89 f0
     5337    call 02f3eh                               ; e8 66 01
    53355338    movzx bx, al                              ; 0f b6 d8
    53365339    mov dx, 00087h                            ; ba 87 00
    53375340    mov ax, strict word 00040h                ; b8 40 00
    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
     5341    call 02f4ch                               ; e8 68 01
     5342    inc cx                                    ; 41
     5343    mov dx, cx                                ; 89 ca
     5344    mov ax, si                                ; 89 f0
     5345    call 02f3eh                               ; e8 52 01
    53435346    movzx bx, al                              ; 0f b6 d8
    53445347    mov dx, 00088h                            ; ba 88 00
    53455348    mov ax, strict word 00040h                ; b8 40 00
    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
     5349    call 02f4ch                               ; e8 54 01
     5350    inc cx                                    ; 41
     5351    mov dx, cx                                ; 89 ca
     5352    mov ax, si                                ; 89 f0
     5353    call 02f3eh                               ; e8 3e 01
    53515354    movzx bx, al                              ; 0f b6 d8
    53525355    mov dx, 00089h                            ; ba 89 00
    53535356    mov ax, strict word 00040h                ; b8 40 00
    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
     5357    call 02f4ch                               ; e8 40 01
     5358    inc cx                                    ; 41
     5359    mov dx, cx                                ; 89 ca
     5360    mov ax, si                                ; 89 f0
     5361    call 02f5ah                               ; e8 46 01
    53595362    mov bx, ax                                ; 89 c3
    53605363    mov dx, strict word 00060h                ; ba 60 00
    53615364    mov ax, strict word 00040h                ; b8 40 00
    5362     call 02f5eh                               ; e8 49 01
     5365    call 02f68h                               ; e8 49 01
    53635366    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    53645367    inc cx                                    ; 41
    53655368    inc cx                                    ; 41
    5366     jmp short 02e24h                          ; eb 06
     5369    jmp short 02e2eh                          ; eb 06
    53675370    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
    5368     jnc short 02e42h                          ; 73 1e
    5369     mov dx, cx                                ; 89 ca
    5370     mov ax, si                                ; 89 f0
    5371     call 02f50h                               ; e8 25 01
     5371    jnc short 02e4ch                          ; 73 1e
     5372    mov dx, cx                                ; 89 ca
     5373    mov ax, si                                ; 89 f0
     5374    call 02f5ah                               ; e8 25 01
    53725375    mov bx, ax                                ; 89 c3
    53735376    mov dx, word [bp-008h]                    ; 8b 56 f8
     
    53755378    add dx, strict byte 00050h                ; 83 c2 50
    53765379    mov ax, strict word 00040h                ; b8 40 00
    5377     call 02f5eh                               ; e8 23 01
     5380    call 02f68h                               ; e8 23 01
    53785381    inc cx                                    ; 41
    53795382    inc cx                                    ; 41
    53805383    inc word [bp-008h]                        ; ff 46 f8
    5381     jmp short 02e1eh                          ; eb dc
    5382     mov dx, cx                                ; 89 ca
    5383     mov ax, si                                ; 89 f0
    5384     call 02f50h                               ; e8 07 01
     5384    jmp short 02e28h                          ; eb dc
     5385    mov dx, cx                                ; 89 ca
     5386    mov ax, si                                ; 89 f0
     5387    call 02f5ah                               ; e8 07 01
    53855388    mov bx, ax                                ; 89 c3
    53865389    mov dx, strict word 0004eh                ; ba 4e 00
    53875390    mov ax, strict word 00040h                ; b8 40 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
     5391    call 02f68h                               ; e8 0a 01
     5392    inc cx                                    ; 41
     5393    inc cx                                    ; 41
     5394    mov dx, cx                                ; 89 ca
     5395    mov ax, si                                ; 89 f0
     5396    call 02f3eh                               ; e8 d7 00
    53945397    movzx bx, al                              ; 0f b6 d8
    53955398    mov dx, strict word 00062h                ; ba 62 00
    53965399    mov ax, strict word 00040h                ; b8 40 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
     5400    call 02f4ch                               ; e8 d9 00
     5401    inc cx                                    ; 41
     5402    mov dx, cx                                ; 89 ca
     5403    mov ax, si                                ; 89 f0
     5404    call 02f5ah                               ; e8 df 00
    54025405    mov bx, ax                                ; 89 c3
    54035406    mov dx, strict word 0007ch                ; ba 7c 00
    54045407    xor ax, ax                                ; 31 c0
    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
     5408    call 02f68h                               ; e8 e3 00
     5409    inc cx                                    ; 41
     5410    inc cx                                    ; 41
     5411    mov dx, cx                                ; 89 ca
     5412    mov ax, si                                ; 89 f0
     5413    call 02f5ah                               ; e8 cc 00
    54115414    mov bx, ax                                ; 89 c3
    54125415    mov dx, strict word 0007eh                ; ba 7e 00
    54135416    xor ax, ax                                ; 31 c0
    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
     5417    call 02f68h                               ; e8 d0 00
     5418    inc cx                                    ; 41
     5419    inc cx                                    ; 41
     5420    mov dx, cx                                ; 89 ca
     5421    mov ax, si                                ; 89 f0
     5422    call 02f5ah                               ; e8 b9 00
    54205423    mov bx, ax                                ; 89 c3
    54215424    mov dx, 0010ch                            ; ba 0c 01
    54225425    xor ax, ax                                ; 31 c0
    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
     5426    call 02f68h                               ; e8 bd 00
     5427    inc cx                                    ; 41
     5428    inc cx                                    ; 41
     5429    mov dx, cx                                ; 89 ca
     5430    mov ax, si                                ; 89 f0
     5431    call 02f5ah                               ; e8 a6 00
    54295432    mov bx, ax                                ; 89 c3
    54305433    mov dx, 0010eh                            ; ba 0e 01
    54315434    xor ax, ax                                ; 31 c0
    5432     call 02f5eh                               ; e8 aa 00
     5435    call 02f68h                               ; e8 aa 00
    54335436    inc cx                                    ; 41
    54345437    inc cx                                    ; 41
    54355438    test byte [bp-00eh], 004h                 ; f6 46 f2 04
    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
     5439    je short 02f0dh                           ; 74 47
     5440    inc cx                                    ; 41
     5441    mov dx, cx                                ; 89 ca
     5442    mov ax, si                                ; 89 f0
     5443    call 02f3eh                               ; e8 70 00
    54415444    xor ah, ah                                ; 30 e4
    54425445    mov word [bp-00ah], ax                    ; 89 46 f6
     
    54445447    mov dx, cx                                ; 89 ca
    54455448    mov ax, si                                ; 89 f0
    5446     call 02f34h                               ; e8 63 00
     5449    call 02f3eh                               ; e8 63 00
    54475450    mov dx, 003c6h                            ; ba c6 03
    54485451    out DX, AL                                ; ee
     
    54535456    xor ah, ah                                ; 30 e4
    54545457    mov word [bp-008h], ax                    ; 89 46 f8
    5455     jmp short 02eeah                          ; eb 07
     5458    jmp short 02ef4h                          ; eb 07
    54565459    cmp word [bp-008h], 00300h                ; 81 7e f8 00 03
    5457     jnc short 02efbh                          ; 73 11
    5458     mov dx, cx                                ; 89 ca
    5459     mov ax, si                                ; 89 f0
    5460     call 02f34h                               ; e8 43 00
     5460    jnc short 02f05h                          ; 73 11
     5461    mov dx, cx                                ; 89 ca
     5462    mov ax, si                                ; 89 f0
     5463    call 02f3eh                               ; e8 43 00
    54615464    mov dx, 003c9h                            ; ba c9 03
    54625465    out DX, AL                                ; ee
    54635466    inc cx                                    ; 41
    54645467    inc word [bp-008h]                        ; ff 46 f8
    5465     jmp short 02ee3h                          ; eb e8
     5468    jmp short 02eedh                          ; eb e8
    54665469    inc cx                                    ; 41
    54675470    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    54755478    pop bp                                    ; 5d
    54765479    retn                                      ; c3
    5477 find_vga_entry_:                             ; 0xc2f0d LB 0x27
     5480find_vga_entry_:                             ; 0xc2f17 LB 0x27
    54785481    push bx                                   ; 53
    54795482    push dx                                   ; 52
     
    54835486    mov AH, strict byte 0ffh                  ; b4 ff
    54845487    xor al, al                                ; 30 c0
    5485     jmp short 02f20h                          ; eb 06
     5488    jmp short 02f2ah                          ; eb 06
    54865489    db  0feh, 0c0h
    54875490    ; inc al                                    ; fe c0
    54885491    cmp AL, strict byte 00fh                  ; 3c 0f
    5489     jnbe short 02f2eh                         ; 77 0e
     5492    jnbe short 02f38h                         ; 77 0e
    54905493    movzx bx, al                              ; 0f b6 d8
    54915494    sal bx, 003h                              ; c1 e3 03
    54925495    cmp dl, byte [bx+0482fh]                  ; 3a 97 2f 48
    5493     jne short 02f1ah                          ; 75 ee
     5496    jne short 02f24h                          ; 75 ee
    54945497    mov ah, al                                ; 88 c4
    54955498    mov al, ah                                ; 88 e0
     
    54985501    pop bx                                    ; 5b
    54995502    retn                                      ; c3
    5500 read_byte_:                                  ; 0xc2f34 LB 0xe
     5503read_byte_:                                  ; 0xc2f3e LB 0xe
    55015504    push bx                                   ; 53
    55025505    push bp                                   ; 55
     
    55085511    pop bx                                    ; 5b
    55095512    retn                                      ; c3
    5510 write_byte_:                                 ; 0xc2f42 LB 0xe
     5513write_byte_:                                 ; 0xc2f4c LB 0xe
    55115514    push si                                   ; 56
    55125515    push bp                                   ; 55
     
    55185521    pop si                                    ; 5e
    55195522    retn                                      ; c3
    5520 read_word_:                                  ; 0xc2f50 LB 0xe
     5523read_word_:                                  ; 0xc2f5a LB 0xe
    55215524    push bx                                   ; 53
    55225525    push bp                                   ; 55
     
    55285531    pop bx                                    ; 5b
    55295532    retn                                      ; c3
    5530 write_word_:                                 ; 0xc2f5e LB 0xe
     5533write_word_:                                 ; 0xc2f68 LB 0xe
    55315534    push si                                   ; 56
    55325535    push bp                                   ; 55
     
    55385541    pop si                                    ; 5e
    55395542    retn                                      ; c3
    5540 read_dword_:                                 ; 0xc2f6c LB 0x12
     5543read_dword_:                                 ; 0xc2f76 LB 0x12
    55415544    push bx                                   ; 53
    55425545    push bp                                   ; 55
     
    55495552    pop bx                                    ; 5b
    55505553    retn                                      ; c3
    5551 write_dword_:                                ; 0xc2f7e LB 0x7f
     5554write_dword_:                                ; 0xc2f88 LB 0x7f
    55525555    push si                                   ; 56
    55535556    push bp                                   ; 55
     
    55715574    add ax, 00304h                            ; 05 04 03
    55725575    add al, byte [bx+di]                      ; 02 01
    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
     5576    add dl, cl                                ; 00 ca
     5577    xor si, word [di]                         ; 33 35
     5578    xor byte [bp+di+030h], dh                 ; 30 73 30
     5579    xchg word [bx+si], si                     ; 87 30
     5580    cbw                                       ; 98
     5581    xor byte [si-042d0h], ch                  ; 30 ac 30 bd
     5582    xor bh, al                                ; 30 c7
     5583    xor byte [bx+di], al                      ; 30 01
     5584    xor word [di], ax                         ; 31 05
     5585    xor word [03331h], dx                     ; 31 16 31 33
     5586    xor word [bx+si+031h], dx                 ; 31 50 31
     5587    jo short 02ffch                           ; 70 31
     5588    lea si, [bx+di]                           ; 8d 31
     5589    movsb                                     ; a4
     5590    xor word [bx+si-074cfh], si               ; 31 b0 31 8b
     5591    db  032h, 0c6h
     5592    ; xor al, dh                                ; 32 c6
     5593    db  032h, 0f6h
     5594    ; xor dh, dh                                ; 32 f6
     5595    xor cl, byte [bp+di]                      ; 32 0b
     5596    xor cx, word [di+033h]                    ; 33 4d 33
    55895597    xor byte [si], ah                         ; 30 24
    55905598    and sp, word [bp+si]                      ; 23 22
     
    55945602    add AL, strict byte 002h                  ; 04 02
    55955603    add word [bx+si], ax                      ; 01 00
    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
    5612     db  032h
    5613 _int10_func:                                 ; 0xc2ffd LB 0x3ca
     5604    retf 0d133h                               ; ca 33 d1
     5605    xor di, si                                ; 31 f7
     5606    xor word [bx+si], cx                      ; 31 08
     5607    xor bl, byte [bx+di]                      ; 32 19
     5608    db  032h, 0d1h
     5609    ; xor dl, cl                                ; 32 d1
     5610    xor di, si                                ; 31 f7
     5611    xor word [bx+si], cx                      ; 31 08
     5612    xor bl, byte [bx+di]                      ; 32 19
     5613    xor ch, byte [bp+si]                      ; 32 2a
     5614    xor dh, byte [05132h]                     ; 32 36 32 51
     5615    xor bl, byte [si+032h]                    ; 32 5c 32
     5616    xor dh, byte [edx+032h]                   ; 67 32 72 32
     5617_int10_func:                                 ; 0xc3007 LB 0x3ca
    56145618    push bp                                   ; 55
    56155619    mov bp, sp                                ; 89 e5
     
    56215625    shr ax, 008h                              ; c1 e8 08
    56225626    cmp ax, strict word 0004fh                ; 3d 4f 00
    5623     jnbe near 033c0h                          ; 0f 87 ad 03
     5627    jnbe near 033cah                          ; 0f 87 ad 03
    56245628    push CS                                   ; 0e
    56255629    pop ES                                    ; 07
    56265630    mov cx, strict word 00016h                ; b9 16 00
    5627     mov di, 02f90h                            ; bf 90 2f
     5631    mov di, 02f9ah                            ; bf 9a 2f
    56285632    repne scasb                               ; f2 ae
    56295633    sal cx, 1                                 ; d1 e1
    56305634    mov di, cx                                ; 89 cf
    5631     mov ax, word [cs:di+02fa5h]               ; 2e 8b 85 a5 2f
     5635    mov ax, word [cs:di+02fafh]               ; 2e 8b 85 af 2f
    56325636    mov cl, byte [bp+012h]                    ; 8a 4e 12
    56335637    jmp ax                                    ; ff e0
    56345638    mov al, byte [bp+012h]                    ; 8a 46 12
    56355639    xor ah, ah                                ; 30 e4
    5636     call 00fdch                               ; e8 a9 df
     5640    call 00fdch                               ; e8 9f df
    56375641    mov ax, word [bp+012h]                    ; 8b 46 12
    56385642    and ax, strict word 0007fh                ; 25 7f 00
    56395643    cmp ax, strict word 00007h                ; 3d 07 00
    5640     je short 03053h                           ; 74 15
     5644    je short 0305dh                           ; 74 15
    56415645    cmp ax, strict word 00006h                ; 3d 06 00
    5642     je short 0304ah                           ; 74 07
     5646    je short 03054h                           ; 74 07
    56435647    cmp ax, strict word 00005h                ; 3d 05 00
    5644     jbe short 03053h                          ; 76 0b
    5645     jmp short 0305ch                          ; eb 12
     5648    jbe short 0305dh                          ; 76 0b
     5649    jmp short 03066h                          ; eb 12
    56465650    mov ax, word [bp+012h]                    ; 8b 46 12
    56475651    xor al, al                                ; 30 c0
    56485652    or AL, strict byte 03fh                   ; 0c 3f
    5649     jmp short 03063h                          ; eb 10
     5653    jmp short 0306dh                          ; eb 10
    56505654    mov ax, word [bp+012h]                    ; 8b 46 12
    56515655    xor al, al                                ; 30 c0
    56525656    or AL, strict byte 030h                   ; 0c 30
    5653     jmp short 03063h                          ; eb 07
     5657    jmp short 0306dh                          ; eb 07
    56545658    mov ax, word [bp+012h]                    ; 8b 46 12
    56555659    xor al, al                                ; 30 c0
    56565660    or AL, strict byte 020h                   ; 0c 20
    56575661    mov word [bp+012h], ax                    ; 89 46 12
    5658     jmp near 033c0h                           ; e9 57 03
     5662    jmp near 033cah                           ; e9 57 03
    56595663    mov al, byte [bp+010h]                    ; 8a 46 10
    56605664    movzx dx, al                              ; 0f b6 d0
     
    56625666    shr ax, 008h                              ; c1 e8 08
    56635667    xor ah, ah                                ; 30 e4
    5664     call 00dbah                               ; e8 40 dd
    5665     jmp near 033c0h                           ; e9 43 03
     5668    call 00dbah                               ; e8 36 dd
     5669    jmp near 033cah                           ; e9 43 03
    56665670    mov dx, word [bp+00eh]                    ; 8b 56 0e
    56675671    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56685672    shr ax, 008h                              ; c1 e8 08
    56695673    xor ah, ah                                ; 30 e4
    5670     call 00e5eh                               ; e8 d3 dd
    5671     jmp near 033c0h                           ; e9 32 03
     5674    call 00e5eh                               ; e8 c9 dd
     5675    jmp near 033cah                           ; e9 32 03
    56725676    lea bx, [bp+00eh]                         ; 8d 5e 0e
    56735677    lea dx, [bp+010h]                         ; 8d 56 10
     
    56755679    shr ax, 008h                              ; c1 e8 08
    56765680    xor ah, ah                                ; 30 e4
    5677     call 00a88h                               ; e8 e9 d9
    5678     jmp near 033c0h                           ; e9 1e 03
     5681    call 00a88h                               ; e8 df d9
     5682    jmp near 033cah                           ; e9 1e 03
    56795683    xor ax, ax                                ; 31 c0
    56805684    mov word [bp+012h], ax                    ; 89 46 12
     
    56825686    mov word [bp+010h], ax                    ; 89 46 10
    56835687    mov word [bp+00eh], ax                    ; 89 46 0e
    5684     jmp near 033c0h                           ; e9 0d 03
     5688    jmp near 033cah                           ; e9 0d 03
    56855689    mov al, cl                                ; 88 c8
    56865690    xor ah, ah                                ; 30 e4
    5687     call 00f00h                               ; e8 46 de
    5688     jmp near 033c0h                           ; e9 03 03
     5691    call 00f00h                               ; e8 3c de
     5692    jmp near 033cah                           ; e9 03 03
    56895693    mov ax, strict word 00001h                ; b8 01 00
    56905694    push ax                                   ; 50
     
    57085712    mov al, byte [bp+012h]                    ; 8a 46 12
    57095713    xor ah, ah                                ; 30 e4
    5710     call 01568h                               ; e8 74 e4
    5711     jmp near 033c0h                           ; e9 c9 02
     5714    call 01572h                               ; e8 74 e4
     5715    jmp near 033cah                           ; e9 c9 02
    57125716    xor ax, ax                                ; 31 c0
    5713     jmp short 030c0h                          ; eb c5
     5717    jmp short 030cah                          ; eb c5
    57145718    lea dx, [bp+012h]                         ; 8d 56 12
    57155719    mov ax, word [bp+00ch]                    ; 8b 46 0c
    57165720    shr ax, 008h                              ; c1 e8 08
    57175721    xor ah, ah                                ; 30 e4
    5718     call 00acbh                               ; e8 c2 d9
    5719     jmp near 033c0h                           ; e9 b4 02
     5722    call 00acbh                               ; e8 b8 d9
     5723    jmp near 033cah                           ; e9 b4 02
    57205724    mov cx, word [bp+010h]                    ; 8b 4e 10
    57215725    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57265730    mov al, byte [bp+012h]                    ; 8a 46 12
    57275731    xor ah, ah                                ; 30 e4
    5728     call 01d08h                               ; e8 e2 eb
    5729     jmp near 033c0h                           ; e9 97 02
     5732    call 01d12h                               ; e8 e2 eb
     5733    jmp near 033cah                           ; e9 97 02
    57305734    mov cx, word [bp+010h]                    ; 8b 4e 10
    57315735    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57365740    mov al, byte [bp+012h]                    ; 8a 46 12
    57375741    xor ah, ah                                ; 30 e4
    5738     call 01e70h                               ; e8 2d ed
    5739     jmp near 033c0h                           ; e9 7a 02
     5742    call 01e7ah                               ; e8 2d ed
     5743    jmp near 033cah                           ; e9 7a 02
    57405744    mov cx, word [bp+00eh]                    ; 8b 4e 0e
    57415745    mov bx, word [bp+010h]                    ; 8b 5e 10
     
    57475751    mov al, byte [bp-006h]                    ; 8a 46 fa
    57485752    xor ah, ah                                ; 30 e4
    5749     call 01fdfh                               ; e8 7c ee
    5750     jmp near 033c0h                           ; e9 5a 02
     5753    call 01fe9h                               ; e8 7c ee
     5754    jmp near 033cah                           ; e9 5a 02
    57515755    lea cx, [bp+012h]                         ; 8d 4e 12
    57525756    mov bx, word [bp+00eh]                    ; 8b 5e 0e
     
    57575761    mov al, byte [bp-006h]                    ; 8a 46 fa
    57585762    xor ah, ah                                ; 30 e4
    5759     call 00bf5h                               ; e8 75 da
    5760     jmp near 033c0h                           ; e9 3d 02
     5763    call 00bf5h                               ; e8 6b da
     5764    jmp near 033cah                           ; e9 3d 02
    57615765    mov cx, strict word 00002h                ; b9 02 00
    57625766    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57655769    mov al, byte [bp+012h]                    ; 8a 46 12
    57665770    xor ah, ah                                ; 30 e4
    5767     call 02149h                               ; e8 b2 ef
    5768     jmp near 033c0h                           ; e9 26 02
     5771    call 02153h                               ; e8 b2 ef
     5772    jmp near 033cah                           ; e9 26 02
    57695773    mov dx, word [bp+010h]                    ; 8b 56 10
    57705774    mov ax, word [bp+00ch]                    ; 8b 46 0c
    5771     call 00d2eh                               ; e8 8b db
    5772     jmp near 033c0h                           ; e9 1a 02
     5775    call 00d2eh                               ; e8 81 db
     5776    jmp near 033cah                           ; e9 1a 02
    57735777    mov ax, word [bp+012h]                    ; 8b 46 12
    57745778    xor ah, ah                                ; 30 e4
    57755779    cmp ax, strict word 00030h                ; 3d 30 00
    5776     jnbe near 033c0h                          ; 0f 87 0e 02
     5780    jnbe near 033cah                          ; 0f 87 0e 02
    57775781    push CS                                   ; 0e
    57785782    pop ES                                    ; 07
    57795783    mov cx, strict word 0000fh                ; b9 0f 00
    5780     mov di, 02fd1h                            ; bf d1 2f
     5784    mov di, 02fdbh                            ; bf db 2f
    57815785    repne scasb                               ; f2 ae
    57825786    sal cx, 1                                 ; d1 e1
    57835787    mov di, cx                                ; 89 cf
    5784     mov ax, word [cs:di+02fdfh]               ; 2e 8b 85 df 2f
     5788    mov ax, word [cs:di+02fe9h]               ; 2e 8b 85 e9 2f
    57855789    jmp ax                                    ; ff e0
    57865790    mov ax, word [bp+00ch]                    ; 8b 46 0c
     
    57975801    mov bx, word [bp+008h]                    ; 8b 5e 08
    57985802    mov dx, word [bp+016h]                    ; 8b 56 16
    5799     call 024b1h                               ; e8 c7 f2
    5800     jmp near 033c0h                           ; e9 d3 01
     5803    call 024bbh                               ; e8 c7 f2
     5804    jmp near 033cah                           ; e9 d3 01
    58015805    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58025806    movzx dx, al                              ; 0f b6 d0
    58035807    mov al, byte [bp+012h]                    ; 8a 46 12
    58045808    xor ah, ah                                ; 30 e4
    5805     call 0252eh                               ; e8 33 f3
    5806     jmp near 033c0h                           ; e9 c2 01
     5809    call 02538h                               ; e8 33 f3
     5810    jmp near 033cah                           ; e9 c2 01
    58075811    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58085812    movzx dx, al                              ; 0f b6 d0
    58095813    mov al, byte [bp+012h]                    ; 8a 46 12
    58105814    xor ah, ah                                ; 30 e4
    5811     call 0259eh                               ; e8 92 f3
    5812     jmp near 033c0h                           ; e9 b1 01
     5815    call 025a8h                               ; e8 92 f3
     5816    jmp near 033cah                           ; e9 b1 01
    58135817    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58145818    movzx dx, al                              ; 0f b6 d0
    58155819    mov al, byte [bp+012h]                    ; 8a 46 12
    58165820    xor ah, ah                                ; 30 e4
    5817     call 02610h                               ; e8 f3 f3
    5818     jmp near 033c0h                           ; e9 a0 01
     5821    call 0261ah                               ; e8 f3 f3
     5822    jmp near 033cah                           ; e9 a0 01
    58195823    mov dx, word [bp+008h]                    ; 8b 56 08
    58205824    mov ax, word [bp+016h]                    ; 8b 46 16
    5821     call 02682h                               ; e8 59 f4
    5822     jmp near 033c0h                           ; e9 94 01
     5825    call 0268ch                               ; e8 59 f4
     5826    jmp near 033cah                           ; e9 94 01
    58235827    mov al, byte [bp+00eh]                    ; 8a 46 0e
    58245828    xor ah, ah                                ; 30 e4
     
    58295833    mov dx, word [bp+008h]                    ; 8b 56 08
    58305834    mov ax, word [bp+016h]                    ; 8b 46 16
    5831     call 02687h                               ; e8 43 f4
    5832     jmp near 033c0h                           ; e9 79 01
     5835    call 02691h                               ; e8 43 f4
     5836    jmp near 033cah                           ; e9 79 01
    58335837    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58345838    xor ah, ah                                ; 30 e4
    5835     call 0268eh                               ; e8 3f f4
    5836     jmp near 033c0h                           ; e9 6e 01
     5839    call 02698h                               ; e8 3f f4
     5840    jmp near 033cah                           ; e9 6e 01
    58375841    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58385842    xor ah, ah                                ; 30 e4
    5839     call 02693h                               ; e8 39 f4
    5840     jmp near 033c0h                           ; e9 63 01
     5843    call 0269dh                               ; e8 39 f4
     5844    jmp near 033cah                           ; e9 63 01
    58415845    mov al, byte [bp+00ch]                    ; 8a 46 0c
    58425846    xor ah, ah                                ; 30 e4
    5843     call 02698h                               ; e8 33 f4
    5844     jmp near 033c0h                           ; e9 58 01
     5847    call 026a2h                               ; e8 33 f4
     5848    jmp near 033cah                           ; e9 58 01
    58455849    lea ax, [bp+00eh]                         ; 8d 46 0e
    58465850    push ax                                   ; 50
     
    58505854    mov ax, word [bp+00ch]                    ; 8b 46 0c
    58515855    shr ax, 008h                              ; c1 e8 08
    5852     call 00b73h                               ; e8 f5 d8
    5853     jmp near 033c0h                           ; e9 3f 01
     5856    call 00b73h                               ; e8 eb d8
     5857    jmp near 033cah                           ; e9 3f 01
    58545858    mov ax, word [bp+00ch]                    ; 8b 46 0c
    58555859    xor ah, ah                                ; 30 e4
    58565860    cmp ax, strict word 00036h                ; 3d 36 00
    5857     je short 032b3h                           ; 74 28
     5861    je short 032bdh                           ; 74 28
    58585862    cmp ax, strict word 00035h                ; 3d 35 00
    5859     je short 0329dh                           ; 74 0d
     5863    je short 032a7h                           ; 74 0d
    58605864    cmp ax, strict word 00020h                ; 3d 20 00
    5861     jne near 033c0h                           ; 0f 85 29 01
    5862     call 0269dh                               ; e8 03 f4
    5863     jmp near 033c0h                           ; e9 23 01
     5865    jne near 033cah                           ; 0f 85 29 01
     5866    call 026a7h                               ; e8 03 f4
     5867    jmp near 033cah                           ; e9 23 01
    58645868    movzx ax, cl                              ; 0f b6 c1
    58655869    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    58665870    mov dx, word [bp+016h]                    ; 8b 56 16
    5867     call 026a2h                               ; e8 f9 f3
     5871    call 026ach                               ; e8 f9 f3
    58685872    mov ax, word [bp+012h]                    ; 8b 46 12
    58695873    xor al, al                                ; 30 c0
    58705874    or AL, strict byte 012h                   ; 0c 12
    5871     jmp near 03063h                           ; e9 b0 fd
     5875    jmp near 0306dh                           ; e9 b0 fd
    58725876    mov al, cl                                ; 88 c8
    58735877    xor ah, ah                                ; 30 e4
    5874     call 026a7h                               ; e8 ed f3
    5875     jmp short 032a9h                          ; eb ed
     5878    call 026b1h                               ; e8 ed f3
     5879    jmp short 032b3h                          ; eb ed
    58765880    push word [bp+008h]                       ; ff 76 08
    58775881    push word [bp+016h]                       ; ff 76 16
     
    58905894    movzx ax, cl                              ; 0f b6 c1
    58915895    mov cx, word [bp+010h]                    ; 8b 4e 10
    5892     call 026ach                               ; e8 c3 f3
    5893     jmp near 033c0h                           ; e9 d4 00
     5896    call 026b6h                               ; e8 c3 f3
     5897    jmp near 033cah                           ; e9 d4 00
    58945898    mov bx, si                                ; 89 f3
    58955899    mov dx, word [bp+016h]                    ; 8b 56 16
    58965900    mov ax, word [bp+00ch]                    ; 8b 46 0c
    5897     call 02748h                               ; e8 51 f4
     5901    call 02752h                               ; e8 51 f4
    58985902    mov ax, word [bp+012h]                    ; 8b 46 12
    58995903    xor al, al                                ; 30 c0
    59005904    or AL, strict byte 01bh                   ; 0c 1b
    5901     jmp near 03063h                           ; e9 62 fd
     5905    jmp near 0306dh                           ; e9 62 fd
    59025906    mov ax, word [bp+012h]                    ; 8b 46 12
    59035907    xor ah, ah                                ; 30 e4
    59045908    cmp ax, strict word 00002h                ; 3d 02 00
    5905     je short 0332dh                           ; 74 22
     5909    je short 03337h                           ; 74 22
    59065910    cmp ax, strict word 00001h                ; 3d 01 00
    5907     je short 0331fh                           ; 74 0f
     5911    je short 03329h                           ; 74 0f
    59085912    test ax, ax                               ; 85 c0
    5909     jne short 03339h                          ; 75 25
     5913    jne short 03343h                          ; 75 25
    59105914    lea dx, [bp+00ch]                         ; 8d 56 0c
    59115915    mov ax, word [bp+010h]                    ; 8b 46 10
    5912     call 0286ch                               ; e8 4f f5
    5913     jmp short 03339h                          ; eb 1a
     5916    call 02876h                               ; e8 4f f5
     5917    jmp short 03343h                          ; eb 1a
    59145918    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    59155919    mov dx, word [bp+016h]                    ; 8b 56 16
    59165920    mov ax, word [bp+010h]                    ; 8b 46 10
    5917     call 0287eh                               ; e8 53 f5
    5918     jmp short 03339h                          ; eb 0c
     5921    call 02888h                               ; e8 53 f5
     5922    jmp short 03343h                          ; eb 0c
    59195923    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    59205924    mov dx, word [bp+016h]                    ; 8b 56 16
    59215925    mov ax, word [bp+010h]                    ; 8b 46 10
    5922     call 02be7h                               ; e8 ae f8
     5926    call 02bf1h                               ; e8 ae f8
    59235927    mov ax, word [bp+012h]                    ; 8b 46 12
    59245928    xor al, al                                ; 30 c0
    59255929    or AL, strict byte 01ch                   ; 0c 1c
    5926     jmp near 03063h                           ; e9 20 fd
    5927     call 007a4h                               ; e8 5e d4
     5930    jmp near 0306dh                           ; e9 20 fd
     5931    call 007a4h                               ; e8 54 d4
    59285932    test ax, ax                               ; 85 c0
    5929     je near 033bbh                            ; 0f 84 6f 00
     5933    je near 033c5h                            ; 0f 84 6f 00
    59305934    mov ax, word [bp+012h]                    ; 8b 46 12
    59315935    xor ah, ah                                ; 30 e4
    59325936    cmp ax, strict word 00002h                ; 3d 02 00
    5933     jc short 03369h                           ; 72 13
    5934     jbe short 0338fh                          ; 76 37
     5937    jc short 03373h                           ; 72 13
     5938    jbe short 03399h                          ; 76 37
    59355939    cmp ax, strict word 0000ah                ; 3d 0a 00
    5936     je short 033b4h                           ; 74 57
     5940    je short 033beh                           ; 74 57
    59375941    cmp ax, strict word 00009h                ; 3d 09 00
    5938     je short 033b4h                           ; 74 52
     5942    je short 033beh                           ; 74 52
    59395943    cmp ax, strict word 00004h                ; 3d 04 00
    5940     je short 0339fh                           ; 74 38
    5941     jmp short 033b4h                          ; eb 4b
     5944    je short 033a9h                           ; 74 38
     5945    jmp short 033beh                          ; eb 4b
    59425946    cmp ax, strict word 00001h                ; 3d 01 00
    5943     je short 0337fh                           ; 74 11
     5947    je short 03389h                           ; 74 11
    59445948    test ax, ax                               ; 85 c0
    5945     jne short 033b4h                          ; 75 42
     5949    jne short 033beh                          ; 75 42
    59465950    mov bx, si                                ; 89 f3
    59475951    mov dx, word [bp+016h]                    ; 8b 56 16
    59485952    lea ax, [bp+012h]                         ; 8d 46 12
    5949     call 034edh                               ; e8 70 01
    5950     jmp short 033c0h                          ; eb 41
     5953    call 034f7h                               ; e8 70 01
     5954    jmp short 033cah                          ; eb 41
    59515955    mov cx, si                                ; 89 f1
    59525956    mov bx, word [bp+016h]                    ; 8b 5e 16
    59535957    mov dx, word [bp+010h]                    ; 8b 56 10
    59545958    lea ax, [bp+012h]                         ; 8d 46 12
    5955     call 03616h                               ; e8 89 02
    5956     jmp short 033c0h                          ; eb 31
     5959    call 03620h                               ; e8 89 02
     5960    jmp short 033cah                          ; eb 31
    59575961    mov cx, si                                ; 89 f1
    59585962    mov bx, word [bp+016h]                    ; 8b 5e 16
    59595963    mov dx, word [bp+00ch]                    ; 8b 56 0c
    59605964    lea ax, [bp+012h]                         ; 8d 46 12
    5961     call 036cah                               ; e8 2d 03
    5962     jmp short 033c0h                          ; eb 21
     5965    call 036d4h                               ; e8 2d 03
     5966    jmp short 033cah                          ; eb 21
    59635967    lea ax, [bp+00ch]                         ; 8d 46 0c
    59645968    push ax                                   ; 50
     
    59675971    mov dx, word [bp+010h]                    ; 8b 56 10
    59685972    lea ax, [bp+012h]                         ; 8d 46 12
    5969     call 038b1h                               ; e8 ff 04
    5970     jmp short 033c0h                          ; eb 0c
     5973    call 038bbh                               ; e8 ff 04
     5974    jmp short 033cah                          ; eb 0c
    59715975    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    5972     jmp short 033c0h                          ; eb 05
     5976    jmp short 033cah                          ; eb 05
    59735977    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    59745978    lea sp, [bp-004h]                         ; 8d 66 fc
     
    59775981    pop bp                                    ; 5d
    59785982    retn                                      ; c3
    5979 dispi_set_xres_:                             ; 0xc33c7 LB 0x1b
     5983dispi_set_xres_:                             ; 0xc33d1 LB 0x1b
    59805984    push bp                                   ; 55
    59815985    mov bp, sp                                ; 89 e5
     
    59945998    pop bp                                    ; 5d
    59955999    retn                                      ; c3
    5996 dispi_set_yres_:                             ; 0xc33e2 LB 0x1b
     6000dispi_set_yres_:                             ; 0xc33ec LB 0x1b
    59976001    push bp                                   ; 55
    59986002    mov bp, sp                                ; 89 e5
     
    60116015    pop bp                                    ; 5d
    60126016    retn                                      ; c3
    6013 dispi_set_bpp_:                              ; 0xc33fd LB 0x1b
     6017dispi_set_bpp_:                              ; 0xc3407 LB 0x1b
    60146018    push bp                                   ; 55
    60156019    mov bp, sp                                ; 89 e5
     
    60286032    pop bp                                    ; 5d
    60296033    retn                                      ; c3
    6030 in_word_:                                    ; 0xc3418 LB 0x12
     6034in_word_:                                    ; 0xc3422 LB 0x12
    60316035    push bp                                   ; 55
    60326036    mov bp, sp                                ; 89 e5
     
    60416045    pop bp                                    ; 5d
    60426046    retn                                      ; c3
    6043 in_byte_:                                    ; 0xc342a LB 0x14
     6047in_byte_:                                    ; 0xc3434 LB 0x14
    60446048    push bp                                   ; 55
    60456049    mov bp, sp                                ; 89 e5
     
    60566060    pop bp                                    ; 5d
    60576061    retn                                      ; c3
    6058 dispi_get_id_:                               ; 0xc343e LB 0x14
     6062dispi_get_id_:                               ; 0xc3448 LB 0x14
    60596063    push bp                                   ; 55
    60606064    mov bp, sp                                ; 89 e5
     
    60696073    pop bp                                    ; 5d
    60706074    retn                                      ; c3
    6071 dispi_set_id_:                               ; 0xc3452 LB 0x1a
     6075dispi_set_id_:                               ; 0xc345c LB 0x1a
    60726076    push bp                                   ; 55
    60736077    mov bp, sp                                ; 89 e5
     
    60866090    pop bp                                    ; 5d
    60876091    retn                                      ; c3
    6088 vbe_init_:                                   ; 0xc346c LB 0x2c
     6092vbe_init_:                                   ; 0xc3476 LB 0x2c
    60896093    push bp                                   ; 55
    60906094    mov bp, sp                                ; 89 e5
     
    60926096    push dx                                   ; 52
    60936097    mov ax, 0b0c0h                            ; b8 c0 b0
    6094     call 03452h                               ; e8 db ff
    6095     call 0343eh                               ; e8 c4 ff
     6098    call 0345ch                               ; e8 db ff
     6099    call 03448h                               ; e8 c4 ff
    60966100    cmp ax, 0b0c0h                            ; 3d c0 b0
    6097     jne short 03491h                          ; 75 12
     6101    jne short 0349bh                          ; 75 12
    60986102    mov bx, strict word 00001h                ; bb 01 00
    60996103    mov dx, 000b9h                            ; ba b9 00
    61006104    mov ax, strict word 00040h                ; b8 40 00
    6101     call 02f42h                               ; e8 b7 fa
     6105    call 02f4ch                               ; e8 b7 fa
    61026106    mov ax, 0b0c4h                            ; b8 c4 b0
    6103     call 03452h                               ; e8 c1 ff
     6107    call 0345ch                               ; e8 c1 ff
    61046108    lea sp, [bp-004h]                         ; 8d 66 fc
    61056109    pop dx                                    ; 5a
     
    61076111    pop bp                                    ; 5d
    61086112    retn                                      ; c3
    6109 mode_info_find_mode_:                        ; 0xc3498 LB 0x55
     6113mode_info_find_mode_:                        ; 0xc34a2 LB 0x55
    61106114    push bp                                   ; 55
    61116115    mov bp, sp                                ; 89 e5
     
    61186122    xor dx, dx                                ; 31 d2
    61196123    mov ax, 003b6h                            ; b8 b6 03
    6120     call 03418h                               ; e8 6d ff
     6124    call 03422h                               ; e8 6d ff
    61216125    cmp ax, 077cch                            ; 3d cc 77
    6122     jne short 034e2h                          ; 75 32
     6126    jne short 034ech                          ; 75 32
    61236127    mov bx, strict word 00004h                ; bb 04 00
    61246128    mov dx, bx                                ; 89 da
    61256129    mov ax, 003b6h                            ; b8 b6 03
    6126     call 03418h                               ; e8 5d ff
     6130    call 03422h                               ; e8 5d ff
    61276131    mov cx, ax                                ; 89 c1
    61286132    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6129     je short 034e2h                           ; 74 20
     6133    je short 034ech                           ; 74 20
    61306134    lea dx, [bx+002h]                         ; 8d 57 02
    61316135    mov ax, 003b6h                            ; b8 b6 03
    6132     call 03418h                               ; e8 4d ff
     6136    call 03422h                               ; e8 4d ff
    61336137    lea dx, [bx+044h]                         ; 8d 57 44
    61346138    cmp cx, di                                ; 39 f9
    6135     jne short 034deh                          ; 75 0c
     6139    jne short 034e8h                          ; 75 0c
    61366140    test si, si                               ; 85 f6
    6137     jne short 034dah                          ; 75 04
     6141    jne short 034e4h                          ; 75 04
    61386142    mov ax, bx                                ; 89 d8
    6139     jmp short 034e4h                          ; eb 0a
     6143    jmp short 034eeh                          ; eb 0a
    61406144    test AL, strict byte 080h                 ; a8 80
    6141     jne short 034d6h                          ; 75 f8
     6145    jne short 034e0h                          ; 75 f8
    61426146    mov bx, dx                                ; 89 d3
    6143     jmp short 034b5h                          ; eb d3
     6147    jmp short 034bfh                          ; eb d3
    61446148    xor ax, ax                                ; 31 c0
    61456149    lea sp, [bp-008h]                         ; 8d 66 f8
     
    61506154    pop bp                                    ; 5d
    61516155    retn                                      ; c3
    6152 vbe_biosfn_return_controller_information_: ; 0xc34ed LB 0x129
     6156vbe_biosfn_return_controller_information_: ; 0xc34f7 LB 0x129
    61536157    push bp                                   ; 55
    61546158    mov bp, sp                                ; 89 e5
     
    61616165    mov word [bp-00ah], bx                    ; 89 5e f6
    61626166    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6163     call 005a7h                               ; e8 a2 d0
     6167    call 005a7h                               ; e8 98 d0
    61646168    mov word [bp-010h], ax                    ; 89 46 f0
    61656169    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    61676171    xor dx, dx                                ; 31 d2
    61686172    mov ax, 003b6h                            ; b8 b6 03
    6169     call 03418h                               ; e8 02 ff
     6173    call 03422h                               ; e8 02 ff
    61706174    cmp ax, 077cch                            ; 3d cc 77
    6171     je short 03525h                           ; 74 0a
     6175    je short 0352fh                           ; 74 0a
    61726176    push SS                                   ; 16
    61736177    pop ES                                    ; 07
    61746178    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6175     jmp near 0360eh                           ; e9 e9 00
     6179    jmp near 03618h                           ; e9 e9 00
    61766180    mov cx, strict word 00004h                ; b9 04 00
    61776181    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    61786182    mov es, [bp-008h]                         ; 8e 46 f8
    61796183    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6180     jne short 0353fh                          ; 75 07
     6184    jne short 03549h                          ; 75 07
    61816185    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6182     je short 0354eh                           ; 74 0f
     6186    je short 03558h                           ; 74 0f
    61836187    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6184     jne short 03553h                          ; 75 0c
     6188    jne short 0355dh                          ; 75 0c
    61856189    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6186     jne short 03553h                          ; 75 05
     6190    jne short 0355dh                          ; 75 05
    61876191    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    61886192    mov es, [bp-008h]                         ; 8e 46 f8
     
    62006204    mov dx, strict word 0ffffh                ; ba ff ff
    62016205    mov ax, 003b6h                            ; b8 b6 03
    6202     call 03418h                               ; e8 8a fe
     6206    call 03422h                               ; e8 8a fe
    62036207    mov es, [bp-008h]                         ; 8e 46 f8
    62046208    mov word [es:bx+012h], ax                 ; 26 89 47 12
    62056209    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6206     je short 035bfh                           ; 74 24
     6210    je short 035c9h                           ; 74 24
    62076211    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    62086212    mov word [es:bx+016h], 07e35h             ; 26 c7 47 16 35 7e
     
    62156219    add dx, strict byte 0001bh                ; 83 c2 1b
    62166220    mov ax, 003b6h                            ; b8 b6 03
    6217     call 0342ah                               ; e8 60 fe
     6221    call 03434h                               ; e8 60 fe
    62186222    xor ah, ah                                ; 30 e4
    62196223    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6220     jnbe short 035eah                         ; 77 19
     6224    jnbe short 035f4h                         ; 77 19
    62216225    mov dx, cx                                ; 89 ca
    62226226    mov ax, 003b6h                            ; b8 b6 03
    6223     call 03418h                               ; e8 3f fe
     6227    call 03422h                               ; e8 3f fe
    62246228    mov bx, ax                                ; 89 c3
    62256229    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62266230    add dx, word [bp-00ch]                    ; 03 56 f4
    62276231    mov ax, di                                ; 89 f8
    6228     call 02f5eh                               ; e8 78 f9
     6232    call 02f68h                               ; e8 78 f9
    62296233    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    62306234    add cx, strict byte 00044h                ; 83 c1 44
    62316235    mov dx, cx                                ; 89 ca
    62326236    mov ax, 003b6h                            ; b8 b6 03
    6233     call 03418h                               ; e8 23 fe
     6237    call 03422h                               ; e8 23 fe
    62346238    mov bx, ax                                ; 89 c3
    62356239    cmp ax, strict word 0ffffh                ; 3d ff ff
    6236     jne short 035bfh                          ; 75 c3
     6240    jne short 035c9h                          ; 75 c3
    62376241    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62386242    add dx, word [bp-00ch]                    ; 03 56 f4
    62396243    mov ax, di                                ; 89 f8
    6240     call 02f5eh                               ; e8 57 f9
     6244    call 02f68h                               ; e8 57 f9
    62416245    push SS                                   ; 16
    62426246    pop ES                                    ; 07
     
    62486252    pop bp                                    ; 5d
    62496253    retn                                      ; c3
    6250 vbe_biosfn_return_mode_information_:         ; 0xc3616 LB 0xb4
     6254vbe_biosfn_return_mode_information_:         ; 0xc3620 LB 0xb4
    62516255    push bp                                   ; 55
    62526256    mov bp, sp                                ; 89 e5
     
    62646268    xor dh, dh                                ; 30 f6
    62656269    and ah, 001h                              ; 80 e4 01
    6266     call 03498h                               ; e8 65 fe
     6270    call 034a2h                               ; e8 65 fe
    62676271    mov word [bp-008h], ax                    ; 89 46 f8
    62686272    test ax, ax                               ; 85 c0
    6269     je near 036b8h                            ; 0f 84 7c 00
     6273    je near 036c2h                            ; 0f 84 7c 00
    62706274    mov cx, 00100h                            ; b9 00 01
    62716275    xor ax, ax                                ; 31 c0
     
    62736277    mov es, bx                                ; 8e c3
    62746278    cld                                       ; fc
    6275     jcxz 0364bh                               ; e3 02
     6279    jcxz 03655h                               ; e3 02
    62766280    rep stosb                                 ; f3 aa
    62776281    xor cx, cx                                ; 31 c9
    6278     jmp short 03654h                          ; eb 05
     6282    jmp short 0365eh                          ; eb 05
    62796283    cmp cx, strict byte 00042h                ; 83 f9 42
    6280     jnc short 03671h                          ; 73 1d
     6284    jnc short 0367bh                          ; 73 1d
    62816285    mov dx, word [bp-008h]                    ; 8b 56 f8
    62826286    inc dx                                    ; 42
     
    62846288    add dx, cx                                ; 01 ca
    62856289    mov ax, 003b6h                            ; b8 b6 03
    6286     call 0342ah                               ; e8 c9 fd
     6290    call 03434h                               ; e8 c9 fd
    62876291    movzx bx, al                              ; 0f b6 d8
    62886292    mov dx, word [bp-006h]                    ; 8b 56 fa
    62896293    add dx, cx                                ; 01 ca
    62906294    mov ax, si                                ; 89 f0
    6291     call 02f42h                               ; e8 d4 f8
    6292     inc cx                                    ; 41
    6293     jmp short 0364fh                          ; eb de
     6295    call 02f4ch                               ; e8 d4 f8
     6296    inc cx                                    ; 41
     6297    jmp short 03659h                          ; eb de
    62946298    mov dx, word [bp-006h]                    ; 8b 56 fa
    62956299    inc dx                                    ; 42
    62966300    inc dx                                    ; 42
    62976301    mov ax, si                                ; 89 f0
    6298     call 02f34h                               ; e8 b9 f8
     6302    call 02f3eh                               ; e8 b9 f8
    62996303    test AL, strict byte 001h                 ; a8 01
    6300     je short 0369bh                           ; 74 1c
     6304    je short 036a5h                           ; 74 1c
    63016305    mov dx, word [bp-006h]                    ; 8b 56 fa
    63026306    add dx, strict byte 0000ch                ; 83 c2 0c
    63036307    mov bx, 00605h                            ; bb 05 06
    63046308    mov ax, si                                ; 89 f0
    6305     call 02f5eh                               ; e8 d1 f8
     6309    call 02f68h                               ; e8 d1 f8
    63066310    mov dx, word [bp-006h]                    ; 8b 56 fa
    63076311    add dx, strict byte 0000eh                ; 83 c2 0e
    63086312    mov bx, 0c000h                            ; bb 00 c0
    63096313    mov ax, si                                ; 89 f0
    6310     call 02f5eh                               ; e8 c3 f8
     6314    call 02f68h                               ; e8 c3 f8
    63116315    mov ax, strict word 0000bh                ; b8 0b 00
    63126316    mov dx, 001ceh                            ; ba ce 01
     
    63186322    mov bx, ax                                ; 89 c3
    63196323    mov ax, si                                ; 89 f0
    6320     call 02f5eh                               ; e8 ab f8
     6324    call 02f68h                               ; e8 ab f8
    63216325    mov ax, strict word 0004fh                ; b8 4f 00
    6322     jmp short 036bbh                          ; eb 03
     6326    jmp short 036c5h                          ; eb 03
    63236327    mov ax, 00100h                            ; b8 00 01
    63246328    push SS                                   ; 16
     
    63316335    pop bp                                    ; 5d
    63326336    retn                                      ; c3
    6333 vbe_biosfn_set_mode_:                        ; 0xc36ca LB 0xe9
     6337vbe_biosfn_set_mode_:                        ; 0xc36d4 LB 0xe9
    63346338    push bp                                   ; 55
    63356339    mov bp, sp                                ; 89 e5
     
    63456349    mov ax, dx                                ; 89 d0
    63466350    test dx, dx                               ; 85 d2
    6347     je short 036eah                           ; 74 03
     6351    je short 036f4h                           ; 74 03
    63486352    mov dx, strict word 00040h                ; ba 40 00
    63496353    mov byte [bp-006h], dl                    ; 88 56 fa
    63506354    test byte [bp-009h], 080h                 ; f6 46 f7 80
    6351     je short 036f8h                           ; 74 05
     6355    je short 03702h                           ; 74 05
    63526356    mov dx, 00080h                            ; ba 80 00
    6353     jmp short 036fah                          ; eb 02
     6357    jmp short 03704h                          ; eb 02
    63546358    xor dx, dx                                ; 31 d2
    63556359    mov byte [bp-008h], dl                    ; 88 56 f8
    63566360    and byte [bp-009h], 001h                  ; 80 66 f7 01
    63576361    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    6358     jnc short 0371ah                          ; 73 12
     6362    jnc short 03724h                          ; 73 12
    63596363    xor ax, ax                                ; 31 c0
    6360     call 005c9h                               ; e8 bc ce
     6364    call 005c9h                               ; e8 b2 ce
    63616365    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6362     call 00fdch                               ; e8 c8 d8
     6366    call 00fdch                               ; e8 be d8
    63636367    mov ax, strict word 0004fh                ; b8 4f 00
    6364     jmp near 037a9h                           ; e9 8f 00
     6368    jmp near 037b3h                           ; e9 8f 00
    63656369    mov dx, ax                                ; 89 c2
    63666370    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6367     call 03498h                               ; e8 76 fd
     6371    call 034a2h                               ; e8 76 fd
    63686372    mov bx, ax                                ; 89 c3
    63696373    test ax, ax                               ; 85 c0
    6370     je near 037a6h                            ; 0f 84 7c 00
     6374    je near 037b0h                            ; 0f 84 7c 00
    63716375    lea dx, [bx+014h]                         ; 8d 57 14
    63726376    mov ax, 003b6h                            ; b8 b6 03
    6373     call 03418h                               ; e8 e5 fc
     6377    call 03422h                               ; e8 e5 fc
    63746378    mov cx, ax                                ; 89 c1
    63756379    lea dx, [bx+016h]                         ; 8d 57 16
    63766380    mov ax, 003b6h                            ; b8 b6 03
    6377     call 03418h                               ; e8 da fc
     6381    call 03422h                               ; e8 da fc
    63786382    mov di, ax                                ; 89 c7
    63796383    lea dx, [bx+01bh]                         ; 8d 57 1b
    63806384    mov ax, 003b6h                            ; b8 b6 03
    6381     call 0342ah                               ; e8 e1 fc
     6385    call 03434h                               ; e8 e1 fc
    63826386    mov bl, al                                ; 88 c3
    63836387    mov dl, al                                ; 88 c2
    63846388    xor ax, ax                                ; 31 c0
    6385     call 005c9h                               ; e8 77 ce
     6389    call 005c9h                               ; e8 6d ce
    63866390    cmp bl, 004h                              ; 80 fb 04
    6387     jne short 0375dh                          ; 75 06
     6391    jne short 03767h                          ; 75 06
    63886392    mov ax, strict word 0006ah                ; b8 6a 00
    6389     call 00fdch                               ; e8 7f d8
     6393    call 00fdch                               ; e8 75 d8
    63906394    movzx ax, dl                              ; 0f b6 c2
    6391     call 033fdh                               ; e8 9a fc
     6395    call 03407h                               ; e8 9a fc
    63926396    mov ax, cx                                ; 89 c8
    6393     call 033c7h                               ; e8 5f fc
     6397    call 033d1h                               ; e8 5f fc
    63946398    mov ax, di                                ; 89 f8
    6395     call 033e2h                               ; e8 75 fc
     6399    call 033ech                               ; e8 75 fc
    63966400    xor ax, ax                                ; 31 c0
    6397     call 005e7h                               ; e8 75 ce
     6401    call 005e7h                               ; e8 6b ce
    63986402    mov al, byte [bp-008h]                    ; 8a 46 f8
    63996403    or AL, strict byte 001h                   ; 0c 01
     
    64016405    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    64026406    or ax, dx                                 ; 09 d0
    6403     call 005c9h                               ; e8 46 ce
    6404     call 006c3h                               ; e8 3d cf
     6407    call 005c9h                               ; e8 3c ce
     6408    call 006c3h                               ; e8 33 cf
    64056409    mov bx, word [bp-00ah]                    ; 8b 5e f6
    64066410    mov dx, 000bah                            ; ba ba 00
    64076411    mov ax, strict word 00040h                ; b8 40 00
    6408     call 02f5eh                               ; e8 cc f7
     6412    call 02f68h                               ; e8 cc f7
    64096413    mov al, byte [bp-008h]                    ; 8a 46 f8
    64106414    or AL, strict byte 060h                   ; 0c 60
     
    64126416    mov dx, 00087h                            ; ba 87 00
    64136417    mov ax, strict word 00040h                ; b8 40 00
    6414     call 02f42h                               ; e8 9f f7
    6415     jmp near 03714h                           ; e9 6e ff
     6418    call 02f4ch                               ; e8 9f f7
     6419    jmp near 0371eh                           ; e9 6e ff
    64166420    mov ax, 00100h                            ; b8 00 01
    64176421    mov word [ss:si], ax                      ; 36 89 04
     
    64216425    pop bp                                    ; 5d
    64226426    retn                                      ; c3
    6423 vbe_biosfn_read_video_state_size_:           ; 0xc37b3 LB 0x8
     6427vbe_biosfn_read_video_state_size_:           ; 0xc37bd LB 0x8
    64246428    push bp                                   ; 55
    64256429    mov bp, sp                                ; 89 e5
     
    64276431    pop bp                                    ; 5d
    64286432    retn                                      ; c3
    6429 vbe_biosfn_save_video_state_:                ; 0xc37bb LB 0x5b
     6433vbe_biosfn_save_video_state_:                ; 0xc37c5 LB 0x5b
    64306434    push bp                                   ; 55
    64316435    mov bp, sp                                ; 89 e5
     
    64466450    mov dx, cx                                ; 89 ca
    64476451    mov ax, di                                ; 89 f8
    6448     call 02f5eh                               ; e8 80 f7
     6452    call 02f68h                               ; e8 80 f7
    64496453    inc cx                                    ; 41
    64506454    inc cx                                    ; 41
    64516455    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    6452     je short 0380dh                           ; 74 27
     6456    je short 03817h                           ; 74 27
    64536457    mov si, strict word 00001h                ; be 01 00
    6454     jmp short 037f0h                          ; eb 05
     6458    jmp short 037fah                          ; eb 05
    64556459    cmp si, strict byte 00009h                ; 83 fe 09
    6456     jnbe short 0380dh                         ; 77 1d
     6460    jnbe short 03817h                         ; 77 1d
    64576461    cmp si, strict byte 00004h                ; 83 fe 04
    6458     je short 0380ah                           ; 74 15
     6462    je short 03814h                           ; 74 15
    64596463    mov ax, si                                ; 89 f0
    64606464    mov dx, 001ceh                            ; ba ce 01
     
    64656469    mov dx, cx                                ; 89 ca
    64666470    mov ax, di                                ; 89 f8
    6467     call 02f5eh                               ; e8 56 f7
     6471    call 02f68h                               ; e8 56 f7
    64686472    inc cx                                    ; 41
    64696473    inc cx                                    ; 41
    64706474    inc si                                    ; 46
    6471     jmp short 037ebh                          ; eb de
     6475    jmp short 037f5h                          ; eb de
    64726476    lea sp, [bp-008h]                         ; 8d 66 f8
    64736477    pop di                                    ; 5f
     
    64776481    pop bp                                    ; 5d
    64786482    retn                                      ; c3
    6479 vbe_biosfn_restore_video_state_:             ; 0xc3816 LB 0x9b
     6483vbe_biosfn_restore_video_state_:             ; 0xc3820 LB 0x9b
    64806484    push bp                                   ; 55
    64816485    mov bp, sp                                ; 89 e5
     
    64866490    mov cx, ax                                ; 89 c1
    64876491    mov bx, dx                                ; 89 d3
    6488     call 02f50h                               ; e8 2c f7
     6492    call 02f5ah                               ; e8 2c f7
    64896493    mov word [bp-008h], ax                    ; 89 46 f8
    64906494    inc bx                                    ; 43
    64916495    inc bx                                    ; 43
    64926496    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6493     jne short 0383fh                          ; 75 10
     6497    jne short 03849h                          ; 75 10
    64946498    mov ax, strict word 00004h                ; b8 04 00
    64956499    mov dx, 001ceh                            ; ba ce 01
     
    64986502    mov dx, 001cfh                            ; ba cf 01
    64996503    out DX, ax                                ; ef
    6500     jmp short 038a9h                          ; eb 6a
     6504    jmp short 038b3h                          ; eb 6a
    65016505    mov ax, strict word 00001h                ; b8 01 00
    65026506    mov dx, 001ceh                            ; ba ce 01
     
    65046508    mov dx, bx                                ; 89 da
    65056509    mov ax, cx                                ; 89 c8
    6506     call 02f50h                               ; e8 03 f7
     6510    call 02f5ah                               ; e8 03 f7
    65076511    mov dx, 001cfh                            ; ba cf 01
    65086512    out DX, ax                                ; ef
     
    65146518    mov dx, bx                                ; 89 da
    65156519    mov ax, cx                                ; 89 c8
    6516     call 02f50h                               ; e8 ef f6
     6520    call 02f5ah                               ; e8 ef f6
    65176521    mov dx, 001cfh                            ; ba cf 01
    65186522    out DX, ax                                ; ef
     
    65246528    mov dx, bx                                ; 89 da
    65256529    mov ax, cx                                ; 89 c8
    6526     call 02f50h                               ; e8 db f6
     6530    call 02f5ah                               ; e8 db f6
    65276531    mov dx, 001cfh                            ; ba cf 01
    65286532    out DX, ax                                ; ef
     
    65366540    out DX, ax                                ; ef
    65376541    mov si, strict word 00005h                ; be 05 00
    6538     jmp short 03893h                          ; eb 05
     6542    jmp short 0389dh                          ; eb 05
    65396543    cmp si, strict byte 00009h                ; 83 fe 09
    6540     jnbe short 038a9h                         ; 77 16
     6544    jnbe short 038b3h                         ; 77 16
    65416545    mov ax, si                                ; 89 f0
    65426546    mov dx, 001ceh                            ; ba ce 01
     
    65446548    mov dx, bx                                ; 89 da
    65456549    mov ax, cx                                ; 89 c8
    6546     call 02f50h                               ; e8 b0 f6
     6550    call 02f5ah                               ; e8 b0 f6
    65476551    mov dx, 001cfh                            ; ba cf 01
    65486552    out DX, ax                                ; ef
     
    65506554    inc bx                                    ; 43
    65516555    inc si                                    ; 46
    6552     jmp short 0388eh                          ; eb e5
     6556    jmp short 03898h                          ; eb e5
    65536557    lea sp, [bp-006h]                         ; 8d 66 fa
    65546558    pop si                                    ; 5e
     
    65576561    pop bp                                    ; 5d
    65586562    retn                                      ; c3
    6559 vbe_biosfn_save_restore_state_:              ; 0xc38b1 LB 0x8c
     6563vbe_biosfn_save_restore_state_:              ; 0xc38bb LB 0x8c
    65606564    push bp                                   ; 55
    65616565    mov bp, sp                                ; 89 e5
     
    65706574    xor ah, ah                                ; 30 e4
    65716575    cmp ax, strict word 00002h                ; 3d 02 00
    6572     je short 03910h                           ; 74 45
     6576    je short 0391ah                           ; 74 45
    65736577    cmp ax, strict word 00001h                ; 3d 01 00
    6574     je short 038f4h                           ; 74 24
     6578    je short 038feh                           ; 74 24
    65756579    test ax, ax                               ; 85 c0
    6576     jne short 0392ch                          ; 75 58
     6580    jne short 03936h                          ; 75 58
    65776581    mov ax, word [bp-006h]                    ; 8b 46 fa
    6578     call 02849h                               ; e8 6f ef
     6582    call 02853h                               ; e8 6f ef
    65796583    mov cx, ax                                ; 89 c1
    65806584    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6581     je short 038e7h                           ; 74 05
    6582     call 037b3h                               ; e8 ce fe
     6585    je short 038f1h                           ; 74 05
     6586    call 037bdh                               ; e8 ce fe
    65836587    add ax, cx                                ; 01 c8
    65846588    add ax, strict word 0003fh                ; 05 3f 00
     
    65876591    pop ES                                    ; 07
    65886592    mov word [es:bx], ax                      ; 26 89 07
    6589     jmp short 0392fh                          ; eb 3b
     6593    jmp short 03939h                          ; eb 3b
    65906594    push SS                                   ; 16
    65916595    pop ES                                    ; 07
     
    65936597    mov dx, cx                                ; 89 ca
    65946598    mov ax, word [bp-006h]                    ; 8b 46 fa
    6595     call 0287eh                               ; e8 7d ef
     6599    call 02888h                               ; e8 7d ef
    65966600    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6597     je short 0392fh                           ; 74 28
     6601    je short 03939h                           ; 74 28
    65986602    mov dx, ax                                ; 89 c2
    65996603    mov ax, cx                                ; 89 c8
    6600     call 037bbh                               ; e8 ad fe
    6601     jmp short 0392fh                          ; eb 1f
     6604    call 037c5h                               ; e8 ad fe
     6605    jmp short 03939h                          ; eb 1f
    66026606    push SS                                   ; 16
    66036607    pop ES                                    ; 07
     
    66056609    mov dx, cx                                ; 89 ca
    66066610    mov ax, word [bp-006h]                    ; 8b 46 fa
    6607     call 02be7h                               ; e8 ca f2
     6611    call 02bf1h                               ; e8 ca f2
    66086612    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6609     je short 0392fh                           ; 74 0c
     6613    je short 03939h                           ; 74 0c
    66106614    mov dx, ax                                ; 89 c2
    66116615    mov ax, cx                                ; 89 c8
    6612     call 03816h                               ; e8 ec fe
    6613     jmp short 0392fh                          ; eb 03
     6616    call 03820h                               ; e8 ec fe
     6617    jmp short 03939h                          ; eb 03
    66146618    mov di, 00100h                            ; bf 00 01
    66156619    push SS                                   ; 16
     
    66226626    retn 00002h                               ; c2 02 00
    66236627
    6624   ; Padding 0xcc3 bytes at 0xc393d
    6625   times 3267 db 0
     6628  ; Padding 0xcb9 bytes at 0xc3947
     6629  times 3257 db 0
    66266630
    66276631section VBE32 progbits vstart=0x4600 align=1 ; size=0x115 class=CODE group=AUTO
     
    76767680    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76777681    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7678     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h
     7682    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 055h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.md5sum

    r51062 r51255  
    1 be05e86993fbde08237d26cfc61fb370 *VBoxVgaBios.rom
     12abf7b9050be07a06bb5f956042ff4df *VBoxVgaBios.rom
Note: See TracChangeset for help on using the changeset viewer.

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