VirtualBox

Ignore:
Timestamp:
Aug 3, 2017 4:24:55 PM (7 years ago)
Author:
vboxsync
Message:

5.2 Beta 1

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

Legend:

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

    r67771 r68290  
    250250    mov bx, 0c000h                            ; bb 00 c0
    251251    mov ds, bx                                ; 8e db
    252     call 03245h                               ; e8 5e 31
     252    call 03268h                               ; e8 81 31
    253253    popaw                                     ; 61
    254254    pop DS                                    ; 1f
     
    14471447  times 259 db 0
    14481448
    1449 section _TEXT progbits vstart=0xa00 align=1 ; size=0x3282 class=CODE group=AUTO
     1449section _TEXT progbits vstart=0xa00 align=1 ; size=0x32ed class=CODE group=AUTO
    14501450set_int_vector_:                             ; 0xc0a00 LB 0x1b
    14511451    push bx                                   ; 53
     
    15031503    call 00a1bh                               ; e8 ab ff
    15041504    call 00a37h                               ; e8 c4 ff
    1505     call 036f0h                               ; e8 7a 2c
     1505    call 0372ch                               ; e8 b6 2c
    15061506    mov dx, strict word 00022h                ; ba 22 00
    15071507    mov ax, strict word 00010h                ; b8 10 00
     
    15311531    mov dx, strict word 00060h                ; ba 60 00
    15321532    mov ax, strict word 00040h                ; b8 40 00
    1533     call 03181h                               ; e8 d2 26
     1533    call 031a4h                               ; e8 f5 26
    15341534    push SS                                   ; 16
    15351535    pop ES                                    ; 07
     
    15411541    add dx, strict byte 00050h                ; 83 c2 50
    15421542    mov ax, strict word 00040h                ; b8 40 00
    1543     call 03181h                               ; e8 bc 26
     1543    call 031a4h                               ; e8 df 26
    15441544    push SS                                   ; 16
    15451545    pop ES                                    ; 07
     
    15621562    mov dx, strict word 00049h                ; ba 49 00
    15631563    mov ax, strict word 00040h                ; b8 40 00
    1564     call 03165h                               ; e8 7c 26
    1565     xor ah, ah                                ; 30 e4
    1566     call 0313dh                               ; e8 4f 26
     1564    call 03188h                               ; e8 9f 26
     1565    xor ah, ah                                ; 30 e4
     1566    call 03160h                               ; e8 72 26
    15671567    mov byte [bp-00ch], al                    ; 88 46 f4
    15681568    cmp AL, strict byte 0ffh                  ; 3c ff
     
    15811581    mov dx, 00084h                            ; ba 84 00
    15821582    mov ax, strict word 00040h                ; b8 40 00
    1583     call 03165h                               ; e8 48 26
     1583    call 03188h                               ; e8 6b 26
    15841584    xor ah, ah                                ; 30 e4
    15851585    mov di, ax                                ; 89 c7
     
    15871587    mov dx, strict word 0004ah                ; ba 4a 00
    15881588    mov ax, strict word 00040h                ; b8 40 00
    1589     call 03181h                               ; e8 56 26
     1589    call 031a4h                               ; e8 79 26
    15901590    mov cx, ax                                ; 89 c1
    15911591    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    15921592    xor bh, bh                                ; 30 ff
    15931593    sal bx, 003h                              ; c1 e3 03
    1594     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
     1594    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    15951595    jne short 00b68h                          ; 75 2c
    15961596    mul di                                    ; f7 e7
     
    16101610    add dx, dx                                ; 01 d2
    16111611    add dx, di                                ; 01 fa
    1612     mov ax, word [bx+04633h]                  ; 8b 87 33 46
    1613     call 03181h                               ; e8 1c 26
     1612    mov ax, word [bx+04638h]                  ; 8b 87 38 46
     1613    call 031a4h                               ; e8 3f 26
    16141614    mov word [ss:si], ax                      ; 36 89 04
    16151615    lea sp, [bp-008h]                         ; 8d 66 f8
     
    16491649    mov dx, strict word 0007ch                ; ba 7c 00
    16501650    xor ax, ax                                ; 31 c0
    1651     call 0319dh                               ; e8 ff 25
     1651    call 031c0h                               ; e8 22 26
    16521652    push SS                                   ; 16
    16531653    pop ES                                    ; 07
     
    16561656    mov dx, 00085h                            ; ba 85 00
    16571657    mov ax, strict word 00040h                ; b8 40 00
    1658     call 03165h                               ; e8 b6 25
     1658    call 03188h                               ; e8 d9 25
    16591659    xor ah, ah                                ; 30 e4
    16601660    push SS                                   ; 16
     
    16641664    mov dx, 00084h                            ; ba 84 00
    16651665    mov ax, strict word 00040h                ; b8 40 00
    1666     call 03165h                               ; e8 a4 25
     1666    call 03188h                               ; e8 c7 25
    16671667    xor ah, ah                                ; 30 e4
    16681668    push SS                                   ; 16
     
    16771677    mov dx, 0010ch                            ; ba 0c 01
    16781678    jmp short 00b99h                          ; eb c0
    1679     mov ax, 05bedh                            ; b8 ed 5b
     1679    mov ax, 05bf2h                            ; b8 f2 5b
    16801680    mov dx, 0c000h                            ; ba 00 c0
    16811681    jmp short 00b9eh                          ; eb bd
    1682     mov ax, 053edh                            ; b8 ed 53
     1682    mov ax, 053f2h                            ; b8 f2 53
    16831683    jmp short 00bdch                          ; eb f6
    1684     mov ax, 057edh                            ; b8 ed 57
     1684    mov ax, 057f2h                            ; b8 f2 57
    16851685    jmp short 00bdch                          ; eb f1
    1686     mov ax, 079edh                            ; b8 ed 79
     1686    mov ax, 079f2h                            ; b8 f2 79
    16871687    jmp short 00bdch                          ; eb ec
    1688     mov ax, 069edh                            ; b8 ed 69
     1688    mov ax, 069f2h                            ; b8 f2 69
    16891689    jmp short 00bdch                          ; eb e7
    1690     mov ax, 07b1ah                            ; b8 1a 7b
     1690    mov ax, 07b1fh                            ; b8 1f 7b
    16911691    jmp short 00bdch                          ; eb e2
    16921692    jmp short 00bcbh                          ; eb cf
     
    17021702    mov dx, strict word 00049h                ; ba 49 00
    17031703    mov ax, strict word 00040h                ; b8 40 00
    1704     call 03165h                               ; e8 51 25
    1705     xor ah, ah                                ; 30 e4
    1706     call 0313dh                               ; e8 24 25
     1704    call 03188h                               ; e8 74 25
     1705    xor ah, ah                                ; 30 e4
     1706    call 03160h                               ; e8 47 25
    17071707    mov cl, al                                ; 88 c1
    17081708    cmp AL, strict byte 0ffh                  ; 3c ff
     
    17111711    xor bh, bh                                ; 30 ff
    17121712    sal bx, 003h                              ; c1 e3 03
    1713     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
     1713    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    17141714    jne short 00c30h                          ; 75 03
    17151715    jmp near 00d37h                           ; e9 07 01
    1716     mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
     1716    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
    17171717    cmp bl, 003h                              ; 80 fb 03
    17181718    jc short 00c48h                           ; 72 0f
     
    17281728    mov dx, strict word 0004ah                ; ba 4a 00
    17291729    mov ax, strict word 00040h                ; b8 40 00
    1730     call 03181h                               ; e8 28 25
     1730    call 031a4h                               ; e8 4b 25
    17311731    mov bx, ax                                ; 89 c3
    17321732    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    17521752    mov dx, bx                                ; 89 da
    17531753    mov ax, 0a000h                            ; b8 00 a0
    1754     call 03165h                               ; e8 d0 24
     1754    call 03188h                               ; e8 f3 24
    17551755    and al, byte [bp-008h]                    ; 22 46 f8
    17561756    test al, al                               ; 84 c0
     
    17751775    mov dx, bx                                ; 89 da
    17761776    mov ax, 0b800h                            ; b8 00 b8
    1777     call 03165h                               ; e8 96 24
     1777    call 03188h                               ; e8 b9 24
    17781778    mov bl, cl                                ; 88 cb
    17791779    xor bh, bh                                ; 30 ff
    17801780    sal bx, 003h                              ; c1 e3 03
    1781     cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
     1781    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
    17821782    jne short 00cf8h                          ; 75 1b
    17831783    mov cx, si                                ; 89 f1
     
    18061806    mov dx, strict word 0004ah                ; ba 4a 00
    18071807    mov ax, strict word 00040h                ; b8 40 00
    1808     call 03181h                               ; e8 67 24
     1808    call 031a4h                               ; e8 8a 24
    18091809    mov bx, ax                                ; 89 c3
    18101810    sal bx, 003h                              ; c1 e3 03
     
    18141814    add dx, ax                                ; 01 c2
    18151815    mov ax, 0a000h                            ; b8 00 a0
    1816     call 03165h                               ; e8 37 24
     1816    call 03188h                               ; e8 5a 24
    18171817    mov ch, al                                ; 88 c5
    18181818    jmp short 00d34h                          ; eb 02
     
    19271927    mov dx, strict word 00060h                ; ba 60 00
    19281928    mov ax, strict word 00040h                ; b8 40 00
    1929     call 0318fh                               ; e8 97 23
     1929    call 031b2h                               ; e8 ba 23
    19301930    mov dx, 00089h                            ; ba 89 00
    19311931    mov ax, strict word 00040h                ; b8 40 00
    1932     call 03165h                               ; e8 64 23
     1932    call 03188h                               ; e8 87 23
    19331933    mov byte [bp-00ah], al                    ; 88 46 f6
    19341934    mov dx, 00085h                            ; ba 85 00
    19351935    mov ax, strict word 00040h                ; b8 40 00
    1936     call 03181h                               ; e8 74 23
     1936    call 031a4h                               ; e8 97 23
    19371937    mov bx, ax                                ; 89 c3
    19381938    mov word [bp-00ch], ax                    ; 89 46 f4
     
    19671967    mov dx, strict word 00063h                ; ba 63 00
    19681968    mov ax, strict word 00040h                ; b8 40 00
    1969     call 03181h                               ; e8 2a 23
     1969    call 031a4h                               ; e8 4d 23
    19701970    mov bx, ax                                ; 89 c3
    19711971    mov AL, strict byte 00ah                  ; b0 0a
     
    20082008    mov bx, word [bp-00ah]                    ; 8b 5e f6
    20092009    mov ax, strict word 00040h                ; b8 40 00
    2010     call 0318fh                               ; e8 f0 22
     2010    call 031b2h                               ; e8 13 23
    20112011    mov dx, strict word 00062h                ; ba 62 00
    20122012    mov ax, strict word 00040h                ; b8 40 00
    2013     call 03165h                               ; e8 bd 22
     2013    call 03188h                               ; e8 e0 22
    20142014    cmp cl, al                                ; 38 c1
    20152015    jne short 00f26h                          ; 75 7a
    20162016    mov dx, strict word 0004ah                ; ba 4a 00
    20172017    mov ax, strict word 00040h                ; b8 40 00
    2018     call 03181h                               ; e8 cc 22
     2018    call 031a4h                               ; e8 ef 22
    20192019    mov bx, ax                                ; 89 c3
    20202020    mov dx, 00084h                            ; ba 84 00
    20212021    mov ax, strict word 00040h                ; b8 40 00
    2022     call 03165h                               ; e8 a5 22
     2022    call 03188h                               ; e8 c8 22
    20232023    xor ah, ah                                ; 30 e4
    20242024    mov dx, ax                                ; 89 c2
     
    20502050    mov dx, strict word 00063h                ; ba 63 00
    20512051    mov ax, strict word 00040h                ; b8 40 00
    2052     call 03181h                               ; e8 7d 22
     2052    call 031a4h                               ; e8 a0 22
    20532053    mov bx, ax                                ; 89 c3
    20542054    mov AL, strict byte 00eh                  ; b0 0e
     
    20872087    mov dx, strict word 00049h                ; ba 49 00
    20882088    mov ax, strict word 00040h                ; b8 40 00
    2089     call 03165h                               ; e8 1d 22
    2090     xor ah, ah                                ; 30 e4
    2091     call 0313dh                               ; e8 f0 21
     2089    call 03188h                               ; e8 40 22
     2090    xor ah, ah                                ; 30 e4
     2091    call 03160h                               ; e8 13 22
    20922092    mov cl, al                                ; 88 c1
    20932093    cmp AL, strict byte 0ffh                  ; 3c ff
     
    21032103    mov si, bx                                ; 89 de
    21042104    sal si, 003h                              ; c1 e6 03
    2105     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
     2105    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
    21062106    jne short 00fbah                          ; 75 46
    21072107    mov dx, strict word 0004ah                ; ba 4a 00
    21082108    mov ax, strict word 00040h                ; b8 40 00
    2109     call 03181h                               ; e8 04 22
     2109    call 031a4h                               ; e8 27 22
    21102110    mov bx, ax                                ; 89 c3
    21112111    mov dx, 00084h                            ; ba 84 00
    21122112    mov ax, strict word 00040h                ; b8 40 00
    2113     call 03165h                               ; e8 dd 21
     2113    call 03188h                               ; e8 00 22
    21142114    xor ah, ah                                ; 30 e4
    21152115    mov dx, ax                                ; 89 c2
     
    21302130    mov dx, strict word 0004eh                ; ba 4e 00
    21312131    mov ax, strict word 00040h                ; b8 40 00
    2132     call 0318fh                               ; e8 df 21
     2132    call 031b2h                               ; e8 02 22
    21332133    or cl, 0ffh                               ; 80 c9 ff
    21342134    mov ax, cx                                ; 89 c8
     
    21362136    mul si                                    ; f7 e6
    21372137    jmp short 00fd0h                          ; eb 16
    2138     mov al, byte [bx+046afh]                  ; 8a 87 af 46
     2138    mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
    21392139    xor ah, ah                                ; 30 e4
    21402140    mov bx, ax                                ; 89 c3
     
    21432143    xor ch, ch                                ; 30 ed
    21442144    mov ax, cx                                ; 89 c8
    2145     mul word [bx+046c6h]                      ; f7 a7 c6 46
     2145    mul word [bx+046cbh]                      ; f7 a7 cb 46
    21462146    mov bx, ax                                ; 89 c3
    21472147    mov dx, strict word 00063h                ; ba 63 00
    21482148    mov ax, strict word 00040h                ; b8 40 00
    2149     call 03181h                               ; e8 a6 21
     2149    call 031a4h                               ; e8 c9 21
    21502150    mov cx, ax                                ; 89 c1
    21512151    mov AL, strict byte 00ch                  ; b0 0c
     
    21712171    mov dx, strict word 00062h                ; ba 62 00
    21722172    mov ax, strict word 00040h                ; b8 40 00
    2173     call 03173h                               ; e8 68 21
     2173    call 03196h                               ; e8 8b 21
    21742174    mov dx, word [bp-00eh]                    ; 8b 56 f2
    21752175    mov ax, cx                                ; 89 c8
     
    21822182    pop bp                                    ; 5d
    21832183    retn                                      ; c3
    2184 biosfn_set_video_mode_:                      ; 0xc101c LB 0x3b6
     2184biosfn_set_video_mode_:                      ; 0xc101c LB 0x3d9
    21852185    push bp                                   ; 55
    21862186    mov bp, sp                                ; 89 e5
     
    21902190    push si                                   ; 56
    21912191    push di                                   ; 57
    2192     sub sp, strict byte 00012h                ; 83 ec 12
     2192    sub sp, strict byte 00014h                ; 83 ec 14
    21932193    mov byte [bp-00ch], al                    ; 88 46 f4
    21942194    and AL, strict byte 080h                  ; 24 80
     
    22092209    mov al, byte [bp-00ch]                    ; 8a 46 f4
    22102210    xor ah, ah                                ; 30 e4
    2211     call 0313dh                               ; e8 e5 20
     2211    call 03160h                               ; e8 08 21
    22122212    mov byte [bp-010h], al                    ; 88 46 f0
    22132213    cmp AL, strict byte 0ffh                  ; 3c ff
    22142214    jne short 01062h                          ; 75 03
    2215     jmp near 013c8h                           ; e9 66 03
    2216     mov byte [bp-01ah], al                    ; 88 46 e6
    2217     mov byte [bp-019h], 000h                  ; c6 46 e7 00
    2218     mov bx, word [bp-01ah]                    ; 8b 5e e6
    2219     mov al, byte [bx+046afh]                  ; 8a 87 af 46
     2215    jmp near 013ebh                           ; e9 89 03
     2216    mov byte [bp-01ch], al                    ; 88 46 e4
     2217    mov byte [bp-01bh], 000h                  ; c6 46 e5 00
     2218    mov bx, word [bp-01ch]                    ; 8b 5e e4
     2219    mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
    22202220    mov byte [bp-00eh], al                    ; 88 46 f2
    22212221    mov bl, al                                ; 88 c3
    22222222    xor bh, bh                                ; 30 ff
    22232223    sal bx, 006h                              ; c1 e3 06
    2224     mov al, byte [bx+046c3h]                  ; 8a 87 c3 46
     2224    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
    22252225    xor ah, ah                                ; 30 e4
    22262226    mov word [bp-016h], ax                    ; 89 46 ea
    2227     mov al, byte [bx+046c4h]                  ; 8a 87 c4 46
     2227    mov al, byte [bx+046c9h]                  ; 8a 87 c9 46
    22282228    mov word [bp-014h], ax                    ; 89 46 ec
    2229     mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
     2229    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    22302230    mov word [bp-018h], ax                    ; 89 46 e8
    22312231    mov dx, 00087h                            ; ba 87 00
    22322232    mov ax, strict word 00040h                ; b8 40 00
    2233     call 03165h                               ; e8 cb 20
     2233    call 03188h                               ; e8 ee 20
    22342234    mov dx, 00088h                            ; ba 88 00
    22352235    mov ax, strict word 00040h                ; b8 40 00
    2236     call 03165h                               ; e8 c2 20
     2236    call 03188h                               ; e8 e5 20
    22372237    mov dx, 00089h                            ; ba 89 00
    22382238    mov ax, strict word 00040h                ; b8 40 00
    2239     call 03165h                               ; e8 b9 20
     2239    call 03188h                               ; e8 dc 20
    22402240    mov cl, al                                ; 88 c1
    22412241    test AL, strict byte 008h                 ; a8 08
    22422242    jne short 010f7h                          ; 75 45
    2243     mov bx, word [bp-01ah]                    ; 8b 5e e6
     2243    mov bx, word [bp-01ch]                    ; 8b 5e e4
    22442244    sal bx, 003h                              ; c1 e3 03
    2245     mov al, byte [bx+04635h]                  ; 8a 87 35 46
     2245    mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
    22462246    mov dx, 003c6h                            ; ba c6 03
    22472247    out DX, AL                                ; ee
     
    22492249    mov dx, 003c8h                            ; ba c8 03
    22502250    out DX, AL                                ; ee
    2251     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     2251    mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
    22522252    cmp bl, 001h                              ; 80 fb 01
    22532253    jc short 010ddh                           ; 72 0e
     
    22602260    test bl, bl                               ; 84 db
    22612261    jne short 010f3h                          ; 75 12
    2262     mov di, 04e43h                            ; bf 43 4e
     2262    mov di, 04e48h                            ; bf 48 4e
    22632263    jmp short 010f3h                          ; eb 0d
    2264     mov di, 04f03h                            ; bf 03 4f
     2264    mov di, 04f08h                            ; bf 08 4f
    22652265    jmp short 010f3h                          ; eb 08
    2266     mov di, 04fc3h                            ; bf c3 4f
     2266    mov di, 04fc8h                            ; bf c8 4f
    22672267    jmp short 010f3h                          ; eb 03
    2268     mov di, 05083h                            ; bf 83 50
     2268    mov di, 05088h                            ; bf 88 50
    22692269    xor bx, bx                                ; 31 db
    22702270    jmp short 010ffh                          ; eb 08
     
    22762276    mov si, ax                                ; 89 c6
    22772277    sal si, 003h                              ; c1 e6 03
    2278     mov al, byte [si+04636h]                  ; 8a 84 36 46
     2278    mov al, byte [si+0463bh]                  ; 8a 84 3b 46
    22792279    mov si, ax                                ; 89 c6
    2280     mov al, byte [si+046bfh]                  ; 8a 84 bf 46
     2280    mov al, byte [si+046c4h]                  ; 8a 84 c4 46
    22812281    cmp bx, ax                                ; 39 c3
    22822282    jnbe short 0112ch                         ; 77 15
     
    23192319    sal si, 006h                              ; c1 e6 06
    23202320    add si, bx                                ; 01 de
    2321     mov al, byte [si+046e6h]                  ; 8a 84 e6 46
     2321    mov al, byte [si+046ebh]                  ; 8a 84 eb 46
    23222322    out DX, AL                                ; ee
    23232323    inc bx                                    ; 43
     
    23452345    sal si, 006h                              ; c1 e6 06
    23462346    add si, bx                                ; 01 de
    2347     mov al, byte [si+046c7h]                  ; 8a 84 c7 46
     2347    mov al, byte [si+046cch]                  ; 8a 84 cc 46
    23482348    mov dx, 003c5h                            ; ba c5 03
    23492349    out DX, AL                                ; ee
     
    23622362    sal si, 006h                              ; c1 e6 06
    23632363    add si, bx                                ; 01 de
    2364     mov al, byte [si+046fah]                  ; 8a 84 fa 46
     2364    mov al, byte [si+046ffh]                  ; 8a 84 ff 46
    23652365    mov dx, 003cfh                            ; ba cf 03
    23662366    out DX, AL                                ; ee
     
    23702370    xor bh, bh                                ; 30 ff
    23712371    sal bx, 003h                              ; c1 e3 03
    2372     cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
     2372    cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
    23732373    jne short 011e1h                          ; 75 05
    23742374    mov dx, 003b4h                            ; ba b4 03
     
    23922392    add di, bx                                ; 01 df
    23932393    lea dx, [si+001h]                         ; 8d 54 01
    2394     mov al, byte [di+046cdh]                  ; 8a 85 cd 46
     2394    mov al, byte [di+046d2h]                  ; 8a 85 d2 46
    23952395    out DX, AL                                ; ee
    23962396    inc bx                                    ; 43
    23972397    jmp short 011eeh                          ; eb dd
    23982398    mov bx, cx                                ; 89 cb
    2399     mov al, byte [bx+046cch]                  ; 8a 87 cc 46
     2399    mov al, byte [bx+046d1h]                  ; 8a 87 d1 46
    24002400    mov dx, 003c2h                            ; ba c2 03
    24012401    out DX, AL                                ; ee
     
    24122412    xor bh, ch                                ; 30 ef
    24132413    sal bx, 003h                              ; c1 e3 03
    2414     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
     2414    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    24152415    jne short 0124fh                          ; 75 13
    2416     mov es, [bx+04633h]                       ; 8e 87 33 46
     2416    mov es, [bx+04638h]                       ; 8e 87 38 46
    24172417    mov cx, 04000h                            ; b9 00 40
    24182418    mov ax, 00720h                            ; b8 20 07
     
    24242424    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
    24252425    jnc short 01267h                          ; 73 12
    2426     mov es, [bx+04633h]                       ; 8e 87 33 46
     2426    mov es, [bx+04638h]                       ; 8e 87 38 46
    24272427    mov cx, 04000h                            ; b9 00 40
    24282428    xor ax, ax                                ; 31 c0
     
    24392439    db  02ah, 0e4h
    24402440    ; sub ah, ah                                ; 2a e4
    2441     mov word [bp-01ch], ax                    ; 89 46 e4
     2441    mov word [bp-01eh], ax                    ; 89 46 e2
    24422442    mov AL, strict byte 00fh                  ; b0 0f
    24432443    out DX, AL                                ; ee
    2444     mov es, [bx+04633h]                       ; 8e 87 33 46
     2444    mov es, [bx+04638h]                       ; 8e 87 38 46
    24452445    mov cx, 08000h                            ; b9 00 80
    24462446    xor ax, ax                                ; 31 c0
     
    24492449    jcxz 01289h                               ; e3 02
    24502450    rep stosw                                 ; f3 ab
    2451     mov al, byte [bp-01ch]                    ; 8a 46 e4
    2452     out DX, AL                                ; ee
    2453     mov bl, byte [bp-00ch]                    ; 8a 5e f4
    2454     xor bh, bh                                ; 30 ff
     2451    mov al, byte [bp-01eh]                    ; 8a 46 e2
     2452    out DX, AL                                ; ee
     2453    mov al, byte [bp-00ch]                    ; 8a 46 f4
     2454    mov byte [bp-01ah], al                    ; 88 46 e6
     2455    mov byte [bp-019h], 000h                  ; c6 46 e7 00
     2456    mov bx, word [bp-01ah]                    ; 8b 5e e6
    24552457    mov dx, strict word 00049h                ; ba 49 00
    24562458    mov ax, strict word 00040h                ; b8 40 00
    2457     call 03173h                               ; e8 d8 1e
     2459    call 03196h                               ; e8 f3 1e
    24582460    mov bx, word [bp-016h]                    ; 8b 5e ea
    24592461    mov dx, strict word 0004ah                ; ba 4a 00
    24602462    mov ax, strict word 00040h                ; b8 40 00
    2461     call 0318fh                               ; e8 e8 1e
     2463    call 031b2h                               ; e8 03 1f
    24622464    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    24632465    xor bh, bh                                ; 30 ff
    24642466    sal bx, 006h                              ; c1 e3 06
    2465     mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
     2467    mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
    24662468    mov dx, strict word 0004ch                ; ba 4c 00
    24672469    mov ax, strict word 00040h                ; b8 40 00
    2468     call 0318fh                               ; e8 d3 1e
     2470    call 031b2h                               ; e8 ee 1e
    24692471    mov bx, si                                ; 89 f3
    24702472    mov dx, strict word 00063h                ; ba 63 00
    24712473    mov ax, strict word 00040h                ; b8 40 00
    2472     call 0318fh                               ; e8 c8 1e
     2474    call 031b2h                               ; e8 e3 1e
    24732475    mov bl, byte [bp-014h]                    ; 8a 5e ec
    24742476    xor bh, bh                                ; 30 ff
    24752477    mov dx, 00084h                            ; ba 84 00
    24762478    mov ax, strict word 00040h                ; b8 40 00
    2477     call 03173h                               ; e8 9e 1e
     2479    call 03196h                               ; e8 b9 1e
    24782480    mov bx, word [bp-018h]                    ; 8b 5e e8
    24792481    mov dx, 00085h                            ; ba 85 00
    24802482    mov ax, strict word 00040h                ; b8 40 00
    2481     call 0318fh                               ; e8 ae 1e
     2483    call 031b2h                               ; e8 c9 1e
    24822484    mov bl, byte [bp-012h]                    ; 8a 5e ee
    24832485    or bl, 060h                               ; 80 cb 60
     
    24852487    mov dx, 00087h                            ; ba 87 00
    24862488    mov ax, strict word 00040h                ; b8 40 00
    2487     call 03173h                               ; e8 81 1e
     2489    call 03196h                               ; e8 9c 1e
    24882490    mov bx, 000f9h                            ; bb f9 00
    24892491    mov dx, 00088h                            ; ba 88 00
    24902492    mov ax, strict word 00040h                ; b8 40 00
    2491     call 03173h                               ; e8 75 1e
     2493    call 03196h                               ; e8 90 1e
    24922494    mov dx, 00089h                            ; ba 89 00
    24932495    mov ax, strict word 00040h                ; b8 40 00
    2494     call 03165h                               ; e8 5e 1e
     2496    call 03188h                               ; e8 79 1e
    24952497    mov bl, al                                ; 88 c3
    24962498    and bl, 07fh                              ; 80 e3 7f
     
    24982500    mov dx, 00089h                            ; ba 89 00
    24992501    mov ax, strict word 00040h                ; b8 40 00
    2500     call 03173h                               ; e8 5c 1e
     2502    call 03196h                               ; e8 77 1e
    25012503    mov bx, strict word 00008h                ; bb 08 00
    25022504    mov dx, 0008ah                            ; ba 8a 00
    25032505    mov ax, strict word 00040h                ; b8 40 00
    2504     call 03173h                               ; e8 50 1e
     2506    call 03196h                               ; e8 6b 1e
    25052507    mov cx, ds                                ; 8c d9
    2506     mov bx, 053d1h                            ; bb d1 53
     2508    mov bx, 053d6h                            ; bb d6 53
    25072509    mov dx, 000a8h                            ; ba a8 00
    25082510    mov ax, strict word 00040h                ; b8 40 00
    2509     call 031afh                               ; e8 7e 1e
    2510     xor bx, bx                                ; 31 db
     2511    call 031d2h                               ; e8 99 1e
     2512    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
     2513    jnbe short 0136ah                         ; 77 2b
     2514    mov bx, word [bp-01ah]                    ; 8b 5e e6
     2515    mov bl, byte [bx+07c63h]                  ; 8a 9f 63 7c
     2516    xor bh, bh                                ; 30 ff
    25112517    mov dx, strict word 00065h                ; ba 65 00
    25122518    mov ax, strict word 00040h                ; b8 40 00
    2513     call 03173h                               ; e8 37 1e
    2514     xor bx, bx                                ; 31 db
     2519    call 03196h                               ; e8 45 1e
     2520    cmp byte [bp-00ch], 006h                  ; 80 7e f4 06
     2521    jne short 0135ch                          ; 75 05
     2522    mov bx, strict word 0003fh                ; bb 3f 00
     2523    jmp short 0135fh                          ; eb 03
     2524    mov bx, strict word 00030h                ; bb 30 00
     2525    xor bh, bh                                ; 30 ff
    25152526    mov dx, strict word 00066h                ; ba 66 00
    25162527    mov ax, strict word 00040h                ; b8 40 00
    2517     call 03173h                               ; e8 2c 1e
     2528    call 03196h                               ; e8 2c 1e
    25182529    mov bl, byte [bp-010h]                    ; 8a 5e f0
    25192530    xor bh, bh                                ; 30 ff
    25202531    sal bx, 003h                              ; c1 e3 03
    2521     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    2522     jne short 0135fh                          ; 75 09
     2532    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2533    jne short 01382h                          ; 75 09
    25232534    mov dx, strict word 00007h                ; ba 07 00
    25242535    mov ax, strict word 00006h                ; b8 06 00
    2525     call 00dcbh                               ; e8 6c fa
     2536    call 00dcbh                               ; e8 49 fa
    25262537    xor bx, bx                                ; 31 db
    2527     jmp short 01368h                          ; eb 05
     2538    jmp short 0138bh                          ; eb 05
    25282539    cmp bx, strict byte 00008h                ; 83 fb 08
    2529     jnc short 01374h                          ; 73 0c
     2540    jnc short 01397h                          ; 73 0c
    25302541    mov al, bl                                ; 88 d8
    25312542    xor ah, ah                                ; 30 e4
    25322543    xor dx, dx                                ; 31 d2
    2533     call 00e79h                               ; e8 08 fb
     2544    call 00e79h                               ; e8 e5 fa
    25342545    inc bx                                    ; 43
    2535     jmp short 01363h                          ; eb ef
     2546    jmp short 01386h                          ; eb ef
    25362547    xor ax, ax                                ; 31 c0
    2537     call 00f2eh                               ; e8 b5 fb
     2548    call 00f2eh                               ; e8 92 fb
    25382549    mov bl, byte [bp-010h]                    ; 8a 5e f0
    25392550    xor bh, bh                                ; 30 ff
    25402551    sal bx, 003h                              ; c1 e3 03
    2541     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    2542     jne short 01398h                          ; 75 10
     2552    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2553    jne short 013bbh                          ; 75 10
    25432554    xor bl, bl                                ; 30 db
    25442555    mov AL, strict byte 004h                  ; b0 04
     
    25492560    mov AH, strict byte 011h                  ; b4 11
    25502561    int 010h                                  ; cd 10
    2551     mov dx, 057edh                            ; ba ed 57
     2562    mov dx, 057f2h                            ; ba f2 57
    25522563    mov ax, strict word 0001fh                ; b8 1f 00
    2553     call 00a00h                               ; e8 5f f6
     2564    call 00a00h                               ; e8 3c f6
    25542565    mov ax, word [bp-018h]                    ; 8b 46 e8
    25552566    cmp ax, strict word 00010h                ; 3d 10 00
    2556     je short 013c3h                           ; 74 1a
     2567    je short 013e6h                           ; 74 1a
    25572568    cmp ax, strict word 0000eh                ; 3d 0e 00
    2558     je short 013beh                           ; 74 10
     2569    je short 013e1h                           ; 74 10
    25592570    cmp ax, strict word 00008h                ; 3d 08 00
    2560     jne short 013c8h                          ; 75 15
    2561     mov dx, 053edh                            ; ba ed 53
     2571    jne short 013ebh                          ; 75 15
     2572    mov dx, 053f2h                            ; ba f2 53
    25622573    mov ax, strict word 00043h                ; b8 43 00
    2563     call 00a00h                               ; e8 44 f6
    2564     jmp short 013c8h                          ; eb 0a
    2565     mov dx, 05bedh                            ; ba ed 5b
    2566     jmp short 013b6h                          ; eb f3
    2567     mov dx, 069edh                            ; ba ed 69
    2568     jmp short 013b6h                          ; eb ee
     2574    call 00a00h                               ; e8 21 f6
     2575    jmp short 013ebh                          ; eb 0a
     2576    mov dx, 05bf2h                            ; ba f2 5b
     2577    jmp short 013d9h                          ; eb f3
     2578    mov dx, 069f2h                            ; ba f2 69
     2579    jmp short 013d9h                          ; eb ee
    25692580    lea sp, [bp-00ah]                         ; 8d 66 f6
    25702581    pop di                                    ; 5f
     
    25752586    pop bp                                    ; 5d
    25762587    retn                                      ; c3
    2577 vgamem_copy_pl4_:                            ; 0xc13d2 LB 0x8f
     2588vgamem_copy_pl4_:                            ; 0xc13f5 LB 0x8f
    25782589    push bp                                   ; 55
    25792590    mov bp, sp                                ; 89 e5
     
    26102621    xor bl, bl                                ; 30 db
    26112622    cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2612     jnc short 01451h                          ; 73 30
     2623    jnc short 01474h                          ; 73 30
    26132624    mov al, byte [bp-006h]                    ; 8a 46 fa
    26142625    xor ah, ah                                ; 30 e4
     
    26272638    mov es, dx                                ; 8e c2
    26282639    cld                                       ; fc
    2629     jcxz 0144dh                               ; e3 06
     2640    jcxz 01470h                               ; e3 06
    26302641    push DS                                   ; 1e
    26312642    mov ds, dx                                ; 8e da
     
    26342645    db  0feh, 0c3h
    26352646    ; inc bl                                    ; fe c3
    2636     jmp short 0141ch                          ; eb cb
     2647    jmp short 0143fh                          ; eb cb
    26372648    mov ax, strict word 00005h                ; b8 05 00
    26382649    mov dx, 003ceh                            ; ba ce 03
     
    26432654    pop bp                                    ; 5d
    26442655    retn 00004h                               ; c2 04 00
    2645 vgamem_fill_pl4_:                            ; 0xc1461 LB 0x7c
     2656vgamem_fill_pl4_:                            ; 0xc1484 LB 0x7c
    26462657    push bp                                   ; 55
    26472658    mov bp, sp                                ; 89 e5
     
    26722683    xor bl, bl                                ; 30 db
    26732684    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2674     jnc short 014cdh                          ; 73 2d
     2685    jnc short 014f0h                          ; 73 2d
    26752686    mov cl, byte [bp-006h]                    ; 8a 4e fa
    26762687    xor ch, ch                                ; 30 ed
     
    26902701    mov es, dx                                ; 8e c2
    26912702    cld                                       ; fc
    2692     jcxz 014c9h                               ; e3 02
     2703    jcxz 014ech                               ; e3 02
    26932704    rep stosb                                 ; f3 aa
    26942705    db  0feh, 0c3h
    26952706    ; inc bl                                    ; fe c3
    2696     jmp short 0149bh                          ; eb ce
     2707    jmp short 014beh                          ; eb ce
    26972708    mov ax, strict word 00005h                ; b8 05 00
    26982709    mov dx, 003ceh                            ; ba ce 03
     
    27032714    pop bp                                    ; 5d
    27042715    retn 00004h                               ; c2 04 00
    2705 vgamem_copy_cga_:                            ; 0xc14dd LB 0xc2
     2716vgamem_copy_cga_:                            ; 0xc1500 LB 0xc2
    27062717    push bp                                   ; 55
    27072718    mov bp, sp                                ; 89 e5
     
    27372748    xor bl, bl                                ; 30 db
    27382749    cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2739     jnc short 01596h                          ; 73 70
     2750    jnc short 015b9h                          ; 73 70
    27402751    test bl, 001h                             ; f6 c3 01
    2741     je short 01562h                           ; 74 37
     2752    je short 01585h                           ; 74 37
    27422753    mov cl, bh                                ; 88 f9
    27432754    xor ch, ch                                ; 30 ed
     
    27592770    mov es, dx                                ; 8e c2
    27602771    cld                                       ; fc
    2761     jcxz 01560h                               ; e3 06
     2772    jcxz 01583h                               ; e3 06
    27622773    push DS                                   ; 1e
    27632774    mov ds, dx                                ; 8e da
    27642775    rep movsb                                 ; f3 a4
    27652776    pop DS                                    ; 1f
    2766     jmp short 01592h                          ; eb 30
     2777    jmp short 015b5h                          ; eb 30
    27672778    mov al, bh                                ; 88 f8
    27682779    xor ah, ah                                ; 30 e4
     
    27822793    mov es, dx                                ; 8e c2
    27832794    cld                                       ; fc
    2784     jcxz 01592h                               ; e3 06
     2795    jcxz 015b5h                               ; e3 06
    27852796    push DS                                   ; 1e
    27862797    mov ds, dx                                ; 8e da
     
    27892800    db  0feh, 0c3h
    27902801    ; inc bl                                    ; fe c3
    2791     jmp short 01521h                          ; eb 8b
     2802    jmp short 01544h                          ; eb 8b
    27922803    lea sp, [bp-004h]                         ; 8d 66 fc
    27932804    pop di                                    ; 5f
     
    27952806    pop bp                                    ; 5d
    27962807    retn 00004h                               ; c2 04 00
    2797 vgamem_fill_cga_:                            ; 0xc159f LB 0xa8
     2808vgamem_fill_cga_:                            ; 0xc15c2 LB 0xa8
    27982809    push bp                                   ; 55
    27992810    mov bp, sp                                ; 89 e5
     
    28222833    xor bl, bl                                ; 30 db
    28232834    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2824     jnc short 0163eh                          ; 73 65
     2835    jnc short 01661h                          ; 73 65
    28252836    test bl, 001h                             ; f6 c3 01
    2826     je short 0160fh                           ; 74 31
     2837    je short 01632h                           ; 74 31
    28272838    mov al, byte [bp-008h]                    ; 8a 46 f8
    28282839    xor ah, ah                                ; 30 e4
     
    28442855    mov es, dx                                ; 8e c2
    28452856    cld                                       ; fc
    2846     jcxz 0160dh                               ; e3 02
     2857    jcxz 01630h                               ; e3 02
    28472858    rep stosb                                 ; f3 aa
    2848     jmp short 0163ah                          ; eb 2b
     2859    jmp short 0165dh                          ; eb 2b
    28492860    mov al, byte [bp-008h]                    ; 8a 46 f8
    28502861    xor ah, ah                                ; 30 e4
     
    28652876    mov es, dx                                ; 8e c2
    28662877    cld                                       ; fc
    2867     jcxz 0163ah                               ; e3 02
     2878    jcxz 0165dh                               ; e3 02
    28682879    rep stosb                                 ; f3 aa
    28692880    db  0feh, 0c3h
    28702881    ; inc bl                                    ; fe c3
    2871     jmp short 015d4h                          ; eb 96
     2882    jmp short 015f7h                          ; eb 96
    28722883    lea sp, [bp-004h]                         ; 8d 66 fc
    28732884    pop di                                    ; 5f
     
    28752886    pop bp                                    ; 5d
    28762887    retn 00004h                               ; c2 04 00
    2877 biosfn_scroll_:                              ; 0xc1647 LB 0x55a
     2888biosfn_scroll_:                              ; 0xc166a LB 0x55a
    28782889    push bp                                   ; 55
    28792890    mov bp, sp                                ; 89 e5
     
    28862897    mov byte [bp-008h], cl                    ; 88 4e f8
    28872898    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2888     jnbe short 0167ah                         ; 77 1a
     2899    jnbe short 0169dh                         ; 77 1a
    28892900    cmp cl, byte [bp+006h]                    ; 3a 4e 06
    2890     jnbe short 0167ah                         ; 77 15
     2901    jnbe short 0169dh                         ; 77 15
    28912902    mov dx, strict word 00049h                ; ba 49 00
    28922903    mov ax, strict word 00040h                ; b8 40 00
    2893     call 03165h                               ; e8 f7 1a
    2894     xor ah, ah                                ; 30 e4
    2895     call 0313dh                               ; e8 ca 1a
     2904    call 03188h                               ; e8 f7 1a
     2905    xor ah, ah                                ; 30 e4
     2906    call 03160h                               ; e8 ca 1a
    28962907    mov byte [bp-00ch], al                    ; 88 46 f4
    28972908    cmp AL, strict byte 0ffh                  ; 3c ff
    2898     jne short 0167dh                          ; 75 03
    2899     jmp near 01b98h                           ; e9 1b 05
     2909    jne short 016a0h                          ; 75 03
     2910    jmp near 01bbbh                           ; e9 1b 05
    29002911    mov dx, 00084h                            ; ba 84 00
    29012912    mov ax, strict word 00040h                ; b8 40 00
    2902     call 03165h                               ; e8 df 1a
     2913    call 03188h                               ; e8 df 1a
    29032914    xor ah, ah                                ; 30 e4
    29042915    mov cx, ax                                ; 89 c1
     
    29062917    mov dx, strict word 0004ah                ; ba 4a 00
    29072918    mov ax, strict word 00040h                ; b8 40 00
    2908     call 03181h                               ; e8 ed 1a
     2919    call 031a4h                               ; e8 ed 1a
    29092920    mov word [bp-018h], ax                    ; 89 46 e8
    29102921    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
    2911     jne short 016a9h                          ; 75 0c
     2922    jne short 016cch                          ; 75 0c
    29122923    mov dx, strict word 00062h                ; ba 62 00
    29132924    mov ax, strict word 00040h                ; b8 40 00
    2914     call 03165h                               ; e8 bf 1a
     2925    call 03188h                               ; e8 bf 1a
    29152926    mov byte [bp+008h], al                    ; 88 46 08
    29162927    mov al, byte [bp+004h]                    ; 8a 46 04
    29172928    xor ah, ah                                ; 30 e4
    29182929    cmp ax, cx                                ; 39 c8
    2919     jc short 016b9h                           ; 72 07
     2930    jc short 016dch                           ; 72 07
    29202931    mov al, cl                                ; 88 c8
    29212932    db  0feh, 0c8h
     
    29252936    xor ah, ah                                ; 30 e4
    29262937    cmp ax, word [bp-018h]                    ; 3b 46 e8
    2927     jc short 016cbh                           ; 72 08
     2938    jc short 016eeh                           ; 72 08
    29282939    mov al, byte [bp-018h]                    ; 8a 46 e8
    29292940    db  0feh, 0c8h
     
    29332944    xor ah, ah                                ; 30 e4
    29342945    cmp ax, cx                                ; 39 c8
    2935     jbe short 016d7h                          ; 76 03
     2946    jbe short 016fah                          ; 76 03
    29362947    mov byte [bp-006h], ah                    ; 88 66 fa
    29372948    mov al, byte [bp+006h]                    ; 8a 46 06
     
    29532964    mul cx                                    ; f7 e1
    29542965    mov si, ax                                ; 89 c6
    2955     cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
    2956     jne short 01758h                          ; 75 51
     2966    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     2967    jne short 0177bh                          ; 75 51
    29572968    add ax, ax                                ; 01 c0
    29582969    or AL, strict byte 0ffh                   ; 0c ff
     
    29662977    mov bx, ax                                ; 89 c3
    29672978    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2968     jne short 0175bh                          ; 75 3a
     2979    jne short 0177eh                          ; 75 3a
    29692980    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    2970     jne short 0175bh                          ; 75 34
     2981    jne short 0177eh                          ; 75 34
    29712982    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2972     jne short 0175bh                          ; 75 2e
     2983    jne short 0177eh                          ; 75 2e
    29732984    mov al, byte [bp+004h]                    ; 8a 46 04
    29742985    xor ah, ah                                ; 30 e4
    29752986    cmp ax, word [bp-01ch]                    ; 3b 46 e4
    2976     jne short 0175bh                          ; 75 24
     2987    jne short 0177eh                          ; 75 24
    29772988    mov al, byte [bp+006h]                    ; 8a 46 06
    29782989    cmp ax, word [bp-01ah]                    ; 3b 46 e6
    2979     jne short 0175bh                          ; 75 1c
     2990    jne short 0177eh                          ; 75 1c
    29802991    mov al, byte [bp-010h]                    ; 8a 46 f0
    29812992    sal ax, 008h                              ; c1 e0 08
    29822993    add ax, strict word 00020h                ; 05 20 00
    2983     mov es, [di+04633h]                       ; 8e 85 33 46
     2994    mov es, [di+04638h]                       ; 8e 85 38 46
    29842995    mov cx, si                                ; 89 f1
    29852996    mov di, bx                                ; 89 df
    29862997    cld                                       ; fc
    2987     jcxz 01755h                               ; e3 02
     2998    jcxz 01778h                               ; e3 02
    29882999    rep stosw                                 ; f3 ab
    2989     jmp near 01b98h                           ; e9 40 04
    2990     jmp near 018d6h                           ; e9 7b 01
     3000    jmp near 01bbbh                           ; e9 40 04
     3001    jmp near 018f9h                           ; e9 7b 01
    29913002    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    2992     jne short 017c5h                          ; 75 64
     3003    jne short 017e8h                          ; 75 64
    29933004    mov al, byte [bp-00ah]                    ; 8a 46 f6
    29943005    xor ah, ah                                ; 30 e4
     
    29973008    xor dh, dh                                ; 30 f6
    29983009    cmp dx, word [bp-016h]                    ; 3b 56 ea
    2999     jc short 017c7h                           ; 72 54
     3010    jc short 017eah                           ; 72 54
    30003011    mov al, byte [bp-006h]                    ; 8a 46 fa
    30013012    xor ah, ah                                ; 30 e4
    30023013    add ax, word [bp-016h]                    ; 03 46 ea
    30033014    cmp ax, dx                                ; 39 d0
    3004     jnbe short 01785h                         ; 77 06
     3015    jnbe short 017a8h                         ; 77 06
    30053016    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3006     jne short 017cah                          ; 75 45
     3017    jne short 017edh                          ; 75 45
    30073018    mov al, byte [bp-00eh]                    ; 8a 46 f2
    30083019    xor ah, ah                                ; 30 e4
     
    30253036    mov si, ax                                ; 89 c6
    30263037    sal si, 003h                              ; c1 e6 03
    3027     mov es, [si+04633h]                       ; 8e 84 33 46
     3038    mov es, [si+04638h]                       ; 8e 84 38 46
    30283039    mov ax, word [bp-01eh]                    ; 8b 46 e2
    30293040    cld                                       ; fc
    3030     jcxz 017c3h                               ; e3 02
     3041    jcxz 017e6h                               ; e3 02
    30313042    rep stosw                                 ; f3 ab
    3032     jmp short 0180eh                          ; eb 49
    3033     jmp short 01814h                          ; eb 4d
    3034     jmp near 01b98h                           ; e9 ce 03
     3043    jmp short 01831h                          ; eb 49
     3044    jmp short 01837h                          ; eb 4d
     3045    jmp near 01bbbh                           ; e9 ce 03
    30353046    mov dl, byte [bp-00eh]                    ; 8a 56 f2
    30363047    mov cx, dx                                ; 89 d1
     
    30463057    mov si, ax                                ; 89 c6
    30473058    sal si, 003h                              ; c1 e6 03
    3048     mov ax, word [si+04633h]                  ; 8b 84 33 46
     3059    mov ax, word [si+04638h]                  ; 8b 84 38 46
    30493060    mov word [bp-01eh], ax                    ; 89 46 e2
    30503061    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    30573068    mov es, dx                                ; 8e c2
    30583069    cld                                       ; fc
    3059     jcxz 0180eh                               ; e3 06
     3070    jcxz 01831h                               ; e3 06
    30603071    push DS                                   ; 1e
    30613072    mov ds, dx                                ; 8e da
     
    30633074    pop DS                                    ; 1f
    30643075    inc word [bp-016h]                        ; ff 46 ea
    3065     jmp near 01769h                           ; e9 55 ff
     3076    jmp near 0178ch                           ; e9 55 ff
    30663077    mov al, byte [bp+004h]                    ; 8a 46 04
    30673078    xor ah, ah                                ; 30 e4
     
    30703081    xor ah, ah                                ; 30 e4
    30713082    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3072     jnbe short 017c7h                         ; 77 a1
     3083    jnbe short 017eah                         ; 77 a1
    30733084    mov dx, ax                                ; 89 c2
    30743085    mov al, byte [bp-006h]                    ; 8a 46 fa
    30753086    add dx, ax                                ; 01 c2
    30763087    cmp dx, word [bp-016h]                    ; 3b 56 ea
    3077     jnbe short 01836h                         ; 77 04
     3088    jnbe short 01859h                         ; 77 04
    30783089    test al, al                               ; 84 c0
    3079     jne short 01874h                          ; 75 3e
     3090    jne short 01897h                          ; 75 3e
    30803091    mov al, byte [bp-00eh]                    ; 8a 46 f2
    30813092    xor ah, ah                                ; 30 e4
     
    30973108    mov si, ax                                ; 89 c6
    30983109    sal si, 003h                              ; c1 e6 03
    3099     mov es, [si+04633h]                       ; 8e 84 33 46
     3110    mov es, [si+04638h]                       ; 8e 84 38 46
    31003111    mov ax, word [bp-01eh]                    ; 8b 46 e2
    31013112    cld                                       ; fc
    3102     jcxz 01872h                               ; e3 02
     3113    jcxz 01895h                               ; e3 02
    31033114    rep stosw                                 ; f3 ab
    3104     jmp short 018c6h                          ; eb 52
     3115    jmp short 018e9h                          ; eb 52
    31053116    mov al, byte [bp-00eh]                    ; 8a 46 f2
    31063117    mov di, ax                                ; 89 c7
     
    31203131    mov si, ax                                ; 89 c6
    31213132    sal si, 003h                              ; c1 e6 03
    3122     mov ax, word [si+04633h]                  ; 8b 84 33 46
     3133    mov ax, word [si+04638h]                  ; 8b 84 38 46
    31233134    mov word [bp-014h], ax                    ; 89 46 ec
    31243135    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    31333144    mov es, dx                                ; 8e c2
    31343145    cld                                       ; fc
    3135     jcxz 018c6h                               ; e3 06
     3146    jcxz 018e9h                               ; e3 06
    31363147    push DS                                   ; 1e
    31373148    mov ds, dx                                ; 8e da
     
    31413152    xor ah, ah                                ; 30 e4
    31423153    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3143     jc short 018fbh                           ; 72 2b
     3154    jc short 0191eh                           ; 72 2b
    31443155    dec word [bp-016h]                        ; ff 4e ea
    3145     jmp near 0181ch                           ; e9 46 ff
    3146     mov al, byte [bx+046afh]                  ; 8a 87 af 46
     3156    jmp near 0183fh                           ; e9 46 ff
     3157    mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
    31473158    xor ah, ah                                ; 30 e4
    31483159    mov bx, ax                                ; 89 c3
    31493160    sal bx, 006h                              ; c1 e3 06
    3150     mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
     3161    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    31513162    mov byte [bp-012h], al                    ; 88 46 ee
    3152     mov bl, byte [di+04631h]                  ; 8a 9d 31 46
     3163    mov bl, byte [di+04636h]                  ; 8a 9d 36 46
    31533164    cmp bl, 004h                              ; 80 fb 04
    3154     je short 018feh                           ; 74 0d
     3165    je short 01921h                           ; 74 0d
    31553166    cmp bl, 003h                              ; 80 fb 03
    3156     je short 018feh                           ; 74 08
     3167    je short 01921h                           ; 74 08
    31573168    cmp bl, 002h                              ; 80 fb 02
    3158     je short 0192dh                           ; 74 32
    3159     jmp near 01b98h                           ; e9 9a 02
     3169    je short 01950h                           ; 74 32
     3170    jmp near 01bbbh                           ; e9 9a 02
    31603171    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3161     jne short 01968h                          ; 75 64
     3172    jne short 0198bh                          ; 75 64
    31623173    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3163     jne short 01968h                          ; 75 5e
     3174    jne short 0198bh                          ; 75 5e
    31643175    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3165     jne short 01968h                          ; 75 58
     3176    jne short 0198bh                          ; 75 58
    31663177    mov al, byte [bp+004h]                    ; 8a 46 04
    31673178    xor ah, ah                                ; 30 e4
     
    31703181    dec ax                                    ; 48
    31713182    cmp dx, ax                                ; 39 c2
    3172     jne short 01968h                          ; 75 4a
     3183    jne short 0198bh                          ; 75 4a
    31733184    mov al, byte [bp+006h]                    ; 8a 46 06
    31743185    xor ah, ah                                ; 30 e4
     
    31763187    dec dx                                    ; 4a
    31773188    cmp ax, dx                                ; 39 d0
    3178     je short 01930h                           ; 74 05
    3179     jmp short 01968h                          ; eb 3b
    3180     jmp near 01a5dh                           ; e9 2d 01
     3189    je short 01953h                           ; 74 05
     3190    jmp short 0198bh                          ; eb 3b
     3191    jmp near 01a80h                           ; e9 2d 01
    31813192    mov ax, 00205h                            ; b8 05 02
    31823193    mov dx, 003ceh                            ; ba ce 03
     
    31943205    mov bx, dx                                ; 89 d3
    31953206    sal bx, 003h                              ; c1 e3 03
    3196     mov es, [bx+04633h]                       ; 8e 87 33 46
     3207    mov es, [bx+04638h]                       ; 8e 87 38 46
    31973208    xor di, di                                ; 31 ff
    31983209    cld                                       ; fc
    3199     jcxz 0195fh                               ; e3 02
     3210    jcxz 01982h                               ; e3 02
    32003211    rep stosb                                 ; f3 aa
    32013212    mov ax, strict word 00005h                ; b8 05 00
    32023213    mov dx, 003ceh                            ; ba ce 03
    32033214    out DX, ax                                ; ef
    3204     jmp short 018fbh                          ; eb 93
     3215    jmp short 0191eh                          ; eb 93
    32053216    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3206     jne short 019beh                          ; 75 50
     3217    jne short 019e1h                          ; 75 50
    32073218    mov al, byte [bp-00ah]                    ; 8a 46 f6
    32083219    xor ah, ah                                ; 30 e4
     
    32123223    mov dx, ax                                ; 89 c2
    32133224    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3214     jc short 019e4h                           ; 72 62
     3225    jc short 01a07h                           ; 72 62
    32153226    mov al, byte [bp-006h]                    ; 8a 46 fa
    32163227    add ax, word [bp-016h]                    ; 03 46 ea
    32173228    cmp ax, dx                                ; 39 d0
    3218     jnbe short 01992h                         ; 77 06
     3229    jnbe short 019b5h                         ; 77 06
    32193230    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3220     jne short 019c0h                          ; 75 2e
     3231    jne short 019e3h                          ; 75 2e
    32213232    mov al, byte [bp-010h]                    ; 8a 46 f0
    32223233    xor ah, ah                                ; 30 e4
     
    32353246    mov dx, ax                                ; 89 c2
    32363247    mov ax, si                                ; 89 f0
    3237     call 01461h                               ; e8 a5 fa
    3238     jmp short 019dfh                          ; eb 21
    3239     jmp short 019e7h                          ; eb 27
     3248    call 01484h                               ; e8 a5 fa
     3249    jmp short 01a02h                          ; eb 21
     3250    jmp short 01a0ah                          ; eb 27
    32403251    mov al, byte [bp-012h]                    ; 8a 46 ee
    32413252    xor ah, ah                                ; 30 e4
     
    32503261    mov dx, ax                                ; 89 c2
    32513262    mov al, byte [bp-008h]                    ; 8a 46 f8
    3252     call 013d2h                               ; e8 f3 f9
     3263    call 013f5h                               ; e8 f3 f9
    32533264    inc word [bp-016h]                        ; ff 46 ea
    3254     jmp short 01976h                          ; eb 92
    3255     jmp near 01b98h                           ; e9 b1 01
     3265    jmp short 01999h                          ; eb 92
     3266    jmp near 01bbbh                           ; e9 b1 01
    32563267    mov al, byte [bp+004h]                    ; 8a 46 04
    32573268    xor ah, ah                                ; 30 e4
     
    32603271    xor ah, ah                                ; 30 e4
    32613272    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3262     jnbe short 019e4h                         ; 77 eb
     3273    jnbe short 01a07h                         ; 77 eb
    32633274    mov dx, ax                                ; 89 c2
    32643275    mov al, byte [bp-006h]                    ; 8a 46 fa
    32653276    add ax, dx                                ; 01 d0
    32663277    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3267     jnbe short 01a0bh                         ; 77 06
     3278    jnbe short 01a2eh                         ; 77 06
    32683279    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3269     jne short 01a2ch                          ; 75 21
     3280    jne short 01a4fh                          ; 75 21
    32703281    mov al, byte [bp-010h]                    ; 8a 46 f0
    32713282    xor ah, ah                                ; 30 e4
     
    32803291    mov dx, ax                                ; 89 c2
    32813292    mov al, byte [bp-008h]                    ; 8a 46 f8
    3282     call 01461h                               ; e8 37 fa
    3283     jmp short 01a4eh                          ; eb 22
     3293    call 01484h                               ; e8 37 fa
     3294    jmp short 01a71h                          ; eb 22
    32843295    mov al, byte [bp-012h]                    ; 8a 46 ee
    32853296    xor ah, ah                                ; 30 e4
     
    32953306    mov dx, ax                                ; 89 c2
    32963307    mov al, byte [bp-008h]                    ; 8a 46 f8
    3297     call 013d2h                               ; e8 84 f9
     3308    call 013f5h                               ; e8 84 f9
    32983309    mov al, byte [bp+004h]                    ; 8a 46 04
    32993310    xor ah, ah                                ; 30 e4
    33003311    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3301     jc short 01aa2h                           ; 72 4a
     3312    jc short 01ac5h                           ; 72 4a
    33023313    dec word [bp-016h]                        ; ff 4e ea
    3303     jmp short 019efh                          ; eb 92
    3304     mov bl, byte [di+04632h]                  ; 8a 9d 32 46
     3314    jmp short 01a12h                          ; eb 92
     3315    mov bl, byte [di+04637h]                  ; 8a 9d 37 46
    33053316    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3306     jne short 01aa5h                          ; 75 3e
     3317    jne short 01ac8h                          ; 75 3e
    33073318    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3308     jne short 01aa5h                          ; 75 38
     3319    jne short 01ac8h                          ; 75 38
    33093320    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3310     jne short 01aa5h                          ; 75 32
     3321    jne short 01ac8h                          ; 75 32
    33113322    mov al, byte [bp+004h]                    ; 8a 46 04
    33123323    cmp ax, word [bp-01ch]                    ; 3b 46 e4
    3313     jne short 01aa5h                          ; 75 2a
     3324    jne short 01ac8h                          ; 75 2a
    33143325    mov al, byte [bp+006h]                    ; 8a 46 06
    33153326    cmp ax, word [bp-01ah]                    ; 3b 46 e6
    3316     jne short 01aa5h                          ; 75 22
     3327    jne short 01ac8h                          ; 75 22
    33173328    mov al, byte [bp-012h]                    ; 8a 46 ee
    33183329    mov dx, ax                                ; 89 c2
     
    33223333    mul bx                                    ; f7 e3
    33233334    mov bl, byte [bp-010h]                    ; 8a 5e f0
    3324     mov es, [di+04633h]                       ; 8e 85 33 46
     3335    mov es, [di+04638h]                       ; 8e 85 38 46
    33253336    mov cx, ax                                ; 89 c1
    33263337    mov ax, bx                                ; 89 d8
    33273338    xor di, di                                ; 31 ff
    33283339    cld                                       ; fc
    3329     jcxz 01aa2h                               ; e3 02
     3340    jcxz 01ac5h                               ; e3 02
    33303341    rep stosb                                 ; f3 aa
    3331     jmp near 01b98h                           ; e9 f3 00
     3342    jmp near 01bbbh                           ; e9 f3 00
    33323343    cmp bl, 002h                              ; 80 fb 02
    3333     jne short 01ab3h                          ; 75 09
     3344    jne short 01ad6h                          ; 75 09
    33343345    sal byte [bp-008h], 1                     ; d0 66 f8
    33353346    sal byte [bp-00eh], 1                     ; d0 66 f2
    33363347    sal word [bp-018h], 1                     ; d1 66 e8
    33373348    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3338     jne short 01b22h                          ; 75 69
     3349    jne short 01b45h                          ; 75 69
    33393350    mov al, byte [bp-00ah]                    ; 8a 46 f6
    33403351    xor ah, ah                                ; 30 e4
     
    33443355    mov dx, ax                                ; 89 c2
    33453356    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3346     jc short 01aa2h                           ; 72 d5
     3357    jc short 01ac5h                           ; 72 d5
    33473358    mov al, byte [bp-006h]                    ; 8a 46 fa
    33483359    add ax, word [bp-016h]                    ; 03 46 ea
    33493360    cmp ax, dx                                ; 39 d0
    3350     jnbe short 01addh                         ; 77 06
     3361    jnbe short 01b00h                         ; 77 06
    33513362    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3352     jne short 01afeh                          ; 75 21
     3363    jne short 01b21h                          ; 75 21
    33533364    mov al, byte [bp-010h]                    ; 8a 46 f0
    33543365    xor ah, ah                                ; 30 e4
     
    33633374    mov dx, ax                                ; 89 c2
    33643375    mov al, byte [bp-008h]                    ; 8a 46 f8
    3365     call 0159fh                               ; e8 a3 fa
    3366     jmp short 01b1dh                          ; eb 1f
     3376    call 015c2h                               ; e8 a3 fa
     3377    jmp short 01b40h                          ; eb 1f
    33673378    mov al, byte [bp-012h]                    ; 8a 46 ee
    33683379    xor ah, ah                                ; 30 e4
     
    33773388    mov dx, ax                                ; 89 c2
    33783389    mov al, byte [bp-008h]                    ; 8a 46 f8
    3379     call 014ddh                               ; e8 c0 f9
     3390    call 01500h                               ; e8 c0 f9
    33803391    inc word [bp-016h]                        ; ff 46 ea
    3381     jmp short 01ac1h                          ; eb 9f
     3392    jmp short 01ae4h                          ; eb 9f
    33823393    mov al, byte [bp+004h]                    ; 8a 46 04
    33833394    xor ah, ah                                ; 30 e4
     
    33863397    xor ah, ah                                ; 30 e4
    33873398    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3388     jnbe short 01b98h                         ; 77 64
     3399    jnbe short 01bbbh                         ; 77 64
    33893400    mov dx, ax                                ; 89 c2
    33903401    mov al, byte [bp-006h]                    ; 8a 46 fa
    33913402    add ax, dx                                ; 01 d0
    33923403    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3393     jnbe short 01b46h                         ; 77 06
     3404    jnbe short 01b69h                         ; 77 06
    33943405    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3395     jne short 01b67h                          ; 75 21
     3406    jne short 01b8ah                          ; 75 21
    33963407    mov al, byte [bp-010h]                    ; 8a 46 f0
    33973408    xor ah, ah                                ; 30 e4
     
    34063417    mov dx, ax                                ; 89 c2
    34073418    mov al, byte [bp-008h]                    ; 8a 46 f8
    3408     call 0159fh                               ; e8 3a fa
    3409     jmp short 01b89h                          ; eb 22
     3419    call 015c2h                               ; e8 3a fa
     3420    jmp short 01bach                          ; eb 22
    34103421    mov al, byte [bp-012h]                    ; 8a 46 ee
    34113422    xor ah, ah                                ; 30 e4
     
    34213432    mov dx, ax                                ; 89 c2
    34223433    mov al, byte [bp-008h]                    ; 8a 46 f8
    3423     call 014ddh                               ; e8 54 f9
     3434    call 01500h                               ; e8 54 f9
    34243435    mov al, byte [bp+004h]                    ; 8a 46 04
    34253436    xor ah, ah                                ; 30 e4
    34263437    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3427     jc short 01b98h                           ; 72 05
     3438    jc short 01bbbh                           ; 72 05
    34283439    dec word [bp-016h]                        ; ff 4e ea
    3429     jmp short 01b2ah                          ; eb 92
     3440    jmp short 01b4dh                          ; eb 92
    34303441    lea sp, [bp-004h]                         ; 8d 66 fc
    34313442    pop di                                    ; 5f
     
    34333444    pop bp                                    ; 5d
    34343445    retn 00008h                               ; c2 08 00
    3435 write_gfx_char_pl4_:                         ; 0xc1ba1 LB 0xfb
     3446write_gfx_char_pl4_:                         ; 0xc1bc4 LB 0xfb
    34363447    push bp                                   ; 55
    34373448    mov bp, sp                                ; 89 e5
     
    34443455    mov al, cl                                ; 88 c8
    34453456    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
    3446     je short 01bc5h                           ; 74 0b
     3457    je short 01be8h                           ; 74 0b
    34473458    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
    3448     jne short 01bcah                          ; 75 0a
    3449     mov di, 05bedh                            ; bf ed 5b
    3450     jmp short 01bcdh                          ; eb 08
    3451     mov di, 069edh                            ; bf ed 69
    3452     jmp short 01bcdh                          ; eb 03
    3453     mov di, 053edh                            ; bf ed 53
     3459    jne short 01bedh                          ; 75 0a
     3460    mov di, 05bf2h                            ; bf f2 5b
     3461    jmp short 01bf0h                          ; eb 08
     3462    mov di, 069f2h                            ; bf f2 69
     3463    jmp short 01bf0h                          ; eb 03
     3464    mov di, 053f2h                            ; bf f2 53
    34543465    xor ah, ah                                ; 30 e4
    34553466    mov bx, ax                                ; 89 c3
     
    34763487    out DX, ax                                ; ef
    34773488    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3478     je short 01c0fh                           ; 74 06
     3489    je short 01c32h                           ; 74 06
    34793490    mov ax, 01803h                            ; b8 03 18
    34803491    out DX, ax                                ; ef
    3481     jmp short 01c13h                          ; eb 04
     3492    jmp short 01c36h                          ; eb 04
    34823493    mov ax, strict word 00003h                ; b8 03 00
    34833494    out DX, ax                                ; ef
    34843495    xor ch, ch                                ; 30 ed
    34853496    cmp ch, byte [bp+006h]                    ; 3a 6e 06
    3486     jnc short 01c84h                          ; 73 6a
     3497    jnc short 01ca7h                          ; 73 6a
    34873498    mov al, ch                                ; 88 e8
    34883499    xor ah, ah                                ; 30 e4
     
    34953506    add si, ax                                ; 01 c6
    34963507    mov byte [bp-00ch], bh                    ; 88 7e f4
    3497     jmp short 01c46h                          ; eb 13
     3508    jmp short 01c69h                          ; eb 13
    34983509    xor bx, bx                                ; 31 db
    34993510    mov dx, si                                ; 89 f2
    35003511    mov ax, 0a000h                            ; b8 00 a0
    3501     call 03173h                               ; e8 36 15
     3512    call 03196h                               ; e8 36 15
    35023513    inc byte [bp-00ch]                        ; fe 46 f4
    35033514    cmp byte [bp-00ch], 008h                  ; 80 7e f4 08
    3504     jnc short 01c80h                          ; 73 3a
     3515    jnc short 01ca3h                          ; 73 3a
    35053516    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    35063517    mov ax, 00080h                            ; b8 80 00
     
    35143525    mov dx, si                                ; 89 f2
    35153526    mov ax, 0a000h                            ; b8 00 a0
    3516     call 03165h                               ; e8 01 15
     3527    call 03188h                               ; e8 01 15
    35173528    mov al, ch                                ; 88 e8
    35183529    xor ah, ah                                ; 30 e4
     
    35223533    mov al, byte [bx]                         ; 8a 07
    35233534    test word [bp-012h], ax                   ; 85 46 ee
    3524     je short 01c33h                           ; 74 bd
     3535    je short 01c56h                           ; 74 bd
    35253536    mov bl, byte [bp-008h]                    ; 8a 5e f8
    35263537    and bl, 00fh                              ; 80 e3 0f
    35273538    xor bh, bh                                ; 30 ff
    3528     jmp short 01c35h                          ; eb b5
     3539    jmp short 01c58h                          ; eb b5
    35293540    db  0feh, 0c5h
    35303541    ; inc ch                                    ; fe c5
    3531     jmp short 01c15h                          ; eb 91
     3542    jmp short 01c38h                          ; eb 91
    35323543    mov ax, 0ff08h                            ; b8 08 ff
    35333544    mov dx, 003ceh                            ; ba ce 03
     
    35423553    pop bp                                    ; 5d
    35433554    retn 00004h                               ; c2 04 00
    3544 write_gfx_char_cga_:                         ; 0xc1c9c LB 0x138
     3555write_gfx_char_cga_:                         ; 0xc1cbf LB 0x138
    35453556    push bp                                   ; 55
    35463557    mov bp, sp                                ; 89 e5
     
    35513562    mov byte [bp-008h], dl                    ; 88 56 f8
    35523563    mov al, bl                                ; 88 d8
    3553     mov si, 053edh                            ; be ed 53
     3564    mov si, 053f2h                            ; be f2 53
    35543565    xor ah, ah                                ; 30 e4
    35553566    mov bx, ax                                ; 89 c3
     
    35693580    sal di, 003h                              ; c1 e7 03
    35703581    mov byte [bp-006h], ah                    ; 88 66 fa
    3571     jmp near 01d2dh                           ; e9 52 00
     3582    jmp near 01d50h                           ; e9 52 00
    35723583    xor al, al                                ; 30 c0
    35733584    xor ah, ah                                ; 30 e4
    3574     jmp short 01cech                          ; eb 0b
     3585    jmp short 01d0fh                          ; eb 0b
    35753586    or al, bl                                 ; 08 d8
    35763587    shr ch, 1                                 ; d0 ed
     
    35783589    ; inc ah                                    ; fe c4
    35793590    cmp ah, 008h                              ; 80 fc 08
    3580     jnc short 01d17h                          ; 73 2b
     3591    jnc short 01d3ah                          ; 73 2b
    35813592    mov bl, byte [bp-006h]                    ; 8a 5e fa
    35823593    xor bh, bh                                ; 30 ff
     
    35883599    mov bl, ch                                ; 88 eb
    35893600    test dx, bx                               ; 85 da
    3590     je short 01ce3h                           ; 74 e2
     3601    je short 01d06h                           ; 74 e2
    35913602    mov CL, strict byte 007h                  ; b1 07
    35923603    sub cl, ah                                ; 28 e1
     
    35953606    sal bl, CL                                ; d2 e3
    35963607    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3597     je short 01ce1h                           ; 74 ce
     3608    je short 01d04h                           ; 74 ce
    35983609    xor al, bl                                ; 30 d8
    3599     jmp short 01ce3h                          ; eb cc
     3610    jmp short 01d06h                          ; eb cc
    36003611    xor ah, ah                                ; 30 e4
    36013612    mov bx, ax                                ; 89 c3
    36023613    mov dx, word [bp-00ch]                    ; 8b 56 f4
    36033614    mov ax, 0b800h                            ; b8 00 b8
    3604     call 03173h                               ; e8 4f 14
     3615    call 03196h                               ; e8 4f 14
    36053616    inc byte [bp-006h]                        ; fe 46 fa
    36063617    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
    3607     jnc short 01d7dh                          ; 73 50
     3618    jnc short 01da0h                          ; 73 50
    36083619    mov al, byte [bp-006h]                    ; 8a 46 fa
    36093620    xor ah, ah                                ; 30 e4
     
    36143625    mov word [bp-00ch], dx                    ; 89 56 f4
    36153626    test byte [bp-006h], 001h                 ; f6 46 fa 01
    3616     je short 01d49h                           ; 74 04
     3627    je short 01d6ch                           ; 74 04
    36173628    add byte [bp-00bh], 020h                  ; 80 46 f5 20
    36183629    mov CH, strict byte 080h                  ; b5 80
    36193630    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
    3620     jne short 01d62h                          ; 75 11
     3631    jne short 01d85h                          ; 75 11
    36213632    test byte [bp-008h], ch                   ; 84 6e f8
    3622     je short 01cdbh                           ; 74 85
     3633    je short 01cfeh                           ; 74 85
    36233634    mov dx, word [bp-00ch]                    ; 8b 56 f4
    36243635    mov ax, 0b800h                            ; b8 00 b8
    3625     call 03165h                               ; e8 06 14
    3626     jmp near 01cddh                           ; e9 7b ff
     3636    call 03188h                               ; e8 06 14
     3637    jmp near 01d00h                           ; e9 7b ff
    36273638    test ch, ch                               ; 84 ed
    3628     jbe short 01d24h                          ; 76 be
     3639    jbe short 01d47h                          ; 76 be
    36293640    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3630     je short 01d77h                           ; 74 0b
     3641    je short 01d9ah                           ; 74 0b
    36313642    mov dx, word [bp-00ch]                    ; 8b 56 f4
    36323643    mov ax, 0b800h                            ; b8 00 b8
    3633     call 03165h                               ; e8 f0 13
    3634     jmp short 01d79h                          ; eb 02
     3644    call 03188h                               ; e8 f0 13
     3645    jmp short 01d9ch                          ; eb 02
    36353646    xor al, al                                ; 30 c0
    36363647    xor ah, ah                                ; 30 e4
    3637     jmp short 01d84h                          ; eb 07
    3638     jmp short 01dcbh                          ; eb 4c
     3648    jmp short 01da7h                          ; eb 07
     3649    jmp short 01deeh                          ; eb 4c
    36393650    cmp ah, 004h                              ; 80 fc 04
    3640     jnc short 01db9h                          ; 73 35
     3651    jnc short 01ddch                          ; 73 35
    36413652    mov bl, byte [bp-006h]                    ; 8a 5e fa
    36423653    xor bh, bh                                ; 30 ff
     
    36483659    mov bl, ch                                ; 88 eb
    36493660    test dx, bx                               ; 85 da
    3650     je short 01db3h                           ; 74 1a
     3661    je short 01dd6h                           ; 74 1a
    36513662    mov CL, strict byte 003h                  ; b1 03
    36523663    sub cl, ah                                ; 28 e1
     
    36563667    sal bl, CL                                ; d2 e3
    36573668    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3658     je short 01db1h                           ; 74 04
     3669    je short 01dd4h                           ; 74 04
    36593670    xor al, bl                                ; 30 d8
    3660     jmp short 01db3h                          ; eb 02
     3671    jmp short 01dd6h                          ; eb 02
    36613672    or al, bl                                 ; 08 d8
    36623673    shr ch, 1                                 ; d0 ed
    36633674    db  0feh, 0c4h
    36643675    ; inc ah                                    ; fe c4
    3665     jmp short 01d7fh                          ; eb c6
     3676    jmp short 01da2h                          ; eb c6
    36663677    xor ah, ah                                ; 30 e4
    36673678    mov bx, ax                                ; 89 c3
    36683679    mov dx, word [bp-00ch]                    ; 8b 56 f4
    36693680    mov ax, 0b800h                            ; b8 00 b8
    3670     call 03173h                               ; e8 ad 13
     3681    call 03196h                               ; e8 ad 13
    36713682    inc word [bp-00ch]                        ; ff 46 f4
    3672     jmp short 01d62h                          ; eb 97
     3683    jmp short 01d85h                          ; eb 97
    36733684    lea sp, [bp-004h]                         ; 8d 66 fc
    36743685    pop di                                    ; 5f
     
    36763687    pop bp                                    ; 5d
    36773688    retn 00004h                               ; c2 04 00
    3678 write_gfx_char_lin_:                         ; 0xc1dd4 LB 0xaa
     3689write_gfx_char_lin_:                         ; 0xc1df7 LB 0xaa
    36793690    push bp                                   ; 55
    36803691    mov bp, sp                                ; 89 e5
     
    36863697    mov byte [bp-006h], bl                    ; 88 5e fa
    36873698    mov al, cl                                ; 88 c8
    3688     mov si, 053edh                            ; be ed 53
     3699    mov si, 053f2h                            ; be f2 53
    36893700    xor ah, ah                                ; 30 e4
    36903701    mov bl, byte [bp+004h]                    ; 8a 5e 04
     
    37013712    sal di, 003h                              ; c1 e7 03
    37023713    xor cl, cl                                ; 30 c9
    3703     jmp short 01e53h                          ; eb 44
     3714    jmp short 01e76h                          ; eb 44
    37043715    cmp ch, 008h                              ; 80 fd 08
    3705     jnc short 01e4ch                          ; 73 38
     3716    jnc short 01e6fh                          ; 73 38
    37063717    xor dl, dl                                ; 30 d2
    37073718    mov al, cl                                ; 88 c8
     
    37153726    xor bh, bh                                ; 30 ff
    37163727    test ax, bx                               ; 85 d8
    3717     je short 01e30h                           ; 74 03
     3728    je short 01e53h                           ; 74 03
    37183729    mov dl, byte [bp-00ch]                    ; 8a 56 f4
    37193730    mov bl, dl                                ; 88 d3
     
    37253736    mov bx, ax                                ; 89 c3
    37263737    mov ax, 0a000h                            ; b8 00 a0
    3727     call 03173h                               ; e8 2e 13
     3738    call 03196h                               ; e8 2e 13
    37283739    shr byte [bp-008h], 1                     ; d0 6e f8
    37293740    db  0feh, 0c5h
    37303741    ; inc ch                                    ; fe c5
    3731     jmp short 01e0fh                          ; eb c3
     3742    jmp short 01e32h                          ; eb c3
    37323743    db  0feh, 0c1h
    37333744    ; inc cl                                    ; fe c1
    37343745    cmp cl, 008h                              ; 80 f9 08
    3735     jnc short 01e75h                          ; 73 22
     3746    jnc short 01e98h                          ; 73 22
    37363747    mov bl, cl                                ; 88 cb
    37373748    xor bh, bh                                ; 30 ff
     
    37473758    mov byte [bp-008h], 080h                  ; c6 46 f8 80
    37483759    xor ch, ch                                ; 30 ed
    3749     jmp short 01e14h                          ; eb 9f
     3760    jmp short 01e37h                          ; eb 9f
    37503761    lea sp, [bp-004h]                         ; 8d 66 fc
    37513762    pop di                                    ; 5f
     
    37533764    pop bp                                    ; 5d
    37543765    retn 00002h                               ; c2 02 00
    3755 biosfn_write_char_attr_:                     ; 0xc1e7e LB 0x18d
     3766biosfn_write_char_attr_:                     ; 0xc1ea1 LB 0x18d
    37563767    push bp                                   ; 55
    37573768    mov bp, sp                                ; 89 e5
     
    37653776    mov dx, strict word 00049h                ; ba 49 00
    37663777    mov ax, strict word 00040h                ; b8 40 00
    3767     call 03165h                               ; e8 cb 12
    3768     xor ah, ah                                ; 30 e4
    3769     call 0313dh                               ; e8 9e 12
     3778    call 03188h                               ; e8 cb 12
     3779    xor ah, ah                                ; 30 e4
     3780    call 03160h                               ; e8 9e 12
    37703781    mov cl, al                                ; 88 c1
    37713782    mov byte [bp-014h], al                    ; 88 46 ec
    37723783    cmp AL, strict byte 0ffh                  ; 3c ff
    3773     jne short 01eabh                          ; 75 03
    3774     jmp near 02004h                           ; e9 59 01
     3784    jne short 01eceh                          ; 75 03
     3785    jmp near 02027h                           ; e9 59 01
    37753786    mov al, byte [bp-00ch]                    ; 8a 46 f4
    37763787    xor ah, ah                                ; 30 e4
    37773788    lea bx, [bp-01ch]                         ; 8d 5e e4
    37783789    lea dx, [bp-01ah]                         ; 8d 56 e6
    3779     call 00a8bh                               ; e8 d2 eb
     3790    call 00a8bh                               ; e8 af eb
    37803791    mov al, byte [bp-01ch]                    ; 8a 46 e4
    37813792    mov byte [bp-006h], al                    ; 88 46 fa
     
    37863797    mov dx, 00084h                            ; ba 84 00
    37873798    mov ax, strict word 00040h                ; b8 40 00
    3788     call 03165h                               ; e8 92 12
     3799    call 03188h                               ; e8 92 12
    37893800    xor ah, ah                                ; 30 e4
    37903801    inc ax                                    ; 40
     
    37923803    mov dx, strict word 0004ah                ; ba 4a 00
    37933804    mov ax, strict word 00040h                ; b8 40 00
    3794     call 03181h                               ; e8 9f 12
     3805    call 031a4h                               ; e8 9f 12
    37953806    mov bx, ax                                ; 89 c3
    37963807    mov word [bp-016h], ax                    ; 89 46 ea
     
    37993810    mov di, ax                                ; 89 c7
    38003811    sal di, 003h                              ; c1 e7 03
    3801     cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
    3802     jne short 01f49h                          ; 75 52
     3812    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3813    jne short 01f6ch                          ; 75 52
    38033814    mov ax, bx                                ; 89 d8
    38043815    mul word [bp-018h]                        ; f7 66 e8
     
    38303841    mov word [bp-01ah], bx                    ; 89 5e e6
    38313842    mov ax, word [bp-01ah]                    ; 8b 46 e6
    3832     mov es, [di+04633h]                       ; 8e 85 33 46
     3843    mov es, [di+04638h]                       ; 8e 85 38 46
    38333844    mov cx, si                                ; 89 f1
    38343845    mov di, dx                                ; 89 d7
    38353846    cld                                       ; fc
    3836     jcxz 01f46h                               ; e3 02
     3847    jcxz 01f69h                               ; e3 02
    38373848    rep stosw                                 ; f3 ab
    3838     jmp near 02004h                           ; e9 bb 00
    3839     mov bx, ax                                ; 89 c3
    3840     mov al, byte [bx+046afh]                  ; 8a 87 af 46
     3849    jmp near 02027h                           ; e9 bb 00
     3850    mov bx, ax                                ; 89 c3
     3851    mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
    38413852    mov bx, ax                                ; 89 c3
    38423853    sal bx, 006h                              ; c1 e3 06
    3843     mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
     3854    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    38443855    mov byte [bp-00eh], al                    ; 88 46 f2
    3845     mov al, byte [di+04632h]                  ; 8a 85 32 46
     3856    mov al, byte [di+04637h]                  ; 8a 85 37 46
    38463857    mov byte [bp-010h], al                    ; 88 46 f0
    38473858    dec si                                    ; 4e
    38483859    cmp si, strict byte 0ffffh                ; 83 fe ff
    3849     je short 01f72h                           ; 74 0a
     3860    je short 01f95h                           ; 74 0a
    38503861    mov al, byte [bp-006h]                    ; 8a 46 fa
    38513862    xor ah, ah                                ; 30 e4
    38523863    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3853     jc short 01f75h                           ; 72 03
    3854     jmp near 02004h                           ; e9 8f 00
     3864    jc short 01f98h                           ; 72 03
     3865    jmp near 02027h                           ; e9 8f 00
    38553866    mov al, byte [bp-014h]                    ; 8a 46 ec
    38563867    mov bx, ax                                ; 89 c3
    38573868    sal bx, 003h                              ; c1 e3 03
    3858     mov al, byte [bx+04631h]                  ; 8a 87 31 46
     3869    mov al, byte [bx+04636h]                  ; 8a 87 36 46
    38593870    cmp AL, strict byte 003h                  ; 3c 03
    3860     jc short 01f91h                           ; 72 0c
    3861     jbe short 01f97h                          ; 76 10
     3871    jc short 01fb4h                           ; 72 0c
     3872    jbe short 01fbah                          ; 76 10
    38623873    cmp AL, strict byte 005h                  ; 3c 05
    3863     je short 01fe5h                           ; 74 5a
     3874    je short 02008h                           ; 74 5a
    38643875    cmp AL, strict byte 004h                  ; 3c 04
    3865     je short 01f97h                           ; 74 08
    3866     jmp short 01ffeh                          ; eb 6d
     3876    je short 01fbah                           ; 74 08
     3877    jmp short 02021h                          ; eb 6d
    38673878    cmp AL, strict byte 002h                  ; 3c 02
    3868     je short 01fc0h                           ; 74 2b
    3869     jmp short 01ffeh                          ; eb 67
     3879    je short 01fe3h                           ; 74 2b
     3880    jmp short 02021h                          ; eb 67
    38703881    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    38713882    xor bh, bh                                ; 30 ff
     
    38843895    mov dx, ax                                ; 89 c2
    38853896    mov ax, di                                ; 89 f8
    3886     call 01ba1h                               ; e8 e3 fb
    3887     jmp short 01ffeh                          ; eb 3e
     3897    call 01bc4h                               ; e8 e3 fb
     3898    jmp short 02021h                          ; eb 3e
    38883899    mov al, byte [bp-010h]                    ; 8a 46 f0
    38893900    push ax                                   ; 50
     
    39003911    mov bx, ax                                ; 89 c3
    39013912    mov ax, di                                ; 89 f8
    3902     call 01c9ch                               ; e8 b9 fc
    3903     jmp short 01ffeh                          ; eb 19
     3913    call 01cbfh                               ; e8 b9 fc
     3914    jmp short 02021h                          ; eb 19
    39043915    mov al, byte [bp-016h]                    ; 8a 46 ea
    39053916    push ax                                   ; 50
     
    39113922    mov dx, ax                                ; 89 c2
    39123923    mov al, byte [bp-00ah]                    ; 8a 46 f6
    3913     call 01dd4h                               ; e8 d6 fd
     3924    call 01df7h                               ; e8 d6 fd
    39143925    inc byte [bp-006h]                        ; fe 46 fa
    3915     jmp near 01f62h                           ; e9 5e ff
     3926    jmp near 01f85h                           ; e9 5e ff
    39163927    lea sp, [bp-004h]                         ; 8d 66 fc
    39173928    pop di                                    ; 5f
     
    39193930    pop bp                                    ; 5d
    39203931    retn                                      ; c3
    3921 biosfn_write_char_only_:                     ; 0xc200b LB 0x196
     3932biosfn_write_char_only_:                     ; 0xc202e LB 0x196
    39223933    push bp                                   ; 55
    39233934    mov bp, sp                                ; 89 e5
     
    39313942    mov dx, strict word 00049h                ; ba 49 00
    39323943    mov ax, strict word 00040h                ; b8 40 00
    3933     call 03165h                               ; e8 3e 11
     3944    call 03188h                               ; e8 3e 11
    39343945    mov bl, al                                ; 88 c3
    39353946    xor bh, bh                                ; 30 ff
    39363947    mov ax, bx                                ; 89 d8
    3937     call 0313dh                               ; e8 0d 11
     3948    call 03160h                               ; e8 0d 11
    39383949    mov byte [bp-008h], al                    ; 88 46 f8
    39393950    mov byte [bp-00eh], al                    ; 88 46 f2
    39403951    cmp AL, strict byte 0ffh                  ; 3c ff
    3941     jne short 0203dh                          ; 75 03
    3942     jmp near 0219ah                           ; e9 5d 01
     3952    jne short 02060h                          ; 75 03
     3953    jmp near 021bdh                           ; e9 5d 01
    39433954    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    39443955    mov ax, bx                                ; 89 d8
    39453956    lea bx, [bp-01eh]                         ; 8d 5e e2
    39463957    lea dx, [bp-01ch]                         ; 8d 56 e4
    3947     call 00a8bh                               ; e8 40 ea
     3958    call 00a8bh                               ; e8 1d ea
    39483959    mov al, byte [bp-01eh]                    ; 8a 46 e2
    39493960    mov byte [bp-014h], al                    ; 88 46 ec
     
    39543965    mov dx, 00084h                            ; ba 84 00
    39553966    mov ax, strict word 00040h                ; b8 40 00
    3956     call 03165h                               ; e8 00 11
     3967    call 03188h                               ; e8 00 11
    39573968    mov bl, al                                ; 88 c3
    39583969    xor bh, bh                                ; 30 ff
     
    39613972    mov dx, strict word 0004ah                ; ba 4a 00
    39623973    mov ax, strict word 00040h                ; b8 40 00
    3963     call 03181h                               ; e8 0b 11
     3974    call 031a4h                               ; e8 0b 11
    39643975    mov cx, ax                                ; 89 c1
    39653976    mov word [bp-018h], ax                    ; 89 46 e8
     
    39683979    mov di, bx                                ; 89 df
    39693980    sal bx, 003h                              ; c1 e3 03
    3970     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    3971     jne short 020d3h                          ; 75 47
     3981    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     3982    jne short 020f6h                          ; 75 47
    39723983    mul word [bp-01ah]                        ; f7 66 e6
    39733984    add ax, ax                                ; 01 c0
     
    39883999    dec si                                    ; 4e
    39894000    cmp si, strict byte 0ffffh                ; 83 fe ff
    3990     je short 0203ah                           ; 74 85
     4001    je short 0205dh                           ; 74 85
    39914002    mov al, byte [bp-006h]                    ; 8a 46 fa
    39924003    xor ah, ah                                ; 30 e4
     
    39954006    mov bx, ax                                ; 89 c3
    39964007    sal bx, 003h                              ; c1 e3 03
    3997     mov ax, word [bx+04633h]                  ; 8b 87 33 46
     4008    mov ax, word [bx+04638h]                  ; 8b 87 38 46
    39984009    mov bx, dx                                ; 89 d3
    39994010    mov dx, cx                                ; 89 ca
    4000     call 03173h                               ; e8 a4 10
    4001     inc cx                                    ; 41
    4002     inc cx                                    ; 41
    4003     jmp short 020afh                          ; eb dc
    4004     mov al, byte [di+046afh]                  ; 8a 85 af 46
     4011    call 03196h                               ; e8 a4 10
     4012    inc cx                                    ; 41
     4013    inc cx                                    ; 41
     4014    jmp short 020d2h                          ; eb dc
     4015    mov al, byte [di+046b4h]                  ; 8a 85 b4 46
    40054016    xor ah, ah                                ; 30 e4
    40064017    mov di, ax                                ; 89 c7
    40074018    sal di, 006h                              ; c1 e7 06
    4008     mov al, byte [di+046c5h]                  ; 8a 85 c5 46
     4019    mov al, byte [di+046cah]                  ; 8a 85 ca 46
    40094020    mov byte [bp-012h], al                    ; 88 46 ee
    4010     mov al, byte [bx+04632h]                  ; 8a 87 32 46
     4021    mov al, byte [bx+04637h]                  ; 8a 87 37 46
    40114022    mov byte [bp-016h], al                    ; 88 46 ea
    40124023    dec si                                    ; 4e
    40134024    cmp si, strict byte 0ffffh                ; 83 fe ff
    4014     je short 0214ah                           ; 74 58
     4025    je short 0216dh                           ; 74 58
    40154026    mov al, byte [bp-014h]                    ; 8a 46 ec
    40164027    xor ah, ah                                ; 30 e4
    40174028    cmp ax, word [bp-018h]                    ; 3b 46 e8
    4018     jnc short 0214ah                          ; 73 4e
     4029    jnc short 0216dh                          ; 73 4e
    40194030    mov al, byte [bp-00eh]                    ; 8a 46 f2
    40204031    mov bx, ax                                ; 89 c3
    40214032    sal bx, 003h                              ; c1 e3 03
    4022     mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
     4033    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
    40234034    cmp bl, 003h                              ; 80 fb 03
    4024     jc short 0211ch                           ; 72 0f
    4025     jbe short 02123h                          ; 76 14
     4035    jc short 0213fh                           ; 72 0f
     4036    jbe short 02146h                          ; 76 14
    40264037    cmp bl, 005h                              ; 80 fb 05
    4027     je short 02173h                           ; 74 5f
     4038    je short 02196h                           ; 74 5f
    40284039    cmp bl, 004h                              ; 80 fb 04
    4029     je short 02123h                           ; 74 0a
    4030     jmp near 02194h                           ; e9 78 00
     4040    je short 02146h                           ; 74 0a
     4041    jmp near 021b7h                           ; e9 78 00
    40314042    cmp bl, 002h                              ; 80 fb 02
    4032     je short 0214ch                           ; 74 2b
    4033     jmp short 02194h                          ; eb 71
     4043    je short 0216fh                           ; 74 2b
     4044    jmp short 021b7h                          ; eb 71
    40344045    mov al, byte [bp-012h]                    ; 8a 46 ee
    40354046    xor ah, ah                                ; 30 e4
     
    40474058    mov bx, dx                                ; 89 d3
    40484059    mov dx, di                                ; 89 fa
    4049     call 01ba1h                               ; e8 59 fa
    4050     jmp short 02194h                          ; eb 4a
    4051     jmp short 0219ah                          ; eb 4e
     4060    call 01bc4h                               ; e8 59 fa
     4061    jmp short 021b7h                          ; eb 4a
     4062    jmp short 021bdh                          ; eb 4e
    40524063    mov al, byte [bp-016h]                    ; 8a 46 ea
    40534064    push ax                                   ; 50
     
    40654076    mov bx, ax                                ; 89 c3
    40664077    mov ax, di                                ; 89 f8
    4067     call 01c9ch                               ; e8 2b fb
    4068     jmp short 02194h                          ; eb 21
     4078    call 01cbfh                               ; e8 2b fb
     4079    jmp short 021b7h                          ; eb 21
    40694080    mov al, byte [bp-018h]                    ; 8a 46 e8
    40704081    push ax                                   ; 50
     
    40804091    mov bx, dx                                ; 89 d3
    40814092    mov dx, di                                ; 89 fa
    4082     call 01dd4h                               ; e8 40 fc
     4093    call 01df7h                               ; e8 40 fc
    40834094    inc byte [bp-014h]                        ; fe 46 ec
    4084     jmp near 020ech                           ; e9 52 ff
     4095    jmp near 0210fh                           ; e9 52 ff
    40854096    lea sp, [bp-004h]                         ; 8d 66 fc
    40864097    pop di                                    ; 5f
     
    40884099    pop bp                                    ; 5d
    40894100    retn                                      ; c3
    4090 biosfn_write_pixel_:                         ; 0xc21a1 LB 0x17b
     4101biosfn_write_pixel_:                         ; 0xc21c4 LB 0x17b
    40914102    push bp                                   ; 55
    40924103    mov bp, sp                                ; 89 e5
     
    40974108    mov dx, strict word 00049h                ; ba 49 00
    40984109    mov ax, strict word 00040h                ; b8 40 00
    4099     call 03165h                               ; e8 ae 0f
     4110    call 03188h                               ; e8 ae 0f
    41004111    mov bl, al                                ; 88 c3
    41014112    xor bh, bh                                ; 30 ff
    41024113    mov ax, bx                                ; 89 d8
    4103     call 0313dh                               ; e8 7d 0f
     4114    call 03160h                               ; e8 7d 0f
    41044115    mov byte [bp-004h], al                    ; 88 46 fc
    41054116    cmp AL, strict byte 0ffh                  ; 3c ff
    4106     je short 021edh                           ; 74 26
     4117    je short 02210h                           ; 74 26
    41074118    xor ah, ah                                ; 30 e4
    41084119    mov bx, ax                                ; 89 c3
    41094120    sal bx, 003h                              ; c1 e3 03
    4110     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    4111     je short 021edh                           ; 74 18
    4112     mov al, byte [bx+04631h]                  ; 8a 87 31 46
     4121    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     4122    je short 02210h                           ; 74 18
     4123    mov al, byte [bx+04636h]                  ; 8a 87 36 46
    41134124    cmp AL, strict byte 003h                  ; 3c 03
    4114     jc short 021e9h                           ; 72 0c
    4115     jbe short 021f3h                          ; 76 14
     4125    jc short 0220ch                           ; 72 0c
     4126    jbe short 02216h                          ; 76 14
    41164127    cmp AL, strict byte 005h                  ; 3c 05
    4117     je short 021f0h                           ; 74 0d
     4128    je short 02213h                           ; 74 0d
    41184129    cmp AL, strict byte 004h                  ; 3c 04
    4119     je short 021f3h                           ; 74 0c
    4120     jmp short 021edh                          ; eb 04
     4130    je short 02216h                           ; 74 0c
     4131    jmp short 02210h                          ; eb 04
    41214132    cmp AL, strict byte 002h                  ; 3c 02
    4122     je short 02260h                           ; 74 73
    4123     jmp near 022efh                           ; e9 ff 00
    4124     jmp near 022f5h                           ; e9 02 01
     4133    je short 02283h                           ; 74 73
     4134    jmp near 02312h                           ; e9 ff 00
     4135    jmp near 02318h                           ; e9 02 01
    41254136    mov dx, strict word 0004ah                ; ba 4a 00
    41264137    mov ax, strict word 00040h                ; b8 40 00
    4127     call 03181h                               ; e8 85 0f
     4138    call 031a4h                               ; e8 85 0f
    41284139    mov bx, ax                                ; 89 c3
    41294140    mov ax, cx                                ; 89 c8
     
    41484159    mov dx, word [bp-008h]                    ; 8b 56 f8
    41494160    mov ax, 0a000h                            ; b8 00 a0
    4150     call 03165h                               ; e8 31 0f
     4161    call 03188h                               ; e8 31 0f
    41514162    test byte [bp-006h], 080h                 ; f6 46 fa 80
    4152     je short 02241h                           ; 74 07
     4163    je short 02264h                           ; 74 07
    41534164    mov ax, 01803h                            ; b8 03 18
    41544165    mov dx, 003ceh                            ; ba ce 03
     
    41584169    mov dx, word [bp-008h]                    ; 8b 56 f8
    41594170    mov ax, 0a000h                            ; b8 00 a0
    4160     call 03173h                               ; e8 24 0f
     4171    call 03196h                               ; e8 24 0f
    41614172    mov ax, 0ff08h                            ; b8 08 ff
    41624173    mov dx, 003ceh                            ; ba ce 03
     
    41664177    mov ax, strict word 00003h                ; b8 03 00
    41674178    out DX, ax                                ; ef
    4168     jmp short 021edh                          ; eb 8d
     4179    jmp short 02210h                          ; eb 8d
    41694180    mov ax, cx                                ; 89 c8
    41704181    shr ax, 1                                 ; d1 e8
    41714182    imul ax, ax, strict byte 00050h           ; 6b c0 50
    4172     cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
    4173     jne short 02276h                          ; 75 08
     4183    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     4184    jne short 02299h                          ; 75 08
    41744185    mov bx, word [bp-00ah]                    ; 8b 5e f6
    41754186    shr bx, 002h                              ; c1 eb 02
    4176     jmp short 0227ch                          ; eb 06
     4187    jmp short 0229fh                          ; eb 06
    41774188    mov bx, word [bp-00ah]                    ; 8b 5e f6
    41784189    shr bx, 003h                              ; c1 eb 03
     
    41804191    mov word [bp-008h], bx                    ; 89 5e f8
    41814192    test cl, 001h                             ; f6 c1 01
    4182     je short 0228ah                           ; 74 04
     4193    je short 022adh                           ; 74 04
    41834194    add byte [bp-007h], 020h                  ; 80 46 f9 20
    41844195    mov dx, word [bp-008h]                    ; 8b 56 f8
    41854196    mov ax, 0b800h                            ; b8 00 b8
    4186     call 03165h                               ; e8 d2 0e
     4197    call 03188h                               ; e8 d2 0e
    41874198    mov bl, al                                ; 88 c3
    41884199    mov al, byte [bp-004h]                    ; 8a 46 fc
     
    41904201    mov si, ax                                ; 89 c6
    41914202    sal si, 003h                              ; c1 e6 03
    4192     cmp byte [si+04632h], 002h                ; 80 bc 32 46 02
    4193     jne short 022bfh                          ; 75 19
     4203    cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
     4204    jne short 022e2h                          ; 75 19
    41944205    mov al, byte [bp-00ah]                    ; 8a 46 f6
    41954206    and AL, strict byte 003h                  ; 24 03
     
    42024213    sal bh, CL                                ; d2 e7
    42034214    mov AL, strict byte 003h                  ; b0 03
    4204     jmp short 022d2h                          ; eb 13
     4215    jmp short 022f5h                          ; eb 13
    42054216    mov al, byte [bp-00ah]                    ; 8a 46 f6
    42064217    and AL, strict byte 007h                  ; 24 07
     
    42134224    sal al, CL                                ; d2 e0
    42144225    test byte [bp-006h], 080h                 ; f6 46 fa 80
    4215     je short 022deh                           ; 74 04
     4226    je short 02301h                           ; 74 04
    42164227    xor bl, bh                                ; 30 fb
    4217     jmp short 022e4h                          ; eb 06
     4228    jmp short 02307h                          ; eb 06
    42184229    not al                                    ; f6 d0
    42194230    and bl, al                                ; 20 c3
     
    42224233    mov dx, word [bp-008h]                    ; 8b 56 f8
    42234234    mov ax, 0b800h                            ; b8 00 b8
    4224     call 03173h                               ; e8 84 0e
     4235    call 03196h                               ; e8 84 0e
    42254236    lea sp, [bp-002h]                         ; 8d 66 fe
    42264237    pop si                                    ; 5e
     
    42294240    mov dx, strict word 0004ah                ; ba 4a 00
    42304241    mov ax, strict word 00040h                ; b8 40 00
    4231     call 03181h                               ; e8 83 0e
     4242    call 031a4h                               ; e8 83 0e
    42324243    mov bx, ax                                ; 89 c3
    42334244    sal bx, 003h                              ; c1 e3 03
     
    42414252    mov dx, word [bp-008h]                    ; 8b 56 f8
    42424253    mov ax, 0a000h                            ; b8 00 a0
    4243     jmp short 022ech                          ; eb d0
    4244 biosfn_write_teletype_:                      ; 0xc231c LB 0x26f
     4254    jmp short 0230fh                          ; eb d0
     4255biosfn_write_teletype_:                      ; 0xc233f LB 0x26f
    42454256    push bp                                   ; 55
    42464257    mov bp, sp                                ; 89 e5
     
    42534264    mov byte [bp-014h], cl                    ; 88 4e ec
    42544265    cmp dl, 0ffh                              ; 80 fa ff
    4255     jne short 02341h                          ; 75 0c
     4266    jne short 02364h                          ; 75 0c
    42564267    mov dx, strict word 00062h                ; ba 62 00
    42574268    mov ax, strict word 00040h                ; b8 40 00
    4258     call 03165h                               ; e8 27 0e
     4269    call 03188h                               ; e8 27 0e
    42594270    mov byte [bp-016h], al                    ; 88 46 ea
    42604271    mov dx, strict word 00049h                ; ba 49 00
    42614272    mov ax, strict word 00040h                ; b8 40 00
    4262     call 03165h                               ; e8 1b 0e
     4273    call 03188h                               ; e8 1b 0e
    42634274    mov bl, al                                ; 88 c3
    42644275    xor bh, bh                                ; 30 ff
    42654276    mov ax, bx                                ; 89 d8
    4266     call 0313dh                               ; e8 ea 0d
     4277    call 03160h                               ; e8 ea 0d
    42674278    mov byte [bp-008h], al                    ; 88 46 f8
    42684279    cmp AL, strict byte 0ffh                  ; 3c ff
    4269     je short 023c2h                           ; 74 68
     4280    je short 023e5h                           ; 74 68
    42704281    mov bl, byte [bp-016h]                    ; 8a 5e ea
    42714282    mov ax, bx                                ; 89 d8
    42724283    lea bx, [bp-01eh]                         ; 8d 5e e2
    42734284    lea dx, [bp-01ch]                         ; 8d 56 e4
    4274     call 00a8bh                               ; e8 23 e7
     4285    call 00a8bh                               ; e8 00 e7
    42754286    mov al, byte [bp-01eh]                    ; 8a 46 e2
    42764287    mov byte [bp-00ch], al                    ; 88 46 f4
     
    42814292    mov dx, 00084h                            ; ba 84 00
    42824293    mov ax, strict word 00040h                ; b8 40 00
    4283     call 03165h                               ; e8 e3 0d
     4294    call 03188h                               ; e8 e3 0d
    42844295    mov bl, al                                ; 88 c3
    42854296    xor bh, bh                                ; 30 ff
     
    42884299    mov dx, strict word 0004ah                ; ba 4a 00
    42894300    mov ax, strict word 00040h                ; b8 40 00
    4290     call 03181h                               ; e8 ee 0d
     4301    call 031a4h                               ; e8 ee 0d
    42914302    mov word [bp-018h], ax                    ; 89 46 e8
    42924303    mov al, byte [bp-00eh]                    ; 8a 46 f2
    42934304    cmp AL, strict byte 008h                  ; 3c 08
    4294     jc short 023a9h                           ; 72 0c
    4295     jbe short 023b0h                          ; 76 11
     4305    jc short 023cch                           ; 72 0c
     4306    jbe short 023d3h                          ; 76 11
    42964307    cmp AL, strict byte 00dh                  ; 3c 0d
    4297     je short 023bbh                           ; 74 18
     4308    je short 023deh                           ; 74 18
    42984309    cmp AL, strict byte 00ah                  ; 3c 0a
    4299     je short 023c5h                           ; 74 1e
    4300     jmp short 023c8h                          ; eb 1f
     4310    je short 023e8h                           ; 74 1e
     4311    jmp short 023ebh                          ; eb 1f
    43014312    cmp AL, strict byte 007h                  ; 3c 07
    4302     jne short 023c8h                          ; 75 1b
    4303     jmp near 024d0h                           ; e9 20 01
     4313    jne short 023ebh                          ; 75 1b
     4314    jmp near 024f3h                           ; e9 20 01
    43044315    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    4305     jbe short 023bfh                          ; 76 09
     4316    jbe short 023e2h                          ; 76 09
    43064317    dec byte [bp-00ch]                        ; fe 4e f4
    4307     jmp short 023bfh                          ; eb 04
     4318    jmp short 023e2h                          ; eb 04
    43084319    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    4309     jmp near 024d0h                           ; e9 0e 01
    4310     jmp near 02584h                           ; e9 bf 01
    4311     jmp near 024cdh                           ; e9 05 01
     4320    jmp near 024f3h                           ; e9 0e 01
     4321    jmp near 025a7h                           ; e9 bf 01
     4322    jmp near 024f0h                           ; e9 05 01
    43124323    mov bl, byte [bp-008h]                    ; 8a 5e f8
    43134324    xor bh, bh                                ; 30 ff
    43144325    mov si, bx                                ; 89 de
    43154326    sal si, 003h                              ; c1 e6 03
    4316     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
    4317     jne short 02427h                          ; 75 4e
     4327    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4328    jne short 0244ah                          ; 75 4e
    43184329    mov ax, word [bp-018h]                    ; 8b 46 e8
    43194330    mul word [bp-01ah]                        ; f7 66 e6
     
    43364347    add cx, ax                                ; 01 c1
    43374348    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    4338     mov ax, word [si+04633h]                  ; 8b 84 33 46
     4349    mov ax, word [si+04638h]                  ; 8b 84 38 46
    43394350    mov dx, cx                                ; 89 ca
    4340     call 03173h                               ; e8 63 0d
     4351    call 03196h                               ; e8 63 0d
    43414352    cmp byte [bp-014h], 003h                  ; 80 7e ec 03
    4342     jne short 02470h                          ; 75 5a
     4353    jne short 02493h                          ; 75 5a
    43434354    mov bl, byte [bp-010h]                    ; 8a 5e f0
    43444355    xor bh, bh                                ; 30 ff
    43454356    mov dx, cx                                ; 89 ca
    43464357    inc dx                                    ; 42
    4347     mov ax, word [si+04633h]                  ; 8b 84 33 46
    4348     call 03173h                               ; e8 4e 0d
    4349     jmp short 02470h                          ; eb 49
    4350     mov bl, byte [bx+046afh]                  ; 8a 9f af 46
     4358    mov ax, word [si+04638h]                  ; 8b 84 38 46
     4359    call 03196h                               ; e8 4e 0d
     4360    jmp short 02493h                          ; eb 49
     4361    mov bl, byte [bx+046b4h]                  ; 8a 9f b4 46
    43514362    sal bx, 006h                              ; c1 e3 06
    4352     mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
    4353     mov ah, byte [si+04632h]                  ; 8a a4 32 46
    4354     mov cl, byte [si+04631h]                  ; 8a 8c 31 46
     4363    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
     4364    mov ah, byte [si+04637h]                  ; 8a a4 37 46
     4365    mov cl, byte [si+04636h]                  ; 8a 8c 36 46
    43554366    cmp cl, 003h                              ; 80 f9 03
    4356     jc short 0244dh                           ; 72 0e
    4357     jbe short 02454h                          ; 76 13
     4367    jc short 02470h                           ; 72 0e
     4368    jbe short 02477h                          ; 76 13
    43584369    cmp cl, 005h                              ; 80 f9 05
    4359     je short 0249ah                           ; 74 54
     4370    je short 024bdh                           ; 74 54
    43604371    cmp cl, 004h                              ; 80 f9 04
    4361     je short 02454h                           ; 74 09
    4362     jmp short 024bdh                          ; eb 70
     4372    je short 02477h                           ; 74 09
     4373    jmp short 024e0h                          ; eb 70
    43634374    cmp cl, 002h                              ; 80 f9 02
    4364     je short 02472h                           ; 74 20
    4365     jmp short 024bdh                          ; eb 69
     4375    je short 02495h                           ; 74 20
     4376    jmp short 024e0h                          ; eb 69
    43664377    xor ah, ah                                ; 30 e4
    43674378    push ax                                   ; 50
     
    43754386    xor dh, dh                                ; 30 f6
    43764387    mov al, byte [bp-00eh]                    ; 8a 46 f2
    4377     call 01ba1h                               ; e8 31 f7
    4378     jmp short 024bdh                          ; eb 4b
     4388    call 01bc4h                               ; e8 31 f7
     4389    jmp short 024e0h                          ; eb 4b
    43794390    mov al, ah                                ; 88 e0
    43804391    xor ah, ah                                ; 30 e4
     
    43934404    mov dx, ax                                ; 89 c2
    43944405    mov ax, di                                ; 89 f8
    4395     call 01c9ch                               ; e8 04 f8
    4396     jmp short 024bdh                          ; eb 23
     4406    call 01cbfh                               ; e8 04 f8
     4407    jmp short 024e0h                          ; eb 23
    43974408    mov al, byte [bp-018h]                    ; 8a 46 e8
    43984409    xor ah, ah                                ; 30 e4
     
    44094420    mov bx, ax                                ; 89 c3
    44104421    mov ax, si                                ; 89 f0
    4411     call 01dd4h                               ; e8 17 f9
     4422    call 01df7h                               ; e8 17 f9
    44124423    inc byte [bp-00ch]                        ; fe 46 f4
    44134424    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    44144425    xor bh, bh                                ; 30 ff
    44154426    cmp bx, word [bp-018h]                    ; 3b 5e e8
    4416     jne short 024d0h                          ; 75 06
     4427    jne short 024f3h                          ; 75 06
    44174428    mov byte [bp-00ch], bh                    ; 88 7e f4
    44184429    inc byte [bp-006h]                        ; fe 46 fa
     
    44214432    mov ax, word [bp-01ah]                    ; 8b 46 e6
    44224433    cmp bx, ax                                ; 39 c3
    4423     jne short 02547h                          ; 75 6b
     4434    jne short 0256ah                          ; 75 6b
    44244435    mov bl, byte [bp-008h]                    ; 8a 5e f8
    44254436    xor bh, ah                                ; 30 e7
     
    44344445    ; dec al                                    ; fe c8
    44354446    mov byte [bp-00ah], al                    ; 88 46 f6
    4436     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
    4437     jne short 02549h                          ; 75 4c
     4447    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4448    jne short 0256ch                          ; 75 4c
    44384449    mov ax, word [bp-018h]                    ; 8b 46 e8
    44394450    mul word [bp-01ah]                        ; f7 66 e6
     
    44554466    add dx, ax                                ; 01 c2
    44564467    inc dx                                    ; 42
    4457     mov ax, word [si+04633h]                  ; 8b 84 33 46
    4458     call 03165h                               ; e8 36 0c
     4468    mov ax, word [si+04638h]                  ; 8b 84 38 46
     4469    call 03188h                               ; e8 36 0c
    44594470    push strict byte 00001h                   ; 6a 01
    44604471    mov bl, byte [bp-016h]                    ; 8a 5e ea
     
    44684479    xor cx, cx                                ; 31 c9
    44694480    xor bl, al                                ; 30 c3
    4470     jmp short 0255eh                          ; eb 17
    4471     jmp short 02567h                          ; eb 1e
     4481    jmp short 02581h                          ; eb 17
     4482    jmp short 0258ah                          ; eb 1e
    44724483    push strict byte 00001h                   ; 6a 01
    44734484    mov bl, byte [bp-016h]                    ; 8a 5e ea
     
    44824493    xor dx, dx                                ; 31 d2
    44834494    mov ax, strict word 00001h                ; b8 01 00
    4484     call 01647h                               ; e8 e3 f0
     4495    call 0166ah                               ; e8 e3 f0
    44854496    dec byte [bp-006h]                        ; fe 4e fa
    44864497    mov bl, byte [bp-006h]                    ; 8a 5e fa
     
    44934504    mov bl, byte [bp-016h]                    ; 8a 5e ea
    44944505    mov ax, bx                                ; 89 d8
    4495     call 00e79h                               ; e8 f5 e8
     4506    call 00e79h                               ; e8 d2 e8
    44964507    lea sp, [bp-004h]                         ; 8d 66 fc
    44974508    pop di                                    ; 5f
     
    44994510    pop bp                                    ; 5d
    45004511    retn                                      ; c3
    4501 get_font_access_:                            ; 0xc258b LB 0x2c
     4512get_font_access_:                            ; 0xc25ae LB 0x2c
    45024513    push bp                                   ; 55
    45034514    mov bp, sp                                ; 89 e5
     
    45234534    pop bp                                    ; 5d
    45244535    retn                                      ; c3
    4525 release_font_access_:                        ; 0xc25b7 LB 0x3c
     4536release_font_access_:                        ; 0xc25da LB 0x3c
    45264537    push bp                                   ; 55
    45274538    mov bp, sp                                ; 89 e5
     
    45554566    pop bp                                    ; 5d
    45564567    retn                                      ; c3
    4557 set_scan_lines_:                             ; 0xc25f3 LB 0xc2
     4568set_scan_lines_:                             ; 0xc2616 LB 0xc2
    45584569    push bp                                   ; 55
    45594570    mov bp, sp                                ; 89 e5
     
    45664577    mov dx, strict word 00063h                ; ba 63 00
    45674578    mov ax, strict word 00040h                ; b8 40 00
    4568     call 03181h                               ; e8 7b 0b
     4579    call 031a4h                               ; e8 7b 0b
    45694580    mov dx, ax                                ; 89 c2
    45704581    mov si, ax                                ; 89 c6
     
    45834594    out DX, AL                                ; ee
    45844595    cmp bl, 008h                              ; 80 fb 08
    4585     jne short 0262ah                          ; 75 08
     4596    jne short 0264dh                          ; 75 08
    45864597    mov dx, strict word 00007h                ; ba 07 00
    45874598    mov ax, strict word 00006h                ; b8 06 00
    4588     jmp short 02637h                          ; eb 0d
     4599    jmp short 0265ah                          ; eb 0d
    45894600    mov dl, bl                                ; 88 da
    45904601    sub dl, 003h                              ; 80 ea 03
     
    45934604    sub AL, strict byte 004h                  ; 2c 04
    45944605    xor ah, ah                                ; 30 e4
    4595     call 00dcbh                               ; e8 91 e7
     4606    call 00dcbh                               ; e8 6e e7
    45964607    mov cl, bl                                ; 88 d9
    45974608    xor ch, ch                                ; 30 ed
     
    45994610    mov dx, 00085h                            ; ba 85 00
    46004611    mov ax, strict word 00040h                ; b8 40 00
    4601     call 0318fh                               ; e8 46 0b
     4612    call 031b2h                               ; e8 46 0b
    46024613    mov AL, strict byte 012h                  ; b0 12
    46034614    mov dx, si                                ; 89 f2
     
    46354646    mov dx, 00084h                            ; ba 84 00
    46364647    mov ax, strict word 00040h                ; b8 40 00
    4637     call 03173h                               ; e8 e6 0a
     4648    call 03196h                               ; e8 e6 0a
    46384649    mov dx, strict word 0004ah                ; ba 4a 00
    46394650    mov ax, strict word 00040h                ; b8 40 00
    4640     call 03181h                               ; e8 eb 0a
     4651    call 031a4h                               ; e8 eb 0a
    46414652    mov dx, ax                                ; 89 c2
    46424653    mov al, cl                                ; 88 c8
     
    46474658    mov dx, strict word 0004ch                ; ba 4c 00
    46484659    mov ax, strict word 00040h                ; b8 40 00
    4649     call 0318fh                               ; e8 e4 0a
     4660    call 031b2h                               ; e8 e4 0a
    46504661    lea sp, [bp-00ah]                         ; 8d 66 f6
    46514662    pop di                                    ; 5f
     
    46564667    pop bp                                    ; 5d
    46574668    retn                                      ; c3
    4658 biosfn_load_text_user_pat_:                  ; 0xc26b5 LB 0x80
     4669biosfn_load_text_user_pat_:                  ; 0xc26d8 LB 0x80
    46594670    push bp                                   ; 55
    46604671    mov bp, sp                                ; 89 e5
     
    46664677    mov word [bp-00ah], bx                    ; 89 5e f6
    46674678    mov word [bp-00eh], cx                    ; 89 4e f2
    4668     call 0258bh                               ; e8 bf fe
     4679    call 025aeh                               ; e8 bf fe
    46694680    mov al, byte [bp+006h]                    ; 8a 46 06
    46704681    and AL, strict byte 003h                  ; 24 03
     
    46794690    xor bx, bx                                ; 31 db
    46804691    cmp bx, word [bp-00eh]                    ; 3b 5e f2
    4681     jnc short 0271bh                          ; 73 2f
     4692    jnc short 0273eh                          ; 73 2f
    46824693    mov cl, byte [bp+008h]                    ; 8a 4e 08
    46834694    xor ch, ch                                ; 30 ed
     
    46954706    mov es, ax                                ; 8e c0
    46964707    cld                                       ; fc
    4697     jcxz 02718h                               ; e3 06
     4708    jcxz 0273bh                               ; e3 06
    46984709    push DS                                   ; 1e
    46994710    mov ds, dx                                ; 8e da
     
    47014712    pop DS                                    ; 1f
    47024713    inc bx                                    ; 43
    4703     jmp short 026e7h                          ; eb cc
    4704     call 025b7h                               ; e8 99 fe
     4714    jmp short 0270ah                          ; eb cc
     4715    call 025dah                               ; e8 99 fe
    47054716    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
    4706     jc short 0272ch                           ; 72 08
     4717    jc short 0274fh                           ; 72 08
    47074718    mov al, byte [bp+008h]                    ; 8a 46 08
    47084719    xor ah, ah                                ; 30 e4
    4709     call 025f3h                               ; e8 c7 fe
     4720    call 02616h                               ; e8 c7 fe
    47104721    lea sp, [bp-004h]                         ; 8d 66 fc
    47114722    pop di                                    ; 5f
     
    47134724    pop bp                                    ; 5d
    47144725    retn 00006h                               ; c2 06 00
    4715 biosfn_load_text_8_14_pat_:                  ; 0xc2735 LB 0x6e
     4726biosfn_load_text_8_14_pat_:                  ; 0xc2758 LB 0x6e
    47164727    push bp                                   ; 55
    47174728    mov bp, sp                                ; 89 e5
     
    47234734    push ax                                   ; 50
    47244735    mov byte [bp-00ah], al                    ; 88 46 f6
    4725     call 0258bh                               ; e8 47 fe
     4736    call 025aeh                               ; e8 47 fe
    47264737    mov al, dl                                ; 88 d0
    47274738    and AL, strict byte 003h                  ; 24 03
     
    47354746    mov word [bp-00ch], bx                    ; 89 5e f4
    47364747    xor bx, bx                                ; 31 db
    4737     jmp short 02765h                          ; eb 06
     4748    jmp short 02788h                          ; eb 06
    47384749    cmp bx, 00100h                            ; 81 fb 00 01
    4739     jnc short 0278bh                          ; 73 26
     4750    jnc short 027aeh                          ; 73 26
    47404751    imul si, bx, strict byte 0000eh           ; 6b f3 0e
    47414752    mov di, bx                                ; 89 df
    47424753    sal di, 005h                              ; c1 e7 05
    47434754    add di, word [bp-00ch]                    ; 03 7e f4
    4744     add si, 05bedh                            ; 81 c6 ed 5b
     4755    add si, 05bf2h                            ; 81 c6 f2 5b
    47454756    mov cx, strict word 0000eh                ; b9 0e 00
    47464757    mov dx, 0c000h                            ; ba 00 c0
     
    47484759    mov es, ax                                ; 8e c0
    47494760    cld                                       ; fc
    4750     jcxz 02788h                               ; e3 06
     4761    jcxz 027abh                               ; e3 06
    47514762    push DS                                   ; 1e
    47524763    mov ds, dx                                ; 8e da
     
    47544765    pop DS                                    ; 1f
    47554766    inc bx                                    ; 43
    4756     jmp short 0275fh                          ; eb d4
    4757     call 025b7h                               ; e8 29 fe
     4767    jmp short 02782h                          ; eb d4
     4768    call 025dah                               ; e8 29 fe
    47584769    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4759     jc short 0279ah                           ; 72 06
     4770    jc short 027bdh                           ; 72 06
    47604771    mov ax, strict word 0000eh                ; b8 0e 00
    4761     call 025f3h                               ; e8 59 fe
     4772    call 02616h                               ; e8 59 fe
    47624773    lea sp, [bp-008h]                         ; 8d 66 f8
    47634774    pop di                                    ; 5f
     
    47674778    pop bp                                    ; 5d
    47684779    retn                                      ; c3
    4769 biosfn_load_text_8_8_pat_:                   ; 0xc27a3 LB 0x70
     4780biosfn_load_text_8_8_pat_:                   ; 0xc27c6 LB 0x70
    47704781    push bp                                   ; 55
    47714782    mov bp, sp                                ; 89 e5
     
    47774788    push ax                                   ; 50
    47784789    mov byte [bp-00ah], al                    ; 88 46 f6
    4779     call 0258bh                               ; e8 d9 fd
     4790    call 025aeh                               ; e8 d9 fd
    47804791    mov al, dl                                ; 88 d0
    47814792    and AL, strict byte 003h                  ; 24 03
     
    47894800    mov word [bp-00ch], bx                    ; 89 5e f4
    47904801    xor bx, bx                                ; 31 db
    4791     jmp short 027d3h                          ; eb 06
     4802    jmp short 027f6h                          ; eb 06
    47924803    cmp bx, 00100h                            ; 81 fb 00 01
    4793     jnc short 027fbh                          ; 73 28
     4804    jnc short 0281eh                          ; 73 28
    47944805    mov si, bx                                ; 89 de
    47954806    sal si, 003h                              ; c1 e6 03
     
    47974808    sal di, 005h                              ; c1 e7 05
    47984809    add di, word [bp-00ch]                    ; 03 7e f4
    4799     add si, 053edh                            ; 81 c6 ed 53
     4810    add si, 053f2h                            ; 81 c6 f2 53
    48004811    mov cx, strict word 00008h                ; b9 08 00
    48014812    mov dx, 0c000h                            ; ba 00 c0
     
    48034814    mov es, ax                                ; 8e c0
    48044815    cld                                       ; fc
    4805     jcxz 027f8h                               ; e3 06
     4816    jcxz 0281bh                               ; e3 06
    48064817    push DS                                   ; 1e
    48074818    mov ds, dx                                ; 8e da
     
    48094820    pop DS                                    ; 1f
    48104821    inc bx                                    ; 43
    4811     jmp short 027cdh                          ; eb d2
    4812     call 025b7h                               ; e8 b9 fd
     4822    jmp short 027f0h                          ; eb d2
     4823    call 025dah                               ; e8 b9 fd
    48134824    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4814     jc short 0280ah                           ; 72 06
     4825    jc short 0282dh                           ; 72 06
    48154826    mov ax, strict word 00008h                ; b8 08 00
    4816     call 025f3h                               ; e8 e9 fd
     4827    call 02616h                               ; e8 e9 fd
    48174828    lea sp, [bp-008h]                         ; 8d 66 f8
    48184829    pop di                                    ; 5f
     
    48224833    pop bp                                    ; 5d
    48234834    retn                                      ; c3
    4824 biosfn_load_text_8_16_pat_:                  ; 0xc2813 LB 0x70
     4835biosfn_load_text_8_16_pat_:                  ; 0xc2836 LB 0x70
    48254836    push bp                                   ; 55
    48264837    mov bp, sp                                ; 89 e5
     
    48324843    push ax                                   ; 50
    48334844    mov byte [bp-00ah], al                    ; 88 46 f6
    4834     call 0258bh                               ; e8 69 fd
     4845    call 025aeh                               ; e8 69 fd
    48354846    mov al, dl                                ; 88 d0
    48364847    and AL, strict byte 003h                  ; 24 03
     
    48444855    mov word [bp-00ch], bx                    ; 89 5e f4
    48454856    xor bx, bx                                ; 31 db
    4846     jmp short 02843h                          ; eb 06
     4857    jmp short 02866h                          ; eb 06
    48474858    cmp bx, 00100h                            ; 81 fb 00 01
    4848     jnc short 0286bh                          ; 73 28
     4859    jnc short 0288eh                          ; 73 28
    48494860    mov si, bx                                ; 89 de
    48504861    sal si, 004h                              ; c1 e6 04
     
    48524863    sal di, 005h                              ; c1 e7 05
    48534864    add di, word [bp-00ch]                    ; 03 7e f4
    4854     add si, 069edh                            ; 81 c6 ed 69
     4865    add si, 069f2h                            ; 81 c6 f2 69
    48554866    mov cx, strict word 00010h                ; b9 10 00
    48564867    mov dx, 0c000h                            ; ba 00 c0
     
    48584869    mov es, ax                                ; 8e c0
    48594870    cld                                       ; fc
    4860     jcxz 02868h                               ; e3 06
     4871    jcxz 0288bh                               ; e3 06
    48614872    push DS                                   ; 1e
    48624873    mov ds, dx                                ; 8e da
     
    48644875    pop DS                                    ; 1f
    48654876    inc bx                                    ; 43
    4866     jmp short 0283dh                          ; eb d2
    4867     call 025b7h                               ; e8 49 fd
     4877    jmp short 02860h                          ; eb d2
     4878    call 025dah                               ; e8 49 fd
    48684879    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4869     jc short 0287ah                           ; 72 06
     4880    jc short 0289dh                           ; 72 06
    48704881    mov ax, strict word 00010h                ; b8 10 00
    4871     call 025f3h                               ; e8 79 fd
     4882    call 02616h                               ; e8 79 fd
    48724883    lea sp, [bp-008h]                         ; 8d 66 f8
    48734884    pop di                                    ; 5f
     
    48774888    pop bp                                    ; 5d
    48784889    retn                                      ; c3
    4879 biosfn_load_gfx_8_8_chars_:                  ; 0xc2883 LB 0x5
     4890biosfn_load_gfx_8_8_chars_:                  ; 0xc28a6 LB 0x5
    48804891    push bp                                   ; 55
    48814892    mov bp, sp                                ; 89 e5
    48824893    pop bp                                    ; 5d
    48834894    retn                                      ; c3
    4884 biosfn_load_gfx_user_chars_:                 ; 0xc2888 LB 0x7
     4895biosfn_load_gfx_user_chars_:                 ; 0xc28ab LB 0x7
    48854896    push bp                                   ; 55
    48864897    mov bp, sp                                ; 89 e5
    48874898    pop bp                                    ; 5d
    48884899    retn 00002h                               ; c2 02 00
    4889 biosfn_load_gfx_8_14_chars_:                 ; 0xc288f LB 0x5
     4900biosfn_load_gfx_8_14_chars_:                 ; 0xc28b2 LB 0x5
    48904901    push bp                                   ; 55
    48914902    mov bp, sp                                ; 89 e5
    48924903    pop bp                                    ; 5d
    48934904    retn                                      ; c3
    4894 biosfn_load_gfx_8_8_dd_chars_:               ; 0xc2894 LB 0x5
     4905biosfn_load_gfx_8_8_dd_chars_:               ; 0xc28b7 LB 0x5
    48954906    push bp                                   ; 55
    48964907    mov bp, sp                                ; 89 e5
    48974908    pop bp                                    ; 5d
    48984909    retn                                      ; c3
    4899 biosfn_load_gfx_8_16_chars_:                 ; 0xc2899 LB 0x5
     4910biosfn_load_gfx_8_16_chars_:                 ; 0xc28bc LB 0x5
    49004911    push bp                                   ; 55
    49014912    mov bp, sp                                ; 89 e5
    49024913    pop bp                                    ; 5d
    49034914    retn                                      ; c3
    4904 biosfn_alternate_prtsc_:                     ; 0xc289e LB 0x5
     4915biosfn_alternate_prtsc_:                     ; 0xc28c1 LB 0x5
    49054916    push bp                                   ; 55
    49064917    mov bp, sp                                ; 89 e5
    49074918    pop bp                                    ; 5d
    49084919    retn                                      ; c3
    4909 biosfn_switch_video_interface_:              ; 0xc28a3 LB 0x5
     4920biosfn_switch_video_interface_:              ; 0xc28c6 LB 0x5
    49104921    push bp                                   ; 55
    49114922    mov bp, sp                                ; 89 e5
    49124923    pop bp                                    ; 5d
    49134924    retn                                      ; c3
    4914 biosfn_enable_video_refresh_control_:        ; 0xc28a8 LB 0x5
     4925biosfn_enable_video_refresh_control_:        ; 0xc28cb LB 0x5
    49154926    push bp                                   ; 55
    49164927    mov bp, sp                                ; 89 e5
    49174928    pop bp                                    ; 5d
    49184929    retn                                      ; c3
    4919 biosfn_write_string_:                        ; 0xc28ad LB 0xa2
     4930biosfn_write_string_:                        ; 0xc28d0 LB 0xa2
    49204931    push bp                                   ; 55
    49214932    mov bp, sp                                ; 89 e5
     
    49324943    lea bx, [bp-00eh]                         ; 8d 5e f2
    49334944    lea dx, [bp-00ch]                         ; 8d 56 f4
    4934     call 00a8bh                               ; e8 bb e1
     4945    call 00a8bh                               ; e8 98 e1
    49354946    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
    4936     jne short 028e7h                          ; 75 11
     4947    jne short 0290ah                          ; 75 11
    49374948    mov al, byte [bp-00eh]                    ; 8a 46 f2
    49384949    mov byte [bp+006h], al                    ; 88 46 06
     
    49484959    add dx, ax                                ; 01 c2
    49494960    mov al, byte [bp-00ah]                    ; 8a 46 f6
    4950     call 00e79h                               ; e8 7d e5
     4961    call 00e79h                               ; e8 5a e5
    49514962    dec si                                    ; 4e
    49524963    cmp si, strict byte 0ffffh                ; 83 fe ff
    4953     je short 02935h                           ; 74 33
     4964    je short 02958h                           ; 74 33
    49544965    mov dx, di                                ; 89 fa
    49554966    inc di                                    ; 47
    49564967    mov ax, word [bp+008h]                    ; 8b 46 08
    4957     call 03165h                               ; e8 5a 08
     4968    call 03188h                               ; e8 5a 08
    49584969    mov cl, al                                ; 88 c1
    49594970    test byte [bp-006h], 002h                 ; f6 46 fa 02
    4960     je short 0291fh                           ; 74 0c
     4971    je short 02942h                           ; 74 0c
    49614972    mov dx, di                                ; 89 fa
    49624973    inc di                                    ; 47
    49634974    mov ax, word [bp+008h]                    ; 8b 46 08
    4964     call 03165h                               ; e8 49 08
     4975    call 03188h                               ; e8 49 08
    49654976    mov byte [bp-008h], al                    ; 88 46 f8
    49664977    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    49714982    mov al, cl                                ; 88 c8
    49724983    mov cx, strict word 00003h                ; b9 03 00
    4973     call 0231ch                               ; e8 e9 f9
    4974     jmp short 028fch                          ; eb c7
     4984    call 0233fh                               ; e8 e9 f9
     4985    jmp short 0291fh                          ; eb c7
    49754986    test byte [bp-006h], 001h                 ; f6 46 fa 01
    4976     jne short 02946h                          ; 75 0b
     4987    jne short 02969h                          ; 75 0b
    49774988    mov dx, word [bp-00eh]                    ; 8b 56 f2
    49784989    mov al, byte [bp-00ah]                    ; 8a 46 f6
    49794990    xor ah, ah                                ; 30 e4
    4980     call 00e79h                               ; e8 33 e5
     4991    call 00e79h                               ; e8 10 e5
    49814992    lea sp, [bp-004h]                         ; 8d 66 fc
    49824993    pop di                                    ; 5f
     
    49844995    pop bp                                    ; 5d
    49854996    retn 00008h                               ; c2 08 00
    4986 biosfn_read_state_info_:                     ; 0xc294f LB 0x102
     4997biosfn_read_state_info_:                     ; 0xc2972 LB 0x102
    49874998    push bp                                   ; 55
    49884999    mov bp, sp                                ; 89 e5
     
    49935004    push bx                                   ; 53
    49945005    mov cx, ds                                ; 8c d9
    4995     mov bx, 05383h                            ; bb 83 53
     5006    mov bx, 05388h                            ; bb 88 53
    49965007    mov dx, word [bp-00ah]                    ; 8b 56 f6
    49975008    mov ax, word [bp-008h]                    ; 8b 46 f8
    4998     call 031afh                               ; e8 4a 08
     5009    call 031d2h                               ; e8 4a 08
    49995010    mov di, word [bp-00ah]                    ; 8b 7e f6
    50005011    add di, strict byte 00004h                ; 83 c7 04
     
    50045015    mov es, [bp-008h]                         ; 8e 46 f8
    50055016    cld                                       ; fc
    5006     jcxz 02980h                               ; e3 06
     5017    jcxz 029a3h                               ; e3 06
    50075018    push DS                                   ; 1e
    50085019    mov ds, dx                                ; 8e da
     
    50165027    mov es, [bp-008h]                         ; 8e 46 f8
    50175028    cld                                       ; fc
    5018     jcxz 0299bh                               ; e3 06
     5029    jcxz 029beh                               ; e3 06
    50195030    push DS                                   ; 1e
    50205031    mov ds, dx                                ; 8e da
     
    50235034    mov dx, 0008ah                            ; ba 8a 00
    50245035    mov ax, strict word 00040h                ; b8 40 00
    5025     call 03165h                               ; e8 c1 07
     5036    call 03188h                               ; e8 c1 07
    50265037    mov bl, al                                ; 88 c3
    50275038    xor bh, bh                                ; 30 ff
     
    50295040    add dx, strict byte 00025h                ; 83 c2 25
    50305041    mov ax, word [bp-008h]                    ; 8b 46 f8
    5031     call 03173h                               ; e8 bf 07
     5042    call 03196h                               ; e8 bf 07
    50325043    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50335044    add dx, strict byte 00026h                ; 83 c2 26
    50345045    xor bx, bx                                ; 31 db
    50355046    mov ax, word [bp-008h]                    ; 8b 46 f8
    5036     call 03173h                               ; e8 b1 07
     5047    call 03196h                               ; e8 b1 07
    50375048    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50385049    add dx, strict byte 00027h                ; 83 c2 27
    50395050    mov bx, strict word 00010h                ; bb 10 00
    50405051    mov ax, word [bp-008h]                    ; 8b 46 f8
    5041     call 03173h                               ; e8 a2 07
     5052    call 03196h                               ; e8 a2 07
    50425053    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50435054    add dx, strict byte 00028h                ; 83 c2 28
    50445055    xor bx, bx                                ; 31 db
    50455056    mov ax, word [bp-008h]                    ; 8b 46 f8
    5046     call 03173h                               ; e8 94 07
     5057    call 03196h                               ; e8 94 07
    50475058    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50485059    add dx, strict byte 00029h                ; 83 c2 29
    50495060    mov bx, strict word 00008h                ; bb 08 00
    50505061    mov ax, word [bp-008h]                    ; 8b 46 f8
    5051     call 03173h                               ; e8 85 07
     5062    call 03196h                               ; e8 85 07
    50525063    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50535064    add dx, strict byte 0002ah                ; 83 c2 2a
    50545065    mov bx, strict word 00002h                ; bb 02 00
    50555066    mov ax, word [bp-008h]                    ; 8b 46 f8
    5056     call 03173h                               ; e8 76 07
     5067    call 03196h                               ; e8 76 07
    50575068    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50585069    add dx, strict byte 0002bh                ; 83 c2 2b
    50595070    xor bx, bx                                ; 31 db
    50605071    mov ax, word [bp-008h]                    ; 8b 46 f8
    5061     call 03173h                               ; e8 68 07
     5072    call 03196h                               ; e8 68 07
    50625073    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50635074    add dx, strict byte 0002ch                ; 83 c2 2c
    50645075    xor bx, bx                                ; 31 db
    50655076    mov ax, word [bp-008h]                    ; 8b 46 f8
    5066     call 03173h                               ; e8 5a 07
     5077    call 03196h                               ; e8 5a 07
    50675078    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50685079    add dx, strict byte 00031h                ; 83 c2 31
    50695080    mov bx, strict word 00003h                ; bb 03 00
    50705081    mov ax, word [bp-008h]                    ; 8b 46 f8
    5071     call 03173h                               ; e8 4b 07
     5082    call 03196h                               ; e8 4b 07
    50725083    mov dx, word [bp-00ah]                    ; 8b 56 f6
    50735084    add dx, strict byte 00032h                ; 83 c2 32
    50745085    xor bx, bx                                ; 31 db
    50755086    mov ax, word [bp-008h]                    ; 8b 46 f8
    5076     call 03173h                               ; e8 3d 07
     5087    call 03196h                               ; e8 3d 07
    50775088    mov di, word [bp-00ah]                    ; 8b 7e f6
    50785089    add di, strict byte 00033h                ; 83 c7 33
     
    50815092    mov es, [bp-008h]                         ; 8e 46 f8
    50825093    cld                                       ; fc
    5083     jcxz 02a49h                               ; e3 02
     5094    jcxz 02a6ch                               ; e3 02
    50845095    rep stosb                                 ; f3 aa
    50855096    lea sp, [bp-006h]                         ; 8d 66 fa
     
    50895100    pop bp                                    ; 5d
    50905101    retn                                      ; c3
    5091 biosfn_read_video_state_size2_:              ; 0xc2a51 LB 0x23
     5102biosfn_read_video_state_size2_:              ; 0xc2a74 LB 0x23
    50925103    push dx                                   ; 52
    50935104    push bp                                   ; 55
     
    50965107    xor ax, ax                                ; 31 c0
    50975108    test dl, 001h                             ; f6 c2 01
    5098     je short 02a61h                           ; 74 03
     5109    je short 02a84h                           ; 74 03
    50995110    mov ax, strict word 00046h                ; b8 46 00
    51005111    test dl, 002h                             ; f6 c2 02
    5101     je short 02a69h                           ; 74 03
     5112    je short 02a8ch                           ; 74 03
    51025113    add ax, strict word 0002ah                ; 05 2a 00
    51035114    test dl, 004h                             ; f6 c2 04
    5104     je short 02a71h                           ; 74 03
     5115    je short 02a94h                           ; 74 03
    51055116    add ax, 00304h                            ; 05 04 03
    51065117    pop bp                                    ; 5d
    51075118    pop dx                                    ; 5a
    51085119    retn                                      ; c3
    5109 vga_get_video_state_size_:                   ; 0xc2a74 LB 0x12
     5120vga_get_video_state_size_:                   ; 0xc2a97 LB 0x12
    51105121    push bp                                   ; 55
    51115122    mov bp, sp                                ; 89 e5
    51125123    push bx                                   ; 53
    51135124    mov bx, dx                                ; 89 d3
    5114     call 02a51h                               ; e8 d4 ff
     5125    call 02a74h                               ; e8 d4 ff
    51155126    mov word [ss:bx], ax                      ; 36 89 07
    51165127    lea sp, [bp-002h]                         ; 8d 66 fe
     
    51185129    pop bp                                    ; 5d
    51195130    retn                                      ; c3
    5120 biosfn_save_video_state_:                    ; 0xc2a86 LB 0x381
     5131biosfn_save_video_state_:                    ; 0xc2aa9 LB 0x381
    51215132    push bp                                   ; 55
    51225133    mov bp, sp                                ; 89 e5
     
    51315142    mov dx, strict word 00063h                ; ba 63 00
    51325143    mov ax, strict word 00040h                ; b8 40 00
    5133     call 03181h                               ; e8 e5 06
     5144    call 031a4h                               ; e8 e5 06
    51345145    mov di, ax                                ; 89 c7
    51355146    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    5136     je short 02b12h                           ; 74 6e
     5147    je short 02b35h                           ; 74 6e
    51375148    mov dx, 003c4h                            ; ba c4 03
    51385149    in AL, DX                                 ; ec
     
    51435154    mov dx, cx                                ; 89 ca
    51445155    mov ax, si                                ; 89 f0
    5145     call 03173h                               ; e8 be 06
     5156    call 03196h                               ; e8 be 06
    51465157    inc cx                                    ; 41
    51475158    mov dx, di                                ; 89 fa
     
    51535164    mov dx, cx                                ; 89 ca
    51545165    mov ax, si                                ; 89 f0
    5155     call 03173h                               ; e8 ad 06
     5166    call 03196h                               ; e8 ad 06
    51565167    inc cx                                    ; 41
    51575168    mov dx, 003ceh                            ; ba ce 03
     
    51635174    mov dx, cx                                ; 89 ca
    51645175    mov ax, si                                ; 89 f0
    5165     call 03173h                               ; e8 9b 06
     5176    call 03196h                               ; e8 9b 06
    51665177    inc cx                                    ; 41
    51675178    mov dx, 003dah                            ; ba da 03
     
    51795190    mov dx, cx                                ; 89 ca
    51805191    mov ax, si                                ; 89 f0
    5181     call 03173h                               ; e8 7d 06
     5192    call 03196h                               ; e8 7d 06
    51825193    inc cx                                    ; 41
    51835194    mov dx, 003cah                            ; ba ca 03
     
    51895200    mov dx, cx                                ; 89 ca
    51905201    mov ax, si                                ; 89 f0
    5191     call 03173h                               ; e8 6b 06
     5202    call 03196h                               ; e8 6b 06
    51925203    mov ax, strict word 00001h                ; b8 01 00
    51935204    mov word [bp-00ah], ax                    ; 89 46 f6
    51945205    add cx, ax                                ; 01 c1
    5195     jmp short 02b1bh                          ; eb 09
    5196     jmp near 02c16h                           ; e9 01 01
     5206    jmp short 02b3eh                          ; eb 09
     5207    jmp near 02c39h                           ; e9 01 01
    51975208    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
    5198     jnbe short 02b39h                         ; 77 1e
     5209    jnbe short 02b5ch                         ; 77 1e
    51995210    mov al, byte [bp-00ah]                    ; 8a 46 f6
    52005211    mov dx, 003c4h                            ; ba c4 03
     
    52085219    mov dx, cx                                ; 89 ca
    52095220    mov ax, si                                ; 89 f0
    5210     call 03173h                               ; e8 40 06
     5221    call 03196h                               ; e8 40 06
    52115222    inc cx                                    ; 41
    52125223    inc word [bp-00ah]                        ; ff 46 f6
    5213     jmp short 02b15h                          ; eb dc
     5224    jmp short 02b38h                          ; eb dc
    52145225    xor al, al                                ; 30 c0
    52155226    mov dx, 003c4h                            ; ba c4 03
     
    52235234    mov dx, cx                                ; 89 ca
    52245235    mov ax, si                                ; 89 f0
    5225     call 03173h                               ; e8 23 06
     5236    call 03196h                               ; e8 23 06
    52265237    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    52275238    inc cx                                    ; 41
    5228     jmp short 02b5eh                          ; eb 06
     5239    jmp short 02b81h                          ; eb 06
    52295240    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
    5230     jnbe short 02b7bh                         ; 77 1d
     5241    jnbe short 02b9eh                         ; 77 1d
    52315242    mov al, byte [bp-00ah]                    ; 8a 46 f6
    52325243    mov dx, di                                ; 89 fa
     
    52405251    mov dx, cx                                ; 89 ca
    52415252    mov ax, si                                ; 89 f0
    5242     call 03173h                               ; e8 fe 05
     5253    call 03196h                               ; e8 fe 05
    52435254    inc cx                                    ; 41
    52445255    inc word [bp-00ah]                        ; ff 46 f6
    5245     jmp short 02b58h                          ; eb dd
     5256    jmp short 02b7bh                          ; eb dd
    52465257    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5247     jmp short 02b88h                          ; eb 06
     5258    jmp short 02babh                          ; eb 06
    52485259    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
    5249     jnbe short 02bb2h                         ; 77 2a
     5260    jnbe short 02bd5h                         ; 77 2a
    52505261    mov dx, 003dah                            ; ba da 03
    52515262    in AL, DX                                 ; ec
     
    52655276    mov dx, cx                                ; 89 ca
    52665277    mov ax, si                                ; 89 f0
    5267     call 03173h                               ; e8 c7 05
     5278    call 03196h                               ; e8 c7 05
    52685279    inc cx                                    ; 41
    52695280    inc word [bp-00ah]                        ; ff 46 f6
    5270     jmp short 02b82h                          ; eb d0
     5281    jmp short 02ba5h                          ; eb d0
    52715282    mov dx, 003dah                            ; ba da 03
    52725283    in AL, DX                                 ; ec
     
    52745285    ; sub ah, ah                                ; 2a e4
    52755286    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5276     jmp short 02bc5h                          ; eb 06
     5287    jmp short 02be8h                          ; eb 06
    52775288    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5278     jnbe short 02be3h                         ; 77 1e
     5289    jnbe short 02c06h                         ; 77 1e
    52795290    mov al, byte [bp-00ah]                    ; 8a 46 f6
    52805291    mov dx, 003ceh                            ; ba ce 03
     
    52885299    mov dx, cx                                ; 89 ca
    52895300    mov ax, si                                ; 89 f0
    5290     call 03173h                               ; e8 96 05
     5301    call 03196h                               ; e8 96 05
    52915302    inc cx                                    ; 41
    52925303    inc word [bp-00ah]                        ; ff 46 f6
    5293     jmp short 02bbfh                          ; eb dc
     5304    jmp short 02be2h                          ; eb dc
    52945305    mov bx, di                                ; 89 fb
    52955306    mov dx, cx                                ; 89 ca
    52965307    mov ax, si                                ; 89 f0
    5297     call 0318fh                               ; e8 a3 05
     5308    call 031b2h                               ; e8 a3 05
    52985309    inc cx                                    ; 41
    52995310    inc cx                                    ; 41
     
    53015312    mov dx, cx                                ; 89 ca
    53025313    mov ax, si                                ; 89 f0
    5303     call 03173h                               ; e8 7c 05
     5314    call 03196h                               ; e8 7c 05
    53045315    inc cx                                    ; 41
    53055316    xor bx, bx                                ; 31 db
    53065317    mov dx, cx                                ; 89 ca
    53075318    mov ax, si                                ; 89 f0
    5308     call 03173h                               ; e8 72 05
     5319    call 03196h                               ; e8 72 05
    53095320    inc cx                                    ; 41
    53105321    xor bx, bx                                ; 31 db
    53115322    mov dx, cx                                ; 89 ca
    53125323    mov ax, si                                ; 89 f0
    5313     call 03173h                               ; e8 68 05
     5324    call 03196h                               ; e8 68 05
    53145325    inc cx                                    ; 41
    53155326    xor bx, bx                                ; 31 db
    53165327    mov dx, cx                                ; 89 ca
    53175328    mov ax, si                                ; 89 f0
    5318     call 03173h                               ; e8 5e 05
     5329    call 03196h                               ; e8 5e 05
    53195330    inc cx                                    ; 41
    53205331    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    5321     jne short 02c1fh                          ; 75 03
    5322     jmp near 02d8ch                           ; e9 6d 01
     5332    jne short 02c42h                          ; 75 03
     5333    jmp near 02dafh                           ; e9 6d 01
    53235334    mov dx, strict word 00049h                ; ba 49 00
    53245335    mov ax, strict word 00040h                ; b8 40 00
    5325     call 03165h                               ; e8 3d 05
     5336    call 03188h                               ; e8 3d 05
    53265337    xor ah, ah                                ; 30 e4
    53275338    mov bx, ax                                ; 89 c3
    53285339    mov dx, cx                                ; 89 ca
    53295340    mov ax, si                                ; 89 f0
    5330     call 03173h                               ; e8 40 05
     5341    call 03196h                               ; e8 40 05
    53315342    inc cx                                    ; 41
    53325343    mov dx, strict word 0004ah                ; ba 4a 00
    53335344    mov ax, strict word 00040h                ; b8 40 00
    5334     call 03181h                               ; e8 44 05
     5345    call 031a4h                               ; e8 44 05
    53355346    mov bx, ax                                ; 89 c3
    53365347    mov dx, cx                                ; 89 ca
    53375348    mov ax, si                                ; 89 f0
    5338     call 0318fh                               ; e8 49 05
     5349    call 031b2h                               ; e8 49 05
    53395350    inc cx                                    ; 41
    53405351    inc cx                                    ; 41
    53415352    mov dx, strict word 0004ch                ; ba 4c 00
    53425353    mov ax, strict word 00040h                ; b8 40 00
    5343     call 03181h                               ; e8 30 05
     5354    call 031a4h                               ; e8 30 05
    53445355    mov bx, ax                                ; 89 c3
    53455356    mov dx, cx                                ; 89 ca
    53465357    mov ax, si                                ; 89 f0
    5347     call 0318fh                               ; e8 35 05
     5358    call 031b2h                               ; e8 35 05
    53485359    inc cx                                    ; 41
    53495360    inc cx                                    ; 41
    53505361    mov dx, strict word 00063h                ; ba 63 00
    53515362    mov ax, strict word 00040h                ; b8 40 00
    5352     call 03181h                               ; e8 1c 05
     5363    call 031a4h                               ; e8 1c 05
    53535364    mov bx, ax                                ; 89 c3
    53545365    mov dx, cx                                ; 89 ca
    53555366    mov ax, si                                ; 89 f0
    5356     call 0318fh                               ; e8 21 05
     5367    call 031b2h                               ; e8 21 05
    53575368    inc cx                                    ; 41
    53585369    inc cx                                    ; 41
    53595370    mov dx, 00084h                            ; ba 84 00
    53605371    mov ax, strict word 00040h                ; b8 40 00
    5361     call 03165h                               ; e8 ec 04
     5372    call 03188h                               ; e8 ec 04
    53625373    xor ah, ah                                ; 30 e4
    53635374    mov bx, ax                                ; 89 c3
    53645375    mov dx, cx                                ; 89 ca
    53655376    mov ax, si                                ; 89 f0
    5366     call 03173h                               ; e8 ef 04
     5377    call 03196h                               ; e8 ef 04
    53675378    inc cx                                    ; 41
    53685379    mov dx, 00085h                            ; ba 85 00
    53695380    mov ax, strict word 00040h                ; b8 40 00
    5370     call 03181h                               ; e8 f3 04
     5381    call 031a4h                               ; e8 f3 04
    53715382    mov bx, ax                                ; 89 c3
    53725383    mov dx, cx                                ; 89 ca
    53735384    mov ax, si                                ; 89 f0
    5374     call 0318fh                               ; e8 f8 04
     5385    call 031b2h                               ; e8 f8 04
    53755386    inc cx                                    ; 41
    53765387    inc cx                                    ; 41
    53775388    mov dx, 00087h                            ; ba 87 00
    53785389    mov ax, strict word 00040h                ; b8 40 00
    5379     call 03165h                               ; e8 c3 04
     5390    call 03188h                               ; e8 c3 04
    53805391    xor ah, ah                                ; 30 e4
    53815392    mov bx, ax                                ; 89 c3
    53825393    mov dx, cx                                ; 89 ca
    53835394    mov ax, si                                ; 89 f0
    5384     call 03173h                               ; e8 c6 04
     5395    call 03196h                               ; e8 c6 04
    53855396    inc cx                                    ; 41
    53865397    mov dx, 00088h                            ; ba 88 00
    53875398    mov ax, strict word 00040h                ; b8 40 00
    5388     call 03165h                               ; e8 ae 04
     5399    call 03188h                               ; e8 ae 04
    53895400    mov bl, al                                ; 88 c3
    53905401    xor bh, bh                                ; 30 ff
    53915402    mov dx, cx                                ; 89 ca
    53925403    mov ax, si                                ; 89 f0
    5393     call 03173h                               ; e8 b1 04
     5404    call 03196h                               ; e8 b1 04
    53945405    inc cx                                    ; 41
    53955406    mov dx, 00089h                            ; ba 89 00
    53965407    mov ax, strict word 00040h                ; b8 40 00
    5397     call 03165h                               ; e8 99 04
     5408    call 03188h                               ; e8 99 04
    53985409    xor ah, ah                                ; 30 e4
    53995410    mov bx, ax                                ; 89 c3
    54005411    mov dx, cx                                ; 89 ca
    54015412    mov ax, si                                ; 89 f0
    5402     call 03173h                               ; e8 9c 04
     5413    call 03196h                               ; e8 9c 04
    54035414    inc cx                                    ; 41
    54045415    mov dx, strict word 00060h                ; ba 60 00
    54055416    mov ax, strict word 00040h                ; b8 40 00
    5406     call 03181h                               ; e8 a0 04
     5417    call 031a4h                               ; e8 a0 04
    54075418    mov bx, ax                                ; 89 c3
    54085419    mov dx, cx                                ; 89 ca
    54095420    mov ax, si                                ; 89 f0
    5410     call 0318fh                               ; e8 a5 04
     5421    call 031b2h                               ; e8 a5 04
    54115422    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    54125423    inc cx                                    ; 41
    54135424    inc cx                                    ; 41
    5414     jmp short 02cf9h                          ; eb 06
     5425    jmp short 02d1ch                          ; eb 06
    54155426    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5416     jnc short 02d17h                          ; 73 1e
     5427    jnc short 02d3ah                          ; 73 1e
    54175428    mov dx, word [bp-00ah]                    ; 8b 56 f6
    54185429    add dx, dx                                ; 01 d2
    54195430    add dx, strict byte 00050h                ; 83 c2 50
    54205431    mov ax, strict word 00040h                ; b8 40 00
    5421     call 03181h                               ; e8 7a 04
     5432    call 031a4h                               ; e8 7a 04
    54225433    mov bx, ax                                ; 89 c3
    54235434    mov dx, cx                                ; 89 ca
    54245435    mov ax, si                                ; 89 f0
    5425     call 0318fh                               ; e8 7f 04
     5436    call 031b2h                               ; e8 7f 04
    54265437    inc cx                                    ; 41
    54275438    inc cx                                    ; 41
    54285439    inc word [bp-00ah]                        ; ff 46 f6
    5429     jmp short 02cf3h                          ; eb dc
     5440    jmp short 02d16h                          ; eb dc
    54305441    mov dx, strict word 0004eh                ; ba 4e 00
    54315442    mov ax, strict word 00040h                ; b8 40 00
    5432     call 03181h                               ; e8 61 04
     5443    call 031a4h                               ; e8 61 04
    54335444    mov bx, ax                                ; 89 c3
    54345445    mov dx, cx                                ; 89 ca
    54355446    mov ax, si                                ; 89 f0
    5436     call 0318fh                               ; e8 66 04
     5447    call 031b2h                               ; e8 66 04
    54375448    inc cx                                    ; 41
    54385449    inc cx                                    ; 41
    54395450    mov dx, strict word 00062h                ; ba 62 00
    54405451    mov ax, strict word 00040h                ; b8 40 00
    5441     call 03165h                               ; e8 31 04
     5452    call 03188h                               ; e8 31 04
    54425453    xor ah, ah                                ; 30 e4
    54435454    mov bx, ax                                ; 89 c3
    54445455    mov dx, cx                                ; 89 ca
    54455456    mov ax, si                                ; 89 f0
    5446     call 03173h                               ; e8 34 04
     5457    call 03196h                               ; e8 34 04
    54475458    inc cx                                    ; 41
    54485459    mov dx, strict word 0007ch                ; ba 7c 00
    54495460    xor ax, ax                                ; 31 c0
    5450     call 03181h                               ; e8 39 04
     5461    call 031a4h                               ; e8 39 04
    54515462    mov bx, ax                                ; 89 c3
    54525463    mov dx, cx                                ; 89 ca
    54535464    mov ax, si                                ; 89 f0
    5454     call 0318fh                               ; e8 3e 04
     5465    call 031b2h                               ; e8 3e 04
    54555466    inc cx                                    ; 41
    54565467    inc cx                                    ; 41
    54575468    mov dx, strict word 0007eh                ; ba 7e 00
    54585469    xor ax, ax                                ; 31 c0
    5459     call 03181h                               ; e8 26 04
     5470    call 031a4h                               ; e8 26 04
    54605471    mov bx, ax                                ; 89 c3
    54615472    mov dx, cx                                ; 89 ca
    54625473    mov ax, si                                ; 89 f0
    5463     call 0318fh                               ; e8 2b 04
     5474    call 031b2h                               ; e8 2b 04
    54645475    inc cx                                    ; 41
    54655476    inc cx                                    ; 41
    54665477    mov dx, 0010ch                            ; ba 0c 01
    54675478    xor ax, ax                                ; 31 c0
    5468     call 03181h                               ; e8 13 04
     5479    call 031a4h                               ; e8 13 04
    54695480    mov bx, ax                                ; 89 c3
    54705481    mov dx, cx                                ; 89 ca
    54715482    mov ax, si                                ; 89 f0
    5472     call 0318fh                               ; e8 18 04
     5483    call 031b2h                               ; e8 18 04
    54735484    inc cx                                    ; 41
    54745485    inc cx                                    ; 41
    54755486    mov dx, 0010eh                            ; ba 0e 01
    54765487    xor ax, ax                                ; 31 c0
    5477     call 03181h                               ; e8 00 04
     5488    call 031a4h                               ; e8 00 04
    54785489    mov bx, ax                                ; 89 c3
    54795490    mov dx, cx                                ; 89 ca
    54805491    mov ax, si                                ; 89 f0
    5481     call 0318fh                               ; e8 05 04
     5492    call 031b2h                               ; e8 05 04
    54825493    inc cx                                    ; 41
    54835494    inc cx                                    ; 41
    54845495    test byte [bp-00ch], 004h                 ; f6 46 f4 04
    5485     je short 02dfdh                           ; 74 6b
     5496    je short 02e20h                           ; 74 6b
    54865497    mov dx, 003c7h                            ; ba c7 03
    54875498    in AL, DX                                 ; ec
     
    54925503    mov dx, cx                                ; 89 ca
    54935504    mov ax, si                                ; 89 f0
    5494     call 03173h                               ; e8 d0 03
     5505    call 03196h                               ; e8 d0 03
    54955506    inc cx                                    ; 41
    54965507    mov dx, 003c8h                            ; ba c8 03
     
    55025513    mov dx, cx                                ; 89 ca
    55035514    mov ax, si                                ; 89 f0
    5504     call 03173h                               ; e8 be 03
     5515    call 03196h                               ; e8 be 03
    55055516    inc cx                                    ; 41
    55065517    mov dx, 003c6h                            ; ba c6 03
     
    55125523    mov dx, cx                                ; 89 ca
    55135524    mov ax, si                                ; 89 f0
    5514     call 03173h                               ; e8 ac 03
     5525    call 03196h                               ; e8 ac 03
    55155526    inc cx                                    ; 41
    55165527    xor al, al                                ; 30 c0
     
    55195530    xor ah, ah                                ; 30 e4
    55205531    mov word [bp-00ah], ax                    ; 89 46 f6
    5521     jmp short 02ddch                          ; eb 07
     5532    jmp short 02dffh                          ; eb 07
    55225533    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
    5523     jnc short 02df3h                          ; 73 17
     5534    jnc short 02e16h                          ; 73 17
    55245535    mov dx, 003c9h                            ; ba c9 03
    55255536    in AL, DX                                 ; ec
     
    55305541    mov dx, cx                                ; 89 ca
    55315542    mov ax, si                                ; 89 f0
    5532     call 03173h                               ; e8 86 03
     5543    call 03196h                               ; e8 86 03
    55335544    inc cx                                    ; 41
    55345545    inc word [bp-00ah]                        ; ff 46 f6
    5535     jmp short 02dd5h                          ; eb e2
     5546    jmp short 02df8h                          ; eb e2
    55365547    xor bx, bx                                ; 31 db
    55375548    mov dx, cx                                ; 89 ca
    55385549    mov ax, si                                ; 89 f0
    5539     call 03173h                               ; e8 77 03
     5550    call 03196h                               ; e8 77 03
    55405551    inc cx                                    ; 41
    55415552    mov ax, cx                                ; 89 c8
     
    55465557    pop bp                                    ; 5d
    55475558    retn                                      ; c3
    5548 biosfn_restore_video_state_:                 ; 0xc2e07 LB 0x336
     5559biosfn_restore_video_state_:                 ; 0xc2e2a LB 0x336
    55495560    push bp                                   ; 55
    55505561    mov bp, sp                                ; 89 e5
     
    55575568    mov cx, bx                                ; 89 d9
    55585569    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    5559     je short 02e72h                           ; 74 57
     5570    je short 02e95h                           ; 74 57
    55605571    mov dx, 003dah                            ; ba da 03
    55615572    in AL, DX                                 ; ec
     
    55645575    lea dx, [bx+040h]                         ; 8d 57 40
    55655576    mov ax, si                                ; 89 f0
    5566     call 03181h                               ; e8 58 03
     5577    call 031a4h                               ; e8 58 03
    55675578    mov di, ax                                ; 89 c7
    55685579    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    55695580    lea cx, [bx+005h]                         ; 8d 4f 05
    5570     jmp short 02e3bh                          ; eb 06
     5581    jmp short 02e5eh                          ; eb 06
    55715582    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
    5572     jnbe short 02e53h                         ; 77 18
     5583    jnbe short 02e76h                         ; 77 18
    55735584    mov al, byte [bp-00ah]                    ; 8a 46 f6
    55745585    mov dx, 003c4h                            ; ba c4 03
     
    55765587    mov dx, cx                                ; 89 ca
    55775588    mov ax, si                                ; 89 f0
    5578     call 03165h                               ; e8 1c 03
     5589    call 03188h                               ; e8 1c 03
    55795590    mov dx, 003c5h                            ; ba c5 03
    55805591    out DX, AL                                ; ee
    55815592    inc cx                                    ; 41
    55825593    inc word [bp-00ah]                        ; ff 46 f6
    5583     jmp short 02e35h                          ; eb e2
     5594    jmp short 02e58h                          ; eb e2
    55845595    xor al, al                                ; 30 c0
    55855596    mov dx, 003c4h                            ; ba c4 03
     
    55875598    mov dx, cx                                ; 89 ca
    55885599    mov ax, si                                ; 89 f0
    5589     call 03165h                               ; e8 05 03
     5600    call 03188h                               ; e8 05 03
    55905601    mov dx, 003c5h                            ; ba c5 03
    55915602    out DX, AL                                ; ee
     
    55955606    out DX, ax                                ; ef
    55965607    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5597     jmp short 02e7bh                          ; eb 09
    5598     jmp near 02f68h                           ; e9 f3 00
     5608    jmp short 02e9eh                          ; eb 09
     5609    jmp near 02f8bh                           ; e9 f3 00
    55995610    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
    5600     jnbe short 02e98h                         ; 77 1d
     5611    jnbe short 02ebbh                         ; 77 1d
    56015612    cmp word [bp-00ah], strict byte 00011h    ; 83 7e f6 11
    5602     je short 02e92h                           ; 74 11
     5613    je short 02eb5h                           ; 74 11
    56035614    mov al, byte [bp-00ah]                    ; 8a 46 f6
    56045615    mov dx, di                                ; 89 fa
     
    56065617    mov dx, cx                                ; 89 ca
    56075618    mov ax, si                                ; 89 f0
    5608     call 03165h                               ; e8 d7 02
     5619    call 03188h                               ; e8 d7 02
    56095620    lea dx, [di+001h]                         ; 8d 55 01
    56105621    out DX, AL                                ; ee
    56115622    inc cx                                    ; 41
    56125623    inc word [bp-00ah]                        ; ff 46 f6
    5613     jmp short 02e75h                          ; eb dd
     5624    jmp short 02e98h                          ; eb dd
    56145625    mov dx, 003cch                            ; ba cc 03
    56155626    in AL, DX                                 ; ec
     
    56195630    mov word [bp-008h], ax                    ; 89 46 f8
    56205631    cmp di, 003d4h                            ; 81 ff d4 03
    5621     jne short 02eadh                          ; 75 04
     5632    jne short 02ed0h                          ; 75 04
    56225633    or byte [bp-008h], 001h                   ; 80 4e f8 01
    56235634    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    56305641    add dx, strict byte 0fff9h                ; 83 c2 f9
    56315642    mov ax, si                                ; 89 f0
    5632     call 03165h                               ; e8 a2 02
     5643    call 03188h                               ; e8 a2 02
    56335644    lea dx, [di+001h]                         ; 8d 55 01
    56345645    out DX, AL                                ; ee
    56355646    lea dx, [bx+003h]                         ; 8d 57 03
    56365647    mov ax, si                                ; 89 f0
    5637     call 03165h                               ; e8 96 02
     5648    call 03188h                               ; e8 96 02
    56385649    xor ah, ah                                ; 30 e4
    56395650    mov word [bp-00ch], ax                    ; 89 46 f4
     
    56435654    ; sub ah, ah                                ; 2a e4
    56445655    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5645     jmp short 02ee7h                          ; eb 06
     5656    jmp short 02f0ah                          ; eb 06
    56465657    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
    5647     jnbe short 02f05h                         ; 77 1e
     5658    jnbe short 02f28h                         ; 77 1e
    56485659    mov ax, word [bp-00ch]                    ; 8b 46 f4
    56495660    and ax, strict word 00020h                ; 25 20 00
     
    56535664    mov dx, cx                                ; 89 ca
    56545665    mov ax, si                                ; 89 f0
    5655     call 03165h                               ; e8 6a 02
     5666    call 03188h                               ; e8 6a 02
    56565667    mov dx, 003c0h                            ; ba c0 03
    56575668    out DX, AL                                ; ee
    56585669    inc cx                                    ; 41
    56595670    inc word [bp-00ah]                        ; ff 46 f6
    5660     jmp short 02ee1h                          ; eb dc
     5671    jmp short 02f04h                          ; eb dc
    56615672    mov al, byte [bp-00ch]                    ; 8a 46 f4
    56625673    mov dx, 003c0h                            ; ba c0 03
     
    56675678    ; sub ah, ah                                ; 2a e4
    56685679    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5669     jmp short 02f1fh                          ; eb 06
     5680    jmp short 02f42h                          ; eb 06
    56705681    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5671     jnbe short 02f37h                         ; 77 18
     5682    jnbe short 02f5ah                         ; 77 18
    56725683    mov al, byte [bp-00ah]                    ; 8a 46 f6
    56735684    mov dx, 003ceh                            ; ba ce 03
     
    56755686    mov dx, cx                                ; 89 ca
    56765687    mov ax, si                                ; 89 f0
    5677     call 03165h                               ; e8 38 02
     5688    call 03188h                               ; e8 38 02
    56785689    mov dx, 003cfh                            ; ba cf 03
    56795690    out DX, AL                                ; ee
    56805691    inc cx                                    ; 41
    56815692    inc word [bp-00ah]                        ; ff 46 f6
    5682     jmp short 02f19h                          ; eb e2
     5693    jmp short 02f3ch                          ; eb e2
    56835694    add cx, strict byte 00006h                ; 83 c1 06
    56845695    mov dx, bx                                ; 89 da
    56855696    mov ax, si                                ; 89 f0
    5686     call 03165h                               ; e8 24 02
     5697    call 03188h                               ; e8 24 02
    56875698    mov dx, 003c4h                            ; ba c4 03
    56885699    out DX, AL                                ; ee
     
    56905701    mov dx, bx                                ; 89 da
    56915702    mov ax, si                                ; 89 f0
    5692     call 03165h                               ; e8 18 02
     5703    call 03188h                               ; e8 18 02
    56935704    mov dx, di                                ; 89 fa
    56945705    out DX, AL                                ; ee
     
    56965707    mov dx, bx                                ; 89 da
    56975708    mov ax, si                                ; 89 f0
    5698     call 03165h                               ; e8 0d 02
     5709    call 03188h                               ; e8 0d 02
    56995710    mov dx, 003ceh                            ; ba ce 03
    57005711    out DX, AL                                ; ee
    57015712    lea dx, [bx+002h]                         ; 8d 57 02
    57025713    mov ax, si                                ; 89 f0
    5703     call 03165h                               ; e8 01 02
     5714    call 03188h                               ; e8 01 02
    57045715    lea dx, [di+006h]                         ; 8d 55 06
    57055716    out DX, AL                                ; ee
    57065717    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    5707     jne short 02f71h                          ; 75 03
    5708     jmp near 030e6h                           ; e9 75 01
     5718    jne short 02f94h                          ; 75 03
     5719    jmp near 03109h                           ; e9 75 01
    57095720    mov dx, cx                                ; 89 ca
    57105721    mov ax, si                                ; 89 f0
    5711     call 03165h                               ; e8 ed 01
     5722    call 03188h                               ; e8 ed 01
    57125723    xor ah, ah                                ; 30 e4
    57135724    mov bx, ax                                ; 89 c3
    57145725    mov dx, strict word 00049h                ; ba 49 00
    57155726    mov ax, strict word 00040h                ; b8 40 00
    5716     call 03173h                               ; e8 ee 01
     5727    call 03196h                               ; e8 ee 01
    57175728    inc cx                                    ; 41
    57185729    mov dx, cx                                ; 89 ca
    57195730    mov ax, si                                ; 89 f0
    5720     call 03181h                               ; e8 f4 01
     5731    call 031a4h                               ; e8 f4 01
    57215732    mov bx, ax                                ; 89 c3
    57225733    mov dx, strict word 0004ah                ; ba 4a 00
    57235734    mov ax, strict word 00040h                ; b8 40 00
    5724     call 0318fh                               ; e8 f7 01
     5735    call 031b2h                               ; e8 f7 01
    57255736    inc cx                                    ; 41
    57265737    inc cx                                    ; 41
    57275738    mov dx, cx                                ; 89 ca
    57285739    mov ax, si                                ; 89 f0
    5729     call 03181h                               ; e8 e0 01
     5740    call 031a4h                               ; e8 e0 01
    57305741    mov bx, ax                                ; 89 c3
    57315742    mov dx, strict word 0004ch                ; ba 4c 00
    57325743    mov ax, strict word 00040h                ; b8 40 00
    5733     call 0318fh                               ; e8 e3 01
     5744    call 031b2h                               ; e8 e3 01
    57345745    inc cx                                    ; 41
    57355746    inc cx                                    ; 41
    57365747    mov dx, cx                                ; 89 ca
    57375748    mov ax, si                                ; 89 f0
    5738     call 03181h                               ; e8 cc 01
     5749    call 031a4h                               ; e8 cc 01
    57395750    mov bx, ax                                ; 89 c3
    57405751    mov dx, strict word 00063h                ; ba 63 00
    57415752    mov ax, strict word 00040h                ; b8 40 00
    5742     call 0318fh                               ; e8 cf 01
     5753    call 031b2h                               ; e8 cf 01
    57435754    inc cx                                    ; 41
    57445755    inc cx                                    ; 41
    57455756    mov dx, cx                                ; 89 ca
    57465757    mov ax, si                                ; 89 f0
    5747     call 03165h                               ; e8 9c 01
     5758    call 03188h                               ; e8 9c 01
    57485759    xor ah, ah                                ; 30 e4
    57495760    mov bx, ax                                ; 89 c3
    57505761    mov dx, 00084h                            ; ba 84 00
    57515762    mov ax, strict word 00040h                ; b8 40 00
    5752     call 03173h                               ; e8 9d 01
     5763    call 03196h                               ; e8 9d 01
    57535764    inc cx                                    ; 41
    57545765    mov dx, cx                                ; 89 ca
    57555766    mov ax, si                                ; 89 f0
    5756     call 03181h                               ; e8 a3 01
     5767    call 031a4h                               ; e8 a3 01
    57575768    mov bx, ax                                ; 89 c3
    57585769    mov dx, 00085h                            ; ba 85 00
    57595770    mov ax, strict word 00040h                ; b8 40 00
    5760     call 0318fh                               ; e8 a6 01
     5771    call 031b2h                               ; e8 a6 01
    57615772    inc cx                                    ; 41
    57625773    inc cx                                    ; 41
    57635774    mov dx, cx                                ; 89 ca
    57645775    mov ax, si                                ; 89 f0
    5765     call 03165h                               ; e8 73 01
     5776    call 03188h                               ; e8 73 01
    57665777    mov dl, al                                ; 88 c2
    57675778    xor dh, dh                                ; 30 f6
     
    57695780    mov dx, 00087h                            ; ba 87 00
    57705781    mov ax, strict word 00040h                ; b8 40 00
    5771     call 03173h                               ; e8 72 01
     5782    call 03196h                               ; e8 72 01
    57725783    inc cx                                    ; 41
    57735784    mov dx, cx                                ; 89 ca
    57745785    mov ax, si                                ; 89 f0
    5775     call 03165h                               ; e8 5c 01
     5786    call 03188h                               ; e8 5c 01
    57765787    mov dl, al                                ; 88 c2
    57775788    xor dh, dh                                ; 30 f6
     
    57795790    mov dx, 00088h                            ; ba 88 00
    57805791    mov ax, strict word 00040h                ; b8 40 00
    5781     call 03173h                               ; e8 5b 01
     5792    call 03196h                               ; e8 5b 01
    57825793    inc cx                                    ; 41
    57835794    mov dx, cx                                ; 89 ca
    57845795    mov ax, si                                ; 89 f0
    5785     call 03165h                               ; e8 45 01
     5796    call 03188h                               ; e8 45 01
    57865797    mov dl, al                                ; 88 c2
    57875798    xor dh, dh                                ; 30 f6
     
    57895800    mov dx, 00089h                            ; ba 89 00
    57905801    mov ax, strict word 00040h                ; b8 40 00
    5791     call 03173h                               ; e8 44 01
     5802    call 03196h                               ; e8 44 01
    57925803    inc cx                                    ; 41
    57935804    mov dx, cx                                ; 89 ca
    57945805    mov ax, si                                ; 89 f0
    5795     call 03181h                               ; e8 4a 01
     5806    call 031a4h                               ; e8 4a 01
    57965807    mov bx, ax                                ; 89 c3
    57975808    mov dx, strict word 00060h                ; ba 60 00
    57985809    mov ax, strict word 00040h                ; b8 40 00
    5799     call 0318fh                               ; e8 4d 01
     5810    call 031b2h                               ; e8 4d 01
    58005811    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    58015812    inc cx                                    ; 41
    58025813    inc cx                                    ; 41
    5803     jmp short 03051h                          ; eb 06
     5814    jmp short 03074h                          ; eb 06
    58045815    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5805     jnc short 0306fh                          ; 73 1e
     5816    jnc short 03092h                          ; 73 1e
    58065817    mov dx, cx                                ; 89 ca
    58075818    mov ax, si                                ; 89 f0
    5808     call 03181h                               ; e8 29 01
     5819    call 031a4h                               ; e8 29 01
    58095820    mov bx, ax                                ; 89 c3
    58105821    mov dx, word [bp-00ah]                    ; 8b 56 f6
     
    58125823    add dx, strict byte 00050h                ; 83 c2 50
    58135824    mov ax, strict word 00040h                ; b8 40 00
    5814     call 0318fh                               ; e8 27 01
     5825    call 031b2h                               ; e8 27 01
    58155826    inc cx                                    ; 41
    58165827    inc cx                                    ; 41
    58175828    inc word [bp-00ah]                        ; ff 46 f6
    5818     jmp short 0304bh                          ; eb dc
     5829    jmp short 0306eh                          ; eb dc
    58195830    mov dx, cx                                ; 89 ca
    58205831    mov ax, si                                ; 89 f0
    5821     call 03181h                               ; e8 0b 01
     5832    call 031a4h                               ; e8 0b 01
    58225833    mov bx, ax                                ; 89 c3
    58235834    mov dx, strict word 0004eh                ; ba 4e 00
    58245835    mov ax, strict word 00040h                ; b8 40 00
    5825     call 0318fh                               ; e8 0e 01
     5836    call 031b2h                               ; e8 0e 01
    58265837    inc cx                                    ; 41
    58275838    inc cx                                    ; 41
    58285839    mov dx, cx                                ; 89 ca
    58295840    mov ax, si                                ; 89 f0
    5830     call 03165h                               ; e8 db 00
     5841    call 03188h                               ; e8 db 00
    58315842    mov dl, al                                ; 88 c2
    58325843    xor dh, dh                                ; 30 f6
     
    58345845    mov dx, strict word 00062h                ; ba 62 00
    58355846    mov ax, strict word 00040h                ; b8 40 00
    5836     call 03173h                               ; e8 da 00
     5847    call 03196h                               ; e8 da 00
    58375848    inc cx                                    ; 41
    58385849    mov dx, cx                                ; 89 ca
    58395850    mov ax, si                                ; 89 f0
    5840     call 03181h                               ; e8 e0 00
     5851    call 031a4h                               ; e8 e0 00
    58415852    mov bx, ax                                ; 89 c3
    58425853    mov dx, strict word 0007ch                ; ba 7c 00
    58435854    xor ax, ax                                ; 31 c0
    5844     call 0318fh                               ; e8 e4 00
     5855    call 031b2h                               ; e8 e4 00
    58455856    inc cx                                    ; 41
    58465857    inc cx                                    ; 41
    58475858    mov dx, cx                                ; 89 ca
    58485859    mov ax, si                                ; 89 f0
    5849     call 03181h                               ; e8 cd 00
     5860    call 031a4h                               ; e8 cd 00
    58505861    mov bx, ax                                ; 89 c3
    58515862    mov dx, strict word 0007eh                ; ba 7e 00
    58525863    xor ax, ax                                ; 31 c0
    5853     call 0318fh                               ; e8 d1 00
     5864    call 031b2h                               ; e8 d1 00
    58545865    inc cx                                    ; 41
    58555866    inc cx                                    ; 41
    58565867    mov dx, cx                                ; 89 ca
    58575868    mov ax, si                                ; 89 f0
    5858     call 03181h                               ; e8 ba 00
     5869    call 031a4h                               ; e8 ba 00
    58595870    mov bx, ax                                ; 89 c3
    58605871    mov dx, 0010ch                            ; ba 0c 01
    58615872    xor ax, ax                                ; 31 c0
    5862     call 0318fh                               ; e8 be 00
     5873    call 031b2h                               ; e8 be 00
    58635874    inc cx                                    ; 41
    58645875    inc cx                                    ; 41
    58655876    mov dx, cx                                ; 89 ca
    58665877    mov ax, si                                ; 89 f0
    5867     call 03181h                               ; e8 a7 00
     5878    call 031a4h                               ; e8 a7 00
    58685879    mov bx, ax                                ; 89 c3
    58695880    mov dx, 0010eh                            ; ba 0e 01
    58705881    xor ax, ax                                ; 31 c0
    5871     call 0318fh                               ; e8 ab 00
     5882    call 031b2h                               ; e8 ab 00
    58725883    inc cx                                    ; 41
    58735884    inc cx                                    ; 41
    58745885    test byte [bp-00eh], 004h                 ; f6 46 f2 04
    5875     je short 03133h                           ; 74 47
     5886    je short 03156h                           ; 74 47
    58765887    inc cx                                    ; 41
    58775888    mov dx, cx                                ; 89 ca
    58785889    mov ax, si                                ; 89 f0
    5879     call 03165h                               ; e8 71 00
     5890    call 03188h                               ; e8 71 00
    58805891    xor ah, ah                                ; 30 e4
    58815892    mov word [bp-008h], ax                    ; 89 46 f8
     
    58835894    mov dx, cx                                ; 89 ca
    58845895    mov ax, si                                ; 89 f0
    5885     call 03165h                               ; e8 64 00
     5896    call 03188h                               ; e8 64 00
    58865897    mov dx, 003c6h                            ; ba c6 03
    58875898    out DX, AL                                ; ee
     
    58925903    xor ah, ah                                ; 30 e4
    58935904    mov word [bp-00ah], ax                    ; 89 46 f6
    5894     jmp short 0311ah                          ; eb 07
     5905    jmp short 0313dh                          ; eb 07
    58955906    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
    5896     jnc short 0312bh                          ; 73 11
     5907    jnc short 0314eh                          ; 73 11
    58975908    mov dx, cx                                ; 89 ca
    58985909    mov ax, si                                ; 89 f0
    5899     call 03165h                               ; e8 44 00
     5910    call 03188h                               ; e8 44 00
    59005911    mov dx, 003c9h                            ; ba c9 03
    59015912    out DX, AL                                ; ee
    59025913    inc cx                                    ; 41
    59035914    inc word [bp-00ah]                        ; ff 46 f6
    5904     jmp short 03113h                          ; eb e8
     5915    jmp short 03136h                          ; eb e8
    59055916    inc cx                                    ; 41
    59065917    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    59145925    pop bp                                    ; 5d
    59155926    retn                                      ; c3
    5916 find_vga_entry_:                             ; 0xc313d LB 0x28
     5927find_vga_entry_:                             ; 0xc3160 LB 0x28
    59175928    push bx                                   ; 53
    59185929    push dx                                   ; 52
     
    59225933    mov AH, strict byte 0ffh                  ; b4 ff
    59235934    xor al, al                                ; 30 c0
    5924     jmp short 03150h                          ; eb 06
     5935    jmp short 03173h                          ; eb 06
    59255936    db  0feh, 0c0h
    59265937    ; inc al                                    ; fe c0
    59275938    cmp AL, strict byte 00fh                  ; 3c 0f
    5928     jnbe short 0315fh                         ; 77 0f
     5939    jnbe short 03182h                         ; 77 0f
    59295940    mov bl, al                                ; 88 c3
    59305941    xor bh, bh                                ; 30 ff
    59315942    sal bx, 003h                              ; c1 e3 03
    5932     cmp dl, byte [bx+0462fh]                  ; 3a 97 2f 46
    5933     jne short 0314ah                          ; 75 ed
     5943    cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
     5944    jne short 0316dh                          ; 75 ed
    59345945    mov ah, al                                ; 88 c4
    59355946    mov al, ah                                ; 88 e0
     
    59385949    pop bx                                    ; 5b
    59395950    retn                                      ; c3
    5940 read_byte_:                                  ; 0xc3165 LB 0xe
     5951read_byte_:                                  ; 0xc3188 LB 0xe
    59415952    push bx                                   ; 53
    59425953    push bp                                   ; 55
     
    59485959    pop bx                                    ; 5b
    59495960    retn                                      ; c3
    5950 write_byte_:                                 ; 0xc3173 LB 0xe
     5961write_byte_:                                 ; 0xc3196 LB 0xe
    59515962    push si                                   ; 56
    59525963    push bp                                   ; 55
     
    59585969    pop si                                    ; 5e
    59595970    retn                                      ; c3
    5960 read_word_:                                  ; 0xc3181 LB 0xe
     5971read_word_:                                  ; 0xc31a4 LB 0xe
    59615972    push bx                                   ; 53
    59625973    push bp                                   ; 55
     
    59685979    pop bx                                    ; 5b
    59695980    retn                                      ; c3
    5970 write_word_:                                 ; 0xc318f LB 0xe
     5981write_word_:                                 ; 0xc31b2 LB 0xe
    59715982    push si                                   ; 56
    59725983    push bp                                   ; 55
     
    59785989    pop si                                    ; 5e
    59795990    retn                                      ; c3
    5980 read_dword_:                                 ; 0xc319d LB 0x12
     5991read_dword_:                                 ; 0xc31c0 LB 0x12
    59815992    push bx                                   ; 53
    59825993    push bp                                   ; 55
     
    59896000    pop bx                                    ; 5b
    59906001    retn                                      ; c3
    5991 write_dword_:                                ; 0xc31af LB 0x96
     6002write_dword_:                                ; 0xc31d2 LB 0x96
    59926003    push si                                   ; 56
    59936004    push bp                                   ; 55
     
    60116022    add ax, 00304h                            ; 05 04 03
    60126023    add al, byte [bx+di]                      ; 02 01
    6013     add dh, cl                                ; 00 ce
    6014     xor ax, 03276h                            ; 35 76 32
    6015     mov BL, strict byte 032h                  ; b3 32
    6016     db  0c6h, 032h, 0d6h
    6017     ; mov byte [bp+si], 0d6h                    ; c6 32 d6
     6024    add cl, dh                                ; 00 f1
     6025    xor ax, 03299h                            ; 35 99 32
     6026    db  0d6h
    60186027    db  032h, 0e9h
    60196028    ; xor ch, cl                                ; 32 e9
    60206029    db  032h, 0f9h
    60216030    ; xor bh, cl                                ; 32 f9
    6022     xor al, byte [bx+si]                      ; 32 00
    6023     xor di, word [bx+si]                      ; 33 38
    6024     xor di, word [si]                         ; 33 3c
    6025     xor cx, word [di+033h]                    ; 33 4d 33
    6026     push 08333h                               ; 68 33 83
    6027     xor bx, word [bp+di-047cdh]               ; 33 9b 33 b8
    6028     db  033h, 0cch
    6029     ; xor cx, sp                                ; 33 cc
    6030     db  033h, 0d8h
    6031     ; xor bx, ax                                ; 33 d8
    6032     xor cx, word [bx-03bcch]                  ; 33 8f 34 c4
    6033     xor AL, strict byte 0f5h                  ; 34 f5
    6034     xor AL, strict byte 00ah                  ; 34 0a
    6035     xor ax, 03547h                            ; 35 47 35
     6031    xor cl, byte [si]                         ; 32 0c
     6032    xor bx, word [si]                         ; 33 1c
     6033    xor sp, word [bp+di]                      ; 33 23
     6034    xor bx, word [bp+di+033h]                 ; 33 5b 33
     6035    pop di                                    ; 5f
     6036    xor si, word [bx+si+033h]                 ; 33 70 33
     6037    mov si, word [bp+di]                      ; 8b 33
     6038    cmpsb                                     ; a6
     6039    xor di, word [bp-024cdh]                  ; 33 be 33 db
     6040    db  033h, 0efh
     6041    ; xor bp, di                                ; 33 ef
     6042    db  033h, 0fbh
     6043    ; xor di, bx                                ; 33 fb
     6044    xor si, word [bp+si-018cch]               ; 33 b2 34 e7
     6045    xor AL, strict byte 018h                  ; 34 18
     6046    xor ax, 0352dh                            ; 35 2d 35
     6047    push strict byte 00035h                   ; 6a 35
    60366048    xor byte [si], ah                         ; 30 24
    60376049    and sp, word [bp+si]                      ; 23 22
     
    60416053    add AL, strict byte 002h                  ; 04 02
    60426054    add word [bx+si], ax                      ; 01 00
    6043     into                                      ; ce
    6044     xor ax, 033f5h                            ; 35 f5 33
    6045     push SS                                   ; 16
    6046     xor AL, strict byte 025h                  ; 34 25
    6047     xor AL, strict byte 034h                  ; 34 34
    6048     xor AL, strict byte 0f5h                  ; 34 f5
    6049     xor dx, word [02534h]                     ; 33 16 34 25
    6050     xor AL, strict byte 034h                  ; 34 34
    6051     xor AL, strict byte 043h                  ; 34 43
    6052     xor AL, strict byte 04fh                  ; 34 4f
    6053     xor AL, strict byte 068h                  ; 34 68
    6054     xor AL, strict byte 06dh                  ; 34 6d
     6055    db  0f1h
     6056    xor ax, 03418h                            ; 35 18 34
     6057    cmp word [si], si                         ; 39 34
     6058    dec ax                                    ; 48
     6059    xor AL, strict byte 057h                  ; 34 57
     6060    xor AL, strict byte 018h                  ; 34 18
     6061    xor AL, strict byte 039h                  ; 34 39
     6062    xor AL, strict byte 048h                  ; 34 48
     6063    xor AL, strict byte 057h                  ; 34 57
     6064    xor AL, strict byte 066h                  ; 34 66
    60556065    xor AL, strict byte 072h                  ; 34 72
    6056     xor AL, strict byte 077h                  ; 34 77
     6066    xor AL, strict byte 08bh                  ; 34 8b
     6067    xor AL, strict byte 090h                  ; 34 90
     6068    xor AL, strict byte 095h                  ; 34 95
     6069    xor AL, strict byte 09ah                  ; 34 9a
    60576070    xor AL, strict byte 00ah                  ; 34 0a
    60586071    or word [00204h], ax                      ; 09 06 04 02
    60596072    add word [bx+si], ax                      ; 01 00
    6060     retn 06d35h                               ; c2 35 6d
    6061     xor ax, 0357ah                            ; 35 7a 35
    6062     mov dh, byte [di]                         ; 8a 35
    6063     call far 0c235h:0af35h                    ; 9a 35 af 35 c2
    6064     xor ax, 035c2h                            ; 35 c2 35
    6065 _int10_func:                                 ; 0xc3245 LB 0x390
     6073    in ax, 035h                               ; e5 35
     6074    nop                                       ; 90
     6075    xor ax, 0359dh                            ; 35 9d 35
     6076    lodsw                                     ; ad
     6077    xor ax, 035bdh                            ; 35 bd 35
     6078    db  0d2h, 035h
     6079    ; sal byte [di], CL                         ; d2 35
     6080    in ax, 035h                               ; e5 35
     6081    in ax, 035h                               ; e5 35
     6082_int10_func:                                 ; 0xc3268 LB 0x390
    60666083    push bp                                   ; 55
    60676084    mov bp, sp                                ; 89 e5
     
    60736090    shr ax, 008h                              ; c1 e8 08
    60746091    cmp ax, strict word 0004fh                ; 3d 4f 00
    6075     jnbe short 032c3h                         ; 77 6a
     6092    jnbe short 032e6h                         ; 77 6a
    60766093    push CS                                   ; 0e
    60776094    pop ES                                    ; 07
    60786095    mov cx, strict word 00016h                ; b9 16 00
    6079     mov di, 031c1h                            ; bf c1 31
     6096    mov di, 031e4h                            ; bf e4 31
    60806097    repne scasb                               ; f2 ae
    60816098    sal cx, 1                                 ; d1 e1
    60826099    mov di, cx                                ; 89 cf
    6083     mov bx, word [cs:di+031d6h]               ; 2e 8b 9d d6 31
     6100    mov bx, word [cs:di+031f9h]               ; 2e 8b 9d f9 31
    60846101    mov ax, word [bp+012h]                    ; 8b 46 12
    60856102    xor ah, ah                                ; 30 e4
     
    60886105    mov al, byte [bp+012h]                    ; 8a 46 12
    60896106    xor ah, ah                                ; 30 e4
    6090     call 0101ch                               ; e8 9e dd
     6107    call 0101ch                               ; e8 7b dd
    60916108    mov ax, word [bp+012h]                    ; 8b 46 12
    60926109    and ax, strict word 0007fh                ; 25 7f 00
    60936110    cmp ax, strict word 00007h                ; 3d 07 00
    6094     je short 0329eh                           ; 74 15
     6111    je short 032c1h                           ; 74 15
    60956112    cmp ax, strict word 00006h                ; 3d 06 00
    6096     je short 03295h                           ; 74 07
     6113    je short 032b8h                           ; 74 07
    60976114    cmp ax, strict word 00005h                ; 3d 05 00
    6098     jbe short 0329eh                          ; 76 0b
    6099     jmp short 032a7h                          ; eb 12
     6115    jbe short 032c1h                          ; 76 0b
     6116    jmp short 032cah                          ; eb 12
    61006117    mov ax, word [bp+012h]                    ; 8b 46 12
    61016118    xor al, al                                ; 30 c0
    61026119    or AL, strict byte 03fh                   ; 0c 3f
    6103     jmp short 032aeh                          ; eb 10
     6120    jmp short 032d1h                          ; eb 10
    61046121    mov ax, word [bp+012h]                    ; 8b 46 12
    61056122    xor al, al                                ; 30 c0
    61066123    or AL, strict byte 030h                   ; 0c 30
    6107     jmp short 032aeh                          ; eb 07
     6124    jmp short 032d1h                          ; eb 07
    61086125    mov ax, word [bp+012h]                    ; 8b 46 12
    61096126    xor al, al                                ; 30 c0
    61106127    or AL, strict byte 020h                   ; 0c 20
    61116128    mov word [bp+012h], ax                    ; 89 46 12
    6112     jmp short 032c3h                          ; eb 10
     6129    jmp short 032e6h                          ; eb 10
    61136130    mov al, byte [bp+010h]                    ; 8a 46 10
    61146131    mov dx, ax                                ; 89 c2
     
    61166133    shr ax, 008h                              ; c1 e8 08
    61176134    xor ah, ah                                ; 30 e4
    6118     call 00dcbh                               ; e8 08 db
    6119     jmp near 035ceh                           ; e9 08 03
     6135    call 00dcbh                               ; e8 e5 da
     6136    jmp near 035f1h                           ; e9 08 03
    61206137    mov dx, word [bp+00eh]                    ; 8b 56 0e
    61216138    mov ax, word [bp+00ch]                    ; 8b 46 0c
    61226139    shr ax, 008h                              ; c1 e8 08
    61236140    xor ah, ah                                ; 30 e4
    6124     call 00e79h                               ; e8 a5 db
    6125     jmp short 032c3h                          ; eb ed
     6141    call 00e79h                               ; e8 82 db
     6142    jmp short 032e6h                          ; eb ed
    61266143    lea bx, [bp+00eh]                         ; 8d 5e 0e
    61276144    lea dx, [bp+010h]                         ; 8d 56 10
     
    61296146    shr ax, 008h                              ; c1 e8 08
    61306147    xor ah, ah                                ; 30 e4
    6131     call 00a8bh                               ; e8 a4 d7
    6132     jmp short 032c3h                          ; eb da
     6148    call 00a8bh                               ; e8 81 d7
     6149    jmp short 032e6h                          ; eb da
    61336150    xor al, al                                ; 30 c0
    61346151    mov word [bp+012h], ax                    ; 89 46 12
     
    61366153    mov word [bp+010h], ax                    ; 89 46 10
    61376154    mov word [bp+00eh], ax                    ; 89 46 0e
    6138     jmp short 032c3h                          ; eb ca
     6155    jmp short 032e6h                          ; eb ca
    61396156    mov al, dl                                ; 88 d0
    6140     call 00f2eh                               ; e8 30 dc
    6141     jmp short 032c3h                          ; eb c3
     6157    call 00f2eh                               ; e8 0d dc
     6158    jmp short 032e6h                          ; eb c3
    61426159    mov ax, strict word 00001h                ; b8 01 00
    61436160    push ax                                   ; 50
     
    61626179    mov dx, ax                                ; 89 c2
    61636180    mov al, byte [bp+012h]                    ; 8a 46 12
    6164     call 01647h                               ; e8 11 e3
    6165     jmp short 032c3h                          ; eb 8b
     6181    call 0166ah                               ; e8 11 e3
     6182    jmp short 032e6h                          ; eb 8b
    61666183    xor al, al                                ; 30 c0
    6167     jmp short 03303h                          ; eb c7
     6184    jmp short 03326h                          ; eb c7
    61686185    lea dx, [bp+012h]                         ; 8d 56 12
    61696186    mov ax, word [bp+00ch]                    ; 8b 46 0c
    61706187    shr ax, 008h                              ; c1 e8 08
    61716188    xor ah, ah                                ; 30 e4
    6172     call 00ad1h                               ; e8 87 d7
    6173     jmp near 035ceh                           ; e9 81 02
     6189    call 00ad1h                               ; e8 64 d7
     6190    jmp near 035f1h                           ; e9 81 02
    61746191    mov cx, word [bp+010h]                    ; 8b 4e 10
    61756192    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    61806197    mov dx, ax                                ; 89 c2
    61816198    mov al, byte [bp+012h]                    ; 8a 46 12
    6182     call 01e7eh                               ; e8 19 eb
    6183     jmp near 035ceh                           ; e9 66 02
     6199    call 01ea1h                               ; e8 19 eb
     6200    jmp near 035f1h                           ; e9 66 02
    61846201    mov cx, word [bp+010h]                    ; 8b 4e 10
    61856202    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    61906207    mov dx, ax                                ; 89 c2
    61916208    mov al, byte [bp+012h]                    ; 8a 46 12
    6192     call 0200bh                               ; e8 8b ec
    6193     jmp near 035ceh                           ; e9 4b 02
     6209    call 0202eh                               ; e8 8b ec
     6210    jmp near 035f1h                           ; e9 4b 02
    61946211    mov cx, word [bp+00eh]                    ; 8b 4e 0e
    61956212    mov bx, word [bp+010h]                    ; 8b 5e 10
     
    61996216    shr ax, 008h                              ; c1 e8 08
    62006217    xor ah, ah                                ; 30 e4
    6201     call 021a1h                               ; e8 09 ee
    6202     jmp near 035ceh                           ; e9 33 02
     6218    call 021c4h                               ; e8 09 ee
     6219    jmp near 035f1h                           ; e9 33 02
    62036220    lea cx, [bp+012h]                         ; 8d 4e 12
    62046221    mov bx, word [bp+00eh]                    ; 8b 5e 0e
     
    62096226    mov al, byte [bp-006h]                    ; 8a 46 fa
    62106227    xor ah, ah                                ; 30 e4
    6211     call 00bfch                               ; e8 47 d8
    6212     jmp near 035ceh                           ; e9 16 02
     6228    call 00bfch                               ; e8 24 d8
     6229    jmp near 035f1h                           ; e9 16 02
    62136230    mov cx, strict word 00002h                ; b9 02 00
    62146231    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    62166233    mov dx, 000ffh                            ; ba ff 00
    62176234    mov al, byte [bp+012h]                    ; 8a 46 12
    6218     call 0231ch                               ; e8 53 ef
    6219     jmp near 035ceh                           ; e9 02 02
     6235    call 0233fh                               ; e8 53 ef
     6236    jmp near 035f1h                           ; e9 02 02
    62206237    mov dx, word [bp+010h]                    ; 8b 56 10
    62216238    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6222     call 00d3eh                               ; e8 69 d9
    6223     jmp near 035ceh                           ; e9 f6 01
     6239    call 00d3eh                               ; e8 46 d9
     6240    jmp near 035f1h                           ; e9 f6 01
    62246241    cmp ax, strict word 00030h                ; 3d 30 00
    6225     jnbe short 0344ch                         ; 77 6f
     6242    jnbe short 0346fh                         ; 77 6f
    62266243    push CS                                   ; 0e
    62276244    pop ES                                    ; 07
    62286245    mov cx, strict word 0000fh                ; b9 0f 00
    6229     mov di, 03202h                            ; bf 02 32
     6246    mov di, 03225h                            ; bf 25 32
    62306247    repne scasb                               ; f2 ae
    62316248    sal cx, 1                                 ; d1 e1
    62326249    mov di, cx                                ; 89 cf
    6233     mov dx, word [cs:di+03210h]               ; 2e 8b 95 10 32
     6250    mov dx, word [cs:di+03233h]               ; 2e 8b 95 33 32
    62346251    mov al, byte [bp+00ch]                    ; 8a 46 0c
    62356252    jmp dx                                    ; ff e2
     
    62456262    mov bx, word [bp+008h]                    ; 8b 5e 08
    62466263    mov dx, word [bp+016h]                    ; 8b 56 16
    6247     call 026b5h                               ; e8 a1 f2
    6248     jmp short 0344ch                          ; eb 36
     6264    call 026d8h                               ; e8 a1 f2
     6265    jmp short 0346fh                          ; eb 36
    62496266    mov al, byte [bp+00ch]                    ; 8a 46 0c
    62506267    xor ah, ah                                ; 30 e4
    62516268    mov dx, ax                                ; 89 c2
    62526269    mov al, byte [bp+012h]                    ; 8a 46 12
    6253     call 02735h                               ; e8 12 f3
    6254     jmp short 0344ch                          ; eb 27
     6270    call 02758h                               ; e8 12 f3
     6271    jmp short 0346fh                          ; eb 27
    62556272    mov al, byte [bp+00ch]                    ; 8a 46 0c
    62566273    xor ah, ah                                ; 30 e4
    62576274    mov dx, ax                                ; 89 c2
    62586275    mov al, byte [bp+012h]                    ; 8a 46 12
    6259     call 027a3h                               ; e8 71 f3
    6260     jmp short 0344ch                          ; eb 18
     6276    call 027c6h                               ; e8 71 f3
     6277    jmp short 0346fh                          ; eb 18
    62616278    mov al, byte [bp+00ch]                    ; 8a 46 0c
    62626279    xor ah, ah                                ; 30 e4
    62636280    mov dx, ax                                ; 89 c2
    62646281    mov al, byte [bp+012h]                    ; 8a 46 12
    6265     call 02813h                               ; e8 d2 f3
    6266     jmp short 0344ch                          ; eb 09
     6282    call 02836h                               ; e8 d2 f3
     6283    jmp short 0346fh                          ; eb 09
    62676284    mov dx, word [bp+008h]                    ; 8b 56 08
    62686285    mov ax, word [bp+016h]                    ; 8b 46 16
    6269     call 02883h                               ; e8 37 f4
    6270     jmp near 035ceh                           ; e9 7f 01
     6286    call 028a6h                               ; e8 37 f4
     6287    jmp near 035f1h                           ; e9 7f 01
    62716288    mov al, byte [bp+00eh]                    ; 8a 46 0e
    62726289    push ax                                   ; 50
     
    62776294    mov cx, ax                                ; 89 c1
    62786295    mov ax, si                                ; 89 f0
    6279     call 02888h                               ; e8 22 f4
    6280     jmp short 0344ch                          ; eb e4
    6281     call 0288fh                               ; e8 24 f4
    6282     jmp short 0344ch                          ; eb df
    6283     call 02894h                               ; e8 24 f4
    6284     jmp short 0344ch                          ; eb da
    6285     call 02899h                               ; e8 24 f4
    6286     jmp short 0344ch                          ; eb d5
     6296    call 028abh                               ; e8 22 f4
     6297    jmp short 0346fh                          ; eb e4
     6298    call 028b2h                               ; e8 24 f4
     6299    jmp short 0346fh                          ; eb df
     6300    call 028b7h                               ; e8 24 f4
     6301    jmp short 0346fh                          ; eb da
     6302    call 028bch                               ; e8 24 f4
     6303    jmp short 0346fh                          ; eb d5
    62876304    lea ax, [bp+00eh]                         ; 8d 46 0e
    62886305    push ax                                   ; 50
     
    62926309    lea bx, [bp+008h]                         ; 8d 5e 08
    62936310    lea dx, [bp+016h]                         ; 8d 56 16
    6294     call 00b81h                               ; e8 f4 d6
    6295     jmp short 0344ch                          ; eb bd
     6311    call 00b81h                               ; e8 d1 d6
     6312    jmp short 0346fh                          ; eb bd
    62966313    mov ax, word [bp+00ch]                    ; 8b 46 0c
    62976314    xor ah, ah                                ; 30 e4
    62986315    cmp ax, strict word 00036h                ; 3d 36 00
    6299     je short 034bdh                           ; 74 24
     6316    je short 034e0h                           ; 74 24
    63006317    cmp ax, strict word 00035h                ; 3d 35 00
    6301     je short 034a8h                           ; 74 0a
     6318    je short 034cbh                           ; 74 0a
    63026319    cmp ax, strict word 00020h                ; 3d 20 00
    6303     jne short 034f2h                          ; 75 4f
    6304     call 0289eh                               ; e8 f8 f3
    6305     jmp short 034f2h                          ; eb 4a
     6320    jne short 03515h                          ; 75 4f
     6321    call 028c1h                               ; e8 f8 f3
     6322    jmp short 03515h                          ; eb 4a
    63066323    mov al, dl                                ; 88 d0
    63076324    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    63086325    mov dx, word [bp+016h]                    ; 8b 56 16
    6309     call 028a3h                               ; e8 f0 f3
     6326    call 028c6h                               ; e8 f0 f3
    63106327    mov ax, word [bp+012h]                    ; 8b 46 12
    63116328    xor al, al                                ; 30 c0
    63126329    or AL, strict byte 012h                   ; 0c 12
    6313     jmp near 032aeh                           ; e9 f1 fd
     6330    jmp near 032d1h                           ; e9 f1 fd
    63146331    mov al, dl                                ; 88 d0
    6315     call 028a8h                               ; e8 e6 f3
    6316     jmp short 034b3h                          ; eb ef
     6332    call 028cbh                               ; e8 e6 f3
     6333    jmp short 034d6h                          ; eb ef
    63176334    push word [bp+008h]                       ; ff 76 08
    63186335    push word [bp+016h]                       ; ff 76 16
     
    63336350    mov dx, ax                                ; 89 c2
    63346351    mov ax, si                                ; 89 f0
    6335     call 028adh                               ; e8 bb f3
    6336     jmp near 035ceh                           ; e9 d9 00
     6352    call 028d0h                               ; e8 bb f3
     6353    jmp near 035f1h                           ; e9 d9 00
    63376354    mov bx, si                                ; 89 f3
    63386355    mov dx, word [bp+016h]                    ; 8b 56 16
    63396356    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6340     call 0294fh                               ; e8 4f f4
     6357    call 02972h                               ; e8 4f f4
    63416358    mov ax, word [bp+012h]                    ; 8b 46 12
    63426359    xor al, al                                ; 30 c0
    63436360    or AL, strict byte 01bh                   ; 0c 1b
    6344     jmp near 032aeh                           ; e9 a4 fd
     6361    jmp near 032d1h                           ; e9 a4 fd
    63456362    cmp ax, strict word 00002h                ; 3d 02 00
    6346     je short 03531h                           ; 74 22
     6363    je short 03554h                           ; 74 22
    63476364    cmp ax, strict word 00001h                ; 3d 01 00
    6348     je short 03523h                           ; 74 0f
     6365    je short 03546h                           ; 74 0f
    63496366    test ax, ax                               ; 85 c0
    6350     jne short 0353dh                          ; 75 25
     6367    jne short 03560h                          ; 75 25
    63516368    lea dx, [bp+00ch]                         ; 8d 56 0c
    63526369    mov ax, word [bp+010h]                    ; 8b 46 10
    6353     call 02a74h                               ; e8 53 f5
    6354     jmp short 0353dh                          ; eb 1a
     6370    call 02a97h                               ; e8 53 f5
     6371    jmp short 03560h                          ; eb 1a
    63556372    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    63566373    mov dx, word [bp+016h]                    ; 8b 56 16
    63576374    mov ax, word [bp+010h]                    ; 8b 46 10
    6358     call 02a86h                               ; e8 57 f5
    6359     jmp short 0353dh                          ; eb 0c
     6375    call 02aa9h                               ; e8 57 f5
     6376    jmp short 03560h                          ; eb 0c
    63606377    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    63616378    mov dx, word [bp+016h]                    ; 8b 56 16
    63626379    mov ax, word [bp+010h]                    ; 8b 46 10
    6363     call 02e07h                               ; e8 ca f8
     6380    call 02e2ah                               ; e8 ca f8
    63646381    mov ax, word [bp+012h]                    ; 8b 46 12
    63656382    xor al, al                                ; 30 c0
    63666383    or AL, strict byte 01ch                   ; 0c 1c
    6367     jmp near 032aeh                           ; e9 67 fd
    6368     call 007bfh                               ; e8 75 d2
     6384    jmp near 032d1h                           ; e9 67 fd
     6385    call 007bfh                               ; e8 52 d2
    63696386    test ax, ax                               ; 85 c0
    6370     je short 035c0h                           ; 74 72
     6387    je short 035e3h                           ; 74 72
    63716388    mov ax, word [bp+012h]                    ; 8b 46 12
    63726389    xor ah, ah                                ; 30 e4
    63736390    cmp ax, strict word 0000ah                ; 3d 0a 00
    6374     jnbe short 035c2h                         ; 77 6a
     6391    jnbe short 035e5h                         ; 77 6a
    63756392    push CS                                   ; 0e
    63766393    pop ES                                    ; 07
    63776394    mov cx, strict word 00008h                ; b9 08 00
    6378     mov di, 0322eh                            ; bf 2e 32
     6395    mov di, 03251h                            ; bf 51 32
    63796396    repne scasb                               ; f2 ae
    63806397    sal cx, 1                                 ; d1 e1
    63816398    mov di, cx                                ; 89 cf
    6382     mov ax, word [cs:di+03235h]               ; 2e 8b 85 35 32
     6399    mov ax, word [cs:di+03258h]               ; 2e 8b 85 58 32
    63836400    jmp ax                                    ; ff e0
    63846401    mov bx, si                                ; 89 f3
    63856402    mov dx, word [bp+016h]                    ; 8b 56 16
    63866403    lea ax, [bp+012h]                         ; 8d 46 12
    6387     call 03771h                               ; e8 f9 01
    6388     jmp short 035ceh                          ; eb 54
     6404    call 037adh                               ; e8 12 02
     6405    jmp short 035f1h                          ; eb 54
    63896406    mov cx, si                                ; 89 f1
    63906407    mov bx, word [bp+016h]                    ; 8b 5e 16
    63916408    mov dx, word [bp+010h]                    ; 8b 56 10
    63926409    lea ax, [bp+012h]                         ; 8d 46 12
    6393     call 038a0h                               ; e8 18 03
    6394     jmp short 035ceh                          ; eb 44
     6410    call 038dch                               ; e8 31 03
     6411    jmp short 035f1h                          ; eb 44
    63956412    mov cx, si                                ; 89 f1
    63966413    mov bx, word [bp+016h]                    ; 8b 5e 16
    63976414    mov dx, word [bp+00ch]                    ; 8b 56 0c
    63986415    lea ax, [bp+012h]                         ; 8d 46 12
    6399     call 0395dh                               ; e8 c5 03
    6400     jmp short 035ceh                          ; eb 34
     6416    call 03999h                               ; e8 de 03
     6417    jmp short 035f1h                          ; eb 34
    64016418    lea ax, [bp+00ch]                         ; 8d 46 0c
    64026419    push ax                                   ; 50
     
    64056422    mov dx, word [bp+010h]                    ; 8b 56 10
    64066423    lea ax, [bp+012h]                         ; 8d 46 12
    6407     call 03b46h                               ; e8 99 05
    6408     jmp short 035ceh                          ; eb 1f
     6424    call 03b82h                               ; e8 b2 05
     6425    jmp short 035f1h                          ; eb 1f
    64096426    lea cx, [bp+00eh]                         ; 8d 4e 0e
    64106427    lea bx, [bp+010h]                         ; 8d 5e 10
    64116428    lea dx, [bp+00ch]                         ; 8d 56 0c
    64126429    lea ax, [bp+012h]                         ; 8d 46 12
    6413     call 03bd2h                               ; e8 14 06
    6414     jmp short 035ceh                          ; eb 0e
    6415     jmp short 035c9h                          ; eb 07
     6430    call 03c0eh                               ; e8 2d 06
     6431    jmp short 035f1h                          ; eb 0e
     6432    jmp short 035ech                          ; eb 07
    64166433    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    6417     jmp short 035ceh                          ; eb 05
     6434    jmp short 035f1h                          ; eb 05
    64186435    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    64196436    lea sp, [bp-004h]                         ; 8d 66 fc
     
    64226439    pop bp                                    ; 5d
    64236440    retn                                      ; c3
    6424 dispi_set_xres_:                             ; 0xc35d5 LB 0x1f
     6441dispi_set_xres_:                             ; 0xc35f8 LB 0x1f
    64256442    push bp                                   ; 55
    64266443    mov bp, sp                                ; 89 e5
     
    64306447    mov ax, strict word 00001h                ; b8 01 00
    64316448    mov dx, 001ceh                            ; ba ce 01
    6432     call 00570h                               ; e8 8b cf
     6449    call 00570h                               ; e8 68 cf
    64336450    mov ax, bx                                ; 89 d8
    64346451    mov dx, 001cfh                            ; ba cf 01
    6435     call 00570h                               ; e8 83 cf
     6452    call 00570h                               ; e8 60 cf
    64366453    lea sp, [bp-004h]                         ; 8d 66 fc
    64376454    pop dx                                    ; 5a
     
    64396456    pop bp                                    ; 5d
    64406457    retn                                      ; c3
    6441 dispi_set_yres_:                             ; 0xc35f4 LB 0x1f
     6458dispi_set_yres_:                             ; 0xc3617 LB 0x1f
    64426459    push bp                                   ; 55
    64436460    mov bp, sp                                ; 89 e5
     
    64476464    mov ax, strict word 00002h                ; b8 02 00
    64486465    mov dx, 001ceh                            ; ba ce 01
    6449     call 00570h                               ; e8 6c cf
     6466    call 00570h                               ; e8 49 cf
    64506467    mov ax, bx                                ; 89 d8
    64516468    mov dx, 001cfh                            ; ba cf 01
    6452     call 00570h                               ; e8 64 cf
     6469    call 00570h                               ; e8 41 cf
    64536470    lea sp, [bp-004h]                         ; 8d 66 fc
    64546471    pop dx                                    ; 5a
     
    64566473    pop bp                                    ; 5d
    64576474    retn                                      ; c3
    6458 dispi_set_bpp_:                              ; 0xc3613 LB 0x1f
     6475dispi_get_yres_:                             ; 0xc3636 LB 0x19
     6476    push bp                                   ; 55
     6477    mov bp, sp                                ; 89 e5
     6478    push dx                                   ; 52
     6479    mov ax, strict word 00002h                ; b8 02 00
     6480    mov dx, 001ceh                            ; ba ce 01
     6481    call 00570h                               ; e8 2d cf
     6482    mov dx, 001cfh                            ; ba cf 01
     6483    call 00577h                               ; e8 2e cf
     6484    lea sp, [bp-002h]                         ; 8d 66 fe
     6485    pop dx                                    ; 5a
     6486    pop bp                                    ; 5d
     6487    retn                                      ; c3
     6488dispi_set_bpp_:                              ; 0xc364f LB 0x1f
    64596489    push bp                                   ; 55
    64606490    mov bp, sp                                ; 89 e5
     
    64646494    mov ax, strict word 00003h                ; b8 03 00
    64656495    mov dx, 001ceh                            ; ba ce 01
    6466     call 00570h                               ; e8 4d cf
     6496    call 00570h                               ; e8 11 cf
    64676497    mov ax, bx                                ; 89 d8
    64686498    mov dx, 001cfh                            ; ba cf 01
    6469     call 00570h                               ; e8 45 cf
     6499    call 00570h                               ; e8 09 cf
    64706500    lea sp, [bp-004h]                         ; 8d 66 fc
    64716501    pop dx                                    ; 5a
     
    64736503    pop bp                                    ; 5d
    64746504    retn                                      ; c3
    6475 dispi_get_bpp_:                              ; 0xc3632 LB 0x19
     6505dispi_get_bpp_:                              ; 0xc366e LB 0x19
    64766506    push bp                                   ; 55
    64776507    mov bp, sp                                ; 89 e5
     
    64796509    mov ax, strict word 00003h                ; b8 03 00
    64806510    mov dx, 001ceh                            ; ba ce 01
    6481     call 00570h                               ; e8 31 cf
     6511    call 00570h                               ; e8 f5 ce
    64826512    mov dx, 001cfh                            ; ba cf 01
    6483     call 00577h                               ; e8 32 cf
     6513    call 00577h                               ; e8 f6 ce
    64846514    lea sp, [bp-002h]                         ; 8d 66 fe
    64856515    pop dx                                    ; 5a
    64866516    pop bp                                    ; 5d
    64876517    retn                                      ; c3
    6488 dispi_set_virt_width_:                       ; 0xc364b LB 0x1f
     6518dispi_set_virt_width_:                       ; 0xc3687 LB 0x1f
    64896519    push bp                                   ; 55
    64906520    mov bp, sp                                ; 89 e5
     
    64946524    mov ax, strict word 00006h                ; b8 06 00
    64956525    mov dx, 001ceh                            ; ba ce 01
    6496     call 00570h                               ; e8 15 cf
     6526    call 00570h                               ; e8 d9 ce
    64976527    mov ax, bx                                ; 89 d8
    64986528    mov dx, 001cfh                            ; ba cf 01
    6499     call 00570h                               ; e8 0d cf
     6529    call 00570h                               ; e8 d1 ce
    65006530    lea sp, [bp-004h]                         ; 8d 66 fc
    65016531    pop dx                                    ; 5a
     
    65036533    pop bp                                    ; 5d
    65046534    retn                                      ; c3
    6505 dispi_get_virt_width_:                       ; 0xc366a LB 0x19
     6535dispi_get_virt_width_:                       ; 0xc36a6 LB 0x19
    65066536    push bp                                   ; 55
    65076537    mov bp, sp                                ; 89 e5
     
    65096539    mov ax, strict word 00006h                ; b8 06 00
    65106540    mov dx, 001ceh                            ; ba ce 01
    6511     call 00570h                               ; e8 f9 ce
     6541    call 00570h                               ; e8 bd ce
    65126542    mov dx, 001cfh                            ; ba cf 01
    6513     call 00577h                               ; e8 fa ce
     6543    call 00577h                               ; e8 be ce
    65146544    lea sp, [bp-002h]                         ; 8d 66 fe
    65156545    pop dx                                    ; 5a
    65166546    pop bp                                    ; 5d
    65176547    retn                                      ; c3
    6518 dispi_get_virt_height_:                      ; 0xc3683 LB 0x19
     6548dispi_get_virt_height_:                      ; 0xc36bf LB 0x19
    65196549    push bp                                   ; 55
    65206550    mov bp, sp                                ; 89 e5
     
    65226552    mov ax, strict word 00007h                ; b8 07 00
    65236553    mov dx, 001ceh                            ; ba ce 01
    6524     call 00570h                               ; e8 e0 ce
     6554    call 00570h                               ; e8 a4 ce
    65256555    mov dx, 001cfh                            ; ba cf 01
    6526     call 00577h                               ; e8 e1 ce
     6556    call 00577h                               ; e8 a5 ce
    65276557    lea sp, [bp-002h]                         ; 8d 66 fe
    65286558    pop dx                                    ; 5a
    65296559    pop bp                                    ; 5d
    65306560    retn                                      ; c3
    6531 in_word_:                                    ; 0xc369c LB 0x12
     6561in_word_:                                    ; 0xc36d8 LB 0x12
    65326562    push bp                                   ; 55
    65336563    mov bp, sp                                ; 89 e5
     
    65426572    pop bp                                    ; 5d
    65436573    retn                                      ; c3
    6544 in_byte_:                                    ; 0xc36ae LB 0x14
     6574in_byte_:                                    ; 0xc36ea LB 0x14
    65456575    push bp                                   ; 55
    65466576    mov bp, sp                                ; 89 e5
     
    65576587    pop bp                                    ; 5d
    65586588    retn                                      ; c3
    6559 dispi_get_id_:                               ; 0xc36c2 LB 0x14
     6589dispi_get_id_:                               ; 0xc36fe LB 0x14
    65606590    push bp                                   ; 55
    65616591    mov bp, sp                                ; 89 e5
     
    65706600    pop bp                                    ; 5d
    65716601    retn                                      ; c3
    6572 dispi_set_id_:                               ; 0xc36d6 LB 0x1a
     6602dispi_set_id_:                               ; 0xc3712 LB 0x1a
    65736603    push bp                                   ; 55
    65746604    mov bp, sp                                ; 89 e5
     
    65876617    pop bp                                    ; 5d
    65886618    retn                                      ; c3
    6589 vbe_init_:                                   ; 0xc36f0 LB 0x2c
     6619vbe_init_:                                   ; 0xc372c LB 0x2c
    65906620    push bp                                   ; 55
    65916621    mov bp, sp                                ; 89 e5
     
    65936623    push dx                                   ; 52
    65946624    mov ax, 0b0c0h                            ; b8 c0 b0
    6595     call 036d6h                               ; e8 db ff
    6596     call 036c2h                               ; e8 c4 ff
     6625    call 03712h                               ; e8 db ff
     6626    call 036feh                               ; e8 c4 ff
    65976627    cmp ax, 0b0c0h                            ; 3d c0 b0
    6598     jne short 03715h                          ; 75 12
     6628    jne short 03751h                          ; 75 12
    65996629    mov bx, strict word 00001h                ; bb 01 00
    66006630    mov dx, 000b9h                            ; ba b9 00
    66016631    mov ax, strict word 00040h                ; b8 40 00
    6602     call 03173h                               ; e8 64 fa
     6632    call 03196h                               ; e8 4b fa
    66036633    mov ax, 0b0c4h                            ; b8 c4 b0
    6604     call 036d6h                               ; e8 c1 ff
     6634    call 03712h                               ; e8 c1 ff
    66056635    lea sp, [bp-004h]                         ; 8d 66 fc
    66066636    pop dx                                    ; 5a
     
    66086638    pop bp                                    ; 5d
    66096639    retn                                      ; c3
    6610 mode_info_find_mode_:                        ; 0xc371c LB 0x55
     6640mode_info_find_mode_:                        ; 0xc3758 LB 0x55
    66116641    push bp                                   ; 55
    66126642    mov bp, sp                                ; 89 e5
     
    66196649    xor dx, dx                                ; 31 d2
    66206650    mov ax, 003b6h                            ; b8 b6 03
    6621     call 0369ch                               ; e8 6d ff
     6651    call 036d8h                               ; e8 6d ff
    66226652    cmp ax, 077cch                            ; 3d cc 77
    6623     jne short 03766h                          ; 75 32
     6653    jne short 037a2h                          ; 75 32
    66246654    mov bx, strict word 00004h                ; bb 04 00
    66256655    mov dx, bx                                ; 89 da
    66266656    mov ax, 003b6h                            ; b8 b6 03
    6627     call 0369ch                               ; e8 5d ff
     6657    call 036d8h                               ; e8 5d ff
    66286658    mov cx, ax                                ; 89 c1
    66296659    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6630     je short 03766h                           ; 74 20
     6660    je short 037a2h                           ; 74 20
    66316661    lea dx, [bx+002h]                         ; 8d 57 02
    66326662    mov ax, 003b6h                            ; b8 b6 03
    6633     call 0369ch                               ; e8 4d ff
     6663    call 036d8h                               ; e8 4d ff
    66346664    lea dx, [bx+044h]                         ; 8d 57 44
    66356665    cmp cx, di                                ; 39 f9
    6636     jne short 03762h                          ; 75 0c
     6666    jne short 0379eh                          ; 75 0c
    66376667    test si, si                               ; 85 f6
    6638     jne short 0375eh                          ; 75 04
     6668    jne short 0379ah                          ; 75 04
    66396669    mov ax, bx                                ; 89 d8
    6640     jmp short 03768h                          ; eb 0a
     6670    jmp short 037a4h                          ; eb 0a
    66416671    test AL, strict byte 080h                 ; a8 80
    6642     jne short 0375ah                          ; 75 f8
     6672    jne short 03796h                          ; 75 f8
    66436673    mov bx, dx                                ; 89 d3
    6644     jmp short 03739h                          ; eb d3
     6674    jmp short 03775h                          ; eb d3
    66456675    xor ax, ax                                ; 31 c0
    66466676    lea sp, [bp-008h]                         ; 8d 66 f8
     
    66516681    pop bp                                    ; 5d
    66526682    retn                                      ; c3
    6653 vbe_biosfn_return_controller_information_: ; 0xc3771 LB 0x12f
     6683vbe_biosfn_return_controller_information_: ; 0xc37ad LB 0x12f
    66546684    push bp                                   ; 55
    66556685    mov bp, sp                                ; 89 e5
     
    66626692    mov word [bp-00ah], bx                    ; 89 5e f6
    66636693    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6664     call 005b7h                               ; e8 2e ce
     6694    call 005b7h                               ; e8 f2 cd
    66656695    mov word [bp-010h], ax                    ; 89 46 f0
    66666696    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    66686698    xor dx, dx                                ; 31 d2
    66696699    mov ax, 003b6h                            ; b8 b6 03
    6670     call 0369ch                               ; e8 02 ff
     6700    call 036d8h                               ; e8 02 ff
    66716701    cmp ax, 077cch                            ; 3d cc 77
    6672     je short 037a9h                           ; 74 0a
     6702    je short 037e5h                           ; 74 0a
    66736703    push SS                                   ; 16
    66746704    pop ES                                    ; 07
    66756705    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6676     jmp near 03898h                           ; e9 ef 00
     6706    jmp near 038d4h                           ; e9 ef 00
    66776707    mov cx, strict word 00004h                ; b9 04 00
    66786708    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    66796709    mov es, [bp-008h]                         ; 8e 46 f8
    66806710    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6681     jne short 037c3h                          ; 75 07
     6711    jne short 037ffh                          ; 75 07
    66826712    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6683     je short 037d2h                           ; 74 0f
     6713    je short 0380eh                           ; 74 0f
    66846714    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6685     jne short 037d7h                          ; 75 0c
     6715    jne short 03813h                          ; 75 0c
    66866716    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6687     jne short 037d7h                          ; 75 05
     6717    jne short 03813h                          ; 75 05
    66886718    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    66896719    mov es, [bp-008h]                         ; 8e 46 f8
     
    66916721    mov word [es:bx+002h], 04153h             ; 26 c7 47 02 53 41
    66926722    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
    6693     mov word [es:bx+006h], 07c5eh             ; 26 c7 47 06 5e 7c
     6723    mov word [es:bx+006h], 07c6ch             ; 26 c7 47 06 6c 7c
    66946724    mov [es:bx+008h], ds                      ; 26 8c 5f 08
    66956725    mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
     
    67016731    mov dx, strict word 0ffffh                ; ba ff ff
    67026732    mov ax, 003b6h                            ; b8 b6 03
    6703     call 0369ch                               ; e8 84 fe
     6733    call 036d8h                               ; e8 84 fe
    67046734    mov es, [bp-008h]                         ; 8e 46 f8
    67056735    mov word [es:bx+012h], ax                 ; 26 89 47 12
    67066736    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6707     je short 03849h                           ; 74 24
     6737    je short 03885h                           ; 74 24
    67086738    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    6709     mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
     6739    mov word [es:bx+016h], 07c81h             ; 26 c7 47 16 81 7c
    67106740    mov [es:bx+018h], ds                      ; 26 8c 5f 18
    6711     mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
     6741    mov word [es:bx+01ah], 07c94h             ; 26 c7 47 1a 94 7c
    67126742    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
    6713     mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
     6743    mov word [es:bx+01eh], 07cb5h             ; 26 c7 47 1e b5 7c
    67146744    mov [es:bx+020h], ds                      ; 26 8c 5f 20
    67156745    mov dx, cx                                ; 89 ca
    67166746    add dx, strict byte 0001bh                ; 83 c2 1b
    67176747    mov ax, 003b6h                            ; b8 b6 03
    6718     call 036aeh                               ; e8 5a fe
     6748    call 036eah                               ; e8 5a fe
    67196749    xor ah, ah                                ; 30 e4
    67206750    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6721     jnbe short 03874h                         ; 77 19
     6751    jnbe short 038b0h                         ; 77 19
    67226752    mov dx, cx                                ; 89 ca
    67236753    mov ax, 003b6h                            ; b8 b6 03
    6724     call 0369ch                               ; e8 39 fe
     6754    call 036d8h                               ; e8 39 fe
    67256755    mov bx, ax                                ; 89 c3
    67266756    mov dx, word [bp-00ah]                    ; 8b 56 f6
    67276757    add dx, word [bp-00ch]                    ; 03 56 f4
    67286758    mov ax, di                                ; 89 f8
    6729     call 0318fh                               ; e8 1f f9
     6759    call 031b2h                               ; e8 06 f9
    67306760    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    67316761    add cx, strict byte 00044h                ; 83 c1 44
    67326762    mov dx, cx                                ; 89 ca
    67336763    mov ax, 003b6h                            ; b8 b6 03
    6734     call 0369ch                               ; e8 1d fe
     6764    call 036d8h                               ; e8 1d fe
    67356765    mov bx, ax                                ; 89 c3
    67366766    cmp ax, strict word 0ffffh                ; 3d ff ff
    6737     jne short 03849h                          ; 75 c3
     6767    jne short 03885h                          ; 75 c3
    67386768    mov dx, word [bp-00ah]                    ; 8b 56 f6
    67396769    add dx, word [bp-00ch]                    ; 03 56 f4
    67406770    mov ax, di                                ; 89 f8
    6741     call 0318fh                               ; e8 fe f8
     6771    call 031b2h                               ; e8 e5 f8
    67426772    push SS                                   ; 16
    67436773    pop ES                                    ; 07
     
    67496779    pop bp                                    ; 5d
    67506780    retn                                      ; c3
    6751 vbe_biosfn_return_mode_information_:         ; 0xc38a0 LB 0xbd
     6781vbe_biosfn_return_mode_information_:         ; 0xc38dc LB 0xbd
    67526782    push bp                                   ; 55
    67536783    mov bp, sp                                ; 89 e5
     
    67616791    mov word [bp-006h], cx                    ; 89 4e fa
    67626792    test dh, 040h                             ; f6 c6 40
    6763     je short 038b9h                           ; 74 05
     6793    je short 038f5h                           ; 74 05
    67646794    mov dx, strict word 00001h                ; ba 01 00
    6765     jmp short 038bbh                          ; eb 02
     6795    jmp short 038f7h                          ; eb 02
    67666796    xor dx, dx                                ; 31 d2
    67676797    and ah, 001h                              ; 80 e4 01
    6768     call 0371ch                               ; e8 5b fe
     6798    call 03758h                               ; e8 5b fe
    67696799    mov word [bp-008h], ax                    ; 89 46 f8
    67706800    test ax, ax                               ; 85 c0
    6771     je short 038feh                           ; 74 36
     6801    je short 0393ah                           ; 74 36
    67726802    mov cx, 00100h                            ; b9 00 01
    67736803    xor ax, ax                                ; 31 c0
     
    67756805    mov es, si                                ; 8e c6
    67766806    cld                                       ; fc
    6777     jcxz 038d7h                               ; e3 02
     6807    jcxz 03913h                               ; e3 02
    67786808    rep stosb                                 ; f3 aa
    67796809    xor cx, cx                                ; 31 c9
    6780     jmp short 038e0h                          ; eb 05
     6810    jmp short 0391ch                          ; eb 05
    67816811    cmp cx, strict byte 00042h                ; 83 f9 42
    6782     jnc short 03900h                          ; 73 20
     6812    jnc short 0393ch                          ; 73 20
    67836813    mov dx, word [bp-008h]                    ; 8b 56 f8
    67846814    inc dx                                    ; 42
     
    67866816    add dx, cx                                ; 01 ca
    67876817    mov ax, 003b6h                            ; b8 b6 03
    6788     call 036aeh                               ; e8 c1 fd
     6818    call 036eah                               ; e8 c1 fd
    67896819    mov bl, al                                ; 88 c3
    67906820    xor bh, bh                                ; 30 ff
     
    67926822    add dx, cx                                ; 01 ca
    67936823    mov ax, si                                ; 89 f0
    6794     call 03173h                               ; e8 78 f8
    6795     inc cx                                    ; 41
    6796     jmp short 038dbh                          ; eb dd
    6797     jmp short 0394bh                          ; eb 4b
     6824    call 03196h                               ; e8 5f f8
     6825    inc cx                                    ; 41
     6826    jmp short 03917h                          ; eb dd
     6827    jmp short 03987h                          ; eb 4b
    67986828    mov dx, word [bp-006h]                    ; 8b 56 fa
    67996829    inc dx                                    ; 42
    68006830    inc dx                                    ; 42
    68016831    mov ax, si                                ; 89 f0
    6802     call 03165h                               ; e8 5b f8
     6832    call 03188h                               ; e8 42 f8
    68036833    test AL, strict byte 001h                 ; a8 01
    6804     je short 0392ah                           ; 74 1c
     6834    je short 03966h                           ; 74 1c
    68056835    mov dx, word [bp-006h]                    ; 8b 56 fa
    68066836    add dx, strict byte 0000ch                ; 83 c2 0c
    68076837    mov bx, 00629h                            ; bb 29 06
    68086838    mov ax, si                                ; 89 f0
    6809     call 0318fh                               ; e8 73 f8
     6839    call 031b2h                               ; e8 5a f8
    68106840    mov dx, word [bp-006h]                    ; 8b 56 fa
    68116841    add dx, strict byte 0000eh                ; 83 c2 0e
    68126842    mov bx, 0c000h                            ; bb 00 c0
    68136843    mov ax, si                                ; 89 f0
    6814     call 0318fh                               ; e8 65 f8
     6844    call 031b2h                               ; e8 4c f8
    68156845    mov ax, strict word 0000bh                ; b8 0b 00
    68166846    mov dx, 001ceh                            ; ba ce 01
    6817     call 00570h                               ; e8 3d cc
     6847    call 00570h                               ; e8 01 cc
    68186848    mov dx, 001cfh                            ; ba cf 01
    6819     call 00577h                               ; e8 3e cc
     6849    call 00577h                               ; e8 02 cc
    68206850    mov dx, word [bp-006h]                    ; 8b 56 fa
    68216851    add dx, strict byte 0002ah                ; 83 c2 2a
    68226852    mov bx, ax                                ; 89 c3
    68236853    mov ax, si                                ; 89 f0
    6824     call 0318fh                               ; e8 49 f8
     6854    call 031b2h                               ; e8 30 f8
    68256855    mov ax, strict word 0004fh                ; b8 4f 00
    6826     jmp short 0394eh                          ; eb 03
     6856    jmp short 0398ah                          ; eb 03
    68276857    mov ax, 00100h                            ; b8 00 01
    68286858    push SS                                   ; 16
     
    68356865    pop bp                                    ; 5d
    68366866    retn                                      ; c3
    6837 vbe_biosfn_set_mode_:                        ; 0xc395d LB 0xeb
     6867vbe_biosfn_set_mode_:                        ; 0xc3999 LB 0xeb
    68386868    push bp                                   ; 55
    68396869    mov bp, sp                                ; 89 e5
     
    68446874    mov word [bp-00ah], dx                    ; 89 56 f6
    68456875    test byte [bp-009h], 040h                 ; f6 46 f7 40
    6846     je short 03975h                           ; 74 05
     6876    je short 039b1h                           ; 74 05
    68476877    mov ax, strict word 00001h                ; b8 01 00
    6848     jmp short 03977h                          ; eb 02
     6878    jmp short 039b3h                          ; eb 02
    68496879    xor ax, ax                                ; 31 c0
    68506880    mov dx, ax                                ; 89 c2
    68516881    test ax, ax                               ; 85 c0
    6852     je short 03980h                           ; 74 03
     6882    je short 039bch                           ; 74 03
    68536883    mov ax, strict word 00040h                ; b8 40 00
    68546884    mov byte [bp-006h], al                    ; 88 46 fa
    68556885    test byte [bp-009h], 080h                 ; f6 46 f7 80
    6856     je short 0398eh                           ; 74 05
     6886    je short 039cah                           ; 74 05
    68576887    mov ax, 00080h                            ; b8 80 00
    6858     jmp short 03990h                          ; eb 02
     6888    jmp short 039cch                          ; eb 02
    68596889    xor ax, ax                                ; 31 c0
    68606890    mov byte [bp-008h], al                    ; 88 46 f8
    68616891    and byte [bp-009h], 001h                  ; 80 66 f7 01
    68626892    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    6863     jnc short 039b1h                          ; 73 13
     6893    jnc short 039edh                          ; 73 13
    68646894    xor ax, ax                                ; 31 c0
    6865     call 005ddh                               ; e8 3a cc
     6895    call 005ddh                               ; e8 fe cb
    68666896    mov al, byte [bp-00ah]                    ; 8a 46 f6
    68676897    xor ah, ah                                ; 30 e4
    6868     call 0101ch                               ; e8 71 d6
     6898    call 0101ch                               ; e8 35 d6
    68696899    mov ax, strict word 0004fh                ; b8 4f 00
    6870     jmp near 03a3eh                           ; e9 8d 00
     6900    jmp near 03a7ah                           ; e9 8d 00
    68716901    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6872     call 0371ch                               ; e8 65 fd
     6902    call 03758h                               ; e8 65 fd
    68736903    mov bx, ax                                ; 89 c3
    68746904    test ax, ax                               ; 85 c0
    6875     jne short 039c0h                          ; 75 03
    6876     jmp near 03a3bh                           ; e9 7b 00
     6905    jne short 039fch                          ; 75 03
     6906    jmp near 03a77h                           ; e9 7b 00
    68776907    lea dx, [bx+014h]                         ; 8d 57 14
    68786908    mov ax, 003b6h                            ; b8 b6 03
    6879     call 0369ch                               ; e8 d3 fc
     6909    call 036d8h                               ; e8 d3 fc
    68806910    mov cx, ax                                ; 89 c1
    68816911    lea dx, [bx+016h]                         ; 8d 57 16
    68826912    mov ax, 003b6h                            ; b8 b6 03
    6883     call 0369ch                               ; e8 c8 fc
     6913    call 036d8h                               ; e8 c8 fc
    68846914    mov di, ax                                ; 89 c7
    68856915    lea dx, [bx+01bh]                         ; 8d 57 1b
    68866916    mov ax, 003b6h                            ; b8 b6 03
    6887     call 036aeh                               ; e8 cf fc
     6917    call 036eah                               ; e8 cf fc
    68886918    mov bl, al                                ; 88 c3
    68896919    mov dl, al                                ; 88 c2
    68906920    xor ax, ax                                ; 31 c0
    6891     call 005ddh                               ; e8 f5 cb
     6921    call 005ddh                               ; e8 b9 cb
    68926922    cmp bl, 004h                              ; 80 fb 04
    6893     jne short 039f3h                          ; 75 06
     6923    jne short 03a2fh                          ; 75 06
    68946924    mov ax, strict word 0006ah                ; b8 6a 00
    6895     call 0101ch                               ; e8 29 d6
     6925    call 0101ch                               ; e8 ed d5
    68966926    mov al, dl                                ; 88 d0
    68976927    xor ah, ah                                ; 30 e4
    6898     call 03613h                               ; e8 19 fc
     6928    call 0364fh                               ; e8 19 fc
    68996929    mov ax, cx                                ; 89 c8
    6900     call 035d5h                               ; e8 d6 fb
     6930    call 035f8h                               ; e8 bd fb
    69016931    mov ax, di                                ; 89 f8
    6902     call 035f4h                               ; e8 f0 fb
     6932    call 03617h                               ; e8 d7 fb
    69036933    xor ax, ax                                ; 31 c0
    6904     call 00603h                               ; e8 fa cb
     6934    call 00603h                               ; e8 be cb
    69056935    mov al, byte [bp-008h]                    ; 8a 46 f8
    69066936    or AL, strict byte 001h                   ; 0c 01
     
    69086938    mov dl, byte [bp-006h]                    ; 8a 56 fa
    69096939    or al, dl                                 ; 08 d0
    6910     call 005ddh                               ; e8 c5 cb
    6911     call 006d2h                               ; e8 b7 cc
     6940    call 005ddh                               ; e8 89 cb
     6941    call 006d2h                               ; e8 7b cc
    69126942    mov bx, word [bp-00ah]                    ; 8b 5e f6
    69136943    mov dx, 000bah                            ; ba ba 00
    69146944    mov ax, strict word 00040h                ; b8 40 00
    6915     call 0318fh                               ; e8 68 f7
     6945    call 031b2h                               ; e8 4f f7
    69166946    mov bl, byte [bp-008h]                    ; 8a 5e f8
    69176947    or bl, 060h                               ; 80 cb 60
     
    69196949    mov dx, 00087h                            ; ba 87 00
    69206950    mov ax, strict word 00040h                ; b8 40 00
    6921     call 03173h                               ; e8 3b f7
    6922     jmp near 039abh                           ; e9 70 ff
     6951    call 03196h                               ; e8 22 f7
     6952    jmp near 039e7h                           ; e9 70 ff
    69236953    mov ax, 00100h                            ; b8 00 01
    69246954    mov word [ss:si], ax                      ; 36 89 04
     
    69286958    pop bp                                    ; 5d
    69296959    retn                                      ; c3
    6930 vbe_biosfn_read_video_state_size_:           ; 0xc3a48 LB 0x8
     6960vbe_biosfn_read_video_state_size_:           ; 0xc3a84 LB 0x8
    69316961    push bp                                   ; 55
    69326962    mov bp, sp                                ; 89 e5
     
    69346964    pop bp                                    ; 5d
    69356965    retn                                      ; c3
    6936 vbe_biosfn_save_video_state_:                ; 0xc3a50 LB 0x5b
     6966vbe_biosfn_save_video_state_:                ; 0xc3a8c LB 0x5b
    69376967    push bp                                   ; 55
    69386968    mov bp, sp                                ; 89 e5
     
    69536983    mov dx, cx                                ; 89 ca
    69546984    mov ax, di                                ; 89 f8
    6955     call 0318fh                               ; e8 1c f7
     6985    call 031b2h                               ; e8 03 f7
    69566986    inc cx                                    ; 41
    69576987    inc cx                                    ; 41
    69586988    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    6959     je short 03aa2h                           ; 74 27
     6989    je short 03adeh                           ; 74 27
    69606990    mov si, strict word 00001h                ; be 01 00
    6961     jmp short 03a85h                          ; eb 05
     6991    jmp short 03ac1h                          ; eb 05
    69626992    cmp si, strict byte 00009h                ; 83 fe 09
    6963     jnbe short 03aa2h                         ; 77 1d
     6993    jnbe short 03adeh                         ; 77 1d
    69646994    cmp si, strict byte 00004h                ; 83 fe 04
    6965     je short 03a9fh                           ; 74 15
     6995    je short 03adbh                           ; 74 15
    69666996    mov ax, si                                ; 89 f0
    69676997    mov dx, 001ceh                            ; ba ce 01
     
    69727002    mov dx, cx                                ; 89 ca
    69737003    mov ax, di                                ; 89 f8
    6974     call 0318fh                               ; e8 f2 f6
     7004    call 031b2h                               ; e8 d9 f6
    69757005    inc cx                                    ; 41
    69767006    inc cx                                    ; 41
    69777007    inc si                                    ; 46
    6978     jmp short 03a80h                          ; eb de
     7008    jmp short 03abch                          ; eb de
    69797009    lea sp, [bp-008h]                         ; 8d 66 f8
    69807010    pop di                                    ; 5f
     
    69847014    pop bp                                    ; 5d
    69857015    retn                                      ; c3
    6986 vbe_biosfn_restore_video_state_:             ; 0xc3aab LB 0x9b
     7016vbe_biosfn_restore_video_state_:             ; 0xc3ae7 LB 0x9b
    69877017    push bp                                   ; 55
    69887018    mov bp, sp                                ; 89 e5
     
    69937023    mov cx, ax                                ; 89 c1
    69947024    mov bx, dx                                ; 89 d3
    6995     call 03181h                               ; e8 c8 f6
     7025    call 031a4h                               ; e8 af f6
    69967026    mov word [bp-008h], ax                    ; 89 46 f8
    69977027    inc bx                                    ; 43
    69987028    inc bx                                    ; 43
    69997029    test byte [bp-008h], 001h                 ; f6 46 f8 01
    7000     jne short 03ad4h                          ; 75 10
     7030    jne short 03b10h                          ; 75 10
    70017031    mov ax, strict word 00004h                ; b8 04 00
    70027032    mov dx, 001ceh                            ; ba ce 01
     
    70057035    mov dx, 001cfh                            ; ba cf 01
    70067036    out DX, ax                                ; ef
    7007     jmp short 03b3eh                          ; eb 6a
     7037    jmp short 03b7ah                          ; eb 6a
    70087038    mov ax, strict word 00001h                ; b8 01 00
    70097039    mov dx, 001ceh                            ; ba ce 01
     
    70117041    mov dx, bx                                ; 89 da
    70127042    mov ax, cx                                ; 89 c8
    7013     call 03181h                               ; e8 9f f6
     7043    call 031a4h                               ; e8 86 f6
    70147044    mov dx, 001cfh                            ; ba cf 01
    70157045    out DX, ax                                ; ef
     
    70217051    mov dx, bx                                ; 89 da
    70227052    mov ax, cx                                ; 89 c8
    7023     call 03181h                               ; e8 8b f6
     7053    call 031a4h                               ; e8 72 f6
    70247054    mov dx, 001cfh                            ; ba cf 01
    70257055    out DX, ax                                ; ef
     
    70317061    mov dx, bx                                ; 89 da
    70327062    mov ax, cx                                ; 89 c8
    7033     call 03181h                               ; e8 77 f6
     7063    call 031a4h                               ; e8 5e f6
    70347064    mov dx, 001cfh                            ; ba cf 01
    70357065    out DX, ax                                ; ef
     
    70437073    out DX, ax                                ; ef
    70447074    mov si, strict word 00005h                ; be 05 00
    7045     jmp short 03b28h                          ; eb 05
     7075    jmp short 03b64h                          ; eb 05
    70467076    cmp si, strict byte 00009h                ; 83 fe 09
    7047     jnbe short 03b3eh                         ; 77 16
     7077    jnbe short 03b7ah                         ; 77 16
    70487078    mov ax, si                                ; 89 f0
    70497079    mov dx, 001ceh                            ; ba ce 01
     
    70517081    mov dx, bx                                ; 89 da
    70527082    mov ax, cx                                ; 89 c8
    7053     call 03181h                               ; e8 4c f6
     7083    call 031a4h                               ; e8 33 f6
    70547084    mov dx, 001cfh                            ; ba cf 01
    70557085    out DX, ax                                ; ef
     
    70577087    inc bx                                    ; 43
    70587088    inc si                                    ; 46
    7059     jmp short 03b23h                          ; eb e5
     7089    jmp short 03b5fh                          ; eb e5
    70607090    lea sp, [bp-006h]                         ; 8d 66 fa
    70617091    pop si                                    ; 5e
     
    70647094    pop bp                                    ; 5d
    70657095    retn                                      ; c3
    7066 vbe_biosfn_save_restore_state_:              ; 0xc3b46 LB 0x8c
     7096vbe_biosfn_save_restore_state_:              ; 0xc3b82 LB 0x8c
    70677097    push bp                                   ; 55
    70687098    mov bp, sp                                ; 89 e5
     
    70777107    xor ah, ah                                ; 30 e4
    70787108    cmp ax, strict word 00002h                ; 3d 02 00
    7079     je short 03ba5h                           ; 74 45
     7109    je short 03be1h                           ; 74 45
    70807110    cmp ax, strict word 00001h                ; 3d 01 00
    7081     je short 03b89h                           ; 74 24
     7111    je short 03bc5h                           ; 74 24
    70827112    test ax, ax                               ; 85 c0
    7083     jne short 03bc1h                          ; 75 58
     7113    jne short 03bfdh                          ; 75 58
    70847114    mov ax, word [bp-006h]                    ; 8b 46 fa
    7085     call 02a51h                               ; e8 e2 ee
     7115    call 02a74h                               ; e8 c9 ee
    70867116    mov cx, ax                                ; 89 c1
    70877117    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7088     je short 03b7ch                           ; 74 05
    7089     call 03a48h                               ; e8 ce fe
     7118    je short 03bb8h                           ; 74 05
     7119    call 03a84h                               ; e8 ce fe
    70907120    add ax, cx                                ; 01 c8
    70917121    add ax, strict word 0003fh                ; 05 3f 00
     
    70947124    pop ES                                    ; 07
    70957125    mov word [es:bx], ax                      ; 26 89 07
    7096     jmp short 03bc4h                          ; eb 3b
     7126    jmp short 03c00h                          ; eb 3b
    70977127    push SS                                   ; 16
    70987128    pop ES                                    ; 07
     
    71007130    mov dx, cx                                ; 89 ca
    71017131    mov ax, word [bp-006h]                    ; 8b 46 fa
    7102     call 02a86h                               ; e8 f0 ee
     7132    call 02aa9h                               ; e8 d7 ee
    71037133    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7104     je short 03bc4h                           ; 74 28
     7134    je short 03c00h                           ; 74 28
    71057135    mov dx, ax                                ; 89 c2
    71067136    mov ax, cx                                ; 89 c8
    7107     call 03a50h                               ; e8 ad fe
    7108     jmp short 03bc4h                          ; eb 1f
     7137    call 03a8ch                               ; e8 ad fe
     7138    jmp short 03c00h                          ; eb 1f
    71097139    push SS                                   ; 16
    71107140    pop ES                                    ; 07
     
    71127142    mov dx, cx                                ; 89 ca
    71137143    mov ax, word [bp-006h]                    ; 8b 46 fa
    7114     call 02e07h                               ; e8 55 f2
     7144    call 02e2ah                               ; e8 3c f2
    71157145    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7116     je short 03bc4h                           ; 74 0c
     7146    je short 03c00h                           ; 74 0c
    71177147    mov dx, ax                                ; 89 c2
    71187148    mov ax, cx                                ; 89 c8
    7119     call 03aabh                               ; e8 ec fe
    7120     jmp short 03bc4h                          ; eb 03
     7149    call 03ae7h                               ; e8 ec fe
     7150    jmp short 03c00h                          ; eb 03
    71217151    mov di, 00100h                            ; bf 00 01
    71227152    push SS                                   ; 16
     
    71287158    pop bp                                    ; 5d
    71297159    retn 00002h                               ; c2 02 00
    7130 vbe_biosfn_get_set_scanline_length_:         ; 0xc3bd2 LB 0xb0
     7160vbe_biosfn_get_set_scanline_length_:         ; 0xc3c0e LB 0xdf
    71317161    push bp                                   ; 55
    71327162    mov bp, sp                                ; 89 e5
    71337163    push si                                   ; 56
    71347164    push di                                   ; 57
    7135     sub sp, strict byte 00006h                ; 83 ec 06
    7136     push ax                                   ; 50
    7137     mov si, dx                                ; 89 d6
    7138     mov di, bx                                ; 89 df
    7139     mov word [bp-008h], cx                    ; 89 4e f8
    7140     call 03632h                               ; e8 4d fa
    7141     mov cl, al                                ; 88 c1
    7142     mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
     7165    sub sp, strict byte 00008h                ; 83 ec 08
     7166    push ax                                   ; 50
     7167    mov di, dx                                ; 89 d7
     7168    mov word [bp-008h], bx                    ; 89 5e f8
     7169    mov si, cx                                ; 89 ce
     7170    call 0366eh                               ; e8 4d fa
     7171    cmp AL, strict byte 00fh                  ; 3c 0f
     7172    jne short 03c2ah                          ; 75 05
     7173    mov bx, strict word 00010h                ; bb 10 00
     7174    jmp short 03c2eh                          ; eb 04
     7175    xor ah, ah                                ; 30 e4
     7176    mov bx, ax                                ; 89 c3
     7177    mov byte [bp-006h], bl                    ; 88 5e fa
     7178    call 036a6h                               ; e8 72 fa
     7179    mov word [bp-00ah], ax                    ; 89 46 f6
     7180    mov word [bp-00ch], strict word 0004fh    ; c7 46 f4 4f 00
    71437181    push SS                                   ; 16
    71447182    pop ES                                    ; 07
    7145     mov bx, word [es:di]                      ; 26 8b 1d
    7146     mov al, byte [es:si]                      ; 26 8a 04
    7147     cmp AL, strict byte 002h                  ; 3c 02
    7148     je short 03c02h                           ; 74 0a
    7149     cmp AL, strict byte 001h                  ; 3c 01
    7150     je short 03c2ah                           ; 74 2e
    7151     test al, al                               ; 84 c0
    7152     je short 03c25h                           ; 74 25
    7153     jmp short 03c6bh                          ; eb 69
    7154     cmp cl, 004h                              ; 80 f9 04
    7155     jne short 03c0ch                          ; 75 05
     7183    mov bx, word [bp-008h]                    ; 8b 5e f8
     7184    mov bx, word [es:bx]                      ; 26 8b 1f
     7185    mov cl, byte [es:di]                      ; 26 8a 0d
     7186    cmp cl, 002h                              ; 80 f9 02
     7187    je short 03c58h                           ; 74 0c
     7188    cmp cl, 001h                              ; 80 f9 01
     7189    je short 03c7eh                           ; 74 2d
     7190    test cl, cl                               ; 84 c9
     7191    je short 03c79h                           ; 74 24
     7192    jmp near 03cd6h                           ; e9 7e 00
     7193    mov al, byte [bp-006h]                    ; 8a 46 fa
     7194    cmp AL, strict byte 004h                  ; 3c 04
     7195    jne short 03c64h                          ; 75 05
    71567196    sal bx, 003h                              ; c1 e3 03
    7157     jmp short 03c25h                          ; eb 19
    7158     mov al, cl                                ; 88 c8
     7197    jmp short 03c79h                          ; eb 15
    71597198    xor ah, ah                                ; 30 e4
    71607199    cwd                                       ; 99
     
    71637202    ; sbb ax, dx                                ; 1b c2
    71647203    sar ax, 003h                              ; c1 f8 03
    7165     mov word [bp-00ah], ax                    ; 89 46 f6
     7204    mov cx, ax                                ; 89 c1
    71667205    mov ax, bx                                ; 89 d8
    71677206    xor dx, dx                                ; 31 d2
    7168     div word [bp-00ah]                        ; f7 76 f6
     7207    div cx                                    ; f7 f1
    71697208    mov bx, ax                                ; 89 c3
    71707209    mov ax, bx                                ; 89 d8
    7171     call 0364bh                               ; e8 21 fa
    7172     call 0366ah                               ; e8 3d fa
    7173     mov bx, ax                                ; 89 c3
     7210    call 03687h                               ; e8 09 fa
     7211    call 036a6h                               ; e8 25 fa
     7212    mov cx, ax                                ; 89 c1
    71747213    push SS                                   ; 16
    71757214    pop ES                                    ; 07
    7176     mov word [es:di], ax                      ; 26 89 05
    7177     cmp cl, 004h                              ; 80 f9 04
    7178     jne short 03c3eh                          ; 75 05
     7215    mov bx, word [bp-008h]                    ; 8b 5e f8
     7216    mov word [es:bx], ax                      ; 26 89 07
     7217    mov al, byte [bp-006h]                    ; 8a 46 fa
     7218    cmp AL, strict byte 004h                  ; 3c 04
     7219    jne short 03c99h                          ; 75 07
     7220    mov bx, cx                                ; 89 cb
    71797221    shr bx, 003h                              ; c1 eb 03
    7180     jmp short 03c53h                          ; eb 15
    7181     mov al, cl                                ; 88 c8
     7222    jmp short 03cach                          ; eb 13
    71827223    xor ah, ah                                ; 30 e4
    71837224    cwd                                       ; 99
     
    71867227    ; sbb ax, dx                                ; 1b c2
    71877228    sar ax, 003h                              ; c1 f8 03
    7188     mov di, ax                                ; 89 c7
    7189     mov ax, bx                                ; 89 d8
    7190     mul di                                    ; f7 e7
     7229    mov bx, ax                                ; 89 c3
     7230    mov ax, cx                                ; 89 c8
     7231    mul bx                                    ; f7 e3
    71917232    mov bx, ax                                ; 89 c3
    71927233    add bx, strict byte 00003h                ; 83 c3 03
     
    71947235    push SS                                   ; 16
    71957236    pop ES                                    ; 07
    7196     mov word [es:si], bx                      ; 26 89 1c
    7197     call 03683h                               ; e8 22 fa
     7237    mov word [es:di], bx                      ; 26 89 1d
     7238    call 036bfh                               ; e8 05 fa
    71987239    push SS                                   ; 16
    71997240    pop ES                                    ; 07
    7200     mov bx, word [bp-008h]                    ; 8b 5e f8
    7201     mov word [es:bx], ax                      ; 26 89 07
    7202     jmp short 03c70h                          ; eb 05
    7203     mov word [bp-006h], 00100h                ; c7 46 fa 00 01
     7241    mov word [es:si], ax                      ; 26 89 04
     7242    call 03636h                               ; e8 74 f9
    72047243    push SS                                   ; 16
    72057244    pop ES                                    ; 07
    7206     mov ax, word [bp-006h]                    ; 8b 46 fa
    7207     mov bx, word [bp-00ch]                    ; 8b 5e f4
     7245    cmp ax, word [es:si]                      ; 26 3b 04
     7246    jbe short 03cdbh                          ; 76 12
     7247    mov ax, word [bp-00ah]                    ; 8b 46 f6
     7248    call 03687h                               ; e8 b8 f9
     7249    mov word [bp-00ch], 00200h                ; c7 46 f4 00 02
     7250    jmp short 03cdbh                          ; eb 05
     7251    mov word [bp-00ch], 00100h                ; c7 46 f4 00 01
     7252    push SS                                   ; 16
     7253    pop ES                                    ; 07
     7254    mov ax, word [bp-00ch]                    ; 8b 46 f4
     7255    mov bx, word [bp-00eh]                    ; 8b 5e f2
    72087256    mov word [es:bx], ax                      ; 26 89 07
    72097257    lea sp, [bp-004h]                         ; 8d 66 fc
     
    72137261    retn                                      ; c3
    72147262
    7215   ; Padding 0x77e bytes at 0xc3c82
    7216   times 1918 db 0
     7263  ; Padding 0x713 bytes at 0xc3ced
     7264  times 1811 db 0
    72177265
    72187266section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
     
    73467394  times 235 db 0
    73477395
    7348 section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
    7349 _msg_vga_init:                               ; 0xc4600 LB 0x2f
    7350     db  'Oracle VM VirtualBox Version 5.1.51 VGA BIOS', 00dh, 00ah, 000h
    7351 _vga_modes:                                  ; 0xc462f LB 0x80
     7396section _DATA progbits vstart=0x4600 align=1 ; size=0x3732 class=DATA group=DGROUP
     7397_msg_vga_init:                               ; 0xc4600 LB 0x34
     7398    db  'Oracle VM VirtualBox Version 5.2.0_BETA1 VGA BIOS', 00dh, 00ah, 000h
     7399_vga_modes:                                  ; 0xc4634 LB 0x80
    73527400    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
    73537401    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     
    73587406    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    73597407    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    7360 _line_to_vpti:                               ; 0xc46af LB 0x10
     7408_line_to_vpti:                               ; 0xc46b4 LB 0x10
    73617409    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
    7362 _dac_regs:                                   ; 0xc46bf LB 0x4
     7410_dac_regs:                                   ; 0xc46c4 LB 0x4
    73637411    dd  0ff3f3f3fh
    7364 _video_param_table:                          ; 0xc46c3 LB 0x780
     7412_video_param_table:                          ; 0xc46c8 LB 0x780
    73657413    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    73667414    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    74837531    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
    74847532    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
    7485 _palette0:                                   ; 0xc4e43 LB 0xc0
     7533_palette0:                                   ; 0xc4e48 LB 0xc0
    74867534    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    74877535    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
     
    74967544    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    74977545    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    7498 _palette1:                                   ; 0xc4f03 LB 0xc0
     7546_palette1:                                   ; 0xc4f08 LB 0xc0
    74997547    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    75007548    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
     
    75097557    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    75107558    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7511 _palette2:                                   ; 0xc4fc3 LB 0xc0
     7559_palette2:                                   ; 0xc4fc8 LB 0xc0
    75127560    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    75137561    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
     
    75227570    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    75237571    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7524 _palette3:                                   ; 0xc5083 LB 0x300
     7572_palette3:                                   ; 0xc5088 LB 0x300
    75257573    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    75267574    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
     
    75717619    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75727620    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7573 _static_functionality:                       ; 0xc5383 LB 0x10
     7621_static_functionality:                       ; 0xc5388 LB 0x10
    75747622    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
    7575 _dcc_table:                                  ; 0xc5393 LB 0x24
     7623_dcc_table:                                  ; 0xc5398 LB 0x24
    75767624    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75777625    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75787626    db  000h, 000h, 000h, 000h
    7579 _secondary_save_area:                        ; 0xc53b7 LB 0x1a
    7580     db  01ah, 000h, 093h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7627_secondary_save_area:                        ; 0xc53bc LB 0x1a
     7628    db  01ah, 000h, 098h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    75817629    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7582 _video_save_pointer_table:                   ; 0xc53d1 LB 0x1c
    7583     db  0c3h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7584     db  0b7h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7585 _vgafont8:                                   ; 0xc53ed LB 0x800
     7630_video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
     7631    db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7632    db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7633_vgafont8:                                   ; 0xc53f2 LB 0x800
    75867634    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
    75877635    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
     
    77127760    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
    77137761    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7714 _vgafont14:                                  ; 0xc5bed LB 0xe00
     7762_vgafont14:                                  ; 0xc5bf2 LB 0xe00
    77157763    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    77167764    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
     
    79377985    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
    79387986    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7939 _vgafont16:                                  ; 0xc69ed LB 0x1000
     7987_vgafont16:                                  ; 0xc69f2 LB 0x1000
    79407988    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    79417989    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
     
    81948242    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
    81958243    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8196 _vgafont14alt:                               ; 0xc79ed LB 0x12d
     8244_vgafont14alt:                               ; 0xc79f2 LB 0x12d
    81978245    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
    81988246    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
     
    82148262    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
    82158263    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
    8216 _vgafont16alt:                               ; 0xc7b1a LB 0x144
     8264_vgafont16alt:                               ; 0xc7b1f LB 0x144
    82178265    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
    82188266    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
     
    82368284    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
    82378285    db  006h, 000h, 000h, 000h
    8238 _vbebios_copyright:                          ; 0xc7c5e LB 0x15
     8286_cga_msr:                                    ; 0xc7c63 LB 0x9
     8287    db  02ch, 028h, 02dh, 029h, 02ah, 02eh, 01eh, 029h, 000h
     8288_vbebios_copyright:                          ; 0xc7c6c LB 0x15
    82398289    db  'VirtualBox VESA BIOS', 000h
    8240 _vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
     8290_vbebios_vendor_name:                        ; 0xc7c81 LB 0x13
    82418291    db  'Oracle Corporation', 000h
    8242 _vbebios_product_name:                       ; 0xc7c86 LB 0x21
     8292_vbebios_product_name:                       ; 0xc7c94 LB 0x21
    82438293    db  'Oracle VM VirtualBox VBE Adapter', 000h
    8244 _vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
    8245     db  'Oracle VM VirtualBox Version 5.1.51', 000h
    8246 _vbebios_info_string:                        ; 0xc7ccb LB 0x2b
     8294_vbebios_product_revision:                   ; 0xc7cb5 LB 0x29
     8295    db  'Oracle VM VirtualBox Version 5.2.0_BETA1', 000h
     8296_vbebios_info_string:                        ; 0xc7cde LB 0x2b
    82478297    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
    8248 _no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
     8298_no_vbebios_info_string:                     ; 0xc7d09 LB 0x29
    82498299    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
    82508300
    8251   ; Padding 0x1 bytes at 0xc7d1f
    8252     db  001h
     8301section CONST progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
    82538302
    8254 section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
     8303section CONST2 progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
    82558304
    8256 section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
    8257 
    8258   ; Padding 0x2e0 bytes at 0xc7d20
    8259     db  000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh, 065h
    8260     db  02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh, 075h
    8261     db  074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h, 065h
    8262     db  06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
    8263     db  061h, 042h, 069h, 06fh, 073h, 032h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h, 061h
    8264     db  042h, 069h, 06fh, 073h, 032h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h
    8265     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8266     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8267     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8268     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8269     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8270     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8271     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8272     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8273     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8274     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8275     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8276     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8277     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8278     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8279     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8280     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8281     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8282     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8283     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8284     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8285     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8286     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8287     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8288     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8289     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8290     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8291     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8292     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8293     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8294     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8295     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8296     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8297     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8298     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8299     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8300     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8301     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8302     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8303     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8304     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 012h
     8305  ; Padding 0x2ce bytes at 0xc7d32
     8306    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
     8307    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
     8308    db  075h, 074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h
     8309    db  065h, 06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h
     8310    db  067h, 061h, 042h, 069h, 06fh, 073h, 032h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
     8311    db  061h, 042h, 069h, 06fh, 073h, 032h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h
     8312    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8313    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8314    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8315    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8316    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8317    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8318    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8319    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8320    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8321    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8322    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8323    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8324    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8325    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8326    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8327    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8328    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8329    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8330    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8331    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8332    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8333    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8334    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8335    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8336    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8337    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8338    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8339    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8340    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8341    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8342    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8343    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8344    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8345    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8346    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8347    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8348    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8349    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8350    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 091h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum

    r67771 r68290  
    1 c07f3ce46876cfd3480942a249080396 *VBoxVgaBios286.rom
     139faac9aa1fcedb936e9e2dfe6e8744e *VBoxVgaBios286.rom
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm

    r67771 r68290  
    250250    mov bx, 0c000h                            ; bb 00 c0
    251251    mov ds, bx                                ; 8e db
    252     call 0301eh                               ; e8 37 2f
     252    call 03037h                               ; e8 50 2f
    253253    popaw                                     ; 61
    254254    pop DS                                    ; 1f
     
    14381438  times 246 db 0
    14391439
    1440 section _TEXT progbits vstart=0xa00 align=1 ; size=0x3081 class=CODE group=AUTO
     1440section _TEXT progbits vstart=0xa00 align=1 ; size=0x30d9 class=CODE group=AUTO
    14411441set_int_vector_:                             ; 0xc0a00 LB 0x1a
    14421442    push bx                                   ; 53
     
    14921492    call 00a1ah                               ; e8 ac ff
    14931493    call 00a36h                               ; e8 c5 ff
    1494     call 03503h                               ; e8 8f 2a
     1494    call 03535h                               ; e8 c1 2a
    14951495    mov dx, strict word 00022h                ; ba 22 00
    14961496    mov ax, strict word 00010h                ; b8 10 00
     
    15191519    mov dx, strict word 00060h                ; ba 60 00
    15201520    mov ax, strict word 00040h                ; b8 40 00
    1521     call 02f5ah                               ; e8 ae 24
     1521    call 02f73h                               ; e8 c7 24
    15221522    push SS                                   ; 16
    15231523    pop ES                                    ; 07
     
    15271527    add dx, strict byte 00050h                ; 83 c2 50
    15281528    mov ax, strict word 00040h                ; b8 40 00
    1529     call 02f5ah                               ; e8 9b 24
     1529    call 02f73h                               ; e8 b4 24
    15301530    push SS                                   ; 16
    15311531    pop ES                                    ; 07
     
    15481548    mov dx, strict word 00049h                ; ba 49 00
    15491549    mov ax, strict word 00040h                ; b8 40 00
    1550     call 02f3eh                               ; e8 5c 24
     1550    call 02f57h                               ; e8 75 24
    15511551    xor ah, ah                                ; 30 e4
    1552     call 02f17h                               ; e8 30 24
     1552    call 02f30h                               ; e8 49 24
    15531553    mov ch, al                                ; 88 c5
    15541554    cmp AL, strict byte 0ffh                  ; 3c ff
     
    15661566    mov dx, 00084h                            ; ba 84 00
    15671567    mov ax, strict word 00040h                ; b8 40 00
    1568     call 02f3eh                               ; e8 2b 24
     1568    call 02f57h                               ; e8 44 24
    15691569    movzx di, al                              ; 0f b6 f8
    15701570    inc di                                    ; 47
    15711571    mov dx, strict word 0004ah                ; ba 4a 00
    15721572    mov ax, strict word 00040h                ; b8 40 00
    1573     call 02f5ah                               ; e8 3a 24
     1573    call 02f73h                               ; e8 53 24
    15741574    movzx bx, ch                              ; 0f b6 dd
    15751575    sal bx, 003h                              ; c1 e3 03
    1576     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
     1576    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    15771577    jne short 00b5ah                          ; 75 2d
    15781578    mov dx, ax                                ; 89 c2
     
    15901590    mov dx, cx                                ; 89 ca
    15911591    add dx, ax                                ; 01 c2
    1592     mov ax, word [bx+04633h]                  ; 8b 87 33 46
    1593     call 02f5ah                               ; e8 03 24
     1592    mov ax, word [bx+04638h]                  ; 8b 87 38 46
     1593    call 02f73h                               ; e8 1c 24
    15941594    mov word [ss:si], ax                      ; 36 89 04
    15951595    lea sp, [bp-008h]                         ; 8d 66 f8
     
    16281628    mov dx, strict word 0007ch                ; ba 7c 00
    16291629    xor ax, ax                                ; 31 c0
    1630     call 02f76h                               ; e8 e0 23
     1630    call 02f8fh                               ; e8 f9 23
    16311631    push SS                                   ; 16
    16321632    pop ES                                    ; 07
     
    16361636    mov dx, 00085h                            ; ba 85 00
    16371637    mov ax, strict word 00040h                ; b8 40 00
    1638     call 02f3eh                               ; e8 94 23
     1638    call 02f57h                               ; e8 ad 23
    16391639    xor ah, ah                                ; 30 e4
    16401640    push SS                                   ; 16
     
    16431643    mov dx, 00084h                            ; ba 84 00
    16441644    mov ax, strict word 00040h                ; b8 40 00
    1645     call 02f3eh                               ; e8 84 23
     1645    call 02f57h                               ; e8 9d 23
    16461646    xor ah, ah                                ; 30 e4
    16471647    push SS                                   ; 16
     
    16561656    mov dx, 0010ch                            ; ba 0c 01
    16571657    jmp short 00b91h                          ; eb bf
    1658     mov ax, 05bedh                            ; b8 ed 5b
     1658    mov ax, 05bf2h                            ; b8 f2 5b
    16591659    mov dx, 0c000h                            ; ba 00 c0
    16601660    jmp short 00b96h                          ; eb bc
    1661     mov ax, 053edh                            ; b8 ed 53
     1661    mov ax, 053f2h                            ; b8 f2 53
    16621662    jmp short 00bd5h                          ; eb f6
    1663     mov ax, 057edh                            ; b8 ed 57
     1663    mov ax, 057f2h                            ; b8 f2 57
    16641664    jmp short 00bd5h                          ; eb f1
    1665     mov ax, 079edh                            ; b8 ed 79
     1665    mov ax, 079f2h                            ; b8 f2 79
    16661666    jmp short 00bd5h                          ; eb ec
    1667     mov ax, 069edh                            ; b8 ed 69
     1667    mov ax, 069f2h                            ; b8 f2 69
    16681668    jmp short 00bd5h                          ; eb e7
    1669     mov ax, 07b1ah                            ; b8 1a 7b
     1669    mov ax, 07b1fh                            ; b8 1f 7b
    16701670    jmp short 00bd5h                          ; eb e2
    16711671    jmp short 00bc4h                          ; eb cf
     
    16811681    mov dx, strict word 00049h                ; ba 49 00
    16821682    mov ax, strict word 00040h                ; b8 40 00
    1683     call 02f3eh                               ; e8 31 23
     1683    call 02f57h                               ; e8 4a 23
    16841684    xor ah, ah                                ; 30 e4
    1685     call 02f17h                               ; e8 05 23
     1685    call 02f30h                               ; e8 1e 23
    16861686    mov cl, al                                ; 88 c1
    16871687    cmp AL, strict byte 0ffh                  ; 3c ff
     
    16891689    movzx bx, al                              ; 0f b6 d8
    16901690    sal bx, 003h                              ; c1 e3 03
    1691     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
     1691    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    16921692    je near 00d27h                            ; 0f 84 fe 00
    1693     mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
     1693    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
    16941694    cmp bl, 003h                              ; 80 fb 03
    16951695    jc short 00c43h                           ; 72 11
     
    17051705    mov dx, strict word 0004ah                ; ba 4a 00
    17061706    mov ax, strict word 00040h                ; b8 40 00
    1707     call 02f5ah                               ; e8 06 23
     1707    call 02f73h                               ; e8 1f 23
    17081708    imul ax, word [bp-00ah]                   ; 0f af 46 f6
    17091709    mov bx, si                                ; 89 f3
     
    17261726    mov dx, bx                                ; 89 da
    17271727    mov ax, 0a000h                            ; b8 00 a0
    1728     call 02f3eh                               ; e8 b0 22
     1728    call 02f57h                               ; e8 c9 22
    17291729    and al, byte [bp-008h]                    ; 22 46 f8
    17301730    test al, al                               ; 84 c0
     
    17471747    mov dx, bx                                ; 89 da
    17481748    mov ax, 0b800h                            ; b8 00 b8
    1749     call 02f3eh                               ; e8 7b 22
     1749    call 02f57h                               ; e8 94 22
    17501750    movzx bx, cl                              ; 0f b6 d9
    17511751    sal bx, 003h                              ; c1 e3 03
    1752     cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
     1752    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
    17531753    jne short 00cebh                          ; 75 1b
    17541754    mov cx, si                                ; 89 f1
     
    17771777    mov dx, strict word 0004ah                ; ba 4a 00
    17781778    mov ax, strict word 00040h                ; b8 40 00
    1779     call 02f5ah                               ; e8 4d 22
     1779    call 02f73h                               ; e8 66 22
    17801780    sal ax, 003h                              ; c1 e0 03
    17811781    imul ax, word [bp-00ah]                   ; 0f af 46 f6
     
    17831783    add dx, ax                                ; 01 c2
    17841784    mov ax, 0a000h                            ; b8 00 a0
    1785     call 02f3eh                               ; e8 20 22
     1785    call 02f57h                               ; e8 39 22
    17861786    mov ch, al                                ; 88 c5
    17871787    jmp short 00d24h                          ; eb 02
     
    18901890    mov dx, strict word 00060h                ; ba 60 00
    18911891    mov ax, strict word 00040h                ; b8 40 00
    1892     call 02f68h                               ; e8 87 21
     1892    call 02f81h                               ; e8 a0 21
    18931893    mov dx, 00089h                            ; ba 89 00
    18941894    mov ax, strict word 00040h                ; b8 40 00
    1895     call 02f3eh                               ; e8 54 21
     1895    call 02f57h                               ; e8 6d 21
    18961896    mov bl, al                                ; 88 c3
    18971897    mov dx, 00085h                            ; ba 85 00
    18981898    mov ax, strict word 00040h                ; b8 40 00
    1899     call 02f5ah                               ; e8 65 21
     1899    call 02f73h                               ; e8 7e 21
    19001900    mov dx, ax                                ; 89 c2
    19011901    test bl, 001h                             ; f6 c3 01
     
    19281928    mov dx, strict word 00063h                ; ba 63 00
    19291929    mov ax, strict word 00040h                ; b8 40 00
    1930     call 02f5ah                               ; e8 1e 21
     1930    call 02f73h                               ; e8 37 21
    19311931    mov bx, ax                                ; 89 c3
    19321932    mov AL, strict byte 00ah                  ; b0 0a
     
    19671967    mov bx, cx                                ; 89 cb
    19681968    mov ax, strict word 00040h                ; b8 40 00
    1969     call 02f68h                               ; e8 e7 20
     1969    call 02f81h                               ; e8 00 21
    19701970    mov dx, strict word 00062h                ; ba 62 00
    19711971    mov ax, strict word 00040h                ; b8 40 00
    1972     call 02f3eh                               ; e8 b4 20
     1972    call 02f57h                               ; e8 cd 20
    19731973    cmp al, byte [bp-008h]                    ; 3a 46 f8
    19741974    jne short 00ef8h                          ; 75 69
    19751975    mov dx, strict word 0004ah                ; ba 4a 00
    19761976    mov ax, strict word 00040h                ; b8 40 00
    1977     call 02f5ah                               ; e8 c2 20
     1977    call 02f73h                               ; e8 db 20
    19781978    mov bx, ax                                ; 89 c3
    19791979    mov dx, 00084h                            ; ba 84 00
    19801980    mov ax, strict word 00040h                ; b8 40 00
    1981     call 02f3eh                               ; e8 9b 20
     1981    call 02f57h                               ; e8 b4 20
    19821982    xor ah, ah                                ; 30 e4
    19831983    mov dx, ax                                ; 89 c2
     
    19991999    mov dx, strict word 00063h                ; ba 63 00
    20002000    mov ax, strict word 00040h                ; b8 40 00
    2001     call 02f5ah                               ; e8 84 20
     2001    call 02f73h                               ; e8 9d 20
    20022002    mov bx, ax                                ; 89 c3
    20032003    mov AL, strict byte 00eh                  ; b0 0e
     
    20382038    mov dx, strict word 00049h                ; ba 49 00
    20392039    mov ax, strict word 00040h                ; b8 40 00
    2040     call 02f3eh                               ; e8 23 20
     2040    call 02f57h                               ; e8 3c 20
    20412041    xor ah, ah                                ; 30 e4
    2042     call 02f17h                               ; e8 f7 1f
     2042    call 02f30h                               ; e8 10 20
    20432043    mov ch, al                                ; 88 c5
    20442044    cmp AL, strict byte 0ffh                  ; 3c ff
     
    20512051    mov si, bx                                ; 89 de
    20522052    sal si, 003h                              ; c1 e6 03
    2053     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
     2053    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
    20542054    jne short 00f83h                          ; 75 40
    20552055    mov dx, strict word 0004ah                ; ba 4a 00
    20562056    mov ax, strict word 00040h                ; b8 40 00
    2057     call 02f5ah                               ; e8 0e 20
     2057    call 02f73h                               ; e8 27 20
    20582058    mov bx, ax                                ; 89 c3
    20592059    mov dx, 00084h                            ; ba 84 00
    20602060    mov ax, strict word 00040h                ; b8 40 00
    2061     call 02f3eh                               ; e8 e7 1f
     2061    call 02f57h                               ; e8 00 20
    20622062    xor ah, ah                                ; 30 e4
    20632063    inc ax                                    ; 40
     
    20732073    mov dx, strict word 0004eh                ; ba 4e 00
    20742074    mov ax, strict word 00040h                ; b8 40 00
    2075     call 02f68h                               ; e8 f1 1f
     2075    call 02f81h                               ; e8 0a 20
    20762076    or si, 000ffh                             ; 81 ce ff 00
    20772077    lea bx, [si+001h]                         ; 8d 5c 01
    20782078    imul bx, di                               ; 0f af df
    20792079    jmp short 00f95h                          ; eb 12
    2080     movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
     2080    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
    20812081    sal bx, 006h                              ; c1 e3 06
    20822082    movzx ax, cl                              ; 0f b6 c1
    2083     mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
     2083    mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
    20842084    imul bx, ax                               ; 0f af d8
    20852085    mov dx, strict word 00063h                ; ba 63 00
    20862086    mov ax, strict word 00040h                ; b8 40 00
    2087     call 02f5ah                               ; e8 bc 1f
     2087    call 02f73h                               ; e8 d5 1f
    20882088    mov si, ax                                ; 89 c6
    20892089    mov AL, strict byte 00ch                  ; b0 0c
     
    21062106    mov dx, strict word 00062h                ; ba 62 00
    21072107    mov ax, strict word 00040h                ; b8 40 00
    2108     call 02f4ch                               ; e8 82 1f
     2108    call 02f65h                               ; e8 9b 1f
    21092109    mov dx, word [bp-00eh]                    ; 8b 56 f2
    21102110    mov ax, si                                ; 89 f0
     
    21182118    pop bp                                    ; 5d
    21192119    retn                                      ; c3
    2120 biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x391
     2120biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x3aa
    21212121    push bp                                   ; 55
    21222122    mov bp, sp                                ; 89 e5
     
    21262126    push si                                   ; 56
    21272127    push di                                   ; 57
    2128     sub sp, strict byte 00010h                ; 83 ec 10
    2129     mov byte [bp-00ch], al                    ; 88 46 f4
     2128    sub sp, strict byte 00012h                ; 83 ec 12
     2129    mov byte [bp-010h], al                    ; 88 46 f0
    21302130    and AL, strict byte 080h                  ; 24 80
    2131     mov byte [bp-010h], al                    ; 88 46 f0
     2131    mov byte [bp-00eh], al                    ; 88 46 f2
    21322132    call 007bfh                               ; e8 cd f7
    21332133    test ax, ax                               ; 85 c0
     
    21392139    mov dx, 003c5h                            ; ba c5 03
    21402140    out DX, AL                                ; ee
    2141     and byte [bp-00ch], 07fh                  ; 80 66 f4 7f
    2142     cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
     2141    and byte [bp-010h], 07fh                  ; 80 66 f0 7f
     2142    cmp byte [bp-010h], 007h                  ; 80 7e f0 07
    21432143    jne short 01010h                          ; 75 04
    2144     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    2145     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    2146     call 02f17h                               ; e8 00 1f
     2144    mov byte [bp-010h], 000h                  ; c6 46 f0 00
     2145    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     2146    call 02f30h                               ; e8 19 1f
    21472147    mov byte [bp-012h], al                    ; 88 46 ee
    21482148    cmp AL, strict byte 0ffh                  ; 3c ff
    2149     je near 01363h                            ; 0f 84 43 03
     2149    je near 0137ch                            ; 0f 84 5c 03
    21502150    movzx si, al                              ; 0f b6 f0
    2151     mov al, byte [si+046afh]                  ; 8a 84 af 46
    2152     mov byte [bp-00eh], al                    ; 88 46 f2
     2151    mov al, byte [si+046b4h]                  ; 8a 84 b4 46
     2152    mov byte [bp-00ch], al                    ; 88 46 f4
    21532153    movzx bx, al                              ; 0f b6 d8
    21542154    sal bx, 006h                              ; c1 e3 06
    2155     movzx ax, byte [bx+046c3h]                ; 0f b6 87 c3 46
     2155    movzx ax, byte [bx+046c8h]                ; 0f b6 87 c8 46
     2156    mov word [bp-016h], ax                    ; 89 46 ea
     2157    movzx ax, byte [bx+046c9h]                ; 0f b6 87 c9 46
    21562158    mov word [bp-018h], ax                    ; 89 46 e8
    2157     movzx ax, byte [bx+046c4h]                ; 0f b6 87 c4 46
    2158     mov word [bp-016h], ax                    ; 89 46 ea
    2159     movzx ax, byte [bx+046c5h]                ; 0f b6 87 c5 46
     2159    movzx ax, byte [bx+046cah]                ; 0f b6 87 ca 46
    21602160    mov word [bp-014h], ax                    ; 89 46 ec
    21612161    mov dx, 00087h                            ; ba 87 00
    21622162    mov ax, strict word 00040h                ; b8 40 00
    2163     call 02f3eh                               ; e8 ed 1e
     2163    call 02f57h                               ; e8 06 1f
    21642164    mov dx, 00088h                            ; ba 88 00
    21652165    mov ax, strict word 00040h                ; b8 40 00
    2166     call 02f3eh                               ; e8 e4 1e
     2166    call 02f57h                               ; e8 fd 1e
    21672167    mov dx, 00089h                            ; ba 89 00
    21682168    mov ax, strict word 00040h                ; b8 40 00
    2169     call 02f3eh                               ; e8 db 1e
    2170     mov ah, al                                ; 88 c4
     2169    call 02f57h                               ; e8 f4 1e
     2170    mov cl, al                                ; 88 c1
    21712171    test AL, strict byte 008h                 ; a8 08
    21722172    jne near 010f5h                           ; 0f 85 8a 00
    21732173    mov bx, si                                ; 89 f3
    21742174    sal bx, 003h                              ; c1 e3 03
    2175     mov al, byte [bx+04635h]                  ; 8a 87 35 46
     2175    mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
    21762176    mov dx, 003c6h                            ; ba c6 03
    21772177    out DX, AL                                ; ee
     
    21792179    mov dx, 003c8h                            ; ba c8 03
    21802180    out DX, AL                                ; ee
    2181     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     2181    mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
    21822182    cmp bl, 001h                              ; 80 fb 01
    21832183    jc short 01095h                           ; 72 0e
     
    21902190    test bl, bl                               ; 84 db
    21912191    jne short 010abh                          ; 75 12
    2192     mov di, 04e43h                            ; bf 43 4e
     2192    mov di, 04e48h                            ; bf 48 4e
    21932193    jmp short 010abh                          ; eb 0d
    2194     mov di, 04f03h                            ; bf 03 4f
     2194    mov di, 04f08h                            ; bf 08 4f
    21952195    jmp short 010abh                          ; eb 08
    2196     mov di, 04fc3h                            ; bf c3 4f
     2196    mov di, 04fc8h                            ; bf c8 4f
    21972197    jmp short 010abh                          ; eb 03
    2198     mov di, 05083h                            ; bf 83 50
     2198    mov di, 05088h                            ; bf 88 50
    21992199    xor bx, bx                                ; 31 db
    22002200    jmp short 010beh                          ; eb 0f
     
    22092209    movzx si, byte [bp-012h]                  ; 0f b6 76 ee
    22102210    sal si, 003h                              ; c1 e6 03
    2211     movzx si, byte [si+04636h]                ; 0f b6 b4 36 46
    2212     movzx dx, byte [si+046bfh]                ; 0f b6 94 bf 46
    2213     cmp bx, dx                                ; 39 d3
     2211    movzx si, byte [si+0463bh]                ; 0f b6 b4 3b 46
     2212    movzx ax, byte [si+046c4h]                ; 0f b6 84 c4 46
     2213    cmp bx, ax                                ; 39 c3
    22142214    jnbe short 010afh                         ; 77 dc
    22152215    imul si, bx, strict byte 00003h           ; 6b f3 03
     
    22232223    out DX, AL                                ; ee
    22242224    jmp short 010b7h                          ; eb cf
    2225     test ah, 002h                             ; f6 c4 02
     2225    test cl, 002h                             ; f6 c1 02
    22262226    je short 010f5h                           ; 74 08
    22272227    mov dx, 00100h                            ; ba 00 01
     
    22392239    mov dx, 003c0h                            ; ba c0 03
    22402240    out DX, AL                                ; ee
    2241     movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
     2241    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
    22422242    sal si, 006h                              ; c1 e6 06
    22432243    add si, bx                                ; 01 de
    2244     mov al, byte [si+046e6h]                  ; 8a 84 e6 46
     2244    mov al, byte [si+046ebh]                  ; 8a 84 eb 46
    22452245    out DX, AL                                ; ee
    22462246    inc bx                                    ; 43
     
    22632263    mov dx, 003c4h                            ; ba c4 03
    22642264    out DX, AL                                ; ee
    2265     movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
     2265    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
    22662266    sal si, 006h                              ; c1 e6 06
    22672267    add si, bx                                ; 01 de
    2268     mov al, byte [si+046c7h]                  ; 8a 84 c7 46
     2268    mov al, byte [si+046cch]                  ; 8a 84 cc 46
    22692269    mov dx, 003c5h                            ; ba c5 03
    22702270    out DX, AL                                ; ee
     
    22782278    mov dx, 003ceh                            ; ba ce 03
    22792279    out DX, AL                                ; ee
    2280     movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
     2280    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
    22812281    sal si, 006h                              ; c1 e6 06
    22822282    add si, bx                                ; 01 de
    2283     mov al, byte [si+046fah]                  ; 8a 84 fa 46
     2283    mov al, byte [si+046ffh]                  ; 8a 84 ff 46
    22842284    mov dx, 003cfh                            ; ba cf 03
    22852285    out DX, AL                                ; ee
     
    22882288    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    22892289    sal bx, 003h                              ; c1 e3 03
    2290     cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
     2290    cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
    22912291    jne short 01188h                          ; 75 05
    22922292    mov dx, 003b4h                            ; ba b4 03
    22932293    jmp short 0118bh                          ; eb 03
    22942294    mov dx, 003d4h                            ; ba d4 03
    2295     mov si, dx                                ; 89 d6
     2295    mov word [bp-01ah], dx                    ; 89 56 e6
    22962296    mov ax, strict word 00011h                ; b8 11 00
    22972297    out DX, ax                                ; ef
    22982298    xor bx, bx                                ; 31 db
    2299     jmp short 0119ah                          ; eb 05
     2299    jmp short 0119bh                          ; eb 05
    23002300    cmp bx, strict byte 00018h                ; 83 fb 18
    2301     jnbe short 011b5h                         ; 77 1b
     2301    jnbe short 011b5h                         ; 77 1a
    23022302    mov al, bl                                ; 88 d8
    2303     mov dx, si                                ; 89 f2
    2304     out DX, AL                                ; ee
    2305     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    2306     sal cx, 006h                              ; c1 e1 06
    2307     mov di, cx                                ; 89 cf
     2303    mov dx, word [bp-01ah]                    ; 8b 56 e6
     2304    out DX, AL                                ; ee
     2305    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     2306    sal si, 006h                              ; c1 e6 06
     2307    mov di, si                                ; 89 f7
    23082308    add di, bx                                ; 01 df
    2309     lea dx, [si+001h]                         ; 8d 54 01
    2310     mov al, byte [di+046cdh]                  ; 8a 85 cd 46
     2309    inc dx                                    ; 42
     2310    mov al, byte [di+046d2h]                  ; 8a 85 d2 46
    23112311    out DX, AL                                ; ee
    23122312    inc bx                                    ; 43
    2313     jmp short 01195h                          ; eb e0
    2314     mov bx, cx                                ; 89 cb
    2315     mov al, byte [bx+046cch]                  ; 8a 87 cc 46
     2313    jmp short 01196h                          ; eb e1
     2314    mov al, byte [si+046d1h]                  ; 8a 84 d1 46
    23162315    mov dx, 003c2h                            ; ba c2 03
    23172316    out DX, AL                                ; ee
     
    23232322    db  02ah, 0e4h
    23242323    ; sub ah, ah                                ; 2a e4
    2325     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2326     jne short 01230h                          ; 75 5f
     2324    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     2325    jne short 0122eh                          ; 75 5f
    23272326    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    23282327    sal bx, 003h                              ; c1 e3 03
    2329     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    2330     jne short 011f2h                          ; 75 13
    2331     mov es, [bx+04633h]                       ; 8e 87 33 46
     2328    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2329    jne short 011f0h                          ; 75 13
     2330    mov es, [bx+04638h]                       ; 8e 87 38 46
    23322331    mov cx, 04000h                            ; b9 00 40
    23332332    mov ax, 00720h                            ; b8 20 07
    23342333    xor di, di                                ; 31 ff
    23352334    cld                                       ; fc
    2336     jcxz 011f0h                               ; e3 02
     2335    jcxz 011eeh                               ; e3 02
    23372336    rep stosw                                 ; f3 ab
    2338     jmp short 01230h                          ; eb 3e
    2339     cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
    2340     jnc short 0120ah                          ; 73 12
    2341     mov es, [bx+04633h]                       ; 8e 87 33 46
     2337    jmp short 0122eh                          ; eb 3e
     2338    cmp byte [bp-010h], 00dh                  ; 80 7e f0 0d
     2339    jnc short 01208h                          ; 73 12
     2340    mov es, [bx+04638h]                       ; 8e 87 38 46
    23422341    mov cx, 04000h                            ; b9 00 40
    23432342    xor ax, ax                                ; 31 c0
    23442343    xor di, di                                ; 31 ff
    23452344    cld                                       ; fc
    2346     jcxz 01208h                               ; e3 02
     2345    jcxz 01206h                               ; e3 02
    23472346    rep stosw                                 ; f3 ab
    2348     jmp short 01230h                          ; eb 26
     2347    jmp short 0122eh                          ; eb 26
    23492348    mov AL, strict byte 002h                  ; b0 02
    23502349    mov dx, 003c4h                            ; ba c4 03
     
    23542353    db  02ah, 0e4h
    23552354    ; sub ah, ah                                ; 2a e4
    2356     mov word [bp-01ah], ax                    ; 89 46 e6
     2355    mov word [bp-01ch], ax                    ; 89 46 e4
    23572356    mov AL, strict byte 00fh                  ; b0 0f
    23582357    out DX, AL                                ; ee
    2359     mov es, [bx+04633h]                       ; 8e 87 33 46
     2358    mov es, [bx+04638h]                       ; 8e 87 38 46
    23602359    mov cx, 08000h                            ; b9 00 80
    23612360    xor ax, ax                                ; 31 c0
    23622361    xor di, di                                ; 31 ff
    23632362    cld                                       ; fc
    2364     jcxz 0122ch                               ; e3 02
     2363    jcxz 0122ah                               ; e3 02
    23652364    rep stosw                                 ; f3 ab
    2366     mov al, byte [bp-01ah]                    ; 8a 46 e6
    2367     out DX, AL                                ; ee
     2365    mov al, byte [bp-01ch]                    ; 8a 46 e4
     2366    out DX, AL                                ; ee
     2367    movzx si, byte [bp-010h]                  ; 0f b6 76 f0
     2368    mov bx, si                                ; 89 f3
     2369    mov dx, strict word 00049h                ; ba 49 00
     2370    mov ax, strict word 00040h                ; b8 40 00
     2371    call 02f65h                               ; e8 28 1d
     2372    mov bx, word [bp-016h]                    ; 8b 5e ea
     2373    mov dx, strict word 0004ah                ; ba 4a 00
     2374    mov ax, strict word 00040h                ; b8 40 00
     2375    call 02f81h                               ; e8 38 1d
    23682376    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    2369     mov dx, strict word 00049h                ; ba 49 00
    2370     mov ax, strict word 00040h                ; b8 40 00
    2371     call 02f4ch                               ; e8 0f 1d
    2372     mov bx, word [bp-018h]                    ; 8b 5e e8
    2373     mov dx, strict word 0004ah                ; ba 4a 00
    2374     mov ax, strict word 00040h                ; b8 40 00
    2375     call 02f68h                               ; e8 1f 1d
    2376     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    23772377    sal bx, 006h                              ; c1 e3 06
    2378     mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
     2378    mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
    23792379    mov dx, strict word 0004ch                ; ba 4c 00
    23802380    mov ax, strict word 00040h                ; b8 40 00
    2381     call 02f68h                               ; e8 0b 1d
    2382     mov bx, si                                ; 89 f3
     2381    call 02f81h                               ; e8 24 1d
     2382    mov bx, word [bp-01ah]                    ; 8b 5e e6
    23832383    mov dx, strict word 00063h                ; ba 63 00
    23842384    mov ax, strict word 00040h                ; b8 40 00
    2385     call 02f68h                               ; e8 00 1d
    2386     movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
     2385    call 02f81h                               ; e8 18 1d
     2386    movzx bx, byte [bp-018h]                  ; 0f b6 5e e8
    23872387    mov dx, 00084h                            ; ba 84 00
    23882388    mov ax, strict word 00040h                ; b8 40 00
    2389     call 02f4ch                               ; e8 d7 1c
     2389    call 02f65h                               ; e8 ef 1c
    23902390    mov bx, word [bp-014h]                    ; 8b 5e ec
    23912391    mov dx, 00085h                            ; ba 85 00
    23922392    mov ax, strict word 00040h                ; b8 40 00
    2393     call 02f68h                               ; e8 e7 1c
    2394     mov al, byte [bp-010h]                    ; 8a 46 f0
     2393    call 02f81h                               ; e8 ff 1c
     2394    mov al, byte [bp-00eh]                    ; 8a 46 f2
    23952395    or AL, strict byte 060h                   ; 0c 60
    23962396    movzx bx, al                              ; 0f b6 d8
    23972397    mov dx, 00087h                            ; ba 87 00
    23982398    mov ax, strict word 00040h                ; b8 40 00
    2399     call 02f4ch                               ; e8 ba 1c
     2399    call 02f65h                               ; e8 d2 1c
    24002400    mov bx, 000f9h                            ; bb f9 00
    24012401    mov dx, 00088h                            ; ba 88 00
    24022402    mov ax, strict word 00040h                ; b8 40 00
    2403     call 02f4ch                               ; e8 ae 1c
     2403    call 02f65h                               ; e8 c6 1c
    24042404    mov dx, 00089h                            ; ba 89 00
    24052405    mov ax, strict word 00040h                ; b8 40 00
    2406     call 02f3eh                               ; e8 97 1c
     2406    call 02f57h                               ; e8 af 1c
    24072407    and AL, strict byte 07fh                  ; 24 7f
    24082408    movzx bx, al                              ; 0f b6 d8
    24092409    mov dx, 00089h                            ; ba 89 00
    24102410    mov ax, strict word 00040h                ; b8 40 00
    2411     call 02f4ch                               ; e8 97 1c
     2411    call 02f65h                               ; e8 af 1c
    24122412    mov bx, strict word 00008h                ; bb 08 00
    24132413    mov dx, 0008ah                            ; ba 8a 00
    24142414    mov ax, strict word 00040h                ; b8 40 00
    2415     call 02f4ch                               ; e8 8b 1c
     2415    call 02f65h                               ; e8 a3 1c
    24162416    mov cx, ds                                ; 8c d9
    2417     mov bx, 053d1h                            ; bb d1 53
     2417    mov bx, 053d6h                            ; bb d6 53
    24182418    mov dx, 000a8h                            ; ba a8 00
    24192419    mov ax, strict word 00040h                ; b8 40 00
    2420     call 02f88h                               ; e8 b9 1c
    2421     xor bx, bx                                ; 31 db
     2420    call 02fa1h                               ; e8 d1 1c
     2421    cmp byte [bp-010h], 007h                  ; 80 7e f0 07
     2422    jnbe short 012feh                         ; 77 28
     2423    movzx bx, byte [si+07c63h]                ; 0f b6 9c 63 7c
    24222424    mov dx, strict word 00065h                ; ba 65 00
    24232425    mov ax, strict word 00040h                ; b8 40 00
    2424     call 02f4ch                               ; e8 72 1c
    2425     xor bx, bx                                ; 31 db
     2426    call 02f65h                               ; e8 81 1c
     2427    cmp byte [bp-010h], 006h                  ; 80 7e f0 06
     2428    jne short 012efh                          ; 75 05
     2429    mov dx, strict word 0003fh                ; ba 3f 00
     2430    jmp short 012f2h                          ; eb 03
     2431    mov dx, strict word 00030h                ; ba 30 00
     2432    movzx bx, dl                              ; 0f b6 da
    24262433    mov dx, strict word 00066h                ; ba 66 00
    24272434    mov ax, strict word 00040h                ; b8 40 00
    2428     call 02f4ch                               ; e8 67 1c
     2435    call 02f65h                               ; e8 67 1c
    24292436    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    24302437    sal bx, 003h                              ; c1 e3 03
    2431     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    2432     jne short 012fch                          ; 75 09
     2438    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2439    jne short 01315h                          ; 75 09
    24332440    mov dx, strict word 00007h                ; ba 07 00
    24342441    mov ax, strict word 00006h                ; b8 06 00
    2435     call 00dbah                               ; e8 be fa
     2442    call 00dbah                               ; e8 a5 fa
    24362443    xor bx, bx                                ; 31 db
    2437     jmp short 01305h                          ; eb 05
     2444    jmp short 0131eh                          ; eb 05
    24382445    cmp bx, strict byte 00008h                ; 83 fb 08
    2439     jnc short 01310h                          ; 73 0b
     2446    jnc short 01329h                          ; 73 0b
    24402447    movzx ax, bl                              ; 0f b6 c3
    24412448    xor dx, dx                                ; 31 d2
    2442     call 00e5eh                               ; e8 51 fb
     2449    call 00e5eh                               ; e8 38 fb
    24432450    inc bx                                    ; 43
    2444     jmp short 01300h                          ; eb f0
     2451    jmp short 01319h                          ; eb f0
    24452452    xor ax, ax                                ; 31 c0
    2446     call 00f00h                               ; e8 eb fb
     2453    call 00f00h                               ; e8 d2 fb
    24472454    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    24482455    sal bx, 003h                              ; c1 e3 03
    2449     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    2450     jne short 01333h                          ; 75 10
     2456    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2457    jne short 0134ch                          ; 75 10
    24512458    xor bl, bl                                ; 30 db
    24522459    mov AL, strict byte 004h                  ; b0 04
     
    24572464    mov AH, strict byte 011h                  ; b4 11
    24582465    int 010h                                  ; cd 10
    2459     mov dx, 057edh                            ; ba ed 57
     2466    mov dx, 057f2h                            ; ba f2 57
    24602467    mov ax, strict word 0001fh                ; b8 1f 00
    2461     call 00a00h                               ; e8 c4 f6
     2468    call 00a00h                               ; e8 ab f6
    24622469    mov ax, word [bp-014h]                    ; 8b 46 ec
    24632470    cmp ax, strict word 00010h                ; 3d 10 00
    2464     je short 0135eh                           ; 74 1a
     2471    je short 01377h                           ; 74 1a
    24652472    cmp ax, strict word 0000eh                ; 3d 0e 00
    2466     je short 01359h                           ; 74 10
     2473    je short 01372h                           ; 74 10
    24672474    cmp ax, strict word 00008h                ; 3d 08 00
    2468     jne short 01363h                          ; 75 15
    2469     mov dx, 053edh                            ; ba ed 53
     2475    jne short 0137ch                          ; 75 15
     2476    mov dx, 053f2h                            ; ba f2 53
    24702477    mov ax, strict word 00043h                ; b8 43 00
    2471     call 00a00h                               ; e8 a9 f6
    2472     jmp short 01363h                          ; eb 0a
    2473     mov dx, 05bedh                            ; ba ed 5b
    2474     jmp short 01351h                          ; eb f3
    2475     mov dx, 069edh                            ; ba ed 69
    2476     jmp short 01351h                          ; eb ee
     2478    call 00a00h                               ; e8 90 f6
     2479    jmp short 0137ch                          ; eb 0a
     2480    mov dx, 05bf2h                            ; ba f2 5b
     2481    jmp short 0136ah                          ; eb f3
     2482    mov dx, 069f2h                            ; ba f2 69
     2483    jmp short 0136ah                          ; eb ee
    24772484    lea sp, [bp-00ah]                         ; 8d 66 f6
    24782485    pop di                                    ; 5f
     
    24832490    pop bp                                    ; 5d
    24842491    retn                                      ; c3
    2485 vgamem_copy_pl4_:                            ; 0xc136d LB 0x76
     2492vgamem_copy_pl4_:                            ; 0xc1386 LB 0x76
    24862493    push bp                                   ; 55
    24872494    mov bp, sp                                ; 89 e5
     
    25092516    xor bl, bl                                ; 30 db
    25102517    cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2511     jnc short 013d3h                          ; 73 29
     2518    jnc short 013ech                          ; 73 29
    25122519    movzx cx, bh                              ; 0f b6 cf
    25132520    movzx si, bl                              ; 0f b6 f3
     
    25212528    mov es, dx                                ; 8e c2
    25222529    cld                                       ; fc
    2523     jcxz 013cfh                               ; e3 06
     2530    jcxz 013e8h                               ; e3 06
    25242531    push DS                                   ; 1e
    25252532    mov ds, dx                                ; 8e da
     
    25282535    db  0feh, 0c3h
    25292536    ; inc bl                                    ; fe c3
    2530     jmp short 013a5h                          ; eb d2
     2537    jmp short 013beh                          ; eb d2
    25312538    mov ax, strict word 00005h                ; b8 05 00
    25322539    mov dx, 003ceh                            ; ba ce 03
     
    25372544    pop bp                                    ; 5d
    25382545    retn 00004h                               ; c2 04 00
    2539 vgamem_fill_pl4_:                            ; 0xc13e3 LB 0x61
     2546vgamem_fill_pl4_:                            ; 0xc13fc LB 0x61
    25402547    push bp                                   ; 55
    25412548    mov bp, sp                                ; 89 e5
     
    25582565    xor bl, bl                                ; 30 db
    25592566    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2560     jnc short 01435h                          ; 73 22
     2567    jnc short 0144eh                          ; 73 22
    25612568    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
    25622569    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
     
    25682575    mov es, dx                                ; 8e c2
    25692576    cld                                       ; fc
    2570     jcxz 01431h                               ; e3 02
     2577    jcxz 0144ah                               ; e3 02
    25712578    rep stosb                                 ; f3 aa
    25722579    db  0feh, 0c3h
    25732580    ; inc bl                                    ; fe c3
    2574     jmp short 0140eh                          ; eb d9
     2581    jmp short 01427h                          ; eb d9
    25752582    mov ax, strict word 00005h                ; b8 05 00
    25762583    mov dx, 003ceh                            ; ba ce 03
     
    25802587    pop bp                                    ; 5d
    25812588    retn 00004h                               ; c2 04 00
    2582 vgamem_copy_cga_:                            ; 0xc1444 LB 0xa4
     2589vgamem_copy_cga_:                            ; 0xc145d LB 0xa4
    25832590    push bp                                   ; 55
    25842591    mov bp, sp                                ; 89 e5
     
    26052612    xor bl, bl                                ; 30 db
    26062613    cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2607     jnc short 014dfh                          ; 73 61
     2614    jnc short 014f8h                          ; 73 61
    26082615    test bl, 001h                             ; f6 c3 01
    2609     je short 014b4h                           ; 74 31
     2616    je short 014cdh                           ; 74 31
    26102617    movzx cx, bh                              ; 0f b6 cf
    26112618    movzx si, bl                              ; 0f b6 f3
     
    26222629    mov es, dx                                ; 8e c2
    26232630    cld                                       ; fc
    2624     jcxz 014b2h                               ; e3 06
     2631    jcxz 014cbh                               ; e3 06
    26252632    push DS                                   ; 1e
    26262633    mov ds, dx                                ; 8e da
    26272634    rep movsb                                 ; f3 a4
    26282635    pop DS                                    ; 1f
    2629     jmp short 014dbh                          ; eb 27
     2636    jmp short 014f4h                          ; eb 27
    26302637    movzx cx, bh                              ; 0f b6 cf
    26312638    movzx ax, bl                              ; 0f b6 c3
     
    26402647    mov es, dx                                ; 8e c2
    26412648    cld                                       ; fc
    2642     jcxz 014dbh                               ; e3 06
     2649    jcxz 014f4h                               ; e3 06
    26432650    push DS                                   ; 1e
    26442651    mov ds, dx                                ; 8e da
     
    26472654    db  0feh, 0c3h
    26482655    ; inc bl                                    ; fe c3
    2649     jmp short 01479h                          ; eb 9a
     2656    jmp short 01492h                          ; eb 9a
    26502657    lea sp, [bp-004h]                         ; 8d 66 fc
    26512658    pop di                                    ; 5f
     
    26532660    pop bp                                    ; 5d
    26542661    retn 00004h                               ; c2 04 00
    2655 vgamem_fill_cga_:                            ; 0xc14e8 LB 0x8a
     2662vgamem_fill_cga_:                            ; 0xc1501 LB 0x8a
    26562663    push bp                                   ; 55
    26572664    mov bp, sp                                ; 89 e5
     
    26722679    xor bl, bl                                ; 30 db
    26732680    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2674     jnc short 01569h                          ; 73 57
     2681    jnc short 01582h                          ; 73 57
    26752682    test bl, 001h                             ; f6 c3 01
    2676     je short 01546h                           ; 74 2f
     2683    je short 0155fh                           ; 74 2f
    26772684    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    26782685    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
     
    26892696    mov es, dx                                ; 8e c2
    26902697    cld                                       ; fc
    2691     jcxz 01544h                               ; e3 02
     2698    jcxz 0155dh                               ; e3 02
    26922699    rep stosb                                 ; f3 aa
    2693     jmp short 01565h                          ; eb 1f
     2700    jmp short 0157eh                          ; eb 1f
    26942701    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    26952702    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
     
    27022709    mov es, dx                                ; 8e c2
    27032710    cld                                       ; fc
    2704     jcxz 01565h                               ; e3 02
     2711    jcxz 0157eh                               ; e3 02
    27052712    rep stosb                                 ; f3 aa
    27062713    db  0feh, 0c3h
    27072714    ; inc bl                                    ; fe c3
    2708     jmp short 0150dh                          ; eb a4
     2715    jmp short 01526h                          ; eb a4
    27092716    lea sp, [bp-004h]                         ; 8d 66 fc
    27102717    pop di                                    ; 5f
     
    27122719    pop bp                                    ; 5d
    27132720    retn 00004h                               ; c2 04 00
    2714 biosfn_scroll_:                              ; 0xc1572 LB 0x506
     2721biosfn_scroll_:                              ; 0xc158b LB 0x506
    27152722    push bp                                   ; 55
    27162723    mov bp, sp                                ; 89 e5
     
    27232730    mov byte [bp-006h], cl                    ; 88 4e fa
    27242731    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2725     jnbe near 01a6fh                          ; 0f 87 e2 04
     2732    jnbe near 01a88h                          ; 0f 87 e2 04
    27262733    cmp cl, byte [bp+006h]                    ; 3a 4e 06
    2727     jnbe near 01a6fh                          ; 0f 87 db 04
     2734    jnbe near 01a88h                          ; 0f 87 db 04
    27282735    mov dx, strict word 00049h                ; ba 49 00
    27292736    mov ax, strict word 00040h                ; b8 40 00
    2730     call 02f3eh                               ; e8 a1 19
     2737    call 02f57h                               ; e8 a1 19
    27312738    xor ah, ah                                ; 30 e4
    2732     call 02f17h                               ; e8 75 19
     2739    call 02f30h                               ; e8 75 19
    27332740    mov byte [bp-00eh], al                    ; 88 46 f2
    27342741    cmp AL, strict byte 0ffh                  ; 3c ff
    2735     je near 01a6fh                            ; 0f 84 c4 04
     2742    je near 01a88h                            ; 0f 84 c4 04
    27362743    mov dx, 00084h                            ; ba 84 00
    27372744    mov ax, strict word 00040h                ; b8 40 00
    2738     call 02f3eh                               ; e8 8a 19
     2745    call 02f57h                               ; e8 8a 19
    27392746    movzx cx, al                              ; 0f b6 c8
    27402747    inc cx                                    ; 41
    27412748    mov dx, strict word 0004ah                ; ba 4a 00
    27422749    mov ax, strict word 00040h                ; b8 40 00
    2743     call 02f5ah                               ; e8 99 19
     2750    call 02f73h                               ; e8 99 19
    27442751    mov word [bp-016h], ax                    ; 89 46 ea
    27452752    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
    2746     jne short 015d6h                          ; 75 0c
     2753    jne short 015efh                          ; 75 0c
    27472754    mov dx, strict word 00062h                ; ba 62 00
    27482755    mov ax, strict word 00040h                ; b8 40 00
    2749     call 02f3eh                               ; e8 6b 19
     2756    call 02f57h                               ; e8 6b 19
    27502757    mov byte [bp+008h], al                    ; 88 46 08
    27512758    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    27522759    cmp ax, cx                                ; 39 c8
    2753     jc short 015e5h                           ; 72 07
     2760    jc short 015feh                           ; 72 07
    27542761    mov al, cl                                ; 88 c8
    27552762    db  0feh, 0c8h
     
    27582765    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
    27592766    cmp ax, word [bp-016h]                    ; 3b 46 ea
    2760     jc short 015f6h                           ; 72 08
     2767    jc short 0160fh                           ; 72 08
    27612768    mov al, byte [bp-016h]                    ; 8a 46 ea
    27622769    db  0feh, 0c8h
     
    27652772    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    27662773    cmp ax, cx                                ; 39 c8
    2767     jbe short 01602h                          ; 76 04
     2774    jbe short 0161bh                          ; 76 04
    27682775    mov byte [bp-010h], 000h                  ; c6 46 f0 00
    27692776    mov al, byte [bp+006h]                    ; 8a 46 06
     
    27832790    mov ax, word [bp-016h]                    ; 8b 46 ea
    27842791    imul ax, cx                               ; 0f af c1
    2785     cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
    2786     jne near 017d1h                           ; 0f 85 9f 01
     2792    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     2793    jne near 017eah                           ; 0f 85 9f 01
    27872794    mov dx, ax                                ; 89 c2
    27882795    add dx, ax                                ; 01 c2
     
    27922799    imul bx, dx                               ; 0f af da
    27932800    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2794     jne short 01681h                          ; 75 3a
     2801    jne short 0169ah                          ; 75 3a
    27952802    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2796     jne short 01681h                          ; 75 34
     2803    jne short 0169ah                          ; 75 34
    27972804    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2798     jne short 01681h                          ; 75 2e
     2805    jne short 0169ah                          ; 75 2e
    27992806    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    28002807    cmp dx, word [bp-01ah]                    ; 3b 56 e6
    2801     jne short 01681h                          ; 75 25
     2808    jne short 0169ah                          ; 75 25
    28022809    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
    28032810    cmp dx, word [bp-018h]                    ; 3b 56 e8
    2804     jne short 01681h                          ; 75 1c
     2811    jne short 0169ah                          ; 75 1c
    28052812    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    28062813    sal dx, 008h                              ; c1 e2 08
    28072814    add dx, strict byte 00020h                ; 83 c2 20
    2808     mov es, [di+04633h]                       ; 8e 85 33 46
     2815    mov es, [di+04638h]                       ; 8e 85 38 46
    28092816    mov cx, ax                                ; 89 c1
    28102817    mov ax, dx                                ; 89 d0
    28112818    mov di, bx                                ; 89 df
    28122819    cld                                       ; fc
    2813     jcxz 0167eh                               ; e3 02
     2820    jcxz 01697h                               ; e3 02
    28142821    rep stosw                                 ; f3 ab
    2815     jmp near 01a6fh                           ; e9 ee 03
     2822    jmp near 01a88h                           ; e9 ee 03
    28162823    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    2817     jne near 01726h                           ; 0f 85 9d 00
     2824    jne near 0173fh                           ; 0f 85 9d 00
    28182825    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    28192826    mov word [bp-014h], ax                    ; 89 46 ec
    28202827    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    28212828    cmp dx, word [bp-014h]                    ; 3b 56 ec
    2822     jc near 01a6fh                            ; 0f 82 d4 03
     2829    jc near 01a88h                            ; 0f 82 d4 03
    28232830    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    28242831    add ax, word [bp-014h]                    ; 03 46 ec
    28252832    cmp ax, dx                                ; 39 d0
    2826     jnbe short 016ach                         ; 77 06
     2833    jnbe short 016c5h                         ; 77 06
    28272834    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2828     jne short 016dfh                          ; 75 33
     2835    jne short 016f8h                          ; 75 33
    28292836    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    28302837    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    28402847    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    28412848    sal si, 003h                              ; c1 e6 03
    2842     mov es, [si+04633h]                       ; 8e 84 33 46
     2849    mov es, [si+04638h]                       ; 8e 84 38 46
    28432850    cld                                       ; fc
    2844     jcxz 016ddh                               ; e3 02
     2851    jcxz 016f6h                               ; e3 02
    28452852    rep stosw                                 ; f3 ab
    2846     jmp short 01720h                          ; eb 41
     2853    jmp short 01739h                          ; eb 41
    28472854    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    28482855    mov word [bp-01ch], dx                    ; 89 56 e4
     
    28542861    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    28552862    sal si, 003h                              ; c1 e6 03
    2856     mov ax, word [si+04633h]                  ; 8b 84 33 46
     2863    mov ax, word [si+04638h]                  ; 8b 84 38 46
    28572864    mov si, word [bp-014h]                    ; 8b 76 ec
    28582865    imul si, word [bp-016h]                   ; 0f af 76 ea
     
    28662873    mov es, ax                                ; 8e c0
    28672874    cld                                       ; fc
    2868     jcxz 01720h                               ; e3 06
     2875    jcxz 01739h                               ; e3 06
    28692876    push DS                                   ; 1e
    28702877    mov ds, dx                                ; 8e da
     
    28722879    pop DS                                    ; 1f
    28732880    inc word [bp-014h]                        ; ff 46 ec
    2874     jmp near 01690h                           ; e9 6a ff
     2881    jmp near 016a9h                           ; e9 6a ff
    28752882    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    28762883    mov word [bp-014h], ax                    ; 89 46 ec
    28772884    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    28782885    cmp ax, word [bp-014h]                    ; 3b 46 ec
    2879     jnbe near 01a6fh                          ; 0f 87 37 03
     2886    jnbe near 01a88h                          ; 0f 87 37 03
    28802887    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    28812888    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    28822889    add ax, dx                                ; 01 d0
    28832890    cmp ax, word [bp-014h]                    ; 3b 46 ec
    2884     jnbe short 0174dh                         ; 77 06
     2891    jnbe short 01766h                         ; 77 06
    28852892    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2886     jne short 01780h                          ; 75 33
     2893    jne short 01799h                          ; 75 33
    28872894    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    28882895    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    28982905    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    28992906    sal si, 003h                              ; c1 e6 03
    2900     mov es, [si+04633h]                       ; 8e 84 33 46
     2907    mov es, [si+04638h]                       ; 8e 84 38 46
    29012908    cld                                       ; fc
    2902     jcxz 0177eh                               ; e3 02
     2909    jcxz 01797h                               ; e3 02
    29032910    rep stosw                                 ; f3 ab
    2904     jmp short 017c0h                          ; eb 40
     2911    jmp short 017d9h                          ; eb 40
    29052912    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    29062913    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     
    29132920    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    29142921    sal si, 003h                              ; c1 e6 03
    2915     mov ax, word [si+04633h]                  ; 8b 84 33 46
     2922    mov ax, word [si+04638h]                  ; 8b 84 38 46
    29162923    mov si, word [bp-014h]                    ; 8b 76 ec
    29172924    imul si, word [bp-016h]                   ; 0f af 76 ea
     
    29232930    mov es, ax                                ; 8e c0
    29242931    cld                                       ; fc
    2925     jcxz 017c0h                               ; e3 06
     2932    jcxz 017d9h                               ; e3 06
    29262933    push DS                                   ; 1e
    29272934    mov ds, dx                                ; 8e da
     
    29302937    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    29312938    cmp ax, word [bp-014h]                    ; 3b 46 ec
    2932     jc near 01a6fh                            ; 0f 82 a4 02
     2939    jc near 01a88h                            ; 0f 82 a4 02
    29332940    dec word [bp-014h]                        ; ff 4e ec
    2934     jmp near 0172dh                           ; e9 5c ff
    2935     movzx bx, byte [si+046afh]                ; 0f b6 9c af 46
     2941    jmp near 01746h                           ; e9 5c ff
     2942    movzx bx, byte [si+046b4h]                ; 0f b6 9c b4 46
    29362943    sal bx, 006h                              ; c1 e3 06
    2937     mov dl, byte [bx+046c5h]                  ; 8a 97 c5 46
     2944    mov dl, byte [bx+046cah]                  ; 8a 97 ca 46
    29382945    mov byte [bp-00ah], dl                    ; 88 56 f6
    2939     mov bl, byte [di+04631h]                  ; 8a 9d 31 46
     2946    mov bl, byte [di+04636h]                  ; 8a 9d 36 46
    29402947    cmp bl, 004h                              ; 80 fb 04
    2941     je short 017f8h                           ; 74 0f
     2948    je short 01811h                           ; 74 0f
    29422949    cmp bl, 003h                              ; 80 fb 03
    2943     je short 017f8h                           ; 74 0a
     2950    je short 01811h                           ; 74 0a
    29442951    cmp bl, 002h                              ; 80 fb 02
    2945     je near 01937h                            ; 0f 84 42 01
    2946     jmp near 01a6fh                           ; e9 77 02
     2952    je near 01950h                            ; 0f 84 42 01
     2953    jmp near 01a88h                           ; e9 77 02
    29472954    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2948     jne short 01850h                          ; 75 52
     2955    jne short 01869h                          ; 75 52
    29492956    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2950     jne short 01850h                          ; 75 4c
     2957    jne short 01869h                          ; 75 4c
    29512958    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2952     jne short 01850h                          ; 75 46
     2959    jne short 01869h                          ; 75 46
    29532960    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
    29542961    mov ax, cx                                ; 89 c8
    29552962    dec ax                                    ; 48
    29562963    cmp dx, ax                                ; 39 c2
    2957     jne short 01850h                          ; 75 3b
     2964    jne short 01869h                          ; 75 3b
    29582965    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
    29592966    mov ax, word [bp-016h]                    ; 8b 46 ea
    29602967    dec ax                                    ; 48
    29612968    cmp dx, ax                                ; 39 c2
    2962     jne short 01850h                          ; 75 2f
     2969    jne short 01869h                          ; 75 2f
    29632970    mov ax, 00205h                            ; b8 05 02
    29642971    mov dx, 003ceh                            ; ba ce 03
     
    29702977    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    29712978    sal bx, 003h                              ; c1 e3 03
    2972     mov es, [bx+04633h]                       ; 8e 87 33 46
     2979    mov es, [bx+04638h]                       ; 8e 87 38 46
    29732980    xor di, di                                ; 31 ff
    29742981    cld                                       ; fc
    2975     jcxz 01849h                               ; e3 02
     2982    jcxz 01862h                               ; e3 02
    29762983    rep stosb                                 ; f3 aa
    29772984    mov ax, strict word 00005h                ; b8 05 00
    29782985    out DX, ax                                ; ef
    2979     jmp near 01a6fh                           ; e9 1f 02
     2986    jmp near 01a88h                           ; e9 1f 02
    29802987    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    2981     jne short 018bfh                          ; 75 69
     2988    jne short 018d8h                          ; 75 69
    29822989    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    29832990    mov word [bp-014h], ax                    ; 89 46 ec
    29842991    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    29852992    cmp ax, word [bp-014h]                    ; 3b 46 ec
    2986     jc near 01a6fh                            ; 0f 82 07 02
     2993    jc near 01a88h                            ; 0f 82 07 02
    29872994    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    29882995    add dx, word [bp-014h]                    ; 03 56 ec
    29892996    cmp dx, ax                                ; 39 c2
    2990     jnbe short 01879h                         ; 77 06
     2997    jnbe short 01892h                         ; 77 06
    29912998    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2992     jne short 01898h                          ; 75 1f
     2999    jne short 018b1h                          ; 75 1f
    29933000    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    29943001    push ax                                   ; 50
     
    29993006    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    30003007    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3001     call 013e3h                               ; e8 4d fb
    3002     jmp short 018bah                          ; eb 22
     3008    call 013fch                               ; e8 4d fb
     3009    jmp short 018d3h                          ; eb 22
    30033010    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    30043011    push ax                                   ; 50
     
    30113018    movzx dx, al                              ; 0f b6 d0
    30123019    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3013     call 0136dh                               ; e8 b3 fa
     3020    call 01386h                               ; e8 b3 fa
    30143021    inc word [bp-014h]                        ; ff 46 ec
    3015     jmp short 0185dh                          ; eb 9e
     3022    jmp short 01876h                          ; eb 9e
    30163023    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    30173024    mov word [bp-014h], ax                    ; 89 46 ec
    30183025    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    30193026    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3020     jnbe near 01a6fh                          ; 0f 87 9e 01
     3027    jnbe near 01a88h                          ; 0f 87 9e 01
    30213028    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    30223029    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    30233030    add ax, dx                                ; 01 d0
    30243031    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3025     jnbe short 018e6h                         ; 77 06
     3032    jnbe short 018ffh                         ; 77 06
    30263033    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3027     jne short 01905h                          ; 75 1f
     3034    jne short 0191eh                          ; 75 1f
    30283035    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    30293036    push ax                                   ; 50
     
    30343041    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    30353042    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3036     call 013e3h                               ; e8 e0 fa
    3037     jmp short 01927h                          ; eb 22
     3043    call 013fch                               ; e8 e0 fa
     3044    jmp short 01940h                          ; eb 22
    30383045    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    30393046    push ax                                   ; 50
     
    30463053    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    30473054    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3048     call 0136dh                               ; e8 46 fa
     3055    call 01386h                               ; e8 46 fa
    30493056    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    30503057    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3051     jc near 01a6fh                            ; 0f 82 3d 01
     3058    jc near 01a88h                            ; 0f 82 3d 01
    30523059    dec word [bp-014h]                        ; ff 4e ec
    3053     jmp short 018c6h                          ; eb 8f
    3054     mov dl, byte [di+04632h]                  ; 8a 95 32 46
     3060    jmp short 018dfh                          ; eb 8f
     3061    mov dl, byte [di+04637h]                  ; 8a 95 37 46
    30553062    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3056     jne short 0197eh                          ; 75 3d
     3063    jne short 01997h                          ; 75 3d
    30573064    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3058     jne short 0197eh                          ; 75 37
     3065    jne short 01997h                          ; 75 37
    30593066    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3060     jne short 0197eh                          ; 75 31
     3067    jne short 01997h                          ; 75 31
    30613068    movzx bx, byte [bp+004h]                  ; 0f b6 5e 04
    30623069    cmp bx, word [bp-01ah]                    ; 3b 5e e6
    3063     jne short 0197eh                          ; 75 28
     3070    jne short 01997h                          ; 75 28
    30643071    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
    30653072    cmp bx, word [bp-018h]                    ; 3b 5e e8
    3066     jne short 0197eh                          ; 75 1f
     3073    jne short 01997h                          ; 75 1f
    30673074    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    30683075    imul ax, bx                               ; 0f af c3
     
    30703077    imul cx, ax                               ; 0f af c8
    30713078    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    3072     mov es, [di+04633h]                       ; 8e 85 33 46
     3079    mov es, [di+04638h]                       ; 8e 85 38 46
    30733080    xor di, di                                ; 31 ff
    30743081    cld                                       ; fc
    3075     jcxz 0197bh                               ; e3 02
     3082    jcxz 01994h                               ; e3 02
    30763083    rep stosb                                 ; f3 aa
    3077     jmp near 01a6fh                           ; e9 f1 00
     3084    jmp near 01a88h                           ; e9 f1 00
    30783085    cmp dl, 002h                              ; 80 fa 02
    3079     jne short 0198ch                          ; 75 09
     3086    jne short 019a5h                          ; 75 09
    30803087    sal byte [bp-006h], 1                     ; d0 66 fa
    30813088    sal byte [bp-012h], 1                     ; d0 66 ee
    30823089    sal word [bp-016h], 1                     ; d1 66 ea
    30833090    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3084     jne short 019fbh                          ; 75 69
     3091    jne short 01a14h                          ; 75 69
    30853092    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    30863093    mov word [bp-014h], ax                    ; 89 46 ec
    30873094    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    30883095    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3089     jc near 01a6fh                            ; 0f 82 cb 00
     3096    jc near 01a88h                            ; 0f 82 cb 00
    30903097    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    30913098    add dx, word [bp-014h]                    ; 03 56 ec
    30923099    cmp dx, ax                                ; 39 c2
    3093     jnbe short 019b5h                         ; 77 06
     3100    jnbe short 019ceh                         ; 77 06
    30943101    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3095     jne short 019d4h                          ; 75 1f
     3102    jne short 019edh                          ; 75 1f
    30963103    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    30973104    push ax                                   ; 50
     
    31023109    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    31033110    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3104     call 014e8h                               ; e8 16 fb
    3105     jmp short 019f6h                          ; eb 22
     3111    call 01501h                               ; e8 16 fb
     3112    jmp short 01a0fh                          ; eb 22
    31063113    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    31073114    push ax                                   ; 50
     
    31143121    movzx dx, al                              ; 0f b6 d0
    31153122    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3116     call 01444h                               ; e8 4e fa
     3123    call 0145dh                               ; e8 4e fa
    31173124    inc word [bp-014h]                        ; ff 46 ec
    3118     jmp short 01999h                          ; eb 9e
     3125    jmp short 019b2h                          ; eb 9e
    31193126    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    31203127    mov word [bp-014h], ax                    ; 89 46 ec
    31213128    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    31223129    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3123     jnbe short 01a6fh                         ; 77 64
     3130    jnbe short 01a88h                         ; 77 64
    31243131    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    31253132    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
    31263133    add ax, dx                                ; 01 d0
    31273134    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3128     jnbe short 01a20h                         ; 77 06
     3135    jnbe short 01a39h                         ; 77 06
    31293136    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    3130     jne short 01a3fh                          ; 75 1f
     3137    jne short 01a58h                          ; 75 1f
    31313138    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    31323139    push ax                                   ; 50
     
    31373144    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    31383145    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3139     call 014e8h                               ; e8 ab fa
    3140     jmp short 01a61h                          ; eb 22
     3146    call 01501h                               ; e8 ab fa
     3147    jmp short 01a7ah                          ; eb 22
    31413148    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    31423149    push ax                                   ; 50
     
    31493156    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    31503157    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3151     call 01444h                               ; e8 e3 f9
     3158    call 0145dh                               ; e8 e3 f9
    31523159    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    31533160    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3154     jc short 01a6fh                           ; 72 05
     3161    jc short 01a88h                           ; 72 05
    31553162    dec word [bp-014h]                        ; ff 4e ec
    3156     jmp short 01a02h                          ; eb 93
     3163    jmp short 01a1bh                          ; eb 93
    31573164    lea sp, [bp-004h]                         ; 8d 66 fc
    31583165    pop di                                    ; 5f
     
    31603167    pop bp                                    ; 5d
    31613168    retn 00008h                               ; c2 08 00
    3162 write_gfx_char_pl4_:                         ; 0xc1a78 LB 0xeb
     3169write_gfx_char_pl4_:                         ; 0xc1a91 LB 0xeb
    31633170    push bp                                   ; 55
    31643171    mov bp, sp                                ; 89 e5
     
    31693176    mov ah, bl                                ; 88 dc
    31703177    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
    3171     je short 01a96h                           ; 74 0b
     3178    je short 01aafh                           ; 74 0b
    31723179    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
    3173     jne short 01a9bh                          ; 75 0a
    3174     mov di, 05bedh                            ; bf ed 5b
    3175     jmp short 01a9eh                          ; eb 08
    3176     mov di, 069edh                            ; bf ed 69
    3177     jmp short 01a9eh                          ; eb 03
    3178     mov di, 053edh                            ; bf ed 53
     3180    jne short 01ab4h                          ; 75 0a
     3181    mov di, 05bf2h                            ; bf f2 5b
     3182    jmp short 01ab7h                          ; eb 08
     3183    mov di, 069f2h                            ; bf f2 69
     3184    jmp short 01ab7h                          ; eb 03
     3185    mov di, 053f2h                            ; bf f2 53
    31793186    movzx si, cl                              ; 0f b6 f1
    31803187    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
     
    31953202    out DX, ax                                ; ef
    31963203    test byte [bp-006h], 080h                 ; f6 46 fa 80
    3197     je short 01ad9h                           ; 74 06
     3204    je short 01af2h                           ; 74 06
    31983205    mov ax, 01803h                            ; b8 03 18
    31993206    out DX, ax                                ; ef
    3200     jmp short 01addh                          ; eb 04
     3207    jmp short 01af6h                          ; eb 04
    32013208    mov ax, strict word 00003h                ; b8 03 00
    32023209    out DX, ax                                ; ef
    32033210    xor ch, ch                                ; 30 ed
    32043211    cmp ch, byte [bp+006h]                    ; 3a 6e 06
    3205     jnc short 01b4bh                          ; 73 67
     3212    jnc short 01b64h                          ; 73 67
    32063213    movzx si, ch                              ; 0f b6 f5
    32073214    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    32093216    add si, word [bp-00eh]                    ; 03 76 f2
    32103217    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    3211     jmp short 01b0ah                          ; eb 13
     3218    jmp short 01b23h                          ; eb 13
    32123219    xor bx, bx                                ; 31 db
    32133220    mov dx, si                                ; 89 f2
    32143221    mov ax, 0a000h                            ; b8 00 a0
    3215     call 02f4ch                               ; e8 4b 14
     3222    call 02f65h                               ; e8 4b 14
    32163223    inc byte [bp-008h]                        ; fe 46 f8
    32173224    cmp byte [bp-008h], 008h                  ; 80 7e f8 08
    3218     jnc short 01b47h                          ; 73 3d
     3225    jnc short 01b60h                          ; 73 3d
    32193226    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    32203227    mov cl, al                                ; 88 c1
     
    32293236    mov dx, si                                ; 89 f2
    32303237    mov ax, 0a000h                            ; b8 00 a0
    3231     call 02f3eh                               ; e8 13 14
     3238    call 02f57h                               ; e8 13 14
    32323239    movzx ax, ch                              ; 0f b6 c5
    32333240    add ax, word [bp-00ah]                    ; 03 46 f6
     
    32363243    movzx ax, byte [bx]                       ; 0f b6 07
    32373244    test word [bp-00ch], ax                   ; 85 46 f4
    3238     je short 01af7h                           ; 74 ba
     3245    je short 01b10h                           ; 74 ba
    32393246    mov al, byte [bp-006h]                    ; 8a 46 fa
    32403247    and AL, strict byte 00fh                  ; 24 0f
    32413248    movzx bx, al                              ; 0f b6 d8
    3242     jmp short 01af9h                          ; eb b2
     3249    jmp short 01b12h                          ; eb b2
    32433250    db  0feh, 0c5h
    32443251    ; inc ch                                    ; fe c5
    3245     jmp short 01adfh                          ; eb 94
     3252    jmp short 01af8h                          ; eb 94
    32463253    mov ax, 0ff08h                            ; b8 08 ff
    32473254    mov dx, 003ceh                            ; ba ce 03
     
    32563263    pop bp                                    ; 5d
    32573264    retn 00004h                               ; c2 04 00
    3258 write_gfx_char_cga_:                         ; 0xc1b63 LB 0x11e
     3265write_gfx_char_cga_:                         ; 0xc1b7c LB 0x11e
    32593266    push bp                                   ; 55
    32603267    mov bp, sp                                ; 89 e5
     
    32633270    sub sp, strict byte 00008h                ; 83 ec 08
    32643271    mov byte [bp-008h], dl                    ; 88 56 f8
    3265     mov si, 053edh                            ; be ed 53
     3272    mov si, 053f2h                            ; be f2 53
    32663273    xor bh, bh                                ; 30 ff
    32673274    movzx di, byte [bp+006h]                  ; 0f b6 7e 06
     
    32743281    sal di, 003h                              ; c1 e7 03
    32753282    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    3276     jmp near 01be3h                           ; e9 50 00
     3283    jmp near 01bfch                           ; e9 50 00
    32773284    xor al, al                                ; 30 c0
    32783285    xor ah, ah                                ; 30 e4
    3279     jmp short 01ba4h                          ; eb 0b
     3286    jmp short 01bbdh                          ; eb 0b
    32803287    or al, bl                                 ; 08 d8
    32813288    shr ch, 1                                 ; d0 ed
     
    32833290    ; inc ah                                    ; fe c4
    32843291    cmp ah, 008h                              ; 80 fc 08
    3285     jnc short 01bcch                          ; 73 28
     3292    jnc short 01be5h                          ; 73 28
    32863293    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    32873294    add bx, di                                ; 01 fb
     
    32903297    movzx dx, ch                              ; 0f b6 d5
    32913298    test bx, dx                               ; 85 d3
    3292     je short 01b9bh                           ; 74 e5
     3299    je short 01bb4h                           ; 74 e5
    32933300    mov CL, strict byte 007h                  ; b1 07
    32943301    sub cl, ah                                ; 28 e1
     
    32973304    sal bl, CL                                ; d2 e3
    32983305    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3299     je short 01b99h                           ; 74 d1
     3306    je short 01bb2h                           ; 74 d1
    33003307    xor al, bl                                ; 30 d8
    3301     jmp short 01b9bh                          ; eb cf
     3308    jmp short 01bb4h                          ; eb cf
    33023309    movzx bx, al                              ; 0f b6 d8
    33033310    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33043311    mov ax, 0b800h                            ; b8 00 b8
    3305     call 02f4ch                               ; e8 74 13
     3312    call 02f65h                               ; e8 74 13
    33063313    inc byte [bp-006h]                        ; fe 46 fa
    33073314    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
    3308     jnc near 01c78h                           ; 0f 83 95 00
     3315    jnc near 01c91h                           ; 0f 83 95 00
    33093316    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    33103317    sar ax, 1                                 ; d1 f8
     
    33143321    mov word [bp-00ah], bx                    ; 89 5e f6
    33153322    test byte [bp-006h], 001h                 ; f6 46 fa 01
    3316     je short 01bfeh                           ; 74 04
     3323    je short 01c17h                           ; 74 04
    33173324    add byte [bp-009h], 020h                  ; 80 46 f7 20
    33183325    mov CH, strict byte 080h                  ; b5 80
    33193326    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
    3320     jne short 01c17h                          ; 75 11
     3327    jne short 01c30h                          ; 75 11
    33213328    test byte [bp-008h], ch                   ; 84 6e f8
    3322     je short 01b93h                           ; 74 88
     3329    je short 01bach                           ; 74 88
    33233330    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33243331    mov ax, 0b800h                            ; b8 00 b8
    3325     call 02f3eh                               ; e8 2a 13
    3326     jmp near 01b95h                           ; e9 7e ff
     3332    call 02f57h                               ; e8 2a 13
     3333    jmp near 01baeh                           ; e9 7e ff
    33273334    test ch, ch                               ; 84 ed
    3328     jbe short 01bd8h                          ; 76 bd
     3335    jbe short 01bf1h                          ; 76 bd
    33293336    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3330     je short 01c2ch                           ; 74 0b
     3337    je short 01c45h                           ; 74 0b
    33313338    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33323339    mov ax, 0b800h                            ; b8 00 b8
    3333     call 02f3eh                               ; e8 14 13
    3334     jmp short 01c2eh                          ; eb 02
     3340    call 02f57h                               ; e8 14 13
     3341    jmp short 01c47h                          ; eb 02
    33353342    xor al, al                                ; 30 c0
    33363343    xor ah, ah                                ; 30 e4
    3337     jmp short 01c3dh                          ; eb 0b
     3344    jmp short 01c56h                          ; eb 0b
    33383345    or al, bl                                 ; 08 d8
    33393346    shr ch, 1                                 ; d0 ed
     
    33413348    ; inc ah                                    ; fe c4
    33423349    cmp ah, 004h                              ; 80 fc 04
    3343     jnc short 01c67h                          ; 73 2a
     3350    jnc short 01c80h                          ; 73 2a
    33443351    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    33453352    add bx, di                                ; 01 fb
     
    33483355    movzx bx, ch                              ; 0f b6 dd
    33493356    test bx, dx                               ; 85 d3
    3350     je short 01c34h                           ; 74 e5
     3357    je short 01c4dh                           ; 74 e5
    33513358    mov CL, strict byte 003h                  ; b1 03
    33523359    sub cl, ah                                ; 28 e1
     
    33563363    sal bl, CL                                ; d2 e3
    33573364    test byte [bp-008h], 080h                 ; f6 46 f8 80
    3358     je short 01c32h                           ; 74 cf
     3365    je short 01c4bh                           ; 74 cf
    33593366    xor al, bl                                ; 30 d8
    3360     jmp short 01c34h                          ; eb cd
     3367    jmp short 01c4dh                          ; eb cd
    33613368    movzx bx, al                              ; 0f b6 d8
    33623369    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33633370    mov ax, 0b800h                            ; b8 00 b8
    3364     call 02f4ch                               ; e8 d9 12
     3371    call 02f65h                               ; e8 d9 12
    33653372    inc word [bp-00ah]                        ; ff 46 f6
    3366     jmp short 01c17h                          ; eb 9f
     3373    jmp short 01c30h                          ; eb 9f
    33673374    lea sp, [bp-004h]                         ; 8d 66 fc
    33683375    pop di                                    ; 5f
     
    33703377    pop bp                                    ; 5d
    33713378    retn 00004h                               ; c2 04 00
    3372 write_gfx_char_lin_:                         ; 0xc1c81 LB 0x91
     3379write_gfx_char_lin_:                         ; 0xc1c9a LB 0x91
    33733380    push bp                                   ; 55
    33743381    mov bp, sp                                ; 89 e5
     
    33773384    sub sp, strict byte 00008h                ; 83 ec 08
    33783385    mov byte [bp-006h], dl                    ; 88 56 fa
    3379     mov di, 053edh                            ; bf ed 53
     3386    mov di, 053f2h                            ; bf f2 53
    33803387    movzx dx, cl                              ; 0f b6 d1
    33813388    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    33893396    sal si, 003h                              ; c1 e6 03
    33903397    xor cl, cl                                ; 30 c9
    3391     jmp short 01cech                          ; eb 3b
     3398    jmp short 01d05h                          ; eb 3b
    33923399    cmp ch, 008h                              ; 80 fd 08
    3393     jnc short 01ce5h                          ; 73 2f
     3400    jnc short 01cfeh                          ; 73 2f
    33943401    xor al, al                                ; 30 c0
    33953402    movzx dx, cl                              ; 0f b6 d1
     
    34003407    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    34013408    test dx, bx                               ; 85 da
    3402     je short 01ccfh                           ; 74 03
     3409    je short 01ce8h                           ; 74 03
    34033410    mov al, byte [bp-006h]                    ; 8a 46 fa
    34043411    movzx bx, al                              ; 0f b6 d8
     
    34063413    add dx, word [bp-00ah]                    ; 03 56 f6
    34073414    mov ax, 0a000h                            ; b8 00 a0
    3408     call 02f4ch                               ; e8 6e 12
     3415    call 02f65h                               ; e8 6e 12
    34093416    shr byte [bp-008h], 1                     ; d0 6e f8
    34103417    db  0feh, 0c5h
    34113418    ; inc ch                                    ; fe c5
    3412     jmp short 01cb1h                          ; eb cc
     3419    jmp short 01ccah                          ; eb cc
    34133420    db  0feh, 0c1h
    34143421    ; inc cl                                    ; fe c1
    34153422    cmp cl, 008h                              ; 80 f9 08
    3416     jnc short 01d09h                          ; 73 1d
     3423    jnc short 01d22h                          ; 73 1d
    34173424    movzx bx, cl                              ; 0f b6 d9
    34183425    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
     
    34243431    mov byte [bp-008h], 080h                  ; c6 46 f8 80
    34253432    xor ch, ch                                ; 30 ed
    3426     jmp short 01cb6h                          ; eb ad
     3433    jmp short 01ccfh                          ; eb ad
    34273434    lea sp, [bp-004h]                         ; 8d 66 fc
    34283435    pop di                                    ; 5f
     
    34303437    pop bp                                    ; 5d
    34313438    retn 00002h                               ; c2 02 00
    3432 biosfn_write_char_attr_:                     ; 0xc1d12 LB 0x168
     3439biosfn_write_char_attr_:                     ; 0xc1d2b LB 0x168
    34333440    push bp                                   ; 55
    34343441    mov bp, sp                                ; 89 e5
     
    34423449    mov dx, strict word 00049h                ; ba 49 00
    34433450    mov ax, strict word 00040h                ; b8 40 00
    3444     call 02f3eh                               ; e8 10 12
     3451    call 02f57h                               ; e8 10 12
    34453452    xor ah, ah                                ; 30 e4
    3446     call 02f17h                               ; e8 e4 11
     3453    call 02f30h                               ; e8 e4 11
    34473454    mov cl, al                                ; 88 c1
    34483455    mov byte [bp-006h], al                    ; 88 46 fa
    34493456    cmp AL, strict byte 0ffh                  ; 3c ff
    3450     je near 01e73h                            ; 0f 84 35 01
     3457    je near 01e8ch                            ; 0f 84 35 01
    34513458    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    34523459    lea bx, [bp-01ch]                         ; 8d 5e e4
    34533460    lea dx, [bp-01ah]                         ; 8d 56 e6
    3454     call 00a88h                               ; e8 3d ed
     3461    call 00a88h                               ; e8 24 ed
    34553462    mov al, byte [bp-01ch]                    ; 8a 46 e4
    34563463    mov byte [bp-00ch], al                    ; 88 46 f4
     
    34613468    mov dx, 00084h                            ; ba 84 00
    34623469    mov ax, strict word 00040h                ; b8 40 00
    3463     call 02f3eh                               ; e8 d9 11
     3470    call 02f57h                               ; e8 d9 11
    34643471    xor ah, ah                                ; 30 e4
    34653472    inc ax                                    ; 40
     
    34673474    mov dx, strict word 0004ah                ; ba 4a 00
    34683475    mov ax, strict word 00040h                ; b8 40 00
    3469     call 02f5ah                               ; e8 e6 11
     3476    call 02f73h                               ; e8 e6 11
    34703477    mov word [bp-016h], ax                    ; 89 46 ea
    34713478    movzx bx, cl                              ; 0f b6 d9
    34723479    mov di, bx                                ; 89 df
    34733480    sal di, 003h                              ; c1 e7 03
    3474     cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
    3475     jne short 01dcdh                          ; 75 47
     3481    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3482    jne short 01de6h                          ; 75 47
    34763483    mov bx, word [bp-018h]                    ; 8b 5e e8
    34773484    imul bx, ax                               ; 0f af d8
     
    34933500    mov word [bp-01ah], ax                    ; 89 46 e6
    34943501    mov ax, word [bp-01ah]                    ; 8b 46 e6
    3495     mov es, [di+04633h]                       ; 8e 85 33 46
     3502    mov es, [di+04638h]                       ; 8e 85 38 46
    34963503    mov cx, si                                ; 89 f1
    34973504    mov di, dx                                ; 89 d7
    34983505    cld                                       ; fc
    3499     jcxz 01dcah                               ; e3 02
     3506    jcxz 01de3h                               ; e3 02
    35003507    rep stosw                                 ; f3 ab
    3501     jmp near 01e73h                           ; e9 a6 00
    3502     movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
     3508    jmp near 01e8ch                           ; e9 a6 00
     3509    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
    35033510    sal bx, 006h                              ; c1 e3 06
    3504     mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
     3511    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    35053512    mov byte [bp-008h], al                    ; 88 46 f8
    3506     mov al, byte [di+04632h]                  ; 8a 85 32 46
     3513    mov al, byte [di+04637h]                  ; 8a 85 37 46
    35073514    mov byte [bp-014h], al                    ; 88 46 ec
    35083515    dec si                                    ; 4e
    35093516    cmp si, strict byte 0ffffh                ; 83 fe ff
    3510     je near 01e73h                            ; 0f 84 88 00
     3517    je near 01e8ch                            ; 0f 84 88 00
    35113518    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    35123519    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3513     jnc near 01e73h                           ; 0f 83 7d 00
     3520    jnc near 01e8ch                           ; 0f 83 7d 00
    35143521    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    35153522    sal bx, 003h                              ; c1 e3 03
    3516     mov al, byte [bx+04631h]                  ; 8a 87 31 46
     3523    mov al, byte [bx+04636h]                  ; 8a 87 36 46
    35173524    cmp AL, strict byte 003h                  ; 3c 03
    3518     jc short 01e11h                           ; 72 0c
    3519     jbe short 01e17h                          ; 76 10
     3525    jc short 01e2ah                           ; 72 0c
     3526    jbe short 01e30h                          ; 76 10
    35203527    cmp AL, strict byte 005h                  ; 3c 05
    3521     je short 01e55h                           ; 74 4a
     3528    je short 01e6eh                           ; 74 4a
    35223529    cmp AL, strict byte 004h                  ; 3c 04
    3523     je short 01e17h                           ; 74 08
    3524     jmp short 01e6dh                          ; eb 5c
     3530    je short 01e30h                           ; 74 08
     3531    jmp short 01e86h                          ; eb 5c
    35253532    cmp AL, strict byte 002h                  ; 3c 02
    3526     je short 01e36h                           ; 74 21
    3527     jmp short 01e6dh                          ; eb 56
     3533    je short 01e4fh                           ; 74 21
     3534    jmp short 01e86h                          ; eb 56
    35283535    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    35293536    push ax                                   ; 50
     
    35343541    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    35353542    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3536     call 01a78h                               ; e8 44 fc
    3537     jmp short 01e6dh                          ; eb 37
     3543    call 01a91h                               ; e8 44 fc
     3544    jmp short 01e86h                          ; eb 37
    35383545    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    35393546    push ax                                   ; 50
     
    35443551    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    35453552    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3546     call 01b63h                               ; e8 10 fd
    3547     jmp short 01e6dh                          ; eb 18
     3553    call 01b7ch                               ; e8 10 fd
     3554    jmp short 01e86h                          ; eb 18
    35483555    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    35493556    push ax                                   ; 50
     
    35523559    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    35533560    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3554     call 01c81h                               ; e8 14 fe
     3561    call 01c9ah                               ; e8 14 fe
    35553562    inc byte [bp-00ch]                        ; fe 46 f4
    3556     jmp near 01de3h                           ; e9 70 ff
     3563    jmp near 01dfch                           ; e9 70 ff
    35573564    lea sp, [bp-004h]                         ; 8d 66 fc
    35583565    pop di                                    ; 5f
     
    35603567    pop bp                                    ; 5d
    35613568    retn                                      ; c3
    3562 biosfn_write_char_only_:                     ; 0xc1e7a LB 0x16f
     3569biosfn_write_char_only_:                     ; 0xc1e93 LB 0x16f
    35633570    push bp                                   ; 55
    35643571    mov bp, sp                                ; 89 e5
     
    35723579    mov dx, strict word 00049h                ; ba 49 00
    35733580    mov ax, strict word 00040h                ; b8 40 00
    3574     call 02f3eh                               ; e8 a8 10
     3581    call 02f57h                               ; e8 a8 10
    35753582    xor ah, ah                                ; 30 e4
    3576     call 02f17h                               ; e8 7c 10
     3583    call 02f30h                               ; e8 7c 10
    35773584    mov cl, al                                ; 88 c1
    35783585    mov byte [bp-00eh], al                    ; 88 46 f2
    35793586    cmp AL, strict byte 0ffh                  ; 3c ff
    3580     je near 01fe2h                            ; 0f 84 3c 01
     3587    je near 01ffbh                            ; 0f 84 3c 01
    35813588    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    35823589    lea bx, [bp-01ch]                         ; 8d 5e e4
    35833590    lea dx, [bp-01ah]                         ; 8d 56 e6
    3584     call 00a88h                               ; e8 d5 eb
     3591    call 00a88h                               ; e8 bc eb
    35853592    mov al, byte [bp-01ch]                    ; 8a 46 e4
    35863593    mov byte [bp-00ch], al                    ; 88 46 f4
     
    35913598    mov dx, 00084h                            ; ba 84 00
    35923599    mov ax, strict word 00040h                ; b8 40 00
    3593     call 02f3eh                               ; e8 71 10
     3600    call 02f57h                               ; e8 71 10
    35943601    xor ah, ah                                ; 30 e4
    35953602    inc ax                                    ; 40
     
    35973604    mov dx, strict word 0004ah                ; ba 4a 00
    35983605    mov ax, strict word 00040h                ; b8 40 00
    3599     call 02f5ah                               ; e8 7e 10
     3606    call 02f73h                               ; e8 7e 10
    36003607    mov word [bp-016h], ax                    ; 89 46 ea
    36013608    movzx di, cl                              ; 0f b6 f9
    36023609    mov bx, di                                ; 89 fb
    36033610    sal bx, 003h                              ; c1 e3 03
    3604     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    3605     jne short 01f38h                          ; 75 4a
     3611    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     3612    jne short 01f51h                          ; 75 4a
    36063613    mov dx, word [bp-018h]                    ; 8b 56 e8
    36073614    imul dx, ax                               ; 0f af d0
     
    36203627    dec si                                    ; 4e
    36213628    cmp si, strict byte 0ffffh                ; 83 fe ff
    3622     je near 01fe2h                            ; 0f 84 c6 00
     3629    je near 01ffbh                            ; 0f 84 c6 00
    36233630    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    36243631    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    36253632    sal bx, 003h                              ; c1 e3 03
    3626     mov di, word [bx+04633h]                  ; 8b bf 33 46
     3633    mov di, word [bx+04638h]                  ; 8b bf 38 46
    36273634    mov bx, ax                                ; 89 c3
    36283635    mov dx, cx                                ; 89 ca
    36293636    mov ax, di                                ; 89 f8
    3630     call 02f4ch                               ; e8 18 10
    3631     inc cx                                    ; 41
    3632     inc cx                                    ; 41
    3633     jmp short 01f14h                          ; eb dc
    3634     movzx di, byte [di+046afh]                ; 0f b6 bd af 46
     3637    call 02f65h                               ; e8 18 10
     3638    inc cx                                    ; 41
     3639    inc cx                                    ; 41
     3640    jmp short 01f2dh                          ; eb dc
     3641    movzx di, byte [di+046b4h]                ; 0f b6 bd b4 46
    36353642    sal di, 006h                              ; c1 e7 06
    3636     mov al, byte [di+046c5h]                  ; 8a 85 c5 46
     3643    mov al, byte [di+046cah]                  ; 8a 85 ca 46
    36373644    mov byte [bp-00ah], al                    ; 88 46 f6
    3638     mov al, byte [bx+04632h]                  ; 8a 87 32 46
     3645    mov al, byte [bx+04637h]                  ; 8a 87 37 46
    36393646    mov byte [bp-008h], al                    ; 88 46 f8
    36403647    dec si                                    ; 4e
    36413648    cmp si, strict byte 0ffffh                ; 83 fe ff
    3642     je near 01fe2h                            ; 0f 84 8c 00
     3649    je near 01ffbh                            ; 0f 84 8c 00
    36433650    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    36443651    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3645     jnc near 01fe2h                           ; 0f 83 81 00
     3652    jnc near 01ffbh                           ; 0f 83 81 00
    36463653    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    36473654    sal bx, 003h                              ; c1 e3 03
    3648     mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
     3655    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
    36493656    cmp bl, 003h                              ; 80 fb 03
    3650     jc short 01f7fh                           ; 72 0e
    3651     jbe short 01f86h                          ; 76 13
     3657    jc short 01f98h                           ; 72 0e
     3658    jbe short 01f9fh                          ; 76 13
    36523659    cmp bl, 005h                              ; 80 fb 05
    3653     je short 01fc4h                           ; 74 4c
     3660    je short 01fddh                           ; 74 4c
    36543661    cmp bl, 004h                              ; 80 fb 04
    3655     je short 01f86h                           ; 74 09
    3656     jmp short 01fdch                          ; eb 5d
     3662    je short 01f9fh                           ; 74 09
     3663    jmp short 01ff5h                          ; eb 5d
    36573664    cmp bl, 002h                              ; 80 fb 02
    3658     je short 01fa5h                           ; 74 21
    3659     jmp short 01fdch                          ; eb 56
     3665    je short 01fbeh                           ; 74 21
     3666    jmp short 01ff5h                          ; eb 56
    36603667    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    36613668    push ax                                   ; 50
     
    36663673    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    36673674    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3668     call 01a78h                               ; e8 d5 fa
    3669     jmp short 01fdch                          ; eb 37
     3675    call 01a91h                               ; e8 d5 fa
     3676    jmp short 01ff5h                          ; eb 37
    36703677    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    36713678    push ax                                   ; 50
     
    36763683    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    36773684    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3678     call 01b63h                               ; e8 a1 fb
    3679     jmp short 01fdch                          ; eb 18
     3685    call 01b7ch                               ; e8 a1 fb
     3686    jmp short 01ff5h                          ; eb 18
    36803687    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    36813688    push ax                                   ; 50
     
    36843691    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    36853692    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    3686     call 01c81h                               ; e8 a5 fc
     3693    call 01c9ah                               ; e8 a5 fc
    36873694    inc byte [bp-00ch]                        ; fe 46 f4
    3688     jmp near 01f4eh                           ; e9 6c ff
     3695    jmp near 01f67h                           ; e9 6c ff
    36893696    lea sp, [bp-004h]                         ; 8d 66 fc
    36903697    pop di                                    ; 5f
     
    36923699    pop bp                                    ; 5d
    36933700    retn                                      ; c3
    3694 biosfn_write_pixel_:                         ; 0xc1fe9 LB 0x16a
     3701biosfn_write_pixel_:                         ; 0xc2002 LB 0x16a
    36953702    push bp                                   ; 55
    36963703    mov bp, sp                                ; 89 e5
     
    37013708    mov dx, strict word 00049h                ; ba 49 00
    37023709    mov ax, strict word 00040h                ; b8 40 00
    3703     call 02f3eh                               ; e8 3f 0f
     3710    call 02f57h                               ; e8 3f 0f
    37043711    xor ah, ah                                ; 30 e4
    3705     call 02f17h                               ; e8 13 0f
     3712    call 02f30h                               ; e8 13 0f
    37063713    mov byte [bp-004h], al                    ; 88 46 fc
    37073714    cmp AL, strict byte 0ffh                  ; 3c ff
    3708     je near 0212bh                            ; 0f 84 1e 01
     3715    je near 02144h                            ; 0f 84 1e 01
    37093716    movzx bx, al                              ; 0f b6 d8
    37103717    sal bx, 003h                              ; c1 e3 03
    3711     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    3712     je near 0212bh                            ; 0f 84 0f 01
    3713     mov al, byte [bx+04631h]                  ; 8a 87 31 46
     3718    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     3719    je near 02144h                            ; 0f 84 0f 01
     3720    mov al, byte [bx+04636h]                  ; 8a 87 36 46
    37143721    cmp AL, strict byte 003h                  ; 3c 03
    3715     jc short 02033h                           ; 72 0f
    3716     jbe short 0203ah                          ; 76 14
     3722    jc short 0204ch                           ; 72 0f
     3723    jbe short 02053h                          ; 76 14
    37173724    cmp AL, strict byte 005h                  ; 3c 05
    3718     je near 02131h                            ; 0f 84 05 01
     3725    je near 0214ah                            ; 0f 84 05 01
    37193726    cmp AL, strict byte 004h                  ; 3c 04
    3720     je short 0203ah                           ; 74 0a
    3721     jmp near 0212bh                           ; e9 f8 00
     3727    je short 02053h                           ; 74 0a
     3728    jmp near 02144h                           ; e9 f8 00
    37223729    cmp AL, strict byte 002h                  ; 3c 02
    3723     je short 0209fh                           ; 74 68
    3724     jmp near 0212bh                           ; e9 f1 00
     3730    je short 020b8h                           ; 74 68
     3731    jmp near 02144h                           ; e9 f1 00
    37253732    mov dx, strict word 0004ah                ; ba 4a 00
    37263733    mov ax, strict word 00040h                ; b8 40 00
    3727     call 02f5ah                               ; e8 17 0f
     3734    call 02f73h                               ; e8 17 0f
    37283735    imul ax, cx                               ; 0f af c1
    37293736    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    37443751    mov dx, bx                                ; 89 da
    37453752    mov ax, 0a000h                            ; b8 00 a0
    3746     call 02f3eh                               ; e8 cb 0e
     3753    call 02f57h                               ; e8 cb 0e
    37473754    test byte [bp-006h], 080h                 ; f6 46 fa 80
    3748     je short 02080h                           ; 74 07
     3755    je short 02099h                           ; 74 07
    37493756    mov ax, 01803h                            ; b8 03 18
    37503757    mov dx, 003ceh                            ; ba ce 03
     
    37533760    mov dx, word [bp-008h]                    ; 8b 56 f8
    37543761    mov ax, 0a000h                            ; b8 00 a0
    3755     call 02f4ch                               ; e8 bf 0e
     3762    call 02f65h                               ; e8 bf 0e
    37563763    mov ax, 0ff08h                            ; b8 08 ff
    37573764    mov dx, 003ceh                            ; ba ce 03
     
    37613768    mov ax, strict word 00003h                ; b8 03 00
    37623769    out DX, ax                                ; ef
    3763     jmp near 0212bh                           ; e9 8c 00
     3770    jmp near 02144h                           ; e9 8c 00
    37643771    mov ax, cx                                ; 89 c8
    37653772    shr ax, 1                                 ; d1 e8
    37663773    imul ax, ax, strict byte 00050h           ; 6b c0 50
    3767     cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
    3768     jne short 020b5h                          ; 75 08
     3774    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     3775    jne short 020ceh                          ; 75 08
    37693776    mov bx, word [bp-00ah]                    ; 8b 5e f6
    37703777    shr bx, 002h                              ; c1 eb 02
    3771     jmp short 020bbh                          ; eb 06
     3778    jmp short 020d4h                          ; eb 06
    37723779    mov bx, word [bp-00ah]                    ; 8b 5e f6
    37733780    shr bx, 003h                              ; c1 eb 03
     
    37753782    mov word [bp-008h], bx                    ; 89 5e f8
    37763783    test cl, 001h                             ; f6 c1 01
    3777     je short 020c9h                           ; 74 04
     3784    je short 020e2h                           ; 74 04
    37783785    add byte [bp-007h], 020h                  ; 80 46 f9 20
    37793786    mov dx, word [bp-008h]                    ; 8b 56 f8
    37803787    mov ax, 0b800h                            ; b8 00 b8
    3781     call 02f3eh                               ; e8 6c 0e
     3788    call 02f57h                               ; e8 6c 0e
    37823789    mov bl, al                                ; 88 c3
    37833790    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
    37843791    sal si, 003h                              ; c1 e6 03
    3785     cmp byte [si+04632h], 002h                ; 80 bc 32 46 02
    3786     jne short 020fbh                          ; 75 19
     3792    cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
     3793    jne short 02114h                          ; 75 19
    37873794    mov al, byte [bp-00ah]                    ; 8a 46 f6
    37883795    and AL, strict byte 003h                  ; 24 03
     
    37953802    sal bh, CL                                ; d2 e7
    37963803    mov AL, strict byte 003h                  ; b0 03
    3797     jmp short 0210eh                          ; eb 13
     3804    jmp short 02127h                          ; eb 13
    37983805    mov al, byte [bp-00ah]                    ; 8a 46 f6
    37993806    and AL, strict byte 007h                  ; 24 07
     
    38063813    sal al, CL                                ; d2 e0
    38073814    test byte [bp-006h], 080h                 ; f6 46 fa 80
    3808     je short 0211ah                           ; 74 04
     3815    je short 02133h                           ; 74 04
    38093816    xor bl, bh                                ; 30 fb
    3810     jmp short 02120h                          ; eb 06
     3817    jmp short 02139h                          ; eb 06
    38113818    not al                                    ; f6 d0
    38123819    and bl, al                                ; 20 c3
     
    38153822    mov dx, word [bp-008h]                    ; 8b 56 f8
    38163823    mov ax, 0b800h                            ; b8 00 b8
    3817     call 02f4ch                               ; e8 21 0e
     3824    call 02f65h                               ; e8 21 0e
    38183825    lea sp, [bp-002h]                         ; 8d 66 fe
    38193826    pop si                                    ; 5e
     
    38223829    mov dx, strict word 0004ah                ; ba 4a 00
    38233830    mov ax, strict word 00040h                ; b8 40 00
    3824     call 02f5ah                               ; e8 20 0e
     3831    call 02f73h                               ; e8 20 0e
    38253832    sal ax, 003h                              ; c1 e0 03
    38263833    imul cx, ax                               ; 0f af c8
     
    38313838    mov dx, ax                                ; 89 c2
    38323839    mov ax, 0a000h                            ; b8 00 a0
    3833     jmp short 02128h                          ; eb d5
    3834 biosfn_write_teletype_:                      ; 0xc2153 LB 0x241
     3840    jmp short 02141h                          ; eb d5
     3841biosfn_write_teletype_:                      ; 0xc216c LB 0x241
    38353842    push bp                                   ; 55
    38363843    mov bp, sp                                ; 89 e5
     
    38423849    mov byte [bp-00eh], cl                    ; 88 4e f2
    38433850    cmp dl, 0ffh                              ; 80 fa ff
    3844     jne short 02177h                          ; 75 0c
     3851    jne short 02190h                          ; 75 0c
    38453852    mov dx, strict word 00062h                ; ba 62 00
    38463853    mov ax, strict word 00040h                ; b8 40 00
    3847     call 02f3eh                               ; e8 ca 0d
     3854    call 02f57h                               ; e8 ca 0d
    38483855    mov byte [bp-006h], al                    ; 88 46 fa
    38493856    mov dx, strict word 00049h                ; ba 49 00
    38503857    mov ax, strict word 00040h                ; b8 40 00
    3851     call 02f3eh                               ; e8 be 0d
     3858    call 02f57h                               ; e8 be 0d
    38523859    xor ah, ah                                ; 30 e4
    3853     call 02f17h                               ; e8 92 0d
     3860    call 02f30h                               ; e8 92 0d
    38543861    mov byte [bp-010h], al                    ; 88 46 f0
    38553862    cmp AL, strict byte 0ffh                  ; 3c ff
    3856     je near 0238eh                            ; 0f 84 00 02
     3863    je near 023a7h                            ; 0f 84 00 02
    38573864    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    38583865    lea bx, [bp-018h]                         ; 8d 5e e8
    38593866    lea dx, [bp-016h]                         ; 8d 56 ea
    3860     call 00a88h                               ; e8 ed e8
     3867    call 00a88h                               ; e8 d4 e8
    38613868    mov al, byte [bp-018h]                    ; 8a 46 e8
    38623869    mov byte [bp-008h], al                    ; 88 46 f8
     
    38673874    mov dx, 00084h                            ; ba 84 00
    38683875    mov ax, strict word 00040h                ; b8 40 00
    3869     call 02f3eh                               ; e8 89 0d
     3876    call 02f57h                               ; e8 89 0d
    38703877    xor ah, ah                                ; 30 e4
    38713878    inc ax                                    ; 40
     
    38733880    mov dx, strict word 0004ah                ; ba 4a 00
    38743881    mov ax, strict word 00040h                ; b8 40 00
    3875     call 02f5ah                               ; e8 96 0d
     3882    call 02f73h                               ; e8 96 0d
    38763883    mov word [bp-012h], ax                    ; 89 46 ee
    38773884    mov al, byte [bp-00ch]                    ; 8a 46 f4
    38783885    cmp AL, strict byte 008h                  ; 3c 08
    3879     jc short 021dch                           ; 72 0e
    3880     jbe short 021e4h                          ; 76 14
     3886    jc short 021f5h                           ; 72 0e
     3887    jbe short 021fdh                          ; 76 14
    38813888    cmp AL, strict byte 00dh                  ; 3c 0d
    3882     je short 021f2h                           ; 74 1e
     3889    je short 0220bh                           ; 74 1e
    38833890    cmp AL, strict byte 00ah                  ; 3c 0a
    3884     je near 022e4h                            ; 0f 84 0a 01
    3885     jmp short 021f9h                          ; eb 1d
     3891    je near 022fdh                            ; 0f 84 0a 01
     3892    jmp short 02212h                          ; eb 1d
    38863893    cmp AL, strict byte 007h                  ; 3c 07
    3887     je near 022e7h                            ; 0f 84 05 01
    3888     jmp short 021f9h                          ; eb 15
     3894    je near 02300h                            ; 0f 84 05 01
     3895    jmp short 02212h                          ; eb 15
    38893896    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3890     jbe near 022e7h                           ; 0f 86 fb 00
     3897    jbe near 02300h                           ; 0f 86 fb 00
    38913898    dec byte [bp-008h]                        ; fe 4e f8
    3892     jmp near 022e7h                           ; e9 f5 00
     3899    jmp near 02300h                           ; e9 f5 00
    38933900    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    3894     jmp near 022e7h                           ; e9 ee 00
     3901    jmp near 02300h                           ; e9 ee 00
    38953902    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    38963903    mov si, bx                                ; 89 de
    38973904    sal si, 003h                              ; c1 e6 03
    3898     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
    3899     jne short 02256h                          ; 75 4d
     3905    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     3906    jne short 0226fh                          ; 75 4d
    39003907    mov ax, word [bp-012h]                    ; 8b 46 ee
    39013908    imul ax, word [bp-014h]                   ; 0f af 46 ec
     
    39133920    add cx, ax                                ; 01 c1
    39143921    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    3915     mov ax, word [si+04633h]                  ; 8b 84 33 46
     3922    mov ax, word [si+04638h]                  ; 8b 84 38 46
    39163923    mov dx, cx                                ; 89 ca
    3917     call 02f4ch                               ; e8 0f 0d
     3924    call 02f65h                               ; e8 0f 0d
    39183925    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
    3919     jne near 022d4h                           ; 0f 85 8f 00
     3926    jne near 022edh                           ; 0f 85 8f 00
    39203927    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    39213928    mov dx, cx                                ; 89 ca
    39223929    inc dx                                    ; 42
    3923     mov ax, word [si+04633h]                  ; 8b 84 33 46
    3924     call 02f4ch                               ; e8 f9 0c
    3925     jmp near 022d4h                           ; e9 7e 00
    3926     movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
     3930    mov ax, word [si+04638h]                  ; 8b 84 38 46
     3931    call 02f65h                               ; e8 f9 0c
     3932    jmp near 022edh                           ; e9 7e 00
     3933    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
    39273934    sal bx, 006h                              ; c1 e3 06
    3928     mov ah, byte [bx+046c5h]                  ; 8a a7 c5 46
    3929     mov dl, byte [si+04632h]                  ; 8a 94 32 46
    3930     mov al, byte [si+04631h]                  ; 8a 84 31 46
     3935    mov ah, byte [bx+046cah]                  ; 8a a7 ca 46
     3936    mov dl, byte [si+04637h]                  ; 8a 94 37 46
     3937    mov al, byte [si+04636h]                  ; 8a 84 36 46
    39313938    cmp AL, strict byte 003h                  ; 3c 03
    3932     jc short 0227ah                           ; 72 0c
    3933     jbe short 02280h                          ; 76 10
     3939    jc short 02293h                           ; 72 0c
     3940    jbe short 02299h                          ; 76 10
    39343941    cmp AL, strict byte 005h                  ; 3c 05
    3935     je short 022bch                           ; 74 48
     3942    je short 022d5h                           ; 74 48
    39363943    cmp AL, strict byte 004h                  ; 3c 04
    3937     je short 02280h                           ; 74 08
    3938     jmp short 022d4h                          ; eb 5a
     3944    je short 02299h                           ; 74 08
     3945    jmp short 022edh                          ; eb 5a
    39393946    cmp AL, strict byte 002h                  ; 3c 02
    3940     je short 0229eh                           ; 74 20
    3941     jmp short 022d4h                          ; eb 54
     3947    je short 022b7h                           ; 74 20
     3948    jmp short 022edh                          ; eb 54
    39423949    movzx ax, ah                              ; 0f b6 c4
    39433950    push ax                                   ; 50
     
    39483955    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    39493956    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    3950     call 01a78h                               ; e8 dc f7
    3951     jmp short 022d4h                          ; eb 36
     3957    call 01a91h                               ; e8 dc f7
     3958    jmp short 022edh                          ; eb 36
    39523959    movzx ax, dl                              ; 0f b6 c2
    39533960    push ax                                   ; 50
     
    39583965    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    39593966    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    3960     call 01b63h                               ; e8 a9 f8
    3961     jmp short 022d4h                          ; eb 18
     3967    call 01b7ch                               ; e8 a9 f8
     3968    jmp short 022edh                          ; eb 18
    39623969    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    39633970    push ax                                   ; 50
     
    39663973    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    39673974    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    3968     call 01c81h                               ; e8 ad f9
     3975    call 01c9ah                               ; e8 ad f9
    39693976    inc byte [bp-008h]                        ; fe 46 f8
    39703977    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    39713978    cmp ax, word [bp-012h]                    ; 3b 46 ee
    3972     jne short 022e7h                          ; 75 07
     3979    jne short 02300h                          ; 75 07
    39733980    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    39743981    inc byte [bp-00ah]                        ; fe 46 f6
    39753982    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    39763983    cmp ax, word [bp-014h]                    ; 3b 46 ec
    3977     jne near 02372h                           ; 0f 85 80 00
     3984    jne near 0238bh                           ; 0f 85 80 00
    39783985    movzx si, byte [bp-010h]                  ; 0f b6 76 f0
    39793986    sal si, 003h                              ; c1 e6 03
     
    39843991    db  0feh, 0cbh
    39853992    ; dec bl                                    ; fe cb
    3986     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
    3987     jne short 02354h                          ; 75 4a
     3993    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     3994    jne short 0236dh                          ; 75 4a
    39883995    mov ax, word [bp-012h]                    ; 8b 46 ee
    39893996    imul ax, word [bp-014h]                   ; 0f af 46 ec
     
    40034010    add dx, ax                                ; 01 c2
    40044011    inc dx                                    ; 42
    4005     mov ax, word [si+04633h]                  ; 8b 84 33 46
    4006     call 02f3eh                               ; e8 02 0c
     4012    mov ax, word [si+04638h]                  ; 8b 84 38 46
     4013    call 02f57h                               ; e8 02 0c
    40074014    push strict byte 00001h                   ; 6a 01
    40084015    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    40154022    xor cx, cx                                ; 31 c9
    40164023    xor bx, bx                                ; 31 db
    4017     jmp short 02369h                          ; eb 15
     4024    jmp short 02382h                          ; eb 15
    40184025    push strict byte 00001h                   ; 6a 01
    40194026    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     
    40274034    xor dx, dx                                ; 31 d2
    40284035    mov ax, strict word 00001h                ; b8 01 00
    4029     call 01572h                               ; e8 03 f2
     4036    call 0158bh                               ; e8 03 f2
    40304037    dec byte [bp-00ah]                        ; fe 4e f6
    40314038    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     
    40364043    mov dx, word [bp-018h]                    ; 8b 56 e8
    40374044    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    4038     call 00e5eh                               ; e8 d0 ea
     4045    call 00e5eh                               ; e8 b7 ea
    40394046    lea sp, [bp-002h]                         ; 8d 66 fe
    40404047    pop si                                    ; 5e
    40414048    pop bp                                    ; 5d
    40424049    retn                                      ; c3
    4043 get_font_access_:                            ; 0xc2394 LB 0x2c
     4050get_font_access_:                            ; 0xc23ad LB 0x2c
    40444051    push bp                                   ; 55
    40454052    mov bp, sp                                ; 89 e5
     
    40654072    pop bp                                    ; 5d
    40664073    retn                                      ; c3
    4067 release_font_access_:                        ; 0xc23c0 LB 0x3c
     4074release_font_access_:                        ; 0xc23d9 LB 0x3c
    40684075    push bp                                   ; 55
    40694076    mov bp, sp                                ; 89 e5
     
    40974104    pop bp                                    ; 5d
    40984105    retn                                      ; c3
    4099 set_scan_lines_:                             ; 0xc23fc LB 0xbf
     4106set_scan_lines_:                             ; 0xc2415 LB 0xbf
    41004107    push bp                                   ; 55
    41014108    mov bp, sp                                ; 89 e5
     
    41084115    mov dx, strict word 00063h                ; ba 63 00
    41094116    mov ax, strict word 00040h                ; b8 40 00
    4110     call 02f5ah                               ; e8 4b 0b
     4117    call 02f73h                               ; e8 4b 0b
    41114118    mov dx, ax                                ; 89 c2
    41124119    mov si, ax                                ; 89 c6
     
    41254132    out DX, AL                                ; ee
    41264133    cmp bl, 008h                              ; 80 fb 08
    4127     jne short 02433h                          ; 75 08
     4134    jne short 0244ch                          ; 75 08
    41284135    mov dx, strict word 00007h                ; ba 07 00
    41294136    mov ax, strict word 00006h                ; b8 06 00
    4130     jmp short 02440h                          ; eb 0d
     4137    jmp short 02459h                          ; eb 0d
    41314138    mov al, bl                                ; 88 d8
    41324139    sub AL, strict byte 003h                  ; 2c 03
     
    41354142    sub AL, strict byte 004h                  ; 2c 04
    41364143    xor ah, ah                                ; 30 e4
    4137     call 00dbah                               ; e8 77 e9
     4144    call 00dbah                               ; e8 5e e9
    41384145    movzx di, bl                              ; 0f b6 fb
    41394146    mov bx, di                                ; 89 fb
    41404147    mov dx, 00085h                            ; ba 85 00
    41414148    mov ax, strict word 00040h                ; b8 40 00
    4142     call 02f68h                               ; e8 17 0b
     4149    call 02f81h                               ; e8 17 0b
    41434150    mov AL, strict byte 012h                  ; b0 12
    41444151    mov dx, si                                ; 89 f2
     
    41754182    mov dx, 00084h                            ; ba 84 00
    41764183    mov ax, strict word 00040h                ; b8 40 00
    4177     call 02f4ch                               ; e8 b7 0a
     4184    call 02f65h                               ; e8 b7 0a
    41784185    mov dx, strict word 0004ah                ; ba 4a 00
    41794186    mov ax, strict word 00040h                ; b8 40 00
    4180     call 02f5ah                               ; e8 bc 0a
     4187    call 02f73h                               ; e8 bc 0a
    41814188    movzx dx, cl                              ; 0f b6 d1
    41824189    mov bx, ax                                ; 89 c3
     
    41854192    mov dx, strict word 0004ch                ; ba 4c 00
    41864193    mov ax, strict word 00040h                ; b8 40 00
    4187     call 02f68h                               ; e8 b7 0a
     4194    call 02f81h                               ; e8 b7 0a
    41884195    lea sp, [bp-00ah]                         ; 8d 66 f6
    41894196    pop di                                    ; 5f
     
    41944201    pop bp                                    ; 5d
    41954202    retn                                      ; c3
    4196 biosfn_load_text_user_pat_:                  ; 0xc24bb LB 0x7d
     4203biosfn_load_text_user_pat_:                  ; 0xc24d4 LB 0x7d
    41974204    push bp                                   ; 55
    41984205    mov bp, sp                                ; 89 e5
     
    42044211    mov word [bp-008h], bx                    ; 89 5e f8
    42054212    mov word [bp-00ah], cx                    ; 89 4e f6
    4206     call 02394h                               ; e8 c2 fe
     4213    call 023adh                               ; e8 c2 fe
    42074214    mov al, byte [bp+006h]                    ; 8a 46 06
    42084215    and AL, strict byte 003h                  ; 24 03
     
    42184225    xor bx, bx                                ; 31 db
    42194226    cmp bx, word [bp-00ah]                    ; 3b 5e f6
    4220     jnc short 0251fh                          ; 73 2b
     4227    jnc short 02538h                          ; 73 2b
    42214228    movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
    42224229    mov si, bx                                ; 89 de
     
    42314238    mov es, ax                                ; 8e c0
    42324239    cld                                       ; fc
    4233     jcxz 0251ch                               ; e3 06
     4240    jcxz 02535h                               ; e3 06
    42344241    push DS                                   ; 1e
    42354242    mov ds, dx                                ; 8e da
     
    42374244    pop DS                                    ; 1f
    42384245    inc bx                                    ; 43
    4239     jmp short 024efh                          ; eb d0
    4240     call 023c0h                               ; e8 9e fe
     4246    jmp short 02508h                          ; eb d0
     4247    call 023d9h                               ; e8 9e fe
    42414248    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
    4242     jc short 0252fh                           ; 72 07
     4249    jc short 02548h                           ; 72 07
    42434250    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    4244     call 023fch                               ; e8 cd fe
     4251    call 02415h                               ; e8 cd fe
    42454252    lea sp, [bp-004h]                         ; 8d 66 fc
    42464253    pop di                                    ; 5f
     
    42484255    pop bp                                    ; 5d
    42494256    retn 00006h                               ; c2 06 00
    4250 biosfn_load_text_8_14_pat_:                  ; 0xc2538 LB 0x70
     4257biosfn_load_text_8_14_pat_:                  ; 0xc2551 LB 0x70
    42514258    push bp                                   ; 55
    42524259    mov bp, sp                                ; 89 e5
     
    42584265    push ax                                   ; 50
    42594266    mov byte [bp-00ah], al                    ; 88 46 f6
    4260     call 02394h                               ; e8 4d fe
     4267    call 023adh                               ; e8 4d fe
    42614268    mov al, dl                                ; 88 d0
    42624269    and AL, strict byte 003h                  ; 24 03
     
    42714278    mov word [bp-00ch], bx                    ; 89 5e f4
    42724279    xor bx, bx                                ; 31 db
    4273     jmp short 0256ah                          ; eb 06
     4280    jmp short 02583h                          ; eb 06
    42744281    cmp bx, 00100h                            ; 81 fb 00 01
    4275     jnc short 02590h                          ; 73 26
     4282    jnc short 025a9h                          ; 73 26
    42764283    imul si, bx, strict byte 0000eh           ; 6b f3 0e
    42774284    mov di, bx                                ; 89 df
    42784285    sal di, 005h                              ; c1 e7 05
    42794286    add di, word [bp-00ch]                    ; 03 7e f4
    4280     add si, 05bedh                            ; 81 c6 ed 5b
     4287    add si, 05bf2h                            ; 81 c6 f2 5b
    42814288    mov cx, strict word 0000eh                ; b9 0e 00
    42824289    mov dx, 0c000h                            ; ba 00 c0
     
    42844291    mov es, ax                                ; 8e c0
    42854292    cld                                       ; fc
    4286     jcxz 0258dh                               ; e3 06
     4293    jcxz 025a6h                               ; e3 06
    42874294    push DS                                   ; 1e
    42884295    mov ds, dx                                ; 8e da
     
    42904297    pop DS                                    ; 1f
    42914298    inc bx                                    ; 43
    4292     jmp short 02564h                          ; eb d4
    4293     call 023c0h                               ; e8 2d fe
     4299    jmp short 0257dh                          ; eb d4
     4300    call 023d9h                               ; e8 2d fe
    42944301    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4295     jc short 0259fh                           ; 72 06
     4302    jc short 025b8h                           ; 72 06
    42964303    mov ax, strict word 0000eh                ; b8 0e 00
    4297     call 023fch                               ; e8 5d fe
     4304    call 02415h                               ; e8 5d fe
    42984305    lea sp, [bp-008h]                         ; 8d 66 f8
    42994306    pop di                                    ; 5f
     
    43034310    pop bp                                    ; 5d
    43044311    retn                                      ; c3
    4305 biosfn_load_text_8_8_pat_:                   ; 0xc25a8 LB 0x72
     4312biosfn_load_text_8_8_pat_:                   ; 0xc25c1 LB 0x72
    43064313    push bp                                   ; 55
    43074314    mov bp, sp                                ; 89 e5
     
    43134320    push ax                                   ; 50
    43144321    mov byte [bp-00ah], al                    ; 88 46 f6
    4315     call 02394h                               ; e8 dd fd
     4322    call 023adh                               ; e8 dd fd
    43164323    mov al, dl                                ; 88 d0
    43174324    and AL, strict byte 003h                  ; 24 03
     
    43264333    mov word [bp-00ch], bx                    ; 89 5e f4
    43274334    xor bx, bx                                ; 31 db
    4328     jmp short 025dah                          ; eb 06
     4335    jmp short 025f3h                          ; eb 06
    43294336    cmp bx, 00100h                            ; 81 fb 00 01
    4330     jnc short 02602h                          ; 73 28
     4337    jnc short 0261bh                          ; 73 28
    43314338    mov si, bx                                ; 89 de
    43324339    sal si, 003h                              ; c1 e6 03
     
    43344341    sal di, 005h                              ; c1 e7 05
    43354342    add di, word [bp-00ch]                    ; 03 7e f4
    4336     add si, 053edh                            ; 81 c6 ed 53
     4343    add si, 053f2h                            ; 81 c6 f2 53
    43374344    mov cx, strict word 00008h                ; b9 08 00
    43384345    mov dx, 0c000h                            ; ba 00 c0
     
    43404347    mov es, ax                                ; 8e c0
    43414348    cld                                       ; fc
    4342     jcxz 025ffh                               ; e3 06
     4349    jcxz 02618h                               ; e3 06
    43434350    push DS                                   ; 1e
    43444351    mov ds, dx                                ; 8e da
     
    43464353    pop DS                                    ; 1f
    43474354    inc bx                                    ; 43
    4348     jmp short 025d4h                          ; eb d2
    4349     call 023c0h                               ; e8 bb fd
     4355    jmp short 025edh                          ; eb d2
     4356    call 023d9h                               ; e8 bb fd
    43504357    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4351     jc short 02611h                           ; 72 06
     4358    jc short 0262ah                           ; 72 06
    43524359    mov ax, strict word 00008h                ; b8 08 00
    4353     call 023fch                               ; e8 eb fd
     4360    call 02415h                               ; e8 eb fd
    43544361    lea sp, [bp-008h]                         ; 8d 66 f8
    43554362    pop di                                    ; 5f
     
    43594366    pop bp                                    ; 5d
    43604367    retn                                      ; c3
    4361 biosfn_load_text_8_16_pat_:                  ; 0xc261a LB 0x72
     4368biosfn_load_text_8_16_pat_:                  ; 0xc2633 LB 0x72
    43624369    push bp                                   ; 55
    43634370    mov bp, sp                                ; 89 e5
     
    43694376    push ax                                   ; 50
    43704377    mov byte [bp-00ah], al                    ; 88 46 f6
    4371     call 02394h                               ; e8 6b fd
     4378    call 023adh                               ; e8 6b fd
    43724379    mov al, dl                                ; 88 d0
    43734380    and AL, strict byte 003h                  ; 24 03
     
    43824389    mov word [bp-00ch], bx                    ; 89 5e f4
    43834390    xor bx, bx                                ; 31 db
    4384     jmp short 0264ch                          ; eb 06
     4391    jmp short 02665h                          ; eb 06
    43854392    cmp bx, 00100h                            ; 81 fb 00 01
    4386     jnc short 02674h                          ; 73 28
     4393    jnc short 0268dh                          ; 73 28
    43874394    mov si, bx                                ; 89 de
    43884395    sal si, 004h                              ; c1 e6 04
     
    43904397    sal di, 005h                              ; c1 e7 05
    43914398    add di, word [bp-00ch]                    ; 03 7e f4
    4392     add si, 069edh                            ; 81 c6 ed 69
     4399    add si, 069f2h                            ; 81 c6 f2 69
    43934400    mov cx, strict word 00010h                ; b9 10 00
    43944401    mov dx, 0c000h                            ; ba 00 c0
     
    43964403    mov es, ax                                ; 8e c0
    43974404    cld                                       ; fc
    4398     jcxz 02671h                               ; e3 06
     4405    jcxz 0268ah                               ; e3 06
    43994406    push DS                                   ; 1e
    44004407    mov ds, dx                                ; 8e da
     
    44024409    pop DS                                    ; 1f
    44034410    inc bx                                    ; 43
    4404     jmp short 02646h                          ; eb d2
    4405     call 023c0h                               ; e8 49 fd
     4411    jmp short 0265fh                          ; eb d2
     4412    call 023d9h                               ; e8 49 fd
    44064413    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4407     jc short 02683h                           ; 72 06
     4414    jc short 0269ch                           ; 72 06
    44084415    mov ax, strict word 00010h                ; b8 10 00
    4409     call 023fch                               ; e8 79 fd
     4416    call 02415h                               ; e8 79 fd
    44104417    lea sp, [bp-008h]                         ; 8d 66 f8
    44114418    pop di                                    ; 5f
     
    44154422    pop bp                                    ; 5d
    44164423    retn                                      ; c3
    4417 biosfn_load_gfx_8_8_chars_:                  ; 0xc268c LB 0x5
     4424biosfn_load_gfx_8_8_chars_:                  ; 0xc26a5 LB 0x5
    44184425    push bp                                   ; 55
    44194426    mov bp, sp                                ; 89 e5
    44204427    pop bp                                    ; 5d
    44214428    retn                                      ; c3
    4422 biosfn_load_gfx_user_chars_:                 ; 0xc2691 LB 0x7
     4429biosfn_load_gfx_user_chars_:                 ; 0xc26aa LB 0x7
    44234430    push bp                                   ; 55
    44244431    mov bp, sp                                ; 89 e5
    44254432    pop bp                                    ; 5d
    44264433    retn 00002h                               ; c2 02 00
    4427 biosfn_load_gfx_8_14_chars_:                 ; 0xc2698 LB 0x5
     4434biosfn_load_gfx_8_14_chars_:                 ; 0xc26b1 LB 0x5
    44284435    push bp                                   ; 55
    44294436    mov bp, sp                                ; 89 e5
    44304437    pop bp                                    ; 5d
    44314438    retn                                      ; c3
    4432 biosfn_load_gfx_8_8_dd_chars_:               ; 0xc269d LB 0x5
     4439biosfn_load_gfx_8_8_dd_chars_:               ; 0xc26b6 LB 0x5
    44334440    push bp                                   ; 55
    44344441    mov bp, sp                                ; 89 e5
    44354442    pop bp                                    ; 5d
    44364443    retn                                      ; c3
    4437 biosfn_load_gfx_8_16_chars_:                 ; 0xc26a2 LB 0x5
     4444biosfn_load_gfx_8_16_chars_:                 ; 0xc26bb LB 0x5
    44384445    push bp                                   ; 55
    44394446    mov bp, sp                                ; 89 e5
    44404447    pop bp                                    ; 5d
    44414448    retn                                      ; c3
    4442 biosfn_alternate_prtsc_:                     ; 0xc26a7 LB 0x5
     4449biosfn_alternate_prtsc_:                     ; 0xc26c0 LB 0x5
    44434450    push bp                                   ; 55
    44444451    mov bp, sp                                ; 89 e5
    44454452    pop bp                                    ; 5d
    44464453    retn                                      ; c3
    4447 biosfn_switch_video_interface_:              ; 0xc26ac LB 0x5
     4454biosfn_switch_video_interface_:              ; 0xc26c5 LB 0x5
    44484455    push bp                                   ; 55
    44494456    mov bp, sp                                ; 89 e5
    44504457    pop bp                                    ; 5d
    44514458    retn                                      ; c3
    4452 biosfn_enable_video_refresh_control_:        ; 0xc26b1 LB 0x5
     4459biosfn_enable_video_refresh_control_:        ; 0xc26ca LB 0x5
    44534460    push bp                                   ; 55
    44544461    mov bp, sp                                ; 89 e5
    44554462    pop bp                                    ; 5d
    44564463    retn                                      ; c3
    4457 biosfn_write_string_:                        ; 0xc26b6 LB 0x9c
     4464biosfn_write_string_:                        ; 0xc26cf LB 0x9c
    44584465    push bp                                   ; 55
    44594466    mov bp, sp                                ; 89 e5
     
    44694476    lea bx, [bp-00eh]                         ; 8d 5e f2
    44704477    lea dx, [bp-00ch]                         ; 8d 56 f4
    4471     call 00a88h                               ; e8 b0 e3
     4478    call 00a88h                               ; e8 97 e3
    44724479    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
    4473     jne short 026efh                          ; 75 11
     4480    jne short 02708h                          ; 75 11
    44744481    mov al, byte [bp-00eh]                    ; 8a 46 f2
    44754482    mov byte [bp+006h], al                    ; 88 46 06
     
    44834490    add dx, ax                                ; 01 c2
    44844491    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4485     call 00e5eh                               ; e8 5b e7
     4492    call 00e5eh                               ; e8 42 e7
    44864493    dec si                                    ; 4e
    44874494    cmp si, strict byte 0ffffh                ; 83 fe ff
    4488     je short 02739h                           ; 74 30
     4495    je short 02752h                           ; 74 30
    44894496    mov dx, di                                ; 89 fa
    44904497    inc di                                    ; 47
    44914498    mov ax, word [bp+008h]                    ; 8b 46 08
    4492     call 02f3eh                               ; e8 2c 08
     4499    call 02f57h                               ; e8 2c 08
    44934500    mov cl, al                                ; 88 c1
    44944501    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    4495     je short 02726h                           ; 74 0c
     4502    je short 0273fh                           ; 74 0c
    44964503    mov dx, di                                ; 89 fa
    44974504    inc di                                    ; 47
    44984505    mov ax, word [bp+008h]                    ; 8b 46 08
    4499     call 02f3eh                               ; e8 1b 08
     4506    call 02f57h                               ; e8 1b 08
    45004507    mov byte [bp-006h], al                    ; 88 46 fa
    45014508    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     
    45034510    movzx ax, cl                              ; 0f b6 c1
    45044511    mov cx, strict word 00003h                ; b9 03 00
    4505     call 02153h                               ; e8 1c fa
    4506     jmp short 02703h                          ; eb ca
     4512    call 0216ch                               ; e8 1c fa
     4513    jmp short 0271ch                          ; eb ca
    45074514    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    4508     jne short 02749h                          ; 75 0a
     4515    jne short 02762h                          ; 75 0a
    45094516    mov dx, word [bp-00eh]                    ; 8b 56 f2
    45104517    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4511     call 00e5eh                               ; e8 15 e7
     4518    call 00e5eh                               ; e8 fc e6
    45124519    lea sp, [bp-004h]                         ; 8d 66 fc
    45134520    pop di                                    ; 5f
     
    45154522    pop bp                                    ; 5d
    45164523    retn 00008h                               ; c2 08 00
    4517 biosfn_read_state_info_:                     ; 0xc2752 LB 0x101
     4524biosfn_read_state_info_:                     ; 0xc276b LB 0x101
    45184525    push bp                                   ; 55
    45194526    mov bp, sp                                ; 89 e5
     
    45244531    push bx                                   ; 53
    45254532    mov cx, ds                                ; 8c d9
    4526     mov bx, 05383h                            ; bb 83 53
     4533    mov bx, 05388h                            ; bb 88 53
    45274534    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45284535    mov ax, word [bp-008h]                    ; 8b 46 f8
    4529     call 02f88h                               ; e8 20 08
     4536    call 02fa1h                               ; e8 20 08
    45304537    mov di, word [bp-00ah]                    ; 8b 7e f6
    45314538    add di, strict byte 00004h                ; 83 c7 04
     
    45354542    mov es, [bp-008h]                         ; 8e 46 f8
    45364543    cld                                       ; fc
    4537     jcxz 02783h                               ; e3 06
     4544    jcxz 0279ch                               ; e3 06
    45384545    push DS                                   ; 1e
    45394546    mov ds, dx                                ; 8e da
     
    45474554    mov es, [bp-008h]                         ; 8e 46 f8
    45484555    cld                                       ; fc
    4549     jcxz 0279eh                               ; e3 06
     4556    jcxz 027b7h                               ; e3 06
    45504557    push DS                                   ; 1e
    45514558    mov ds, dx                                ; 8e da
     
    45544561    mov dx, 0008ah                            ; ba 8a 00
    45554562    mov ax, strict word 00040h                ; b8 40 00
    4556     call 02f3eh                               ; e8 97 07
     4563    call 02f57h                               ; e8 97 07
    45574564    movzx bx, al                              ; 0f b6 d8
    45584565    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45594566    add dx, strict byte 00025h                ; 83 c2 25
    45604567    mov ax, word [bp-008h]                    ; 8b 46 f8
    4561     call 02f4ch                               ; e8 96 07
     4568    call 02f65h                               ; e8 96 07
    45624569    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45634570    add dx, strict byte 00026h                ; 83 c2 26
    45644571    xor bx, bx                                ; 31 db
    45654572    mov ax, word [bp-008h]                    ; 8b 46 f8
    4566     call 02f4ch                               ; e8 88 07
     4573    call 02f65h                               ; e8 88 07
    45674574    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45684575    add dx, strict byte 00027h                ; 83 c2 27
    45694576    mov bx, strict word 00010h                ; bb 10 00
    45704577    mov ax, word [bp-008h]                    ; 8b 46 f8
    4571     call 02f4ch                               ; e8 79 07
     4578    call 02f65h                               ; e8 79 07
    45724579    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45734580    add dx, strict byte 00028h                ; 83 c2 28
    45744581    xor bx, bx                                ; 31 db
    45754582    mov ax, word [bp-008h]                    ; 8b 46 f8
    4576     call 02f4ch                               ; e8 6b 07
     4583    call 02f65h                               ; e8 6b 07
    45774584    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45784585    add dx, strict byte 00029h                ; 83 c2 29
    45794586    mov bx, strict word 00008h                ; bb 08 00
    45804587    mov ax, word [bp-008h]                    ; 8b 46 f8
    4581     call 02f4ch                               ; e8 5c 07
     4588    call 02f65h                               ; e8 5c 07
    45824589    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45834590    add dx, strict byte 0002ah                ; 83 c2 2a
    45844591    mov bx, strict word 00002h                ; bb 02 00
    45854592    mov ax, word [bp-008h]                    ; 8b 46 f8
    4586     call 02f4ch                               ; e8 4d 07
     4593    call 02f65h                               ; e8 4d 07
    45874594    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45884595    add dx, strict byte 0002bh                ; 83 c2 2b
    45894596    xor bx, bx                                ; 31 db
    45904597    mov ax, word [bp-008h]                    ; 8b 46 f8
    4591     call 02f4ch                               ; e8 3f 07
     4598    call 02f65h                               ; e8 3f 07
    45924599    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45934600    add dx, strict byte 0002ch                ; 83 c2 2c
    45944601    xor bx, bx                                ; 31 db
    45954602    mov ax, word [bp-008h]                    ; 8b 46 f8
    4596     call 02f4ch                               ; e8 31 07
     4603    call 02f65h                               ; e8 31 07
    45974604    mov dx, word [bp-00ah]                    ; 8b 56 f6
    45984605    add dx, strict byte 00031h                ; 83 c2 31
    45994606    mov bx, strict word 00003h                ; bb 03 00
    46004607    mov ax, word [bp-008h]                    ; 8b 46 f8
    4601     call 02f4ch                               ; e8 22 07
     4608    call 02f65h                               ; e8 22 07
    46024609    mov dx, word [bp-00ah]                    ; 8b 56 f6
    46034610    add dx, strict byte 00032h                ; 83 c2 32
    46044611    xor bx, bx                                ; 31 db
    46054612    mov ax, word [bp-008h]                    ; 8b 46 f8
    4606     call 02f4ch                               ; e8 14 07
     4613    call 02f65h                               ; e8 14 07
    46074614    mov di, word [bp-00ah]                    ; 8b 7e f6
    46084615    add di, strict byte 00033h                ; 83 c7 33
     
    46114618    mov es, [bp-008h]                         ; 8e 46 f8
    46124619    cld                                       ; fc
    4613     jcxz 0284bh                               ; e3 02
     4620    jcxz 02864h                               ; e3 02
    46144621    rep stosb                                 ; f3 aa
    46154622    lea sp, [bp-006h]                         ; 8d 66 fa
     
    46194626    pop bp                                    ; 5d
    46204627    retn                                      ; c3
    4621 biosfn_read_video_state_size2_:              ; 0xc2853 LB 0x23
     4628biosfn_read_video_state_size2_:              ; 0xc286c LB 0x23
    46224629    push dx                                   ; 52
    46234630    push bp                                   ; 55
     
    46264633    xor ax, ax                                ; 31 c0
    46274634    test dl, 001h                             ; f6 c2 01
    4628     je short 02863h                           ; 74 03
     4635    je short 0287ch                           ; 74 03
    46294636    mov ax, strict word 00046h                ; b8 46 00
    46304637    test dl, 002h                             ; f6 c2 02
    4631     je short 0286bh                           ; 74 03
     4638    je short 02884h                           ; 74 03
    46324639    add ax, strict word 0002ah                ; 05 2a 00
    46334640    test dl, 004h                             ; f6 c2 04
    4634     je short 02873h                           ; 74 03
     4641    je short 0288ch                           ; 74 03
    46354642    add ax, 00304h                            ; 05 04 03
    46364643    pop bp                                    ; 5d
    46374644    pop dx                                    ; 5a
    46384645    retn                                      ; c3
    4639 vga_get_video_state_size_:                   ; 0xc2876 LB 0x12
     4646vga_get_video_state_size_:                   ; 0xc288f LB 0x12
    46404647    push bp                                   ; 55
    46414648    mov bp, sp                                ; 89 e5
    46424649    push bx                                   ; 53
    46434650    mov bx, dx                                ; 89 d3
    4644     call 02853h                               ; e8 d4 ff
     4651    call 0286ch                               ; e8 d4 ff
    46454652    mov word [ss:bx], ax                      ; 36 89 07
    46464653    lea sp, [bp-002h]                         ; 8d 66 fe
     
    46484655    pop bp                                    ; 5d
    46494656    retn                                      ; c3
    4650 biosfn_save_video_state_:                    ; 0xc2888 LB 0x369
     4657biosfn_save_video_state_:                    ; 0xc28a1 LB 0x369
    46514658    push bp                                   ; 55
    46524659    mov bp, sp                                ; 89 e5
     
    46614668    mov dx, strict word 00063h                ; ba 63 00
    46624669    mov ax, strict word 00040h                ; b8 40 00
    4663     call 02f5ah                               ; e8 bc 06
     4670    call 02f73h                               ; e8 bc 06
    46644671    mov di, ax                                ; 89 c7
    46654672    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    4666     je near 02a0bh                            ; 0f 84 63 01
     4673    je near 02a24h                            ; 0f 84 63 01
    46674674    mov dx, 003c4h                            ; ba c4 03
    46684675    in AL, DX                                 ; ec
     
    46724679    mov dx, cx                                ; 89 ca
    46734680    mov ax, si                                ; 89 f0
    4674     call 02f4ch                               ; e8 94 06
     4681    call 02f65h                               ; e8 94 06
    46754682    inc cx                                    ; 41
    46764683    mov dx, di                                ; 89 fa
     
    46814688    mov dx, cx                                ; 89 ca
    46824689    mov ax, si                                ; 89 f0
    4683     call 02f4ch                               ; e8 84 06
     4690    call 02f65h                               ; e8 84 06
    46844691    inc cx                                    ; 41
    46854692    mov dx, 003ceh                            ; ba ce 03
     
    46904697    mov dx, cx                                ; 89 ca
    46914698    mov ax, si                                ; 89 f0
    4692     call 02f4ch                               ; e8 73 06
     4699    call 02f65h                               ; e8 73 06
    46934700    inc cx                                    ; 41
    46944701    mov dx, 003dah                            ; ba da 03
     
    47044711    mov dx, cx                                ; 89 ca
    47054712    mov ax, si                                ; 89 f0
    4706     call 02f4ch                               ; e8 58 06
     4713    call 02f65h                               ; e8 58 06
    47074714    inc cx                                    ; 41
    47084715    mov dx, 003cah                            ; ba ca 03
     
    47134720    mov dx, cx                                ; 89 ca
    47144721    mov ax, si                                ; 89 f0
    4715     call 02f4ch                               ; e8 47 06
     4722    call 02f65h                               ; e8 47 06
    47164723    mov ax, strict word 00001h                ; b8 01 00
    47174724    mov word [bp-00ah], ax                    ; 89 46 f6
    47184725    add cx, ax                                ; 01 c1
    4719     jmp short 02915h                          ; eb 06
     4726    jmp short 0292eh                          ; eb 06
    47204727    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
    4721     jnbe short 02932h                         ; 77 1d
     4728    jnbe short 0294bh                         ; 77 1d
    47224729    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47234730    mov dx, 003c4h                            ; ba c4 03
     
    47304737    mov dx, cx                                ; 89 ca
    47314738    mov ax, si                                ; 89 f0
    4732     call 02f4ch                               ; e8 20 06
     4739    call 02f65h                               ; e8 20 06
    47334740    inc cx                                    ; 41
    47344741    inc word [bp-00ah]                        ; ff 46 f6
    4735     jmp short 0290fh                          ; eb dd
     4742    jmp short 02928h                          ; eb dd
    47364743    xor al, al                                ; 30 c0
    47374744    mov dx, 003c4h                            ; ba c4 03
     
    47444751    mov dx, cx                                ; 89 ca
    47454752    mov ax, si                                ; 89 f0
    4746     call 02f4ch                               ; e8 04 06
     4753    call 02f65h                               ; e8 04 06
    47474754    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    47484755    inc cx                                    ; 41
    4749     jmp short 02956h                          ; eb 06
     4756    jmp short 0296fh                          ; eb 06
    47504757    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
    4751     jnbe short 02972h                         ; 77 1c
     4758    jnbe short 0298bh                         ; 77 1c
    47524759    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47534760    mov dx, di                                ; 89 fa
     
    47604767    mov dx, cx                                ; 89 ca
    47614768    mov ax, si                                ; 89 f0
    4762     call 02f4ch                               ; e8 e0 05
     4769    call 02f65h                               ; e8 e0 05
    47634770    inc cx                                    ; 41
    47644771    inc word [bp-00ah]                        ; ff 46 f6
    4765     jmp short 02950h                          ; eb de
     4772    jmp short 02969h                          ; eb de
    47664773    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    4767     jmp short 0297fh                          ; eb 06
     4774    jmp short 02998h                          ; eb 06
    47684775    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
    4769     jnbe short 029a8h                         ; 77 29
     4776    jnbe short 029c1h                         ; 77 29
    47704777    mov dx, 003dah                            ; ba da 03
    47714778    in AL, DX                                 ; ec
     
    47844791    mov dx, cx                                ; 89 ca
    47854792    mov ax, si                                ; 89 f0
    4786     call 02f4ch                               ; e8 aa 05
     4793    call 02f65h                               ; e8 aa 05
    47874794    inc cx                                    ; 41
    47884795    inc word [bp-00ah]                        ; ff 46 f6
    4789     jmp short 02979h                          ; eb d1
     4796    jmp short 02992h                          ; eb d1
    47904797    mov dx, 003dah                            ; ba da 03
    47914798    in AL, DX                                 ; ec
     
    47934800    ; sub ah, ah                                ; 2a e4
    47944801    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    4795     jmp short 029bbh                          ; eb 06
     4802    jmp short 029d4h                          ; eb 06
    47964803    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    4797     jnbe short 029d8h                         ; 77 1d
     4804    jnbe short 029f1h                         ; 77 1d
    47984805    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47994806    mov dx, 003ceh                            ; ba ce 03
     
    48064813    mov dx, cx                                ; 89 ca
    48074814    mov ax, si                                ; 89 f0
    4808     call 02f4ch                               ; e8 7a 05
     4815    call 02f65h                               ; e8 7a 05
    48094816    inc cx                                    ; 41
    48104817    inc word [bp-00ah]                        ; ff 46 f6
    4811     jmp short 029b5h                          ; eb dd
     4818    jmp short 029ceh                          ; eb dd
    48124819    mov bx, di                                ; 89 fb
    48134820    mov dx, cx                                ; 89 ca
    48144821    mov ax, si                                ; 89 f0
    4815     call 02f68h                               ; e8 87 05
     4822    call 02f81h                               ; e8 87 05
    48164823    inc cx                                    ; 41
    48174824    inc cx                                    ; 41
     
    48194826    mov dx, cx                                ; 89 ca
    48204827    mov ax, si                                ; 89 f0
    4821     call 02f4ch                               ; e8 60 05
     4828    call 02f65h                               ; e8 60 05
    48224829    inc cx                                    ; 41
    48234830    xor bx, bx                                ; 31 db
    48244831    mov dx, cx                                ; 89 ca
    48254832    mov ax, si                                ; 89 f0
    4826     call 02f4ch                               ; e8 56 05
     4833    call 02f65h                               ; e8 56 05
    48274834    inc cx                                    ; 41
    48284835    xor bx, bx                                ; 31 db
    48294836    mov dx, cx                                ; 89 ca
    48304837    mov ax, si                                ; 89 f0
    4831     call 02f4ch                               ; e8 4c 05
     4838    call 02f65h                               ; e8 4c 05
    48324839    inc cx                                    ; 41
    48334840    xor bx, bx                                ; 31 db
    48344841    mov dx, cx                                ; 89 ca
    48354842    mov ax, si                                ; 89 f0
    4836     call 02f4ch                               ; e8 42 05
     4843    call 02f65h                               ; e8 42 05
    48374844    inc cx                                    ; 41
    48384845    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    4839     je near 02b7ah                            ; 0f 84 67 01
     4846    je near 02b93h                            ; 0f 84 67 01
    48404847    mov dx, strict word 00049h                ; ba 49 00
    48414848    mov ax, strict word 00040h                ; b8 40 00
    4842     call 02f3eh                               ; e8 22 05
     4849    call 02f57h                               ; e8 22 05
    48434850    movzx bx, al                              ; 0f b6 d8
    48444851    mov dx, cx                                ; 89 ca
    48454852    mov ax, si                                ; 89 f0
    4846     call 02f4ch                               ; e8 26 05
     4853    call 02f65h                               ; e8 26 05
    48474854    inc cx                                    ; 41
    48484855    mov dx, strict word 0004ah                ; ba 4a 00
    48494856    mov ax, strict word 00040h                ; b8 40 00
    4850     call 02f5ah                               ; e8 2a 05
     4857    call 02f73h                               ; e8 2a 05
    48514858    mov bx, ax                                ; 89 c3
    48524859    mov dx, cx                                ; 89 ca
    48534860    mov ax, si                                ; 89 f0
    4854     call 02f68h                               ; e8 2f 05
     4861    call 02f81h                               ; e8 2f 05
    48554862    inc cx                                    ; 41
    48564863    inc cx                                    ; 41
    48574864    mov dx, strict word 0004ch                ; ba 4c 00
    48584865    mov ax, strict word 00040h                ; b8 40 00
    4859     call 02f5ah                               ; e8 16 05
     4866    call 02f73h                               ; e8 16 05
    48604867    mov bx, ax                                ; 89 c3
    48614868    mov dx, cx                                ; 89 ca
    48624869    mov ax, si                                ; 89 f0
    4863     call 02f68h                               ; e8 1b 05
     4870    call 02f81h                               ; e8 1b 05
    48644871    inc cx                                    ; 41
    48654872    inc cx                                    ; 41
    48664873    mov dx, strict word 00063h                ; ba 63 00
    48674874    mov ax, strict word 00040h                ; b8 40 00
    4868     call 02f5ah                               ; e8 02 05
     4875    call 02f73h                               ; e8 02 05
    48694876    mov bx, ax                                ; 89 c3
    48704877    mov dx, cx                                ; 89 ca
    48714878    mov ax, si                                ; 89 f0
    4872     call 02f68h                               ; e8 07 05
     4879    call 02f81h                               ; e8 07 05
    48734880    inc cx                                    ; 41
    48744881    inc cx                                    ; 41
    48754882    mov dx, 00084h                            ; ba 84 00
    48764883    mov ax, strict word 00040h                ; b8 40 00
    4877     call 02f3eh                               ; e8 d2 04
     4884    call 02f57h                               ; e8 d2 04
    48784885    movzx bx, al                              ; 0f b6 d8
    48794886    mov dx, cx                                ; 89 ca
    48804887    mov ax, si                                ; 89 f0
    4881     call 02f4ch                               ; e8 d6 04
     4888    call 02f65h                               ; e8 d6 04
    48824889    inc cx                                    ; 41
    48834890    mov dx, 00085h                            ; ba 85 00
    48844891    mov ax, strict word 00040h                ; b8 40 00
    4885     call 02f5ah                               ; e8 da 04
     4892    call 02f73h                               ; e8 da 04
    48864893    mov bx, ax                                ; 89 c3
    48874894    mov dx, cx                                ; 89 ca
    48884895    mov ax, si                                ; 89 f0
    4889     call 02f68h                               ; e8 df 04
     4896    call 02f81h                               ; e8 df 04
    48904897    inc cx                                    ; 41
    48914898    inc cx                                    ; 41
    48924899    mov dx, 00087h                            ; ba 87 00
    48934900    mov ax, strict word 00040h                ; b8 40 00
    4894     call 02f3eh                               ; e8 aa 04
     4901    call 02f57h                               ; e8 aa 04
    48954902    movzx bx, al                              ; 0f b6 d8
    48964903    mov dx, cx                                ; 89 ca
    48974904    mov ax, si                                ; 89 f0
    4898     call 02f4ch                               ; e8 ae 04
     4905    call 02f65h                               ; e8 ae 04
    48994906    inc cx                                    ; 41
    49004907    mov dx, 00088h                            ; ba 88 00
    49014908    mov ax, strict word 00040h                ; b8 40 00
    4902     call 02f3eh                               ; e8 96 04
     4909    call 02f57h                               ; e8 96 04
    49034910    movzx bx, al                              ; 0f b6 d8
    49044911    mov dx, cx                                ; 89 ca
    49054912    mov ax, si                                ; 89 f0
    4906     call 02f4ch                               ; e8 9a 04
     4913    call 02f65h                               ; e8 9a 04
    49074914    inc cx                                    ; 41
    49084915    mov dx, 00089h                            ; ba 89 00
    49094916    mov ax, strict word 00040h                ; b8 40 00
    4910     call 02f3eh                               ; e8 82 04
     4917    call 02f57h                               ; e8 82 04
    49114918    movzx bx, al                              ; 0f b6 d8
    49124919    mov dx, cx                                ; 89 ca
    49134920    mov ax, si                                ; 89 f0
    4914     call 02f4ch                               ; e8 86 04
     4921    call 02f65h                               ; e8 86 04
    49154922    inc cx                                    ; 41
    49164923    mov dx, strict word 00060h                ; ba 60 00
    49174924    mov ax, strict word 00040h                ; b8 40 00
    4918     call 02f5ah                               ; e8 8a 04
     4925    call 02f73h                               ; e8 8a 04
    49194926    mov bx, ax                                ; 89 c3
    49204927    mov dx, cx                                ; 89 ca
    49214928    mov ax, si                                ; 89 f0
    4922     call 02f68h                               ; e8 8f 04
     4929    call 02f81h                               ; e8 8f 04
    49234930    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    49244931    inc cx                                    ; 41
    49254932    inc cx                                    ; 41
    4926     jmp short 02ae8h                          ; eb 06
     4933    jmp short 02b01h                          ; eb 06
    49274934    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    4928     jnc short 02b06h                          ; 73 1e
     4935    jnc short 02b1fh                          ; 73 1e
    49294936    mov dx, word [bp-00ah]                    ; 8b 56 f6
    49304937    add dx, dx                                ; 01 d2
    49314938    add dx, strict byte 00050h                ; 83 c2 50
    49324939    mov ax, strict word 00040h                ; b8 40 00
    4933     call 02f5ah                               ; e8 64 04
     4940    call 02f73h                               ; e8 64 04
    49344941    mov bx, ax                                ; 89 c3
    49354942    mov dx, cx                                ; 89 ca
    49364943    mov ax, si                                ; 89 f0
    4937     call 02f68h                               ; e8 69 04
     4944    call 02f81h                               ; e8 69 04
    49384945    inc cx                                    ; 41
    49394946    inc cx                                    ; 41
    49404947    inc word [bp-00ah]                        ; ff 46 f6
    4941     jmp short 02ae2h                          ; eb dc
     4948    jmp short 02afbh                          ; eb dc
    49424949    mov dx, strict word 0004eh                ; ba 4e 00
    49434950    mov ax, strict word 00040h                ; b8 40 00
    4944     call 02f5ah                               ; e8 4b 04
     4951    call 02f73h                               ; e8 4b 04
    49454952    mov bx, ax                                ; 89 c3
    49464953    mov dx, cx                                ; 89 ca
    49474954    mov ax, si                                ; 89 f0
    4948     call 02f68h                               ; e8 50 04
     4955    call 02f81h                               ; e8 50 04
    49494956    inc cx                                    ; 41
    49504957    inc cx                                    ; 41
    49514958    mov dx, strict word 00062h                ; ba 62 00
    49524959    mov ax, strict word 00040h                ; b8 40 00
    4953     call 02f3eh                               ; e8 1b 04
     4960    call 02f57h                               ; e8 1b 04
    49544961    movzx bx, al                              ; 0f b6 d8
    49554962    mov dx, cx                                ; 89 ca
    49564963    mov ax, si                                ; 89 f0
    4957     call 02f4ch                               ; e8 1f 04
     4964    call 02f65h                               ; e8 1f 04
    49584965    inc cx                                    ; 41
    49594966    mov dx, strict word 0007ch                ; ba 7c 00
    49604967    xor ax, ax                                ; 31 c0
    4961     call 02f5ah                               ; e8 24 04
     4968    call 02f73h                               ; e8 24 04
    49624969    mov bx, ax                                ; 89 c3
    49634970    mov dx, cx                                ; 89 ca
    49644971    mov ax, si                                ; 89 f0
    4965     call 02f68h                               ; e8 29 04
     4972    call 02f81h                               ; e8 29 04
    49664973    inc cx                                    ; 41
    49674974    inc cx                                    ; 41
    49684975    mov dx, strict word 0007eh                ; ba 7e 00
    49694976    xor ax, ax                                ; 31 c0
    4970     call 02f5ah                               ; e8 11 04
     4977    call 02f73h                               ; e8 11 04
    49714978    mov bx, ax                                ; 89 c3
    49724979    mov dx, cx                                ; 89 ca
    49734980    mov ax, si                                ; 89 f0
    4974     call 02f68h                               ; e8 16 04
     4981    call 02f81h                               ; e8 16 04
    49754982    inc cx                                    ; 41
    49764983    inc cx                                    ; 41
    49774984    mov dx, 0010ch                            ; ba 0c 01
    49784985    xor ax, ax                                ; 31 c0
    4979     call 02f5ah                               ; e8 fe 03
     4986    call 02f73h                               ; e8 fe 03
    49804987    mov bx, ax                                ; 89 c3
    49814988    mov dx, cx                                ; 89 ca
    49824989    mov ax, si                                ; 89 f0
    4983     call 02f68h                               ; e8 03 04
     4990    call 02f81h                               ; e8 03 04
    49844991    inc cx                                    ; 41
    49854992    inc cx                                    ; 41
    49864993    mov dx, 0010eh                            ; ba 0e 01
    49874994    xor ax, ax                                ; 31 c0
    4988     call 02f5ah                               ; e8 eb 03
     4995    call 02f73h                               ; e8 eb 03
    49894996    mov bx, ax                                ; 89 c3
    49904997    mov dx, cx                                ; 89 ca
    49914998    mov ax, si                                ; 89 f0
    4992     call 02f68h                               ; e8 f0 03
     4999    call 02f81h                               ; e8 f0 03
    49935000    inc cx                                    ; 41
    49945001    inc cx                                    ; 41
    49955002    test byte [bp-00ch], 004h                 ; f6 46 f4 04
    4996     je short 02be7h                           ; 74 67
     5003    je short 02c00h                           ; 74 67
    49975004    mov dx, 003c7h                            ; ba c7 03
    49985005    in AL, DX                                 ; ec
     
    50025009    mov dx, cx                                ; 89 ca
    50035010    mov ax, si                                ; 89 f0
    5004     call 02f4ch                               ; e8 bc 03
     5011    call 02f65h                               ; e8 bc 03
    50055012    inc cx                                    ; 41
    50065013    mov dx, 003c8h                            ; ba c8 03
     
    50115018    mov dx, cx                                ; 89 ca
    50125019    mov ax, si                                ; 89 f0
    5013     call 02f4ch                               ; e8 ab 03
     5020    call 02f65h                               ; e8 ab 03
    50145021    inc cx                                    ; 41
    50155022    mov dx, 003c6h                            ; ba c6 03
     
    50205027    mov dx, cx                                ; 89 ca
    50215028    mov ax, si                                ; 89 f0
    5022     call 02f4ch                               ; e8 9a 03
     5029    call 02f65h                               ; e8 9a 03
    50235030    inc cx                                    ; 41
    50245031    xor al, al                                ; 30 c0
     
    50275034    xor ah, ah                                ; 30 e4
    50285035    mov word [bp-00ah], ax                    ; 89 46 f6
    5029     jmp short 02bc7h                          ; eb 07
     5036    jmp short 02be0h                          ; eb 07
    50305037    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
    5031     jnc short 02bddh                          ; 73 16
     5038    jnc short 02bf6h                          ; 73 16
    50325039    mov dx, 003c9h                            ; ba c9 03
    50335040    in AL, DX                                 ; ec
     
    50375044    mov dx, cx                                ; 89 ca
    50385045    mov ax, si                                ; 89 f0
    5039     call 02f4ch                               ; e8 75 03
     5046    call 02f65h                               ; e8 75 03
    50405047    inc cx                                    ; 41
    50415048    inc word [bp-00ah]                        ; ff 46 f6
    5042     jmp short 02bc0h                          ; eb e3
     5049    jmp short 02bd9h                          ; eb e3
    50435050    xor bx, bx                                ; 31 db
    50445051    mov dx, cx                                ; 89 ca
    50455052    mov ax, si                                ; 89 f0
    5046     call 02f4ch                               ; e8 66 03
     5053    call 02f65h                               ; e8 66 03
    50475054    inc cx                                    ; 41
    50485055    mov ax, cx                                ; 89 c8
     
    50535060    pop bp                                    ; 5d
    50545061    retn                                      ; c3
    5055 biosfn_restore_video_state_:                 ; 0xc2bf1 LB 0x326
     5062biosfn_restore_video_state_:                 ; 0xc2c0a LB 0x326
    50565063    push bp                                   ; 55
    50575064    mov bp, sp                                ; 89 e5
     
    50645071    mov cx, bx                                ; 89 d9
    50655072    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    5066     je near 02d51h                            ; 0f 84 4a 01
     5073    je near 02d6ah                            ; 0f 84 4a 01
    50675074    mov dx, 003dah                            ; ba da 03
    50685075    in AL, DX                                 ; ec
     
    50715078    lea dx, [bx+040h]                         ; 8d 57 40
    50725079    mov ax, si                                ; 89 f0
    5073     call 02f5ah                               ; e8 45 03
     5080    call 02f73h                               ; e8 45 03
    50745081    mov di, ax                                ; 89 c7
    50755082    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    50765083    lea cx, [bx+005h]                         ; 8d 4f 05
    5077     jmp short 02c27h                          ; eb 06
     5084    jmp short 02c40h                          ; eb 06
    50785085    cmp word [bp-008h], strict byte 00004h    ; 83 7e f8 04
    5079     jnbe short 02c3fh                         ; 77 18
     5086    jnbe short 02c58h                         ; 77 18
    50805087    mov al, byte [bp-008h]                    ; 8a 46 f8
    50815088    mov dx, 003c4h                            ; ba c4 03
     
    50835090    mov dx, cx                                ; 89 ca
    50845091    mov ax, si                                ; 89 f0
    5085     call 02f3eh                               ; e8 09 03
     5092    call 02f57h                               ; e8 09 03
    50865093    mov dx, 003c5h                            ; ba c5 03
    50875094    out DX, AL                                ; ee
    50885095    inc cx                                    ; 41
    50895096    inc word [bp-008h]                        ; ff 46 f8
    5090     jmp short 02c21h                          ; eb e2
     5097    jmp short 02c3ah                          ; eb e2
    50915098    xor al, al                                ; 30 c0
    50925099    mov dx, 003c4h                            ; ba c4 03
     
    50945101    mov dx, cx                                ; 89 ca
    50955102    mov ax, si                                ; 89 f0
    5096     call 02f3eh                               ; e8 f2 02
     5103    call 02f57h                               ; e8 f2 02
    50975104    mov dx, 003c5h                            ; ba c5 03
    50985105    out DX, AL                                ; ee
     
    51025109    out DX, ax                                ; ef
    51035110    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5104     jmp short 02c64h                          ; eb 06
     5111    jmp short 02c7dh                          ; eb 06
    51055112    cmp word [bp-008h], strict byte 00018h    ; 83 7e f8 18
    5106     jnbe short 02c81h                         ; 77 1d
     5113    jnbe short 02c9ah                         ; 77 1d
    51075114    cmp word [bp-008h], strict byte 00011h    ; 83 7e f8 11
    5108     je short 02c7bh                           ; 74 11
     5115    je short 02c94h                           ; 74 11
    51095116    mov al, byte [bp-008h]                    ; 8a 46 f8
    51105117    mov dx, di                                ; 89 fa
     
    51125119    mov dx, cx                                ; 89 ca
    51135120    mov ax, si                                ; 89 f0
    5114     call 02f3eh                               ; e8 c7 02
     5121    call 02f57h                               ; e8 c7 02
    51155122    lea dx, [di+001h]                         ; 8d 55 01
    51165123    out DX, AL                                ; ee
    51175124    inc cx                                    ; 41
    51185125    inc word [bp-008h]                        ; ff 46 f8
    5119     jmp short 02c5eh                          ; eb dd
     5126    jmp short 02c77h                          ; eb dd
    51205127    mov dx, 003cch                            ; ba cc 03
    51215128    in AL, DX                                 ; ec
     
    51255132    mov word [bp-00ah], ax                    ; 89 46 f6
    51265133    cmp di, 003d4h                            ; 81 ff d4 03
    5127     jne short 02c96h                          ; 75 04
     5134    jne short 02cafh                          ; 75 04
    51285135    or byte [bp-00ah], 001h                   ; 80 4e f6 01
    51295136    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    51365143    add dx, strict byte 0fff9h                ; 83 c2 f9
    51375144    mov ax, si                                ; 89 f0
    5138     call 02f3eh                               ; e8 92 02
     5145    call 02f57h                               ; e8 92 02
    51395146    lea dx, [di+001h]                         ; 8d 55 01
    51405147    out DX, AL                                ; ee
    51415148    lea dx, [bx+003h]                         ; 8d 57 03
    51425149    mov ax, si                                ; 89 f0
    5143     call 02f3eh                               ; e8 86 02
     5150    call 02f57h                               ; e8 86 02
    51445151    xor ah, ah                                ; 30 e4
    51455152    mov word [bp-00ch], ax                    ; 89 46 f4
     
    51495156    ; sub ah, ah                                ; 2a e4
    51505157    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5151     jmp short 02cd0h                          ; eb 06
     5158    jmp short 02ce9h                          ; eb 06
    51525159    cmp word [bp-008h], strict byte 00013h    ; 83 7e f8 13
    5153     jnbe short 02ceeh                         ; 77 1e
     5160    jnbe short 02d07h                         ; 77 1e
    51545161    mov ax, word [bp-00ch]                    ; 8b 46 f4
    51555162    and ax, strict word 00020h                ; 25 20 00
     
    51595166    mov dx, cx                                ; 89 ca
    51605167    mov ax, si                                ; 89 f0
    5161     call 02f3eh                               ; e8 5a 02
     5168    call 02f57h                               ; e8 5a 02
    51625169    mov dx, 003c0h                            ; ba c0 03
    51635170    out DX, AL                                ; ee
    51645171    inc cx                                    ; 41
    51655172    inc word [bp-008h]                        ; ff 46 f8
    5166     jmp short 02ccah                          ; eb dc
     5173    jmp short 02ce3h                          ; eb dc
    51675174    mov al, byte [bp-00ch]                    ; 8a 46 f4
    51685175    mov dx, 003c0h                            ; ba c0 03
     
    51735180    ; sub ah, ah                                ; 2a e4
    51745181    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    5175     jmp short 02d08h                          ; eb 06
     5182    jmp short 02d21h                          ; eb 06
    51765183    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
    5177     jnbe short 02d20h                         ; 77 18
     5184    jnbe short 02d39h                         ; 77 18
    51785185    mov al, byte [bp-008h]                    ; 8a 46 f8
    51795186    mov dx, 003ceh                            ; ba ce 03
     
    51815188    mov dx, cx                                ; 89 ca
    51825189    mov ax, si                                ; 89 f0
    5183     call 02f3eh                               ; e8 28 02
     5190    call 02f57h                               ; e8 28 02
    51845191    mov dx, 003cfh                            ; ba cf 03
    51855192    out DX, AL                                ; ee
    51865193    inc cx                                    ; 41
    51875194    inc word [bp-008h]                        ; ff 46 f8
    5188     jmp short 02d02h                          ; eb e2
     5195    jmp short 02d1bh                          ; eb e2
    51895196    add cx, strict byte 00006h                ; 83 c1 06
    51905197    mov dx, bx                                ; 89 da
    51915198    mov ax, si                                ; 89 f0
    5192     call 02f3eh                               ; e8 14 02
     5199    call 02f57h                               ; e8 14 02
    51935200    mov dx, 003c4h                            ; ba c4 03
    51945201    out DX, AL                                ; ee
     
    51965203    mov dx, bx                                ; 89 da
    51975204    mov ax, si                                ; 89 f0
    5198     call 02f3eh                               ; e8 08 02
     5205    call 02f57h                               ; e8 08 02
    51995206    mov dx, di                                ; 89 fa
    52005207    out DX, AL                                ; ee
     
    52025209    mov dx, bx                                ; 89 da
    52035210    mov ax, si                                ; 89 f0
    5204     call 02f3eh                               ; e8 fd 01
     5211    call 02f57h                               ; e8 fd 01
    52055212    mov dx, 003ceh                            ; ba ce 03
    52065213    out DX, AL                                ; ee
    52075214    lea dx, [bx+002h]                         ; 8d 57 02
    52085215    mov ax, si                                ; 89 f0
    5209     call 02f3eh                               ; e8 f1 01
     5216    call 02f57h                               ; e8 f1 01
    52105217    lea dx, [di+006h]                         ; 8d 55 06
    52115218    out DX, AL                                ; ee
    52125219    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    5213     je near 02ec0h                            ; 0f 84 67 01
     5220    je near 02ed9h                            ; 0f 84 67 01
    52145221    mov dx, cx                                ; 89 ca
    52155222    mov ax, si                                ; 89 f0
    5216     call 02f3eh                               ; e8 de 01
     5223    call 02f57h                               ; e8 de 01
    52175224    movzx bx, al                              ; 0f b6 d8
    52185225    mov dx, strict word 00049h                ; ba 49 00
    52195226    mov ax, strict word 00040h                ; b8 40 00
    5220     call 02f4ch                               ; e8 e0 01
     5227    call 02f65h                               ; e8 e0 01
    52215228    inc cx                                    ; 41
    52225229    mov dx, cx                                ; 89 ca
    52235230    mov ax, si                                ; 89 f0
    5224     call 02f5ah                               ; e8 e6 01
     5231    call 02f73h                               ; e8 e6 01
    52255232    mov bx, ax                                ; 89 c3
    52265233    mov dx, strict word 0004ah                ; ba 4a 00
    52275234    mov ax, strict word 00040h                ; b8 40 00
    5228     call 02f68h                               ; e8 e9 01
     5235    call 02f81h                               ; e8 e9 01
    52295236    inc cx                                    ; 41
    52305237    inc cx                                    ; 41
    52315238    mov dx, cx                                ; 89 ca
    52325239    mov ax, si                                ; 89 f0
    5233     call 02f5ah                               ; e8 d2 01
     5240    call 02f73h                               ; e8 d2 01
    52345241    mov bx, ax                                ; 89 c3
    52355242    mov dx, strict word 0004ch                ; ba 4c 00
    52365243    mov ax, strict word 00040h                ; b8 40 00
    5237     call 02f68h                               ; e8 d5 01
     5244    call 02f81h                               ; e8 d5 01
    52385245    inc cx                                    ; 41
    52395246    inc cx                                    ; 41
    52405247    mov dx, cx                                ; 89 ca
    52415248    mov ax, si                                ; 89 f0
    5242     call 02f5ah                               ; e8 be 01
     5249    call 02f73h                               ; e8 be 01
    52435250    mov bx, ax                                ; 89 c3
    52445251    mov dx, strict word 00063h                ; ba 63 00
    52455252    mov ax, strict word 00040h                ; b8 40 00
    5246     call 02f68h                               ; e8 c1 01
     5253    call 02f81h                               ; e8 c1 01
    52475254    inc cx                                    ; 41
    52485255    inc cx                                    ; 41
    52495256    mov dx, cx                                ; 89 ca
    52505257    mov ax, si                                ; 89 f0
    5251     call 02f3eh                               ; e8 8e 01
     5258    call 02f57h                               ; e8 8e 01
    52525259    movzx bx, al                              ; 0f b6 d8
    52535260    mov dx, 00084h                            ; ba 84 00
    52545261    mov ax, strict word 00040h                ; b8 40 00
    5255     call 02f4ch                               ; e8 90 01
     5262    call 02f65h                               ; e8 90 01
    52565263    inc cx                                    ; 41
    52575264    mov dx, cx                                ; 89 ca
    52585265    mov ax, si                                ; 89 f0
    5259     call 02f5ah                               ; e8 96 01
     5266    call 02f73h                               ; e8 96 01
    52605267    mov bx, ax                                ; 89 c3
    52615268    mov dx, 00085h                            ; ba 85 00
    52625269    mov ax, strict word 00040h                ; b8 40 00
    5263     call 02f68h                               ; e8 99 01
     5270    call 02f81h                               ; e8 99 01
    52645271    inc cx                                    ; 41
    52655272    inc cx                                    ; 41
    52665273    mov dx, cx                                ; 89 ca
    52675274    mov ax, si                                ; 89 f0
    5268     call 02f3eh                               ; e8 66 01
     5275    call 02f57h                               ; e8 66 01
    52695276    movzx bx, al                              ; 0f b6 d8
    52705277    mov dx, 00087h                            ; ba 87 00
    52715278    mov ax, strict word 00040h                ; b8 40 00
    5272     call 02f4ch                               ; e8 68 01
     5279    call 02f65h                               ; e8 68 01
    52735280    inc cx                                    ; 41
    52745281    mov dx, cx                                ; 89 ca
    52755282    mov ax, si                                ; 89 f0
    5276     call 02f3eh                               ; e8 52 01
     5283    call 02f57h                               ; e8 52 01
    52775284    movzx bx, al                              ; 0f b6 d8
    52785285    mov dx, 00088h                            ; ba 88 00
    52795286    mov ax, strict word 00040h                ; b8 40 00
    5280     call 02f4ch                               ; e8 54 01
     5287    call 02f65h                               ; e8 54 01
    52815288    inc cx                                    ; 41
    52825289    mov dx, cx                                ; 89 ca
    52835290    mov ax, si                                ; 89 f0
    5284     call 02f3eh                               ; e8 3e 01
     5291    call 02f57h                               ; e8 3e 01
    52855292    movzx bx, al                              ; 0f b6 d8
    52865293    mov dx, 00089h                            ; ba 89 00
    52875294    mov ax, strict word 00040h                ; b8 40 00
    5288     call 02f4ch                               ; e8 40 01
     5295    call 02f65h                               ; e8 40 01
    52895296    inc cx                                    ; 41
    52905297    mov dx, cx                                ; 89 ca
    52915298    mov ax, si                                ; 89 f0
    5292     call 02f5ah                               ; e8 46 01
     5299    call 02f73h                               ; e8 46 01
    52935300    mov bx, ax                                ; 89 c3
    52945301    mov dx, strict word 00060h                ; ba 60 00
    52955302    mov ax, strict word 00040h                ; b8 40 00
    5296     call 02f68h                               ; e8 49 01
     5303    call 02f81h                               ; e8 49 01
    52975304    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    52985305    inc cx                                    ; 41
    52995306    inc cx                                    ; 41
    5300     jmp short 02e2eh                          ; eb 06
     5307    jmp short 02e47h                          ; eb 06
    53015308    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
    5302     jnc short 02e4ch                          ; 73 1e
     5309    jnc short 02e65h                          ; 73 1e
    53035310    mov dx, cx                                ; 89 ca
    53045311    mov ax, si                                ; 89 f0
    5305     call 02f5ah                               ; e8 25 01
     5312    call 02f73h                               ; e8 25 01
    53065313    mov bx, ax                                ; 89 c3
    53075314    mov dx, word [bp-008h]                    ; 8b 56 f8
     
    53095316    add dx, strict byte 00050h                ; 83 c2 50
    53105317    mov ax, strict word 00040h                ; b8 40 00
    5311     call 02f68h                               ; e8 23 01
     5318    call 02f81h                               ; e8 23 01
    53125319    inc cx                                    ; 41
    53135320    inc cx                                    ; 41
    53145321    inc word [bp-008h]                        ; ff 46 f8
    5315     jmp short 02e28h                          ; eb dc
     5322    jmp short 02e41h                          ; eb dc
    53165323    mov dx, cx                                ; 89 ca
    53175324    mov ax, si                                ; 89 f0
    5318     call 02f5ah                               ; e8 07 01
     5325    call 02f73h                               ; e8 07 01
    53195326    mov bx, ax                                ; 89 c3
    53205327    mov dx, strict word 0004eh                ; ba 4e 00
    53215328    mov ax, strict word 00040h                ; b8 40 00
    5322     call 02f68h                               ; e8 0a 01
     5329    call 02f81h                               ; e8 0a 01
    53235330    inc cx                                    ; 41
    53245331    inc cx                                    ; 41
    53255332    mov dx, cx                                ; 89 ca
    53265333    mov ax, si                                ; 89 f0
    5327     call 02f3eh                               ; e8 d7 00
     5334    call 02f57h                               ; e8 d7 00
    53285335    movzx bx, al                              ; 0f b6 d8
    53295336    mov dx, strict word 00062h                ; ba 62 00
    53305337    mov ax, strict word 00040h                ; b8 40 00
    5331     call 02f4ch                               ; e8 d9 00
     5338    call 02f65h                               ; e8 d9 00
    53325339    inc cx                                    ; 41
    53335340    mov dx, cx                                ; 89 ca
    53345341    mov ax, si                                ; 89 f0
    5335     call 02f5ah                               ; e8 df 00
     5342    call 02f73h                               ; e8 df 00
    53365343    mov bx, ax                                ; 89 c3
    53375344    mov dx, strict word 0007ch                ; ba 7c 00
    53385345    xor ax, ax                                ; 31 c0
    5339     call 02f68h                               ; e8 e3 00
     5346    call 02f81h                               ; e8 e3 00
    53405347    inc cx                                    ; 41
    53415348    inc cx                                    ; 41
    53425349    mov dx, cx                                ; 89 ca
    53435350    mov ax, si                                ; 89 f0
    5344     call 02f5ah                               ; e8 cc 00
     5351    call 02f73h                               ; e8 cc 00
    53455352    mov bx, ax                                ; 89 c3
    53465353    mov dx, strict word 0007eh                ; ba 7e 00
    53475354    xor ax, ax                                ; 31 c0
    5348     call 02f68h                               ; e8 d0 00
     5355    call 02f81h                               ; e8 d0 00
    53495356    inc cx                                    ; 41
    53505357    inc cx                                    ; 41
    53515358    mov dx, cx                                ; 89 ca
    53525359    mov ax, si                                ; 89 f0
    5353     call 02f5ah                               ; e8 b9 00
     5360    call 02f73h                               ; e8 b9 00
    53545361    mov bx, ax                                ; 89 c3
    53555362    mov dx, 0010ch                            ; ba 0c 01
    53565363    xor ax, ax                                ; 31 c0
    5357     call 02f68h                               ; e8 bd 00
     5364    call 02f81h                               ; e8 bd 00
    53585365    inc cx                                    ; 41
    53595366    inc cx                                    ; 41
    53605367    mov dx, cx                                ; 89 ca
    53615368    mov ax, si                                ; 89 f0
    5362     call 02f5ah                               ; e8 a6 00
     5369    call 02f73h                               ; e8 a6 00
    53635370    mov bx, ax                                ; 89 c3
    53645371    mov dx, 0010eh                            ; ba 0e 01
    53655372    xor ax, ax                                ; 31 c0
    5366     call 02f68h                               ; e8 aa 00
     5373    call 02f81h                               ; e8 aa 00
    53675374    inc cx                                    ; 41
    53685375    inc cx                                    ; 41
    53695376    test byte [bp-00eh], 004h                 ; f6 46 f2 04
    5370     je short 02f0dh                           ; 74 47
     5377    je short 02f26h                           ; 74 47
    53715378    inc cx                                    ; 41
    53725379    mov dx, cx                                ; 89 ca
    53735380    mov ax, si                                ; 89 f0
    5374     call 02f3eh                               ; e8 70 00
     5381    call 02f57h                               ; e8 70 00
    53755382    xor ah, ah                                ; 30 e4
    53765383    mov word [bp-00ah], ax                    ; 89 46 f6
     
    53785385    mov dx, cx                                ; 89 ca
    53795386    mov ax, si                                ; 89 f0
    5380     call 02f3eh                               ; e8 63 00
     5387    call 02f57h                               ; e8 63 00
    53815388    mov dx, 003c6h                            ; ba c6 03
    53825389    out DX, AL                                ; ee
     
    53875394    xor ah, ah                                ; 30 e4
    53885395    mov word [bp-008h], ax                    ; 89 46 f8
    5389     jmp short 02ef4h                          ; eb 07
     5396    jmp short 02f0dh                          ; eb 07
    53905397    cmp word [bp-008h], 00300h                ; 81 7e f8 00 03
    5391     jnc short 02f05h                          ; 73 11
     5398    jnc short 02f1eh                          ; 73 11
    53925399    mov dx, cx                                ; 89 ca
    53935400    mov ax, si                                ; 89 f0
    5394     call 02f3eh                               ; e8 43 00
     5401    call 02f57h                               ; e8 43 00
    53955402    mov dx, 003c9h                            ; ba c9 03
    53965403    out DX, AL                                ; ee
    53975404    inc cx                                    ; 41
    53985405    inc word [bp-008h]                        ; ff 46 f8
    5399     jmp short 02eedh                          ; eb e8
     5406    jmp short 02f06h                          ; eb e8
    54005407    inc cx                                    ; 41
    54015408    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    54095416    pop bp                                    ; 5d
    54105417    retn                                      ; c3
    5411 find_vga_entry_:                             ; 0xc2f17 LB 0x27
     5418find_vga_entry_:                             ; 0xc2f30 LB 0x27
    54125419    push bx                                   ; 53
    54135420    push dx                                   ; 52
     
    54175424    mov AH, strict byte 0ffh                  ; b4 ff
    54185425    xor al, al                                ; 30 c0
    5419     jmp short 02f2ah                          ; eb 06
     5426    jmp short 02f43h                          ; eb 06
    54205427    db  0feh, 0c0h
    54215428    ; inc al                                    ; fe c0
    54225429    cmp AL, strict byte 00fh                  ; 3c 0f
    5423     jnbe short 02f38h                         ; 77 0e
     5430    jnbe short 02f51h                         ; 77 0e
    54245431    movzx bx, al                              ; 0f b6 d8
    54255432    sal bx, 003h                              ; c1 e3 03
    5426     cmp dl, byte [bx+0462fh]                  ; 3a 97 2f 46
    5427     jne short 02f24h                          ; 75 ee
     5433    cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
     5434    jne short 02f3dh                          ; 75 ee
    54285435    mov ah, al                                ; 88 c4
    54295436    mov al, ah                                ; 88 e0
     
    54325439    pop bx                                    ; 5b
    54335440    retn                                      ; c3
    5434 read_byte_:                                  ; 0xc2f3e LB 0xe
     5441read_byte_:                                  ; 0xc2f57 LB 0xe
    54355442    push bx                                   ; 53
    54365443    push bp                                   ; 55
     
    54425449    pop bx                                    ; 5b
    54435450    retn                                      ; c3
    5444 write_byte_:                                 ; 0xc2f4c LB 0xe
     5451write_byte_:                                 ; 0xc2f65 LB 0xe
    54455452    push si                                   ; 56
    54465453    push bp                                   ; 55
     
    54525459    pop si                                    ; 5e
    54535460    retn                                      ; c3
    5454 read_word_:                                  ; 0xc2f5a LB 0xe
     5461read_word_:                                  ; 0xc2f73 LB 0xe
    54555462    push bx                                   ; 53
    54565463    push bp                                   ; 55
     
    54625469    pop bx                                    ; 5b
    54635470    retn                                      ; c3
    5464 write_word_:                                 ; 0xc2f68 LB 0xe
     5471write_word_:                                 ; 0xc2f81 LB 0xe
    54655472    push si                                   ; 56
    54665473    push bp                                   ; 55
     
    54725479    pop si                                    ; 5e
    54735480    retn                                      ; c3
    5474 read_dword_:                                 ; 0xc2f76 LB 0x12
     5481read_dword_:                                 ; 0xc2f8f LB 0x12
    54755482    push bx                                   ; 53
    54765483    push bp                                   ; 55
     
    54835490    pop bx                                    ; 5b
    54845491    retn                                      ; c3
    5485 write_dword_:                                ; 0xc2f88 LB 0x96
     5492write_dword_:                                ; 0xc2fa1 LB 0x96
    54865493    push si                                   ; 56
    54875494    push bp                                   ; 55
     
    55055512    add ax, 00304h                            ; 05 04 03
    55065513    add al, byte [bx+di]                      ; 02 01
    5507     add cl, ah                                ; 00 e1
    5508     xor dx, word [bx+di+030h]                 ; 33 51 30
    5509     db  08fh, 030h
    5510     ; pop word [bx+si]                          ; 8f 30
    5511     mov word [0b430h], ax                     ; a3 30 b4
    5512     xor al, cl                                ; 30 c8
    5513     xor cl, bl                                ; 30 d9
    5514     xor bl, ah                                ; 30 e3
    5515     xor byte [di], bl                         ; 30 1d
    5516     xor word [bx+di], sp                      ; 31 21
    5517     xor word [bp+si], si                      ; 31 32
    5518     xor word [bx+031h], cx                    ; 31 4f 31
    5519     insb                                      ; 6c
    5520     xor word [bp+di-057cfh], cx               ; 31 8b 31 a8
    5521     xor word [bx-034cfh], di                  ; 31 bf 31 cb
    5522     xor word [bp+di-02aceh], bx               ; 31 9b 32 d5
    5523     xor cl, byte [bx+si]                      ; 32 08
    5524     xor bx, word [di]                         ; 33 1d
    5525     xor bx, word [bp+si+033h]                 ; 33 5a 33
    5526     xor byte [si], ah                         ; 30 24
    5527     and sp, word [bp+si]                      ; 23 22
    5528     and word [bx+si], sp                      ; 21 20
    5529     adc AL, strict byte 012h                  ; 14 12
    5530     adc word [bx+si], dx                      ; 11 10
    5531     add AL, strict byte 002h                  ; 04 02
    5532     add word [bx+si], ax                      ; 01 00
    5533     loope 0301eh                              ; e1 33
    5534     jmp far 02132h:01031h                     ; ea 31 10 32 21
    5535     xor dh, byte [bp+si]                      ; 32 32
    5536     db  032h, 0eah
    5537     ; xor ch, dl                                ; 32 ea
    5538     xor word [bx+si], dx                      ; 31 10
     5514    add dl, bh                                ; 00 fa
     5515    xor bp, word [bp+si+030h]                 ; 33 6a 30
     5516    test AL, strict byte 030h                 ; a8 30
     5517    mov sp, 0cd30h                            ; bc 30 cd
     5518    xor cl, ah                                ; 30 e1
     5519    xor dl, dh                                ; 30 f2
     5520    xor ah, bh                                ; 30 fc
     5521    xor byte [03a31h], dh                     ; 30 36 31 3a
     5522    xor word [bp+di+031h], cx                 ; 31 4b 31
     5523    push 08531h                               ; 68 31 85
     5524    xor word [si-03ecfh], sp                  ; 31 a4 31 c1
     5525    xor ax, bx                                ; 31 d8
     5526    xor sp, sp                                ; 31 e4
     5527    xor word [si-011ceh], si                  ; 31 b4 32 ee
    55395528    xor ah, byte [bx+di]                      ; 32 21
    5540     xor dh, byte [bp+si]                      ; 32 32
    5541     xor al, byte [bp+di+032h]                 ; 32 43 32
    5542     dec di                                    ; 4f
    5543     xor ch, byte [bp+si+032h]                 ; 32 6a 32
    5544     jc short 03035h                           ; 72 32
    5545     jp short 03037h                           ; 7a 32
    5546     db  082h, 032h, 00ah
    5547     ; xor byte [bp+si], 00ah                    ; 82 32 0a
     5529    xor si, word [07333h]                     ; 33 36 33 73
     5530    xor si, word [bx+si]                      ; 33 30
     5531    and AL, strict byte 023h                  ; 24 23
     5532    and ah, byte [bx+di]                      ; 22 21
     5533    and byte [si], dl                         ; 20 14
     5534    adc dl, byte [bx+di]                      ; 12 11
     5535    adc byte [si], al                         ; 10 04
     5536    add al, byte [bx+di]                      ; 02 01
     5537    add dl, bh                                ; 00 fa
     5538    xor ax, word [bp+di]                      ; 33 03
     5539    xor ch, byte [bx+di]                      ; 32 29
     5540    xor bh, byte [bp+si]                      ; 32 3a
     5541    xor cl, byte [bp+di+032h]                 ; 32 4b 32
     5542    add si, word [bp+si]                      ; 03 32
     5543    sub word [bp+si], si                      ; 29 32
     5544    cmp dh, byte [bp+si]                      ; 3a 32
     5545    dec bx                                    ; 4b
     5546    xor bl, byte [si+032h]                    ; 32 5c 32
     5547    push 08332h                               ; 68 32 83
     5548    xor cl, byte [bp+di-06cceh]               ; 32 8b 32 93
     5549    xor bl, byte [bp+di+00a32h]               ; 32 9b 32 0a
    55485550    or word [00204h], ax                      ; 09 06 04 02
    55495551    add word [bx+si], ax                      ; 01 00
    5550     aad 033h                                  ; d5 33
    5551     db  082h, 033h, 08fh
    5552     ; xor byte [bp+di], 08fh                    ; 82 33 8f
    5553     xor bx, word [bx-050cdh]                  ; 33 9f 33 af
    5554     db  033h, 0c4h
    5555     ; xor ax, sp                                ; 33 c4
    5556     db  033h, 0d5h
    5557     ; xor dx, bp                                ; 33 d5
    5558     db  033h, 0d5h
    5559     ; xor dx, bp                                ; 33 d5
     5552    out DX, AL                                ; ee
     5553    xor bx, word [bp+di-057cdh]               ; 33 9b 33 a8
     5554    xor di, word [bx+si-037cdh]               ; 33 b8 33 c8
     5555    db  033h, 0ddh
     5556    ; xor bx, bp                                ; 33 dd
     5557    db  033h, 0eeh
     5558    ; xor bp, si                                ; 33 ee
     5559    db  033h, 0eeh
     5560    ; xor bp, si                                ; 33 ee
    55605561    db  033h
    5561 _int10_func:                                 ; 0xc301e LB 0x3ca
     5562_int10_func:                                 ; 0xc3037 LB 0x3ca
    55625563    push bp                                   ; 55
    55635564    mov bp, sp                                ; 89 e5
     
    55695570    shr ax, 008h                              ; c1 e8 08
    55705571    cmp ax, strict word 0004fh                ; 3d 4f 00
    5571     jnbe near 033e1h                          ; 0f 87 ad 03
     5572    jnbe near 033fah                          ; 0f 87 ad 03
    55725573    push CS                                   ; 0e
    55735574    pop ES                                    ; 07
    55745575    mov cx, strict word 00016h                ; b9 16 00
    5575     mov di, 02f9ah                            ; bf 9a 2f
     5576    mov di, 02fb3h                            ; bf b3 2f
    55765577    repne scasb                               ; f2 ae
    55775578    sal cx, 1                                 ; d1 e1
    55785579    mov di, cx                                ; 89 cf
    5579     mov bx, word [cs:di+02fafh]               ; 2e 8b 9d af 2f
     5580    mov bx, word [cs:di+02fc8h]               ; 2e 8b 9d c8 2f
    55805581    mov ax, word [bp+012h]                    ; 8b 46 12
    55815582    xor ah, ah                                ; 30 e4
     
    55845585    mov al, byte [bp+012h]                    ; 8a 46 12
    55855586    xor ah, ah                                ; 30 e4
    5586     call 00fdch                               ; e8 83 df
     5587    call 00fdch                               ; e8 6a df
    55875588    mov ax, word [bp+012h]                    ; 8b 46 12
    55885589    and ax, strict word 0007fh                ; 25 7f 00
    55895590    cmp ax, strict word 00007h                ; 3d 07 00
    5590     je short 03079h                           ; 74 15
     5591    je short 03092h                           ; 74 15
    55915592    cmp ax, strict word 00006h                ; 3d 06 00
    5592     je short 03070h                           ; 74 07
     5593    je short 03089h                           ; 74 07
    55935594    cmp ax, strict word 00005h                ; 3d 05 00
    5594     jbe short 03079h                          ; 76 0b
    5595     jmp short 03082h                          ; eb 12
     5595    jbe short 03092h                          ; 76 0b
     5596    jmp short 0309bh                          ; eb 12
    55965597    mov ax, word [bp+012h]                    ; 8b 46 12
    55975598    xor al, al                                ; 30 c0
    55985599    or AL, strict byte 03fh                   ; 0c 3f
    5599     jmp short 03089h                          ; eb 10
     5600    jmp short 030a2h                          ; eb 10
    56005601    mov ax, word [bp+012h]                    ; 8b 46 12
    56015602    xor al, al                                ; 30 c0
    56025603    or AL, strict byte 030h                   ; 0c 30
    5603     jmp short 03089h                          ; eb 07
     5604    jmp short 030a2h                          ; eb 07
    56045605    mov ax, word [bp+012h]                    ; 8b 46 12
    56055606    xor al, al                                ; 30 c0
    56065607    or AL, strict byte 020h                   ; 0c 20
    56075608    mov word [bp+012h], ax                    ; 89 46 12
    5608     jmp near 033e1h                           ; e9 52 03
     5609    jmp near 033fah                           ; e9 52 03
    56095610    mov al, byte [bp+010h]                    ; 8a 46 10
    56105611    movzx dx, al                              ; 0f b6 d0
     
    56125613    shr ax, 008h                              ; c1 e8 08
    56135614    xor ah, ah                                ; 30 e4
    5614     call 00dbah                               ; e8 1a dd
    5615     jmp near 033e1h                           ; e9 3e 03
     5615    call 00dbah                               ; e8 01 dd
     5616    jmp near 033fah                           ; e9 3e 03
    56165617    mov dx, word [bp+00eh]                    ; 8b 56 0e
    56175618    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56185619    shr ax, 008h                              ; c1 e8 08
    56195620    xor ah, ah                                ; 30 e4
    5620     call 00e5eh                               ; e8 ad dd
    5621     jmp near 033e1h                           ; e9 2d 03
     5621    call 00e5eh                               ; e8 94 dd
     5622    jmp near 033fah                           ; e9 2d 03
    56225623    lea bx, [bp+00eh]                         ; 8d 5e 0e
    56235624    lea dx, [bp+010h]                         ; 8d 56 10
     
    56255626    shr ax, 008h                              ; c1 e8 08
    56265627    xor ah, ah                                ; 30 e4
    5627     call 00a88h                               ; e8 c3 d9
    5628     jmp near 033e1h                           ; e9 19 03
     5628    call 00a88h                               ; e8 aa d9
     5629    jmp near 033fah                           ; e9 19 03
    56295630    xor al, al                                ; 30 c0
    56305631    mov word [bp+012h], ax                    ; 89 46 12
     
    56325633    mov word [bp+010h], ax                    ; 89 46 10
    56335634    mov word [bp+00eh], ax                    ; 89 46 0e
    5634     jmp near 033e1h                           ; e9 08 03
     5635    jmp near 033fah                           ; e9 08 03
    56355636    mov al, dl                                ; 88 d0
    56365637    xor ah, ah                                ; 30 e4
    5637     call 00f00h                               ; e8 20 de
    5638     jmp near 033e1h                           ; e9 fe 02
     5638    call 00f00h                               ; e8 07 de
     5639    jmp near 033fah                           ; e9 fe 02
    56395640    mov ax, strict word 00001h                ; b8 01 00
    56405641    push ax                                   ; 50
     
    56585659    mov al, byte [bp+012h]                    ; 8a 46 12
    56595660    xor ah, ah                                ; 30 e4
    5660     call 01572h                               ; e8 58 e4
    5661     jmp near 033e1h                           ; e9 c4 02
     5661    call 0158bh                               ; e8 58 e4
     5662    jmp near 033fah                           ; e9 c4 02
    56625663    xor al, al                                ; 30 c0
    5663     jmp short 030e6h                          ; eb c5
     5664    jmp short 030ffh                          ; eb c5
    56645665    lea dx, [bp+012h]                         ; 8d 56 12
    56655666    mov ax, word [bp+00ch]                    ; 8b 46 0c
    56665667    shr ax, 008h                              ; c1 e8 08
    56675668    xor ah, ah                                ; 30 e4
    5668     call 00acbh                               ; e8 9c d9
    5669     jmp near 033e1h                           ; e9 af 02
     5669    call 00acbh                               ; e8 83 d9
     5670    jmp near 033fah                           ; e9 af 02
    56705671    mov cx, word [bp+010h]                    ; 8b 4e 10
    56715672    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    56765677    mov al, byte [bp+012h]                    ; 8a 46 12
    56775678    xor ah, ah                                ; 30 e4
    5678     call 01d12h                               ; e8 c6 eb
    5679     jmp near 033e1h                           ; e9 92 02
     5679    call 01d2bh                               ; e8 c6 eb
     5680    jmp near 033fah                           ; e9 92 02
    56805681    mov cx, word [bp+010h]                    ; 8b 4e 10
    56815682    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    56865687    mov al, byte [bp+012h]                    ; 8a 46 12
    56875688    xor ah, ah                                ; 30 e4
    5688     call 01e7ah                               ; e8 11 ed
    5689     jmp near 033e1h                           ; e9 75 02
     5689    call 01e93h                               ; e8 11 ed
     5690    jmp near 033fah                           ; e9 75 02
    56905691    mov cx, word [bp+00eh]                    ; 8b 4e 0e
    56915692    mov bx, word [bp+010h]                    ; 8b 5e 10
     
    56975698    mov al, byte [bp-006h]                    ; 8a 46 fa
    56985699    xor ah, ah                                ; 30 e4
    5699     call 01fe9h                               ; e8 61 ee
    5700     jmp near 033e1h                           ; e9 56 02
     5700    call 02002h                               ; e8 61 ee
     5701    jmp near 033fah                           ; e9 56 02
    57015702    lea cx, [bp+012h]                         ; 8d 4e 12
    57025703    mov bx, word [bp+00eh]                    ; 8b 5e 0e
     
    57075708    mov al, byte [bp-006h]                    ; 8a 46 fa
    57085709    xor ah, ah                                ; 30 e4
    5709     call 00bf5h                               ; e8 50 da
    5710     jmp near 033e1h                           ; e9 39 02
     5710    call 00bf5h                               ; e8 37 da
     5711    jmp near 033fah                           ; e9 39 02
    57115712    mov cx, strict word 00002h                ; b9 02 00
    57125713    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    57155716    mov al, byte [bp+012h]                    ; 8a 46 12
    57165717    xor ah, ah                                ; 30 e4
    5717     call 02153h                               ; e8 97 ef
    5718     jmp near 033e1h                           ; e9 22 02
     5718    call 0216ch                               ; e8 97 ef
     5719    jmp near 033fah                           ; e9 22 02
    57195720    mov dx, word [bp+010h]                    ; 8b 56 10
    57205721    mov ax, word [bp+00ch]                    ; 8b 46 0c
    5721     call 00d2eh                               ; e8 66 db
    5722     jmp near 033e1h                           ; e9 16 02
     5722    call 00d2eh                               ; e8 4d db
     5723    jmp near 033fah                           ; e9 16 02
    57235724    cmp ax, strict word 00030h                ; 3d 30 00
    5724     jnbe near 033e1h                          ; 0f 87 0f 02
     5725    jnbe near 033fah                          ; 0f 87 0f 02
    57255726    push CS                                   ; 0e
    57265727    pop ES                                    ; 07
    57275728    mov cx, strict word 0000fh                ; b9 0f 00
    5728     mov di, 02fdbh                            ; bf db 2f
     5729    mov di, 02ff4h                            ; bf f4 2f
    57295730    repne scasb                               ; f2 ae
    57305731    sal cx, 1                                 ; d1 e1
    57315732    mov di, cx                                ; 89 cf
    5732     mov dx, word [cs:di+02fe9h]               ; 2e 8b 95 e9 2f
     5733    mov dx, word [cs:di+03002h]               ; 2e 8b 95 02 30
    57335734    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57345735    jmp dx                                    ; ff e2
     
    57465747    mov bx, word [bp+008h]                    ; 8b 5e 08
    57475748    mov dx, word [bp+016h]                    ; 8b 56 16
    5748     call 024bbh                               ; e8 ae f2
    5749     jmp near 033e1h                           ; e9 d1 01
     5749    call 024d4h                               ; e8 ae f2
     5750    jmp near 033fah                           ; e9 d1 01
    57505751    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57515752    movzx dx, al                              ; 0f b6 d0
    57525753    mov al, byte [bp+012h]                    ; 8a 46 12
    57535754    xor ah, ah                                ; 30 e4
    5754     call 02538h                               ; e8 1a f3
    5755     jmp near 033e1h                           ; e9 c0 01
     5755    call 02551h                               ; e8 1a f3
     5756    jmp near 033fah                           ; e9 c0 01
    57565757    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57575758    movzx dx, al                              ; 0f b6 d0
    57585759    mov al, byte [bp+012h]                    ; 8a 46 12
    57595760    xor ah, ah                                ; 30 e4
    5760     call 025a8h                               ; e8 79 f3
    5761     jmp near 033e1h                           ; e9 af 01
     5761    call 025c1h                               ; e8 79 f3
     5762    jmp near 033fah                           ; e9 af 01
    57625763    mov al, byte [bp+00ch]                    ; 8a 46 0c
    57635764    movzx dx, al                              ; 0f b6 d0
    57645765    mov al, byte [bp+012h]                    ; 8a 46 12
    57655766    xor ah, ah                                ; 30 e4
    5766     call 0261ah                               ; e8 da f3
    5767     jmp near 033e1h                           ; e9 9e 01
     5767    call 02633h                               ; e8 da f3
     5768    jmp near 033fah                           ; e9 9e 01
    57685769    mov dx, word [bp+008h]                    ; 8b 56 08
    57695770    mov ax, word [bp+016h]                    ; 8b 46 16
    5770     call 0268ch                               ; e8 40 f4
    5771     jmp near 033e1h                           ; e9 92 01
     5771    call 026a5h                               ; e8 40 f4
     5772    jmp near 033fah                           ; e9 92 01
    57725773    mov al, byte [bp+00eh]                    ; 8a 46 0e
    57735774    xor ah, ah                                ; 30 e4
     
    57785779    mov dx, word [bp+008h]                    ; 8b 56 08
    57795780    mov ax, word [bp+016h]                    ; 8b 46 16
    5780     call 02691h                               ; e8 2a f4
    5781     jmp near 033e1h                           ; e9 77 01
     5781    call 026aah                               ; e8 2a f4
     5782    jmp near 033fah                           ; e9 77 01
    57825783    xor ah, ah                                ; 30 e4
    5783     call 02698h                               ; e8 29 f4
    5784     jmp near 033e1h                           ; e9 6f 01
     5784    call 026b1h                               ; e8 29 f4
     5785    jmp near 033fah                           ; e9 6f 01
    57855786    xor ah, ah                                ; 30 e4
    5786     call 0269dh                               ; e8 26 f4
    5787     jmp near 033e1h                           ; e9 67 01
     5787    call 026b6h                               ; e8 26 f4
     5788    jmp near 033fah                           ; e9 67 01
    57885789    xor ah, ah                                ; 30 e4
    5789     call 026a2h                               ; e8 23 f4
    5790     jmp near 033e1h                           ; e9 5f 01
     5790    call 026bbh                               ; e8 23 f4
     5791    jmp near 033fah                           ; e9 5f 01
    57915792    lea ax, [bp+00eh]                         ; 8d 46 0e
    57925793    push ax                                   ; 50
     
    57965797    lea bx, [bp+008h]                         ; 8d 5e 08
    57975798    lea dx, [bp+016h]                         ; 8d 56 16
    5798     call 00b73h                               ; e8 db d8
    5799     jmp near 033e1h                           ; e9 46 01
     5799    call 00b73h                               ; e8 c2 d8
     5800    jmp near 033fah                           ; e9 46 01
    58005801    mov ax, word [bp+00ch]                    ; 8b 46 0c
    58015802    xor ah, ah                                ; 30 e4
    58025803    cmp ax, strict word 00036h                ; 3d 36 00
    5803     je short 032cdh                           ; 74 28
     5804    je short 032e6h                           ; 74 28
    58045805    cmp ax, strict word 00035h                ; 3d 35 00
    5805     je short 032b7h                           ; 74 0d
     5806    je short 032d0h                           ; 74 0d
    58065807    cmp ax, strict word 00020h                ; 3d 20 00
    5807     jne near 033e1h                           ; 0f 85 30 01
    5808     call 026a7h                               ; e8 f3 f3
    5809     jmp near 033e1h                           ; e9 2a 01
     5808    jne near 033fah                           ; 0f 85 30 01
     5809    call 026c0h                               ; e8 f3 f3
     5810    jmp near 033fah                           ; e9 2a 01
    58105811    movzx ax, dl                              ; 0f b6 c2
    58115812    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    58125813    mov dx, word [bp+016h]                    ; 8b 56 16
    5813     call 026ach                               ; e8 e9 f3
     5814    call 026c5h                               ; e8 e9 f3
    58145815    mov ax, word [bp+012h]                    ; 8b 46 12
    58155816    xor al, al                                ; 30 c0
    58165817    or AL, strict byte 012h                   ; 0c 12
    5817     jmp near 03089h                           ; e9 bc fd
     5818    jmp near 030a2h                           ; e9 bc fd
    58185819    movzx ax, dl                              ; 0f b6 c2
    5819     call 026b1h                               ; e8 de f3
    5820     jmp short 032c3h                          ; eb ee
     5820    call 026cah                               ; e8 de f3
     5821    jmp short 032dch                          ; eb ee
    58215822    push word [bp+008h]                       ; ff 76 08
    58225823    push word [bp+016h]                       ; ff 76 16
     
    58375838    mov dx, ax                                ; 89 c2
    58385839    mov ax, si                                ; 89 f0
    5839     call 026b6h                               ; e8 b1 f3
    5840     jmp near 033e1h                           ; e9 d9 00
     5840    call 026cfh                               ; e8 b1 f3
     5841    jmp near 033fah                           ; e9 d9 00
    58415842    mov bx, si                                ; 89 f3
    58425843    mov dx, word [bp+016h]                    ; 8b 56 16
    58435844    mov ax, word [bp+00ch]                    ; 8b 46 0c
    5844     call 02752h                               ; e8 3f f4
     5845    call 0276bh                               ; e8 3f f4
    58455846    mov ax, word [bp+012h]                    ; 8b 46 12
    58465847    xor al, al                                ; 30 c0
    58475848    or AL, strict byte 01bh                   ; 0c 1b
    5848     jmp near 03089h                           ; e9 6c fd
     5849    jmp near 030a2h                           ; e9 6c fd
    58495850    cmp ax, strict word 00002h                ; 3d 02 00
    5850     je short 03344h                           ; 74 22
     5851    je short 0335dh                           ; 74 22
    58515852    cmp ax, strict word 00001h                ; 3d 01 00
    5852     je short 03336h                           ; 74 0f
     5853    je short 0334fh                           ; 74 0f
    58535854    test ax, ax                               ; 85 c0
    5854     jne short 03350h                          ; 75 25
     5855    jne short 03369h                          ; 75 25
    58555856    lea dx, [bp+00ch]                         ; 8d 56 0c
    58565857    mov ax, word [bp+010h]                    ; 8b 46 10
    5857     call 02876h                               ; e8 42 f5
    5858     jmp short 03350h                          ; eb 1a
     5858    call 0288fh                               ; e8 42 f5
     5859    jmp short 03369h                          ; eb 1a
    58595860    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    58605861    mov dx, word [bp+016h]                    ; 8b 56 16
    58615862    mov ax, word [bp+010h]                    ; 8b 46 10
    5862     call 02888h                               ; e8 46 f5
    5863     jmp short 03350h                          ; eb 0c
     5863    call 028a1h                               ; e8 46 f5
     5864    jmp short 03369h                          ; eb 0c
    58645865    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    58655866    mov dx, word [bp+016h]                    ; 8b 56 16
    58665867    mov ax, word [bp+010h]                    ; 8b 46 10
    5867     call 02bf1h                               ; e8 a1 f8
     5868    call 02c0ah                               ; e8 a1 f8
    58685869    mov ax, word [bp+012h]                    ; 8b 46 12
    58695870    xor al, al                                ; 30 c0
    58705871    or AL, strict byte 01ch                   ; 0c 1c
    5871     jmp near 03089h                           ; e9 2f fd
    5872     call 007bfh                               ; e8 62 d4
     5872    jmp near 030a2h                           ; e9 2f fd
     5873    call 007bfh                               ; e8 49 d4
    58735874    test ax, ax                               ; 85 c0
    5874     je near 033dch                            ; 0f 84 79 00
     5875    je near 033f5h                            ; 0f 84 79 00
    58755876    mov ax, word [bp+012h]                    ; 8b 46 12
    58765877    xor ah, ah                                ; 30 e4
    58775878    cmp ax, strict word 0000ah                ; 3d 0a 00
    5878     jnbe short 033d5h                         ; 77 68
     5879    jnbe short 033eeh                         ; 77 68
    58795880    push CS                                   ; 0e
    58805881    pop ES                                    ; 07
    58815882    mov cx, strict word 00008h                ; b9 08 00
    5882     mov di, 03007h                            ; bf 07 30
     5883    mov di, 03020h                            ; bf 20 30
    58835884    repne scasb                               ; f2 ae
    58845885    sal cx, 1                                 ; d1 e1
    58855886    mov di, cx                                ; 89 cf
    5886     mov ax, word [cs:di+0300eh]               ; 2e 8b 85 0e 30
     5887    mov ax, word [cs:di+03027h]               ; 2e 8b 85 27 30
    58875888    jmp ax                                    ; ff e0
    58885889    mov bx, si                                ; 89 f3
    58895890    mov dx, word [bp+016h]                    ; 8b 56 16
    58905891    lea ax, [bp+012h]                         ; 8d 46 12
    5891     call 03584h                               ; e8 f7 01
    5892     jmp short 033e1h                          ; eb 52
     5892    call 035b6h                               ; e8 10 02
     5893    jmp short 033fah                          ; eb 52
    58935894    mov cx, si                                ; 89 f1
    58945895    mov bx, word [bp+016h]                    ; 8b 5e 16
    58955896    mov dx, word [bp+010h]                    ; 8b 56 10
    58965897    lea ax, [bp+012h]                         ; 8d 46 12
    5897     call 036adh                               ; e8 10 03
    5898     jmp short 033e1h                          ; eb 42
     5898    call 036dfh                               ; e8 29 03
     5899    jmp short 033fah                          ; eb 42
    58995900    mov cx, si                                ; 89 f1
    59005901    mov bx, word [bp+016h]                    ; 8b 5e 16
    59015902    mov dx, word [bp+00ch]                    ; 8b 56 0c
    59025903    lea ax, [bp+012h]                         ; 8d 46 12
    5903     call 03765h                               ; e8 b8 03
    5904     jmp short 033e1h                          ; eb 32
     5904    call 03797h                               ; e8 d1 03
     5905    jmp short 033fah                          ; eb 32
    59055906    lea ax, [bp+00ch]                         ; 8d 46 0c
    59065907    push ax                                   ; 50
     
    59095910    mov dx, word [bp+010h]                    ; 8b 56 10
    59105911    lea ax, [bp+012h]                         ; 8d 46 12
    5911     call 0394ch                               ; e8 8a 05
    5912     jmp short 033e1h                          ; eb 1d
     5912    call 0397eh                               ; e8 a3 05
     5913    jmp short 033fah                          ; eb 1d
    59135914    lea cx, [bp+00eh]                         ; 8d 4e 0e
    59145915    lea bx, [bp+010h]                         ; 8d 5e 10
    59155916    lea dx, [bp+00ch]                         ; 8d 56 0c
    59165917    lea ax, [bp+012h]                         ; 8d 46 12
    5917     call 039d8h                               ; e8 05 06
    5918     jmp short 033e1h                          ; eb 0c
     5918    call 03a0ah                               ; e8 1e 06
     5919    jmp short 033fah                          ; eb 0c
    59195920    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    5920     jmp short 033e1h                          ; eb 05
     5921    jmp short 033fah                          ; eb 05
    59215922    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    59225923    lea sp, [bp-004h]                         ; 8d 66 fc
     
    59255926    pop bp                                    ; 5d
    59265927    retn                                      ; c3
    5927 dispi_set_xres_:                             ; 0xc33e8 LB 0x1f
     5928dispi_set_xres_:                             ; 0xc3401 LB 0x1f
    59285929    push bp                                   ; 55
    59295930    mov bp, sp                                ; 89 e5
     
    59335934    mov ax, strict word 00001h                ; b8 01 00
    59345935    mov dx, 001ceh                            ; ba ce 01
    5935     call 00570h                               ; e8 78 d1
     5936    call 00570h                               ; e8 5f d1
    59365937    mov ax, bx                                ; 89 d8
    59375938    mov dx, 001cfh                            ; ba cf 01
    5938     call 00570h                               ; e8 70 d1
     5939    call 00570h                               ; e8 57 d1
    59395940    lea sp, [bp-004h]                         ; 8d 66 fc
    59405941    pop dx                                    ; 5a
     
    59425943    pop bp                                    ; 5d
    59435944    retn                                      ; c3
    5944 dispi_set_yres_:                             ; 0xc3407 LB 0x1f
     5945dispi_set_yres_:                             ; 0xc3420 LB 0x1f
    59455946    push bp                                   ; 55
    59465947    mov bp, sp                                ; 89 e5
     
    59505951    mov ax, strict word 00002h                ; b8 02 00
    59515952    mov dx, 001ceh                            ; ba ce 01
    5952     call 00570h                               ; e8 59 d1
     5953    call 00570h                               ; e8 40 d1
    59535954    mov ax, bx                                ; 89 d8
    59545955    mov dx, 001cfh                            ; ba cf 01
    5955     call 00570h                               ; e8 51 d1
     5956    call 00570h                               ; e8 38 d1
    59565957    lea sp, [bp-004h]                         ; 8d 66 fc
    59575958    pop dx                                    ; 5a
     
    59595960    pop bp                                    ; 5d
    59605961    retn                                      ; c3
    5961 dispi_set_bpp_:                              ; 0xc3426 LB 0x1f
     5962dispi_get_yres_:                             ; 0xc343f LB 0x19
     5963    push bp                                   ; 55
     5964    mov bp, sp                                ; 89 e5
     5965    push dx                                   ; 52
     5966    mov ax, strict word 00002h                ; b8 02 00
     5967    mov dx, 001ceh                            ; ba ce 01
     5968    call 00570h                               ; e8 24 d1
     5969    mov dx, 001cfh                            ; ba cf 01
     5970    call 00577h                               ; e8 25 d1
     5971    lea sp, [bp-002h]                         ; 8d 66 fe
     5972    pop dx                                    ; 5a
     5973    pop bp                                    ; 5d
     5974    retn                                      ; c3
     5975dispi_set_bpp_:                              ; 0xc3458 LB 0x1f
    59625976    push bp                                   ; 55
    59635977    mov bp, sp                                ; 89 e5
     
    59675981    mov ax, strict word 00003h                ; b8 03 00
    59685982    mov dx, 001ceh                            ; ba ce 01
    5969     call 00570h                               ; e8 3a d1
     5983    call 00570h                               ; e8 08 d1
    59705984    mov ax, bx                                ; 89 d8
    59715985    mov dx, 001cfh                            ; ba cf 01
    5972     call 00570h                               ; e8 32 d1
     5986    call 00570h                               ; e8 00 d1
    59735987    lea sp, [bp-004h]                         ; 8d 66 fc
    59745988    pop dx                                    ; 5a
     
    59765990    pop bp                                    ; 5d
    59775991    retn                                      ; c3
    5978 dispi_get_bpp_:                              ; 0xc3445 LB 0x19
     5992dispi_get_bpp_:                              ; 0xc3477 LB 0x19
    59795993    push bp                                   ; 55
    59805994    mov bp, sp                                ; 89 e5
     
    59825996    mov ax, strict word 00003h                ; b8 03 00
    59835997    mov dx, 001ceh                            ; ba ce 01
    5984     call 00570h                               ; e8 1e d1
     5998    call 00570h                               ; e8 ec d0
    59855999    mov dx, 001cfh                            ; ba cf 01
    5986     call 00577h                               ; e8 1f d1
     6000    call 00577h                               ; e8 ed d0
    59876001    lea sp, [bp-002h]                         ; 8d 66 fe
    59886002    pop dx                                    ; 5a
    59896003    pop bp                                    ; 5d
    59906004    retn                                      ; c3
    5991 dispi_set_virt_width_:                       ; 0xc345e LB 0x1f
     6005dispi_set_virt_width_:                       ; 0xc3490 LB 0x1f
    59926006    push bp                                   ; 55
    59936007    mov bp, sp                                ; 89 e5
     
    59976011    mov ax, strict word 00006h                ; b8 06 00
    59986012    mov dx, 001ceh                            ; ba ce 01
    5999     call 00570h                               ; e8 02 d1
     6013    call 00570h                               ; e8 d0 d0
    60006014    mov ax, bx                                ; 89 d8
    60016015    mov dx, 001cfh                            ; ba cf 01
    6002     call 00570h                               ; e8 fa d0
     6016    call 00570h                               ; e8 c8 d0
    60036017    lea sp, [bp-004h]                         ; 8d 66 fc
    60046018    pop dx                                    ; 5a
     
    60066020    pop bp                                    ; 5d
    60076021    retn                                      ; c3
    6008 dispi_get_virt_width_:                       ; 0xc347d LB 0x19
     6022dispi_get_virt_width_:                       ; 0xc34af LB 0x19
    60096023    push bp                                   ; 55
    60106024    mov bp, sp                                ; 89 e5
     
    60126026    mov ax, strict word 00006h                ; b8 06 00
    60136027    mov dx, 001ceh                            ; ba ce 01
    6014     call 00570h                               ; e8 e6 d0
     6028    call 00570h                               ; e8 b4 d0
    60156029    mov dx, 001cfh                            ; ba cf 01
    6016     call 00577h                               ; e8 e7 d0
     6030    call 00577h                               ; e8 b5 d0
    60176031    lea sp, [bp-002h]                         ; 8d 66 fe
    60186032    pop dx                                    ; 5a
    60196033    pop bp                                    ; 5d
    60206034    retn                                      ; c3
    6021 dispi_get_virt_height_:                      ; 0xc3496 LB 0x19
     6035dispi_get_virt_height_:                      ; 0xc34c8 LB 0x19
    60226036    push bp                                   ; 55
    60236037    mov bp, sp                                ; 89 e5
     
    60256039    mov ax, strict word 00007h                ; b8 07 00
    60266040    mov dx, 001ceh                            ; ba ce 01
    6027     call 00570h                               ; e8 cd d0
     6041    call 00570h                               ; e8 9b d0
    60286042    mov dx, 001cfh                            ; ba cf 01
    6029     call 00577h                               ; e8 ce d0
     6043    call 00577h                               ; e8 9c d0
    60306044    lea sp, [bp-002h]                         ; 8d 66 fe
    60316045    pop dx                                    ; 5a
    60326046    pop bp                                    ; 5d
    60336047    retn                                      ; c3
    6034 in_word_:                                    ; 0xc34af LB 0x12
     6048in_word_:                                    ; 0xc34e1 LB 0x12
    60356049    push bp                                   ; 55
    60366050    mov bp, sp                                ; 89 e5
     
    60456059    pop bp                                    ; 5d
    60466060    retn                                      ; c3
    6047 in_byte_:                                    ; 0xc34c1 LB 0x14
     6061in_byte_:                                    ; 0xc34f3 LB 0x14
    60486062    push bp                                   ; 55
    60496063    mov bp, sp                                ; 89 e5
     
    60606074    pop bp                                    ; 5d
    60616075    retn                                      ; c3
    6062 dispi_get_id_:                               ; 0xc34d5 LB 0x14
     6076dispi_get_id_:                               ; 0xc3507 LB 0x14
    60636077    push bp                                   ; 55
    60646078    mov bp, sp                                ; 89 e5
     
    60736087    pop bp                                    ; 5d
    60746088    retn                                      ; c3
    6075 dispi_set_id_:                               ; 0xc34e9 LB 0x1a
     6089dispi_set_id_:                               ; 0xc351b LB 0x1a
    60766090    push bp                                   ; 55
    60776091    mov bp, sp                                ; 89 e5
     
    60906104    pop bp                                    ; 5d
    60916105    retn                                      ; c3
    6092 vbe_init_:                                   ; 0xc3503 LB 0x2c
     6106vbe_init_:                                   ; 0xc3535 LB 0x2c
    60936107    push bp                                   ; 55
    60946108    mov bp, sp                                ; 89 e5
     
    60966110    push dx                                   ; 52
    60976111    mov ax, 0b0c0h                            ; b8 c0 b0
    6098     call 034e9h                               ; e8 db ff
    6099     call 034d5h                               ; e8 c4 ff
     6112    call 0351bh                               ; e8 db ff
     6113    call 03507h                               ; e8 c4 ff
    61006114    cmp ax, 0b0c0h                            ; 3d c0 b0
    6101     jne short 03528h                          ; 75 12
     6115    jne short 0355ah                          ; 75 12
    61026116    mov bx, strict word 00001h                ; bb 01 00
    61036117    mov dx, 000b9h                            ; ba b9 00
    61046118    mov ax, strict word 00040h                ; b8 40 00
    6105     call 02f4ch                               ; e8 2a fa
     6119    call 02f65h                               ; e8 11 fa
    61066120    mov ax, 0b0c4h                            ; b8 c4 b0
    6107     call 034e9h                               ; e8 c1 ff
     6121    call 0351bh                               ; e8 c1 ff
    61086122    lea sp, [bp-004h]                         ; 8d 66 fc
    61096123    pop dx                                    ; 5a
     
    61116125    pop bp                                    ; 5d
    61126126    retn                                      ; c3
    6113 mode_info_find_mode_:                        ; 0xc352f LB 0x55
     6127mode_info_find_mode_:                        ; 0xc3561 LB 0x55
    61146128    push bp                                   ; 55
    61156129    mov bp, sp                                ; 89 e5
     
    61226136    xor dx, dx                                ; 31 d2
    61236137    mov ax, 003b6h                            ; b8 b6 03
    6124     call 034afh                               ; e8 6d ff
     6138    call 034e1h                               ; e8 6d ff
    61256139    cmp ax, 077cch                            ; 3d cc 77
    6126     jne short 03579h                          ; 75 32
     6140    jne short 035abh                          ; 75 32
    61276141    mov bx, strict word 00004h                ; bb 04 00
    61286142    mov dx, bx                                ; 89 da
    61296143    mov ax, 003b6h                            ; b8 b6 03
    6130     call 034afh                               ; e8 5d ff
     6144    call 034e1h                               ; e8 5d ff
    61316145    mov cx, ax                                ; 89 c1
    61326146    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6133     je short 03579h                           ; 74 20
     6147    je short 035abh                           ; 74 20
    61346148    lea dx, [bx+002h]                         ; 8d 57 02
    61356149    mov ax, 003b6h                            ; b8 b6 03
    6136     call 034afh                               ; e8 4d ff
     6150    call 034e1h                               ; e8 4d ff
    61376151    lea dx, [bx+044h]                         ; 8d 57 44
    61386152    cmp cx, di                                ; 39 f9
    6139     jne short 03575h                          ; 75 0c
     6153    jne short 035a7h                          ; 75 0c
    61406154    test si, si                               ; 85 f6
    6141     jne short 03571h                          ; 75 04
     6155    jne short 035a3h                          ; 75 04
    61426156    mov ax, bx                                ; 89 d8
    6143     jmp short 0357bh                          ; eb 0a
     6157    jmp short 035adh                          ; eb 0a
    61446158    test AL, strict byte 080h                 ; a8 80
    6145     jne short 0356dh                          ; 75 f8
     6159    jne short 0359fh                          ; 75 f8
    61466160    mov bx, dx                                ; 89 d3
    6147     jmp short 0354ch                          ; eb d3
     6161    jmp short 0357eh                          ; eb d3
    61486162    xor ax, ax                                ; 31 c0
    61496163    lea sp, [bp-008h]                         ; 8d 66 f8
     
    61546168    pop bp                                    ; 5d
    61556169    retn                                      ; c3
    6156 vbe_biosfn_return_controller_information_: ; 0xc3584 LB 0x129
     6170vbe_biosfn_return_controller_information_: ; 0xc35b6 LB 0x129
    61576171    push bp                                   ; 55
    61586172    mov bp, sp                                ; 89 e5
     
    61656179    mov word [bp-00ah], bx                    ; 89 5e f6
    61666180    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6167     call 005b7h                               ; e8 1b d0
     6181    call 005b7h                               ; e8 e9 cf
    61686182    mov word [bp-010h], ax                    ; 89 46 f0
    61696183    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    61716185    xor dx, dx                                ; 31 d2
    61726186    mov ax, 003b6h                            ; b8 b6 03
    6173     call 034afh                               ; e8 02 ff
     6187    call 034e1h                               ; e8 02 ff
    61746188    cmp ax, 077cch                            ; 3d cc 77
    6175     je short 035bch                           ; 74 0a
     6189    je short 035eeh                           ; 74 0a
    61766190    push SS                                   ; 16
    61776191    pop ES                                    ; 07
    61786192    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6179     jmp near 036a5h                           ; e9 e9 00
     6193    jmp near 036d7h                           ; e9 e9 00
    61806194    mov cx, strict word 00004h                ; b9 04 00
    61816195    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    61826196    mov es, [bp-008h]                         ; 8e 46 f8
    61836197    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6184     jne short 035d6h                          ; 75 07
     6198    jne short 03608h                          ; 75 07
    61856199    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6186     je short 035e5h                           ; 74 0f
     6200    je short 03617h                           ; 74 0f
    61876201    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6188     jne short 035eah                          ; 75 0c
     6202    jne short 0361ch                          ; 75 0c
    61896203    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6190     jne short 035eah                          ; 75 05
     6204    jne short 0361ch                          ; 75 05
    61916205    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    61926206    mov es, [bp-008h]                         ; 8e 46 f8
     
    61946208    ; mov dword [es:bx], strict dword 041534556h ; 66 26 c7 07 56 45 53 41
    61956209    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
    6196     mov word [es:bx+006h], 07c5eh             ; 26 c7 47 06 5e 7c
     6210    mov word [es:bx+006h], 07c6ch             ; 26 c7 47 06 6c 7c
    61976211    mov [es:bx+008h], ds                      ; 26 8c 5f 08
    61986212    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 000h
     
    62046218    mov dx, strict word 0ffffh                ; ba ff ff
    62056219    mov ax, 003b6h                            ; b8 b6 03
    6206     call 034afh                               ; e8 8a fe
     6220    call 034e1h                               ; e8 8a fe
    62076221    mov es, [bp-008h]                         ; 8e 46 f8
    62086222    mov word [es:bx+012h], ax                 ; 26 89 47 12
    62096223    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6210     je short 03656h                           ; 74 24
     6224    je short 03688h                           ; 74 24
    62116225    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    6212     mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
     6226    mov word [es:bx+016h], 07c81h             ; 26 c7 47 16 81 7c
    62136227    mov [es:bx+018h], ds                      ; 26 8c 5f 18
    6214     mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
     6228    mov word [es:bx+01ah], 07c94h             ; 26 c7 47 1a 94 7c
    62156229    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
    6216     mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
     6230    mov word [es:bx+01eh], 07cb5h             ; 26 c7 47 1e b5 7c
    62176231    mov [es:bx+020h], ds                      ; 26 8c 5f 20
    62186232    mov dx, cx                                ; 89 ca
    62196233    add dx, strict byte 0001bh                ; 83 c2 1b
    62206234    mov ax, 003b6h                            ; b8 b6 03
    6221     call 034c1h                               ; e8 60 fe
     6235    call 034f3h                               ; e8 60 fe
    62226236    xor ah, ah                                ; 30 e4
    62236237    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6224     jnbe short 03681h                         ; 77 19
     6238    jnbe short 036b3h                         ; 77 19
    62256239    mov dx, cx                                ; 89 ca
    62266240    mov ax, 003b6h                            ; b8 b6 03
    6227     call 034afh                               ; e8 3f fe
     6241    call 034e1h                               ; e8 3f fe
    62286242    mov bx, ax                                ; 89 c3
    62296243    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62306244    add dx, word [bp-00ch]                    ; 03 56 f4
    62316245    mov ax, di                                ; 89 f8
    6232     call 02f68h                               ; e8 eb f8
     6246    call 02f81h                               ; e8 d2 f8
    62336247    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    62346248    add cx, strict byte 00044h                ; 83 c1 44
    62356249    mov dx, cx                                ; 89 ca
    62366250    mov ax, 003b6h                            ; b8 b6 03
    6237     call 034afh                               ; e8 23 fe
     6251    call 034e1h                               ; e8 23 fe
    62386252    mov bx, ax                                ; 89 c3
    62396253    cmp ax, strict word 0ffffh                ; 3d ff ff
    6240     jne short 03656h                          ; 75 c3
     6254    jne short 03688h                          ; 75 c3
    62416255    mov dx, word [bp-00ah]                    ; 8b 56 f6
    62426256    add dx, word [bp-00ch]                    ; 03 56 f4
    62436257    mov ax, di                                ; 89 f8
    6244     call 02f68h                               ; e8 ca f8
     6258    call 02f81h                               ; e8 b1 f8
    62456259    push SS                                   ; 16
    62466260    pop ES                                    ; 07
     
    62526266    pop bp                                    ; 5d
    62536267    retn                                      ; c3
    6254 vbe_biosfn_return_mode_information_:         ; 0xc36ad LB 0xb8
     6268vbe_biosfn_return_mode_information_:         ; 0xc36df LB 0xb8
    62556269    push bp                                   ; 55
    62566270    mov bp, sp                                ; 89 e5
     
    62686282    xor dh, dh                                ; 30 f6
    62696283    and ah, 001h                              ; 80 e4 01
    6270     call 0352fh                               ; e8 65 fe
     6284    call 03561h                               ; e8 65 fe
    62716285    mov word [bp-008h], ax                    ; 89 46 f8
    62726286    test ax, ax                               ; 85 c0
    6273     je near 03753h                            ; 0f 84 80 00
     6287    je near 03785h                            ; 0f 84 80 00
    62746288    mov cx, 00100h                            ; b9 00 01
    62756289    xor ax, ax                                ; 31 c0
     
    62776291    mov es, bx                                ; 8e c3
    62786292    cld                                       ; fc
    6279     jcxz 036e2h                               ; e3 02
     6293    jcxz 03714h                               ; e3 02
    62806294    rep stosb                                 ; f3 aa
    62816295    xor cx, cx                                ; 31 c9
    6282     jmp short 036ebh                          ; eb 05
     6296    jmp short 0371dh                          ; eb 05
    62836297    cmp cx, strict byte 00042h                ; 83 f9 42
    6284     jnc short 03708h                          ; 73 1d
     6298    jnc short 0373ah                          ; 73 1d
    62856299    mov dx, word [bp-008h]                    ; 8b 56 f8
    62866300    inc dx                                    ; 42
     
    62886302    add dx, cx                                ; 01 ca
    62896303    mov ax, 003b6h                            ; b8 b6 03
    6290     call 034c1h                               ; e8 c9 fd
     6304    call 034f3h                               ; e8 c9 fd
    62916305    movzx bx, al                              ; 0f b6 d8
    62926306    mov dx, word [bp-006h]                    ; 8b 56 fa
    62936307    add dx, cx                                ; 01 ca
    62946308    mov ax, si                                ; 89 f0
    6295     call 02f4ch                               ; e8 47 f8
    6296     inc cx                                    ; 41
    6297     jmp short 036e6h                          ; eb de
     6309    call 02f65h                               ; e8 2e f8
     6310    inc cx                                    ; 41
     6311    jmp short 03718h                          ; eb de
    62986312    mov dx, word [bp-006h]                    ; 8b 56 fa
    62996313    inc dx                                    ; 42
    63006314    inc dx                                    ; 42
    63016315    mov ax, si                                ; 89 f0
    6302     call 02f3eh                               ; e8 2c f8
     6316    call 02f57h                               ; e8 13 f8
    63036317    test AL, strict byte 001h                 ; a8 01
    6304     je short 03732h                           ; 74 1c
     6318    je short 03764h                           ; 74 1c
    63056319    mov dx, word [bp-006h]                    ; 8b 56 fa
    63066320    add dx, strict byte 0000ch                ; 83 c2 0c
    63076321    mov bx, 00629h                            ; bb 29 06
    63086322    mov ax, si                                ; 89 f0
    6309     call 02f68h                               ; e8 44 f8
     6323    call 02f81h                               ; e8 2b f8
    63106324    mov dx, word [bp-006h]                    ; 8b 56 fa
    63116325    add dx, strict byte 0000eh                ; 83 c2 0e
    63126326    mov bx, 0c000h                            ; bb 00 c0
    63136327    mov ax, si                                ; 89 f0
    6314     call 02f68h                               ; e8 36 f8
     6328    call 02f81h                               ; e8 1d f8
    63156329    mov ax, strict word 0000bh                ; b8 0b 00
    63166330    mov dx, 001ceh                            ; ba ce 01
    6317     call 00570h                               ; e8 35 ce
     6331    call 00570h                               ; e8 03 ce
    63186332    mov dx, 001cfh                            ; ba cf 01
    6319     call 00577h                               ; e8 36 ce
     6333    call 00577h                               ; e8 04 ce
    63206334    mov dx, word [bp-006h]                    ; 8b 56 fa
    63216335    add dx, strict byte 0002ah                ; 83 c2 2a
    63226336    mov bx, ax                                ; 89 c3
    63236337    mov ax, si                                ; 89 f0
    6324     call 02f68h                               ; e8 1a f8
     6338    call 02f81h                               ; e8 01 f8
    63256339    mov ax, strict word 0004fh                ; b8 4f 00
    6326     jmp short 03756h                          ; eb 03
     6340    jmp short 03788h                          ; eb 03
    63276341    mov ax, 00100h                            ; b8 00 01
    63286342    push SS                                   ; 16
     
    63356349    pop bp                                    ; 5d
    63366350    retn                                      ; c3
    6337 vbe_biosfn_set_mode_:                        ; 0xc3765 LB 0xe9
     6351vbe_biosfn_set_mode_:                        ; 0xc3797 LB 0xe9
    63386352    push bp                                   ; 55
    63396353    mov bp, sp                                ; 89 e5
     
    63496363    mov ax, dx                                ; 89 d0
    63506364    test dx, dx                               ; 85 d2
    6351     je short 03785h                           ; 74 03
     6365    je short 037b7h                           ; 74 03
    63526366    mov dx, strict word 00040h                ; ba 40 00
    63536367    mov byte [bp-006h], dl                    ; 88 56 fa
    63546368    test byte [bp-009h], 080h                 ; f6 46 f7 80
    6355     je short 03793h                           ; 74 05
     6369    je short 037c5h                           ; 74 05
    63566370    mov dx, 00080h                            ; ba 80 00
    6357     jmp short 03795h                          ; eb 02
     6371    jmp short 037c7h                          ; eb 02
    63586372    xor dx, dx                                ; 31 d2
    63596373    mov byte [bp-008h], dl                    ; 88 56 f8
    63606374    and byte [bp-009h], 001h                  ; 80 66 f7 01
    63616375    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    6362     jnc short 037b5h                          ; 73 12
     6376    jnc short 037e7h                          ; 73 12
    63636377    xor ax, ax                                ; 31 c0
    6364     call 005ddh                               ; e8 35 ce
     6378    call 005ddh                               ; e8 03 ce
    63656379    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6366     call 00fdch                               ; e8 2d d8
     6380    call 00fdch                               ; e8 fb d7
    63676381    mov ax, strict word 0004fh                ; b8 4f 00
    6368     jmp near 03844h                           ; e9 8f 00
     6382    jmp near 03876h                           ; e9 8f 00
    63696383    mov dx, ax                                ; 89 c2
    63706384    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6371     call 0352fh                               ; e8 72 fd
     6385    call 03561h                               ; e8 72 fd
    63726386    mov bx, ax                                ; 89 c3
    63736387    test ax, ax                               ; 85 c0
    6374     je near 03841h                            ; 0f 84 7c 00
     6388    je near 03873h                            ; 0f 84 7c 00
    63756389    lea dx, [bx+014h]                         ; 8d 57 14
    63766390    mov ax, 003b6h                            ; b8 b6 03
    6377     call 034afh                               ; e8 e1 fc
     6391    call 034e1h                               ; e8 e1 fc
    63786392    mov cx, ax                                ; 89 c1
    63796393    lea dx, [bx+016h]                         ; 8d 57 16
    63806394    mov ax, 003b6h                            ; b8 b6 03
    6381     call 034afh                               ; e8 d6 fc
     6395    call 034e1h                               ; e8 d6 fc
    63826396    mov di, ax                                ; 89 c7
    63836397    lea dx, [bx+01bh]                         ; 8d 57 1b
    63846398    mov ax, 003b6h                            ; b8 b6 03
    6385     call 034c1h                               ; e8 dd fc
     6399    call 034f3h                               ; e8 dd fc
    63866400    mov bl, al                                ; 88 c3
    63876401    mov dl, al                                ; 88 c2
    63886402    xor ax, ax                                ; 31 c0
    6389     call 005ddh                               ; e8 f0 cd
     6403    call 005ddh                               ; e8 be cd
    63906404    cmp bl, 004h                              ; 80 fb 04
    6391     jne short 037f8h                          ; 75 06
     6405    jne short 0382ah                          ; 75 06
    63926406    mov ax, strict word 0006ah                ; b8 6a 00
    6393     call 00fdch                               ; e8 e4 d7
     6407    call 00fdch                               ; e8 b2 d7
    63946408    movzx ax, dl                              ; 0f b6 c2
    6395     call 03426h                               ; e8 28 fc
     6409    call 03458h                               ; e8 28 fc
    63966410    mov ax, cx                                ; 89 c8
    6397     call 033e8h                               ; e8 e5 fb
     6411    call 03401h                               ; e8 cc fb
    63986412    mov ax, di                                ; 89 f8
    6399     call 03407h                               ; e8 ff fb
     6413    call 03420h                               ; e8 e6 fb
    64006414    xor ax, ax                                ; 31 c0
    6401     call 00603h                               ; e8 f6 cd
     6415    call 00603h                               ; e8 c4 cd
    64026416    mov al, byte [bp-008h]                    ; 8a 46 f8
    64036417    or AL, strict byte 001h                   ; 0c 01
     
    64056419    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    64066420    or ax, dx                                 ; 09 d0
    6407     call 005ddh                               ; e8 bf cd
    6408     call 006d2h                               ; e8 b1 ce
     6421    call 005ddh                               ; e8 8d cd
     6422    call 006d2h                               ; e8 7f ce
    64096423    mov bx, word [bp-00ah]                    ; 8b 5e f6
    64106424    mov dx, 000bah                            ; ba ba 00
    64116425    mov ax, strict word 00040h                ; b8 40 00
    6412     call 02f68h                               ; e8 3b f7
     6426    call 02f81h                               ; e8 22 f7
    64136427    mov al, byte [bp-008h]                    ; 8a 46 f8
    64146428    or AL, strict byte 060h                   ; 0c 60
     
    64166430    mov dx, 00087h                            ; ba 87 00
    64176431    mov ax, strict word 00040h                ; b8 40 00
    6418     call 02f4ch                               ; e8 0e f7
    6419     jmp near 037afh                           ; e9 6e ff
     6432    call 02f65h                               ; e8 f5 f6
     6433    jmp near 037e1h                           ; e9 6e ff
    64206434    mov ax, 00100h                            ; b8 00 01
    64216435    mov word [ss:si], ax                      ; 36 89 04
     
    64256439    pop bp                                    ; 5d
    64266440    retn                                      ; c3
    6427 vbe_biosfn_read_video_state_size_:           ; 0xc384e LB 0x8
     6441vbe_biosfn_read_video_state_size_:           ; 0xc3880 LB 0x8
    64286442    push bp                                   ; 55
    64296443    mov bp, sp                                ; 89 e5
     
    64316445    pop bp                                    ; 5d
    64326446    retn                                      ; c3
    6433 vbe_biosfn_save_video_state_:                ; 0xc3856 LB 0x5b
     6447vbe_biosfn_save_video_state_:                ; 0xc3888 LB 0x5b
    64346448    push bp                                   ; 55
    64356449    mov bp, sp                                ; 89 e5
     
    64506464    mov dx, cx                                ; 89 ca
    64516465    mov ax, di                                ; 89 f8
    6452     call 02f68h                               ; e8 ef f6
     6466    call 02f81h                               ; e8 d6 f6
    64536467    inc cx                                    ; 41
    64546468    inc cx                                    ; 41
    64556469    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    6456     je short 038a8h                           ; 74 27
     6470    je short 038dah                           ; 74 27
    64576471    mov si, strict word 00001h                ; be 01 00
    6458     jmp short 0388bh                          ; eb 05
     6472    jmp short 038bdh                          ; eb 05
    64596473    cmp si, strict byte 00009h                ; 83 fe 09
    6460     jnbe short 038a8h                         ; 77 1d
     6474    jnbe short 038dah                         ; 77 1d
    64616475    cmp si, strict byte 00004h                ; 83 fe 04
    6462     je short 038a5h                           ; 74 15
     6476    je short 038d7h                           ; 74 15
    64636477    mov ax, si                                ; 89 f0
    64646478    mov dx, 001ceh                            ; ba ce 01
     
    64696483    mov dx, cx                                ; 89 ca
    64706484    mov ax, di                                ; 89 f8
    6471     call 02f68h                               ; e8 c5 f6
     6485    call 02f81h                               ; e8 ac f6
    64726486    inc cx                                    ; 41
    64736487    inc cx                                    ; 41
    64746488    inc si                                    ; 46
    6475     jmp short 03886h                          ; eb de
     6489    jmp short 038b8h                          ; eb de
    64766490    lea sp, [bp-008h]                         ; 8d 66 f8
    64776491    pop di                                    ; 5f
     
    64816495    pop bp                                    ; 5d
    64826496    retn                                      ; c3
    6483 vbe_biosfn_restore_video_state_:             ; 0xc38b1 LB 0x9b
     6497vbe_biosfn_restore_video_state_:             ; 0xc38e3 LB 0x9b
    64846498    push bp                                   ; 55
    64856499    mov bp, sp                                ; 89 e5
     
    64906504    mov cx, ax                                ; 89 c1
    64916505    mov bx, dx                                ; 89 d3
    6492     call 02f5ah                               ; e8 9b f6
     6506    call 02f73h                               ; e8 82 f6
    64936507    mov word [bp-008h], ax                    ; 89 46 f8
    64946508    inc bx                                    ; 43
    64956509    inc bx                                    ; 43
    64966510    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6497     jne short 038dah                          ; 75 10
     6511    jne short 0390ch                          ; 75 10
    64986512    mov ax, strict word 00004h                ; b8 04 00
    64996513    mov dx, 001ceh                            ; ba ce 01
     
    65026516    mov dx, 001cfh                            ; ba cf 01
    65036517    out DX, ax                                ; ef
    6504     jmp short 03944h                          ; eb 6a
     6518    jmp short 03976h                          ; eb 6a
    65056519    mov ax, strict word 00001h                ; b8 01 00
    65066520    mov dx, 001ceh                            ; ba ce 01
     
    65086522    mov dx, bx                                ; 89 da
    65096523    mov ax, cx                                ; 89 c8
    6510     call 02f5ah                               ; e8 72 f6
     6524    call 02f73h                               ; e8 59 f6
    65116525    mov dx, 001cfh                            ; ba cf 01
    65126526    out DX, ax                                ; ef
     
    65186532    mov dx, bx                                ; 89 da
    65196533    mov ax, cx                                ; 89 c8
    6520     call 02f5ah                               ; e8 5e f6
     6534    call 02f73h                               ; e8 45 f6
    65216535    mov dx, 001cfh                            ; ba cf 01
    65226536    out DX, ax                                ; ef
     
    65286542    mov dx, bx                                ; 89 da
    65296543    mov ax, cx                                ; 89 c8
    6530     call 02f5ah                               ; e8 4a f6
     6544    call 02f73h                               ; e8 31 f6
    65316545    mov dx, 001cfh                            ; ba cf 01
    65326546    out DX, ax                                ; ef
     
    65406554    out DX, ax                                ; ef
    65416555    mov si, strict word 00005h                ; be 05 00
    6542     jmp short 0392eh                          ; eb 05
     6556    jmp short 03960h                          ; eb 05
    65436557    cmp si, strict byte 00009h                ; 83 fe 09
    6544     jnbe short 03944h                         ; 77 16
     6558    jnbe short 03976h                         ; 77 16
    65456559    mov ax, si                                ; 89 f0
    65466560    mov dx, 001ceh                            ; ba ce 01
     
    65486562    mov dx, bx                                ; 89 da
    65496563    mov ax, cx                                ; 89 c8
    6550     call 02f5ah                               ; e8 1f f6
     6564    call 02f73h                               ; e8 06 f6
    65516565    mov dx, 001cfh                            ; ba cf 01
    65526566    out DX, ax                                ; ef
     
    65546568    inc bx                                    ; 43
    65556569    inc si                                    ; 46
    6556     jmp short 03929h                          ; eb e5
     6570    jmp short 0395bh                          ; eb e5
    65576571    lea sp, [bp-006h]                         ; 8d 66 fa
    65586572    pop si                                    ; 5e
     
    65616575    pop bp                                    ; 5d
    65626576    retn                                      ; c3
    6563 vbe_biosfn_save_restore_state_:              ; 0xc394c LB 0x8c
     6577vbe_biosfn_save_restore_state_:              ; 0xc397e LB 0x8c
    65646578    push bp                                   ; 55
    65656579    mov bp, sp                                ; 89 e5
     
    65746588    xor ah, ah                                ; 30 e4
    65756589    cmp ax, strict word 00002h                ; 3d 02 00
    6576     je short 039abh                           ; 74 45
     6590    je short 039ddh                           ; 74 45
    65776591    cmp ax, strict word 00001h                ; 3d 01 00
    6578     je short 0398fh                           ; 74 24
     6592    je short 039c1h                           ; 74 24
    65796593    test ax, ax                               ; 85 c0
    6580     jne short 039c7h                          ; 75 58
     6594    jne short 039f9h                          ; 75 58
    65816595    mov ax, word [bp-006h]                    ; 8b 46 fa
    6582     call 02853h                               ; e8 de ee
     6596    call 0286ch                               ; e8 c5 ee
    65836597    mov cx, ax                                ; 89 c1
    65846598    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6585     je short 03982h                           ; 74 05
    6586     call 0384eh                               ; e8 ce fe
     6599    je short 039b4h                           ; 74 05
     6600    call 03880h                               ; e8 ce fe
    65876601    add ax, cx                                ; 01 c8
    65886602    add ax, strict word 0003fh                ; 05 3f 00
     
    65916605    pop ES                                    ; 07
    65926606    mov word [es:bx], ax                      ; 26 89 07
    6593     jmp short 039cah                          ; eb 3b
     6607    jmp short 039fch                          ; eb 3b
    65946608    push SS                                   ; 16
    65956609    pop ES                                    ; 07
     
    65976611    mov dx, cx                                ; 89 ca
    65986612    mov ax, word [bp-006h]                    ; 8b 46 fa
    6599     call 02888h                               ; e8 ec ee
     6613    call 028a1h                               ; e8 d3 ee
    66006614    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6601     je short 039cah                           ; 74 28
     6615    je short 039fch                           ; 74 28
    66026616    mov dx, ax                                ; 89 c2
    66036617    mov ax, cx                                ; 89 c8
    6604     call 03856h                               ; e8 ad fe
    6605     jmp short 039cah                          ; eb 1f
     6618    call 03888h                               ; e8 ad fe
     6619    jmp short 039fch                          ; eb 1f
    66066620    push SS                                   ; 16
    66076621    pop ES                                    ; 07
     
    66096623    mov dx, cx                                ; 89 ca
    66106624    mov ax, word [bp-006h]                    ; 8b 46 fa
    6611     call 02bf1h                               ; e8 39 f2
     6625    call 02c0ah                               ; e8 20 f2
    66126626    test byte [bp-006h], 008h                 ; f6 46 fa 08
    6613     je short 039cah                           ; 74 0c
     6627    je short 039fch                           ; 74 0c
    66146628    mov dx, ax                                ; 89 c2
    66156629    mov ax, cx                                ; 89 c8
    6616     call 038b1h                               ; e8 ec fe
    6617     jmp short 039cah                          ; eb 03
     6630    call 038e3h                               ; e8 ec fe
     6631    jmp short 039fch                          ; eb 03
    66186632    mov di, 00100h                            ; bf 00 01
    66196633    push SS                                   ; 16
     
    66256639    pop bp                                    ; 5d
    66266640    retn 00002h                               ; c2 02 00
    6627 vbe_biosfn_get_set_scanline_length_:         ; 0xc39d8 LB 0xa9
     6641vbe_biosfn_get_set_scanline_length_:         ; 0xc3a0a LB 0xcf
    66286642    push bp                                   ; 55
    66296643    mov bp, sp                                ; 89 e5
    66306644    push si                                   ; 56
    66316645    push di                                   ; 57
    6632     sub sp, strict byte 00006h                ; 83 ec 06
    6633     push ax                                   ; 50
    6634     mov si, dx                                ; 89 d6
    6635     mov di, bx                                ; 89 df
     6646    sub sp, strict byte 00008h                ; 83 ec 08
     6647    push ax                                   ; 50
     6648    mov di, dx                                ; 89 d7
     6649    mov si, bx                                ; 89 de
    66366650    mov word [bp-008h], cx                    ; 89 4e f8
    6637     call 03445h                               ; e8 5a fa
    6638     mov cl, al                                ; 88 c1
     6651    call 03477h                               ; e8 5a fa
     6652    cmp AL, strict byte 00fh                  ; 3c 0f
     6653    jne short 03a26h                          ; 75 05
     6654    mov cx, strict word 00010h                ; b9 10 00
     6655    jmp short 03a29h                          ; eb 03
     6656    movzx cx, al                              ; 0f b6 c8
     6657    call 034afh                               ; e8 83 fa
     6658    mov word [bp-00ah], ax                    ; 89 46 f6
    66396659    mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
    66406660    push SS                                   ; 16
    66416661    pop ES                                    ; 07
    6642     mov bx, word [es:di]                      ; 26 8b 1d
    6643     mov al, byte [es:si]                      ; 26 8a 04
     6662    mov bx, word [es:si]                      ; 26 8b 1c
     6663    mov al, byte [es:di]                      ; 26 8a 05
    66446664    cmp AL, strict byte 002h                  ; 3c 02
    6645     je short 03a08h                           ; 74 0a
     6665    je short 03a4bh                           ; 74 0b
    66466666    cmp AL, strict byte 001h                  ; 3c 01
    6647     je short 03a2fh                           ; 74 2d
     6667    je short 03a72h                           ; 74 2e
    66486668    test al, al                               ; 84 c0
    6649     je short 03a2ah                           ; 74 24
    6650     jmp short 03a6ah                          ; eb 62
     6669    je short 03a6dh                           ; 74 25
     6670    jmp near 03ac2h                           ; e9 77 00
    66516671    cmp cl, 004h                              ; 80 f9 04
    6652     jne short 03a12h                          ; 75 05
     6672    jne short 03a55h                          ; 75 05
    66536673    sal bx, 003h                              ; c1 e3 03
    6654     jmp short 03a2ah                          ; eb 18
     6674    jmp short 03a6dh                          ; eb 18
    66556675    movzx ax, cl                              ; 0f b6 c1
    66566676    cwd                                       ; 99
     
    66596679    ; sbb ax, dx                                ; 1b c2
    66606680    sar ax, 003h                              ; c1 f8 03
    6661     mov word [bp-00ah], ax                    ; 89 46 f6
     6681    mov word [bp-00ch], ax                    ; 89 46 f4
    66626682    mov ax, bx                                ; 89 d8
    66636683    xor dx, dx                                ; 31 d2
    6664     div word [bp-00ah]                        ; f7 76 f6
     6684    div word [bp-00ch]                        ; f7 76 f4
    66656685    mov bx, ax                                ; 89 c3
    66666686    mov ax, bx                                ; 89 d8
    6667     call 0345eh                               ; e8 2f fa
    6668     call 0347dh                               ; e8 4b fa
     6687    call 03490h                               ; e8 1e fa
     6688    call 034afh                               ; e8 3a fa
    66696689    mov bx, ax                                ; 89 c3
    66706690    push SS                                   ; 16
    66716691    pop ES                                    ; 07
    6672     mov word [es:di], ax                      ; 26 89 05
     6692    mov word [es:si], ax                      ; 26 89 04
    66736693    cmp cl, 004h                              ; 80 f9 04
    6674     jne short 03a43h                          ; 75 05
     6694    jne short 03a86h                          ; 75 05
    66756695    shr bx, 003h                              ; c1 eb 03
    6676     jmp short 03a52h                          ; eb 0f
     6696    jmp short 03a95h                          ; eb 0f
    66776697    movzx ax, cl                              ; 0f b6 c1
    66786698    cwd                                       ; 99
     
    66866706    push SS                                   ; 16
    66876707    pop ES                                    ; 07
    6688     mov word [es:si], bx                      ; 26 89 1c
    6689     call 03496h                               ; e8 36 fa
     6708    mov word [es:di], bx                      ; 26 89 1d
     6709    call 034c8h                               ; e8 25 fa
    66906710    push SS                                   ; 16
    66916711    pop ES                                    ; 07
    66926712    mov bx, word [bp-008h]                    ; 8b 5e f8
    66936713    mov word [es:bx], ax                      ; 26 89 07
    6694     jmp short 03a6fh                          ; eb 05
     6714    call 0343fh                               ; e8 91 f9
     6715    push SS                                   ; 16
     6716    pop ES                                    ; 07
     6717    cmp ax, word [es:bx]                      ; 26 3b 07
     6718    jbe short 03ac7h                          ; 76 12
     6719    mov ax, word [bp-00ah]                    ; 8b 46 f6
     6720    call 03490h                               ; e8 d5 f9
     6721    mov word [bp-006h], 00200h                ; c7 46 fa 00 02
     6722    jmp short 03ac7h                          ; eb 05
    66956723    mov word [bp-006h], 00100h                ; c7 46 fa 00 01
    66966724    push SS                                   ; 16
    66976725    pop ES                                    ; 07
    66986726    mov ax, word [bp-006h]                    ; 8b 46 fa
    6699     mov bx, word [bp-00ch]                    ; 8b 5e f4
     6727    mov bx, word [bp-00eh]                    ; 8b 5e f2
    67006728    mov word [es:bx], ax                      ; 26 89 07
    67016729    lea sp, [bp-004h]                         ; 8d 66 fc
     
    67056733    retn                                      ; c3
    67066734
    6707   ; Padding 0x97f bytes at 0xc3a81
    6708   times 2431 db 0
     6735  ; Padding 0x927 bytes at 0xc3ad9
     6736  times 2343 db 0
    67096737
    67106738section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
     
    68386866  times 235 db 0
    68396867
    6840 section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
    6841 _msg_vga_init:                               ; 0xc4600 LB 0x2f
    6842     db  'Oracle VM VirtualBox Version 5.1.51 VGA BIOS', 00dh, 00ah, 000h
    6843 _vga_modes:                                  ; 0xc462f LB 0x80
     6868section _DATA progbits vstart=0x4600 align=1 ; size=0x3732 class=DATA group=DGROUP
     6869_msg_vga_init:                               ; 0xc4600 LB 0x34
     6870    db  'Oracle VM VirtualBox Version 5.2.0_BETA1 VGA BIOS', 00dh, 00ah, 000h
     6871_vga_modes:                                  ; 0xc4634 LB 0x80
    68446872    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
    68456873    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     
    68506878    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    68516879    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    6852 _line_to_vpti:                               ; 0xc46af LB 0x10
     6880_line_to_vpti:                               ; 0xc46b4 LB 0x10
    68536881    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
    6854 _dac_regs:                                   ; 0xc46bf LB 0x4
     6882_dac_regs:                                   ; 0xc46c4 LB 0x4
    68556883    dd  0ff3f3f3fh
    6856 _video_param_table:                          ; 0xc46c3 LB 0x780
     6884_video_param_table:                          ; 0xc46c8 LB 0x780
    68576885    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    68586886    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    69757003    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
    69767004    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
    6977 _palette0:                                   ; 0xc4e43 LB 0xc0
     7005_palette0:                                   ; 0xc4e48 LB 0xc0
    69787006    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    69797007    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
     
    69887016    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    69897017    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    6990 _palette1:                                   ; 0xc4f03 LB 0xc0
     7018_palette1:                                   ; 0xc4f08 LB 0xc0
    69917019    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    69927020    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
     
    70017029    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    70027030    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7003 _palette2:                                   ; 0xc4fc3 LB 0xc0
     7031_palette2:                                   ; 0xc4fc8 LB 0xc0
    70047032    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    70057033    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
     
    70147042    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    70157043    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7016 _palette3:                                   ; 0xc5083 LB 0x300
     7044_palette3:                                   ; 0xc5088 LB 0x300
    70177045    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    70187046    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
     
    70637091    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    70647092    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7065 _static_functionality:                       ; 0xc5383 LB 0x10
     7093_static_functionality:                       ; 0xc5388 LB 0x10
    70667094    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
    7067 _dcc_table:                                  ; 0xc5393 LB 0x24
     7095_dcc_table:                                  ; 0xc5398 LB 0x24
    70687096    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    70697097    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    70707098    db  000h, 000h, 000h, 000h
    7071 _secondary_save_area:                        ; 0xc53b7 LB 0x1a
    7072     db  01ah, 000h, 093h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7099_secondary_save_area:                        ; 0xc53bc LB 0x1a
     7100    db  01ah, 000h, 098h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    70737101    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7074 _video_save_pointer_table:                   ; 0xc53d1 LB 0x1c
    7075     db  0c3h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7076     db  0b7h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7077 _vgafont8:                                   ; 0xc53ed LB 0x800
     7102_video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
     7103    db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7104    db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7105_vgafont8:                                   ; 0xc53f2 LB 0x800
    70787106    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
    70797107    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
     
    72047232    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
    72057233    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7206 _vgafont14:                                  ; 0xc5bed LB 0xe00
     7234_vgafont14:                                  ; 0xc5bf2 LB 0xe00
    72077235    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    72087236    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
     
    74297457    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
    74307458    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7431 _vgafont16:                                  ; 0xc69ed LB 0x1000
     7459_vgafont16:                                  ; 0xc69f2 LB 0x1000
    74327460    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    74337461    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
     
    76867714    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
    76877715    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7688 _vgafont14alt:                               ; 0xc79ed LB 0x12d
     7716_vgafont14alt:                               ; 0xc79f2 LB 0x12d
    76897717    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
    76907718    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
     
    77067734    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
    77077735    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
    7708 _vgafont16alt:                               ; 0xc7b1a LB 0x144
     7736_vgafont16alt:                               ; 0xc7b1f LB 0x144
    77097737    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
    77107738    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
     
    77287756    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
    77297757    db  006h, 000h, 000h, 000h
    7730 _vbebios_copyright:                          ; 0xc7c5e LB 0x15
     7758_cga_msr:                                    ; 0xc7c63 LB 0x9
     7759    db  02ch, 028h, 02dh, 029h, 02ah, 02eh, 01eh, 029h, 000h
     7760_vbebios_copyright:                          ; 0xc7c6c LB 0x15
    77317761    db  'VirtualBox VESA BIOS', 000h
    7732 _vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
     7762_vbebios_vendor_name:                        ; 0xc7c81 LB 0x13
    77337763    db  'Oracle Corporation', 000h
    7734 _vbebios_product_name:                       ; 0xc7c86 LB 0x21
     7764_vbebios_product_name:                       ; 0xc7c94 LB 0x21
    77357765    db  'Oracle VM VirtualBox VBE Adapter', 000h
    7736 _vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
    7737     db  'Oracle VM VirtualBox Version 5.1.51', 000h
    7738 _vbebios_info_string:                        ; 0xc7ccb LB 0x2b
     7766_vbebios_product_revision:                   ; 0xc7cb5 LB 0x29
     7767    db  'Oracle VM VirtualBox Version 5.2.0_BETA1', 000h
     7768_vbebios_info_string:                        ; 0xc7cde LB 0x2b
    77397769    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
    7740 _no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
     7770_no_vbebios_info_string:                     ; 0xc7d09 LB 0x29
    77417771    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
    77427772
    7743   ; Padding 0x1 bytes at 0xc7d1f
    7744     db  001h
     7773section CONST progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
    77457774
    7746 section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
     7775section CONST2 progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
    77477776
    7748 section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
    7749 
    7750   ; Padding 0x2e0 bytes at 0xc7d20
    7751     db  000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh, 065h
    7752     db  02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh, 075h
    7753     db  074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h, 065h
    7754     db  06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
    7755     db  061h, 042h, 069h, 06fh, 073h, 033h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h, 061h
    7756     db  042h, 069h, 06fh, 073h, 033h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h
    7757     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7758     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7759     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7760     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7761     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7762     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7763     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7764     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7765     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7766     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7767     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7768     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7769     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7770     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7771     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7772     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7773     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7774     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7775     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7776     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7777     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7778     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7779     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7780     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7781     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7782     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7783     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7784     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7785     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7786     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7787     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7788     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7789     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7790     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7791     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7792     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7793     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7794     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7795     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7796     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
     7777  ; Padding 0x2ce bytes at 0xc7d32
     7778    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
     7779    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
     7780    db  075h, 074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h
     7781    db  065h, 06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h
     7782    db  067h, 061h, 042h, 069h, 06fh, 073h, 033h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
     7783    db  061h, 042h, 069h, 06fh, 073h, 033h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h
     7784    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7785    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7786    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7787    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7788    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7789    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7790    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7791    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7792    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7793    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7794    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7795    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7796    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7797    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7798    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7799    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7800    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7801    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7802    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7803    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7804    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7805    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7806    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7807    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7808    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7809    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7810    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7811    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7812    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7813    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7814    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7815    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7816    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7817    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7818    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7819    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7820    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7821    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7822    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 006h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum

    r67771 r68290  
    1 899b6314ed620084b02c8bad14876d3b *VBoxVgaBios386.rom
     13ff8aafec7c5f5aa639e6a9f5ff9d76d *VBoxVgaBios386.rom
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm

    r67771 r68290  
    257257    mov bx, 0c000h                            ; bb 00 c0
    258258    mov ds, bx                                ; 8e db
    259     call 0327bh                               ; e8 8c 31
     259    call 0329eh                               ; e8 af 31
    260260    pop di                                    ; 5f
    261261    pop si                                    ; 5e
     
    15131513  times 190 db 0
    15141514
    1515 section _TEXT progbits vstart=0xa00 align=1 ; size=0x3273 class=CODE group=AUTO
     1515section _TEXT progbits vstart=0xa00 align=1 ; size=0x32df class=CODE group=AUTO
    15161516set_int_vector_:                             ; 0xc0a00 LB 0x1c
    15171517    push bx                                   ; 53
     
    15701570    call 00a1ch                               ; e8 ab ff
    15711571    call 00a38h                               ; e8 c4 ff
    1572     call 036deh                               ; e8 67 2c
     1572    call 0371ah                               ; e8 a3 2c
    15731573    mov dx, strict word 00022h                ; ba 22 00
    15741574    mov ax, strict word 00010h                ; b8 10 00
     
    15981598    mov dx, strict word 00060h                ; ba 60 00
    15991599    mov ax, strict word 00040h                ; b8 40 00
    1600     call 031b7h                               ; e8 07 27
     1600    call 031dah                               ; e8 2a 27
    16011601    push SS                                   ; 16
    16021602    pop ES                                    ; 07
     
    16081608    add dx, strict byte 00050h                ; 83 c2 50
    16091609    mov ax, strict word 00040h                ; b8 40 00
    1610     call 031b7h                               ; e8 f1 26
     1610    call 031dah                               ; e8 14 27
    16111611    push SS                                   ; 16
    16121612    pop ES                                    ; 07
     
    16291629    mov dx, strict word 00049h                ; ba 49 00
    16301630    mov ax, strict word 00040h                ; b8 40 00
    1631     call 0319bh                               ; e8 b2 26
    1632     xor ah, ah                                ; 30 e4
    1633     call 03170h                               ; e8 82 26
     1631    call 031beh                               ; e8 d5 26
     1632    xor ah, ah                                ; 30 e4
     1633    call 03193h                               ; e8 a5 26
    16341634    mov cl, al                                ; 88 c1
    16351635    cmp AL, strict byte 0ffh                  ; 3c ff
     
    16481648    mov dx, 00084h                            ; ba 84 00
    16491649    mov ax, strict word 00040h                ; b8 40 00
    1650     call 0319bh                               ; e8 81 26
     1650    call 031beh                               ; e8 a4 26
    16511651    xor ah, ah                                ; 30 e4
    16521652    inc ax                                    ; 40
     
    16541654    mov dx, strict word 0004ah                ; ba 4a 00
    16551655    mov ax, strict word 00040h                ; b8 40 00
    1656     call 031b7h                               ; e8 8e 26
     1656    call 031dah                               ; e8 b1 26
    16571657    mov di, ax                                ; 89 c7
    16581658    mov bl, cl                                ; 88 cb
     
    16601660    mov CL, strict byte 003h                  ; b1 03
    16611661    sal bx, CL                                ; d3 e3
    1662     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
     1662    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    16631663    jne short 00b68h                          ; 75 2e
    16641664    mul word [bp-00ch]                        ; f7 66 f4
     
    16791679    sal dx, 1                                 ; d1 e2
    16801680    add dx, cx                                ; 01 ca
    1681     mov ax, word [bx+04633h]                  ; 8b 87 33 46
    1682     call 031b7h                               ; e8 52 26
     1681    mov ax, word [bx+04638h]                  ; 8b 87 38 46
     1682    call 031dah                               ; e8 75 26
    16831683    mov word [ss:si], ax                      ; 36 89 04
    16841684    lea sp, [bp-008h]                         ; 8d 66 f8
     
    17181718    mov dx, strict word 0007ch                ; ba 7c 00
    17191719    xor ax, ax                                ; 31 c0
    1720     call 031d3h                               ; e8 35 26
     1720    call 031f6h                               ; e8 58 26
    17211721    push SS                                   ; 16
    17221722    pop ES                                    ; 07
     
    17251725    mov dx, 00085h                            ; ba 85 00
    17261726    mov ax, strict word 00040h                ; b8 40 00
    1727     call 0319bh                               ; e8 ec 25
     1727    call 031beh                               ; e8 0f 26
    17281728    xor ah, ah                                ; 30 e4
    17291729    push SS                                   ; 16
     
    17331733    mov dx, 00084h                            ; ba 84 00
    17341734    mov ax, strict word 00040h                ; b8 40 00
    1735     call 0319bh                               ; e8 da 25
     1735    call 031beh                               ; e8 fd 25
    17361736    xor ah, ah                                ; 30 e4
    17371737    push SS                                   ; 16
     
    17461746    mov dx, 0010ch                            ; ba 0c 01
    17471747    jmp short 00b99h                          ; eb c0
    1748     mov ax, 05bedh                            ; b8 ed 5b
     1748    mov ax, 05bf2h                            ; b8 f2 5b
    17491749    mov dx, 0c000h                            ; ba 00 c0
    17501750    jmp short 00b9eh                          ; eb bd
    1751     mov ax, 053edh                            ; b8 ed 53
     1751    mov ax, 053f2h                            ; b8 f2 53
    17521752    jmp short 00bdch                          ; eb f6
    1753     mov ax, 057edh                            ; b8 ed 57
     1753    mov ax, 057f2h                            ; b8 f2 57
    17541754    jmp short 00bdch                          ; eb f1
    1755     mov ax, 079edh                            ; b8 ed 79
     1755    mov ax, 079f2h                            ; b8 f2 79
    17561756    jmp short 00bdch                          ; eb ec
    1757     mov ax, 069edh                            ; b8 ed 69
     1757    mov ax, 069f2h                            ; b8 f2 69
    17581758    jmp short 00bdch                          ; eb e7
    1759     mov ax, 07b1ah                            ; b8 1a 7b
     1759    mov ax, 07b1fh                            ; b8 1f 7b
    17601760    jmp short 00bdch                          ; eb e2
    17611761    jmp short 00bcbh                          ; eb cf
     
    17711771    mov dx, strict word 00049h                ; ba 49 00
    17721772    mov ax, strict word 00040h                ; b8 40 00
    1773     call 0319bh                               ; e8 87 25
    1774     xor ah, ah                                ; 30 e4
    1775     call 03170h                               ; e8 57 25
     1773    call 031beh                               ; e8 aa 25
     1774    xor ah, ah                                ; 30 e4
     1775    call 03193h                               ; e8 7a 25
    17761776    mov ch, al                                ; 88 c5
    17771777    cmp AL, strict byte 0ffh                  ; 3c ff
     
    17811781    mov CL, strict byte 003h                  ; b1 03
    17821782    sal bx, CL                                ; d3 e3
    1783     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
     1783    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    17841784    jne short 00c31h                          ; 75 03
    17851785    jmp near 00d38h                           ; e9 07 01
    1786     mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
     1786    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
    17871787    cmp bl, cl                                ; 38 cb
    17881788    jc short 00c48h                           ; 72 0f
     
    17981798    mov dx, strict word 0004ah                ; ba 4a 00
    17991799    mov ax, strict word 00040h                ; b8 40 00
    1800     call 031b7h                               ; e8 5e 25
     1800    call 031dah                               ; e8 81 25
    18011801    mov bx, ax                                ; 89 c3
    18021802    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    18221822    mov dx, bx                                ; 89 da
    18231823    mov ax, 0a000h                            ; b8 00 a0
    1824     call 0319bh                               ; e8 08 25
     1824    call 031beh                               ; e8 2b 25
    18251825    and al, byte [bp-008h]                    ; 22 46 f8
    18261826    test al, al                               ; 84 c0
     
    18471847    mov dx, bx                                ; 89 da
    18481848    mov ax, 0b800h                            ; b8 00 b8
    1849     call 0319bh                               ; e8 cb 24
     1849    call 031beh                               ; e8 ee 24
    18501850    mov bl, ch                                ; 88 eb
    18511851    xor bh, bh                                ; 30 ff
    18521852    mov CL, strict byte 003h                  ; b1 03
    18531853    sal bx, CL                                ; d3 e3
    1854     cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
     1854    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
    18551855    jne short 00cfah                          ; 75 1b
    18561856    mov cx, si                                ; 89 f1
     
    18791879    mov dx, strict word 0004ah                ; ba 4a 00
    18801880    mov ax, strict word 00040h                ; b8 40 00
    1881     call 031b7h                               ; e8 9b 24
     1881    call 031dah                               ; e8 be 24
    18821882    mov bx, ax                                ; 89 c3
    18831883    sal bx, CL                                ; d3 e3
     
    18871887    add dx, ax                                ; 01 c2
    18881888    mov ax, 0a000h                            ; b8 00 a0
    1889     call 0319bh                               ; e8 6c 24
     1889    call 031beh                               ; e8 8f 24
    18901890    mov ch, al                                ; 88 c5
    18911891    jmp short 00d35h                          ; eb 02
     
    20092009    mov dx, strict word 00060h                ; ba 60 00
    20102010    mov ax, strict word 00040h                ; b8 40 00
    2011     call 031c5h                               ; e8 b8 23
     2011    call 031e8h                               ; e8 db 23
    20122012    mov dx, 00089h                            ; ba 89 00
    20132013    mov ax, strict word 00040h                ; b8 40 00
    2014     call 0319bh                               ; e8 85 23
     2014    call 031beh                               ; e8 a8 23
    20152015    mov cl, al                                ; 88 c1
    20162016    mov dx, 00085h                            ; ba 85 00
    20172017    mov ax, strict word 00040h                ; b8 40 00
    2018     call 031b7h                               ; e8 96 23
     2018    call 031dah                               ; e8 b9 23
    20192019    mov bx, ax                                ; 89 c3
    20202020    mov di, ax                                ; 89 c7
     
    20532053    mov dx, strict word 00063h                ; ba 63 00
    20542054    mov ax, strict word 00040h                ; b8 40 00
    2055     call 031b7h                               ; e8 49 23
     2055    call 031dah                               ; e8 6c 23
    20562056    mov bx, ax                                ; 89 c3
    20572057    mov AL, strict byte 00ah                  ; b0 0a
     
    20932093    mov bx, cx                                ; 89 cb
    20942094    mov ax, strict word 00040h                ; b8 40 00
    2095     call 031c5h                               ; e8 10 23
     2095    call 031e8h                               ; e8 33 23
    20962096    mov dx, strict word 00062h                ; ba 62 00
    20972097    mov ax, strict word 00040h                ; b8 40 00
    2098     call 0319bh                               ; e8 dd 22
     2098    call 031beh                               ; e8 00 23
    20992099    cmp al, byte [bp-008h]                    ; 3a 46 f8
    21002100    jne short 00f2ch                          ; 75 69
    21012101    mov dx, strict word 0004ah                ; ba 4a 00
    21022102    mov ax, strict word 00040h                ; b8 40 00
    2103     call 031b7h                               ; e8 eb 22
     2103    call 031dah                               ; e8 0e 23
    21042104    mov bx, ax                                ; 89 c3
    21052105    mov dx, 00084h                            ; ba 84 00
    21062106    mov ax, strict word 00040h                ; b8 40 00
    2107     call 0319bh                               ; e8 c4 22
     2107    call 031beh                               ; e8 e7 22
    21082108    xor ah, ah                                ; 30 e4
    21092109    mov dx, ax                                ; 89 c2
     
    21292129    mov dx, strict word 00063h                ; ba 63 00
    21302130    mov ax, strict word 00040h                ; b8 40 00
    2131     call 031b7h                               ; e8 ae 22
     2131    call 031dah                               ; e8 d1 22
    21322132    mov bx, ax                                ; 89 c3
    21332133    mov AL, strict byte 00eh                  ; b0 0e
     
    21692169    mov dx, strict word 00049h                ; ba 49 00
    21702170    mov ax, strict word 00040h                ; b8 40 00
    2171     call 0319bh                               ; e8 4e 22
    2172     xor ah, ah                                ; 30 e4
    2173     call 03170h                               ; e8 1e 22
     2171    call 031beh                               ; e8 71 22
     2172    xor ah, ah                                ; 30 e4
     2173    call 03193h                               ; e8 41 22
    21742174    mov cl, al                                ; 88 c1
    21752175    cmp AL, strict byte 0ffh                  ; 3c ff
     
    21862186    mov si, bx                                ; 89 de
    21872187    sal si, CL                                ; d3 e6
    2188     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
     2188    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
    21892189    jne short 00fc0h                          ; 75 47
    21902190    mov dx, strict word 0004ah                ; ba 4a 00
    21912191    mov ax, strict word 00040h                ; b8 40 00
    2192     call 031b7h                               ; e8 35 22
     2192    call 031dah                               ; e8 58 22
    21932193    mov bx, ax                                ; 89 c3
    21942194    mov dx, 00084h                            ; ba 84 00
    21952195    mov ax, strict word 00040h                ; b8 40 00
    2196     call 0319bh                               ; e8 0e 22
     2196    call 031beh                               ; e8 31 22
    21972197    xor ah, ah                                ; 30 e4
    21982198    mov dx, ax                                ; 89 c2
     
    22132213    mov dx, strict word 0004eh                ; ba 4e 00
    22142214    mov ax, strict word 00040h                ; b8 40 00
    2215     call 031c5h                               ; e8 10 22
     2215    call 031e8h                               ; e8 33 22
    22162216    or si, 000ffh                             ; 81 ce ff 00
    22172217    lea ax, [si+001h]                         ; 8d 44 01
    22182218    mul di                                    ; f7 e7
    22192219    jmp short 00fd0h                          ; eb 10
    2220     mov bl, byte [bx+046afh]                  ; 8a 9f af 46
     2220    mov bl, byte [bx+046b4h]                  ; 8a 9f b4 46
    22212221    mov CL, strict byte 006h                  ; b1 06
    22222222    sal bx, CL                                ; d3 e3
    22232223    mov al, ch                                ; 88 e8
    22242224    xor ah, ah                                ; 30 e4
    2225     mul word [bx+046c6h]                      ; f7 a7 c6 46
     2225    mul word [bx+046cbh]                      ; f7 a7 cb 46
    22262226    mov bx, ax                                ; 89 c3
    22272227    mov dx, strict word 00063h                ; ba 63 00
    22282228    mov ax, strict word 00040h                ; b8 40 00
    2229     call 031b7h                               ; e8 dc 21
     2229    call 031dah                               ; e8 ff 21
    22302230    mov si, ax                                ; 89 c6
    22312231    mov AL, strict byte 00ch                  ; b0 0c
     
    22492249    mov dx, strict word 00062h                ; ba 62 00
    22502250    mov ax, strict word 00040h                ; b8 40 00
    2251     call 031a9h                               ; e8 a2 21
     2251    call 031cch                               ; e8 c5 21
    22522252    mov dx, word [bp-00eh]                    ; 8b 56 f2
    22532253    mov ax, si                                ; 89 f0
     
    22612261    pop bp                                    ; 5d
    22622262    retn                                      ; c3
    2263 biosfn_set_video_mode_:                      ; 0xc1019 LB 0x3c7
     2263biosfn_set_video_mode_:                      ; 0xc1019 LB 0x3ea
    22642264    push bp                                   ; 55
    22652265    mov bp, sp                                ; 89 e5
     
    22692269    push si                                   ; 56
    22702270    push di                                   ; 57
    2271     sub sp, strict byte 00012h                ; 83 ec 12
     2271    sub sp, strict byte 00014h                ; 83 ec 14
    22722272    mov byte [bp-00ch], al                    ; 88 46 f4
    22732273    and AL, strict byte 080h                  ; 24 80
     
    22882288    mov al, byte [bp-00ch]                    ; 8a 46 f4
    22892289    xor ah, ah                                ; 30 e4
    2290     call 03170h                               ; e8 1b 21
     2290    call 03193h                               ; e8 3e 21
    22912291    mov byte [bp-010h], al                    ; 88 46 f0
    22922292    cmp AL, strict byte 0ffh                  ; 3c ff
    22932293    jne short 0105fh                          ; 75 03
    2294     jmp near 013d6h                           ; e9 77 03
     2294    jmp near 013f9h                           ; e9 9a 03
    22952295    mov byte [bp-014h], al                    ; 88 46 ec
    22962296    mov byte [bp-013h], 000h                  ; c6 46 ed 00
    22972297    mov bx, word [bp-014h]                    ; 8b 5e ec
    2298     mov al, byte [bx+046afh]                  ; 8a 87 af 46
     2298    mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
    22992299    mov byte [bp-00eh], al                    ; 88 46 f2
    23002300    mov bl, al                                ; 88 c3
     
    23022302    mov CL, strict byte 006h                  ; b1 06
    23032303    sal bx, CL                                ; d3 e3
    2304     mov al, byte [bx+046c3h]                  ; 8a 87 c3 46
     2304    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
    23052305    xor ah, ah                                ; 30 e4
    23062306    mov word [bp-016h], ax                    ; 89 46 ea
    2307     mov al, byte [bx+046c4h]                  ; 8a 87 c4 46
     2307    mov al, byte [bx+046c9h]                  ; 8a 87 c9 46
     2308    mov word [bp-01ch], ax                    ; 89 46 e4
     2309    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    23082310    mov word [bp-018h], ax                    ; 89 46 e8
    2309     mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
    2310     mov word [bp-01ah], ax                    ; 89 46 e6
    23112311    mov dx, 00087h                            ; ba 87 00
    23122312    mov ax, strict word 00040h                ; b8 40 00
    2313     call 0319bh                               ; e8 03 21
     2313    call 031beh                               ; e8 26 21
    23142314    mov dx, 00088h                            ; ba 88 00
    23152315    mov ax, strict word 00040h                ; b8 40 00
    2316     call 0319bh                               ; e8 fa 20
     2316    call 031beh                               ; e8 1d 21
    23172317    mov dx, 00089h                            ; ba 89 00
    23182318    mov ax, strict word 00040h                ; b8 40 00
    2319     call 0319bh                               ; e8 f1 20
     2319    call 031beh                               ; e8 14 21
    23202320    mov ch, al                                ; 88 c5
    23212321    test AL, strict byte 008h                 ; a8 08
     
    23242324    mov bx, word [bp-014h]                    ; 8b 5e ec
    23252325    sal bx, CL                                ; d3 e3
    2326     mov al, byte [bx+04635h]                  ; 8a 87 35 46
     2326    mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
    23272327    mov dx, 003c6h                            ; ba c6 03
    23282328    out DX, AL                                ; ee
     
    23302330    mov dx, 003c8h                            ; ba c8 03
    23312331    out DX, AL                                ; ee
    2332     mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     2332    mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
    23332333    cmp bl, 001h                              ; 80 fb 01
    23342334    jc short 010dbh                           ; 72 0d
     
    23412341    test bl, bl                               ; 84 db
    23422342    jne short 010f1h                          ; 75 12
    2343     mov di, 04e43h                            ; bf 43 4e
     2343    mov di, 04e48h                            ; bf 48 4e
    23442344    jmp short 010f1h                          ; eb 0d
    2345     mov di, 04f03h                            ; bf 03 4f
     2345    mov di, 04f08h                            ; bf 08 4f
    23462346    jmp short 010f1h                          ; eb 08
    2347     mov di, 04fc3h                            ; bf c3 4f
     2347    mov di, 04fc8h                            ; bf c8 4f
    23482348    jmp short 010f1h                          ; eb 03
    2349     mov di, 05083h                            ; bf 83 50
     2349    mov di, 05088h                            ; bf 88 50
    23502350    xor bx, bx                                ; 31 db
    23512351    jmp short 010fdh                          ; eb 08
     
    23582358    mov si, ax                                ; 89 c6
    23592359    sal si, CL                                ; d3 e6
    2360     mov al, byte [si+04636h]                  ; 8a 84 36 46
     2360    mov al, byte [si+0463bh]                  ; 8a 84 3b 46
    23612361    mov si, ax                                ; 89 c6
    2362     mov al, byte [si+046bfh]                  ; 8a 84 bf 46
     2362    mov al, byte [si+046c4h]                  ; 8a 84 c4 46
    23632363    cmp bx, ax                                ; 39 c3
    23642364    jnbe short 01131h                         ; 77 1b
     
    24052405    sal si, CL                                ; d3 e6
    24062406    add si, bx                                ; 01 de
    2407     mov al, byte [si+046e6h]                  ; 8a 84 e6 46
     2407    mov al, byte [si+046ebh]                  ; 8a 84 eb 46
    24082408    out DX, AL                                ; ee
    24092409    inc bx                                    ; 43
     
    24322432    sal si, CL                                ; d3 e6
    24332433    add si, bx                                ; 01 de
    2434     mov al, byte [si+046c7h]                  ; 8a 84 c7 46
     2434    mov al, byte [si+046cch]                  ; 8a 84 cc 46
    24352435    mov dx, 003c5h                            ; ba c5 03
    24362436    out DX, AL                                ; ee
     
    24502450    sal si, CL                                ; d3 e6
    24512451    add si, bx                                ; 01 de
    2452     mov al, byte [si+046fah]                  ; 8a 84 fa 46
     2452    mov al, byte [si+046ffh]                  ; 8a 84 ff 46
    24532453    mov dx, 003cfh                            ; ba cf 03
    24542454    out DX, AL                                ; ee
     
    24592459    mov CL, strict byte 003h                  ; b1 03
    24602460    sal bx, CL                                ; d3 e3
    2461     cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
     2461    cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
    24622462    jne short 011eah                          ; 75 05
    24632463    mov dx, 003b4h                            ; ba b4 03
     
    24822482    add di, bx                                ; 01 df
    24832483    lea dx, [si+001h]                         ; 8d 54 01
    2484     mov al, byte [di+046cdh]                  ; 8a 85 cd 46
     2484    mov al, byte [di+046d2h]                  ; 8a 85 d2 46
    24852485    out DX, AL                                ; ee
    24862486    inc bx                                    ; 43
    24872487    jmp short 011f7h                          ; eb dc
    24882488    mov bx, cx                                ; 89 cb
    2489     mov al, byte [bx+046cch]                  ; 8a 87 cc 46
     2489    mov al, byte [bx+046d1h]                  ; 8a 87 d1 46
    24902490    mov dx, 003c2h                            ; ba c2 03
    24912491    out DX, AL                                ; ee
     
    25032503    mov CL, strict byte 003h                  ; b1 03
    25042504    sal bx, CL                                ; d3 e3
    2505     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
     2505    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
    25062506    jne short 0125ah                          ; 75 13
    2507     mov es, [bx+04633h]                       ; 8e 87 33 46
     2507    mov es, [bx+04638h]                       ; 8e 87 38 46
    25082508    mov cx, 04000h                            ; b9 00 40
    25092509    mov ax, 00720h                            ; b8 20 07
     
    25152515    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
    25162516    jnc short 01272h                          ; 73 12
    2517     mov es, [bx+04633h]                       ; 8e 87 33 46
     2517    mov es, [bx+04638h]                       ; 8e 87 38 46
    25182518    mov cx, 04000h                            ; b9 00 40
    25192519    xor ax, ax                                ; 31 c0
     
    25302530    db  02ah, 0e4h
    25312531    ; sub ah, ah                                ; 2a e4
    2532     mov word [bp-01ch], ax                    ; 89 46 e4
     2532    mov word [bp-01eh], ax                    ; 89 46 e2
    25332533    mov AL, strict byte 00fh                  ; b0 0f
    25342534    out DX, AL                                ; ee
    2535     mov es, [bx+04633h]                       ; 8e 87 33 46
     2535    mov es, [bx+04638h]                       ; 8e 87 38 46
    25362536    mov cx, 08000h                            ; b9 00 80
    25372537    xor ax, ax                                ; 31 c0
     
    25402540    jcxz 01294h                               ; e3 02
    25412541    rep stosw                                 ; f3 ab
    2542     mov al, byte [bp-01ch]                    ; 8a 46 e4
    2543     out DX, AL                                ; ee
    2544     mov bl, byte [bp-00ch]                    ; 8a 5e f4
    2545     xor bh, bh                                ; 30 ff
     2542    mov al, byte [bp-01eh]                    ; 8a 46 e2
     2543    out DX, AL                                ; ee
     2544    mov al, byte [bp-00ch]                    ; 8a 46 f4
     2545    mov byte [bp-01ah], al                    ; 88 46 e6
     2546    mov byte [bp-019h], 000h                  ; c6 46 e7 00
     2547    mov bx, word [bp-01ah]                    ; 8b 5e e6
    25462548    mov dx, strict word 00049h                ; ba 49 00
    25472549    mov ax, strict word 00040h                ; b8 40 00
    2548     call 031a9h                               ; e8 03 1f
     2550    call 031cch                               ; e8 1e 1f
    25492551    mov bx, word [bp-016h]                    ; 8b 5e ea
    25502552    mov dx, strict word 0004ah                ; ba 4a 00
    25512553    mov ax, strict word 00040h                ; b8 40 00
    2552     call 031c5h                               ; e8 13 1f
     2554    call 031e8h                               ; e8 2e 1f
    25532555    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    25542556    xor bh, bh                                ; 30 ff
    25552557    mov CL, strict byte 006h                  ; b1 06
    25562558    sal bx, CL                                ; d3 e3
    2557     mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
     2559    mov bx, word [bx+046cbh]                  ; 8b 9f cb 46
    25582560    mov dx, strict word 0004ch                ; ba 4c 00
    25592561    mov ax, strict word 00040h                ; b8 40 00
    2560     call 031c5h                               ; e8 fd 1e
     2562    call 031e8h                               ; e8 18 1f
    25612563    mov bx, si                                ; 89 f3
    25622564    mov dx, strict word 00063h                ; ba 63 00
    25632565    mov ax, strict word 00040h                ; b8 40 00
    2564     call 031c5h                               ; e8 f2 1e
    2565     mov bl, byte [bp-018h]                    ; 8a 5e e8
     2566    call 031e8h                               ; e8 0d 1f
     2567    mov bl, byte [bp-01ch]                    ; 8a 5e e4
    25662568    xor bh, bh                                ; 30 ff
    25672569    mov dx, 00084h                            ; ba 84 00
    25682570    mov ax, strict word 00040h                ; b8 40 00
    2569     call 031a9h                               ; e8 c8 1e
    2570     mov bx, word [bp-01ah]                    ; 8b 5e e6
     2571    call 031cch                               ; e8 e3 1e
     2572    mov bx, word [bp-018h]                    ; 8b 5e e8
    25712573    mov dx, 00085h                            ; ba 85 00
    25722574    mov ax, strict word 00040h                ; b8 40 00
    2573     call 031c5h                               ; e8 d8 1e
     2575    call 031e8h                               ; e8 f3 1e
    25742576    mov bl, byte [bp-012h]                    ; 8a 5e ee
    25752577    or bl, 060h                               ; 80 cb 60
     
    25772579    mov dx, 00087h                            ; ba 87 00
    25782580    mov ax, strict word 00040h                ; b8 40 00
    2579     call 031a9h                               ; e8 ab 1e
     2581    call 031cch                               ; e8 c6 1e
    25802582    mov bx, 000f9h                            ; bb f9 00
    25812583    mov dx, 00088h                            ; ba 88 00
    25822584    mov ax, strict word 00040h                ; b8 40 00
    2583     call 031a9h                               ; e8 9f 1e
     2585    call 031cch                               ; e8 ba 1e
    25842586    mov dx, 00089h                            ; ba 89 00
    25852587    mov ax, strict word 00040h                ; b8 40 00
    2586     call 0319bh                               ; e8 88 1e
     2588    call 031beh                               ; e8 a3 1e
    25872589    mov bl, al                                ; 88 c3
    25882590    and bl, 07fh                              ; 80 e3 7f
     
    25902592    mov dx, 00089h                            ; ba 89 00
    25912593    mov ax, strict word 00040h                ; b8 40 00
    2592     call 031a9h                               ; e8 86 1e
     2594    call 031cch                               ; e8 a1 1e
    25932595    mov bx, strict word 00008h                ; bb 08 00
    25942596    mov dx, 0008ah                            ; ba 8a 00
    25952597    mov ax, strict word 00040h                ; b8 40 00
    2596     call 031a9h                               ; e8 7a 1e
     2598    call 031cch                               ; e8 95 1e
    25972599    mov cx, ds                                ; 8c d9
    2598     mov bx, 053d1h                            ; bb d1 53
     2600    mov bx, 053d6h                            ; bb d6 53
    25992601    mov dx, 000a8h                            ; ba a8 00
    26002602    mov ax, strict word 00040h                ; b8 40 00
    2601     call 031e5h                               ; e8 a8 1e
    2602     xor bx, bx                                ; 31 db
     2603    call 03208h                               ; e8 c3 1e
     2604    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
     2605    jnbe short 01376h                         ; 77 2b
     2606    mov bx, word [bp-01ah]                    ; 8b 5e e6
     2607    mov bl, byte [bx+07c63h]                  ; 8a 9f 63 7c
     2608    xor bh, bh                                ; 30 ff
    26032609    mov dx, strict word 00065h                ; ba 65 00
    26042610    mov ax, strict word 00040h                ; b8 40 00
    2605     call 031a9h                               ; e8 61 1e
    2606     xor bx, bx                                ; 31 db
     2611    call 031cch                               ; e8 6f 1e
     2612    cmp byte [bp-00ch], 006h                  ; 80 7e f4 06
     2613    jne short 01368h                          ; 75 05
     2614    mov bx, strict word 0003fh                ; bb 3f 00
     2615    jmp short 0136bh                          ; eb 03
     2616    mov bx, strict word 00030h                ; bb 30 00
     2617    xor bh, bh                                ; 30 ff
    26072618    mov dx, strict word 00066h                ; ba 66 00
    26082619    mov ax, strict word 00040h                ; b8 40 00
    2609     call 031a9h                               ; e8 56 1e
     2620    call 031cch                               ; e8 56 1e
    26102621    mov bl, byte [bp-010h]                    ; 8a 5e f0
    26112622    xor bh, bh                                ; 30 ff
    26122623    mov CL, strict byte 003h                  ; b1 03
    26132624    sal bx, CL                                ; d3 e3
    2614     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    2615     jne short 0136ch                          ; 75 09
     2625    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2626    jne short 0138fh                          ; 75 09
    26162627    mov dx, strict word 00007h                ; ba 07 00
    26172628    mov ax, strict word 00006h                ; b8 06 00
    2618     call 00ddeh                               ; e8 72 fa
     2629    call 00ddeh                               ; e8 4f fa
    26192630    xor bx, bx                                ; 31 db
    2620     jmp short 01375h                          ; eb 05
     2631    jmp short 01398h                          ; eb 05
    26212632    cmp bx, strict byte 00008h                ; 83 fb 08
    2622     jnc short 01381h                          ; 73 0c
     2633    jnc short 013a4h                          ; 73 0c
    26232634    mov al, bl                                ; 88 d8
    26242635    xor ah, ah                                ; 30 e4
    26252636    xor dx, dx                                ; 31 d2
    2626     call 00e91h                               ; e8 13 fb
     2637    call 00e91h                               ; e8 f0 fa
    26272638    inc bx                                    ; 43
    2628     jmp short 01370h                          ; eb ef
     2639    jmp short 01393h                          ; eb ef
    26292640    xor ax, ax                                ; 31 c0
    2630     call 00f34h                               ; e8 ae fb
     2641    call 00f34h                               ; e8 8b fb
    26312642    mov bl, byte [bp-010h]                    ; 8a 5e f0
    26322643    xor bh, bh                                ; 30 ff
    26332644    mov CL, strict byte 003h                  ; b1 03
    26342645    sal bx, CL                                ; d3 e3
    2635     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    2636     jne short 013a6h                          ; 75 10
     2646    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     2647    jne short 013c9h                          ; 75 10
    26372648    xor bl, bl                                ; 30 db
    26382649    mov AL, strict byte 004h                  ; b0 04
     
    26432654    mov AH, strict byte 011h                  ; b4 11
    26442655    int 010h                                  ; cd 10
    2645     mov dx, 057edh                            ; ba ed 57
     2656    mov dx, 057f2h                            ; ba f2 57
    26462657    mov ax, strict word 0001fh                ; b8 1f 00
    2647     call 00a00h                               ; e8 51 f6
    2648     mov ax, word [bp-01ah]                    ; 8b 46 e6
     2658    call 00a00h                               ; e8 2e f6
     2659    mov ax, word [bp-018h]                    ; 8b 46 e8
    26492660    cmp ax, strict word 00010h                ; 3d 10 00
    2650     je short 013d1h                           ; 74 1a
     2661    je short 013f4h                           ; 74 1a
    26512662    cmp ax, strict word 0000eh                ; 3d 0e 00
    2652     je short 013cch                           ; 74 10
     2663    je short 013efh                           ; 74 10
    26532664    cmp ax, strict word 00008h                ; 3d 08 00
    2654     jne short 013d6h                          ; 75 15
    2655     mov dx, 053edh                            ; ba ed 53
     2665    jne short 013f9h                          ; 75 15
     2666    mov dx, 053f2h                            ; ba f2 53
    26562667    mov ax, strict word 00043h                ; b8 43 00
    2657     call 00a00h                               ; e8 36 f6
    2658     jmp short 013d6h                          ; eb 0a
    2659     mov dx, 05bedh                            ; ba ed 5b
    2660     jmp short 013c4h                          ; eb f3
    2661     mov dx, 069edh                            ; ba ed 69
    2662     jmp short 013c4h                          ; eb ee
     2668    call 00a00h                               ; e8 13 f6
     2669    jmp short 013f9h                          ; eb 0a
     2670    mov dx, 05bf2h                            ; ba f2 5b
     2671    jmp short 013e7h                          ; eb f3
     2672    mov dx, 069f2h                            ; ba f2 69
     2673    jmp short 013e7h                          ; eb ee
    26632674    lea sp, [bp-00ah]                         ; 8d 66 f6
    26642675    pop di                                    ; 5f
     
    26692680    pop bp                                    ; 5d
    26702681    retn                                      ; c3
    2671 vgamem_copy_pl4_:                            ; 0xc13e0 LB 0x8f
     2682vgamem_copy_pl4_:                            ; 0xc1403 LB 0x8f
    26722683    push bp                                   ; 55
    26732684    mov bp, sp                                ; 89 e5
     
    27042715    xor bl, bl                                ; 30 db
    27052716    cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2706     jnc short 0145fh                          ; 73 30
     2717    jnc short 01482h                          ; 73 30
    27072718    mov al, byte [bp-006h]                    ; 8a 46 fa
    27082719    xor ah, ah                                ; 30 e4
     
    27212732    mov es, dx                                ; 8e c2
    27222733    cld                                       ; fc
    2723     jcxz 0145bh                               ; e3 06
     2734    jcxz 0147eh                               ; e3 06
    27242735    push DS                                   ; 1e
    27252736    mov ds, dx                                ; 8e da
     
    27282739    db  0feh, 0c3h
    27292740    ; inc bl                                    ; fe c3
    2730     jmp short 0142ah                          ; eb cb
     2741    jmp short 0144dh                          ; eb cb
    27312742    mov ax, strict word 00005h                ; b8 05 00
    27322743    mov dx, 003ceh                            ; ba ce 03
     
    27372748    pop bp                                    ; 5d
    27382749    retn 00004h                               ; c2 04 00
    2739 vgamem_fill_pl4_:                            ; 0xc146f LB 0x7c
     2750vgamem_fill_pl4_:                            ; 0xc1492 LB 0x7c
    27402751    push bp                                   ; 55
    27412752    mov bp, sp                                ; 89 e5
     
    27662777    xor bl, bl                                ; 30 db
    27672778    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2768     jnc short 014dbh                          ; 73 2d
     2779    jnc short 014feh                          ; 73 2d
    27692780    mov cl, byte [bp-006h]                    ; 8a 4e fa
    27702781    xor ch, ch                                ; 30 ed
     
    27842795    mov es, dx                                ; 8e c2
    27852796    cld                                       ; fc
    2786     jcxz 014d7h                               ; e3 02
     2797    jcxz 014fah                               ; e3 02
    27872798    rep stosb                                 ; f3 aa
    27882799    db  0feh, 0c3h
    27892800    ; inc bl                                    ; fe c3
    2790     jmp short 014a9h                          ; eb ce
     2801    jmp short 014cch                          ; eb ce
    27912802    mov ax, strict word 00005h                ; b8 05 00
    27922803    mov dx, 003ceh                            ; ba ce 03
     
    27972808    pop bp                                    ; 5d
    27982809    retn 00004h                               ; c2 04 00
    2799 vgamem_copy_cga_:                            ; 0xc14eb LB 0xc2
     2810vgamem_copy_cga_:                            ; 0xc150e LB 0xc2
    28002811    push bp                                   ; 55
    28012812    mov bp, sp                                ; 89 e5
     
    28312842    xor bl, bl                                ; 30 db
    28322843    cmp bl, byte [bp+006h]                    ; 3a 5e 06
    2833     jnc short 015a4h                          ; 73 70
     2844    jnc short 015c7h                          ; 73 70
    28342845    test bl, 001h                             ; f6 c3 01
    2835     je short 01570h                           ; 74 37
     2846    je short 01593h                           ; 74 37
    28362847    mov cl, bh                                ; 88 f9
    28372848    xor ch, ch                                ; 30 ed
     
    28532864    mov es, dx                                ; 8e c2
    28542865    cld                                       ; fc
    2855     jcxz 0156eh                               ; e3 06
     2866    jcxz 01591h                               ; e3 06
    28562867    push DS                                   ; 1e
    28572868    mov ds, dx                                ; 8e da
    28582869    rep movsb                                 ; f3 a4
    28592870    pop DS                                    ; 1f
    2860     jmp short 015a0h                          ; eb 30
     2871    jmp short 015c3h                          ; eb 30
    28612872    mov al, bh                                ; 88 f8
    28622873    xor ah, ah                                ; 30 e4
     
    28762887    mov es, dx                                ; 8e c2
    28772888    cld                                       ; fc
    2878     jcxz 015a0h                               ; e3 06
     2889    jcxz 015c3h                               ; e3 06
    28792890    push DS                                   ; 1e
    28802891    mov ds, dx                                ; 8e da
     
    28832894    db  0feh, 0c3h
    28842895    ; inc bl                                    ; fe c3
    2885     jmp short 0152fh                          ; eb 8b
     2896    jmp short 01552h                          ; eb 8b
    28862897    lea sp, [bp-004h]                         ; 8d 66 fc
    28872898    pop di                                    ; 5f
     
    28892900    pop bp                                    ; 5d
    28902901    retn 00004h                               ; c2 04 00
    2891 vgamem_fill_cga_:                            ; 0xc15ad LB 0xa8
     2902vgamem_fill_cga_:                            ; 0xc15d0 LB 0xa8
    28922903    push bp                                   ; 55
    28932904    mov bp, sp                                ; 89 e5
     
    29162927    xor bl, bl                                ; 30 db
    29172928    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2918     jnc short 0164ch                          ; 73 65
     2929    jnc short 0166fh                          ; 73 65
    29192930    test bl, 001h                             ; f6 c3 01
    2920     je short 0161dh                           ; 74 31
     2931    je short 01640h                           ; 74 31
    29212932    mov al, byte [bp-008h]                    ; 8a 46 f8
    29222933    xor ah, ah                                ; 30 e4
     
    29382949    mov es, dx                                ; 8e c2
    29392950    cld                                       ; fc
    2940     jcxz 0161bh                               ; e3 02
     2951    jcxz 0163eh                               ; e3 02
    29412952    rep stosb                                 ; f3 aa
    2942     jmp short 01648h                          ; eb 2b
     2953    jmp short 0166bh                          ; eb 2b
    29432954    mov al, byte [bp-008h]                    ; 8a 46 f8
    29442955    xor ah, ah                                ; 30 e4
     
    29592970    mov es, dx                                ; 8e c2
    29602971    cld                                       ; fc
    2961     jcxz 01648h                               ; e3 02
     2972    jcxz 0166bh                               ; e3 02
    29622973    rep stosb                                 ; f3 aa
    29632974    db  0feh, 0c3h
    29642975    ; inc bl                                    ; fe c3
    2965     jmp short 015e2h                          ; eb 96
     2976    jmp short 01605h                          ; eb 96
    29662977    lea sp, [bp-004h]                         ; 8d 66 fc
    29672978    pop di                                    ; 5f
     
    29692980    pop bp                                    ; 5d
    29702981    retn 00004h                               ; c2 04 00
    2971 biosfn_scroll_:                              ; 0xc1655 LB 0x576
     2982biosfn_scroll_:                              ; 0xc1678 LB 0x576
    29722983    push bp                                   ; 55
    29732984    mov bp, sp                                ; 89 e5
     
    29812992    mov ch, byte [bp+006h]                    ; 8a 6e 06
    29822993    cmp bl, byte [bp+004h]                    ; 3a 5e 04
    2983     jnbe short 0168ah                         ; 77 19
     2994    jnbe short 016adh                         ; 77 19
    29842995    cmp ch, cl                                ; 38 cd
    2985     jc short 0168ah                           ; 72 15
     2996    jc short 016adh                           ; 72 15
    29862997    mov dx, strict word 00049h                ; ba 49 00
    29872998    mov ax, strict word 00040h                ; b8 40 00
    2988     call 0319bh                               ; e8 1d 1b
    2989     xor ah, ah                                ; 30 e4
    2990     call 03170h                               ; e8 ed 1a
     2999    call 031beh                               ; e8 1d 1b
     3000    xor ah, ah                                ; 30 e4
     3001    call 03193h                               ; e8 ed 1a
    29913002    mov byte [bp-010h], al                    ; 88 46 f0
    29923003    cmp AL, strict byte 0ffh                  ; 3c ff
    2993     jne short 0168dh                          ; 75 03
    2994     jmp near 01bc2h                           ; e9 35 05
     3004    jne short 016b0h                          ; 75 03
     3005    jmp near 01be5h                           ; e9 35 05
    29953006    mov dx, 00084h                            ; ba 84 00
    29963007    mov ax, strict word 00040h                ; b8 40 00
    2997     call 0319bh                               ; e8 05 1b
     3008    call 031beh                               ; e8 05 1b
    29983009    xor ah, ah                                ; 30 e4
    29993010    mov bx, ax                                ; 89 c3
     
    30013012    mov dx, strict word 0004ah                ; ba 4a 00
    30023013    mov ax, strict word 00040h                ; b8 40 00
    3003     call 031b7h                               ; e8 13 1b
     3014    call 031dah                               ; e8 13 1b
    30043015    mov word [bp-018h], ax                    ; 89 46 e8
    30053016    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
    3006     jne short 016b9h                          ; 75 0c
     3017    jne short 016dch                          ; 75 0c
    30073018    mov dx, strict word 00062h                ; ba 62 00
    30083019    mov ax, strict word 00040h                ; b8 40 00
    3009     call 0319bh                               ; e8 e5 1a
     3020    call 031beh                               ; e8 e5 1a
    30103021    mov byte [bp+008h], al                    ; 88 46 08
    30113022    mov al, byte [bp+004h]                    ; 8a 46 04
    30123023    xor ah, ah                                ; 30 e4
    30133024    cmp ax, bx                                ; 39 d8
    3014     jc short 016c9h                           ; 72 07
     3025    jc short 016ech                           ; 72 07
    30153026    mov al, bl                                ; 88 d8
    30163027    db  0feh, 0c8h
     
    30203031    xor ah, ah                                ; 30 e4
    30213032    cmp ax, word [bp-018h]                    ; 3b 46 e8
    3022     jc short 016d7h                           ; 72 05
     3033    jc short 016fah                           ; 72 05
    30233034    mov ch, byte [bp-018h]                    ; 8a 6e e8
    30243035    db  0feh, 0cdh
     
    30273038    xor ah, ah                                ; 30 e4
    30283039    cmp ax, bx                                ; 39 d8
    3029     jbe short 016e3h                          ; 76 03
     3040    jbe short 01706h                          ; 76 03
    30303041    mov byte [bp-00ah], ah                    ; 88 66 f6
    30313042    mov al, ch                                ; 88 e8
     
    30483059    mul bx                                    ; f7 e3
    30493060    mov word [bp-01ah], ax                    ; 89 46 e6
    3050     cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
    3051     jne short 01766h                          ; 75 50
     3061    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3062    jne short 01789h                          ; 75 50
    30523063    sal ax, 1                                 ; d1 e0
    30533064    or AL, strict byte 0ffh                   ; 0c ff
     
    30603071    mov bx, ax                                ; 89 c3
    30613072    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3062     jne short 01769h                          ; 75 39
     3073    jne short 0178ch                          ; 75 39
    30633074    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3064     jne short 01769h                          ; 75 33
     3075    jne short 0178ch                          ; 75 33
    30653076    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    3066     jne short 01769h                          ; 75 2d
     3077    jne short 0178ch                          ; 75 2d
    30673078    mov al, byte [bp+004h]                    ; 8a 46 04
    30683079    xor ah, ah                                ; 30 e4
    30693080    cmp ax, word [bp-01eh]                    ; 3b 46 e2
    3070     jne short 01769h                          ; 75 23
     3081    jne short 0178ch                          ; 75 23
    30713082    mov al, ch                                ; 88 e8
    30723083    cmp ax, word [bp-01ch]                    ; 3b 46 e4
    3073     jne short 01769h                          ; 75 1c
     3084    jne short 0178ch                          ; 75 1c
    30743085    mov ah, byte [bp-008h]                    ; 8a 66 f8
    30753086    xor al, ch                                ; 30 e8
    30763087    add ax, strict word 00020h                ; 05 20 00
    3077     mov es, [di+04633h]                       ; 8e 85 33 46
     3088    mov es, [di+04638h]                       ; 8e 85 38 46
    30783089    mov cx, word [bp-01ah]                    ; 8b 4e e6
    30793090    mov di, bx                                ; 89 df
    30803091    cld                                       ; fc
    3081     jcxz 01763h                               ; e3 02
     3092    jcxz 01786h                               ; e3 02
    30823093    rep stosw                                 ; f3 ab
    3083     jmp near 01bc2h                           ; e9 5c 04
    3084     jmp near 018f7h                           ; e9 8e 01
     3094    jmp near 01be5h                           ; e9 5c 04
     3095    jmp near 0191ah                           ; e9 8e 01
    30853096    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3086     jne short 017d7h                          ; 75 68
     3097    jne short 017fah                          ; 75 68
    30873098    mov al, byte [bp-00eh]                    ; 8a 46 f2
    30883099    xor ah, ah                                ; 30 e4
     
    30923103    mov dx, ax                                ; 89 c2
    30933104    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3094     jc short 017d9h                           ; 72 56
     3105    jc short 017fch                           ; 72 56
    30953106    mov al, byte [bp-00ah]                    ; 8a 46 f6
    30963107    add ax, word [bp-016h]                    ; 03 46 ea
    30973108    cmp ax, dx                                ; 39 d0
    3098     jnbe short 01793h                         ; 77 06
     3109    jnbe short 017b6h                         ; 77 06
    30993110    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3100     jne short 017dch                          ; 75 49
     3111    jne short 017ffh                          ; 75 49
    31013112    mov al, byte [bp-006h]                    ; 8a 46 fa
    31023113    xor ah, ah                                ; 30 e4
     
    31203131    mov si, ax                                ; 89 c6
    31213132    sal si, CL                                ; d3 e6
    3122     mov es, [si+04633h]                       ; 8e 84 33 46
     3133    mov es, [si+04638h]                       ; 8e 84 38 46
    31233134    mov cx, word [bp-022h]                    ; 8b 4e de
    31243135    mov ax, di                                ; 89 f8
    31253136    mov di, dx                                ; 89 d7
    31263137    cld                                       ; fc
    3127     jcxz 017d5h                               ; e3 02
     3138    jcxz 017f8h                               ; e3 02
    31283139    rep stosw                                 ; f3 ab
    3129     jmp short 01827h                          ; eb 50
    3130     jmp short 0182dh                          ; eb 54
    3131     jmp near 01bc2h                           ; e9 e6 03
     3140    jmp short 0184ah                          ; eb 50
     3141    jmp short 01850h                          ; eb 54
     3142    jmp near 01be5h                           ; e9 e6 03
    31323143    mov dl, byte [bp-006h]                    ; 8a 56 fa
    31333144    mov di, dx                                ; 89 d7
     
    31443155    mov si, ax                                ; 89 c6
    31453156    sal si, CL                                ; d3 e6
    3146     mov ax, word [si+04633h]                  ; 8b 84 33 46
     3157    mov ax, word [si+04638h]                  ; 8b 84 38 46
    31473158    mov word [bp-022h], ax                    ; 89 46 de
    31483159    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    31573168    mov es, dx                                ; 8e c2
    31583169    cld                                       ; fc
    3159     jcxz 01827h                               ; e3 06
     3170    jcxz 0184ah                               ; e3 06
    31603171    push DS                                   ; 1e
    31613172    mov ds, dx                                ; 8e da
     
    31633174    pop DS                                    ; 1f
    31643175    inc word [bp-016h]                        ; ff 46 ea
    3165     jmp near 01777h                           ; e9 4a ff
     3176    jmp near 0179ah                           ; e9 4a ff
    31663177    mov al, byte [bp+004h]                    ; 8a 46 04
    31673178    xor ah, ah                                ; 30 e4
     
    31703181    xor ah, ah                                ; 30 e4
    31713182    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3172     jnbe short 017d9h                         ; 77 9a
     3183    jnbe short 017fch                         ; 77 9a
    31733184    mov dx, ax                                ; 89 c2
    31743185    mov al, byte [bp-00ah]                    ; 8a 46 f6
    31753186    add ax, dx                                ; 01 d0
    31763187    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3177     jnbe short 01851h                         ; 77 06
     3188    jnbe short 01874h                         ; 77 06
    31783189    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3179     jne short 01890h                          ; 75 3f
     3190    jne short 018b3h                          ; 75 3f
    31803191    mov al, byte [bp-006h]                    ; 8a 46 fa
    31813192    xor ah, ah                                ; 30 e4
     
    31963207    mov si, ax                                ; 89 c6
    31973208    sal si, CL                                ; d3 e6
    3198     mov si, word [si+04633h]                  ; 8b b4 33 46
     3209    mov si, word [si+04638h]                  ; 8b b4 38 46
    31993210    mov cx, di                                ; 89 f9
    32003211    mov ax, word [bp-022h]                    ; 8b 46 de
     
    32023213    mov es, si                                ; 8e c6
    32033214    cld                                       ; fc
    3204     jcxz 0188eh                               ; e3 02
     3215    jcxz 018b1h                               ; e3 02
    32053216    rep stosw                                 ; f3 ab
    3206     jmp short 018e7h                          ; eb 57
     3217    jmp short 0190ah                          ; eb 57
    32073218    mov al, byte [bp-006h]                    ; 8a 46 fa
    32083219    xor ah, ah                                ; 30 e4
     
    32243235    mov si, ax                                ; 89 c6
    32253236    sal si, CL                                ; d3 e6
    3226     mov ax, word [si+04633h]                  ; 8b 84 33 46
     3237    mov ax, word [si+04638h]                  ; 8b 84 38 46
    32273238    mov word [bp-014h], ax                    ; 89 46 ec
    32283239    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    32373248    mov es, dx                                ; 8e c2
    32383249    cld                                       ; fc
    3239     jcxz 018e7h                               ; e3 06
     3250    jcxz 0190ah                               ; e3 06
    32403251    push DS                                   ; 1e
    32413252    mov ds, dx                                ; 8e da
     
    32453256    xor ah, ah                                ; 30 e4
    32463257    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3247     jc short 0191ah                           ; 72 29
     3258    jc short 0193dh                           ; 72 29
    32483259    dec word [bp-016h]                        ; ff 4e ea
    3249     jmp near 01835h                           ; e9 3e ff
    3250     mov al, byte [si+046afh]                  ; 8a 84 af 46
     3260    jmp near 01858h                           ; e9 3e ff
     3261    mov al, byte [si+046b4h]                  ; 8a 84 b4 46
    32513262    xor ah, ah                                ; 30 e4
    32523263    mov CL, strict byte 006h                  ; b1 06
    32533264    mov si, ax                                ; 89 c6
    32543265    sal si, CL                                ; d3 e6
    3255     mov al, byte [si+046c5h]                  ; 8a 84 c5 46
     3266    mov al, byte [si+046cah]                  ; 8a 84 ca 46
    32563267    mov byte [bp-012h], al                    ; 88 46 ee
    3257     mov al, byte [di+04631h]                  ; 8a 85 31 46
     3268    mov al, byte [di+04636h]                  ; 8a 85 36 46
    32583269    cmp AL, strict byte 004h                  ; 3c 04
    3259     je short 0191dh                           ; 74 0b
     3270    je short 01940h                           ; 74 0b
    32603271    cmp AL, strict byte 003h                  ; 3c 03
    3261     je short 0191dh                           ; 74 07
     3272    je short 01940h                           ; 74 07
    32623273    cmp AL, strict byte 002h                  ; 3c 02
    3263     je short 0194bh                           ; 74 31
    3264     jmp near 01bc2h                           ; e9 a5 02
     3274    je short 0196eh                           ; 74 31
     3275    jmp near 01be5h                           ; e9 a5 02
    32653276    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3266     jne short 01989h                          ; 75 66
     3277    jne short 019ach                          ; 75 66
    32673278    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3268     jne short 01989h                          ; 75 60
     3279    jne short 019ach                          ; 75 60
    32693280    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    3270     jne short 01989h                          ; 75 5a
     3281    jne short 019ach                          ; 75 5a
    32713282    mov al, byte [bp+004h]                    ; 8a 46 04
    32723283    xor ah, ah                                ; 30 e4
     
    32743285    lea ax, [bx-001h]                         ; 8d 47 ff
    32753286    cmp dx, ax                                ; 39 c2
    3276     jne short 01989h                          ; 75 4c
     3287    jne short 019ach                          ; 75 4c
    32773288    mov al, ch                                ; 88 e8
    32783289    xor ah, ah                                ; 30 e4
     
    32803291    dec dx                                    ; 4a
    32813292    cmp ax, dx                                ; 39 d0
    3282     je short 0194eh                           ; 74 05
    3283     jmp short 01989h                          ; eb 3e
    3284     jmp near 01a85h                           ; e9 37 01
     3293    je short 01971h                           ; 74 05
     3294    jmp short 019ach                          ; eb 3e
     3295    jmp near 01aa8h                           ; e9 37 01
    32853296    mov ax, 00205h                            ; b8 05 02
    32863297    mov dx, 003ceh                            ; ba ce 03
     
    32973308    mov CL, strict byte 003h                  ; b1 03
    32983309    sal bx, CL                                ; d3 e3
    3299     mov bx, word [bx+04633h]                  ; 8b 9f 33 46
     3310    mov bx, word [bx+04638h]                  ; 8b 9f 38 46
    33003311    mov cx, ax                                ; 89 c1
    33013312    mov ax, dx                                ; 89 d0
     
    33033314    mov es, bx                                ; 8e c3
    33043315    cld                                       ; fc
    3305     jcxz 01980h                               ; e3 02
     3316    jcxz 019a3h                               ; e3 02
    33063317    rep stosb                                 ; f3 aa
    33073318    mov ax, strict word 00005h                ; b8 05 00
    33083319    mov dx, 003ceh                            ; ba ce 03
    33093320    out DX, ax                                ; ef
    3310     jmp short 0191ah                          ; eb 91
     3321    jmp short 0193dh                          ; eb 91
    33113322    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3312     jne short 019d4h                          ; 75 45
     3323    jne short 019f7h                          ; 75 45
    33133324    mov al, byte [bp-00eh]                    ; 8a 46 f2
    33143325    xor ah, ah                                ; 30 e4
     
    33183329    mov dx, ax                                ; 89 c2
    33193330    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3320     jc short 01a05h                           ; 72 62
     3331    jc short 01a28h                           ; 72 62
    33213332    mov al, byte [bp-00ah]                    ; 8a 46 f6
    33223333    add ax, word [bp-016h]                    ; 03 46 ea
    33233334    cmp ax, dx                                ; 39 d0
    3324     jnbe short 019b3h                         ; 77 06
     3335    jnbe short 019d6h                         ; 77 06
    33253336    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3326     jne short 019d6h                          ; 75 23
     3337    jne short 019f9h                          ; 75 23
    33273338    mov al, byte [bp-008h]                    ; 8a 46 f8
    33283339    xor ah, ah                                ; 30 e4
     
    33373348    mov dx, ax                                ; 89 c2
    33383349    mov al, byte [bp-00ch]                    ; 8a 46 f4
    3339     call 0146fh                               ; e8 9d fa
    3340     jmp short 01a00h                          ; eb 2c
    3341     jmp short 01a08h                          ; eb 32
     3350    call 01492h                               ; e8 9d fa
     3351    jmp short 01a23h                          ; eb 2c
     3352    jmp short 01a2bh                          ; eb 32
    33423353    mov al, byte [bp-012h]                    ; 8a 46 ee
    33433354    xor ah, ah                                ; 30 e4
     
    33563367    mov dx, ax                                ; 89 c2
    33573368    mov ax, si                                ; 89 f0
    3358     call 013e0h                               ; e8 e0 f9
     3369    call 01403h                               ; e8 e0 f9
    33593370    inc word [bp-016h]                        ; ff 46 ea
    3360     jmp short 01997h                          ; eb 92
    3361     jmp near 01bc2h                           ; e9 ba 01
     3371    jmp short 019bah                          ; eb 92
     3372    jmp near 01be5h                           ; e9 ba 01
    33623373    mov al, byte [bp+004h]                    ; 8a 46 04
    33633374    xor ah, ah                                ; 30 e4
     
    33663377    xor ah, ah                                ; 30 e4
    33673378    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3368     jnbe short 01a05h                         ; 77 eb
     3379    jnbe short 01a28h                         ; 77 eb
    33693380    mov dx, ax                                ; 89 c2
    33703381    mov al, byte [bp-00ah]                    ; 8a 46 f6
    33713382    add dx, ax                                ; 01 c2
    33723383    cmp dx, word [bp-016h]                    ; 3b 56 ea
    3373     jnbe short 01a2ah                         ; 77 04
     3384    jnbe short 01a4dh                         ; 77 04
    33743385    test al, al                               ; 84 c0
    3375     jne short 01a4bh                          ; 75 21
     3386    jne short 01a6eh                          ; 75 21
    33763387    mov al, byte [bp-008h]                    ; 8a 46 f8
    33773388    xor ah, ah                                ; 30 e4
     
    33863397    mov dx, ax                                ; 89 c2
    33873398    mov al, byte [bp-00ch]                    ; 8a 46 f4
    3388     call 0146fh                               ; e8 26 fa
    3389     jmp short 01a76h                          ; eb 2b
     3399    call 01492h                               ; e8 26 fa
     3400    jmp short 01a99h                          ; eb 2b
    33903401    mov al, byte [bp-012h]                    ; 8a 46 ee
    33913402    push ax                                   ; 50
     
    34043415    mov dx, ax                                ; 89 c2
    34053416    mov ax, si                                ; 89 f0
    3406     call 013e0h                               ; e8 6a f9
     3417    call 01403h                               ; e8 6a f9
    34073418    mov al, byte [bp+004h]                    ; 8a 46 04
    34083419    xor ah, ah                                ; 30 e4
    34093420    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3410     jc short 01acch                           ; 72 4c
     3421    jc short 01aefh                           ; 72 4c
    34113422    dec word [bp-016h]                        ; ff 4e ea
    3412     jmp short 01a10h                          ; eb 8b
    3413     mov bl, byte [di+04632h]                  ; 8a 9d 32 46
     3423    jmp short 01a33h                          ; eb 8b
     3424    mov bl, byte [di+04637h]                  ; 8a 9d 37 46
    34143425    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3415     jne short 01acfh                          ; 75 40
     3426    jne short 01af2h                          ; 75 40
    34163427    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3417     jne short 01acfh                          ; 75 3a
     3428    jne short 01af2h                          ; 75 3a
    34183429    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    3419     jne short 01acfh                          ; 75 34
     3430    jne short 01af2h                          ; 75 34
    34203431    mov al, byte [bp+004h]                    ; 8a 46 04
    34213432    cmp ax, word [bp-01eh]                    ; 3b 46 e2
    3422     jne short 01acfh                          ; 75 2c
     3433    jne short 01af2h                          ; 75 2c
    34233434    mov al, ch                                ; 88 e8
    34243435    cmp ax, word [bp-01ch]                    ; 3b 46 e4
    3425     jne short 01acfh                          ; 75 25
     3436    jne short 01af2h                          ; 75 25
    34263437    mov al, byte [bp-012h]                    ; 8a 46 ee
    34273438    mov dx, ax                                ; 89 c2
     
    34323443    mov dl, byte [bp-008h]                    ; 8a 56 f8
    34333444    xor dh, dh                                ; 30 f6
    3434     mov es, [di+04633h]                       ; 8e 85 33 46
     3445    mov es, [di+04638h]                       ; 8e 85 38 46
    34353446    mov cx, ax                                ; 89 c1
    34363447    mov ax, dx                                ; 89 d0
    34373448    xor di, di                                ; 31 ff
    34383449    cld                                       ; fc
    3439     jcxz 01acch                               ; e3 02
     3450    jcxz 01aefh                               ; e3 02
    34403451    rep stosb                                 ; f3 aa
    3441     jmp near 01bc2h                           ; e9 f3 00
     3452    jmp near 01be5h                           ; e9 f3 00
    34423453    cmp bl, 002h                              ; 80 fb 02
    3443     jne short 01addh                          ; 75 09
     3454    jne short 01b00h                          ; 75 09
    34443455    sal byte [bp-00ch], 1                     ; d0 66 f4
    34453456    sal byte [bp-006h], 1                     ; d0 66 fa
    34463457    sal word [bp-018h], 1                     ; d1 66 e8
    34473458    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
    3448     jne short 01b4ch                          ; 75 69
     3459    jne short 01b6fh                          ; 75 69
    34493460    mov al, byte [bp-00eh]                    ; 8a 46 f2
    34503461    xor ah, ah                                ; 30 e4
     
    34543465    mov dx, ax                                ; 89 c2
    34553466    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3456     jc short 01acch                           ; 72 d5
     3467    jc short 01aefh                           ; 72 d5
    34573468    mov al, byte [bp-00ah]                    ; 8a 46 f6
    34583469    add ax, word [bp-016h]                    ; 03 46 ea
    34593470    cmp ax, dx                                ; 39 d0
    3460     jnbe short 01b07h                         ; 77 06
     3471    jnbe short 01b2ah                         ; 77 06
    34613472    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3462     jne short 01b28h                          ; 75 21
     3473    jne short 01b4bh                          ; 75 21
    34633474    mov al, byte [bp-008h]                    ; 8a 46 f8
    34643475    xor ah, ah                                ; 30 e4
     
    34733484    mov dx, ax                                ; 89 c2
    34743485    mov al, byte [bp-00ch]                    ; 8a 46 f4
    3475     call 015adh                               ; e8 87 fa
    3476     jmp short 01b47h                          ; eb 1f
     3486    call 015d0h                               ; e8 87 fa
     3487    jmp short 01b6ah                          ; eb 1f
    34773488    mov al, byte [bp-012h]                    ; 8a 46 ee
    34783489    xor ah, ah                                ; 30 e4
     
    34873498    mov dx, ax                                ; 89 c2
    34883499    mov al, byte [bp-00ch]                    ; 8a 46 f4
    3489     call 014ebh                               ; e8 a4 f9
     3500    call 0150eh                               ; e8 a4 f9
    34903501    inc word [bp-016h]                        ; ff 46 ea
    3491     jmp short 01aebh                          ; eb 9f
     3502    jmp short 01b0eh                          ; eb 9f
    34923503    mov al, byte [bp+004h]                    ; 8a 46 04
    34933504    xor ah, ah                                ; 30 e4
     
    34963507    xor ah, ah                                ; 30 e4
    34973508    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3498     jnbe short 01bc2h                         ; 77 64
     3509    jnbe short 01be5h                         ; 77 64
    34993510    mov dx, ax                                ; 89 c2
    35003511    mov al, byte [bp-00ah]                    ; 8a 46 f6
    35013512    add ax, dx                                ; 01 d0
    35023513    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3503     jnbe short 01b70h                         ; 77 06
     3514    jnbe short 01b93h                         ; 77 06
    35043515    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3505     jne short 01b91h                          ; 75 21
     3516    jne short 01bb4h                          ; 75 21
    35063517    mov al, byte [bp-008h]                    ; 8a 46 f8
    35073518    xor ah, ah                                ; 30 e4
     
    35163527    mov dx, ax                                ; 89 c2
    35173528    mov al, byte [bp-00ch]                    ; 8a 46 f4
    3518     call 015adh                               ; e8 1e fa
    3519     jmp short 01bb3h                          ; eb 22
     3529    call 015d0h                               ; e8 1e fa
     3530    jmp short 01bd6h                          ; eb 22
    35203531    mov al, byte [bp-012h]                    ; 8a 46 ee
    35213532    xor ah, ah                                ; 30 e4
     
    35313542    mov dx, ax                                ; 89 c2
    35323543    mov al, byte [bp-00ch]                    ; 8a 46 f4
    3533     call 014ebh                               ; e8 38 f9
     3544    call 0150eh                               ; e8 38 f9
    35343545    mov al, byte [bp+004h]                    ; 8a 46 04
    35353546    xor ah, ah                                ; 30 e4
    35363547    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3537     jc short 01bc2h                           ; 72 05
     3548    jc short 01be5h                           ; 72 05
    35383549    dec word [bp-016h]                        ; ff 4e ea
    3539     jmp short 01b54h                          ; eb 92
     3550    jmp short 01b77h                          ; eb 92
    35403551    lea sp, [bp-004h]                         ; 8d 66 fc
    35413552    pop di                                    ; 5f
     
    35433554    pop bp                                    ; 5d
    35443555    retn 00008h                               ; c2 08 00
    3545 write_gfx_char_pl4_:                         ; 0xc1bcb LB 0xf8
     3556write_gfx_char_pl4_:                         ; 0xc1bee LB 0xf8
    35463557    push bp                                   ; 55
    35473558    mov bp, sp                                ; 89 e5
     
    35543565    mov al, cl                                ; 88 c8
    35553566    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
    3556     je short 01befh                           ; 74 0b
     3567    je short 01c12h                           ; 74 0b
    35573568    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
    3558     jne short 01bf4h                          ; 75 0a
    3559     mov di, 05bedh                            ; bf ed 5b
    3560     jmp short 01bf7h                          ; eb 08
    3561     mov di, 069edh                            ; bf ed 69
    3562     jmp short 01bf7h                          ; eb 03
    3563     mov di, 053edh                            ; bf ed 53
     3569    jne short 01c17h                          ; 75 0a
     3570    mov di, 05bf2h                            ; bf f2 5b
     3571    jmp short 01c1ah                          ; eb 08
     3572    mov di, 069f2h                            ; bf f2 69
     3573    jmp short 01c1ah                          ; eb 03
     3574    mov di, 053f2h                            ; bf f2 53
    35643575    xor ah, ah                                ; 30 e4
    35653576    mov bx, ax                                ; 89 c3
     
    35863597    out DX, ax                                ; ef
    35873598    test byte [bp-006h], 080h                 ; f6 46 fa 80
    3588     je short 01c39h                           ; 74 06
     3599    je short 01c5ch                           ; 74 06
    35893600    mov ax, 01803h                            ; b8 03 18
    35903601    out DX, ax                                ; ef
    3591     jmp short 01c3dh                          ; eb 04
     3602    jmp short 01c60h                          ; eb 04
    35923603    mov ax, strict word 00003h                ; b8 03 00
    35933604    out DX, ax                                ; ef
    35943605    xor ch, ch                                ; 30 ed
    35953606    cmp ch, byte [bp+006h]                    ; 3a 6e 06
    3596     jnc short 01cabh                          ; 73 67
     3607    jnc short 01cceh                          ; 73 67
    35973608    mov al, ch                                ; 88 e8
    35983609    xor ah, ah                                ; 30 e4
     
    36033614    add si, ax                                ; 01 c6
    36043615    mov byte [bp-008h], bh                    ; 88 7e f8
    3605     jmp short 01c6ch                          ; eb 13
     3616    jmp short 01c8fh                          ; eb 13
    36063617    xor bx, bx                                ; 31 db
    36073618    mov dx, si                                ; 89 f2
    36083619    mov ax, 0a000h                            ; b8 00 a0
    3609     call 031a9h                               ; e8 46 15
     3620    call 031cch                               ; e8 46 15
    36103621    inc byte [bp-008h]                        ; fe 46 f8
    36113622    cmp byte [bp-008h], 008h                  ; 80 7e f8 08
    3612     jnc short 01ca7h                          ; 73 3b
     3623    jnc short 01ccah                          ; 73 3b
    36133624    mov cl, byte [bp-008h]                    ; 8a 4e f8
    36143625    mov ax, 00080h                            ; b8 80 00
     
    36233634    mov dx, si                                ; 89 f2
    36243635    mov ax, 0a000h                            ; b8 00 a0
    3625     call 0319bh                               ; e8 0f 15
     3636    call 031beh                               ; e8 0f 15
    36263637    mov al, ch                                ; 88 e8
    36273638    xor ah, ah                                ; 30 e4
     
    36313642    mov al, byte [bx]                         ; 8a 07
    36323643    test word [bp-012h], ax                   ; 85 46 ee
    3633     je short 01c59h                           ; 74 bb
     3644    je short 01c7ch                           ; 74 bb
    36343645    mov al, byte [bp-006h]                    ; 8a 46 fa
    36353646    and AL, strict byte 00fh                  ; 24 0f
    36363647    mov bx, ax                                ; 89 c3
    3637     jmp short 01c5bh                          ; eb b4
     3648    jmp short 01c7eh                          ; eb b4
    36383649    db  0feh, 0c5h
    36393650    ; inc ch                                    ; fe c5
    3640     jmp short 01c3fh                          ; eb 94
     3651    jmp short 01c62h                          ; eb 94
    36413652    mov ax, 0ff08h                            ; b8 08 ff
    36423653    mov dx, 003ceh                            ; ba ce 03
     
    36513662    pop bp                                    ; 5d
    36523663    retn 00004h                               ; c2 04 00
    3653 write_gfx_char_cga_:                         ; 0xc1cc3 LB 0x13a
     3664write_gfx_char_cga_:                         ; 0xc1ce6 LB 0x13a
    36543665    push bp                                   ; 55
    36553666    mov bp, sp                                ; 89 e5
     
    36593670    mov byte [bp-008h], al                    ; 88 46 f8
    36603671    mov byte [bp-00ah], dl                    ; 88 56 f6
    3661     mov si, 053edh                            ; be ed 53
     3672    mov si, 053f2h                            ; be f2 53
    36623673    xor bh, bh                                ; 30 ff
    36633674    mov al, byte [bp+006h]                    ; 8a 46 06
     
    36793690    sal di, CL                                ; d3 e7
    36803691    mov byte [bp-006h], ah                    ; 88 66 fa
    3681     jmp near 01d54h                           ; e9 52 00
     3692    jmp near 01d77h                           ; e9 52 00
    36823693    xor al, al                                ; 30 c0
    36833694    xor ah, ah                                ; 30 e4
    3684     jmp short 01d13h                          ; eb 0b
     3695    jmp short 01d36h                          ; eb 0b
    36853696    or al, bl                                 ; 08 d8
    36863697    shr ch, 1                                 ; d0 ed
     
    36883699    ; inc ah                                    ; fe c4
    36893700    cmp ah, 008h                              ; 80 fc 08
    3690     jnc short 01d3eh                          ; 73 2b
     3701    jnc short 01d61h                          ; 73 2b
    36913702    mov bl, byte [bp-006h]                    ; 8a 5e fa
    36923703    xor bh, bh                                ; 30 ff
     
    36983709    mov bl, ch                                ; 88 eb
    36993710    test dx, bx                               ; 85 da
    3700     je short 01d0ah                           ; 74 e2
     3711    je short 01d2dh                           ; 74 e2
    37013712    mov CL, strict byte 007h                  ; b1 07
    37023713    sub cl, ah                                ; 28 e1
     
    37053716    sal bl, CL                                ; d2 e3
    37063717    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    3707     je short 01d08h                           ; 74 ce
     3718    je short 01d2bh                           ; 74 ce
    37083719    xor al, bl                                ; 30 d8
    3709     jmp short 01d0ah                          ; eb cc
     3720    jmp short 01d2dh                          ; eb cc
    37103721    xor ah, ah                                ; 30 e4
    37113722    mov bx, ax                                ; 89 c3
    37123723    mov dx, word [bp-00ch]                    ; 8b 56 f4
    37133724    mov ax, 0b800h                            ; b8 00 b8
    3714     call 031a9h                               ; e8 5e 14
     3725    call 031cch                               ; e8 5e 14
    37153726    inc byte [bp-006h]                        ; fe 46 fa
    37163727    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
    3717     jnc short 01da6h                          ; 73 52
     3728    jnc short 01dc9h                          ; 73 52
    37183729    mov al, byte [bp-006h]                    ; 8a 46 fa
    37193730    xor ah, ah                                ; 30 e4
     
    37253736    mov word [bp-00ch], dx                    ; 89 56 f4
    37263737    test byte [bp-006h], 001h                 ; f6 46 fa 01
    3727     je short 01d72h                           ; 74 04
     3738    je short 01d95h                           ; 74 04
    37283739    add byte [bp-00bh], 020h                  ; 80 46 f5 20
    37293740    mov CH, strict byte 080h                  ; b5 80
    37303741    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
    3731     jne short 01d8bh                          ; 75 11
     3742    jne short 01daeh                          ; 75 11
    37323743    test byte [bp-00ah], ch                   ; 84 6e f6
    3733     je short 01d02h                           ; 74 83
     3744    je short 01d25h                           ; 74 83
    37343745    mov dx, word [bp-00ch]                    ; 8b 56 f4
    37353746    mov ax, 0b800h                            ; b8 00 b8
    3736     call 0319bh                               ; e8 13 14
    3737     jmp near 01d04h                           ; e9 79 ff
     3747    call 031beh                               ; e8 13 14
     3748    jmp near 01d27h                           ; e9 79 ff
    37383749    test ch, ch                               ; 84 ed
    3739     jbe short 01d4bh                          ; 76 bc
     3750    jbe short 01d6eh                          ; 76 bc
    37403751    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    3741     je short 01da0h                           ; 74 0b
     3752    je short 01dc3h                           ; 74 0b
    37423753    mov dx, word [bp-00ch]                    ; 8b 56 f4
    37433754    mov ax, 0b800h                            ; b8 00 b8
    3744     call 0319bh                               ; e8 fd 13
    3745     jmp short 01da2h                          ; eb 02
     3755    call 031beh                               ; e8 fd 13
     3756    jmp short 01dc5h                          ; eb 02
    37463757    xor al, al                                ; 30 c0
    37473758    xor ah, ah                                ; 30 e4
    3748     jmp short 01dadh                          ; eb 07
    3749     jmp short 01df4h                          ; eb 4c
     3759    jmp short 01dd0h                          ; eb 07
     3760    jmp short 01e17h                          ; eb 4c
    37503761    cmp ah, 004h                              ; 80 fc 04
    3751     jnc short 01de2h                          ; 73 35
     3762    jnc short 01e05h                          ; 73 35
    37523763    mov bl, byte [bp-006h]                    ; 8a 5e fa
    37533764    xor bh, bh                                ; 30 ff
     
    37593770    mov bl, ch                                ; 88 eb
    37603771    test dx, bx                               ; 85 da
    3761     je short 01ddch                           ; 74 1a
     3772    je short 01dffh                           ; 74 1a
    37623773    mov CL, strict byte 003h                  ; b1 03
    37633774    sub cl, ah                                ; 28 e1
     
    37673778    sal bl, CL                                ; d2 e3
    37683779    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    3769     je short 01ddah                           ; 74 04
     3780    je short 01dfdh                           ; 74 04
    37703781    xor al, bl                                ; 30 d8
    3771     jmp short 01ddch                          ; eb 02
     3782    jmp short 01dffh                          ; eb 02
    37723783    or al, bl                                 ; 08 d8
    37733784    shr ch, 1                                 ; d0 ed
    37743785    db  0feh, 0c4h
    37753786    ; inc ah                                    ; fe c4
    3776     jmp short 01da8h                          ; eb c6
     3787    jmp short 01dcbh                          ; eb c6
    37773788    xor ah, ah                                ; 30 e4
    37783789    mov bx, ax                                ; 89 c3
    37793790    mov dx, word [bp-00ch]                    ; 8b 56 f4
    37803791    mov ax, 0b800h                            ; b8 00 b8
    3781     call 031a9h                               ; e8 ba 13
     3792    call 031cch                               ; e8 ba 13
    37823793    inc word [bp-00ch]                        ; ff 46 f4
    3783     jmp short 01d8bh                          ; eb 97
     3794    jmp short 01daeh                          ; eb 97
    37843795    lea sp, [bp-004h]                         ; 8d 66 fc
    37853796    pop di                                    ; 5f
     
    37873798    pop bp                                    ; 5d
    37883799    retn 00004h                               ; c2 04 00
    3789 write_gfx_char_lin_:                         ; 0xc1dfd LB 0xac
     3800write_gfx_char_lin_:                         ; 0xc1e20 LB 0xac
    37903801    push bp                                   ; 55
    37913802    mov bp, sp                                ; 89 e5
     
    37973808    mov byte [bp-006h], bl                    ; 88 5e fa
    37983809    mov al, cl                                ; 88 c8
    3799     mov si, 053edh                            ; be ed 53
     3810    mov si, 053f2h                            ; be f2 53
    38003811    xor ah, ah                                ; 30 e4
    38013812    mov bl, byte [bp+004h]                    ; 8a 5e 04
     
    38143825    sal di, CL                                ; d3 e7
    38153826    xor ch, ch                                ; 30 ed
    3816     jmp short 01e7dh                          ; eb 44
     3827    jmp short 01ea0h                          ; eb 44
    38173828    cmp cl, 008h                              ; 80 f9 08
    3818     jnc short 01e76h                          ; 73 38
     3829    jnc short 01e99h                          ; 73 38
    38193830    xor dl, dl                                ; 30 d2
    38203831    mov al, ch                                ; 88 e8
     
    38283839    xor bh, bh                                ; 30 ff
    38293840    test ax, bx                               ; 85 d8
    3830     je short 01e5ah                           ; 74 03
     3841    je short 01e7dh                           ; 74 03
    38313842    mov dl, byte [bp-00ch]                    ; 8a 56 f4
    38323843    mov bl, dl                                ; 88 d3
     
    38383849    mov bx, ax                                ; 89 c3
    38393850    mov ax, 0a000h                            ; b8 00 a0
    3840     call 031a9h                               ; e8 3a 13
     3851    call 031cch                               ; e8 3a 13
    38413852    shr byte [bp-008h], 1                     ; d0 6e f8
    38423853    db  0feh, 0c1h
    38433854    ; inc cl                                    ; fe c1
    3844     jmp short 01e39h                          ; eb c3
     3855    jmp short 01e5ch                          ; eb c3
    38453856    db  0feh, 0c5h
    38463857    ; inc ch                                    ; fe c5
    38473858    cmp ch, 008h                              ; 80 fd 08
    3848     jnc short 01ea0h                          ; 73 23
     3859    jnc short 01ec3h                          ; 73 23
    38493860    mov bl, ch                                ; 88 eb
    38503861    xor bh, bh                                ; 30 ff
     
    38613872    mov byte [bp-008h], 080h                  ; c6 46 f8 80
    38623873    xor cl, cl                                ; 30 c9
    3863     jmp short 01e3eh                          ; eb 9e
     3874    jmp short 01e61h                          ; eb 9e
    38643875    lea sp, [bp-004h]                         ; 8d 66 fc
    38653876    pop di                                    ; 5f
     
    38673878    pop bp                                    ; 5d
    38683879    retn 00002h                               ; c2 02 00
    3869 biosfn_write_char_attr_:                     ; 0xc1ea9 LB 0x192
     3880biosfn_write_char_attr_:                     ; 0xc1ecc LB 0x192
    38703881    push bp                                   ; 55
    38713882    mov bp, sp                                ; 89 e5
     
    38793890    mov dx, strict word 00049h                ; ba 49 00
    38803891    mov ax, strict word 00040h                ; b8 40 00
    3881     call 0319bh                               ; e8 d6 12
    3882     xor ah, ah                                ; 30 e4
    3883     call 03170h                               ; e8 a6 12
     3892    call 031beh                               ; e8 d6 12
     3893    xor ah, ah                                ; 30 e4
     3894    call 03193h                               ; e8 a6 12
    38843895    mov cl, al                                ; 88 c1
    38853896    mov byte [bp-014h], al                    ; 88 46 ec
    38863897    cmp AL, strict byte 0ffh                  ; 3c ff
    3887     jne short 01ed6h                          ; 75 03
    3888     jmp near 02034h                           ; e9 5e 01
     3898    jne short 01ef9h                          ; 75 03
     3899    jmp near 02057h                           ; e9 5e 01
    38893900    mov al, byte [bp-012h]                    ; 8a 46 ee
    38903901    xor ah, ah                                ; 30 e4
    38913902    lea bx, [bp-01eh]                         ; 8d 5e e2
    38923903    lea dx, [bp-01ch]                         ; 8d 56 e4
    3893     call 00a8ch                               ; e8 a8 eb
     3904    call 00a8ch                               ; e8 85 eb
    38943905    mov al, byte [bp-01eh]                    ; 8a 46 e2
    38953906    mov byte [bp-00ch], al                    ; 88 46 f4
     
    38983909    mov dx, 00084h                            ; ba 84 00
    38993910    mov ax, strict word 00040h                ; b8 40 00
    3900     call 0319bh                               ; e8 a2 12
     3911    call 031beh                               ; e8 a2 12
    39013912    xor ah, ah                                ; 30 e4
    39023913    inc ax                                    ; 40
     
    39043915    mov dx, strict word 0004ah                ; ba 4a 00
    39053916    mov ax, strict word 00040h                ; b8 40 00
    3906     call 031b7h                               ; e8 af 12
     3917    call 031dah                               ; e8 af 12
    39073918    mov bx, ax                                ; 89 c3
    39083919    mov word [bp-016h], ax                    ; 89 46 ea
     
    39123923    mov di, ax                                ; 89 c7
    39133924    sal di, CL                                ; d3 e7
    3914     cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
    3915     jne short 01f67h                          ; 75 49
     3925    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
     3926    jne short 01f8ah                          ; 75 49
    39163927    mov ax, bx                                ; 89 d8
    39173928    mul word [bp-01ah]                        ; f7 66 e6
     
    39393950    mov word [bp-01ch], bx                    ; 89 5e e4
    39403951    mov ax, word [bp-01ch]                    ; 8b 46 e4
    3941     mov es, [di+04633h]                       ; 8e 85 33 46
     3952    mov es, [di+04638h]                       ; 8e 85 38 46
    39423953    mov cx, si                                ; 89 f1
    39433954    mov di, dx                                ; 89 d7
    39443955    cld                                       ; fc
    3945     jcxz 01f64h                               ; e3 02
     3956    jcxz 01f87h                               ; e3 02
    39463957    rep stosw                                 ; f3 ab
    3947     jmp near 02034h                           ; e9 cd 00
    3948     mov bx, ax                                ; 89 c3
    3949     mov al, byte [bx+046afh]                  ; 8a 87 af 46
     3958    jmp near 02057h                           ; e9 cd 00
     3959    mov bx, ax                                ; 89 c3
     3960    mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
    39503961    mov CL, strict byte 006h                  ; b1 06
    39513962    mov bx, ax                                ; 89 c3
    39523963    sal bx, CL                                ; d3 e3
    3953     mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
     3964    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
    39543965    mov byte [bp-010h], al                    ; 88 46 f0
    3955     mov al, byte [di+04632h]                  ; 8a 85 32 46
     3966    mov al, byte [di+04637h]                  ; 8a 85 37 46
    39563967    mov byte [bp-00ah], al                    ; 88 46 f6
    39573968    dec si                                    ; 4e
    39583969    cmp si, strict byte 0ffffh                ; 83 fe ff
    3959     je short 01f91h                           ; 74 0a
     3970    je short 01fb4h                           ; 74 0a
    39603971    mov al, byte [bp-00ch]                    ; 8a 46 f4
    39613972    xor ah, ah                                ; 30 e4
    39623973    cmp ax, word [bp-016h]                    ; 3b 46 ea
    3963     jc short 01f94h                           ; 72 03
    3964     jmp near 02034h                           ; e9 a0 00
     3974    jc short 01fb7h                           ; 72 03
     3975    jmp near 02057h                           ; e9 a0 00
    39653976    mov al, byte [bp-014h]                    ; 8a 46 ec
    39663977    mov CL, strict byte 003h                  ; b1 03
    39673978    mov bx, ax                                ; 89 c3
    39683979    sal bx, CL                                ; d3 e3
    3969     mov al, byte [bx+04631h]                  ; 8a 87 31 46
     3980    mov al, byte [bx+04636h]                  ; 8a 87 36 46
    39703981    cmp al, cl                                ; 38 c8
    3971     jc short 01fb2h                           ; 72 0d
    3972     jbe short 01fb8h                          ; 76 11
     3982    jc short 01fd5h                           ; 72 0d
     3983    jbe short 01fdbh                          ; 76 11
    39733984    cmp AL, strict byte 005h                  ; 3c 05
    3974     je short 0200dh                           ; 74 62
     3985    je short 02030h                           ; 74 62
    39753986    cmp AL, strict byte 004h                  ; 3c 04
    3976     je short 01fb8h                           ; 74 09
    3977     jmp near 0202eh                           ; e9 7c 00
     3987    je short 01fdbh                           ; 74 09
     3988    jmp near 02051h                           ; e9 7c 00
    39783989    cmp AL, strict byte 002h                  ; 3c 02
    3979     je short 01fe1h                           ; 74 2b
    3980     jmp short 0202eh                          ; eb 76
     3990    je short 02004h                           ; 74 2b
     3991    jmp short 02051h                          ; eb 76
    39813992    mov bl, byte [bp-010h]                    ; 8a 5e f0
    39823993    xor bh, bh                                ; 30 ff
     
    39954006    mov bx, dx                                ; 89 d3
    39964007    mov dx, di                                ; 89 fa
    3997     call 01bcbh                               ; e8 ec fb
    3998     jmp short 0202eh                          ; eb 4d
     4008    call 01beeh                               ; e8 ec fb
     4009    jmp short 02051h                          ; eb 4d
    39994010    mov al, byte [bp-00ah]                    ; 8a 46 f6
    40004011    push ax                                   ; 50
     
    40134024    mov bx, ax                                ; 89 c3
    40144025    mov ax, di                                ; 89 f8
    4015     call 01cc3h                               ; e8 b8 fc
    4016     jmp short 0202eh                          ; eb 21
     4026    call 01ce6h                               ; e8 b8 fc
     4027    jmp short 02051h                          ; eb 21
    40174028    mov bl, byte [bp-016h]                    ; 8a 5e ea
    40184029    xor bh, bh                                ; 30 ff
     
    40284039    mov bx, dx                                ; 89 d3
    40294040    mov dx, di                                ; 89 fa
    4030     call 01dfdh                               ; e8 cf fd
     4041    call 01e20h                               ; e8 cf fd
    40314042    inc byte [bp-00ch]                        ; fe 46 f4
    4032     jmp near 01f81h                           ; e9 4d ff
     4043    jmp near 01fa4h                           ; e9 4d ff
    40334044    lea sp, [bp-004h]                         ; 8d 66 fc
    40344045    pop di                                    ; 5f
     
    40364047    pop bp                                    ; 5d
    40374048    retn                                      ; c3
    4038 biosfn_write_char_only_:                     ; 0xc203b LB 0x193
     4049biosfn_write_char_only_:                     ; 0xc205e LB 0x193
    40394050    push bp                                   ; 55
    40404051    mov bp, sp                                ; 89 e5
     
    40484059    mov dx, strict word 00049h                ; ba 49 00
    40494060    mov ax, strict word 00040h                ; b8 40 00
    4050     call 0319bh                               ; e8 44 11
    4051     xor ah, ah                                ; 30 e4
    4052     call 03170h                               ; e8 14 11
     4061    call 031beh                               ; e8 44 11
     4062    xor ah, ah                                ; 30 e4
     4063    call 03193h                               ; e8 14 11
    40534064    mov cl, al                                ; 88 c1
    40544065    mov byte [bp-00ch], al                    ; 88 46 f4
    40554066    cmp AL, strict byte 0ffh                  ; 3c ff
    4056     jne short 02068h                          ; 75 03
    4057     jmp near 021c7h                           ; e9 5f 01
     4067    jne short 0208bh                          ; 75 03
     4068    jmp near 021eah                           ; e9 5f 01
    40584069    mov bl, byte [bp-008h]                    ; 8a 5e f8
    40594070    xor bh, bh                                ; 30 ff
     
    40614072    lea bx, [bp-01ch]                         ; 8d 5e e4
    40624073    lea dx, [bp-01ah]                         ; 8d 56 e6
    4063     call 00a8ch                               ; e8 14 ea
     4074    call 00a8ch                               ; e8 f1 e9
    40644075    mov al, byte [bp-01ch]                    ; 8a 46 e4
    40654076    mov byte [bp-00eh], al                    ; 88 46 f2
     
    40684079    mov dx, 00084h                            ; ba 84 00
    40694080    mov ax, strict word 00040h                ; b8 40 00
    4070     call 0319bh                               ; e8 0e 11
     4081    call 031beh                               ; e8 0e 11
    40714082    mov bl, al                                ; 88 c3
    40724083    xor bh, bh                                ; 30 ff
     
    40754086    mov dx, strict word 0004ah                ; ba 4a 00
    40764087    mov ax, strict word 00040h                ; b8 40 00
    4077     call 031b7h                               ; e8 19 11
     4088    call 031dah                               ; e8 19 11
    40784089    mov di, ax                                ; 89 c7
    40794090    mov word [bp-016h], ax                    ; 89 46 ea
     
    40834094    mov CL, strict byte 003h                  ; b1 03
    40844095    sal bx, CL                                ; d3 e3
    4085     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    4086     jne short 02102h                          ; 75 4e
     4096    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     4097    jne short 02125h                          ; 75 4e
    40874098    mov ax, di                                ; 89 f8
    40884099    mul word [bp-018h]                        ; f7 66 e8
     
    41054116    dec si                                    ; 4e
    41064117    cmp si, strict byte 0ffffh                ; 83 fe ff
    4107     je short 02065h                           ; 74 84
     4118    je short 02088h                           ; 74 84
    41084119    mov dl, byte [bp-006h]                    ; 8a 56 fa
    41094120    xor dh, dh                                ; 30 f6
     
    41134124    mov bx, dx                                ; 89 d3
    41144125    sal bx, CL                                ; d3 e3
    4115     mov cx, word [bx+04633h]                  ; 8b 8f 33 46
     4126    mov cx, word [bx+04638h]                  ; 8b 8f 38 46
    41164127    mov bx, ax                                ; 89 c3
    41174128    mov dx, di                                ; 89 fa
    41184129    mov ax, cx                                ; 89 c8
    4119     call 031a9h                               ; e8 ab 10
     4130    call 031cch                               ; e8 ab 10
    41204131    inc di                                    ; 47
    41214132    inc di                                    ; 47
    4122     jmp short 020dbh                          ; eb d9
     4133    jmp short 020feh                          ; eb d9
    41234134    mov di, ax                                ; 89 c7
    4124     mov dl, byte [di+046afh]                  ; 8a 95 af 46
     4135    mov dl, byte [di+046b4h]                  ; 8a 95 b4 46
    41254136    xor dh, dh                                ; 30 f6
    41264137    mov CL, strict byte 006h                  ; b1 06
    41274138    mov di, dx                                ; 89 d7
    41284139    sal di, CL                                ; d3 e7
    4129     mov al, byte [di+046c5h]                  ; 8a 85 c5 46
     4140    mov al, byte [di+046cah]                  ; 8a 85 ca 46
    41304141    mov byte [bp-012h], al                    ; 88 46 ee
    4131     mov al, byte [bx+04632h]                  ; 8a 87 32 46
     4142    mov al, byte [bx+04637h]                  ; 8a 87 37 46
    41324143    mov byte [bp-010h], al                    ; 88 46 f0
    41334144    dec si                                    ; 4e
    41344145    cmp si, strict byte 0ffffh                ; 83 fe ff
    4135     je short 02179h                           ; 74 55
     4146    je short 0219ch                           ; 74 55
    41364147    mov dl, byte [bp-00eh]                    ; 8a 56 f2
    41374148    xor dh, dh                                ; 30 f6
    41384149    cmp dx, word [bp-016h]                    ; 3b 56 ea
    4139     jnc short 02179h                          ; 73 4b
     4150    jnc short 0219ch                          ; 73 4b
    41404151    mov dl, byte [bp-00ch]                    ; 8a 56 f4
    41414152    mov CL, strict byte 003h                  ; b1 03
    41424153    mov bx, dx                                ; 89 d3
    41434154    sal bx, CL                                ; d3 e3
    4144     mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
     4155    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
    41454156    cmp bl, cl                                ; 38 cb
    4146     jc short 0214dh                           ; 72 0e
    4147     jbe short 02154h                          ; 76 13
     4157    jc short 02170h                           ; 72 0e
     4158    jbe short 02177h                          ; 76 13
    41484159    cmp bl, 005h                              ; 80 fb 05
    4149     je short 021a0h                           ; 74 5a
     4160    je short 021c3h                           ; 74 5a
    41504161    cmp bl, 004h                              ; 80 fb 04
    4151     je short 02154h                           ; 74 09
    4152     jmp short 021c1h                          ; eb 74
     4162    je short 02177h                           ; 74 09
     4163    jmp short 021e4h                          ; eb 74
    41534164    cmp bl, 002h                              ; 80 fb 02
    4154     je short 0217bh                           ; 74 29
    4155     jmp short 021c1h                          ; eb 6d
     4165    je short 0219eh                           ; 74 29
     4166    jmp short 021e4h                          ; eb 6d
    41564167    mov dl, byte [bp-012h]                    ; 8a 56 ee
    41574168    xor dh, dh                                ; 30 f6
     
    41684179    mov ax, dx                                ; 89 d0
    41694180    mov dx, di                                ; 89 fa
    4170     call 01bcbh                               ; e8 54 fa
    4171     jmp short 021c1h                          ; eb 48
    4172     jmp short 021c7h                          ; eb 4c
     4181    call 01beeh                               ; e8 54 fa
     4182    jmp short 021e4h                          ; eb 48
     4183    jmp short 021eah                          ; eb 4c
    41734184    mov bl, byte [bp-010h]                    ; 8a 5e f0
    41744185    xor bh, bh                                ; 30 ff
     
    41854196    mov bx, dx                                ; 89 d3
    41864197    mov dx, di                                ; 89 fa
    4187     call 01cc3h                               ; e8 25 fb
    4188     jmp short 021c1h                          ; eb 21
     4198    call 01ce6h                               ; e8 25 fb
     4199    jmp short 021e4h                          ; eb 21
    41894200    mov bl, byte [bp-016h]                    ; 8a 5e ea
    41904201    xor bh, bh                                ; 30 ff
     
    42004211    mov ax, bx                                ; 89 d8
    42014212    mov bx, di                                ; 89 fb
    4202     call 01dfdh                               ; e8 3c fc
     4213    call 01e20h                               ; e8 3c fc
    42034214    inc byte [bp-00eh]                        ; fe 46 f2
    4204     jmp near 0211eh                           ; e9 57 ff
     4215    jmp near 02141h                           ; e9 57 ff
    42054216    lea sp, [bp-004h]                         ; 8d 66 fc
    42064217    pop di                                    ; 5f
     
    42084219    pop bp                                    ; 5d
    42094220    retn                                      ; c3
    4210 biosfn_write_pixel_:                         ; 0xc21ce LB 0x17f
     4221biosfn_write_pixel_:                         ; 0xc21f1 LB 0x17f
    42114222    push bp                                   ; 55
    42124223    mov bp, sp                                ; 89 e5
     
    42184229    mov dx, strict word 00049h                ; ba 49 00
    42194230    mov ax, strict word 00040h                ; b8 40 00
    4220     call 0319bh                               ; e8 b4 0f
    4221     xor ah, ah                                ; 30 e4
    4222     call 03170h                               ; e8 84 0f
     4231    call 031beh                               ; e8 b4 0f
     4232    xor ah, ah                                ; 30 e4
     4233    call 03193h                               ; e8 84 0f
    42234234    mov ch, al                                ; 88 c5
    42244235    cmp AL, strict byte 0ffh                  ; 3c ff
    4225     je short 02219h                           ; 74 27
     4236    je short 0223ch                           ; 74 27
    42264237    xor ah, ah                                ; 30 e4
    42274238    mov CL, strict byte 003h                  ; b1 03
    42284239    mov bx, ax                                ; 89 c3
    42294240    sal bx, CL                                ; d3 e3
    4230     cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
    4231     je short 02219h                           ; 74 18
    4232     mov al, byte [bx+04631h]                  ; 8a 87 31 46
     4241    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     4242    je short 0223ch                           ; 74 18
     4243    mov al, byte [bx+04636h]                  ; 8a 87 36 46
    42334244    cmp al, cl                                ; 38 c8
    4234     jc short 02215h                           ; 72 0c
    4235     jbe short 0221fh                          ; 76 14
     4245    jc short 02238h                           ; 72 0c
     4246    jbe short 02242h                          ; 76 14
    42364247    cmp AL, strict byte 005h                  ; 3c 05
    4237     je short 0221ch                           ; 74 0d
     4248    je short 0223fh                           ; 74 0d
    42384249    cmp AL, strict byte 004h                  ; 3c 04
    4239     je short 0221fh                           ; 74 0c
    4240     jmp short 02219h                          ; eb 04
     4250    je short 02242h                           ; 74 0c
     4251    jmp short 0223ch                          ; eb 04
    42414252    cmp AL, strict byte 002h                  ; 3c 02
    4242     je short 0228ah                           ; 74 71
    4243     jmp near 0231eh                           ; e9 02 01
    4244     jmp near 02324h                           ; e9 05 01
     4253    je short 022adh                           ; 74 71
     4254    jmp near 02341h                           ; e9 02 01
     4255    jmp near 02347h                           ; e9 05 01
    42454256    mov dx, strict word 0004ah                ; ba 4a 00
    42464257    mov ax, strict word 00040h                ; b8 40 00
    4247     call 031b7h                               ; e8 8f 0f
     4258    call 031dah                               ; e8 8f 0f
    42484259    mov bx, ax                                ; 89 c3
    42494260    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    42674278    mov dx, bx                                ; 89 da
    42684279    mov ax, 0a000h                            ; b8 00 a0
    4269     call 0319bh                               ; e8 3f 0f
     4280    call 031beh                               ; e8 3f 0f
    42704281    test byte [bp-004h], 080h                 ; f6 46 fc 80
    4271     je short 02269h                           ; 74 07
     4282    je short 0228ch                           ; 74 07
    42724283    mov ax, 01803h                            ; b8 03 18
    42734284    mov dx, 003ceh                            ; ba ce 03
     
    42784289    mov dx, word [bp-006h]                    ; 8b 56 fa
    42794290    mov ax, 0a000h                            ; b8 00 a0
    4280     call 031a9h                               ; e8 30 0f
     4291    call 031cch                               ; e8 30 0f
    42814292    mov ax, 0ff08h                            ; b8 08 ff
    42824293    mov dx, 003ceh                            ; ba ce 03
     
    42864297    mov ax, strict word 00003h                ; b8 03 00
    42874298    out DX, ax                                ; ef
    4288     jmp short 02219h                          ; eb 8f
     4299    jmp short 0223ch                          ; eb 8f
    42894300    mov ax, word [bp-00ah]                    ; 8b 46 f6
    42904301    shr ax, 1                                 ; d1 e8
    42914302    mov si, strict word 00050h                ; be 50 00
    42924303    mul si                                    ; f7 e6
    4293     cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
    4294     jne short 022a4h                          ; 75 09
     4304    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     4305    jne short 022c7h                          ; 75 09
    42954306    mov bx, word [bp-008h]                    ; 8b 5e f8
    42964307    shr bx, 1                                 ; d1 eb
    42974308    shr bx, 1                                 ; d1 eb
    4298     jmp short 022a9h                          ; eb 05
     4309    jmp short 022cch                          ; eb 05
    42994310    mov bx, word [bp-008h]                    ; 8b 5e f8
    43004311    shr bx, CL                                ; d3 eb
     
    43024313    mov word [bp-006h], bx                    ; 89 5e fa
    43034314    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    4304     je short 022b8h                           ; 74 04
     4315    je short 022dbh                           ; 74 04
    43054316    add byte [bp-005h], 020h                  ; 80 46 fb 20
    43064317    mov dx, word [bp-006h]                    ; 8b 56 fa
    43074318    mov ax, 0b800h                            ; b8 00 b8
    4308     call 0319bh                               ; e8 da 0e
     4319    call 031beh                               ; e8 da 0e
    43094320    mov bl, al                                ; 88 c3
    43104321    mov al, ch                                ; 88 e8
     
    43134324    mov si, ax                                ; 89 c6
    43144325    sal si, CL                                ; d3 e6
    4315     cmp byte [si+04632h], 002h                ; 80 bc 32 46 02
    4316     jne short 022eeh                          ; 75 1a
     4326    cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
     4327    jne short 02311h                          ; 75 1a
    43174328    mov al, byte [bp-008h]                    ; 8a 46 f8
    43184329    and al, cl                                ; 20 c8
     
    43264337    sal bh, CL                                ; d2 e7
    43274338    mov AL, strict byte 003h                  ; b0 03
    4328     jmp short 02301h                          ; eb 13
     4339    jmp short 02324h                          ; eb 13
    43294340    mov al, byte [bp-008h]                    ; 8a 46 f8
    43304341    and AL, strict byte 007h                  ; 24 07
     
    43374348    sal al, CL                                ; d2 e0
    43384349    test byte [bp-004h], 080h                 ; f6 46 fc 80
    4339     je short 0230dh                           ; 74 04
     4350    je short 02330h                           ; 74 04
    43404351    xor bl, bh                                ; 30 fb
    4341     jmp short 02313h                          ; eb 06
     4352    jmp short 02336h                          ; eb 06
    43424353    not al                                    ; f6 d0
    43434354    and bl, al                                ; 20 c3
     
    43464357    mov dx, word [bp-006h]                    ; 8b 56 fa
    43474358    mov ax, 0b800h                            ; b8 00 b8
    4348     call 031a9h                               ; e8 8b 0e
     4359    call 031cch                               ; e8 8b 0e
    43494360    lea sp, [bp-002h]                         ; 8d 66 fe
    43504361    pop si                                    ; 5e
     
    43534364    mov dx, strict word 0004ah                ; ba 4a 00
    43544365    mov ax, strict word 00040h                ; b8 40 00
    4355     call 031b7h                               ; e8 8a 0e
     4366    call 031dah                               ; e8 8a 0e
    43564367    mov bx, ax                                ; 89 c3
    43574368    sal bx, CL                                ; d3 e3
     
    43664377    mov dx, word [bp-006h]                    ; 8b 56 fa
    43674378    mov ax, 0a000h                            ; b8 00 a0
    4368     jmp short 0231bh                          ; eb ce
    4369 biosfn_write_teletype_:                      ; 0xc234d LB 0x25f
     4379    jmp short 0233eh                          ; eb ce
     4380biosfn_write_teletype_:                      ; 0xc2370 LB 0x25f
    43704381    push bp                                   ; 55
    43714382    mov bp, sp                                ; 89 e5
     
    43784389    mov byte [bp-00ch], cl                    ; 88 4e f4
    43794390    cmp dl, 0ffh                              ; 80 fa ff
    4380     jne short 02372h                          ; 75 0c
     4391    jne short 02395h                          ; 75 0c
    43814392    mov dx, strict word 00062h                ; ba 62 00
    43824393    mov ax, strict word 00040h                ; b8 40 00
    4383     call 0319bh                               ; e8 2c 0e
     4394    call 031beh                               ; e8 2c 0e
    43844395    mov byte [bp-014h], al                    ; 88 46 ec
    43854396    mov dx, strict word 00049h                ; ba 49 00
    43864397    mov ax, strict word 00040h                ; b8 40 00
    4387     call 0319bh                               ; e8 20 0e
     4398    call 031beh                               ; e8 20 0e
    43884399    mov bl, al                                ; 88 c3
    43894400    xor bh, bh                                ; 30 ff
    43904401    mov ax, bx                                ; 89 d8
    4391     call 03170h                               ; e8 ec 0d
     4402    call 03193h                               ; e8 ec 0d
    43924403    mov byte [bp-00ah], al                    ; 88 46 f6
    43934404    cmp AL, strict byte 0ffh                  ; 3c ff
    4394     je short 023eeh                           ; 74 63
     4405    je short 02411h                           ; 74 63
    43954406    mov bl, byte [bp-014h]                    ; 8a 5e ec
    43964407    mov ax, bx                                ; 89 d8
    43974408    lea bx, [bp-01eh]                         ; 8d 5e e2
    43984409    lea dx, [bp-01ch]                         ; 8d 56 e4
    4399     call 00a8ch                               ; e8 f3 e6
     4410    call 00a8ch                               ; e8 d0 e6
    44004411    mov al, byte [bp-01eh]                    ; 8a 46 e2
    44014412    mov byte [bp-006h], al                    ; 88 46 fa
     
    44044415    mov dx, 00084h                            ; ba 84 00
    44054416    mov ax, strict word 00040h                ; b8 40 00
    4406     call 0319bh                               ; e8 ed 0d
     4417    call 031beh                               ; e8 ed 0d
    44074418    mov bl, al                                ; 88 c3
    44084419    xor bh, bh                                ; 30 ff
     
    44114422    mov dx, strict word 0004ah                ; ba 4a 00
    44124423    mov ax, strict word 00040h                ; b8 40 00
    4413     call 031b7h                               ; e8 f8 0d
     4424    call 031dah                               ; e8 f8 0d
    44144425    mov word [bp-01ah], ax                    ; 89 46 e6
    44154426    mov al, byte [bp-016h]                    ; 8a 46 ea
    44164427    cmp AL, strict byte 008h                  ; 3c 08
    4417     jc short 023d5h                           ; 72 0c
    4418     jbe short 023dch                          ; 76 11
     4428    jc short 023f8h                           ; 72 0c
     4429    jbe short 023ffh                          ; 76 11
    44194430    cmp AL, strict byte 00dh                  ; 3c 0d
    4420     je short 023e7h                           ; 74 18
     4431    je short 0240ah                           ; 74 18
    44214432    cmp AL, strict byte 00ah                  ; 3c 0a
    4422     je short 023f1h                           ; 74 1e
    4423     jmp short 023f4h                          ; eb 1f
     4433    je short 02414h                           ; 74 1e
     4434    jmp short 02417h                          ; eb 1f
    44244435    cmp AL, strict byte 007h                  ; 3c 07
    4425     jne short 023f4h                          ; 75 1b
    4426     jmp near 024eah                           ; e9 0e 01
     4436    jne short 02417h                          ; 75 1b
     4437    jmp near 0250dh                           ; e9 0e 01
    44274438    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4428     jbe short 023ebh                          ; 76 09
     4439    jbe short 0240eh                          ; 76 09
    44294440    dec byte [bp-006h]                        ; fe 4e fa
    4430     jmp short 023ebh                          ; eb 04
     4441    jmp short 0240eh                          ; eb 04
    44314442    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    4432     jmp near 024eah                           ; e9 fc 00
    4433     jmp near 025a5h                           ; e9 b4 01
    4434     jmp near 024e7h                           ; e9 f3 00
     4443    jmp near 0250dh                           ; e9 fc 00
     4444    jmp near 025c8h                           ; e9 b4 01
     4445    jmp near 0250ah                           ; e9 f3 00
    44354446    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    44364447    xor bh, bh                                ; 30 ff
     
    44384449    mov si, bx                                ; 89 de
    44394450    sal si, CL                                ; d3 e6
    4440     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
    4441     jne short 0244ch                          ; 75 46
     4451    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4452    jne short 0246fh                          ; 75 46
    44424453    mov ax, word [bp-01ah]                    ; 8b 46 e6
    44434454    mul word [bp-018h]                        ; f7 66 e8
     
    44564467    add cx, ax                                ; 01 c1
    44574468    mov bl, byte [bp-016h]                    ; 8a 5e ea
    4458     mov ax, word [si+04633h]                  ; 8b 84 33 46
     4469    mov ax, word [si+04638h]                  ; 8b 84 38 46
    44594470    mov dx, cx                                ; 89 ca
    4460     call 031a9h                               ; e8 74 0d
     4471    call 031cch                               ; e8 74 0d
    44614472    cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
    4462     jne short 02492h                          ; 75 57
     4473    jne short 024b5h                          ; 75 57
    44634474    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    44644475    xor bh, bh                                ; 30 ff
    44654476    mov dx, cx                                ; 89 ca
    44664477    inc dx                                    ; 42
    4467     mov ax, word [si+04633h]                  ; 8b 84 33 46
    4468     call 031a9h                               ; e8 5f 0d
    4469     jmp short 02492h                          ; eb 46
    4470     mov bl, byte [bx+046afh]                  ; 8a 9f af 46
     4478    mov ax, word [si+04638h]                  ; 8b 84 38 46
     4479    call 031cch                               ; e8 5f 0d
     4480    jmp short 024b5h                          ; eb 46
     4481    mov bl, byte [bx+046b4h]                  ; 8a 9f b4 46
    44714482    mov CL, strict byte 006h                  ; b1 06
    44724483    sal bx, CL                                ; d3 e3
    4473     mov bl, byte [bx+046c5h]                  ; 8a 9f c5 46
    4474     mov ah, byte [si+04632h]                  ; 8a a4 32 46
    4475     mov al, byte [si+04631h]                  ; 8a 84 31 46
     4484    mov bl, byte [bx+046cah]                  ; 8a 9f ca 46
     4485    mov ah, byte [si+04637h]                  ; 8a a4 37 46
     4486    mov al, byte [si+04636h]                  ; 8a 84 36 46
    44764487    cmp AL, strict byte 003h                  ; 3c 03
    4477     jc short 02470h                           ; 72 0c
    4478     jbe short 02476h                          ; 76 10
     4488    jc short 02493h                           ; 72 0c
     4489    jbe short 02499h                          ; 76 10
    44794490    cmp AL, strict byte 005h                  ; 3c 05
    4480     je short 024b4h                           ; 74 4a
     4491    je short 024d7h                           ; 74 4a
    44814492    cmp AL, strict byte 004h                  ; 3c 04
    4482     je short 02476h                           ; 74 08
    4483     jmp short 024d7h                          ; eb 67
     4493    je short 02499h                           ; 74 08
     4494    jmp short 024fah                          ; eb 67
    44844495    cmp AL, strict byte 002h                  ; 3c 02
    4485     je short 02494h                           ; 74 20
    4486     jmp short 024d7h                          ; eb 61
     4496    je short 024b7h                           ; 74 20
     4497    jmp short 024fah                          ; eb 61
    44874498    xor bh, bh                                ; 30 ff
    44884499    push bx                                   ; 53
     
    44964507    mov dx, ax                                ; 89 c2
    44974508    mov al, byte [bp-016h]                    ; 8a 46 ea
    4498     call 01bcbh                               ; e8 39 f7
    4499     jmp short 024d7h                          ; eb 43
     4509    call 01beeh                               ; e8 39 f7
     4510    jmp short 024fah                          ; eb 43
    45004511    mov al, ah                                ; 88 e0
    45014512    xor ah, ah                                ; 30 e4
     
    45104521    mov dx, ax                                ; 89 c2
    45114522    mov al, byte [bp-016h]                    ; 8a 46 ea
    4512     call 01cc3h                               ; e8 11 f8
    4513     jmp short 024d7h                          ; eb 23
     4523    call 01ce6h                               ; e8 11 f8
     4524    jmp short 024fah                          ; eb 23
    45144525    mov al, byte [bp-01ah]                    ; 8a 46 e6
    45154526    xor ah, ah                                ; 30 e4
     
    45264537    mov bx, si                                ; 89 f3
    45274538    mov ax, di                                ; 89 f8
    4528     call 01dfdh                               ; e8 26 f9
     4539    call 01e20h                               ; e8 26 f9
    45294540    inc byte [bp-006h]                        ; fe 46 fa
    45304541    mov bl, byte [bp-006h]                    ; 8a 5e fa
    45314542    xor bh, bh                                ; 30 ff
    45324543    cmp bx, word [bp-01ah]                    ; 3b 5e e6
    4533     jne short 024eah                          ; 75 06
     4544    jne short 0250dh                          ; 75 06
    45344545    mov byte [bp-006h], bh                    ; 88 7e fa
    45354546    inc byte [bp-008h]                        ; fe 46 f8
     
    45384549    mov ax, word [bp-018h]                    ; 8b 46 e8
    45394550    cmp bx, ax                                ; 39 c3
    4540     jne short 02567h                          ; 75 71
     4551    jne short 0258ah                          ; 75 71
    45414552    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    45424553    xor bh, ah                                ; 30 e7
     
    45524563    ; dec al                                    ; fe c8
    45534564    mov byte [bp-012h], al                    ; 88 46 ee
    4554     cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
    4555     jne short 02569h                          ; 75 51
     4565    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
     4566    jne short 0258ch                          ; 75 51
    45564567    mov ax, word [bp-01ah]                    ; 8b 46 e6
    45574568    mul word [bp-018h]                        ; f7 66 e8
     
    45744585    add dx, ax                                ; 01 c2
    45754586    inc dx                                    ; 42
    4576     mov ax, word [si+04633h]                  ; 8b 84 33 46
    4577     call 0319bh                               ; e8 51 0c
     4587    mov ax, word [si+04638h]                  ; 8b 84 38 46
     4588    call 031beh                               ; e8 51 0c
    45784589    mov dx, strict word 00001h                ; ba 01 00
    45794590    push dx                                   ; 52
     
    45894600    xor bl, al                                ; 30 c3
    45904601    mov ax, strict word 00001h                ; b8 01 00
    4591     jmp short 02581h                          ; eb 1a
    4592     jmp short 02587h                          ; eb 1e
     4602    jmp short 025a4h                          ; eb 1a
     4603    jmp short 025aah                          ; eb 1e
    45934604    mov ax, strict word 00001h                ; b8 01 00
    45944605    push ax                                   ; 50
     
    46034614    xor bl, bl                                ; 30 db
    46044615    xor dx, dx                                ; 31 d2
    4605     call 01655h                               ; e8 d1 f0
     4616    call 01678h                               ; e8 d1 f0
    46064617    dec byte [bp-008h]                        ; fe 4e f8
    46074618    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    46154626    mov bl, byte [bp-014h]                    ; 8a 5e ec
    46164627    mov ax, bx                                ; 89 d8
    4617     call 00e91h                               ; e8 ec e8
     4628    call 00e91h                               ; e8 c9 e8
    46184629    lea sp, [bp-004h]                         ; 8d 66 fc
    46194630    pop di                                    ; 5f
     
    46214632    pop bp                                    ; 5d
    46224633    retn                                      ; c3
    4623 get_font_access_:                            ; 0xc25ac LB 0x2c
     4634get_font_access_:                            ; 0xc25cf LB 0x2c
    46244635    push bp                                   ; 55
    46254636    mov bp, sp                                ; 89 e5
     
    46454656    pop bp                                    ; 5d
    46464657    retn                                      ; c3
    4647 release_font_access_:                        ; 0xc25d8 LB 0x3f
     4658release_font_access_:                        ; 0xc25fb LB 0x3f
    46484659    push bp                                   ; 55
    46494660    mov bp, sp                                ; 89 e5
     
    46794690    pop bp                                    ; 5d
    46804691    retn                                      ; c3
    4681 set_scan_lines_:                             ; 0xc2617 LB 0xc8
     4692set_scan_lines_:                             ; 0xc263a LB 0xc8
    46824693    push bp                                   ; 55
    46834694    mov bp, sp                                ; 89 e5
     
    46904701    mov dx, strict word 00063h                ; ba 63 00
    46914702    mov ax, strict word 00040h                ; b8 40 00
    4692     call 031b7h                               ; e8 8d 0b
     4703    call 031dah                               ; e8 8d 0b
    46934704    mov dx, ax                                ; 89 c2
    46944705    mov si, ax                                ; 89 c6
     
    47074718    out DX, AL                                ; ee
    47084719    cmp bl, 008h                              ; 80 fb 08
    4709     jne short 0264eh                          ; 75 08
     4720    jne short 02671h                          ; 75 08
    47104721    mov dx, strict word 00007h                ; ba 07 00
    47114722    mov ax, strict word 00006h                ; b8 06 00
    4712     jmp short 0265bh                          ; eb 0d
     4723    jmp short 0267eh                          ; eb 0d
    47134724    mov dl, bl                                ; 88 da
    47144725    sub dl, 003h                              ; 80 ea 03
     
    47174728    sub AL, strict byte 004h                  ; 2c 04
    47184729    xor ah, ah                                ; 30 e4
    4719     call 00ddeh                               ; e8 80 e7
     4730    call 00ddeh                               ; e8 5d e7
    47204731    mov byte [bp-00ah], bl                    ; 88 5e f6
    47214732    mov byte [bp-009h], 000h                  ; c6 46 f7 00
     
    47234734    mov dx, 00085h                            ; ba 85 00
    47244735    mov ax, strict word 00040h                ; b8 40 00
    4725     call 031c5h                               ; e8 54 0b
     4736    call 031e8h                               ; e8 54 0b
    47264737    mov AL, strict byte 012h                  ; b0 12
    47274738    mov dx, si                                ; 89 f2
     
    47614772    mov dx, 00084h                            ; ba 84 00
    47624773    mov ax, strict word 00040h                ; b8 40 00
    4763     call 031a9h                               ; e8 f1 0a
     4774    call 031cch                               ; e8 f1 0a
    47644775    mov dx, strict word 0004ah                ; ba 4a 00
    47654776    mov ax, strict word 00040h                ; b8 40 00
    4766     call 031b7h                               ; e8 f6 0a
     4777    call 031dah                               ; e8 f6 0a
    47674778    mov dx, ax                                ; 89 c2
    47684779    mov al, cl                                ; 88 c8
     
    47734784    mov dx, strict word 0004ch                ; ba 4c 00
    47744785    mov ax, strict word 00040h                ; b8 40 00
    4775     call 031c5h                               ; e8 ef 0a
     4786    call 031e8h                               ; e8 ef 0a
    47764787    lea sp, [bp-008h]                         ; 8d 66 f8
    47774788    pop si                                    ; 5e
     
    47814792    pop bp                                    ; 5d
    47824793    retn                                      ; c3
    4783 biosfn_load_text_user_pat_:                  ; 0xc26df LB 0x85
     4794biosfn_load_text_user_pat_:                  ; 0xc2702 LB 0x85
    47844795    push bp                                   ; 55
    47854796    mov bp, sp                                ; 89 e5
     
    47914802    mov word [bp-00ah], bx                    ; 89 5e f6
    47924803    mov word [bp-00ch], cx                    ; 89 4e f4
    4793     call 025ach                               ; e8 b6 fe
     4804    call 025cfh                               ; e8 b6 fe
    47944805    mov al, byte [bp+006h]                    ; 8a 46 06
    47954806    and AL, strict byte 003h                  ; 24 03
     
    48064817    xor bx, bx                                ; 31 db
    48074818    cmp bx, word [bp-00ch]                    ; 3b 5e f4
    4808     jnc short 0274ah                          ; 73 32
     4819    jnc short 0276dh                          ; 73 32
    48094820    mov al, byte [bp+008h]                    ; 8a 46 08
    48104821    xor ah, ah                                ; 30 e4
     
    48244835    mov es, ax                                ; 8e c0
    48254836    cld                                       ; fc
    4826     jcxz 02747h                               ; e3 06
     4837    jcxz 0276ah                               ; e3 06
    48274838    push DS                                   ; 1e
    48284839    mov ds, dx                                ; 8e da
     
    48304841    pop DS                                    ; 1f
    48314842    inc bx                                    ; 43
    4832     jmp short 02713h                          ; eb c9
    4833     call 025d8h                               ; e8 8b fe
     4843    jmp short 02736h                          ; eb c9
     4844    call 025fbh                               ; e8 8b fe
    48344845    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
    4835     jc short 0275bh                           ; 72 08
     4846    jc short 0277eh                           ; 72 08
    48364847    mov al, byte [bp+008h]                    ; 8a 46 08
    48374848    xor ah, ah                                ; 30 e4
    4838     call 02617h                               ; e8 bc fe
     4849    call 0263ah                               ; e8 bc fe
    48394850    lea sp, [bp-004h]                         ; 8d 66 fc
    48404851    pop di                                    ; 5f
     
    48424853    pop bp                                    ; 5d
    48434854    retn 00006h                               ; c2 06 00
    4844 biosfn_load_text_8_14_pat_:                  ; 0xc2764 LB 0x76
     4855biosfn_load_text_8_14_pat_:                  ; 0xc2787 LB 0x76
    48454856    push bp                                   ; 55
    48464857    mov bp, sp                                ; 89 e5
     
    48524863    push ax                                   ; 50
    48534864    mov byte [bp-00ah], al                    ; 88 46 f6
    4854     call 025ach                               ; e8 39 fe
     4865    call 025cfh                               ; e8 39 fe
    48554866    mov al, dl                                ; 88 d0
    48564867    and AL, strict byte 003h                  ; 24 03
     
    48664877    mov word [bp-00ch], bx                    ; 89 5e f4
    48674878    xor bx, bx                                ; 31 db
    4868     jmp short 02796h                          ; eb 06
     4879    jmp short 027b9h                          ; eb 06
    48694880    cmp bx, 00100h                            ; 81 fb 00 01
    4870     jnc short 027c2h                          ; 73 2c
     4881    jnc short 027e5h                          ; 73 2c
    48714882    mov ax, bx                                ; 89 d8
    48724883    mov si, strict word 0000eh                ; be 0e 00
     
    48764887    sal di, CL                                ; d3 e7
    48774888    add di, word [bp-00ch]                    ; 03 7e f4
    4878     mov si, 05bedh                            ; be ed 5b
     4889    mov si, 05bf2h                            ; be f2 5b
    48794890    add si, ax                                ; 01 c6
    48804891    mov cx, strict word 0000eh                ; b9 0e 00
     
    48834894    mov es, ax                                ; 8e c0
    48844895    cld                                       ; fc
    4885     jcxz 027bfh                               ; e3 06
     4896    jcxz 027e2h                               ; e3 06
    48864897    push DS                                   ; 1e
    48874898    mov ds, dx                                ; 8e da
     
    48894900    pop DS                                    ; 1f
    48904901    inc bx                                    ; 43
    4891     jmp short 02790h                          ; eb ce
    4892     call 025d8h                               ; e8 13 fe
     4902    jmp short 027b3h                          ; eb ce
     4903    call 025fbh                               ; e8 13 fe
    48934904    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4894     jc short 027d1h                           ; 72 06
     4905    jc short 027f4h                           ; 72 06
    48954906    mov ax, strict word 0000eh                ; b8 0e 00
    4896     call 02617h                               ; e8 46 fe
     4907    call 0263ah                               ; e8 46 fe
    48974908    lea sp, [bp-008h]                         ; 8d 66 f8
    48984909    pop di                                    ; 5f
     
    49024913    pop bp                                    ; 5d
    49034914    retn                                      ; c3
    4904 biosfn_load_text_8_8_pat_:                   ; 0xc27da LB 0x74
     4915biosfn_load_text_8_8_pat_:                   ; 0xc27fd LB 0x74
    49054916    push bp                                   ; 55
    49064917    mov bp, sp                                ; 89 e5
     
    49124923    push ax                                   ; 50
    49134924    mov byte [bp-00ah], al                    ; 88 46 f6
    4914     call 025ach                               ; e8 c3 fd
     4925    call 025cfh                               ; e8 c3 fd
    49154926    mov al, dl                                ; 88 d0
    49164927    and AL, strict byte 003h                  ; 24 03
     
    49264937    mov word [bp-00ch], bx                    ; 89 5e f4
    49274938    xor bx, bx                                ; 31 db
    4928     jmp short 0280ch                          ; eb 06
     4939    jmp short 0282fh                          ; eb 06
    49294940    cmp bx, 00100h                            ; 81 fb 00 01
    4930     jnc short 02836h                          ; 73 2a
     4941    jnc short 02859h                          ; 73 2a
    49314942    mov CL, strict byte 003h                  ; b1 03
    49324943    mov si, bx                                ; 89 de
     
    49364947    sal di, CL                                ; d3 e7
    49374948    add di, word [bp-00ch]                    ; 03 7e f4
    4938     add si, 053edh                            ; 81 c6 ed 53
     4949    add si, 053f2h                            ; 81 c6 f2 53
    49394950    mov cx, strict word 00008h                ; b9 08 00
    49404951    mov dx, 0c000h                            ; ba 00 c0
     
    49424953    mov es, ax                                ; 8e c0
    49434954    cld                                       ; fc
    4944     jcxz 02833h                               ; e3 06
     4955    jcxz 02856h                               ; e3 06
    49454956    push DS                                   ; 1e
    49464957    mov ds, dx                                ; 8e da
     
    49484959    pop DS                                    ; 1f
    49494960    inc bx                                    ; 43
    4950     jmp short 02806h                          ; eb d0
    4951     call 025d8h                               ; e8 9f fd
     4961    jmp short 02829h                          ; eb d0
     4962    call 025fbh                               ; e8 9f fd
    49524963    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    4953     jc short 02845h                           ; 72 06
     4964    jc short 02868h                           ; 72 06
    49544965    mov ax, strict word 00008h                ; b8 08 00
    4955     call 02617h                               ; e8 d2 fd
     4966    call 0263ah                               ; e8 d2 fd
    49564967    lea sp, [bp-008h]                         ; 8d 66 f8
    49574968    pop di                                    ; 5f
     
    49614972    pop bp                                    ; 5d
    49624973    retn                                      ; c3
    4963 biosfn_load_text_8_16_pat_:                  ; 0xc284e LB 0x74
     4974biosfn_load_text_8_16_pat_:                  ; 0xc2871 LB 0x74
    49644975    push bp                                   ; 55
    49654976    mov bp, sp                                ; 89 e5
     
    49714982    push ax                                   ; 50
    49724983    mov byte [bp-00ah], al                    ; 88 46 f6
    4973     call 025ach                               ; e8 4f fd
     4984    call 025cfh                               ; e8 4f fd
    49744985    mov al, dl                                ; 88 d0
    49754986    and AL, strict byte 003h                  ; 24 03
     
    49854996    mov word [bp-00ch], bx                    ; 89 5e f4
    49864997    xor bx, bx                                ; 31 db
    4987     jmp short 02880h                          ; eb 06
     4998    jmp short 028a3h                          ; eb 06
    49884999    cmp bx, 00100h                            ; 81 fb 00 01
    4989     jnc short 028aah                          ; 73 2a
     5000    jnc short 028cdh                          ; 73 2a
    49905001    mov CL, strict byte 004h                  ; b1 04
    49915002    mov si, bx                                ; 89 de
     
    49955006    sal di, CL                                ; d3 e7
    49965007    add di, word [bp-00ch]                    ; 03 7e f4
    4997     add si, 069edh                            ; 81 c6 ed 69
     5008    add si, 069f2h                            ; 81 c6 f2 69
    49985009    mov cx, strict word 00010h                ; b9 10 00
    49995010    mov dx, 0c000h                            ; ba 00 c0
     
    50015012    mov es, ax                                ; 8e c0
    50025013    cld                                       ; fc
    5003     jcxz 028a7h                               ; e3 06
     5014    jcxz 028cah                               ; e3 06
    50045015    push DS                                   ; 1e
    50055016    mov ds, dx                                ; 8e da
     
    50075018    pop DS                                    ; 1f
    50085019    inc bx                                    ; 43
    5009     jmp short 0287ah                          ; eb d0
    5010     call 025d8h                               ; e8 2b fd
     5020    jmp short 0289dh                          ; eb d0
     5021    call 025fbh                               ; e8 2b fd
    50115022    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
    5012     jc short 028b9h                           ; 72 06
     5023    jc short 028dch                           ; 72 06
    50135024    mov ax, strict word 00010h                ; b8 10 00
    5014     call 02617h                               ; e8 5e fd
     5025    call 0263ah                               ; e8 5e fd
    50155026    lea sp, [bp-008h]                         ; 8d 66 f8
    50165027    pop di                                    ; 5f
     
    50205031    pop bp                                    ; 5d
    50215032    retn                                      ; c3
    5022 biosfn_load_gfx_8_8_chars_:                  ; 0xc28c2 LB 0x5
     5033biosfn_load_gfx_8_8_chars_:                  ; 0xc28e5 LB 0x5
    50235034    push bp                                   ; 55
    50245035    mov bp, sp                                ; 89 e5
    50255036    pop bp                                    ; 5d
    50265037    retn                                      ; c3
    5027 biosfn_load_gfx_user_chars_:                 ; 0xc28c7 LB 0x7
     5038biosfn_load_gfx_user_chars_:                 ; 0xc28ea LB 0x7
    50285039    push bp                                   ; 55
    50295040    mov bp, sp                                ; 89 e5
    50305041    pop bp                                    ; 5d
    50315042    retn 00002h                               ; c2 02 00
    5032 biosfn_load_gfx_8_14_chars_:                 ; 0xc28ce LB 0x5
     5043biosfn_load_gfx_8_14_chars_:                 ; 0xc28f1 LB 0x5
    50335044    push bp                                   ; 55
    50345045    mov bp, sp                                ; 89 e5
    50355046    pop bp                                    ; 5d
    50365047    retn                                      ; c3
    5037 biosfn_load_gfx_8_8_dd_chars_:               ; 0xc28d3 LB 0x5
     5048biosfn_load_gfx_8_8_dd_chars_:               ; 0xc28f6 LB 0x5
    50385049    push bp                                   ; 55
    50395050    mov bp, sp                                ; 89 e5
    50405051    pop bp                                    ; 5d
    50415052    retn                                      ; c3
    5042 biosfn_load_gfx_8_16_chars_:                 ; 0xc28d8 LB 0x5
     5053biosfn_load_gfx_8_16_chars_:                 ; 0xc28fb LB 0x5
    50435054    push bp                                   ; 55
    50445055    mov bp, sp                                ; 89 e5
    50455056    pop bp                                    ; 5d
    50465057    retn                                      ; c3
    5047 biosfn_alternate_prtsc_:                     ; 0xc28dd LB 0x5
     5058biosfn_alternate_prtsc_:                     ; 0xc2900 LB 0x5
    50485059    push bp                                   ; 55
    50495060    mov bp, sp                                ; 89 e5
    50505061    pop bp                                    ; 5d
    50515062    retn                                      ; c3
    5052 biosfn_switch_video_interface_:              ; 0xc28e2 LB 0x5
     5063biosfn_switch_video_interface_:              ; 0xc2905 LB 0x5
    50535064    push bp                                   ; 55
    50545065    mov bp, sp                                ; 89 e5
    50555066    pop bp                                    ; 5d
    50565067    retn                                      ; c3
    5057 biosfn_enable_video_refresh_control_:        ; 0xc28e7 LB 0x5
     5068biosfn_enable_video_refresh_control_:        ; 0xc290a LB 0x5
    50585069    push bp                                   ; 55
    50595070    mov bp, sp                                ; 89 e5
    50605071    pop bp                                    ; 5d
    50615072    retn                                      ; c3
    5062 biosfn_write_string_:                        ; 0xc28ec LB 0x96
     5073biosfn_write_string_:                        ; 0xc290f LB 0x96
    50635074    push bp                                   ; 55
    50645075    mov bp, sp                                ; 89 e5
     
    50755086    lea bx, [bp-00eh]                         ; 8d 5e f2
    50765087    lea dx, [bp-00ch]                         ; 8d 56 f4
    5077     call 00a8ch                               ; e8 7d e1
     5088    call 00a8ch                               ; e8 5a e1
    50785089    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
    5079     jne short 02921h                          ; 75 0c
     5090    jne short 02944h                          ; 75 0c
    50805091    mov al, byte [bp-00eh]                    ; 8a 46 f2
    50815092    mov byte [bp+006h], al                    ; 88 46 06
     
    50865097    xor ah, ah                                ; 30 e4
    50875098    mov al, byte [bp-00ah]                    ; 8a 46 f6
    5088     call 00e91h                               ; e8 62 e5
     5099    call 00e91h                               ; e8 3f e5
    50895100    dec si                                    ; 4e
    50905101    cmp si, strict byte 0ffffh                ; 83 fe ff
    5091     je short 02968h                           ; 74 33
     5102    je short 0298bh                           ; 74 33
    50925103    mov dx, di                                ; 89 fa
    50935104    inc di                                    ; 47
    50945105    mov ax, word [bp+008h]                    ; 8b 46 08
    5095     call 0319bh                               ; e8 5d 08
     5106    call 031beh                               ; e8 5d 08
    50965107    mov cl, al                                ; 88 c1
    50975108    test byte [bp-008h], 002h                 ; f6 46 f8 02
    5098     je short 02952h                           ; 74 0c
     5109    je short 02975h                           ; 74 0c
    50995110    mov dx, di                                ; 89 fa
    51005111    inc di                                    ; 47
    51015112    mov ax, word [bp+008h]                    ; 8b 46 08
    5102     call 0319bh                               ; e8 4c 08
     5113    call 031beh                               ; e8 4c 08
    51035114    mov byte [bp-006h], al                    ; 88 46 fa
    51045115    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    51095120    mov al, cl                                ; 88 c8
    51105121    mov cx, strict word 00003h                ; b9 03 00
    5111     call 0234dh                               ; e8 e7 f9
    5112     jmp short 0292fh                          ; eb c7
     5122    call 02370h                               ; e8 e7 f9
     5123    jmp short 02952h                          ; eb c7
    51135124    test byte [bp-008h], 001h                 ; f6 46 f8 01
    5114     jne short 02979h                          ; 75 0b
     5125    jne short 0299ch                          ; 75 0b
    51155126    mov dx, word [bp-00eh]                    ; 8b 56 f2
    51165127    mov al, byte [bp-00ah]                    ; 8a 46 f6
    51175128    xor ah, ah                                ; 30 e4
    5118     call 00e91h                               ; e8 18 e5
     5129    call 00e91h                               ; e8 f5 e4
    51195130    lea sp, [bp-004h]                         ; 8d 66 fc
    51205131    pop di                                    ; 5f
     
    51225133    pop bp                                    ; 5d
    51235134    retn 00008h                               ; c2 08 00
    5124 biosfn_read_state_info_:                     ; 0xc2982 LB 0x102
     5135biosfn_read_state_info_:                     ; 0xc29a5 LB 0x102
    51255136    push bp                                   ; 55
    51265137    mov bp, sp                                ; 89 e5
     
    51315142    push bx                                   ; 53
    51325143    mov cx, ds                                ; 8c d9
    5133     mov bx, 05383h                            ; bb 83 53
     5144    mov bx, 05388h                            ; bb 88 53
    51345145    mov dx, word [bp-00ah]                    ; 8b 56 f6
    51355146    mov ax, word [bp-008h]                    ; 8b 46 f8
    5136     call 031e5h                               ; e8 4d 08
     5147    call 03208h                               ; e8 4d 08
    51375148    mov di, word [bp-00ah]                    ; 8b 7e f6
    51385149    add di, strict byte 00004h                ; 83 c7 04
     
    51425153    mov es, [bp-008h]                         ; 8e 46 f8
    51435154    cld                                       ; fc
    5144     jcxz 029b3h                               ; e3 06
     5155    jcxz 029d6h                               ; e3 06
    51455156    push DS                                   ; 1e
    51465157    mov ds, dx                                ; 8e da
     
    51545165    mov es, [bp-008h]                         ; 8e 46 f8
    51555166    cld                                       ; fc
    5156     jcxz 029ceh                               ; e3 06
     5167    jcxz 029f1h                               ; e3 06
    51575168    push DS                                   ; 1e
    51585169    mov ds, dx                                ; 8e da
     
    51615172    mov dx, 0008ah                            ; ba 8a 00
    51625173    mov ax, strict word 00040h                ; b8 40 00
    5163     call 0319bh                               ; e8 c4 07
     5174    call 031beh                               ; e8 c4 07
    51645175    mov bl, al                                ; 88 c3
    51655176    xor bh, bh                                ; 30 ff
     
    51675178    add dx, strict byte 00025h                ; 83 c2 25
    51685179    mov ax, word [bp-008h]                    ; 8b 46 f8
    5169     call 031a9h                               ; e8 c2 07
     5180    call 031cch                               ; e8 c2 07
    51705181    mov dx, word [bp-00ah]                    ; 8b 56 f6
    51715182    add dx, strict byte 00026h                ; 83 c2 26
    51725183    xor bx, bx                                ; 31 db
    51735184    mov ax, word [bp-008h]                    ; 8b 46 f8
    5174     call 031a9h                               ; e8 b4 07
     5185    call 031cch                               ; e8 b4 07
    51755186    mov dx, word [bp-00ah]                    ; 8b 56 f6
    51765187    add dx, strict byte 00027h                ; 83 c2 27
    51775188    mov bx, strict word 00010h                ; bb 10 00
    51785189    mov ax, word [bp-008h]                    ; 8b 46 f8
    5179     call 031a9h                               ; e8 a5 07
     5190    call 031cch                               ; e8 a5 07
    51805191    mov dx, word [bp-00ah]                    ; 8b 56 f6
    51815192    add dx, strict byte 00028h                ; 83 c2 28
    51825193    xor bx, bx                                ; 31 db
    51835194    mov ax, word [bp-008h]                    ; 8b 46 f8
    5184     call 031a9h                               ; e8 97 07
     5195    call 031cch                               ; e8 97 07
    51855196    mov dx, word [bp-00ah]                    ; 8b 56 f6
    51865197    add dx, strict byte 00029h                ; 83 c2 29
    51875198    mov bx, strict word 00008h                ; bb 08 00
    51885199    mov ax, word [bp-008h]                    ; 8b 46 f8
    5189     call 031a9h                               ; e8 88 07
     5200    call 031cch                               ; e8 88 07
    51905201    mov dx, word [bp-00ah]                    ; 8b 56 f6
    51915202    add dx, strict byte 0002ah                ; 83 c2 2a
    51925203    mov bx, strict word 00002h                ; bb 02 00
    51935204    mov ax, word [bp-008h]                    ; 8b 46 f8
    5194     call 031a9h                               ; e8 79 07
     5205    call 031cch                               ; e8 79 07
    51955206    mov dx, word [bp-00ah]                    ; 8b 56 f6
    51965207    add dx, strict byte 0002bh                ; 83 c2 2b
    51975208    xor bx, bx                                ; 31 db
    51985209    mov ax, word [bp-008h]                    ; 8b 46 f8
    5199     call 031a9h                               ; e8 6b 07
     5210    call 031cch                               ; e8 6b 07
    52005211    mov dx, word [bp-00ah]                    ; 8b 56 f6
    52015212    add dx, strict byte 0002ch                ; 83 c2 2c
    52025213    xor bx, bx                                ; 31 db
    52035214    mov ax, word [bp-008h]                    ; 8b 46 f8
    5204     call 031a9h                               ; e8 5d 07
     5215    call 031cch                               ; e8 5d 07
    52055216    mov dx, word [bp-00ah]                    ; 8b 56 f6
    52065217    add dx, strict byte 00031h                ; 83 c2 31
    52075218    mov bx, strict word 00003h                ; bb 03 00
    52085219    mov ax, word [bp-008h]                    ; 8b 46 f8
    5209     call 031a9h                               ; e8 4e 07
     5220    call 031cch                               ; e8 4e 07
    52105221    mov dx, word [bp-00ah]                    ; 8b 56 f6
    52115222    add dx, strict byte 00032h                ; 83 c2 32
    52125223    xor bx, bx                                ; 31 db
    52135224    mov ax, word [bp-008h]                    ; 8b 46 f8
    5214     call 031a9h                               ; e8 40 07
     5225    call 031cch                               ; e8 40 07
    52155226    mov di, word [bp-00ah]                    ; 8b 7e f6
    52165227    add di, strict byte 00033h                ; 83 c7 33
     
    52195230    mov es, [bp-008h]                         ; 8e 46 f8
    52205231    cld                                       ; fc
    5221     jcxz 02a7ch                               ; e3 02
     5232    jcxz 02a9fh                               ; e3 02
    52225233    rep stosb                                 ; f3 aa
    52235234    lea sp, [bp-006h]                         ; 8d 66 fa
     
    52275238    pop bp                                    ; 5d
    52285239    retn                                      ; c3
    5229 biosfn_read_video_state_size2_:              ; 0xc2a84 LB 0x23
     5240biosfn_read_video_state_size2_:              ; 0xc2aa7 LB 0x23
    52305241    push dx                                   ; 52
    52315242    push bp                                   ; 55
     
    52345245    xor ax, ax                                ; 31 c0
    52355246    test dl, 001h                             ; f6 c2 01
    5236     je short 02a94h                           ; 74 03
     5247    je short 02ab7h                           ; 74 03
    52375248    mov ax, strict word 00046h                ; b8 46 00
    52385249    test dl, 002h                             ; f6 c2 02
    5239     je short 02a9ch                           ; 74 03
     5250    je short 02abfh                           ; 74 03
    52405251    add ax, strict word 0002ah                ; 05 2a 00
    52415252    test dl, 004h                             ; f6 c2 04
    5242     je short 02aa4h                           ; 74 03
     5253    je short 02ac7h                           ; 74 03
    52435254    add ax, 00304h                            ; 05 04 03
    52445255    pop bp                                    ; 5d
    52455256    pop dx                                    ; 5a
    52465257    retn                                      ; c3
    5247 vga_get_video_state_size_:                   ; 0xc2aa7 LB 0x12
     5258vga_get_video_state_size_:                   ; 0xc2aca LB 0x12
    52485259    push bp                                   ; 55
    52495260    mov bp, sp                                ; 89 e5
    52505261    push bx                                   ; 53
    52515262    mov bx, dx                                ; 89 d3
    5252     call 02a84h                               ; e8 d4 ff
     5263    call 02aa7h                               ; e8 d4 ff
    52535264    mov word [ss:bx], ax                      ; 36 89 07
    52545265    lea sp, [bp-002h]                         ; 8d 66 fe
     
    52565267    pop bp                                    ; 5d
    52575268    retn                                      ; c3
    5258 biosfn_save_video_state_:                    ; 0xc2ab9 LB 0x381
     5269biosfn_save_video_state_:                    ; 0xc2adc LB 0x381
    52595270    push bp                                   ; 55
    52605271    mov bp, sp                                ; 89 e5
     
    52695280    mov dx, strict word 00063h                ; ba 63 00
    52705281    mov ax, strict word 00040h                ; b8 40 00
    5271     call 031b7h                               ; e8 e8 06
     5282    call 031dah                               ; e8 e8 06
    52725283    mov di, ax                                ; 89 c7
    52735284    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    5274     je short 02b45h                           ; 74 6e
     5285    je short 02b68h                           ; 74 6e
    52755286    mov dx, 003c4h                            ; ba c4 03
    52765287    in AL, DX                                 ; ec
     
    52815292    mov dx, cx                                ; 89 ca
    52825293    mov ax, si                                ; 89 f0
    5283     call 031a9h                               ; e8 c1 06
     5294    call 031cch                               ; e8 c1 06
    52845295    inc cx                                    ; 41
    52855296    mov dx, di                                ; 89 fa
     
    52915302    mov dx, cx                                ; 89 ca
    52925303    mov ax, si                                ; 89 f0
    5293     call 031a9h                               ; e8 b0 06
     5304    call 031cch                               ; e8 b0 06
    52945305    inc cx                                    ; 41
    52955306    mov dx, 003ceh                            ; ba ce 03
     
    53015312    mov dx, cx                                ; 89 ca
    53025313    mov ax, si                                ; 89 f0
    5303     call 031a9h                               ; e8 9e 06
     5314    call 031cch                               ; e8 9e 06
    53045315    inc cx                                    ; 41
    53055316    mov dx, 003dah                            ; ba da 03
     
    53175328    mov dx, cx                                ; 89 ca
    53185329    mov ax, si                                ; 89 f0
    5319     call 031a9h                               ; e8 80 06
     5330    call 031cch                               ; e8 80 06
    53205331    inc cx                                    ; 41
    53215332    mov dx, 003cah                            ; ba ca 03
     
    53275338    mov dx, cx                                ; 89 ca
    53285339    mov ax, si                                ; 89 f0
    5329     call 031a9h                               ; e8 6e 06
     5340    call 031cch                               ; e8 6e 06
    53305341    mov ax, strict word 00001h                ; b8 01 00
    53315342    mov word [bp-00ah], ax                    ; 89 46 f6
    53325343    add cx, ax                                ; 01 c1
    5333     jmp short 02b4eh                          ; eb 09
    5334     jmp near 02c49h                           ; e9 01 01
     5344    jmp short 02b71h                          ; eb 09
     5345    jmp near 02c6ch                           ; e9 01 01
    53355346    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
    5336     jnbe short 02b6ch                         ; 77 1e
     5347    jnbe short 02b8fh                         ; 77 1e
    53375348    mov al, byte [bp-00ah]                    ; 8a 46 f6
    53385349    mov dx, 003c4h                            ; ba c4 03
     
    53465357    mov dx, cx                                ; 89 ca
    53475358    mov ax, si                                ; 89 f0
    5348     call 031a9h                               ; e8 43 06
     5359    call 031cch                               ; e8 43 06
    53495360    inc cx                                    ; 41
    53505361    inc word [bp-00ah]                        ; ff 46 f6
    5351     jmp short 02b48h                          ; eb dc
     5362    jmp short 02b6bh                          ; eb dc
    53525363    xor al, al                                ; 30 c0
    53535364    mov dx, 003c4h                            ; ba c4 03
     
    53615372    mov dx, cx                                ; 89 ca
    53625373    mov ax, si                                ; 89 f0
    5363     call 031a9h                               ; e8 26 06
     5374    call 031cch                               ; e8 26 06
    53645375    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    53655376    inc cx                                    ; 41
    5366     jmp short 02b91h                          ; eb 06
     5377    jmp short 02bb4h                          ; eb 06
    53675378    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
    5368     jnbe short 02baeh                         ; 77 1d
     5379    jnbe short 02bd1h                         ; 77 1d
    53695380    mov al, byte [bp-00ah]                    ; 8a 46 f6
    53705381    mov dx, di                                ; 89 fa
     
    53785389    mov dx, cx                                ; 89 ca
    53795390    mov ax, si                                ; 89 f0
    5380     call 031a9h                               ; e8 01 06
     5391    call 031cch                               ; e8 01 06
    53815392    inc cx                                    ; 41
    53825393    inc word [bp-00ah]                        ; ff 46 f6
    5383     jmp short 02b8bh                          ; eb dd
     5394    jmp short 02baeh                          ; eb dd
    53845395    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5385     jmp short 02bbbh                          ; eb 06
     5396    jmp short 02bdeh                          ; eb 06
    53865397    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
    5387     jnbe short 02be5h                         ; 77 2a
     5398    jnbe short 02c08h                         ; 77 2a
    53885399    mov dx, 003dah                            ; ba da 03
    53895400    in AL, DX                                 ; ec
     
    54035414    mov dx, cx                                ; 89 ca
    54045415    mov ax, si                                ; 89 f0
    5405     call 031a9h                               ; e8 ca 05
     5416    call 031cch                               ; e8 ca 05
    54065417    inc cx                                    ; 41
    54075418    inc word [bp-00ah]                        ; ff 46 f6
    5408     jmp short 02bb5h                          ; eb d0
     5419    jmp short 02bd8h                          ; eb d0
    54095420    mov dx, 003dah                            ; ba da 03
    54105421    in AL, DX                                 ; ec
     
    54125423    ; sub ah, ah                                ; 2a e4
    54135424    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5414     jmp short 02bf8h                          ; eb 06
     5425    jmp short 02c1bh                          ; eb 06
    54155426    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5416     jnbe short 02c16h                         ; 77 1e
     5427    jnbe short 02c39h                         ; 77 1e
    54175428    mov al, byte [bp-00ah]                    ; 8a 46 f6
    54185429    mov dx, 003ceh                            ; ba ce 03
     
    54265437    mov dx, cx                                ; 89 ca
    54275438    mov ax, si                                ; 89 f0
    5428     call 031a9h                               ; e8 99 05
     5439    call 031cch                               ; e8 99 05
    54295440    inc cx                                    ; 41
    54305441    inc word [bp-00ah]                        ; ff 46 f6
    5431     jmp short 02bf2h                          ; eb dc
     5442    jmp short 02c15h                          ; eb dc
    54325443    mov bx, di                                ; 89 fb
    54335444    mov dx, cx                                ; 89 ca
    54345445    mov ax, si                                ; 89 f0
    5435     call 031c5h                               ; e8 a6 05
     5446    call 031e8h                               ; e8 a6 05
    54365447    inc cx                                    ; 41
    54375448    inc cx                                    ; 41
     
    54395450    mov dx, cx                                ; 89 ca
    54405451    mov ax, si                                ; 89 f0
    5441     call 031a9h                               ; e8 7f 05
     5452    call 031cch                               ; e8 7f 05
    54425453    inc cx                                    ; 41
    54435454    xor bx, bx                                ; 31 db
    54445455    mov dx, cx                                ; 89 ca
    54455456    mov ax, si                                ; 89 f0
    5446     call 031a9h                               ; e8 75 05
     5457    call 031cch                               ; e8 75 05
    54475458    inc cx                                    ; 41
    54485459    xor bx, bx                                ; 31 db
    54495460    mov dx, cx                                ; 89 ca
    54505461    mov ax, si                                ; 89 f0
    5451     call 031a9h                               ; e8 6b 05
     5462    call 031cch                               ; e8 6b 05
    54525463    inc cx                                    ; 41
    54535464    xor bx, bx                                ; 31 db
    54545465    mov dx, cx                                ; 89 ca
    54555466    mov ax, si                                ; 89 f0
    5456     call 031a9h                               ; e8 61 05
     5467    call 031cch                               ; e8 61 05
    54575468    inc cx                                    ; 41
    54585469    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    5459     jne short 02c52h                          ; 75 03
    5460     jmp near 02dbfh                           ; e9 6d 01
     5470    jne short 02c75h                          ; 75 03
     5471    jmp near 02de2h                           ; e9 6d 01
    54615472    mov dx, strict word 00049h                ; ba 49 00
    54625473    mov ax, strict word 00040h                ; b8 40 00
    5463     call 0319bh                               ; e8 40 05
     5474    call 031beh                               ; e8 40 05
    54645475    xor ah, ah                                ; 30 e4
    54655476    mov bx, ax                                ; 89 c3
    54665477    mov dx, cx                                ; 89 ca
    54675478    mov ax, si                                ; 89 f0
    5468     call 031a9h                               ; e8 43 05
     5479    call 031cch                               ; e8 43 05
    54695480    inc cx                                    ; 41
    54705481    mov dx, strict word 0004ah                ; ba 4a 00
    54715482    mov ax, strict word 00040h                ; b8 40 00
    5472     call 031b7h                               ; e8 47 05
     5483    call 031dah                               ; e8 47 05
    54735484    mov bx, ax                                ; 89 c3
    54745485    mov dx, cx                                ; 89 ca
    54755486    mov ax, si                                ; 89 f0
    5476     call 031c5h                               ; e8 4c 05
     5487    call 031e8h                               ; e8 4c 05
    54775488    inc cx                                    ; 41
    54785489    inc cx                                    ; 41
    54795490    mov dx, strict word 0004ch                ; ba 4c 00
    54805491    mov ax, strict word 00040h                ; b8 40 00
    5481     call 031b7h                               ; e8 33 05
     5492    call 031dah                               ; e8 33 05
    54825493    mov bx, ax                                ; 89 c3
    54835494    mov dx, cx                                ; 89 ca
    54845495    mov ax, si                                ; 89 f0
    5485     call 031c5h                               ; e8 38 05
     5496    call 031e8h                               ; e8 38 05
    54865497    inc cx                                    ; 41
    54875498    inc cx                                    ; 41
    54885499    mov dx, strict word 00063h                ; ba 63 00
    54895500    mov ax, strict word 00040h                ; b8 40 00
    5490     call 031b7h                               ; e8 1f 05
     5501    call 031dah                               ; e8 1f 05
    54915502    mov bx, ax                                ; 89 c3
    54925503    mov dx, cx                                ; 89 ca
    54935504    mov ax, si                                ; 89 f0
    5494     call 031c5h                               ; e8 24 05
     5505    call 031e8h                               ; e8 24 05
    54955506    inc cx                                    ; 41
    54965507    inc cx                                    ; 41
    54975508    mov dx, 00084h                            ; ba 84 00
    54985509    mov ax, strict word 00040h                ; b8 40 00
    5499     call 0319bh                               ; e8 ef 04
     5510    call 031beh                               ; e8 ef 04
    55005511    xor ah, ah                                ; 30 e4
    55015512    mov bx, ax                                ; 89 c3
    55025513    mov dx, cx                                ; 89 ca
    55035514    mov ax, si                                ; 89 f0
    5504     call 031a9h                               ; e8 f2 04
     5515    call 031cch                               ; e8 f2 04
    55055516    inc cx                                    ; 41
    55065517    mov dx, 00085h                            ; ba 85 00
    55075518    mov ax, strict word 00040h                ; b8 40 00
    5508     call 031b7h                               ; e8 f6 04
     5519    call 031dah                               ; e8 f6 04
    55095520    mov bx, ax                                ; 89 c3
    55105521    mov dx, cx                                ; 89 ca
    55115522    mov ax, si                                ; 89 f0
    5512     call 031c5h                               ; e8 fb 04
     5523    call 031e8h                               ; e8 fb 04
    55135524    inc cx                                    ; 41
    55145525    inc cx                                    ; 41
    55155526    mov dx, 00087h                            ; ba 87 00
    55165527    mov ax, strict word 00040h                ; b8 40 00
    5517     call 0319bh                               ; e8 c6 04
     5528    call 031beh                               ; e8 c6 04
    55185529    xor ah, ah                                ; 30 e4
    55195530    mov bx, ax                                ; 89 c3
    55205531    mov dx, cx                                ; 89 ca
    55215532    mov ax, si                                ; 89 f0
    5522     call 031a9h                               ; e8 c9 04
     5533    call 031cch                               ; e8 c9 04
    55235534    inc cx                                    ; 41
    55245535    mov dx, 00088h                            ; ba 88 00
    55255536    mov ax, strict word 00040h                ; b8 40 00
    5526     call 0319bh                               ; e8 b1 04
     5537    call 031beh                               ; e8 b1 04
    55275538    mov bl, al                                ; 88 c3
    55285539    xor bh, bh                                ; 30 ff
    55295540    mov dx, cx                                ; 89 ca
    55305541    mov ax, si                                ; 89 f0
    5531     call 031a9h                               ; e8 b4 04
     5542    call 031cch                               ; e8 b4 04
    55325543    inc cx                                    ; 41
    55335544    mov dx, 00089h                            ; ba 89 00
    55345545    mov ax, strict word 00040h                ; b8 40 00
    5535     call 0319bh                               ; e8 9c 04
     5546    call 031beh                               ; e8 9c 04
    55365547    xor ah, ah                                ; 30 e4
    55375548    mov bx, ax                                ; 89 c3
    55385549    mov dx, cx                                ; 89 ca
    55395550    mov ax, si                                ; 89 f0
    5540     call 031a9h                               ; e8 9f 04
     5551    call 031cch                               ; e8 9f 04
    55415552    inc cx                                    ; 41
    55425553    mov dx, strict word 00060h                ; ba 60 00
    55435554    mov ax, strict word 00040h                ; b8 40 00
    5544     call 031b7h                               ; e8 a3 04
     5555    call 031dah                               ; e8 a3 04
    55455556    mov bx, ax                                ; 89 c3
    55465557    mov dx, cx                                ; 89 ca
    55475558    mov ax, si                                ; 89 f0
    5548     call 031c5h                               ; e8 a8 04
     5559    call 031e8h                               ; e8 a8 04
    55495560    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    55505561    inc cx                                    ; 41
    55515562    inc cx                                    ; 41
    5552     jmp short 02d2ch                          ; eb 06
     5563    jmp short 02d4fh                          ; eb 06
    55535564    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5554     jnc short 02d4ah                          ; 73 1e
     5565    jnc short 02d6dh                          ; 73 1e
    55555566    mov dx, word [bp-00ah]                    ; 8b 56 f6
    55565567    sal dx, 1                                 ; d1 e2
    55575568    add dx, strict byte 00050h                ; 83 c2 50
    55585569    mov ax, strict word 00040h                ; b8 40 00
    5559     call 031b7h                               ; e8 7d 04
     5570    call 031dah                               ; e8 7d 04
    55605571    mov bx, ax                                ; 89 c3
    55615572    mov dx, cx                                ; 89 ca
    55625573    mov ax, si                                ; 89 f0
    5563     call 031c5h                               ; e8 82 04
     5574    call 031e8h                               ; e8 82 04
    55645575    inc cx                                    ; 41
    55655576    inc cx                                    ; 41
    55665577    inc word [bp-00ah]                        ; ff 46 f6
    5567     jmp short 02d26h                          ; eb dc
     5578    jmp short 02d49h                          ; eb dc
    55685579    mov dx, strict word 0004eh                ; ba 4e 00
    55695580    mov ax, strict word 00040h                ; b8 40 00
    5570     call 031b7h                               ; e8 64 04
     5581    call 031dah                               ; e8 64 04
    55715582    mov bx, ax                                ; 89 c3
    55725583    mov dx, cx                                ; 89 ca
    55735584    mov ax, si                                ; 89 f0
    5574     call 031c5h                               ; e8 69 04
     5585    call 031e8h                               ; e8 69 04
    55755586    inc cx                                    ; 41
    55765587    inc cx                                    ; 41
    55775588    mov dx, strict word 00062h                ; ba 62 00
    55785589    mov ax, strict word 00040h                ; b8 40 00
    5579     call 0319bh                               ; e8 34 04
     5590    call 031beh                               ; e8 34 04
    55805591    xor ah, ah                                ; 30 e4
    55815592    mov bx, ax                                ; 89 c3
    55825593    mov dx, cx                                ; 89 ca
    55835594    mov ax, si                                ; 89 f0
    5584     call 031a9h                               ; e8 37 04
     5595    call 031cch                               ; e8 37 04
    55855596    inc cx                                    ; 41
    55865597    mov dx, strict word 0007ch                ; ba 7c 00
    55875598    xor ax, ax                                ; 31 c0
    5588     call 031b7h                               ; e8 3c 04
     5599    call 031dah                               ; e8 3c 04
    55895600    mov bx, ax                                ; 89 c3
    55905601    mov dx, cx                                ; 89 ca
    55915602    mov ax, si                                ; 89 f0
    5592     call 031c5h                               ; e8 41 04
     5603    call 031e8h                               ; e8 41 04
    55935604    inc cx                                    ; 41
    55945605    inc cx                                    ; 41
    55955606    mov dx, strict word 0007eh                ; ba 7e 00
    55965607    xor ax, ax                                ; 31 c0
    5597     call 031b7h                               ; e8 29 04
     5608    call 031dah                               ; e8 29 04
    55985609    mov bx, ax                                ; 89 c3
    55995610    mov dx, cx                                ; 89 ca
    56005611    mov ax, si                                ; 89 f0
    5601     call 031c5h                               ; e8 2e 04
     5612    call 031e8h                               ; e8 2e 04
    56025613    inc cx                                    ; 41
    56035614    inc cx                                    ; 41
    56045615    mov dx, 0010ch                            ; ba 0c 01
    56055616    xor ax, ax                                ; 31 c0
    5606     call 031b7h                               ; e8 16 04
     5617    call 031dah                               ; e8 16 04
    56075618    mov bx, ax                                ; 89 c3
    56085619    mov dx, cx                                ; 89 ca
    56095620    mov ax, si                                ; 89 f0
    5610     call 031c5h                               ; e8 1b 04
     5621    call 031e8h                               ; e8 1b 04
    56115622    inc cx                                    ; 41
    56125623    inc cx                                    ; 41
    56135624    mov dx, 0010eh                            ; ba 0e 01
    56145625    xor ax, ax                                ; 31 c0
    5615     call 031b7h                               ; e8 03 04
     5626    call 031dah                               ; e8 03 04
    56165627    mov bx, ax                                ; 89 c3
    56175628    mov dx, cx                                ; 89 ca
    56185629    mov ax, si                                ; 89 f0
    5619     call 031c5h                               ; e8 08 04
     5630    call 031e8h                               ; e8 08 04
    56205631    inc cx                                    ; 41
    56215632    inc cx                                    ; 41
    56225633    test byte [bp-00ch], 004h                 ; f6 46 f4 04
    5623     je short 02e30h                           ; 74 6b
     5634    je short 02e53h                           ; 74 6b
    56245635    mov dx, 003c7h                            ; ba c7 03
    56255636    in AL, DX                                 ; ec
     
    56305641    mov dx, cx                                ; 89 ca
    56315642    mov ax, si                                ; 89 f0
    5632     call 031a9h                               ; e8 d3 03
     5643    call 031cch                               ; e8 d3 03
    56335644    inc cx                                    ; 41
    56345645    mov dx, 003c8h                            ; ba c8 03
     
    56405651    mov dx, cx                                ; 89 ca
    56415652    mov ax, si                                ; 89 f0
    5642     call 031a9h                               ; e8 c1 03
     5653    call 031cch                               ; e8 c1 03
    56435654    inc cx                                    ; 41
    56445655    mov dx, 003c6h                            ; ba c6 03
     
    56505661    mov dx, cx                                ; 89 ca
    56515662    mov ax, si                                ; 89 f0
    5652     call 031a9h                               ; e8 af 03
     5663    call 031cch                               ; e8 af 03
    56535664    inc cx                                    ; 41
    56545665    xor al, al                                ; 30 c0
     
    56575668    xor ah, ah                                ; 30 e4
    56585669    mov word [bp-00ah], ax                    ; 89 46 f6
    5659     jmp short 02e0fh                          ; eb 07
     5670    jmp short 02e32h                          ; eb 07
    56605671    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
    5661     jnc short 02e26h                          ; 73 17
     5672    jnc short 02e49h                          ; 73 17
    56625673    mov dx, 003c9h                            ; ba c9 03
    56635674    in AL, DX                                 ; ec
     
    56685679    mov dx, cx                                ; 89 ca
    56695680    mov ax, si                                ; 89 f0
    5670     call 031a9h                               ; e8 89 03
     5681    call 031cch                               ; e8 89 03
    56715682    inc cx                                    ; 41
    56725683    inc word [bp-00ah]                        ; ff 46 f6
    5673     jmp short 02e08h                          ; eb e2
     5684    jmp short 02e2bh                          ; eb e2
    56745685    xor bx, bx                                ; 31 db
    56755686    mov dx, cx                                ; 89 ca
    56765687    mov ax, si                                ; 89 f0
    5677     call 031a9h                               ; e8 7a 03
     5688    call 031cch                               ; e8 7a 03
    56785689    inc cx                                    ; 41
    56795690    mov ax, cx                                ; 89 c8
     
    56845695    pop bp                                    ; 5d
    56855696    retn                                      ; c3
    5686 biosfn_restore_video_state_:                 ; 0xc2e3a LB 0x336
     5697biosfn_restore_video_state_:                 ; 0xc2e5d LB 0x336
    56875698    push bp                                   ; 55
    56885699    mov bp, sp                                ; 89 e5
     
    56955706    mov cx, bx                                ; 89 d9
    56965707    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    5697     je short 02ea5h                           ; 74 57
     5708    je short 02ec8h                           ; 74 57
    56985709    mov dx, 003dah                            ; ba da 03
    56995710    in AL, DX                                 ; ec
     
    57025713    lea dx, [bx+040h]                         ; 8d 57 40
    57035714    mov ax, si                                ; 89 f0
    5704     call 031b7h                               ; e8 5b 03
     5715    call 031dah                               ; e8 5b 03
    57055716    mov di, ax                                ; 89 c7
    57065717    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    57075718    lea cx, [bx+005h]                         ; 8d 4f 05
    5708     jmp short 02e6eh                          ; eb 06
     5719    jmp short 02e91h                          ; eb 06
    57095720    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
    5710     jnbe short 02e86h                         ; 77 18
     5721    jnbe short 02ea9h                         ; 77 18
    57115722    mov al, byte [bp-00ah]                    ; 8a 46 f6
    57125723    mov dx, 003c4h                            ; ba c4 03
     
    57145725    mov dx, cx                                ; 89 ca
    57155726    mov ax, si                                ; 89 f0
    5716     call 0319bh                               ; e8 1f 03
     5727    call 031beh                               ; e8 1f 03
    57175728    mov dx, 003c5h                            ; ba c5 03
    57185729    out DX, AL                                ; ee
    57195730    inc cx                                    ; 41
    57205731    inc word [bp-00ah]                        ; ff 46 f6
    5721     jmp short 02e68h                          ; eb e2
     5732    jmp short 02e8bh                          ; eb e2
    57225733    xor al, al                                ; 30 c0
    57235734    mov dx, 003c4h                            ; ba c4 03
     
    57255736    mov dx, cx                                ; 89 ca
    57265737    mov ax, si                                ; 89 f0
    5727     call 0319bh                               ; e8 08 03
     5738    call 031beh                               ; e8 08 03
    57285739    mov dx, 003c5h                            ; ba c5 03
    57295740    out DX, AL                                ; ee
     
    57335744    out DX, ax                                ; ef
    57345745    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5735     jmp short 02eaeh                          ; eb 09
    5736     jmp near 02f9bh                           ; e9 f3 00
     5746    jmp short 02ed1h                          ; eb 09
     5747    jmp near 02fbeh                           ; e9 f3 00
    57375748    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
    5738     jnbe short 02ecbh                         ; 77 1d
     5749    jnbe short 02eeeh                         ; 77 1d
    57395750    cmp word [bp-00ah], strict byte 00011h    ; 83 7e f6 11
    5740     je short 02ec5h                           ; 74 11
     5751    je short 02ee8h                           ; 74 11
    57415752    mov al, byte [bp-00ah]                    ; 8a 46 f6
    57425753    mov dx, di                                ; 89 fa
     
    57445755    mov dx, cx                                ; 89 ca
    57455756    mov ax, si                                ; 89 f0
    5746     call 0319bh                               ; e8 da 02
     5757    call 031beh                               ; e8 da 02
    57475758    lea dx, [di+001h]                         ; 8d 55 01
    57485759    out DX, AL                                ; ee
    57495760    inc cx                                    ; 41
    57505761    inc word [bp-00ah]                        ; ff 46 f6
    5751     jmp short 02ea8h                          ; eb dd
     5762    jmp short 02ecbh                          ; eb dd
    57525763    mov dx, 003cch                            ; ba cc 03
    57535764    in AL, DX                                 ; ec
     
    57575768    mov word [bp-008h], ax                    ; 89 46 f8
    57585769    cmp di, 003d4h                            ; 81 ff d4 03
    5759     jne short 02ee0h                          ; 75 04
     5770    jne short 02f03h                          ; 75 04
    57605771    or byte [bp-008h], 001h                   ; 80 4e f8 01
    57615772    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    57685779    add dx, strict byte 0fff9h                ; 83 c2 f9
    57695780    mov ax, si                                ; 89 f0
    5770     call 0319bh                               ; e8 a5 02
     5781    call 031beh                               ; e8 a5 02
    57715782    lea dx, [di+001h]                         ; 8d 55 01
    57725783    out DX, AL                                ; ee
    57735784    lea dx, [bx+003h]                         ; 8d 57 03
    57745785    mov ax, si                                ; 89 f0
    5775     call 0319bh                               ; e8 99 02
     5786    call 031beh                               ; e8 99 02
    57765787    xor ah, ah                                ; 30 e4
    57775788    mov word [bp-00ch], ax                    ; 89 46 f4
     
    57815792    ; sub ah, ah                                ; 2a e4
    57825793    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5783     jmp short 02f1ah                          ; eb 06
     5794    jmp short 02f3dh                          ; eb 06
    57845795    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
    5785     jnbe short 02f38h                         ; 77 1e
     5796    jnbe short 02f5bh                         ; 77 1e
    57865797    mov ax, word [bp-00ch]                    ; 8b 46 f4
    57875798    and ax, strict word 00020h                ; 25 20 00
     
    57915802    mov dx, cx                                ; 89 ca
    57925803    mov ax, si                                ; 89 f0
    5793     call 0319bh                               ; e8 6d 02
     5804    call 031beh                               ; e8 6d 02
    57945805    mov dx, 003c0h                            ; ba c0 03
    57955806    out DX, AL                                ; ee
    57965807    inc cx                                    ; 41
    57975808    inc word [bp-00ah]                        ; ff 46 f6
    5798     jmp short 02f14h                          ; eb dc
     5809    jmp short 02f37h                          ; eb dc
    57995810    mov al, byte [bp-00ch]                    ; 8a 46 f4
    58005811    mov dx, 003c0h                            ; ba c0 03
     
    58055816    ; sub ah, ah                                ; 2a e4
    58065817    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    5807     jmp short 02f52h                          ; eb 06
     5818    jmp short 02f75h                          ; eb 06
    58085819    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5809     jnbe short 02f6ah                         ; 77 18
     5820    jnbe short 02f8dh                         ; 77 18
    58105821    mov al, byte [bp-00ah]                    ; 8a 46 f6
    58115822    mov dx, 003ceh                            ; ba ce 03
     
    58135824    mov dx, cx                                ; 89 ca
    58145825    mov ax, si                                ; 89 f0
    5815     call 0319bh                               ; e8 3b 02
     5826    call 031beh                               ; e8 3b 02
    58165827    mov dx, 003cfh                            ; ba cf 03
    58175828    out DX, AL                                ; ee
    58185829    inc cx                                    ; 41
    58195830    inc word [bp-00ah]                        ; ff 46 f6
    5820     jmp short 02f4ch                          ; eb e2
     5831    jmp short 02f6fh                          ; eb e2
    58215832    add cx, strict byte 00006h                ; 83 c1 06
    58225833    mov dx, bx                                ; 89 da
    58235834    mov ax, si                                ; 89 f0
    5824     call 0319bh                               ; e8 27 02
     5835    call 031beh                               ; e8 27 02
    58255836    mov dx, 003c4h                            ; ba c4 03
    58265837    out DX, AL                                ; ee
     
    58285839    mov dx, bx                                ; 89 da
    58295840    mov ax, si                                ; 89 f0
    5830     call 0319bh                               ; e8 1b 02
     5841    call 031beh                               ; e8 1b 02
    58315842    mov dx, di                                ; 89 fa
    58325843    out DX, AL                                ; ee
     
    58345845    mov dx, bx                                ; 89 da
    58355846    mov ax, si                                ; 89 f0
    5836     call 0319bh                               ; e8 10 02
     5847    call 031beh                               ; e8 10 02
    58375848    mov dx, 003ceh                            ; ba ce 03
    58385849    out DX, AL                                ; ee
    58395850    lea dx, [bx+002h]                         ; 8d 57 02
    58405851    mov ax, si                                ; 89 f0
    5841     call 0319bh                               ; e8 04 02
     5852    call 031beh                               ; e8 04 02
    58425853    lea dx, [di+006h]                         ; 8d 55 06
    58435854    out DX, AL                                ; ee
    58445855    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    5845     jne short 02fa4h                          ; 75 03
    5846     jmp near 03119h                           ; e9 75 01
     5856    jne short 02fc7h                          ; 75 03
     5857    jmp near 0313ch                           ; e9 75 01
    58475858    mov dx, cx                                ; 89 ca
    58485859    mov ax, si                                ; 89 f0
    5849     call 0319bh                               ; e8 f0 01
     5860    call 031beh                               ; e8 f0 01
    58505861    xor ah, ah                                ; 30 e4
    58515862    mov bx, ax                                ; 89 c3
    58525863    mov dx, strict word 00049h                ; ba 49 00
    58535864    mov ax, strict word 00040h                ; b8 40 00
    5854     call 031a9h                               ; e8 f1 01
     5865    call 031cch                               ; e8 f1 01
    58555866    inc cx                                    ; 41
    58565867    mov dx, cx                                ; 89 ca
    58575868    mov ax, si                                ; 89 f0
    5858     call 031b7h                               ; e8 f7 01
     5869    call 031dah                               ; e8 f7 01
    58595870    mov bx, ax                                ; 89 c3
    58605871    mov dx, strict word 0004ah                ; ba 4a 00
    58615872    mov ax, strict word 00040h                ; b8 40 00
    5862     call 031c5h                               ; e8 fa 01
     5873    call 031e8h                               ; e8 fa 01
    58635874    inc cx                                    ; 41
    58645875    inc cx                                    ; 41
    58655876    mov dx, cx                                ; 89 ca
    58665877    mov ax, si                                ; 89 f0
    5867     call 031b7h                               ; e8 e3 01
     5878    call 031dah                               ; e8 e3 01
    58685879    mov bx, ax                                ; 89 c3
    58695880    mov dx, strict word 0004ch                ; ba 4c 00
    58705881    mov ax, strict word 00040h                ; b8 40 00
    5871     call 031c5h                               ; e8 e6 01
     5882    call 031e8h                               ; e8 e6 01
    58725883    inc cx                                    ; 41
    58735884    inc cx                                    ; 41
    58745885    mov dx, cx                                ; 89 ca
    58755886    mov ax, si                                ; 89 f0
    5876     call 031b7h                               ; e8 cf 01
     5887    call 031dah                               ; e8 cf 01
    58775888    mov bx, ax                                ; 89 c3
    58785889    mov dx, strict word 00063h                ; ba 63 00
    58795890    mov ax, strict word 00040h                ; b8 40 00
    5880     call 031c5h                               ; e8 d2 01
     5891    call 031e8h                               ; e8 d2 01
    58815892    inc cx                                    ; 41
    58825893    inc cx                                    ; 41
    58835894    mov dx, cx                                ; 89 ca
    58845895    mov ax, si                                ; 89 f0
    5885     call 0319bh                               ; e8 9f 01
     5896    call 031beh                               ; e8 9f 01
    58865897    xor ah, ah                                ; 30 e4
    58875898    mov bx, ax                                ; 89 c3
    58885899    mov dx, 00084h                            ; ba 84 00
    58895900    mov ax, strict word 00040h                ; b8 40 00
    5890     call 031a9h                               ; e8 a0 01
     5901    call 031cch                               ; e8 a0 01
    58915902    inc cx                                    ; 41
    58925903    mov dx, cx                                ; 89 ca
    58935904    mov ax, si                                ; 89 f0
    5894     call 031b7h                               ; e8 a6 01
     5905    call 031dah                               ; e8 a6 01
    58955906    mov bx, ax                                ; 89 c3
    58965907    mov dx, 00085h                            ; ba 85 00
    58975908    mov ax, strict word 00040h                ; b8 40 00
    5898     call 031c5h                               ; e8 a9 01
     5909    call 031e8h                               ; e8 a9 01
    58995910    inc cx                                    ; 41
    59005911    inc cx                                    ; 41
    59015912    mov dx, cx                                ; 89 ca
    59025913    mov ax, si                                ; 89 f0
    5903     call 0319bh                               ; e8 76 01
     5914    call 031beh                               ; e8 76 01
    59045915    mov dl, al                                ; 88 c2
    59055916    xor dh, dh                                ; 30 f6
     
    59075918    mov dx, 00087h                            ; ba 87 00
    59085919    mov ax, strict word 00040h                ; b8 40 00
    5909     call 031a9h                               ; e8 75 01
     5920    call 031cch                               ; e8 75 01
    59105921    inc cx                                    ; 41
    59115922    mov dx, cx                                ; 89 ca
    59125923    mov ax, si                                ; 89 f0
    5913     call 0319bh                               ; e8 5f 01
     5924    call 031beh                               ; e8 5f 01
    59145925    mov dl, al                                ; 88 c2
    59155926    xor dh, dh                                ; 30 f6
     
    59175928    mov dx, 00088h                            ; ba 88 00
    59185929    mov ax, strict word 00040h                ; b8 40 00
    5919     call 031a9h                               ; e8 5e 01
     5930    call 031cch                               ; e8 5e 01
    59205931    inc cx                                    ; 41
    59215932    mov dx, cx                                ; 89 ca
    59225933    mov ax, si                                ; 89 f0
    5923     call 0319bh                               ; e8 48 01
     5934    call 031beh                               ; e8 48 01
    59245935    mov dl, al                                ; 88 c2
    59255936    xor dh, dh                                ; 30 f6
     
    59275938    mov dx, 00089h                            ; ba 89 00
    59285939    mov ax, strict word 00040h                ; b8 40 00
    5929     call 031a9h                               ; e8 47 01
     5940    call 031cch                               ; e8 47 01
    59305941    inc cx                                    ; 41
    59315942    mov dx, cx                                ; 89 ca
    59325943    mov ax, si                                ; 89 f0
    5933     call 031b7h                               ; e8 4d 01
     5944    call 031dah                               ; e8 4d 01
    59345945    mov bx, ax                                ; 89 c3
    59355946    mov dx, strict word 00060h                ; ba 60 00
    59365947    mov ax, strict word 00040h                ; b8 40 00
    5937     call 031c5h                               ; e8 50 01
     5948    call 031e8h                               ; e8 50 01
    59385949    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    59395950    inc cx                                    ; 41
    59405951    inc cx                                    ; 41
    5941     jmp short 03084h                          ; eb 06
     5952    jmp short 030a7h                          ; eb 06
    59425953    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
    5943     jnc short 030a2h                          ; 73 1e
     5954    jnc short 030c5h                          ; 73 1e
    59445955    mov dx, cx                                ; 89 ca
    59455956    mov ax, si                                ; 89 f0
    5946     call 031b7h                               ; e8 2c 01
     5957    call 031dah                               ; e8 2c 01
    59475958    mov bx, ax                                ; 89 c3
    59485959    mov dx, word [bp-00ah]                    ; 8b 56 f6
     
    59505961    add dx, strict byte 00050h                ; 83 c2 50
    59515962    mov ax, strict word 00040h                ; b8 40 00
    5952     call 031c5h                               ; e8 2a 01
     5963    call 031e8h                               ; e8 2a 01
    59535964    inc cx                                    ; 41
    59545965    inc cx                                    ; 41
    59555966    inc word [bp-00ah]                        ; ff 46 f6
    5956     jmp short 0307eh                          ; eb dc
     5967    jmp short 030a1h                          ; eb dc
    59575968    mov dx, cx                                ; 89 ca
    59585969    mov ax, si                                ; 89 f0
    5959     call 031b7h                               ; e8 0e 01
     5970    call 031dah                               ; e8 0e 01
    59605971    mov bx, ax                                ; 89 c3
    59615972    mov dx, strict word 0004eh                ; ba 4e 00
    59625973    mov ax, strict word 00040h                ; b8 40 00
    5963     call 031c5h                               ; e8 11 01
     5974    call 031e8h                               ; e8 11 01
    59645975    inc cx                                    ; 41
    59655976    inc cx                                    ; 41
    59665977    mov dx, cx                                ; 89 ca
    59675978    mov ax, si                                ; 89 f0
    5968     call 0319bh                               ; e8 de 00
     5979    call 031beh                               ; e8 de 00
    59695980    mov dl, al                                ; 88 c2
    59705981    xor dh, dh                                ; 30 f6
     
    59725983    mov dx, strict word 00062h                ; ba 62 00
    59735984    mov ax, strict word 00040h                ; b8 40 00
    5974     call 031a9h                               ; e8 dd 00
     5985    call 031cch                               ; e8 dd 00
    59755986    inc cx                                    ; 41
    59765987    mov dx, cx                                ; 89 ca
    59775988    mov ax, si                                ; 89 f0
    5978     call 031b7h                               ; e8 e3 00
     5989    call 031dah                               ; e8 e3 00
    59795990    mov bx, ax                                ; 89 c3
    59805991    mov dx, strict word 0007ch                ; ba 7c 00
    59815992    xor ax, ax                                ; 31 c0
    5982     call 031c5h                               ; e8 e7 00
     5993    call 031e8h                               ; e8 e7 00
    59835994    inc cx                                    ; 41
    59845995    inc cx                                    ; 41
    59855996    mov dx, cx                                ; 89 ca
    59865997    mov ax, si                                ; 89 f0
    5987     call 031b7h                               ; e8 d0 00
     5998    call 031dah                               ; e8 d0 00
    59885999    mov bx, ax                                ; 89 c3
    59896000    mov dx, strict word 0007eh                ; ba 7e 00
    59906001    xor ax, ax                                ; 31 c0
    5991     call 031c5h                               ; e8 d4 00
     6002    call 031e8h                               ; e8 d4 00
    59926003    inc cx                                    ; 41
    59936004    inc cx                                    ; 41
    59946005    mov dx, cx                                ; 89 ca
    59956006    mov ax, si                                ; 89 f0
    5996     call 031b7h                               ; e8 bd 00
     6007    call 031dah                               ; e8 bd 00
    59976008    mov bx, ax                                ; 89 c3
    59986009    mov dx, 0010ch                            ; ba 0c 01
    59996010    xor ax, ax                                ; 31 c0
    6000     call 031c5h                               ; e8 c1 00
     6011    call 031e8h                               ; e8 c1 00
    60016012    inc cx                                    ; 41
    60026013    inc cx                                    ; 41
    60036014    mov dx, cx                                ; 89 ca
    60046015    mov ax, si                                ; 89 f0
    6005     call 031b7h                               ; e8 aa 00
     6016    call 031dah                               ; e8 aa 00
    60066017    mov bx, ax                                ; 89 c3
    60076018    mov dx, 0010eh                            ; ba 0e 01
    60086019    xor ax, ax                                ; 31 c0
    6009     call 031c5h                               ; e8 ae 00
     6020    call 031e8h                               ; e8 ae 00
    60106021    inc cx                                    ; 41
    60116022    inc cx                                    ; 41
    60126023    test byte [bp-00eh], 004h                 ; f6 46 f2 04
    6013     je short 03166h                           ; 74 47
     6024    je short 03189h                           ; 74 47
    60146025    inc cx                                    ; 41
    60156026    mov dx, cx                                ; 89 ca
    60166027    mov ax, si                                ; 89 f0
    6017     call 0319bh                               ; e8 74 00
     6028    call 031beh                               ; e8 74 00
    60186029    xor ah, ah                                ; 30 e4
    60196030    mov word [bp-008h], ax                    ; 89 46 f8
     
    60216032    mov dx, cx                                ; 89 ca
    60226033    mov ax, si                                ; 89 f0
    6023     call 0319bh                               ; e8 67 00
     6034    call 031beh                               ; e8 67 00
    60246035    mov dx, 003c6h                            ; ba c6 03
    60256036    out DX, AL                                ; ee
     
    60306041    xor ah, ah                                ; 30 e4
    60316042    mov word [bp-00ah], ax                    ; 89 46 f6
    6032     jmp short 0314dh                          ; eb 07
     6043    jmp short 03170h                          ; eb 07
    60336044    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
    6034     jnc short 0315eh                          ; 73 11
     6045    jnc short 03181h                          ; 73 11
    60356046    mov dx, cx                                ; 89 ca
    60366047    mov ax, si                                ; 89 f0
    6037     call 0319bh                               ; e8 47 00
     6048    call 031beh                               ; e8 47 00
    60386049    mov dx, 003c9h                            ; ba c9 03
    60396050    out DX, AL                                ; ee
    60406051    inc cx                                    ; 41
    60416052    inc word [bp-00ah]                        ; ff 46 f6
    6042     jmp short 03146h                          ; eb e8
     6053    jmp short 03169h                          ; eb e8
    60436054    inc cx                                    ; 41
    60446055    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    60526063    pop bp                                    ; 5d
    60536064    retn                                      ; c3
    6054 find_vga_entry_:                             ; 0xc3170 LB 0x2b
     6065find_vga_entry_:                             ; 0xc3193 LB 0x2b
    60556066    push bx                                   ; 53
    60566067    push cx                                   ; 51
     
    60616072    mov AH, strict byte 0ffh                  ; b4 ff
    60626073    xor al, al                                ; 30 c0
    6063     jmp short 03184h                          ; eb 06
     6074    jmp short 031a7h                          ; eb 06
    60646075    db  0feh, 0c0h
    60656076    ; inc al                                    ; fe c0
    60666077    cmp AL, strict byte 00fh                  ; 3c 0f
    6067     jnbe short 03194h                         ; 77 10
     6078    jnbe short 031b7h                         ; 77 10
    60686079    mov bl, al                                ; 88 c3
    60696080    xor bh, bh                                ; 30 ff
    60706081    mov CL, strict byte 003h                  ; b1 03
    60716082    sal bx, CL                                ; d3 e3
    6072     cmp dl, byte [bx+0462fh]                  ; 3a 97 2f 46
    6073     jne short 0317eh                          ; 75 ec
     6083    cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
     6084    jne short 031a1h                          ; 75 ec
    60746085    mov ah, al                                ; 88 c4
    60756086    mov al, ah                                ; 88 e0
     
    60796090    pop bx                                    ; 5b
    60806091    retn                                      ; c3
    6081 read_byte_:                                  ; 0xc319b LB 0xe
     6092read_byte_:                                  ; 0xc31be LB 0xe
    60826093    push bx                                   ; 53
    60836094    push bp                                   ; 55
     
    60896100    pop bx                                    ; 5b
    60906101    retn                                      ; c3
    6091 write_byte_:                                 ; 0xc31a9 LB 0xe
     6102write_byte_:                                 ; 0xc31cc LB 0xe
    60926103    push si                                   ; 56
    60936104    push bp                                   ; 55
     
    60996110    pop si                                    ; 5e
    61006111    retn                                      ; c3
    6101 read_word_:                                  ; 0xc31b7 LB 0xe
     6112read_word_:                                  ; 0xc31da LB 0xe
    61026113    push bx                                   ; 53
    61036114    push bp                                   ; 55
     
    61096120    pop bx                                    ; 5b
    61106121    retn                                      ; c3
    6111 write_word_:                                 ; 0xc31c5 LB 0xe
     6122write_word_:                                 ; 0xc31e8 LB 0xe
    61126123    push si                                   ; 56
    61136124    push bp                                   ; 55
     
    61196130    pop si                                    ; 5e
    61206131    retn                                      ; c3
    6121 read_dword_:                                 ; 0xc31d3 LB 0x12
     6132read_dword_:                                 ; 0xc31f6 LB 0x12
    61226133    push bx                                   ; 53
    61236134    push bp                                   ; 55
     
    61306141    pop bx                                    ; 5b
    61316142    retn                                      ; c3
    6132 write_dword_:                                ; 0xc31e5 LB 0x96
     6143write_dword_:                                ; 0xc3208 LB 0x96
    61336144    push si                                   ; 56
    61346145    push bp                                   ; 55
     
    61526163    add ax, 00304h                            ; 05 04 03
    61536164    add al, byte [bx+di]                      ; 02 01
    6154     add byte [si-054cbh], bh                  ; 00 bc 35 ab
    6155     db  032h, 0e8h
    6156     ; xor ch, al                                ; 32 e8
    6157     db  032h, 0f6h
    6158     ; xor dh, dh                                ; 32 f6
    6159     xor al, byte [bx+di]                      ; 32 01
    6160     xor cx, word [bx]                         ; 33 0f
    6161     xor bx, word [bx]                         ; 33 1f
    6162     xor sp, word [04f33h]                     ; 33 26 33 4f
    6163     xor dx, word [bp+di+033h]                 ; 33 53 33
    6164     pop si                                    ; 5e
    6165     xor si, word [bp+di+033h]                 ; 33 73 33
    6166     mov word [bp+di], si                      ; 89 33
    6167     mov byte [0b433h], AL                     ; a2 33 b4
    6168     db  033h, 0c8h
    6169     ; xor cx, ax                                ; 33 c8
    6170     db  033h, 0d4h
    6171     ; xor dx, sp                                ; 33 d4
    6172     xor ax, word [bx-043cch]                  ; 33 87 34 bc
    6173     xor AL, strict byte 0e3h                  ; 34 e3
    6174     xor AL, strict byte 0f8h                  ; 34 f8
    6175     xor AL, strict byte 035h                  ; 34 35
     6165    add bh, bl                                ; 00 df
     6166    xor ax, 032ceh                            ; 35 ce 32
     6167    or si, word [bp+di]                       ; 0b 33
     6168    sbb word [bp+di], si                      ; 19 33
     6169    and AL, strict byte 033h                  ; 24 33
     6170    xor dh, byte [bp+di]                      ; 32 33
     6171    inc dx                                    ; 42
     6172    xor cx, word [bx+di+033h]                 ; 33 49 33
     6173    jc short 03274h                           ; 72 33
     6174    jbe short 03276h                          ; 76 33
     6175    xor word [bp+di], 03396h                  ; 81 33 96 33
     6176    lodsb                                     ; ac
     6177    db  033h, 0c5h
     6178    ; xor ax, bp                                ; 33 c5
     6179    db  033h, 0d7h
     6180    ; xor dx, di                                ; 33 d7
     6181    db  033h, 0ebh
     6182    ; xor bp, bx                                ; 33 eb
     6183    db  033h, 0f7h
     6184    ; xor si, di                                ; 33 f7
     6185    xor bp, word [bp+si-020cch]               ; 33 aa 34 df
     6186    xor AL, strict byte 006h                  ; 34 06
     6187    xor ax, 0351bh                            ; 35 1b 35
     6188    pop ax                                    ; 58
    61766189    xor ax, 02430h                            ; 35 30 24
    61776190    and sp, word [bp+si]                      ; 23 22
     
    61816194    add AL, strict byte 002h                  ; 04 02
    61826195    add word [bx+si], ax                      ; 01 00
    6183     mov sp, 0f135h                            ; bc 35 f1
    6184     xor cx, word [bx]                         ; 33 0f
    6185     xor AL, strict byte 01eh                  ; 34 1e
    6186     xor AL, strict byte 02dh                  ; 34 2d
    6187     xor AL, strict byte 0f1h                  ; 34 f1
    6188     xor cx, word [bx]                         ; 33 0f
    6189     xor AL, strict byte 01eh                  ; 34 1e
    6190     xor AL, strict byte 02dh                  ; 34 2d
    6191     xor AL, strict byte 03ch                  ; 34 3c
    6192     xor AL, strict byte 048h                  ; 34 48
    6193     xor AL, strict byte 061h                  ; 34 61
    6194     xor AL, strict byte 066h                  ; 34 66
     6196    fbstp [di]                                ; df 35
     6197    adc AL, strict byte 034h                  ; 14 34
     6198    xor dh, byte [si]                         ; 32 34
     6199    inc cx                                    ; 41
     6200    xor AL, strict byte 050h                  ; 34 50
     6201    xor AL, strict byte 014h                  ; 34 14
     6202    xor AL, strict byte 032h                  ; 34 32
     6203    xor AL, strict byte 041h                  ; 34 41
     6204    xor AL, strict byte 050h                  ; 34 50
     6205    xor AL, strict byte 05fh                  ; 34 5f
    61956206    xor AL, strict byte 06bh                  ; 34 6b
    6196     xor AL, strict byte 070h                  ; 34 70
     6207    xor AL, strict byte 084h                  ; 34 84
     6208    xor AL, strict byte 089h                  ; 34 89
     6209    xor AL, strict byte 08eh                  ; 34 8e
     6210    xor AL, strict byte 093h                  ; 34 93
    61976211    xor AL, strict byte 00ah                  ; 34 0a
    61986212    or word [00204h], ax                      ; 09 06 04 02
    61996213    add word [bx+si], ax                      ; 01 00
    6200     mov AL, strict byte 035h                  ; b0 35
    6201     pop bx                                    ; 5b
    6202     xor ax, 03568h                            ; 35 68 35
    6203     js short 032a8h                           ; 78 35
    6204     mov byte [di], dh                         ; 88 35
    6205     popfw                                     ; 9d
    6206     xor ax, 035b0h                            ; 35 b0 35
    6207     mov AL, strict byte 035h                  ; b0 35
    6208 _int10_func:                                 ; 0xc327b LB 0x348
     6214    db  0d3h, 035h
     6215    ; sal word [di], CL                         ; d3 35
     6216    jle short 032c7h                          ; 7e 35
     6217    mov si, word [di]                         ; 8b 35
     6218    wait                                      ; 9b
     6219    xor ax, 035abh                            ; 35 ab 35
     6220    db  0c0h, 035h, 0d3h
     6221    ; sal byte [di], 0d3h                       ; c0 35 d3
     6222    xor ax, 035d3h                            ; 35 d3 35
     6223_int10_func:                                 ; 0xc329e LB 0x348
    62096224    push bp                                   ; 55
    62106225    mov bp, sp                                ; 89 e5
     
    62166231    xor ah, ah                                ; 30 e4
    62176232    cmp ax, strict word 0004fh                ; 3d 4f 00
    6218     jnbe short 032f3h                         ; 77 65
     6233    jnbe short 03316h                         ; 77 65
    62196234    push CS                                   ; 0e
    62206235    pop ES                                    ; 07
    62216236    mov cx, strict word 00016h                ; b9 16 00
    6222     mov di, 031f7h                            ; bf f7 31
     6237    mov di, 0321ah                            ; bf 1a 32
    62236238    repne scasb                               ; f2 ae
    62246239    sal cx, 1                                 ; d1 e1
    62256240    mov di, cx                                ; 89 cf
    6226     mov bx, word [cs:di+0320ch]               ; 2e 8b 9d 0c 32
     6241    mov bx, word [cs:di+0322fh]               ; 2e 8b 9d 2f 32
    62276242    mov ax, word [bp+012h]                    ; 8b 46 12
    62286243    xor ah, ah                                ; 30 e4
     
    62316246    mov al, byte [bp+012h]                    ; 8a 46 12
    62326247    xor ah, ah                                ; 30 e4
    6233     call 01019h                               ; e8 66 dd
     6248    call 01019h                               ; e8 43 dd
    62346249    mov ax, word [bp+012h]                    ; 8b 46 12
    62356250    and ax, strict word 0007fh                ; 25 7f 00
    62366251    cmp ax, strict word 00007h                ; 3d 07 00
    6237     je short 032d3h                           ; 74 15
     6252    je short 032f6h                           ; 74 15
    62386253    cmp ax, strict word 00006h                ; 3d 06 00
    6239     je short 032cah                           ; 74 07
     6254    je short 032edh                           ; 74 07
    62406255    cmp ax, strict word 00005h                ; 3d 05 00
    6241     jbe short 032d3h                          ; 76 0b
    6242     jmp short 032dch                          ; eb 12
     6256    jbe short 032f6h                          ; 76 0b
     6257    jmp short 032ffh                          ; eb 12
    62436258    mov ax, word [bp+012h]                    ; 8b 46 12
    62446259    xor al, al                                ; 30 c0
    62456260    or AL, strict byte 03fh                   ; 0c 3f
    6246     jmp short 032e3h                          ; eb 10
     6261    jmp short 03306h                          ; eb 10
    62476262    mov ax, word [bp+012h]                    ; 8b 46 12
    62486263    xor al, al                                ; 30 c0
    62496264    or AL, strict byte 030h                   ; 0c 30
    6250     jmp short 032e3h                          ; eb 07
     6265    jmp short 03306h                          ; eb 07
    62516266    mov ax, word [bp+012h]                    ; 8b 46 12
    62526267    xor al, al                                ; 30 c0
    62536268    or AL, strict byte 020h                   ; 0c 20
    62546269    mov word [bp+012h], ax                    ; 89 46 12
    6255     jmp short 032f3h                          ; eb 0b
     6270    jmp short 03316h                          ; eb 0b
    62566271    mov al, byte [bp+010h]                    ; 8a 46 10
    62576272    mov dx, ax                                ; 89 c2
    62586273    mov al, byte [bp+011h]                    ; 8a 46 11
    6259     call 00ddeh                               ; e8 eb da
    6260     jmp near 035bch                           ; e9 c6 02
     6274    call 00ddeh                               ; e8 c8 da
     6275    jmp near 035dfh                           ; e9 c6 02
    62616276    mov dx, word [bp+00eh]                    ; 8b 56 0e
    62626277    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6263     call 00e91h                               ; e8 92 db
    6264     jmp short 032f3h                          ; eb f2
     6278    call 00e91h                               ; e8 6f db
     6279    jmp short 03316h                          ; eb f2
    62656280    lea bx, [bp+00eh]                         ; 8d 5e 0e
    62666281    lea dx, [bp+010h]                         ; 8d 56 10
    62676282    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6268     call 00a8ch                               ; e8 7f d7
    6269     jmp short 032f3h                          ; eb e4
     6283    call 00a8ch                               ; e8 5c d7
     6284    jmp short 03316h                          ; eb e4
    62706285    xor al, al                                ; 30 c0
    62716286    mov word [bp+012h], ax                    ; 89 46 12
     
    62736288    mov word [bp+010h], ax                    ; 89 46 10
    62746289    mov word [bp+00eh], ax                    ; 89 46 0e
    6275     jmp short 032f3h                          ; eb d4
     6290    jmp short 03316h                          ; eb d4
    62766291    mov al, dl                                ; 88 d0
    6277     call 00f34h                               ; e8 10 dc
    6278     jmp short 032f3h                          ; eb cd
     6292    call 00f34h                               ; e8 ed db
     6293    jmp short 03316h                          ; eb cd
    62796294    mov ax, strict word 00001h                ; b8 01 00
    62806295    push ax                                   ; 50
     
    62936308    mov dx, ax                                ; 89 c2
    62946309    mov al, byte [bp+012h]                    ; 8a 46 12
    6295     call 01655h                               ; e8 08 e3
    6296     jmp short 032f3h                          ; eb a4
     6310    call 01678h                               ; e8 08 e3
     6311    jmp short 03316h                          ; eb a4
    62976312    xor al, al                                ; 30 c0
    6298     jmp short 03329h                          ; eb d6
     6313    jmp short 0334ch                          ; eb d6
    62996314    lea dx, [bp+012h]                         ; 8d 56 12
    63006315    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6301     call 00ad2h                               ; e8 76 d7
    6302     jmp short 032f3h                          ; eb 95
     6316    call 00ad2h                               ; e8 53 d7
     6317    jmp short 03316h                          ; eb 95
    63036318    mov cx, word [bp+010h]                    ; 8b 4e 10
    63046319    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    63076322    mov dx, ax                                ; 89 c2
    63086323    mov al, byte [bp+012h]                    ; 8a 46 12
    6309     call 01ea9h                               ; e8 38 eb
    6310     jmp short 032f3h                          ; eb 80
     6324    call 01ecch                               ; e8 38 eb
     6325    jmp short 03316h                          ; eb 80
    63116326    mov cx, word [bp+010h]                    ; 8b 4e 10
    63126327    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    63156330    mov dx, ax                                ; 89 c2
    63166331    mov al, byte [bp+012h]                    ; 8a 46 12
    6317     call 0203bh                               ; e8 b5 ec
    6318     jmp near 035bch                           ; e9 33 02
     6332    call 0205eh                               ; e8 b5 ec
     6333    jmp near 035dfh                           ; e9 33 02
    63196334    mov cx, word [bp+00eh]                    ; 8b 4e 0e
    63206335    mov bx, word [bp+010h]                    ; 8b 5e 10
     
    63246339    mov word [bp-006h], ax                    ; 89 46 fa
    63256340    mov al, byte [bp-006h]                    ; 8a 46 fa
    6326     call 021ceh                               ; e8 2f ee
    6327     jmp near 035bch                           ; e9 1a 02
     6341    call 021f1h                               ; e8 2f ee
     6342    jmp near 035dfh                           ; e9 1a 02
    63286343    lea cx, [bp+012h]                         ; 8d 4e 12
    63296344    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    63306345    mov dx, word [bp+010h]                    ; 8b 56 10
    63316346    mov al, byte [bp+00dh]                    ; 8a 46 0d
    6332     call 00bfch                               ; e8 4b d8
    6333     jmp near 035bch                           ; e9 08 02
     6347    call 00bfch                               ; e8 28 d8
     6348    jmp near 035dfh                           ; e9 08 02
    63346349    mov cx, strict word 00002h                ; b9 02 00
    63356350    mov al, byte [bp+00ch]                    ; 8a 46 0c
     
    63376352    mov dx, 000ffh                            ; ba ff 00
    63386353    mov al, byte [bp+012h]                    ; 8a 46 12
    6339     call 0234dh                               ; e8 88 ef
    6340     jmp near 035bch                           ; e9 f4 01
     6354    call 02370h                               ; e8 88 ef
     6355    jmp near 035dfh                           ; e9 f4 01
    63416356    mov dx, word [bp+010h]                    ; 8b 56 10
    63426357    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6343     call 00d3fh                               ; e8 6e d9
    6344     jmp near 035bch                           ; e9 e8 01
     6358    call 00d3fh                               ; e8 4b d9
     6359    jmp near 035dfh                           ; e9 e8 01
    63456360    cmp ax, strict word 00030h                ; 3d 30 00
    6346     jnbe short 03445h                         ; 77 6c
     6361    jnbe short 03468h                         ; 77 6c
    63476362    push CS                                   ; 0e
    63486363    pop ES                                    ; 07
    63496364    mov cx, strict word 0000fh                ; b9 0f 00
    6350     mov di, 03238h                            ; bf 38 32
     6365    mov di, 0325bh                            ; bf 5b 32
    63516366    repne scasb                               ; f2 ae
    63526367    sal cx, 1                                 ; d1 e1
    63536368    mov di, cx                                ; 89 cf
    6354     mov dx, word [cs:di+03246h]               ; 2e 8b 95 46 32
     6369    mov dx, word [cs:di+03269h]               ; 2e 8b 95 69 32
    63556370    mov al, byte [bp+00ch]                    ; 8a 46 0c
    63566371    jmp dx                                    ; ff e2
     
    63656380    mov bx, word [bp+008h]                    ; 8b 5e 08
    63666381    mov dx, word [bp+016h]                    ; 8b 56 16
    6367     call 026dfh                               ; e8 d2 f2
    6368     jmp short 03445h                          ; eb 36
     6382    call 02702h                               ; e8 d2 f2
     6383    jmp short 03468h                          ; eb 36
    63696384    mov dl, byte [bp+00ch]                    ; 8a 56 0c
    63706385    xor dh, dh                                ; 30 f6
    63716386    mov al, byte [bp+012h]                    ; 8a 46 12
    63726387    xor ah, ah                                ; 30 e4
    6373     call 02764h                               ; e8 48 f3
    6374     jmp short 03445h                          ; eb 27
     6388    call 02787h                               ; e8 48 f3
     6389    jmp short 03468h                          ; eb 27
    63756390    mov al, byte [bp+00ch]                    ; 8a 46 0c
    63766391    xor ah, ah                                ; 30 e4
    63776392    mov dx, ax                                ; 89 c2
    63786393    mov al, byte [bp+012h]                    ; 8a 46 12
    6379     call 027dah                               ; e8 af f3
    6380     jmp short 03445h                          ; eb 18
     6394    call 027fdh                               ; e8 af f3
     6395    jmp short 03468h                          ; eb 18
    63816396    mov al, byte [bp+00ch]                    ; 8a 46 0c
    63826397    xor ah, ah                                ; 30 e4
    63836398    mov dx, ax                                ; 89 c2
    63846399    mov al, byte [bp+012h]                    ; 8a 46 12
    6385     call 0284eh                               ; e8 14 f4
    6386     jmp short 03445h                          ; eb 09
     6400    call 02871h                               ; e8 14 f4
     6401    jmp short 03468h                          ; eb 09
    63876402    mov dx, word [bp+008h]                    ; 8b 56 08
    63886403    mov ax, word [bp+016h]                    ; 8b 46 16
    6389     call 028c2h                               ; e8 7d f4
    6390     jmp near 035bch                           ; e9 74 01
     6404    call 028e5h                               ; e8 7d f4
     6405    jmp near 035dfh                           ; e9 74 01
    63916406    mov al, byte [bp+00eh]                    ; 8a 46 0e
    63926407    push ax                                   ; 50
     
    63976412    mov cx, ax                                ; 89 c1
    63986413    mov ax, si                                ; 89 f0
    6399     call 028c7h                               ; e8 68 f4
    6400     jmp short 03445h                          ; eb e4
    6401     call 028ceh                               ; e8 6a f4
    6402     jmp short 03445h                          ; eb df
    6403     call 028d3h                               ; e8 6a f4
    6404     jmp short 03445h                          ; eb da
    6405     call 028d8h                               ; e8 6a f4
    6406     jmp short 03445h                          ; eb d5
     6414    call 028eah                               ; e8 68 f4
     6415    jmp short 03468h                          ; eb e4
     6416    call 028f1h                               ; e8 6a f4
     6417    jmp short 03468h                          ; eb df
     6418    call 028f6h                               ; e8 6a f4
     6419    jmp short 03468h                          ; eb da
     6420    call 028fbh                               ; e8 6a f4
     6421    jmp short 03468h                          ; eb d5
    64076422    lea ax, [bp+00eh]                         ; 8d 46 0e
    64086423    push ax                                   ; 50
     
    64126427    lea bx, [bp+008h]                         ; 8d 5e 08
    64136428    lea dx, [bp+016h]                         ; 8d 56 16
    6414     call 00b81h                               ; e8 fc d6
    6415     jmp short 03445h                          ; eb be
     6429    call 00b81h                               ; e8 d9 d6
     6430    jmp short 03468h                          ; eb be
    64166431    mov ax, word [bp+00ch]                    ; 8b 46 0c
    64176432    xor ah, ah                                ; 30 e4
    64186433    cmp ax, strict word 00036h                ; 3d 36 00
    6419     je short 034b5h                           ; 74 24
     6434    je short 034d8h                           ; 74 24
    64206435    cmp ax, strict word 00035h                ; 3d 35 00
    6421     je short 034a0h                           ; 74 0a
     6436    je short 034c3h                           ; 74 0a
    64226437    cmp ax, strict word 00020h                ; 3d 20 00
    6423     jne short 034e0h                          ; 75 45
    6424     call 028ddh                               ; e8 3f f4
    6425     jmp short 034e0h                          ; eb 40
     6438    jne short 03503h                          ; 75 45
     6439    call 02900h                               ; e8 3f f4
     6440    jmp short 03503h                          ; eb 40
    64266441    mov al, dl                                ; 88 d0
    64276442    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    64286443    mov dx, word [bp+016h]                    ; 8b 56 16
    6429     call 028e2h                               ; e8 37 f4
     6444    call 02905h                               ; e8 37 f4
    64306445    mov ax, word [bp+012h]                    ; 8b 46 12
    64316446    xor al, al                                ; 30 c0
    64326447    or AL, strict byte 012h                   ; 0c 12
    6433     jmp near 032e3h                           ; e9 2e fe
     6448    jmp near 03306h                           ; e9 2e fe
    64346449    mov al, dl                                ; 88 d0
    6435     call 028e7h                               ; e8 2d f4
    6436     jmp short 034abh                          ; eb ef
     6450    call 0290ah                               ; e8 2d f4
     6451    jmp short 034ceh                          ; eb ef
    64376452    push word [bp+008h]                       ; ff 76 08
    64386453    push word [bp+016h]                       ; ff 76 16
     
    64496464    mov dx, ax                                ; 89 c2
    64506465    mov ax, si                                ; 89 f0
    6451     call 028ech                               ; e8 0c f4
    6452     jmp near 035bch                           ; e9 d9 00
     6466    call 0290fh                               ; e8 0c f4
     6467    jmp near 035dfh                           ; e9 d9 00
    64536468    mov bx, si                                ; 89 f3
    64546469    mov dx, word [bp+016h]                    ; 8b 56 16
    64556470    mov ax, word [bp+00ch]                    ; 8b 46 0c
    6456     call 02982h                               ; e8 94 f4
     6471    call 029a5h                               ; e8 94 f4
    64576472    mov ax, word [bp+012h]                    ; 8b 46 12
    64586473    xor al, al                                ; 30 c0
    64596474    or AL, strict byte 01bh                   ; 0c 1b
    6460     jmp near 032e3h                           ; e9 eb fd
     6475    jmp near 03306h                           ; e9 eb fd
    64616476    cmp ax, strict word 00002h                ; 3d 02 00
    6462     je short 0351fh                           ; 74 22
     6477    je short 03542h                           ; 74 22
    64636478    cmp ax, strict word 00001h                ; 3d 01 00
    6464     je short 03511h                           ; 74 0f
     6479    je short 03534h                           ; 74 0f
    64656480    test ax, ax                               ; 85 c0
    6466     jne short 0352bh                          ; 75 25
     6481    jne short 0354eh                          ; 75 25
    64676482    lea dx, [bp+00ch]                         ; 8d 56 0c
    64686483    mov ax, word [bp+010h]                    ; 8b 46 10
    6469     call 02aa7h                               ; e8 98 f5
    6470     jmp short 0352bh                          ; eb 1a
     6484    call 02acah                               ; e8 98 f5
     6485    jmp short 0354eh                          ; eb 1a
    64716486    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    64726487    mov dx, word [bp+016h]                    ; 8b 56 16
    64736488    mov ax, word [bp+010h]                    ; 8b 46 10
    6474     call 02ab9h                               ; e8 9c f5
    6475     jmp short 0352bh                          ; eb 0c
     6489    call 02adch                               ; e8 9c f5
     6490    jmp short 0354eh                          ; eb 0c
    64766491    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    64776492    mov dx, word [bp+016h]                    ; 8b 56 16
    64786493    mov ax, word [bp+010h]                    ; 8b 46 10
    6479     call 02e3ah                               ; e8 0f f9
     6494    call 02e5dh                               ; e8 0f f9
    64806495    mov ax, word [bp+012h]                    ; 8b 46 12
    64816496    xor al, al                                ; 30 c0
    64826497    or AL, strict byte 01ch                   ; 0c 1c
    6483     jmp near 032e3h                           ; e9 ae fd
    6484     call 007e8h                               ; e8 b0 d2
     6498    jmp near 03306h                           ; e9 ae fd
     6499    call 007e8h                               ; e8 8d d2
    64856500    test ax, ax                               ; 85 c0
    6486     je short 035aeh                           ; 74 72
     6501    je short 035d1h                           ; 74 72
    64876502    mov ax, word [bp+012h]                    ; 8b 46 12
    64886503    xor ah, ah                                ; 30 e4
    64896504    cmp ax, strict word 0000ah                ; 3d 0a 00
    6490     jnbe short 035b0h                         ; 77 6a
     6505    jnbe short 035d3h                         ; 77 6a
    64916506    push CS                                   ; 0e
    64926507    pop ES                                    ; 07
    64936508    mov cx, strict word 00008h                ; b9 08 00
    6494     mov di, 03264h                            ; bf 64 32
     6509    mov di, 03287h                            ; bf 87 32
    64956510    repne scasb                               ; f2 ae
    64966511    sal cx, 1                                 ; d1 e1
    64976512    mov di, cx                                ; 89 cf
    6498     mov ax, word [cs:di+0326bh]               ; 2e 8b 85 6b 32
     6513    mov ax, word [cs:di+0328eh]               ; 2e 8b 85 8e 32
    64996514    jmp ax                                    ; ff e0
    65006515    mov bx, si                                ; 89 f3
    65016516    mov dx, word [bp+016h]                    ; 8b 56 16
    65026517    lea ax, [bp+012h]                         ; 8d 46 12
    6503     call 0375fh                               ; e8 f9 01
    6504     jmp short 035bch                          ; eb 54
     6518    call 0379bh                               ; e8 12 02
     6519    jmp short 035dfh                          ; eb 54
    65056520    mov cx, si                                ; 89 f1
    65066521    mov bx, word [bp+016h]                    ; 8b 5e 16
    65076522    mov dx, word [bp+010h]                    ; 8b 56 10
    65086523    lea ax, [bp+012h]                         ; 8d 46 12
    6509     call 0388eh                               ; e8 18 03
    6510     jmp short 035bch                          ; eb 44
     6524    call 038cah                               ; e8 31 03
     6525    jmp short 035dfh                          ; eb 44
    65116526    mov cx, si                                ; 89 f1
    65126527    mov bx, word [bp+016h]                    ; 8b 5e 16
    65136528    mov dx, word [bp+00ch]                    ; 8b 56 0c
    65146529    lea ax, [bp+012h]                         ; 8d 46 12
    6515     call 0394bh                               ; e8 c5 03
    6516     jmp short 035bch                          ; eb 34
     6530    call 03987h                               ; e8 de 03
     6531    jmp short 035dfh                          ; eb 34
    65176532    lea ax, [bp+00ch]                         ; 8d 46 0c
    65186533    push ax                                   ; 50
     
    65216536    mov dx, word [bp+010h]                    ; 8b 56 10
    65226537    lea ax, [bp+012h]                         ; 8d 46 12
    6523     call 03b34h                               ; e8 99 05
    6524     jmp short 035bch                          ; eb 1f
     6538    call 03b70h                               ; e8 b2 05
     6539    jmp short 035dfh                          ; eb 1f
    65256540    lea cx, [bp+00eh]                         ; 8d 4e 0e
    65266541    lea bx, [bp+010h]                         ; 8d 5e 10
    65276542    lea dx, [bp+00ch]                         ; 8d 56 0c
    65286543    lea ax, [bp+012h]                         ; 8d 46 12
    6529     call 03bc1h                               ; e8 15 06
    6530     jmp short 035bch                          ; eb 0e
    6531     jmp short 035b7h                          ; eb 07
     6544    call 03bfdh                               ; e8 2e 06
     6545    jmp short 035dfh                          ; eb 0e
     6546    jmp short 035dah                          ; eb 07
    65326547    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    6533     jmp short 035bch                          ; eb 05
     6548    jmp short 035dfh                          ; eb 05
    65346549    mov word [bp+012h], 00100h                ; c7 46 12 00 01
    65356550    lea sp, [bp-004h]                         ; 8d 66 fc
     
    65386553    pop bp                                    ; 5d
    65396554    retn                                      ; c3
    6540 dispi_set_xres_:                             ; 0xc35c3 LB 0x1f
     6555dispi_set_xres_:                             ; 0xc35e6 LB 0x1f
    65416556    push bp                                   ; 55
    65426557    mov bp, sp                                ; 89 e5
     
    65466561    mov ax, strict word 00001h                ; b8 01 00
    65476562    mov dx, 001ceh                            ; ba ce 01
    6548     call 00590h                               ; e8 bd cf
     6563    call 00590h                               ; e8 9a cf
    65496564    mov ax, bx                                ; 89 d8
    65506565    mov dx, 001cfh                            ; ba cf 01
    6551     call 00590h                               ; e8 b5 cf
     6566    call 00590h                               ; e8 92 cf
    65526567    lea sp, [bp-004h]                         ; 8d 66 fc
    65536568    pop dx                                    ; 5a
     
    65556570    pop bp                                    ; 5d
    65566571    retn                                      ; c3
    6557 dispi_set_yres_:                             ; 0xc35e2 LB 0x1f
     6572dispi_set_yres_:                             ; 0xc3605 LB 0x1f
    65586573    push bp                                   ; 55
    65596574    mov bp, sp                                ; 89 e5
     
    65636578    mov ax, strict word 00002h                ; b8 02 00
    65646579    mov dx, 001ceh                            ; ba ce 01
    6565     call 00590h                               ; e8 9e cf
     6580    call 00590h                               ; e8 7b cf
    65666581    mov ax, bx                                ; 89 d8
    65676582    mov dx, 001cfh                            ; ba cf 01
    6568     call 00590h                               ; e8 96 cf
     6583    call 00590h                               ; e8 73 cf
    65696584    lea sp, [bp-004h]                         ; 8d 66 fc
    65706585    pop dx                                    ; 5a
     
    65726587    pop bp                                    ; 5d
    65736588    retn                                      ; c3
    6574 dispi_set_bpp_:                              ; 0xc3601 LB 0x1f
     6589dispi_get_yres_:                             ; 0xc3624 LB 0x19
     6590    push bp                                   ; 55
     6591    mov bp, sp                                ; 89 e5
     6592    push dx                                   ; 52
     6593    mov ax, strict word 00002h                ; b8 02 00
     6594    mov dx, 001ceh                            ; ba ce 01
     6595    call 00590h                               ; e8 5f cf
     6596    mov dx, 001cfh                            ; ba cf 01
     6597    call 00597h                               ; e8 60 cf
     6598    lea sp, [bp-002h]                         ; 8d 66 fe
     6599    pop dx                                    ; 5a
     6600    pop bp                                    ; 5d
     6601    retn                                      ; c3
     6602dispi_set_bpp_:                              ; 0xc363d LB 0x1f
    65756603    push bp                                   ; 55
    65766604    mov bp, sp                                ; 89 e5
     
    65806608    mov ax, strict word 00003h                ; b8 03 00
    65816609    mov dx, 001ceh                            ; ba ce 01
    6582     call 00590h                               ; e8 7f cf
     6610    call 00590h                               ; e8 43 cf
    65836611    mov ax, bx                                ; 89 d8
    65846612    mov dx, 001cfh                            ; ba cf 01
    6585     call 00590h                               ; e8 77 cf
     6613    call 00590h                               ; e8 3b cf
    65866614    lea sp, [bp-004h]                         ; 8d 66 fc
    65876615    pop dx                                    ; 5a
     
    65896617    pop bp                                    ; 5d
    65906618    retn                                      ; c3
    6591 dispi_get_bpp_:                              ; 0xc3620 LB 0x19
     6619dispi_get_bpp_:                              ; 0xc365c LB 0x19
    65926620    push bp                                   ; 55
    65936621    mov bp, sp                                ; 89 e5
     
    65956623    mov ax, strict word 00003h                ; b8 03 00
    65966624    mov dx, 001ceh                            ; ba ce 01
    6597     call 00590h                               ; e8 63 cf
     6625    call 00590h                               ; e8 27 cf
    65986626    mov dx, 001cfh                            ; ba cf 01
    6599     call 00597h                               ; e8 64 cf
     6627    call 00597h                               ; e8 28 cf
    66006628    lea sp, [bp-002h]                         ; 8d 66 fe
    66016629    pop dx                                    ; 5a
    66026630    pop bp                                    ; 5d
    66036631    retn                                      ; c3
    6604 dispi_set_virt_width_:                       ; 0xc3639 LB 0x1f
     6632dispi_set_virt_width_:                       ; 0xc3675 LB 0x1f
    66056633    push bp                                   ; 55
    66066634    mov bp, sp                                ; 89 e5
     
    66106638    mov ax, strict word 00006h                ; b8 06 00
    66116639    mov dx, 001ceh                            ; ba ce 01
    6612     call 00590h                               ; e8 47 cf
     6640    call 00590h                               ; e8 0b cf
    66136641    mov ax, bx                                ; 89 d8
    66146642    mov dx, 001cfh                            ; ba cf 01
    6615     call 00590h                               ; e8 3f cf
     6643    call 00590h                               ; e8 03 cf
    66166644    lea sp, [bp-004h]                         ; 8d 66 fc
    66176645    pop dx                                    ; 5a
     
    66196647    pop bp                                    ; 5d
    66206648    retn                                      ; c3
    6621 dispi_get_virt_width_:                       ; 0xc3658 LB 0x19
     6649dispi_get_virt_width_:                       ; 0xc3694 LB 0x19
    66226650    push bp                                   ; 55
    66236651    mov bp, sp                                ; 89 e5
     
    66256653    mov ax, strict word 00006h                ; b8 06 00
    66266654    mov dx, 001ceh                            ; ba ce 01
    6627     call 00590h                               ; e8 2b cf
     6655    call 00590h                               ; e8 ef ce
    66286656    mov dx, 001cfh                            ; ba cf 01
    6629     call 00597h                               ; e8 2c cf
     6657    call 00597h                               ; e8 f0 ce
    66306658    lea sp, [bp-002h]                         ; 8d 66 fe
    66316659    pop dx                                    ; 5a
    66326660    pop bp                                    ; 5d
    66336661    retn                                      ; c3
    6634 dispi_get_virt_height_:                      ; 0xc3671 LB 0x19
     6662dispi_get_virt_height_:                      ; 0xc36ad LB 0x19
    66356663    push bp                                   ; 55
    66366664    mov bp, sp                                ; 89 e5
     
    66386666    mov ax, strict word 00007h                ; b8 07 00
    66396667    mov dx, 001ceh                            ; ba ce 01
    6640     call 00590h                               ; e8 12 cf
     6668    call 00590h                               ; e8 d6 ce
    66416669    mov dx, 001cfh                            ; ba cf 01
    6642     call 00597h                               ; e8 13 cf
     6670    call 00597h                               ; e8 d7 ce
    66436671    lea sp, [bp-002h]                         ; 8d 66 fe
    66446672    pop dx                                    ; 5a
    66456673    pop bp                                    ; 5d
    66466674    retn                                      ; c3
    6647 in_word_:                                    ; 0xc368a LB 0x12
     6675in_word_:                                    ; 0xc36c6 LB 0x12
    66486676    push bp                                   ; 55
    66496677    mov bp, sp                                ; 89 e5
     
    66586686    pop bp                                    ; 5d
    66596687    retn                                      ; c3
    6660 in_byte_:                                    ; 0xc369c LB 0x14
     6688in_byte_:                                    ; 0xc36d8 LB 0x14
    66616689    push bp                                   ; 55
    66626690    mov bp, sp                                ; 89 e5
     
    66736701    pop bp                                    ; 5d
    66746702    retn                                      ; c3
    6675 dispi_get_id_:                               ; 0xc36b0 LB 0x14
     6703dispi_get_id_:                               ; 0xc36ec LB 0x14
    66766704    push bp                                   ; 55
    66776705    mov bp, sp                                ; 89 e5
     
    66866714    pop bp                                    ; 5d
    66876715    retn                                      ; c3
    6688 dispi_set_id_:                               ; 0xc36c4 LB 0x1a
     6716dispi_set_id_:                               ; 0xc3700 LB 0x1a
    66896717    push bp                                   ; 55
    66906718    mov bp, sp                                ; 89 e5
     
    67036731    pop bp                                    ; 5d
    67046732    retn                                      ; c3
    6705 vbe_init_:                                   ; 0xc36de LB 0x2c
     6733vbe_init_:                                   ; 0xc371a LB 0x2c
    67066734    push bp                                   ; 55
    67076735    mov bp, sp                                ; 89 e5
     
    67096737    push dx                                   ; 52
    67106738    mov ax, 0b0c0h                            ; b8 c0 b0
    6711     call 036c4h                               ; e8 db ff
    6712     call 036b0h                               ; e8 c4 ff
     6739    call 03700h                               ; e8 db ff
     6740    call 036ech                               ; e8 c4 ff
    67136741    cmp ax, 0b0c0h                            ; 3d c0 b0
    6714     jne short 03703h                          ; 75 12
     6742    jne short 0373fh                          ; 75 12
    67156743    mov bx, strict word 00001h                ; bb 01 00
    67166744    mov dx, 000b9h                            ; ba b9 00
    67176745    mov ax, strict word 00040h                ; b8 40 00
    6718     call 031a9h                               ; e8 ac fa
     6746    call 031cch                               ; e8 93 fa
    67196747    mov ax, 0b0c4h                            ; b8 c4 b0
    6720     call 036c4h                               ; e8 c1 ff
     6748    call 03700h                               ; e8 c1 ff
    67216749    lea sp, [bp-004h]                         ; 8d 66 fc
    67226750    pop dx                                    ; 5a
     
    67246752    pop bp                                    ; 5d
    67256753    retn                                      ; c3
    6726 mode_info_find_mode_:                        ; 0xc370a LB 0x55
     6754mode_info_find_mode_:                        ; 0xc3746 LB 0x55
    67276755    push bp                                   ; 55
    67286756    mov bp, sp                                ; 89 e5
     
    67356763    xor dx, dx                                ; 31 d2
    67366764    mov ax, 003b6h                            ; b8 b6 03
    6737     call 0368ah                               ; e8 6d ff
     6765    call 036c6h                               ; e8 6d ff
    67386766    cmp ax, 077cch                            ; 3d cc 77
    6739     jne short 03754h                          ; 75 32
     6767    jne short 03790h                          ; 75 32
    67406768    mov bx, strict word 00004h                ; bb 04 00
    67416769    mov dx, bx                                ; 89 da
    67426770    mov ax, 003b6h                            ; b8 b6 03
    6743     call 0368ah                               ; e8 5d ff
     6771    call 036c6h                               ; e8 5d ff
    67446772    mov cx, ax                                ; 89 c1
    67456773    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    6746     je short 03754h                           ; 74 20
     6774    je short 03790h                           ; 74 20
    67476775    lea dx, [bx+002h]                         ; 8d 57 02
    67486776    mov ax, 003b6h                            ; b8 b6 03
    6749     call 0368ah                               ; e8 4d ff
     6777    call 036c6h                               ; e8 4d ff
    67506778    lea dx, [bx+044h]                         ; 8d 57 44
    67516779    cmp cx, di                                ; 39 f9
    6752     jne short 03750h                          ; 75 0c
     6780    jne short 0378ch                          ; 75 0c
    67536781    test si, si                               ; 85 f6
    6754     jne short 0374ch                          ; 75 04
     6782    jne short 03788h                          ; 75 04
    67556783    mov ax, bx                                ; 89 d8
    6756     jmp short 03756h                          ; eb 0a
     6784    jmp short 03792h                          ; eb 0a
    67576785    test AL, strict byte 080h                 ; a8 80
    6758     jne short 03748h                          ; 75 f8
     6786    jne short 03784h                          ; 75 f8
    67596787    mov bx, dx                                ; 89 d3
    6760     jmp short 03727h                          ; eb d3
     6788    jmp short 03763h                          ; eb d3
    67616789    xor ax, ax                                ; 31 c0
    67626790    lea sp, [bp-008h]                         ; 8d 66 f8
     
    67676795    pop bp                                    ; 5d
    67686796    retn                                      ; c3
    6769 vbe_biosfn_return_controller_information_: ; 0xc375f LB 0x12f
     6797vbe_biosfn_return_controller_information_: ; 0xc379b LB 0x12f
    67706798    push bp                                   ; 55
    67716799    mov bp, sp                                ; 89 e5
     
    67786806    mov word [bp-00ah], bx                    ; 89 5e f6
    67796807    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
    6780     call 005dah                               ; e8 63 ce
     6808    call 005dah                               ; e8 27 ce
    67816809    mov word [bp-010h], ax                    ; 89 46 f0
    67826810    mov bx, word [bp-00ah]                    ; 8b 5e f6
     
    67846812    xor dx, dx                                ; 31 d2
    67856813    mov ax, 003b6h                            ; b8 b6 03
    6786     call 0368ah                               ; e8 02 ff
     6814    call 036c6h                               ; e8 02 ff
    67876815    cmp ax, 077cch                            ; 3d cc 77
    6788     je short 03797h                           ; 74 0a
     6816    je short 037d3h                           ; 74 0a
    67896817    push SS                                   ; 16
    67906818    pop ES                                    ; 07
    67916819    mov word [es:si], 00100h                  ; 26 c7 04 00 01
    6792     jmp near 03886h                           ; e9 ef 00
     6820    jmp near 038c2h                           ; e9 ef 00
    67936821    mov cx, strict word 00004h                ; b9 04 00
    67946822    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    67956823    mov es, [bp-008h]                         ; 8e 46 f8
    67966824    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
    6797     jne short 037b1h                          ; 75 07
     6825    jne short 037edh                          ; 75 07
    67986826    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
    6799     je short 037c0h                           ; 74 0f
     6827    je short 037fch                           ; 74 0f
    68006828    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
    6801     jne short 037c5h                          ; 75 0c
     6829    jne short 03801h                          ; 75 0c
    68026830    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
    6803     jne short 037c5h                          ; 75 05
     6831    jne short 03801h                          ; 75 05
    68046832    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    68056833    mov es, [bp-008h]                         ; 8e 46 f8
     
    68076835    mov word [es:bx+002h], 04153h             ; 26 c7 47 02 53 41
    68086836    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
    6809     mov word [es:bx+006h], 07c5eh             ; 26 c7 47 06 5e 7c
     6837    mov word [es:bx+006h], 07c6ch             ; 26 c7 47 06 6c 7c
    68106838    mov [es:bx+008h], ds                      ; 26 8c 5f 08
    68116839    mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
     
    68176845    mov dx, strict word 0ffffh                ; ba ff ff
    68186846    mov ax, 003b6h                            ; b8 b6 03
    6819     call 0368ah                               ; e8 84 fe
     6847    call 036c6h                               ; e8 84 fe
    68206848    mov es, [bp-008h]                         ; 8e 46 f8
    68216849    mov word [es:bx+012h], ax                 ; 26 89 47 12
    68226850    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    6823     je short 03837h                           ; 74 24
     6851    je short 03873h                           ; 74 24
    68246852    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
    6825     mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
     6853    mov word [es:bx+016h], 07c81h             ; 26 c7 47 16 81 7c
    68266854    mov [es:bx+018h], ds                      ; 26 8c 5f 18
    6827     mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
     6855    mov word [es:bx+01ah], 07c94h             ; 26 c7 47 1a 94 7c
    68286856    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
    6829     mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
     6857    mov word [es:bx+01eh], 07cb5h             ; 26 c7 47 1e b5 7c
    68306858    mov [es:bx+020h], ds                      ; 26 8c 5f 20
    68316859    mov dx, cx                                ; 89 ca
    68326860    add dx, strict byte 0001bh                ; 83 c2 1b
    68336861    mov ax, 003b6h                            ; b8 b6 03
    6834     call 0369ch                               ; e8 5a fe
     6862    call 036d8h                               ; e8 5a fe
    68356863    xor ah, ah                                ; 30 e4
    68366864    cmp ax, word [bp-010h]                    ; 3b 46 f0
    6837     jnbe short 03862h                         ; 77 19
     6865    jnbe short 0389eh                         ; 77 19
    68386866    mov dx, cx                                ; 89 ca
    68396867    mov ax, 003b6h                            ; b8 b6 03
    6840     call 0368ah                               ; e8 39 fe
     6868    call 036c6h                               ; e8 39 fe
    68416869    mov bx, ax                                ; 89 c3
    68426870    mov dx, word [bp-00ah]                    ; 8b 56 f6
    68436871    add dx, word [bp-00ch]                    ; 03 56 f4
    68446872    mov ax, di                                ; 89 f8
    6845     call 031c5h                               ; e8 67 f9
     6873    call 031e8h                               ; e8 4e f9
    68466874    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
    68476875    add cx, strict byte 00044h                ; 83 c1 44
    68486876    mov dx, cx                                ; 89 ca
    68496877    mov ax, 003b6h                            ; b8 b6 03
    6850     call 0368ah                               ; e8 1d fe
     6878    call 036c6h                               ; e8 1d fe
    68516879    mov bx, ax                                ; 89 c3
    68526880    cmp ax, strict word 0ffffh                ; 3d ff ff
    6853     jne short 03837h                          ; 75 c3
     6881    jne short 03873h                          ; 75 c3
    68546882    mov dx, word [bp-00ah]                    ; 8b 56 f6
    68556883    add dx, word [bp-00ch]                    ; 03 56 f4
    68566884    mov ax, di                                ; 89 f8
    6857     call 031c5h                               ; e8 46 f9
     6885    call 031e8h                               ; e8 2d f9
    68586886    push SS                                   ; 16
    68596887    pop ES                                    ; 07
     
    68656893    pop bp                                    ; 5d
    68666894    retn                                      ; c3
    6867 vbe_biosfn_return_mode_information_:         ; 0xc388e LB 0xbd
     6895vbe_biosfn_return_mode_information_:         ; 0xc38ca LB 0xbd
    68686896    push bp                                   ; 55
    68696897    mov bp, sp                                ; 89 e5
     
    68776905    mov word [bp-006h], cx                    ; 89 4e fa
    68786906    test dh, 040h                             ; f6 c6 40
    6879     je short 038a7h                           ; 74 05
     6907    je short 038e3h                           ; 74 05
    68806908    mov dx, strict word 00001h                ; ba 01 00
    6881     jmp short 038a9h                          ; eb 02
     6909    jmp short 038e5h                          ; eb 02
    68826910    xor dx, dx                                ; 31 d2
    68836911    and ah, 001h                              ; 80 e4 01
    6884     call 0370ah                               ; e8 5b fe
     6912    call 03746h                               ; e8 5b fe
    68856913    mov word [bp-008h], ax                    ; 89 46 f8
    68866914    test ax, ax                               ; 85 c0
    6887     je short 038ech                           ; 74 36
     6915    je short 03928h                           ; 74 36
    68886916    mov cx, 00100h                            ; b9 00 01
    68896917    xor ax, ax                                ; 31 c0
     
    68916919    mov es, si                                ; 8e c6
    68926920    cld                                       ; fc
    6893     jcxz 038c5h                               ; e3 02
     6921    jcxz 03901h                               ; e3 02
    68946922    rep stosb                                 ; f3 aa
    68956923    xor cx, cx                                ; 31 c9
    6896     jmp short 038ceh                          ; eb 05
     6924    jmp short 0390ah                          ; eb 05
    68976925    cmp cx, strict byte 00042h                ; 83 f9 42
    6898     jnc short 038eeh                          ; 73 20
     6926    jnc short 0392ah                          ; 73 20
    68996927    mov dx, word [bp-008h]                    ; 8b 56 f8
    69006928    inc dx                                    ; 42
     
    69026930    add dx, cx                                ; 01 ca
    69036931    mov ax, 003b6h                            ; b8 b6 03
    6904     call 0369ch                               ; e8 c1 fd
     6932    call 036d8h                               ; e8 c1 fd
    69056933    mov bl, al                                ; 88 c3
    69066934    xor bh, bh                                ; 30 ff
     
    69086936    add dx, cx                                ; 01 ca
    69096937    mov ax, si                                ; 89 f0
    6910     call 031a9h                               ; e8 c0 f8
    6911     inc cx                                    ; 41
    6912     jmp short 038c9h                          ; eb dd
    6913     jmp short 03939h                          ; eb 4b
     6938    call 031cch                               ; e8 a7 f8
     6939    inc cx                                    ; 41
     6940    jmp short 03905h                          ; eb dd
     6941    jmp short 03975h                          ; eb 4b
    69146942    mov dx, word [bp-006h]                    ; 8b 56 fa
    69156943    inc dx                                    ; 42
    69166944    inc dx                                    ; 42
    69176945    mov ax, si                                ; 89 f0
    6918     call 0319bh                               ; e8 a3 f8
     6946    call 031beh                               ; e8 8a f8
    69196947    test AL, strict byte 001h                 ; a8 01
    6920     je short 03918h                           ; 74 1c
     6948    je short 03954h                           ; 74 1c
    69216949    mov dx, word [bp-006h]                    ; 8b 56 fa
    69226950    add dx, strict byte 0000ch                ; 83 c2 0c
    69236951    mov bx, 0064ch                            ; bb 4c 06
    69246952    mov ax, si                                ; 89 f0
    6925     call 031c5h                               ; e8 bb f8
     6953    call 031e8h                               ; e8 a2 f8
    69266954    mov dx, word [bp-006h]                    ; 8b 56 fa
    69276955    add dx, strict byte 0000eh                ; 83 c2 0e
    69286956    mov bx, 0c000h                            ; bb 00 c0
    69296957    mov ax, si                                ; 89 f0
    6930     call 031c5h                               ; e8 ad f8
     6958    call 031e8h                               ; e8 94 f8
    69316959    mov ax, strict word 0000bh                ; b8 0b 00
    69326960    mov dx, 001ceh                            ; ba ce 01
    6933     call 00590h                               ; e8 6f cc
     6961    call 00590h                               ; e8 33 cc
    69346962    mov dx, 001cfh                            ; ba cf 01
    6935     call 00597h                               ; e8 70 cc
     6963    call 00597h                               ; e8 34 cc
    69366964    mov dx, word [bp-006h]                    ; 8b 56 fa
    69376965    add dx, strict byte 0002ah                ; 83 c2 2a
    69386966    mov bx, ax                                ; 89 c3
    69396967    mov ax, si                                ; 89 f0
    6940     call 031c5h                               ; e8 91 f8
     6968    call 031e8h                               ; e8 78 f8
    69416969    mov ax, strict word 0004fh                ; b8 4f 00
    6942     jmp short 0393ch                          ; eb 03
     6970    jmp short 03978h                          ; eb 03
    69436971    mov ax, 00100h                            ; b8 00 01
    69446972    push SS                                   ; 16
     
    69516979    pop bp                                    ; 5d
    69526980    retn                                      ; c3
    6953 vbe_biosfn_set_mode_:                        ; 0xc394b LB 0xeb
     6981vbe_biosfn_set_mode_:                        ; 0xc3987 LB 0xeb
    69546982    push bp                                   ; 55
    69556983    mov bp, sp                                ; 89 e5
     
    69606988    mov word [bp-00ah], dx                    ; 89 56 f6
    69616989    test byte [bp-009h], 040h                 ; f6 46 f7 40
    6962     je short 03963h                           ; 74 05
     6990    je short 0399fh                           ; 74 05
    69636991    mov ax, strict word 00001h                ; b8 01 00
    6964     jmp short 03965h                          ; eb 02
     6992    jmp short 039a1h                          ; eb 02
    69656993    xor ax, ax                                ; 31 c0
    69666994    mov dx, ax                                ; 89 c2
    69676995    test ax, ax                               ; 85 c0
    6968     je short 0396eh                           ; 74 03
     6996    je short 039aah                           ; 74 03
    69696997    mov ax, strict word 00040h                ; b8 40 00
    69706998    mov byte [bp-006h], al                    ; 88 46 fa
    69716999    test byte [bp-009h], 080h                 ; f6 46 f7 80
    6972     je short 0397ch                           ; 74 05
     7000    je short 039b8h                           ; 74 05
    69737001    mov ax, 00080h                            ; b8 80 00
    6974     jmp short 0397eh                          ; eb 02
     7002    jmp short 039bah                          ; eb 02
    69757003    xor ax, ax                                ; 31 c0
    69767004    mov byte [bp-008h], al                    ; 88 46 f8
    69777005    and byte [bp-009h], 001h                  ; 80 66 f7 01
    69787006    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
    6979     jnc short 0399fh                          ; 73 13
     7007    jnc short 039dbh                          ; 73 13
    69807008    xor ax, ax                                ; 31 c0
    6981     call 00600h                               ; e8 6f cc
     7009    call 00600h                               ; e8 33 cc
    69827010    mov al, byte [bp-00ah]                    ; 8a 46 f6
    69837011    xor ah, ah                                ; 30 e4
    6984     call 01019h                               ; e8 80 d6
     7012    call 01019h                               ; e8 44 d6
    69857013    mov ax, strict word 0004fh                ; b8 4f 00
    6986     jmp near 03a2ch                           ; e9 8d 00
     7014    jmp near 03a68h                           ; e9 8d 00
    69877015    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6988     call 0370ah                               ; e8 65 fd
     7016    call 03746h                               ; e8 65 fd
    69897017    mov bx, ax                                ; 89 c3
    69907018    test ax, ax                               ; 85 c0
    6991     jne short 039aeh                          ; 75 03
    6992     jmp near 03a29h                           ; e9 7b 00
     7019    jne short 039eah                          ; 75 03
     7020    jmp near 03a65h                           ; e9 7b 00
    69937021    lea dx, [bx+014h]                         ; 8d 57 14
    69947022    mov ax, 003b6h                            ; b8 b6 03
    6995     call 0368ah                               ; e8 d3 fc
     7023    call 036c6h                               ; e8 d3 fc
    69967024    mov cx, ax                                ; 89 c1
    69977025    lea dx, [bx+016h]                         ; 8d 57 16
    69987026    mov ax, 003b6h                            ; b8 b6 03
    6999     call 0368ah                               ; e8 c8 fc
     7027    call 036c6h                               ; e8 c8 fc
    70007028    mov di, ax                                ; 89 c7
    70017029    lea dx, [bx+01bh]                         ; 8d 57 1b
    70027030    mov ax, 003b6h                            ; b8 b6 03
    7003     call 0369ch                               ; e8 cf fc
     7031    call 036d8h                               ; e8 cf fc
    70047032    mov bl, al                                ; 88 c3
    70057033    mov dl, al                                ; 88 c2
    70067034    xor ax, ax                                ; 31 c0
    7007     call 00600h                               ; e8 2a cc
     7035    call 00600h                               ; e8 ee cb
    70087036    cmp bl, 004h                              ; 80 fb 04
    7009     jne short 039e1h                          ; 75 06
     7037    jne short 03a1dh                          ; 75 06
    70107038    mov ax, strict word 0006ah                ; b8 6a 00
    7011     call 01019h                               ; e8 38 d6
     7039    call 01019h                               ; e8 fc d5
    70127040    mov al, dl                                ; 88 d0
    70137041    xor ah, ah                                ; 30 e4
    7014     call 03601h                               ; e8 19 fc
     7042    call 0363dh                               ; e8 19 fc
    70157043    mov ax, cx                                ; 89 c8
    7016     call 035c3h                               ; e8 d6 fb
     7044    call 035e6h                               ; e8 bd fb
    70177045    mov ax, di                                ; 89 f8
    7018     call 035e2h                               ; e8 f0 fb
     7046    call 03605h                               ; e8 d7 fb
    70197047    xor ax, ax                                ; 31 c0
    7020     call 00626h                               ; e8 2f cc
     7048    call 00626h                               ; e8 f3 cb
    70217049    mov al, byte [bp-008h]                    ; 8a 46 f8
    70227050    or AL, strict byte 001h                   ; 0c 01
     
    70247052    mov dl, byte [bp-006h]                    ; 8a 56 fa
    70257053    or al, dl                                 ; 08 d0
    7026     call 00600h                               ; e8 fa cb
    7027     call 006f8h                               ; e8 ef cc
     7054    call 00600h                               ; e8 be cb
     7055    call 006f8h                               ; e8 b3 cc
    70287056    mov bx, word [bp-00ah]                    ; 8b 5e f6
    70297057    mov dx, 000bah                            ; ba ba 00
    70307058    mov ax, strict word 00040h                ; b8 40 00
    7031     call 031c5h                               ; e8 b0 f7
     7059    call 031e8h                               ; e8 97 f7
    70327060    mov bl, byte [bp-008h]                    ; 8a 5e f8
    70337061    or bl, 060h                               ; 80 cb 60
     
    70357063    mov dx, 00087h                            ; ba 87 00
    70367064    mov ax, strict word 00040h                ; b8 40 00
    7037     call 031a9h                               ; e8 83 f7
    7038     jmp near 03999h                           ; e9 70 ff
     7065    call 031cch                               ; e8 6a f7
     7066    jmp near 039d5h                           ; e9 70 ff
    70397067    mov ax, 00100h                            ; b8 00 01
    70407068    mov word [ss:si], ax                      ; 36 89 04
     
    70447072    pop bp                                    ; 5d
    70457073    retn                                      ; c3
    7046 vbe_biosfn_read_video_state_size_:           ; 0xc3a36 LB 0x8
     7074vbe_biosfn_read_video_state_size_:           ; 0xc3a72 LB 0x8
    70477075    push bp                                   ; 55
    70487076    mov bp, sp                                ; 89 e5
     
    70507078    pop bp                                    ; 5d
    70517079    retn                                      ; c3
    7052 vbe_biosfn_save_video_state_:                ; 0xc3a3e LB 0x5b
     7080vbe_biosfn_save_video_state_:                ; 0xc3a7a LB 0x5b
    70537081    push bp                                   ; 55
    70547082    mov bp, sp                                ; 89 e5
     
    70697097    mov dx, cx                                ; 89 ca
    70707098    mov ax, di                                ; 89 f8
    7071     call 031c5h                               ; e8 64 f7
     7099    call 031e8h                               ; e8 4b f7
    70727100    inc cx                                    ; 41
    70737101    inc cx                                    ; 41
    70747102    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7075     je short 03a90h                           ; 74 27
     7103    je short 03acch                           ; 74 27
    70767104    mov si, strict word 00001h                ; be 01 00
    7077     jmp short 03a73h                          ; eb 05
     7105    jmp short 03aafh                          ; eb 05
    70787106    cmp si, strict byte 00009h                ; 83 fe 09
    7079     jnbe short 03a90h                         ; 77 1d
     7107    jnbe short 03acch                         ; 77 1d
    70807108    cmp si, strict byte 00004h                ; 83 fe 04
    7081     je short 03a8dh                           ; 74 15
     7109    je short 03ac9h                           ; 74 15
    70827110    mov ax, si                                ; 89 f0
    70837111    mov dx, 001ceh                            ; ba ce 01
     
    70887116    mov dx, cx                                ; 89 ca
    70897117    mov ax, di                                ; 89 f8
    7090     call 031c5h                               ; e8 3a f7
     7118    call 031e8h                               ; e8 21 f7
    70917119    inc cx                                    ; 41
    70927120    inc cx                                    ; 41
    70937121    inc si                                    ; 46
    7094     jmp short 03a6eh                          ; eb de
     7122    jmp short 03aaah                          ; eb de
    70957123    lea sp, [bp-008h]                         ; 8d 66 f8
    70967124    pop di                                    ; 5f
     
    71007128    pop bp                                    ; 5d
    71017129    retn                                      ; c3
    7102 vbe_biosfn_restore_video_state_:             ; 0xc3a99 LB 0x9b
     7130vbe_biosfn_restore_video_state_:             ; 0xc3ad5 LB 0x9b
    71037131    push bp                                   ; 55
    71047132    mov bp, sp                                ; 89 e5
     
    71097137    mov cx, ax                                ; 89 c1
    71107138    mov bx, dx                                ; 89 d3
    7111     call 031b7h                               ; e8 10 f7
     7139    call 031dah                               ; e8 f7 f6
    71127140    mov word [bp-008h], ax                    ; 89 46 f8
    71137141    inc bx                                    ; 43
    71147142    inc bx                                    ; 43
    71157143    test byte [bp-008h], 001h                 ; f6 46 f8 01
    7116     jne short 03ac2h                          ; 75 10
     7144    jne short 03afeh                          ; 75 10
    71177145    mov ax, strict word 00004h                ; b8 04 00
    71187146    mov dx, 001ceh                            ; ba ce 01
     
    71217149    mov dx, 001cfh                            ; ba cf 01
    71227150    out DX, ax                                ; ef
    7123     jmp short 03b2ch                          ; eb 6a
     7151    jmp short 03b68h                          ; eb 6a
    71247152    mov ax, strict word 00001h                ; b8 01 00
    71257153    mov dx, 001ceh                            ; ba ce 01
     
    71277155    mov dx, bx                                ; 89 da
    71287156    mov ax, cx                                ; 89 c8
    7129     call 031b7h                               ; e8 e7 f6
     7157    call 031dah                               ; e8 ce f6
    71307158    mov dx, 001cfh                            ; ba cf 01
    71317159    out DX, ax                                ; ef
     
    71377165    mov dx, bx                                ; 89 da
    71387166    mov ax, cx                                ; 89 c8
    7139     call 031b7h                               ; e8 d3 f6
     7167    call 031dah                               ; e8 ba f6
    71407168    mov dx, 001cfh                            ; ba cf 01
    71417169    out DX, ax                                ; ef
     
    71477175    mov dx, bx                                ; 89 da
    71487176    mov ax, cx                                ; 89 c8
    7149     call 031b7h                               ; e8 bf f6
     7177    call 031dah                               ; e8 a6 f6
    71507178    mov dx, 001cfh                            ; ba cf 01
    71517179    out DX, ax                                ; ef
     
    71597187    out DX, ax                                ; ef
    71607188    mov si, strict word 00005h                ; be 05 00
    7161     jmp short 03b16h                          ; eb 05
     7189    jmp short 03b52h                          ; eb 05
    71627190    cmp si, strict byte 00009h                ; 83 fe 09
    7163     jnbe short 03b2ch                         ; 77 16
     7191    jnbe short 03b68h                         ; 77 16
    71647192    mov ax, si                                ; 89 f0
    71657193    mov dx, 001ceh                            ; ba ce 01
     
    71677195    mov dx, bx                                ; 89 da
    71687196    mov ax, cx                                ; 89 c8
    7169     call 031b7h                               ; e8 94 f6
     7197    call 031dah                               ; e8 7b f6
    71707198    mov dx, 001cfh                            ; ba cf 01
    71717199    out DX, ax                                ; ef
     
    71737201    inc bx                                    ; 43
    71747202    inc si                                    ; 46
    7175     jmp short 03b11h                          ; eb e5
     7203    jmp short 03b4dh                          ; eb e5
    71767204    lea sp, [bp-006h]                         ; 8d 66 fa
    71777205    pop si                                    ; 5e
     
    71807208    pop bp                                    ; 5d
    71817209    retn                                      ; c3
    7182 vbe_biosfn_save_restore_state_:              ; 0xc3b34 LB 0x8d
     7210vbe_biosfn_save_restore_state_:              ; 0xc3b70 LB 0x8d
    71837211    push bp                                   ; 55
    71847212    mov bp, sp                                ; 89 e5
     
    71937221    xor ah, ah                                ; 30 e4
    71947222    cmp ax, strict word 00002h                ; 3d 02 00
    7195     je short 03b94h                           ; 74 46
     7223    je short 03bd0h                           ; 74 46
    71967224    cmp ax, strict word 00001h                ; 3d 01 00
    7197     je short 03b78h                           ; 74 25
     7225    je short 03bb4h                           ; 74 25
    71987226    test ax, ax                               ; 85 c0
    7199     jne short 03bb0h                          ; 75 59
     7227    jne short 03bech                          ; 75 59
    72007228    mov ax, word [bp-006h]                    ; 8b 46 fa
    7201     call 02a84h                               ; e8 27 ef
     7229    call 02aa7h                               ; e8 0e ef
    72027230    mov cx, ax                                ; 89 c1
    72037231    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7204     je short 03b6ah                           ; 74 05
    7205     call 03a36h                               ; e8 ce fe
     7232    je short 03ba6h                           ; 74 05
     7233    call 03a72h                               ; e8 ce fe
    72067234    add ax, cx                                ; 01 c8
    72077235    add ax, strict word 0003fh                ; 05 3f 00
     
    72117239    pop ES                                    ; 07
    72127240    mov word [es:bx], ax                      ; 26 89 07
    7213     jmp short 03bb3h                          ; eb 3b
     7241    jmp short 03befh                          ; eb 3b
    72147242    push SS                                   ; 16
    72157243    pop ES                                    ; 07
     
    72177245    mov dx, cx                                ; 89 ca
    72187246    mov ax, word [bp-006h]                    ; 8b 46 fa
    7219     call 02ab9h                               ; e8 34 ef
     7247    call 02adch                               ; e8 1b ef
    72207248    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7221     je short 03bb3h                           ; 74 28
     7249    je short 03befh                           ; 74 28
    72227250    mov dx, ax                                ; 89 c2
    72237251    mov ax, cx                                ; 89 c8
    7224     call 03a3eh                               ; e8 ac fe
    7225     jmp short 03bb3h                          ; eb 1f
     7252    call 03a7ah                               ; e8 ac fe
     7253    jmp short 03befh                          ; eb 1f
    72267254    push SS                                   ; 16
    72277255    pop ES                                    ; 07
     
    72297257    mov dx, cx                                ; 89 ca
    72307258    mov ax, word [bp-006h]                    ; 8b 46 fa
    7231     call 02e3ah                               ; e8 99 f2
     7259    call 02e5dh                               ; e8 80 f2
    72327260    test byte [bp-006h], 008h                 ; f6 46 fa 08
    7233     je short 03bb3h                           ; 74 0c
     7261    je short 03befh                           ; 74 0c
    72347262    mov dx, ax                                ; 89 c2
    72357263    mov ax, cx                                ; 89 c8
    7236     call 03a99h                               ; e8 eb fe
    7237     jmp short 03bb3h                          ; eb 03
     7264    call 03ad5h                               ; e8 eb fe
     7265    jmp short 03befh                          ; eb 03
    72387266    mov di, 00100h                            ; bf 00 01
    72397267    push SS                                   ; 16
     
    72457273    pop bp                                    ; 5d
    72467274    retn 00002h                               ; c2 02 00
    7247 vbe_biosfn_get_set_scanline_length_:         ; 0xc3bc1 LB 0xb2
     7275vbe_biosfn_get_set_scanline_length_:         ; 0xc3bfd LB 0xe2
    72487276    push bp                                   ; 55
    72497277    mov bp, sp                                ; 89 e5
    72507278    push si                                   ; 56
    72517279    push di                                   ; 57
    7252     sub sp, strict byte 00006h                ; 83 ec 06
    7253     push ax                                   ; 50
    7254     mov si, dx                                ; 89 d6
    7255     mov di, bx                                ; 89 df
    7256     mov word [bp-008h], cx                    ; 89 4e f8
    7257     call 03620h                               ; e8 4c fa
    7258     mov ch, al                                ; 88 c5
    7259     mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
     7280    sub sp, strict byte 0000ah                ; 83 ec 0a
     7281    push ax                                   ; 50
     7282    mov di, dx                                ; 89 d7
     7283    mov word [bp-006h], bx                    ; 89 5e fa
     7284    mov si, cx                                ; 89 ce
     7285    call 0365ch                               ; e8 4c fa
     7286    cmp AL, strict byte 00fh                  ; 3c 0f
     7287    jne short 03c19h                          ; 75 05
     7288    mov cx, strict word 00010h                ; b9 10 00
     7289    jmp short 03c1dh                          ; eb 04
     7290    xor ah, ah                                ; 30 e4
     7291    mov cx, ax                                ; 89 c1
     7292    mov ch, cl                                ; 88 cd
     7293    call 03694h                               ; e8 72 fa
     7294    mov word [bp-00ah], ax                    ; 89 46 f6
     7295    mov word [bp-00ch], strict word 0004fh    ; c7 46 f4 4f 00
    72607296    push SS                                   ; 16
    72617297    pop ES                                    ; 07
    7262     mov bx, word [es:di]                      ; 26 8b 1d
    7263     mov al, byte [es:si]                      ; 26 8a 04
     7298    mov bx, word [bp-006h]                    ; 8b 5e fa
     7299    mov bx, word [es:bx]                      ; 26 8b 1f
     7300    mov al, byte [es:di]                      ; 26 8a 05
    72647301    cmp AL, strict byte 002h                  ; 3c 02
    7265     je short 03bf1h                           ; 74 0a
     7302    je short 03c44h                           ; 74 0b
    72667303    cmp AL, strict byte 001h                  ; 3c 01
    7267     je short 03c1ah                           ; 74 2f
     7304    je short 03c6dh                           ; 74 30
    72687305    test al, al                               ; 84 c0
    7269     je short 03c15h                           ; 74 26
    7270     jmp short 03c5ch                          ; eb 6b
     7306    je short 03c68h                           ; 74 27
     7307    jmp near 03cc8h                           ; e9 84 00
    72717308    cmp ch, 004h                              ; 80 fd 04
    7272     jne short 03bfch                          ; 75 06
     7309    jne short 03c4fh                          ; 75 06
    72737310    mov CL, strict byte 003h                  ; b1 03
    72747311    sal bx, CL                                ; d3 e3
    7275     jmp short 03c15h                          ; eb 19
     7312    jmp short 03c68h                          ; eb 19
    72767313    mov al, ch                                ; 88 e8
    72777314    xor ah, ah                                ; 30 e4
     
    72827319    ; sbb ax, dx                                ; 1b c2
    72837320    sar ax, CL                                ; d3 f8
    7284     mov word [bp-00ah], ax                    ; 89 46 f6
     7321    mov word [bp-00eh], ax                    ; 89 46 f2
    72857322    mov ax, bx                                ; 89 d8
    72867323    xor dx, dx                                ; 31 d2
    7287     div word [bp-00ah]                        ; f7 76 f6
     7324    div word [bp-00eh]                        ; f7 76 f2
    72887325    mov bx, ax                                ; 89 c3
    72897326    mov ax, bx                                ; 89 d8
    7290     call 03639h                               ; e8 1f fa
    7291     call 03658h                               ; e8 3b fa
    7292     mov bx, ax                                ; 89 c3
     7327    call 03675h                               ; e8 08 fa
     7328    call 03694h                               ; e8 24 fa
     7329    mov word [bp-008h], ax                    ; 89 46 f8
    72937330    push SS                                   ; 16
    72947331    pop ES                                    ; 07
    7295     mov word [es:di], ax                      ; 26 89 05
     7332    mov bx, word [bp-006h]                    ; 8b 5e fa
     7333    mov word [es:bx], ax                      ; 26 89 07
    72967334    cmp ch, 004h                              ; 80 fd 04
    7297     jne short 03c2fh                          ; 75 06
     7335    jne short 03c88h                          ; 75 08
    72987336    mov CL, strict byte 003h                  ; b1 03
     7337    mov bx, ax                                ; 89 c3
    72997338    shr bx, CL                                ; d3 eb
    7300     jmp short 03c44h                          ; eb 15
     7339    jmp short 03c9eh                          ; eb 16
    73017340    mov al, ch                                ; 88 e8
    73027341    xor ah, ah                                ; 30 e4
     
    73077346    ; sbb ax, dx                                ; 1b c2
    73087347    sar ax, CL                                ; d3 f8
    7309     mov di, ax                                ; 89 c7
    7310     mov ax, bx                                ; 89 d8
    7311     mul di                                    ; f7 e7
     7348    mov bx, ax                                ; 89 c3
     7349    mov ax, word [bp-008h]                    ; 8b 46 f8
     7350    mul bx                                    ; f7 e3
    73127351    mov bx, ax                                ; 89 c3
    73137352    add bx, strict byte 00003h                ; 83 c3 03
     
    73157354    push SS                                   ; 16
    73167355    pop ES                                    ; 07
    7317     mov word [es:si], bx                      ; 26 89 1c
    7318     call 03671h                               ; e8 1f fa
     7356    mov word [es:di], bx                      ; 26 89 1d
     7357    call 036adh                               ; e8 01 fa
    73197358    push SS                                   ; 16
    73207359    pop ES                                    ; 07
    7321     mov bx, word [bp-008h]                    ; 8b 5e f8
    7322     mov word [es:bx], ax                      ; 26 89 07
    7323     jmp short 03c61h                          ; eb 05
    7324     mov word [bp-006h], 00100h                ; c7 46 fa 00 01
     7360    mov word [es:si], ax                      ; 26 89 04
     7361    call 03624h                               ; e8 70 f9
    73257362    push SS                                   ; 16
    73267363    pop ES                                    ; 07
    7327     mov ax, word [bp-006h]                    ; 8b 46 fa
    7328     mov bx, word [bp-00ch]                    ; 8b 5e f4
     7364    cmp ax, word [es:si]                      ; 26 3b 04
     7365    jbe short 03ccdh                          ; 76 12
     7366    mov ax, word [bp-00ah]                    ; 8b 46 f6
     7367    call 03675h                               ; e8 b4 f9
     7368    mov word [bp-00ch], 00200h                ; c7 46 f4 00 02
     7369    jmp short 03ccdh                          ; eb 05
     7370    mov word [bp-00ch], 00100h                ; c7 46 f4 00 01
     7371    push SS                                   ; 16
     7372    pop ES                                    ; 07
     7373    mov ax, word [bp-00ch]                    ; 8b 46 f4
     7374    mov bx, word [bp-010h]                    ; 8b 5e f0
    73297375    mov word [es:bx], ax                      ; 26 89 07
    73307376    lea sp, [bp-004h]                         ; 8d 66 fc
     
    73347380    retn                                      ; c3
    73357381
    7336   ; Padding 0x78d bytes at 0xc3c73
    7337   times 1933 db 0
     7382  ; Padding 0x721 bytes at 0xc3cdf
     7383  times 1825 db 0
    73387384
    73397385section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
     
    74677513  times 235 db 0
    74687514
    7469 section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
    7470 _msg_vga_init:                               ; 0xc4600 LB 0x2f
    7471     db  'Oracle VM VirtualBox Version 5.1.51 VGA BIOS', 00dh, 00ah, 000h
    7472 _vga_modes:                                  ; 0xc462f LB 0x80
     7515section _DATA progbits vstart=0x4600 align=1 ; size=0x3732 class=DATA group=DGROUP
     7516_msg_vga_init:                               ; 0xc4600 LB 0x34
     7517    db  'Oracle VM VirtualBox Version 5.2.0_BETA1 VGA BIOS', 00dh, 00ah, 000h
     7518_vga_modes:                                  ; 0xc4634 LB 0x80
    74737519    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
    74747520    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     
    74797525    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    74807526    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
    7481 _line_to_vpti:                               ; 0xc46af LB 0x10
     7527_line_to_vpti:                               ; 0xc46b4 LB 0x10
    74827528    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
    7483 _dac_regs:                                   ; 0xc46bf LB 0x4
     7529_dac_regs:                                   ; 0xc46c4 LB 0x4
    74847530    dd  0ff3f3f3fh
    7485 _video_param_table:                          ; 0xc46c3 LB 0x780
     7531_video_param_table:                          ; 0xc46c8 LB 0x780
    74867532    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    74877533    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     
    76047650    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
    76057651    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
    7606 _palette0:                                   ; 0xc4e43 LB 0xc0
     7652_palette0:                                   ; 0xc4e48 LB 0xc0
    76077653    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76087654    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
     
    76177663    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    76187664    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
    7619 _palette1:                                   ; 0xc4f03 LB 0xc0
     7665_palette1:                                   ; 0xc4f08 LB 0xc0
    76207666    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    76217667    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
     
    76307676    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    76317677    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7632 _palette2:                                   ; 0xc4fc3 LB 0xc0
     7678_palette2:                                   ; 0xc4fc8 LB 0xc0
    76337679    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    76347680    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
     
    76437689    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
    76447690    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
    7645 _palette3:                                   ; 0xc5083 LB 0x300
     7691_palette3:                                   ; 0xc5088 LB 0x300
    76467692    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
    76477693    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
     
    76927738    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76937739    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7694 _static_functionality:                       ; 0xc5383 LB 0x10
     7740_static_functionality:                       ; 0xc5388 LB 0x10
    76957741    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
    7696 _dcc_table:                                  ; 0xc5393 LB 0x24
     7742_dcc_table:                                  ; 0xc5398 LB 0x24
    76977743    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76987744    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    76997745    db  000h, 000h, 000h, 000h
    7700 _secondary_save_area:                        ; 0xc53b7 LB 0x1a
    7701     db  01ah, 000h, 093h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7746_secondary_save_area:                        ; 0xc53bc LB 0x1a
     7747    db  01ah, 000h, 098h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    77027748    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7703 _video_save_pointer_table:                   ; 0xc53d1 LB 0x1c
    7704     db  0c3h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7705     db  0b7h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7706 _vgafont8:                                   ; 0xc53ed LB 0x800
     7749_video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
     7750    db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7751    db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     7752_vgafont8:                                   ; 0xc53f2 LB 0x800
    77077753    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
    77087754    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
     
    78337879    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
    78347880    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    7835 _vgafont14:                                  ; 0xc5bed LB 0xe00
     7881_vgafont14:                                  ; 0xc5bf2 LB 0xe00
    78367882    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    78377883    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
     
    80588104    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
    80598105    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8060 _vgafont16:                                  ; 0xc69ed LB 0x1000
     8106_vgafont16:                                  ; 0xc69f2 LB 0x1000
    80618107    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    80628108    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
     
    83158361    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
    83168362    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8317 _vgafont14alt:                               ; 0xc79ed LB 0x12d
     8363_vgafont14alt:                               ; 0xc79f2 LB 0x12d
    83188364    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
    83198365    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
     
    83358381    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
    83368382    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
    8337 _vgafont16alt:                               ; 0xc7b1a LB 0x144
     8383_vgafont16alt:                               ; 0xc7b1f LB 0x144
    83388384    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
    83398385    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
     
    83578403    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
    83588404    db  006h, 000h, 000h, 000h
    8359 _vbebios_copyright:                          ; 0xc7c5e LB 0x15
     8405_cga_msr:                                    ; 0xc7c63 LB 0x9
     8406    db  02ch, 028h, 02dh, 029h, 02ah, 02eh, 01eh, 029h, 000h
     8407_vbebios_copyright:                          ; 0xc7c6c LB 0x15
    83608408    db  'VirtualBox VESA BIOS', 000h
    8361 _vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
     8409_vbebios_vendor_name:                        ; 0xc7c81 LB 0x13
    83628410    db  'Oracle Corporation', 000h
    8363 _vbebios_product_name:                       ; 0xc7c86 LB 0x21
     8411_vbebios_product_name:                       ; 0xc7c94 LB 0x21
    83648412    db  'Oracle VM VirtualBox VBE Adapter', 000h
    8365 _vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
    8366     db  'Oracle VM VirtualBox Version 5.1.51', 000h
    8367 _vbebios_info_string:                        ; 0xc7ccb LB 0x2b
     8413_vbebios_product_revision:                   ; 0xc7cb5 LB 0x29
     8414    db  'Oracle VM VirtualBox Version 5.2.0_BETA1', 000h
     8415_vbebios_info_string:                        ; 0xc7cde LB 0x2b
    83688416    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
    8369 _no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
     8417_no_vbebios_info_string:                     ; 0xc7d09 LB 0x29
    83708418    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
    83718419
    8372   ; Padding 0x1 bytes at 0xc7d1f
    8373     db  001h
     8420section CONST progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
    83748421
    8375 section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
     8422section CONST2 progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
    83768423
    8377 section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
    8378 
    8379   ; Padding 0x2e0 bytes at 0xc7d20
    8380     db  000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh, 065h
    8381     db  02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh, 075h
    8382     db  074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h, 065h
    8383     db  06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
    8384     db  061h, 042h, 069h, 06fh, 073h, 038h, 030h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
    8385     db  061h, 042h, 069h, 06fh, 073h, 038h, 030h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h
    8386     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8387     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8388     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8389     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8390     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8391     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8392     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8393     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8394     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8395     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8396     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8397     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8398     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8399     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8400     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8401     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8402     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8403     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8404     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8405     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8406     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8407     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8408     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8409     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8410     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8411     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8412     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8413     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8414     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8415     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8416     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8417     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8418     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8419     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8420     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8421     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8422     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8423     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8424     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    8425     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h
     8424  ; Padding 0x2ce bytes at 0xc7d32
     8425    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
     8426    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
     8427    db  075h, 074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h
     8428    db  065h, 06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h
     8429    db  067h, 061h, 042h, 069h, 06fh, 073h, 038h, 030h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h
     8430    db  067h, 061h, 042h, 069h, 06fh, 073h, 038h, 030h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h
     8431    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8432    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8433    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8434    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8435    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8436    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8437    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8438    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8439    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8440    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8441    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8442    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8443    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8444    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8445    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8446    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8447    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8448    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8449    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8450    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8451    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8452    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8453    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8454    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8455    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8456    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8457    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8458    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8459    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8460    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8461    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8462    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8463    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8464    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8465    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8466    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8467    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8468    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     8469    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f5h
  • trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum

    r67771 r68290  
    1 098b8541e3fcf2071a9363b1fa83053d *VBoxVgaBios8086.rom
     1ee116917d276738dbe3da492599d263f *VBoxVgaBios8086.rom
Note: See TracChangeset for help on using the changeset viewer.

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