VirtualBox

Changeset 68290 in vbox for trunk/src/VBox


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

5.2 Beta 1

Location:
trunk/src/VBox
Files:
16 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
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm

    r67807 r68290  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 080h, 081h, 06eh, 091h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 080h, 081h, 02bh, 091h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992992    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 04dh, 03bh, 04dh, 03bh
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
    995     db  0c0h, 07fh, 0a0h, 080h, 040h, 090h, 0e8h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  0c0h, 07fh, 0a0h, 080h, 0fdh, 08fh, 0a5h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
    998 section CONST progbits vstart=0xb0 align=1 ; size=0xd40 class=DATA group=DGROUP
     998section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
    999999    db   'NMI Handler called', 00ah, 000h
    10001000    db   'INT18: BOOT FAILURE', 00ah, 000h
     
    11011101    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
    11021102    db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
    1103     db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h
    1104     db   'scsi_pci_init', 000h
    1105     db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
    1106     db   '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h
     1103    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
    11071104    db   'ahci_read_sectors', 000h
    11081105    db   '%s: device_id out of range %d', 00ah, 000h
     
    11171114    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    11181115
    1119 section CONST2 progbits vstart=0xdf0 align=1 ; size=0x3fa class=DATA group=DGROUP
    1120 _bios_cvs_version_string:                    ; 0xf0df0 LB 0x12
    1121     db  'VirtualBox 5.1.51', 000h
    1122 _bios_prefix_string:                         ; 0xf0e02 LB 0x8
     1116section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP
     1117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x18
     1118    db  'VirtualBox 5.2.0_BETA1', 000h, 000h
     1119_bios_prefix_string:                         ; 0xf0da6 LB 0x8
    11231120    db  'BIOS: ', 000h, 000h
    1124 _isotag:                                     ; 0xf0e0a LB 0x6
     1121_isotag:                                     ; 0xf0dae LB 0x6
    11251122    db  'CD001', 000h
    1126 _eltorito:                                   ; 0xf0e10 LB 0x18
     1123_eltorito:                                   ; 0xf0db4 LB 0x18
    11271124    db  'EL TORITO SPECIFICATION', 000h
    1128 _drivetypes:                                 ; 0xf0e28 LB 0x28
     1125_drivetypes:                                 ; 0xf0dcc LB 0x28
    11291126    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    11301127    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    11311128    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1132 _scan_to_scanascii:                          ; 0xf0e50 LB 0x37a
     1129_scan_to_scanascii:                          ; 0xf0df4 LB 0x37a
    11331130    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    11341131    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11871184    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11881185    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1189 _panic_msg_keyb_buffer_full:                 ; 0xf11ca LB 0x20
     1186_panic_msg_keyb_buffer_full:                 ; 0xf116e LB 0x20
    11901187    db  '%s: keyboard input buffer full', 00ah, 000h
    11911188
    1192   ; Padding 0x416 bytes at 0xf11ea
    1193   times 1046 db 0
     1189  ; Padding 0x472 bytes at 0xf118e
     1190  times 1138 db 0
    11941191
    1195 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e48 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e08 class=CODE group=AUTO
    11961193rom_scan_:                                   ; 0xf1600 LB 0x50
    11971194    push bp                                   ; 55
     
    14141411    push bp                                   ; 55
    14151412    mov bp, sp                                ; 89 e5
    1416     mov bx, 00e02h                            ; bb 02 0e
     1413    mov bx, 00da6h                            ; bb a6 0d
    14171414    mov cx, ds                                ; 8c d9
    14181415    mov ax, strict word 00004h                ; b8 04 00
    14191416    call 01923h                               ; e8 a8 01
    1420     push 00df0h                               ; 68 f0 0d
     1417    push 00d8eh                               ; 68 8e 0d
    14211418    push 000d9h                               ; 68 d9 00
    14221419    push strict byte 00004h                   ; 6a 04
     
    15881585    mov bx, strict word 0000ah                ; bb 0a 00
    15891586    xor cx, cx                                ; 31 c9
    1590     call 0a0e0h                               ; e8 13 88
     1587    call 0a0a0h                               ; e8 d3 87
    15911588    mov word [bp-008h], ax                    ; 89 46 f8
    15921589    mov cx, dx                                ; 89 d1
     
    18181815    mov dx, word [bp-026h]                    ; 8b 56 da
    18191816    mov si, word [bp-01eh]                    ; 8b 76 e2
    1820     call 0a110h                               ; e8 13 86
     1817    call 0a0d0h                               ; e8 d3 85
    18211818    mov ax, dx                                ; 89 d0
    18221819    xor ah, dh                                ; 30 f4
     
    22572254    mov dx, word [es:si]                      ; 26 8b 14
    22582255    mov si, strict word 00018h                ; be 18 00
    2259     call 0a110h                               ; e8 c0 81
     2256    call 0a0d0h                               ; e8 80 81
    22602257    xor dh, dh                                ; 30 f6
    22612258    mov word [bp-014h], dx                    ; 89 56 ec
     
    22672264    mov dx, word [es:si]                      ; 26 8b 14
    22682265    mov si, strict word 00020h                ; be 20 00
    2269     call 0a110h                               ; e8 a0 81
     2266    call 0a0d0h                               ; e8 60 81
    22702267    mov bx, dx                                ; 89 d3
    22712268    mov ax, word [bp-01ch]                    ; 8b 46 e4
     
    22982295    mov dx, word [es:si]                      ; 26 8b 14
    22992296    mov si, strict word 00008h                ; be 08 00
    2300     call 0a110h                               ; e8 4f 81
     2297    call 0a0d0h                               ; e8 0f 81
    23012298    mov word [bp-012h], dx                    ; 89 56 ee
    23022299    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23072304    mov dx, word [es:si]                      ; 26 8b 14
    23082305    mov si, strict word 00018h                ; be 18 00
    2309     call 0a110h                               ; e8 31 81
     2306    call 0a0d0h                               ; e8 f1 80
    23102307    mov ah, dl                                ; 88 d4
    23112308    and ah, 00fh                              ; 80 e4 0f
     
    26982695    lea ax, [bp-03ah]                         ; 8d 46 c6
    26992696    call 05a02h                               ; e8 58 36
    2700     mov bx, 00e02h                            ; bb 02 0e
     2697    mov bx, 00da6h                            ; bb a6 0d
    27012698    mov cx, ds                                ; 8c d9
    27022699    mov ax, strict word 00004h                ; b8 04 00
     
    28642861    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    28652862    mov si, strict word 0000bh                ; be 0b 00
    2866     call 0a110h                               ; e8 89 7b
     2863    call 0a0d0h                               ; e8 49 7b
    28672864    mov word [bp-024h], dx                    ; 89 56 dc
    28682865    mov word [bp-032h], cx                    ; 89 4e ce
     
    31403137    mov dx, word [bp-024h]                    ; 8b 56 dc
    31413138    mov si, strict word 00018h                ; be 18 00
    3142     call 0a110h                               ; e8 c7 78
     3139    call 0a0d0h                               ; e8 87 78
    31433140    xor dh, dh                                ; 30 f6
    31443141    mov word [bp-014h], dx                    ; 89 56 ec
     
    31483145    mov dx, word [bp-024h]                    ; 8b 56 dc
    31493146    mov si, strict word 00020h                ; be 20 00
    3150     call 0a110h                               ; e8 b0 78
     3147    call 0a0d0h                               ; e8 70 78
    31513148    mov bx, dx                                ; 89 d3
    31523149    mov ax, word [bp-022h]                    ; 8b 46 de
     
    31823179    mov dx, word [bp-024h]                    ; 8b 56 dc
    31833180    mov si, strict word 00008h                ; be 08 00
    3184     call 0a110h                               ; e8 5c 78
     3181    call 0a0d0h                               ; e8 1c 78
    31853182    mov word [bp-00ch], ax                    ; 89 46 f4
    31863183    mov word [bp-00eh], bx                    ; 89 5e f2
     
    31893186    mov word [bp-018h], dx                    ; 89 56 e8
    31903187    mov si, strict word 00010h                ; be 10 00
    3191     call 0a110h                               ; e8 47 78
     3188    call 0a0d0h                               ; e8 07 78
    31923189    mov word [bp-024h], dx                    ; 89 56 dc
    31933190    mov ax, dx                                ; 89 d0
     
    34493446    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    34503447    jne short 02b52h                          ; 75 1f
    3451     mov bx, 00e02h                            ; bb 02 0e
     3448    mov bx, 00da6h                            ; bb a6 0d
    34523449    mov cx, ds                                ; 8c d9
    34533450    mov ax, strict word 00004h                ; b8 04 00
     
    42834280    cmp bh, 048h                              ; 80 ff 48
    42844281    jbe short 03292h                          ; 76 33
    4285     mov bx, 00e02h                            ; bb 02 0e
     4282    mov bx, 00da6h                            ; bb a6 0d
    42864283    mov cx, ds                                ; 8c d9
    42874284    mov ax, strict word 00004h                ; b8 04 00
     
    51865183    mov byte [es:bx], 000h                    ; 26 c6 07 00
    51875184    jmp near 0348ch                           ; e9 92 f9
    5188     mov bx, 00e02h                            ; bb 02 0e
     5185    mov bx, 00da6h                            ; bb a6 0d
    51895186    mov cx, ds                                ; 8c d9
    51905187    mov ax, strict word 00004h                ; b8 04 00
     
    52845281    cmp ax, strict word 0004ah                ; 3d 4a 00
    52855282    jne short 03be4h                          ; 75 1f
    5286     mov bx, 00e02h                            ; bb 02 0e
     5283    mov bx, 00da6h                            ; bb a6 0d
    52875284    mov cx, ds                                ; 8c d9
    52885285    mov ax, strict word 00004h                ; b8 04 00
     
    53895386    pop bp                                    ; 5d
    53905387    retn                                      ; c3
    5391     mov bx, 00e02h                            ; bb 02 0e
     5388    mov bx, 00da6h                            ; bb a6 0d
    53925389    mov cx, ds                                ; 8c d9
    53935390    mov ax, strict word 00004h                ; b8 04 00
     
    54715468    mov dx, ss                                ; 8c d2
    54725469    lea ax, [bp-026h]                         ; 8d 46 da
    5473     call 0a130h                               ; e8 79 63
     5470    call 0a0f0h                               ; e8 39 63
    54745471    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54755472    mov ax, strict word 00011h                ; b8 11 00
     
    55305527    jnc short 03e62h                          ; 73 10
    55315528    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5532     cmp al, byte [di+00e0ah]                  ; 3a 85 0a 0e
     5529    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    55335530    je short 03e4ch                           ; 74 f0
    55345531    mov ax, strict word 00005h                ; b8 05 00
     
    55405537    jnc short 03e7ch                          ; 73 10
    55415538    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5542     cmp al, byte [di+00e10h]                  ; 3a 85 10 0e
     5539    cmp al, byte [di+00db4h]                  ; 3a 85 b4 0d
    55435540    je short 03e66h                           ; 74 f0
    55445541    mov ax, strict word 00006h                ; b8 06 00
     
    58325829    cmp ax, dx                                ; 39 d0
    58335830    je short 04212h                           ; 74 29
    5834     mov bx, 00e02h                            ; bb 02 0e
     5831    mov bx, 00da6h                            ; bb a6 0d
    58355832    mov cx, ds                                ; 8c d9
    58365833    mov ax, strict word 00004h                ; b8 04 00
     
    59445941    xor dl, dl                                ; 30 d2
    59455942    xor cx, cx                                ; 31 c9
    5946     call 0a0c0h                               ; e8 a3 5d
     5943    call 0a080h                               ; e8 63 5d
    59475944    xor bx, bx                                ; 31 db
    59485945    add ax, si                                ; 01 f0
     
    59505947    mov bx, di                                ; 89 fb
    59515948    xor cx, cx                                ; 31 c9
    5952     call 0a0c0h                               ; e8 96 5d
     5949    call 0a080h                               ; e8 56 5d
    59535950    mov bx, ax                                ; 89 c3
    59545951    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    59855982    mov dx, ss                                ; 8c d2
    59865983    lea ax, [bp-02eh]                         ; 8d 46 d2
    5987     call 0a130h                               ; e8 af 5d
     5984    call 0a0f0h                               ; e8 6f 5d
    59885985    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    59895986    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    60526049    test al, al                               ; 84 c0
    60536050    je short 0446ch                           ; 74 37
    6054     mov bx, 00e02h                            ; bb 02 0e
     6051    mov bx, 00da6h                            ; bb a6 0d
    60556052    mov cx, ds                                ; 8c d9
    60566053    mov ax, strict word 00004h                ; b8 04 00
     
    61496146    mov word [bp+016h], bx                    ; 89 5e 16
    61506147    jmp near 04470h                           ; e9 38 ff
    6151     mov bx, 00e02h                            ; bb 02 0e
     6148    mov bx, 00da6h                            ; bb a6 0d
    61526149    mov cx, ds                                ; 8c d9
    61536150    mov ax, strict word 00004h                ; b8 04 00
     
    62716268    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    62726269    jmp near 04afbh                           ; e9 39 04
    6273     mov bx, 00e02h                            ; bb 02 0e
     6270    mov bx, 00da6h                            ; bb a6 0d
    62746271    mov cx, ds                                ; 8c d9
    62756272    mov ax, strict word 00004h                ; b8 04 00
     
    63246321    mov dx, ss                                ; 8c d2
    63256322    lea ax, [bp-030h]                         ; 8d 46 d0
    6326     call 0a130h                               ; e8 d2 59
     6323    call 0a0f0h                               ; e8 92 59
    63276324    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    63286325    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    63806377    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    63816378    je short 04846h                           ; 74 53
    6382     mov bx, 00e02h                            ; bb 02 0e
     6379    mov bx, 00da6h                            ; bb a6 0d
    63836380    mov cx, ds                                ; 8c d9
    63846381    mov ax, strict word 00004h                ; b8 04 00
     
    66856682    je short 04b96h                           ; 74 21
    66866683    mov dx, strict word 00001h                ; ba 01 00
    6687     mov bx, 00e02h                            ; bb 02 0e
     6684    mov bx, 00da6h                            ; bb a6 0d
    66886685    mov cx, ds                                ; 8c d9
    66896686    mov ax, strict word 00004h                ; b8 04 00
    66906687    call 01923h                               ; e8 a0 cd
    66916688    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    6692     add dx, 00e28h                            ; 81 c2 28 0e
     6689    add dx, 00dcch                            ; 81 c2 cc 0d
    66936690    push dx                                   ; 52
    66946691    push 00494h                               ; 68 94 04
     
    67126709    test al, al                               ; 84 c0
    67136710    je short 04bcch                           ; 74 1b
    6714     mov bx, 00e02h                            ; bb 02 0e
     6711    mov bx, 00da6h                            ; bb a6 0d
    67156712    mov cx, ds                                ; 8c d9
    67166713    mov ax, strict word 00004h                ; b8 04 00
    67176714    call 01923h                               ; e8 67 cd
    6718     push 00e3ch                               ; 68 3c 0e
     6715    push 00de0h                               ; 68 e0 0d
    67196716    push 004a8h                               ; 68 a8 04
    67206717    push strict byte 00004h                   ; 6a 04
     
    67246721    test ah, ah                               ; 84 e4
    67256722    je short 04be0h                           ; 74 10
    6726     mov bx, 00e02h                            ; bb 02 0e
     6723    mov bx, 00da6h                            ; bb a6 0d
    67276724    mov cx, ds                                ; 8c d9
    67286725    mov ax, strict word 00004h                ; b8 04 00
    67296726    call 01923h                               ; e8 48 cd
    6730     push 00e46h                               ; 68 46 0e
     6727    push 00deah                               ; 68 ea 0d
    67316728    jmp short 04bbfh                          ; eb df
    67326729    test bl, 080h                             ; f6 c3 80
    67336730    je short 04bf6h                           ; 74 11
    6734     mov bx, 00e02h                            ; bb 02 0e
     6731    mov bx, 00da6h                            ; bb a6 0d
    67356732    mov cx, ds                                ; 8c d9
    67366733    mov ax, strict word 00004h                ; b8 04 00
    67376734    call 01923h                               ; e8 33 cd
    67386735    push si                                   ; 56
    6739     push 00e32h                               ; 68 32 0e
     6736    push 00dd6h                               ; 68 d6 0d
    67406737    jmp short 04c05h                          ; eb 0f
    6741     mov bx, 00e02h                            ; bb 02 0e
     6738    mov bx, 00da6h                            ; bb a6 0d
    67426739    mov cx, ds                                ; 8c d9
    67436740    mov ax, strict word 00004h                ; b8 04 00
    67446741    call 01923h                               ; e8 22 cd
    67456742    push si                                   ; 56
    6746     push 00e28h                               ; 68 28 0e
     6743    push 00dcch                               ; 68 cc 0d
    67476744    push 004bdh                               ; 68 bd 04
    67486745    push strict byte 00004h                   ; 6a 04
     
    67706767    push dx                                   ; 52
    67716768    mov dx, ax                                ; 89 c2
    6772     mov bx, 00e02h                            ; bb 02 0e
     6769    mov bx, 00da6h                            ; bb a6 0d
    67736770    mov cx, ds                                ; 8c d9
    67746771    mov ax, strict word 00004h                ; b8 04 00
     
    68486845    mov byte [bp-008h], al                    ; 88 46 f8
    68496846    mov byte [bp-00ah], al                    ; 88 46 f6
    6850     mov bx, 00e02h                            ; bb 02 0e
     6847    mov bx, 00da6h                            ; bb a6 0d
    68516848    mov cx, ds                                ; 8c d9
    68526849    mov ax, strict word 00004h                ; b8 04 00
     
    74127409    test al, al                               ; 84 c0
    74137410    jne short 0520fh                          ; 75 19
    7414     mov bx, 00e02h                            ; bb 02 0e
     7411    mov bx, 00da6h                            ; bb a6 0d
    74157412    mov cx, ds                                ; 8c d9
    74167413    mov ax, strict word 00004h                ; b8 04 00
     
    77587755    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    77597756    jbe short 0559bh                          ; 76 1f
    7760     mov bx, 00e02h                            ; bb 02 0e
     7757    mov bx, 00da6h                            ; bb a6 0d
    77617758    mov cx, ds                                ; 8c d9
    77627759    mov ax, strict word 00004h                ; b8 04 00
     
    77767773    xor ah, ah                                ; 30 e4
    77777774    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7778     mov dl, byte [bx+00e56h]                  ; 8a 97 56 0e
    7779     mov ax, word [bx+00e56h]                  ; 8b 87 56 0e
     7775    mov dl, byte [bx+00dfah]                  ; 8a 97 fa 0d
     7776    mov ax, word [bx+00dfah]                  ; 8b 87 fa 0d
    77807777    jmp near 05645h                           ; e9 90 00
    77817778    test AL, strict byte 004h                 ; a8 04
     
    77847781    xor ah, ah                                ; 30 e4
    77857782    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7786     mov dl, byte [bx+00e54h]                  ; 8a 97 54 0e
    7787     mov ax, word [bx+00e54h]                  ; 8b 87 54 0e
     7783    mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
     7784    mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
    77887785    jmp near 05645h                           ; e9 79 00
    77897786    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    78057802    xor ah, ah                                ; 30 e4
    78067803    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7807     mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
     7804    mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
    78087805    mov dx, ax                                ; 89 c2
    78097806    mov al, byte [bp-00eh]                    ; 8a 46 f2
    78107807    test ax, dx                               ; 85 d0
    78117808    je short 0560eh                           ; 74 0a
    7812     mov dl, byte [bx+00e50h]                  ; 8a 97 50 0e
    7813     mov ax, word [bx+00e50h]                  ; 8b 87 50 0e
     7809    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
     7810    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    78147811    jmp short 05616h                          ; eb 08
    7815     mov dl, byte [bx+00e52h]                  ; 8a 97 52 0e
    7816     mov ax, word [bx+00e52h]                  ; 8b 87 52 0e
     7812    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
     7813    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    78177814    shr ax, 008h                              ; c1 e8 08
    78187815    mov byte [bp-00ah], al                    ; 88 46 f6
     
    78217818    xor ah, ah                                ; 30 e4
    78227819    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7823     mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
     7820    mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
    78247821    mov dx, ax                                ; 89 c2
    78257822    mov al, byte [bp-00eh]                    ; 8a 46 f2
    78267823    test ax, dx                               ; 85 d0
    78277824    je short 0563dh                           ; 74 0a
    7828     mov dl, byte [bx+00e52h]                  ; 8a 97 52 0e
    7829     mov ax, word [bx+00e52h]                  ; 8b 87 52 0e
     7825    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
     7826    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    78307827    jmp short 05645h                          ; eb 08
    7831     mov dl, byte [bx+00e50h]                  ; 8a 97 50 0e
    7832     mov ax, word [bx+00e50h]                  ; 8b 87 50 0e
     7828    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
     7829    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    78337830    shr ax, 008h                              ; c1 e8 08
    78347831    mov byte [bp-00ah], al                    ; 88 46 f6
     
    78377834    test dl, dl                               ; 84 d2
    78387835    jne short 0566bh                          ; 75 16
    7839     mov bx, 00e02h                            ; bb 02 0e
     7836    mov bx, 00da6h                            ; bb a6 0d
    78407837    mov cx, ds                                ; 8c d9
    78417838    mov ax, strict word 00004h                ; b8 04 00
     
    80378034    mov word [bp+012h], dx                    ; 89 56 12
    80388035    jmp near 05855h                           ; e9 43 00
    8039     mov bx, 00e02h                            ; bb 02 0e
     8036    mov bx, 00da6h                            ; bb a6 0d
    80408037    mov cx, ds                                ; 8c d9
    80418038    mov ax, strict word 00004h                ; b8 04 00
     
    80488045    call 01966h                               ; e8 3a c1
    80498046    add sp, strict byte 00006h                ; 83 c4 06
    8050     mov bx, 00e02h                            ; bb 02 0e
     8047    mov bx, 00da6h                            ; bb a6 0d
    80518048    mov cx, ds                                ; 8c d9
    80528049    mov ax, strict word 00004h                ; b8 04 00
     
    82578254    mov dx, word [bp+00ch]                    ; 8b 56 0c
    82588255    mov si, strict word 00020h                ; be 20 00
    8259     call 0a110h                               ; e8 e1 46
     8256    call 0a0d0h                               ; e8 a1 46
    82608257    test ax, ax                               ; 85 c0
    82618258    jne short 05a3fh                          ; 75 0c
     
    82958292    mov bx, strict word 0003fh                ; bb 3f 00
    82968293    xor cx, cx                                ; 31 c9
    8297     call 0a0c0h                               ; e8 38 46
     8294    call 0a080h                               ; e8 f8 45
    82988295    mov bx, ax                                ; 89 c3
    82998296    mov cx, dx                                ; 89 d1
    83008297    mov ax, word [bp-004h]                    ; 8b 46 fc
    83018298    mov dx, si                                ; 89 f2
    8302     call 0a0e0h                               ; e8 4c 46
     8299    call 0a0a0h                               ; e8 0c 46
    83038300    mov word [es:di+002h], ax                 ; 26 89 45 02
    83048301    cmp ax, 00400h                            ; 3d 00 04
     
    84418438    test ax, ax                               ; 85 c0
    84428439    jne short 05c16h                          ; 75 26
    8443     mov bx, 00e02h                            ; bb 02 0e
     8440    mov bx, 00da6h                            ; bb a6 0d
    84448441    mov cx, ds                                ; 8c d9
    84458442    mov ax, strict word 00004h                ; b8 04 00
     
    84728469    cmp ax, dx                                ; 39 d0
    84738470    jbe short 05c74h                          ; 76 30
    8474     mov bx, 00e02h                            ; bb 02 0e
     8471    mov bx, 00da6h                            ; bb a6 0d
    84758472    mov cx, ds                                ; 8c d9
    84768473    mov ax, strict word 00004h                ; b8 04 00
     
    85148511    mov bx, cx                                ; 89 cb
    85158512    xor cx, cx                                ; 31 c9
    8516     call 0a0c0h                               ; e8 0d 44
     8513    call 0a080h                               ; e8 cd 43
    85178514    xor bx, bx                                ; 31 db
    85188515    add ax, word [bp-006h]                    ; 03 46 fa
     
    85208517    mov bx, word [bp-008h]                    ; 8b 5e f8
    85218518    xor cx, cx                                ; 31 c9
    8522     call 0a0c0h                               ; e8 fe 43
     8519    call 0a080h                               ; e8 be 43
    85238520    xor bx, bx                                ; 31 db
    85248521    add ax, word [bp-004h]                    ; 03 46 fc
     
    85778574    test dl, dl                               ; 84 d2
    85788575    je short 05dbbh                           ; 74 46
    8579     mov bx, 00e02h                            ; bb 02 0e
     8576    mov bx, 00da6h                            ; bb a6 0d
    85808577    mov cx, ds                                ; 8c d9
    85818578    mov ax, strict word 00004h                ; b8 04 00
     
    85968593    or ah, 00ch                               ; 80 cc 0c
    85978594    jmp near 05f01h                           ; e9 5c 01
    8598     mov bx, 00e02h                            ; bb 02 0e
     8595    mov bx, 00da6h                            ; bb a6 0d
    85998596    mov cx, ds                                ; 8c d9
    86008597    mov ax, strict word 00004h                ; b8 04 00
     
    86888685    mov bx, word [bp-006h]                    ; 8b 5e fa
    86898686    xor cx, cx                                ; 31 c9
    8690     call 0a0c0h                               ; e8 27 42
     8687    call 0a080h                               ; e8 e7 41
    86918688    mov bx, word [bp-004h]                    ; 8b 5e fc
    86928689    xor cx, cx                                ; 31 c9
    8693     call 0a0c0h                               ; e8 1f 42
     8690    call 0a080h                               ; e8 df 41
    86948691    mov word [bp-00eh], ax                    ; 89 46 f2
    86958692    mov word [bp-00ah], dx                    ; 89 56 f6
     
    87018698    mov word [bp+016h], ax                    ; 89 46 16
    87028699    jmp near 05dbfh                           ; e9 04 ff
    8703     mov bx, 00e02h                            ; bb 02 0e
     8700    mov bx, 00da6h                            ; bb a6 0d
    87048701    mov cx, ds                                ; 8c d9
    87058702    mov ax, strict word 00004h                ; b8 04 00
     
    87148711    add sp, strict byte 00008h                ; 83 c4 08
    87158712    jmp near 05dbbh                           ; e9 dd fe
    8716     mov bx, 00e02h                            ; bb 02 0e
     8713    mov bx, 00da6h                            ; bb a6 0d
    87178714    mov cx, ds                                ; 8c d9
    87188715    mov ax, strict word 00004h                ; b8 04 00
     
    88048801    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    88058802    jmp near 06400h                           ; e9 10 04
    8806     mov bx, 00e02h                            ; bb 02 0e
     8803    mov bx, 00da6h                            ; bb a6 0d
    88078804    mov cx, ds                                ; 8c d9
    88088805    mov ax, strict word 00004h                ; b8 04 00
     
    88298826    xor bx, bx                                ; 31 db
    88308827    mov si, strict word 00020h                ; be 20 00
    8831     call 0a120h                               ; e8 e2 40
     8828    call 0a0e0h                               ; e8 a2 40
    88328829    mov si, ax                                ; 89 c6
    88338830    mov word [bp-00ch], bx                    ; 89 5e f4
     
    88568853    cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
    88578854    jc short 060abh                           ; 72 23
    8858     mov bx, 00e02h                            ; bb 02 0e
     8855    mov bx, 00da6h                            ; bb a6 0d
    88598856    mov cx, ds                                ; 8c d9
    88608857    mov ax, strict word 00004h                ; b8 04 00
     
    89148911    test dl, dl                               ; 84 d2
    89158912    je short 0618dh                           ; 74 51
    8916     mov bx, 00e02h                            ; bb 02 0e
     8913    mov bx, 00da6h                            ; bb a6 0d
    89178914    mov cx, ds                                ; 8c d9
    89188915    mov ax, strict word 00004h                ; b8 04 00
     
    89868983    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89878984    mov si, strict word 00020h                ; be 20 00
    8988     call 0a110h                               ; e8 ee 3e
     8985    call 0a0d0h                               ; e8 ae 3e
    89898986    mov bx, di                                ; 89 fb
    89908987    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    93429339    mov bx, strict word 0000fh                ; bb 0f 00
    93439340    xor cx, cx                                ; 31 c9
    9344     call 0a0e0h                               ; e8 2b 3b
     9341    call 0a0a0h                               ; e8 eb 3a
    93459342    mov cx, ax                                ; 89 c1
    93469343    mov bx, dx                                ; 89 d3
     
    95039500    mov word [bp+00ch], ax                    ; 89 46 0c
    95049501    jmp near 0677fh                           ; e9 2b 00
    9505     mov bx, 00e02h                            ; bb 02 0e
     9502    mov bx, 00da6h                            ; bb a6 0d
    95069503    mov cx, ds                                ; 8c d9
    95079504    mov ax, strict word 00004h                ; b8 04 00
     
    96949691    retf                                      ; cb
    96959692    jmp near 0677fh                           ; e9 49 fe
    9696     mov bx, 00e02h                            ; bb 02 0e
     9693    mov bx, 00da6h                            ; bb a6 0d
    96979694    mov cx, ds                                ; 8c d9
    96989695    mov ax, strict word 00004h                ; b8 04 00
     
    97349731    or byte [bp+018h], 001h                   ; 80 4e 18 01
    97359732    jmp near 0677fh                           ; e9 d3 fd
    9736     mov bx, 00e02h                            ; bb 02 0e
     9733    mov bx, 00da6h                            ; bb a6 0d
    97379734    mov cx, ds                                ; 8c d9
    97389735    mov ax, strict word 00004h                ; b8 04 00
     
    99279924    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    99289925    jmp short 06b65h                          ; eb b9
    9929     mov bx, 00e02h                            ; bb 02 0e
     9926    mov bx, 00da6h                            ; bb a6 0d
    99309927    mov cx, ds                                ; 8c d9
    99319928    mov ax, strict word 00004h                ; b8 04 00
     
    1070310700    je short 0738dh                           ; 74 0e
    1070410701    push 008eeh                               ; 68 ee 08
    10705     push 011cah                               ; 68 ca 11
     10702    push 0116eh                               ; 68 6e 11
    1070610703    push strict byte 00007h                   ; 6a 07
    1070710704    call 01966h                               ; e8 dc a5
     
    1078410781    je short 0741eh                           ; 74 0e
    1078510782    push 008f8h                               ; 68 f8 08
    10786     push 011cah                               ; 68 ca 11
     10783    push 0116eh                               ; 68 6e 11
    1078710784    push strict byte 00007h                   ; 6a 07
    1078810785    call 01966h                               ; e8 4b a5
     
    1229312290    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    1229412291    jne short 081c7h                          ; 75 1f
    12295     mov bx, 00e02h                            ; bb 02 0e
     12292    mov bx, 00da6h                            ; bb a6 0d
    1229612293    mov cx, ds                                ; 8c d9
    1229712294    mov ax, strict word 00004h                ; b8 04 00
     
    1245112448    mov dx, ss                                ; 8c d2
    1245212449    lea ax, [bp-046h]                         ; 8d 46 ba
    12453     call 0a130h                               ; e8 10 1e
     12450    call 0a0f0h                               ; e8 d0 1d
    1245412451    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1245512452    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1251512512    cmp bx, 00200h                            ; 81 fb 00 02
    1251612513    je short 083e9h                           ; 74 20
    12517     mov bx, 00e02h                            ; bb 02 0e
     12514    mov bx, 00da6h                            ; bb a6 0d
    1251812515    mov cx, ds                                ; 8c d9
    1251912516    mov ax, strict word 00004h                ; b8 04 00
     
    1258212579    mov dx, word [bp-014h]                    ; 8b 56 ec
    1258312580    mov si, strict word 0000ch                ; be 0c 00
    12584     call 0a110h                               ; e8 a9 1c
     12581    call 0a0d0h                               ; e8 69 1c
    1258512582    mov word [bp-02ah], ax                    ; 89 46 d6
    1258612583    mov word [bp-016h], bx                    ; 89 5e ea
     
    1260412601    mov dx, word [bp-014h]                    ; 8b 56 ec
    1260512602    mov si, strict word 00006h                ; be 06 00
    12606     call 0a110h                               ; e8 68 1c
     12603    call 0a0d0h                               ; e8 28 1c
    1260712604    mov si, word [bp-01eh]                    ; 8b 76 e2
    1260812605    add si, dx                                ; 01 d6
     
    1262212619    mov dx, si                                ; 89 f2
    1262312620    mov si, strict word 00008h                ; be 08 00
    12624     call 0a110h                               ; e8 38 1c
     12621    call 0a0d0h                               ; e8 f8 1b
    1262512622    mov word [bp-02eh], bx                    ; 89 5e d2
    1262612623    mov word [bp-030h], cx                    ; 89 4e d0
     
    1263112628    mov dx, word [bp-036h]                    ; 8b 56 ca
    1263212629    mov si, strict word 00010h                ; be 10 00
    12633     call 0a110h                               ; e8 1d 1c
     12630    call 0a0d0h                               ; e8 dd 1b
    1263412631    mov si, word [bp-032h]                    ; 8b 76 ce
    1263512632    add si, dx                                ; 01 d6
     
    1265712654    mov dx, word [bp-014h]                    ; 8b 56 ec
    1265812655    mov si, strict word 0000bh                ; be 0b 00
    12659     call 0a110h                               ; e8 d1 1b
     12656    call 0a0d0h                               ; e8 91 1b
    1266012657    mov si, dx                                ; 89 d6
    1266112658    mov dx, cx                                ; 89 ca
     
    1270012697    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1270112698    mov word [es:bx+032h], si                 ; 26 89 77 32
    12702     mov bx, 00e02h                            ; bb 02 0e
     12699    mov bx, 00da6h                            ; bb a6 0d
    1270312700    mov cx, ds                                ; 8c d9
    1270412701    mov ax, strict word 00004h                ; b8 04 00
     
    1275612753    inc byte [bp-00ch]                        ; fe 46 f4
    1275712754    jmp near 086f5h                           ; e9 91 00
    12758     mov bx, 00e02h                            ; bb 02 0e
     12755    mov bx, 00da6h                            ; bb a6 0d
    1275912756    mov cx, ds                                ; 8c d9
    1276012757    mov ax, strict word 00004h                ; b8 04 00
     
    1286212859    pop bp                                    ; 5d
    1286312860    retn                                      ; c3
    12864 scsi_pci_init_:                              ; 0xf878e LB 0x6d
     12861scsi_pci_init_:                              ; 0xf878e LB 0x2a
    1286512862    push bp                                   ; 55
    1286612863    mov bp, sp                                ; 89 e5
    1286712864    push bx                                   ; 53
    1286812865    push cx                                   ; 51
    12869     push si                                   ; 56
    12870     push di                                   ; 57
    12871     mov di, ax                                ; 89 c7
    12872     mov si, dx                                ; 89 d6
    12873     call 09ee8h                               ; e8 4c 17
    12874     mov dx, ax                                ; 89 c2
     12866    call 09ea5h                               ; e8 0f 17
     12867    mov bx, ax                                ; 89 c3
    1287512868    cmp ax, strict word 0ffffh                ; 3d ff ff
    12876     jne short 087c0h                          ; 75 1d
    12877     mov bx, 00e02h                            ; bb 02 0e
    12878     mov cx, ds                                ; 8c d9
    12879     mov ax, strict word 00004h                ; b8 04 00
    12880     call 01923h                               ; e8 75 91
    12881     push si                                   ; 56
    12882     push di                                   ; 57
    12883     push 00c61h                               ; 68 61 0c
    12884     push 00c6fh                               ; 68 6f 0c
    12885     push strict byte 00004h                   ; 6a 04
    12886     call 01966h                               ; e8 ab 91
    12887     add sp, strict byte 0000ah                ; 83 c4 0a
    12888     jmp short 087f2h                          ; eb 32
    12889     mov bx, 00e02h                            ; bb 02 0e
    12890     mov cx, ds                                ; 8c d9
    12891     mov ax, strict word 00004h                ; b8 04 00
    12892     call 01923h                               ; e8 58 91
    12893     push dx                                   ; 52
    12894     push si                                   ; 56
    12895     push di                                   ; 57
    12896     push 00c61h                               ; 68 61 0c
    12897     push 00c98h                               ; 68 98 0c
    12898     push strict byte 00004h                   ; 6a 04
    12899     call 01966h                               ; e8 8d 91
    12900     add sp, strict byte 0000ch                ; 83 c4 0c
    12901     mov al, dl                                ; 88 d0
    12902     xor ah, ah                                ; 30 e4
    12903     mov si, ax                                ; 89 c6
    12904     shr dx, 008h                              ; c1 ea 08
    12905     mov al, dl                                ; 88 d0
     12869    je short 087b1h                           ; 74 14
     12870    mov dl, bl                                ; 88 da
     12871    xor dh, dh                                ; 30 f6
     12872    shr bx, 008h                              ; c1 eb 08
     12873    mov al, bl                                ; 88 d8
     12874    xor ah, ah                                ; 30 e4
    1290612875    mov cx, strict word 00007h                ; b9 07 00
    1290712876    mov bx, strict word 00004h                ; bb 04 00
    12908     mov dx, si                                ; 89 f2
    12909     call 09fb1h                               ; e8 bf 17
    12910     lea sp, [bp-008h]                         ; 8d 66 f8
    12911     pop di                                    ; 5f
    12912     pop si                                    ; 5e
     12877    call 09f6eh                               ; e8 bd 17
     12878    lea sp, [bp-004h]                         ; 8d 66 fc
    1291312879    pop cx                                    ; 59
    1291412880    pop bx                                    ; 5b
    1291512881    pop bp                                    ; 5d
    1291612882    retn                                      ; c3
    12917 _scsi_init:                                  ; 0xf87fb LB 0x81
     12883_scsi_init:                                  ; 0xf87b8 LB 0x81
    1291812884    push bp                                   ; 55
    1291912885    mov bp, sp                                ; 89 e5
    1292012886    mov dx, strict word 0000eh                ; ba 0e 00
    1292112887    mov ax, strict word 00040h                ; b8 40 00
    12922     call 0166ch                               ; e8 65 8e
     12888    call 0166ch                               ; e8 a8 8e
    1292312889    mov bx, 00122h                            ; bb 22 01
    1292412890    mov es, ax                                ; 8e c0
     
    1293112897    ; sub ah, ah                                ; 2a e4
    1293212898    cmp AL, strict byte 055h                  ; 3c 55
    12933     jne short 08834h                          ; 75 15
     12899    jne short 087f1h                          ; 75 15
    1293412900    xor al, al                                ; 30 c0
    1293512901    mov dx, 00433h                            ; ba 33 04
    1293612902    out DX, AL                                ; ee
    1293712903    mov ax, 00430h                            ; b8 30 04
    12938     call 082e8h                               ; e8 bd fa
     12904    call 082e8h                               ; e8 00 fb
    1293912905    mov dx, 01040h                            ; ba 40 10
    1294012906    mov ax, 0104bh                            ; b8 4b 10
    12941     call 0878eh                               ; e8 5a ff
     12907    call 0878eh                               ; e8 9d ff
    1294212908    mov AL, strict byte 055h                  ; b0 55
    1294312909    mov dx, 00436h                            ; ba 36 04
     
    1294712913    ; sub ah, ah                                ; 2a e4
    1294812914    cmp AL, strict byte 055h                  ; 3c 55
    12949     jne short 08856h                          ; 75 15
     12915    jne short 08813h                          ; 75 15
    1295012916    xor al, al                                ; 30 c0
    1295112917    mov dx, 00437h                            ; ba 37 04
    1295212918    out DX, AL                                ; ee
    1295312919    mov ax, 00434h                            ; b8 34 04
    12954     call 082e8h                               ; e8 9b fa
     12920    call 082e8h                               ; e8 de fa
    1295512921    mov dx, strict word 00030h                ; ba 30 00
    1295612922    mov ax, 01000h                            ; b8 00 10
    12957     call 0878eh                               ; e8 38 ff
     12923    call 0878eh                               ; e8 7b ff
    1295812924    mov AL, strict byte 055h                  ; b0 55
    1295912925    mov dx, 0043ah                            ; ba 3a 04
     
    1296312929    ; sub ah, ah                                ; 2a e4
    1296412930    cmp AL, strict byte 055h                  ; 3c 55
    12965     jne short 08878h                          ; 75 15
     12931    jne short 08835h                          ; 75 15
    1296612932    xor al, al                                ; 30 c0
    1296712933    mov dx, 0043bh                            ; ba 3b 04
    1296812934    out DX, AL                                ; ee
    1296912935    mov ax, 00438h                            ; b8 38 04
    12970     call 082e8h                               ; e8 79 fa
     12936    call 082e8h                               ; e8 bc fa
    1297112937    mov dx, strict word 00054h                ; ba 54 00
    1297212938    mov ax, 01000h                            ; b8 00 10
    12973     call 0878eh                               ; e8 16 ff
     12939    call 0878eh                               ; e8 59 ff
    1297412940    mov sp, bp                                ; 89 ec
    1297512941    pop bp                                    ; 5d
    1297612942    retn                                      ; c3
    12977 ahci_ctrl_extract_bits_:                     ; 0xf887c LB 0x1c
     12943ahci_ctrl_extract_bits_:                     ; 0xf8839 LB 0x1c
    1297812944    push si                                   ; 56
    1297912945    push bp                                   ; 55
     
    1298412950    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1298512951    xor ch, ch                                ; 30 ed
    12986     jcxz 08893h                               ; e3 06
     12952    jcxz 08850h                               ; e3 06
    1298712953    shr dx, 1                                 ; d1 ea
    1298812954    rcr ax, 1                                 ; d1 d8
    12989     loop 0888dh                               ; e2 fa
     12955    loop 0884ah                               ; e2 fa
    1299012956    pop bp                                    ; 5d
    1299112957    pop si                                    ; 5e
    1299212958    retn 00002h                               ; c2 02 00
    12993 ahci_addr_to_phys_:                          ; 0xf8898 LB 0x1e
     12959ahci_addr_to_phys_:                          ; 0xf8855 LB 0x1e
    1299412960    push bx                                   ; 53
    1299512961    push cx                                   ; 51
     
    1300212968    sal ax, 1                                 ; d1 e0
    1300312969    rcl dx, 1                                 ; d1 d2
    13004     loop 088a6h                               ; e2 fa
     12970    loop 08863h                               ; e2 fa
    1300512971    xor cx, cx                                ; 31 c9
    1300612972    add ax, bx                                ; 01 d8
     
    1301012976    pop bx                                    ; 5b
    1301112977    retn                                      ; c3
    13012 ahci_port_cmd_sync_:                         ; 0xf88b6 LB 0x156
     12978ahci_port_cmd_sync_:                         ; 0xf8873 LB 0x156
    1301312979    push bp                                   ; 55
    1301412980    mov bp, sp                                ; 89 e5
     
    1302512991    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1302612992    cmp AL, strict byte 0ffh                  ; 3c ff
    13027     jne short 088d9h                          ; 75 03
    13028     jmp near 08a04h                           ; e9 2b 01
     12993    jne short 08896h                          ; 75 03
     12994    jmp near 089c1h                           ; e9 2b 01
    1302912995    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1303012996    xor ah, ah                                ; 30 e4
     
    1303913005    lea ax, [si+00080h]                       ; 8d 84 80 00
    1304013006    mov dx, cx                                ; 89 ca
    13041     call 08898h                               ; e8 92 ff
     13007    call 08855h                               ; e8 92 ff
    1304213008    mov es, cx                                ; 8e c1
    1304313009    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1310513071    xchg dx, ax                               ; 92
    1310613072    test dh, 040h                             ; f6 c6 40
    13107     jne short 08997h                          ; 75 04
     13073    jne short 08954h                          ; 75 04
    1310813074    test AL, strict byte 001h                 ; a8 01
    13109     je short 0899bh                           ; 74 04
     13075    je short 08958h                           ; 74 04
    1311013076    mov AL, strict byte 001h                  ; b0 01
    13111     jmp short 0899dh                          ; eb 02
     13077    jmp short 0895ah                          ; eb 02
    1311213078    xor al, al                                ; 30 c0
    1311313079    test al, al                               ; 84 c0
    13114     je short 0896ah                           ; 74 c9
     13080    je short 08927h                           ; 74 c9
    1311513081    mov al, byte [bp-008h]                    ; 8a 46 f8
    1311613082    xor ah, ah                                ; 30 e4
     
    1316813134    pop bp                                    ; 5d
    1316913135    retn                                      ; c3
    13170 ahci_cmd_data_:                              ; 0xf8a0c LB 0x267
     13136ahci_cmd_data_:                              ; 0xf89c9 LB 0x267
    1317113137    push bp                                   ; 55
    1317213138    mov bp, sp                                ; 89 e5
     
    1319313159    mov ax, 00080h                            ; b8 80 00
    1319413160    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13195     call 0a130h                               ; e8 e6 16
     13161    call 0a0f0h                               ; e8 e9 16
    1319613162    mov es, [bp-00ah]                         ; 8e 46 f6
    1319713163    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1321113177    mov dx, word [es:si]                      ; 26 8b 14
    1321213178    mov si, strict word 00008h                ; be 08 00
    13213     call 0a110h                               ; e8 82 16
     13179    call 0a0d0h                               ; e8 85 16
    1321413180    mov es, [bp-00ah]                         ; 8e 46 f6
    1321513181    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1322213188    mov dx, word [es:si]                      ; 26 8b 14
    1322313189    mov si, strict word 00010h                ; be 10 00
    13224     call 0a110h                               ; e8 5c 16
     13190    call 0a0d0h                               ; e8 5f 16
    1322513191    mov es, [bp-00ah]                         ; 8e 46 f6
    1322613192    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1323413200    mov dx, word [es:si]                      ; 26 8b 14
    1323513201    mov si, strict word 00018h                ; be 18 00
    13236     call 0a110h                               ; e8 30 16
     13202    call 0a0d0h                               ; e8 33 16
    1323713203    mov es, [bp-00ah]                         ; 8e 46 f6
    1323813204    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1324513211    mov dx, word [es:si]                      ; 26 8b 14
    1324613212    mov si, strict word 00020h                ; be 20 00
    13247     call 0a110h                               ; e8 0a 16
     13213    call 0a0d0h                               ; e8 0d 16
    1324813214    mov es, [bp-00ah]                         ; 8e 46 f6
    1324913215    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1325613222    mov dx, word [es:si]                      ; 26 8b 14
    1325713223    mov si, strict word 00028h                ; be 28 00
    13258     call 0a110h                               ; e8 e4 15
     13224    call 0a0d0h                               ; e8 e7 15
    1325913225    mov es, [bp-00ah]                         ; 8e 46 f6
    1326013226    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1327013236    mov bx, word [bp-010h]                    ; 8b 5e f0
    1327113237    xor cx, cx                                ; 31 c9
    13272     call 0a0c0h                               ; e8 5f 15
     13238    call 0a080h                               ; e8 62 15
    1327313239    push dx                                   ; 52
    1327413240    push ax                                   ; 50
     
    1328013246    mov ax, 0026ah                            ; b8 6a 02
    1328113247    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13282     call 0a011h                               ; e8 94 14
     13248    call 09fceh                               ; e8 94 14
    1328313249    mov es, [bp-00ah]                         ; 8e 46 f6
    1328413250    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1330313269    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1330413270    test ax, ax                               ; 85 c0
    13305     je short 08c0fh                           ; 74 3b
     13271    je short 08bcch                           ; 74 3b
    1330613272    dec ax                                    ; 48
    1330713273    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1332113287    mov al, byte [bp-008h]                    ; 8a 46 f8
    1332213288    cmp AL, strict byte 035h                  ; 3c 35
    13323     jne short 08c1ch                          ; 75 06
     13289    jne short 08bd9h                          ; 75 06
    1332413290    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13325     jmp short 08c33h                          ; eb 17
     13291    jmp short 08bf0h                          ; eb 17
    1332613292    cmp AL, strict byte 0a0h                  ; 3c a0
    13327     jne short 08c2fh                          ; 75 0f
     13293    jne short 08bech                          ; 75 0f
    1332813294    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1332913295    les bx, [bp-00eh]                         ; c4 5e f2
    1333013296    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13331     jmp short 08c33h                          ; eb 04
     13297    jmp short 08bf0h                          ; eb 04
    1333213298    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1333313299    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1333613302    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1333713303    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13338     call 088b6h                               ; e8 71 fc
     13304    call 08873h                               ; e8 71 fc
    1333913305    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1334013306    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1334313309    add ax, 0026ah                            ; 05 6a 02
    1334413310    mov dx, cx                                ; 89 ca
    13345     call 0a088h                               ; e8 2e 14
     13311    call 0a045h                               ; e8 2e 14
    1334613312    mov es, cx                                ; 8e c1
    1334713313    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1334813314    test al, al                               ; 84 c0
    13349     je short 08c69h                           ; 74 05
     13315    je short 08c26h                           ; 74 05
    1335013316    mov ax, strict word 00004h                ; b8 04 00
    13351     jmp short 08c6bh                          ; eb 02
     13317    jmp short 08c28h                          ; eb 02
    1335213318    xor ah, ah                                ; 30 e4
    1335313319    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1335713323    pop bp                                    ; 5d
    1335813324    retn                                      ; c3
    13359 ahci_port_deinit_current_:                   ; 0xf8c73 LB 0x180
     13325ahci_port_deinit_current_:                   ; 0xf8c30 LB 0x180
    1336013326    push bp                                   ; 55
    1336113327    mov bp, sp                                ; 89 e5
     
    1337213338    mov byte [bp-00ah], al                    ; 88 46 f6
    1337313339    cmp AL, strict byte 0ffh                  ; 3c ff
    13374     je short 08cf4h                           ; 74 5f
     13340    je short 08cb1h                           ; 74 5f
    1337513341    xor ah, ah                                ; 30 e4
    1337613342    sal ax, 007h                              ; c1 e0 07
     
    1341613382    xchg dx, ax                               ; 92
    1341713383    test ax, 0c011h                           ; a9 11 c0
    13418     je short 08cf7h                           ; 74 07
     13384    je short 08cb4h                           ; 74 07
    1341913385    mov AL, strict byte 001h                  ; b0 01
    13420     jmp short 08cf9h                          ; eb 05
    13421     jmp near 08deah                           ; e9 f3 00
     13386    jmp short 08cb6h                          ; eb 05
     13387    jmp near 08da7h                           ; e9 f3 00
    1342213388    xor al, al                                ; 30 c0
    1342313389    cmp AL, strict byte 001h                  ; 3c 01
    13424     je short 08cc7h                           ; 74 ca
     13390    je short 08c84h                           ; 74 ca
    1342513391    mov cx, strict word 00020h                ; b9 20 00
    1342613392    xor bx, bx                                ; 31 db
    1342713393    mov ax, di                                ; 89 f8
    1342813394    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13429     call 0a130h                               ; e8 26 14
     13395    call 0a0f0h                               ; e8 29 14
    1343013396    lea ax, [di+00080h]                       ; 8d 85 80 00
    1343113397    mov cx, strict word 00040h                ; b9 40 00
    1343213398    xor bx, bx                                ; 31 db
    1343313399    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13434     call 0a130h                               ; e8 17 14
     13400    call 0a0f0h                               ; e8 1a 14
    1343513401    lea ax, [di+00200h]                       ; 8d 85 00 02
    1343613402    mov cx, strict word 00060h                ; b9 60 00
    1343713403    xor bx, bx                                ; 31 db
    1343813404    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13439     call 0a130h                               ; e8 08 14
     13405    call 0a0f0h                               ; e8 0b 14
    1344013406    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1344113407    xor ah, ah                                ; 30 e4
     
    1354213508    pop bp                                    ; 5d
    1354313509    retn                                      ; c3
    13544 ahci_port_init_:                             ; 0xf8df3 LB 0x24d
     13510ahci_port_init_:                             ; 0xf8db0 LB 0x24d
    1354513511    push bp                                   ; 55
    1354613512    mov bp, sp                                ; 89 e5
     
    1355213518    mov word [bp-00ah], dx                    ; 89 56 f6
    1355313519    mov byte [bp-008h], bl                    ; 88 5e f8
    13554     call 08c73h                               ; e8 6c fe
     13520    call 08c30h                               ; e8 6c fe
    1355513521    mov al, bl                                ; 88 d8
    1355613522    xor ah, ah                                ; 30 e4
     
    1360113567    xchg dx, ax                               ; 92
    1360213568    test ax, 0c011h                           ; a9 11 c0
    13603     je short 08e78h                           ; 74 04
     13569    je short 08e35h                           ; 74 04
    1360413570    mov AL, strict byte 001h                  ; b0 01
    13605     jmp short 08e7ah                          ; eb 02
     13571    jmp short 08e37h                          ; eb 02
    1360613572    xor al, al                                ; 30 c0
    1360713573    cmp AL, strict byte 001h                  ; 3c 01
    13608     je short 08e43h                           ; 74 c5
     13574    je short 08e00h                           ; 74 c5
    1360913575    mov cx, strict word 00020h                ; b9 20 00
    1361013576    xor bx, bx                                ; 31 db
    1361113577    mov ax, si                                ; 89 f0
    1361213578    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13613     call 0a130h                               ; e8 a5 12
     13579    call 0a0f0h                               ; e8 a8 12
    1361413580    lea ax, [si+00080h]                       ; 8d 84 80 00
    1361513581    mov cx, strict word 00040h                ; b9 40 00
    1361613582    xor bx, bx                                ; 31 db
    1361713583    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13618     call 0a130h                               ; e8 96 12
     13584    call 0a0f0h                               ; e8 99 12
    1361913585    lea di, [si+00200h]                       ; 8d bc 00 02
    1362013586    mov cx, strict word 00060h                ; b9 60 00
     
    1362213588    mov ax, di                                ; 89 f8
    1362313589    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13624     call 0a130h                               ; e8 85 12
     13590    call 0a0f0h                               ; e8 88 12
    1362513591    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1362613592    xor bh, bh                                ; 30 ff
     
    1364013606    mov ax, di                                ; 89 f8
    1364113607    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13642     call 08898h                               ; e8 bf f9
     13608    call 08855h                               ; e8 bf f9
    1364313609    mov es, [bp-00ah]                         ; 8e 46 f6
    1364413610    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1368513651    mov ax, si                                ; 89 f0
    1368613652    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13687     call 08898h                               ; e8 53 f9
     13653    call 08855h                               ; e8 53 f9
    1368813654    mov es, [bp-00ah]                         ; 8e 46 f6
    1368913655    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1379013756    pop bp                                    ; 5d
    1379113757    retn                                      ; c3
    13792 @ahci_read_sectors:                          ; 0xf9040 LB 0xa8
     13758@ahci_read_sectors:                          ; 0xf8ffd LB 0xa8
    1379313759    push bp                                   ; 55
    1379413760    mov bp, sp                                ; 89 e5
     
    1380113767    sub bx, strict byte 0000ch                ; 83 eb 0c
    1380213768    cmp bx, strict byte 00004h                ; 83 fb 04
    13803     jbe short 09066h                          ; 76 0f
     13769    jbe short 09023h                          ; 76 0f
    1380413770    push bx                                   ; 53
    13805     push 00cc4h                               ; 68 c4 0c
    13806     push 00cd6h                               ; 68 d6 0c
     13771    push 00c62h                               ; 68 62 0c
     13772    push 00c74h                               ; 68 74 0c
    1380713773    push strict byte 00007h                   ; 6a 07
    13808     call 01966h                               ; e8 03 89
     13774    call 01966h                               ; e8 46 89
    1380913775    add sp, strict byte 00008h                ; 83 c4 08
    1381013776    xor di, di                                ; 31 ff
     
    1382113787    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1382213788    xor ax, ax                                ; 31 c0
    13823     call 08df3h                               ; e8 60 fd
     13789    call 08db0h                               ; e8 60 fd
    1382413790    mov bx, strict word 00025h                ; bb 25 00
    1382513791    mov ax, si                                ; 89 f0
    1382613792    mov dx, word [bp+006h]                    ; 8b 56 06
    13827     call 08a0ch                               ; e8 6e f9
     13793    call 089c9h                               ; e8 6e f9
    1382813794    mov word [bp-006h], ax                    ; 89 46 fa
    1382913795    mov es, [bp+006h]                         ; 8e 46 06
     
    1385413820    pop bp                                    ; 5d
    1385513821    retn 00004h                               ; c2 04 00
    13856 @ahci_write_sectors:                         ; 0xf90e8 LB 0x86
     13822@ahci_write_sectors:                         ; 0xf90a5 LB 0x86
    1385713823    push bp                                   ; 55
    1385813824    mov bp, sp                                ; 89 e5
     
    1386613832    sub dx, strict byte 0000ch                ; 83 ea 0c
    1386713833    cmp dx, strict byte 00004h                ; 83 fa 04
    13868     jbe short 09112h                          ; 76 0f
     13834    jbe short 090cfh                          ; 76 0f
    1386913835    push dx                                   ; 52
    13870     push 00cf5h                               ; 68 f5 0c
    13871     push 00cd6h                               ; 68 d6 0c
     13836    push 00c93h                               ; 68 93 0c
     13837    push 00c74h                               ; 68 74 0c
    1387213838    push strict byte 00007h                   ; 6a 07
    13873     call 01966h                               ; e8 57 88
     13839    call 01966h                               ; e8 9a 88
    1387413840    add sp, strict byte 00008h                ; 83 c4 08
    1387513841    xor bx, bx                                ; 31 db
     
    1388613852    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1388713853    xor ax, ax                                ; 31 c0
    13888     call 08df3h                               ; e8 b6 fc
     13854    call 08db0h                               ; e8 b6 fc
    1388913855    mov bx, strict word 00035h                ; bb 35 00
    1389013856    mov ax, si                                ; 89 f0
    1389113857    mov dx, cx                                ; 89 ca
    13892     call 08a0ch                               ; e8 c5 f8
     13858    call 089c9h                               ; e8 c5 f8
    1389313859    mov dx, ax                                ; 89 c2
    1389413860    mov es, cx                                ; 8e c1
     
    1390513871    pop bp                                    ; 5d
    1390613872    retn 00004h                               ; c2 04 00
    13907 ahci_cmd_packet_:                            ; 0xf916e LB 0x18a
     13873ahci_cmd_packet_:                            ; 0xf912b LB 0x18a
    1390813874    push bp                                   ; 55
    1390913875    mov bp, sp                                ; 89 e5
     
    1391713883    mov dx, strict word 0000eh                ; ba 0e 00
    1391813884    mov ax, strict word 00040h                ; b8 40 00
    13919     call 0166ch                               ; e8 e3 84
     13885    call 0166ch                               ; e8 26 85
    1392013886    mov si, 00122h                            ; be 22 01
    1392113887    mov word [bp-008h], ax                    ; 89 46 f8
    1392213888    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13923     jne short 091b4h                          ; 75 1f
    13924     mov bx, 00e02h                            ; bb 02 0e
     13889    jne short 09171h                          ; 75 1f
     13890    mov bx, 00da6h                            ; bb a6 0d
    1392513891    mov cx, ds                                ; 8c d9
    1392613892    mov ax, strict word 00004h                ; b8 04 00
    13927     call 01923h                               ; e8 83 87
    13928     push 00d08h                               ; 68 08 0d
    13929     push 00d18h                               ; 68 18 0d
     13893    call 01923h                               ; e8 c6 87
     13894    push 00ca6h                               ; 68 a6 0c
     13895    push 00cb6h                               ; 68 b6 0c
    1393013896    push strict byte 00004h                   ; 6a 04
    13931     call 01966h                               ; e8 bb 87
     13897    call 01966h                               ; e8 fe 87
    1393213898    add sp, strict byte 00006h                ; 83 c4 06
    1393313899    mov ax, strict word 00001h                ; b8 01 00
    13934     jmp near 092efh                           ; e9 3b 01
     13900    jmp near 092ach                           ; e9 3b 01
    1393513901    test byte [bp+004h], 001h                 ; f6 46 04 01
    13936     jne short 091aeh                          ; 75 f4
     13902    jne short 0916bh                          ; 75 f4
    1393713903    mov ax, word [bp+006h]                    ; 8b 46 06
    1393813904    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1394013906    sal ax, 1                                 ; d1 e0
    1394113907    rcl dx, 1                                 ; d1 d2
    13942     loop 091c3h                               ; e2 fa
     13908    loop 09180h                               ; e2 fa
    1394313909    mov es, [bp-008h]                         ; 8e 46 f8
    1394413910    mov word [es:si], ax                      ; 26 89 04
     
    1395413920    mov dx, word [bp+008h]                    ; 8b 56 08
    1395513921    xor cx, cx                                ; 31 c9
    13956     call 0a0e0h                               ; e8 e4 0e
     13922    call 0a0a0h                               ; e8 e7 0e
    1395713923    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1395813924    xor di, di                                ; 31 ff
     
    1397313939    mov bx, ax                                ; 89 c3
    1397413940    xor al, al                                ; 30 c0
    13975     call 08df3h                               ; e8 b8 fb
     13941    call 08db0h                               ; e8 b8 fb
    1397613942    mov al, byte [bp-006h]                    ; 8a 46 fa
    1397713943    xor ah, ah                                ; 30 e4
     
    1398113947    mov ax, 000c0h                            ; b8 c0 00
    1398213948    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13983     call 0a140h                               ; e8 f0 0e
     13949    call 0a100h                               ; e8 f3 0e
    1398413950    mov es, [bp-008h]                         ; 8e 46 f8
    1398513951    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1398813954    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1398913955    test ax, ax                               ; 85 c0
    13990     je short 0928eh                           ; 74 27
     13956    je short 0924bh                           ; 74 27
    1399113957    dec ax                                    ; 48
    1399213958    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1400113967    mov ax, si                                ; 89 f0
    1400213968    mov dx, word [bp-008h]                    ; 8b 56 f8
    14003     call 08a0ch                               ; e8 73 f7
     13969    call 089c9h                               ; e8 73 f7
    1400413970    les bx, [bp-00eh]                         ; c4 5e f2
    1400513971    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1402813994    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1402913995    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14030     jne short 092edh                          ; 75 05
     13996    jne short 092aah                          ; 75 05
    1403113997    mov ax, strict word 00004h                ; b8 04 00
    14032     jmp short 092efh                          ; eb 02
     13998    jmp short 092ach                          ; eb 02
    1403313999    xor ax, ax                                ; 31 c0
    1403414000    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1403714003    pop bp                                    ; 5d
    1403814004    retn 0000ch                               ; c2 0c 00
    14039 ahci_port_detect_device_:                    ; 0xf92f8 LB 0x4e3
     14005ahci_port_detect_device_:                    ; 0xf92b5 LB 0x4e3
    1404014006    push bp                                   ; 55
    1404114007    mov bp, sp                                ; 89 e5
     
    1405014016    xor ch, ch                                ; 30 ed
    1405114017    mov bx, cx                                ; 89 cb
    14052     call 08df3h                               ; e8 e0 fa
     14018    call 08db0h                               ; e8 e0 fa
    1405314019    mov dx, strict word 0000eh                ; ba 0e 00
    1405414020    mov ax, strict word 00040h                ; b8 40 00
    14055     call 0166ch                               ; e8 50 83
     14021    call 0166ch                               ; e8 93 83
    1405614022    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    1405714023    mov word [bp-016h], ax                    ; 89 46 ea
     
    1412314089    mov bx, strict word 0000fh                ; bb 0f 00
    1412414090    xor cx, cx                                ; 31 c9
    14125     call 0887ch                               ; e8 b5 f4
     14091    call 08839h                               ; e8 b5 f4
    1412614092    test ax, ax                               ; 85 c0
    14127     jne short 093ceh                          ; 75 03
    14128     jmp near 097d3h                           ; e9 05 04
     14093    jne short 0938bh                          ; 75 03
     14094    jmp near 09790h                           ; e9 05 04
    1412914095    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1413014096    xor ah, ah                                ; 30 e4
     
    1415514121    mov bx, strict word 0000fh                ; bb 0f 00
    1415614122    xor cx, cx                                ; 31 c9
    14157     call 0887ch                               ; e8 67 f4
     14123    call 08839h                               ; e8 67 f4
    1415814124    cmp ax, strict word 00001h                ; 3d 01 00
    14159     je short 093ceh                           ; 74 b4
     14125    je short 0938bh                           ; 74 b4
    1416014126    push strict byte 00000h                   ; 6a 00
    1416114127    mov bx, strict word 0000fh                ; bb 0f 00
     
    1416314129    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1416414130    mov dx, di                                ; 89 fa
    14165     call 0887ch                               ; e8 53 f4
     14131    call 08839h                               ; e8 53 f4
    1416614132    cmp ax, strict word 00003h                ; 3d 03 00
    14167     jne short 093cbh                          ; 75 9d
     14133    jne short 09388h                          ; 75 9d
    1416814134    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1416914135    add ax, 00130h                            ; 05 30 01
     
    1419314159    mov byte [bp-008h], al                    ; 88 46 f8
    1419414160    cmp AL, strict byte 004h                  ; 3c 04
    14195     jc short 09478h                           ; 72 03
    14196     jmp near 097d3h                           ; e9 5b 03
     14161    jc short 09435h                           ; 72 03
     14162    jmp near 09790h                           ; e9 5b 03
    1419714163    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1419814164    add ax, 00118h                            ; 05 18 01
     
    1424414210    add cl, 00ch                              ; 80 c1 0c
    1424514211    test dx, dx                               ; 85 d2
    14246     jne short 0953eh                          ; 75 54
     14212    jne short 094fbh                          ; 75 54
    1424714213    cmp ax, 00101h                            ; 3d 01 01
    14248     jne short 0953eh                          ; 75 4f
     14214    jne short 094fbh                          ; 75 4f
    1424914215    mov es, [bp-016h]                         ; 8e 46 ea
    1425014216    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1426114227    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1426214228    mov dx, es                                ; 8c c2
    14263     call 08a0ch                               ; e8 dd f4
     14229    call 089c9h                               ; e8 dd f4
    1426414230    mov byte [bp-00ah], cl                    ; 88 4e f6
    1426514231    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14266     je short 09541h                           ; 74 08
     14232    je short 094feh                           ; 74 08
    1426714233    mov ax, strict word 00001h                ; b8 01 00
    14268     jmp short 09543h                          ; eb 05
    14269     jmp near 09711h                           ; e9 d0 01
     14234    jmp short 09500h                          ; eb 05
     14235    jmp near 096ceh                           ; e9 d0 01
    1427014236    xor ax, ax                                ; 31 c0
    1427114237    mov dl, al                                ; 88 c2
     
    1428314249    mov word [bp-01eh], ax                    ; 89 46 e2
    1428414250    cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
    14285     jne short 09592h                          ; 75 1e
     14251    jne short 0954fh                          ; 75 1e
    1428614252    cmp di, strict byte 0ffffh                ; 83 ff ff
    14287     jne short 09592h                          ; 75 19
     14253    jne short 0954fh                          ; 75 19
    1428814254    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1428914255    mov word [bp-01eh], ax                    ; 89 46 e2
     
    1432414290    mov al, byte [bp-008h]                    ; 8a 46 f8
    1432514291    cmp AL, strict byte 001h                  ; 3c 01
    14326     jc short 0960dh                           ; 72 0c
    14327     jbe short 09615h                          ; 76 12
     14292    jc short 095cah                           ; 72 0c
     14293    jbe short 095d2h                          ; 76 12
    1432814294    cmp AL, strict byte 003h                  ; 3c 03
    14329     je short 0961dh                           ; 74 16
     14295    je short 095dah                           ; 74 16
    1433014296    cmp AL, strict byte 002h                  ; 3c 02
    14331     je short 09619h                           ; 74 0e
    14332     jmp short 09665h                          ; eb 58
     14297    je short 095d6h                           ; 74 0e
     14298    jmp short 09622h                          ; eb 58
    1433314299    test al, al                               ; 84 c0
    14334     jne short 09665h                          ; 75 54
     14300    jne short 09622h                          ; 75 54
    1433514301    mov DL, strict byte 040h                  ; b2 40
    14336     jmp short 0961fh                          ; eb 0a
     14302    jmp short 095dch                          ; eb 0a
    1433714303    mov DL, strict byte 048h                  ; b2 48
    14338     jmp short 0961fh                          ; eb 06
     14304    jmp short 095dch                          ; eb 06
    1433914305    mov DL, strict byte 050h                  ; b2 50
    14340     jmp short 0961fh                          ; eb 02
     14306    jmp short 095dch                          ; eb 02
    1434114307    mov DL, strict byte 058h                  ; b2 58
    1434214308    mov bl, dl                                ; 88 d3
     
    1434414310    xor bh, bh                                ; 30 ff
    1434514311    mov ax, bx                                ; 89 d8
    14346     call 016ach                               ; e8 81 80
     14312    call 016ach                               ; e8 c4 80
    1434714313    test al, al                               ; 84 c0
    14348     je short 09665h                           ; 74 36
     14314    je short 09622h                           ; 74 36
    1434914315    mov al, dl                                ; 88 d0
    1435014316    db  0feh, 0c0h
    1435114317    ; inc al                                    ; fe c0
    1435214318    xor ah, ah                                ; 30 e4
    14353     call 016ach                               ; e8 74 80
     14319    call 016ach                               ; e8 b7 80
    1435414320    xor ah, ah                                ; 30 e4
    1435514321    mov cx, ax                                ; 89 c1
    1435614322    sal cx, 008h                              ; c1 e1 08
    1435714323    mov al, dl                                ; 88 d0
    14358     call 016ach                               ; e8 68 80
     14324    call 016ach                               ; e8 ab 80
    1435914325    xor ah, ah                                ; 30 e4
    1436014326    add ax, cx                                ; 01 c8
     
    1436314329    add AL, strict byte 002h                  ; 04 02
    1436414330    xor ah, ah                                ; 30 e4
    14365     call 016ach                               ; e8 58 80
     14331    call 016ach                               ; e8 9b 80
    1436614332    xor ah, ah                                ; 30 e4
    1436714333    mov word [bp-02ah], ax                    ; 89 46 d6
    1436814334    mov ax, bx                                ; 89 d8
    14369     call 016ach                               ; e8 4e 80
     14335    call 016ach                               ; e8 91 80
    1437014336    xor ah, ah                                ; 30 e4
    1437114337    mov word [bp-026h], ax                    ; 89 46 da
    14372     jmp short 09677h                          ; eb 12
     14338    jmp short 09634h                          ; eb 12
    1437314339    push word [bp-01eh]                       ; ff 76 e2
    1437414340    push word [bp-012h]                       ; ff 76 ee
     
    1437714343    mov dx, ss                                ; 8c d2
    1437814344    lea ax, [bp-02ah]                         ; 8d 46 d6
    14379     call 05a02h                               ; e8 8b c3
    14380     mov bx, 00e02h                            ; bb 02 0e
     14345    call 05a02h                               ; e8 ce c3
     14346    mov bx, 00da6h                            ; bb a6 0d
    1438114347    mov cx, ds                                ; 8c d9
    1438214348    mov ax, strict word 00004h                ; b8 04 00
    14383     call 01923h                               ; e8 a1 82
     14349    call 01923h                               ; e8 e4 82
    1438414350    push word [bp-01eh]                       ; ff 76 e2
    1438514351    push word [bp-012h]                       ; ff 76 ee
     
    1440014366    mov al, byte [bp-008h]                    ; 8a 46 f8
    1440114367    push ax                                   ; 50
    14402     push 00d38h                               ; 68 38 0d
     14368    push 00cd6h                               ; 68 d6 0c
    1440314369    push strict byte 00004h                   ; 6a 04
    14404     call 01966h                               ; e8 b3 82
     14370    call 01966h                               ; e8 f6 82
    1440514371    add sp, strict byte 0001ch                ; 83 c4 1c
    1440614372    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1443314399    mov dx, strict word 00075h                ; ba 75 00
    1443414400    mov ax, strict word 00040h                ; b8 40 00
    14435     call 01650h                               ; e8 51 7f
     14401    call 01650h                               ; e8 94 7f
    1443614402    mov bl, al                                ; 88 c3
    1443714403    db  0feh, 0c3h
     
    1444014406    mov dx, strict word 00075h                ; ba 75 00
    1444114407    mov ax, strict word 00040h                ; b8 40 00
    14442     call 0165eh                               ; e8 50 7f
    14443     jmp near 097c2h                           ; e9 b1 00
     14408    call 0165eh                               ; e8 93 7f
     14409    jmp near 0977fh                           ; e9 b1 00
    1444414410    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14445     jne short 0976bh                          ; 75 54
     14411    jne short 09728h                          ; 75 54
    1444614412    cmp ax, 00101h                            ; 3d 01 01
    14447     jne short 0976bh                          ; 75 4f
     14413    jne short 09728h                          ; 75 4f
    1444814414    mov es, [bp-016h]                         ; 8e 46 ea
    1444914415    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1446014426    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1446114427    mov dx, es                                ; 8c c2
    14462     call 08a0ch                               ; e8 b0 f2
     14428    call 089c9h                               ; e8 b0 f2
    1446314429    mov byte [bp-00ah], cl                    ; 88 4e f6
    1446414430    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14465     je short 0976dh                           ; 74 07
     14431    je short 0972ah                           ; 74 07
    1446614432    mov dx, strict word 00001h                ; ba 01 00
    14467     jmp short 0976fh                          ; eb 04
    14468     jmp short 097c2h                          ; eb 55
     14433    jmp short 0972ch                          ; eb 04
     14434    jmp short 0977fh                          ; eb 55
    1446914435    xor dx, dx                                ; 31 d2
    1447014436    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    1450514471    pop bp                                    ; 5d
    1450614472    retn                                      ; c3
    14507 ahci_mem_alloc_:                             ; 0xf97db LB 0x43
     14473ahci_mem_alloc_:                             ; 0xf9798 LB 0x43
    1450814474    push bp                                   ; 55
    1450914475    mov bp, sp                                ; 89 e5
     
    1451514481    mov dx, 00413h                            ; ba 13 04
    1451614482    xor ax, ax                                ; 31 c0
    14517     call 0166ch                               ; e8 81 7e
     14483    call 0166ch                               ; e8 c4 7e
    1451814484    test ax, ax                               ; 85 c0
    14519     je short 09814h                           ; 74 25
     14485    je short 097d1h                           ; 74 25
    1452014486    dec ax                                    ; 48
    1452114487    mov bx, ax                                ; 89 c3
     
    1452414490    sal ax, 1                                 ; d1 e0
    1452514491    rcl dx, 1                                 ; d1 d2
    14526     loop 097f7h                               ; e2 fa
     14492    loop 097b4h                               ; e2 fa
    1452714493    mov si, ax                                ; 89 c6
    1452814494    mov di, dx                                ; 89 d7
     
    1453014496    shr di, 1                                 ; d1 ef
    1453114497    rcr si, 1                                 ; d1 de
    14532     loop 09804h                               ; e2 fa
     14498    loop 097c1h                               ; e2 fa
    1453314499    mov dx, 00413h                            ; ba 13 04
    1453414500    xor ax, ax                                ; 31 c0
    14535     call 0167ah                               ; e8 68 7e
     14501    call 0167ah                               ; e8 ab 7e
    1453614502    mov ax, si                                ; 89 f0
    1453714503    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1454314509    pop bp                                    ; 5d
    1454414510    retn                                      ; c3
    14545 ahci_hba_init_:                              ; 0xf981e LB 0x16d
     14511ahci_hba_init_:                              ; 0xf97db LB 0x16d
    1454614512    push bp                                   ; 55
    1454714513    mov bp, sp                                ; 89 e5
     
    1455514521    mov dx, strict word 0000eh                ; ba 0e 00
    1455614522    mov ax, strict word 00040h                ; b8 40 00
    14557     call 0166ch                               ; e8 38 7e
     14523    call 0166ch                               ; e8 7b 7e
    1455814524    mov bx, 00122h                            ; bb 22 01
    1455914525    mov di, ax                                ; 89 c7
     
    1457214538    shr eax, 010h                             ; 66 c1 e8 10
    1457314539    xchg dx, ax                               ; 92
    14574     call 097dbh                               ; e8 83 ff
     14540    call 09798h                               ; e8 83 ff
    1457514541    mov word [bp-010h], ax                    ; 89 46 f0
    1457614542    test ax, ax                               ; 85 c0
    14577     jne short 09862h                          ; 75 03
    14578     jmp near 0996ah                           ; e9 08 01
     14543    jne short 0981fh                          ; 75 03
     14544    jmp near 09927h                           ; e9 08 01
    1457914545    mov ax, word [bp-010h]                    ; 8b 46 f0
    1458014546    mov es, di                                ; 8e c7
     
    1462614592    xchg dx, ax                               ; 92
    1462714593    test AL, strict byte 001h                 ; a8 01
    14628     jne short 098bch                          ; 75 de
     14594    jne short 09879h                          ; 75 de
    1462914595    xor ax, ax                                ; 31 c0
    1463014596    xor cx, cx                                ; 31 c9
     
    1464414610    mov bx, strict word 0001fh                ; bb 1f 00
    1464514611    xor cx, cx                                ; 31 c9
    14646     call 0887ch                               ; e8 7a ef
     14612    call 08839h                               ; e8 7a ef
    1464714613    db  0feh, 0c0h
    1464814614    ; inc al                                    ; fe c0
    1464914615    mov byte [bp-00ch], al                    ; 88 46 f4
    1465014616    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    14651     jmp short 0992eh                          ; eb 21
     14617    jmp short 098ebh                          ; eb 21
    1465214618    xor al, al                                ; 30 c0
    1465314619    test al, al                               ; 84 c0
    14654     je short 09925h                           ; 74 12
     14620    je short 098e2h                           ; 74 12
    1465514621    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1465614622    xor bh, bh                                ; 30 ff
    1465714623    xor ax, ax                                ; 31 c0
    1465814624    mov dx, word [bp-010h]                    ; 8b 56 f0
    14659     call 092f8h                               ; e8 d8 f9
     14625    call 092b5h                               ; e8 d8 f9
    1466014626    dec byte [bp-00ch]                        ; fe 4e f4
    14661     je short 09968h                           ; 74 43
     14627    je short 09925h                           ; 74 43
    1466214628    inc byte [bp-00eh]                        ; fe 46 f2
    1466314629    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
    14664     jnc short 09968h                          ; 73 3a
     14630    jnc short 09925h                          ; 73 3a
    1466514631    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    1466614632    xor ch, ch                                ; 30 ed
    1466714633    mov bx, strict word 00001h                ; bb 01 00
    1466814634    xor di, di                                ; 31 ff
    14669     jcxz 09940h                               ; e3 06
     14635    jcxz 098fdh                               ; e3 06
    1467014636    sal bx, 1                                 ; d1 e3
    1467114637    rcl di, 1                                 ; d1 d7
    14672     loop 0993ah                               ; e2 fa
     14638    loop 098f7h                               ; e2 fa
    1467314639    mov ax, strict word 0000ch                ; b8 0c 00
    1467414640    xor cx, cx                                ; 31 c9
     
    1468614652    xchg dx, ax                               ; 92
    1468714653    test dx, di                               ; 85 fa
    14688     jne short 09964h                          ; 75 04
     14654    jne short 09921h                          ; 75 04
    1468914655    test ax, bx                               ; 85 d8
    14690     je short 0990dh                           ; 74 a9
     14656    je short 098cah                           ; 74 a9
    1469114657    mov AL, strict byte 001h                  ; b0 01
    14692     jmp short 0990fh                          ; eb a7
     14658    jmp short 098cch                          ; eb a7
    1469314659    xor ax, ax                                ; 31 c0
    1469414660    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1470014666    pop bp                                    ; 5d
    1470114667    retn                                      ; c3
    14702     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 074h, 09ah, 052h, 09ah, 058h, 09ah, 05eh, 09ah, 064h
    14703     db  09ah, 06ah, 09ah, 070h, 09ah, 074h, 09ah
    14704 _ahci_init:                                  ; 0xf998b LB 0x13a
     14668    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 031h, 09ah, 00fh, 09ah, 015h, 09ah, 01bh, 09ah, 021h
     14669    db  09ah, 027h, 09ah, 02dh, 09ah, 031h, 09ah
     14670_ahci_init:                                  ; 0xf9948 LB 0x13a
    1470514671    push bp                                   ; 55
    1470614672    mov bp, sp                                ; 89 e5
     
    1471014676    mov ax, 00601h                            ; b8 01 06
    1471114677    mov dx, strict word 00001h                ; ba 01 00
    14712     call 09ee0h                               ; e8 44 05
     14678    call 09e9dh                               ; e8 44 05
    1471314679    mov dx, ax                                ; 89 c2
    1471414680    cmp ax, strict word 0ffffh                ; 3d ff ff
    14715     je short 099efh                           ; 74 4c
     14681    je short 099ach                           ; 74 4c
    1471614682    xor al, al                                ; 30 c0
    1471714683    shr ax, 008h                              ; c1 e8 08
     
    1472114687    xor ah, ah                                ; 30 e4
    1472214688    mov bx, strict word 00034h                ; bb 34 00
    14723     call 09f0bh                               ; e8 53 05
     14689    call 09ec8h                               ; e8 53 05
    1472414690    mov cl, al                                ; 88 c1
    1472514691    test cl, cl                               ; 84 c9
    14726     je short 099f2h                           ; 74 34
     14692    je short 099afh                           ; 74 34
    1472714693    mov bl, cl                                ; 88 cb
    1472814694    xor bh, bh                                ; 30 ff
     
    1473514701    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1473614702    mov ax, word [bp-014h]                    ; 8b 46 ec
    14737     call 09f0bh                               ; e8 2e 05
     14703    call 09ec8h                               ; e8 2e 05
    1473814704    cmp AL, strict byte 012h                  ; 3c 12
    14739     je short 099f2h                           ; 74 11
     14705    je short 099afh                           ; 74 11
    1474014706    mov bl, cl                                ; 88 cb
    1474114707    db  0feh, 0c3h
     
    1474414710    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1474514711    mov ax, word [bp-014h]                    ; 8b 46 ec
    14746     jmp short 099b5h                          ; eb c6
    14747     jmp near 09abeh                           ; e9 cc 00
     14712    jmp short 09972h                          ; eb c6
     14713    jmp near 09a7bh                           ; e9 cc 00
    1474814714    test cl, cl                               ; 84 c9
    14749     je short 099efh                           ; 74 f9
     14715    je short 099ach                           ; 74 f9
    1475014716    add cl, 002h                              ; 80 c1 02
    1475114717    mov bl, cl                                ; 88 cb
     
    1475914725    mov dx, word [bp-012h]                    ; 8b 56 ee
    1476014726    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14761     call 09f0bh                               ; e8 f3 04
     14727    call 09ec8h                               ; e8 f3 04
    1476214728    cmp AL, strict byte 010h                  ; 3c 10
    14763     jne short 099efh                          ; 75 d3
     14729    jne short 099ach                          ; 75 d3
    1476414730    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1476514731    mov bl, cl                                ; 88 cb
     
    1476814734    mov dx, word [bp-012h]                    ; 8b 56 ee
    1476914735    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14770     call 09f39h                               ; e8 09 05
     14736    call 09ef6h                               ; e8 09 05
    1477114737    mov dx, ax                                ; 89 c2
    1477214738    and ax, strict word 0000fh                ; 25 0f 00
    1477314739    sub ax, strict word 00004h                ; 2d 04 00
    1477414740    cmp ax, strict word 0000bh                ; 3d 0b 00
    14775     jnbe short 09a74h                         ; 77 37
     14741    jnbe short 09a31h                         ; 77 37
    1477614742    push CS                                   ; 0e
    1477714743    pop ES                                    ; 07
    1477814744    mov cx, strict word 00008h                ; b9 08 00
    14779     mov di, 09974h                            ; bf 74 99
     14745    mov di, 09931h                            ; bf 31 99
    1478014746    repne scasb                               ; f2 ae
    1478114747    sal cx, 1                                 ; d1 e1
    1478214748    mov di, cx                                ; 89 cf
    14783     mov ax, word [cs:di-06685h]               ; 2e 8b 85 7b 99
     14749    mov ax, word [cs:di-066c8h]               ; 2e 8b 85 38 99
    1478414750    jmp ax                                    ; ff e0
    1478514751    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    14786     jmp short 09a74h                          ; eb 1c
     14752    jmp short 09a31h                          ; eb 1c
    1478714753    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    14788     jmp short 09a74h                          ; eb 16
     14754    jmp short 09a31h                          ; eb 16
    1478914755    mov byte [bp-008h], 018h                  ; c6 46 f8 18
    14790     jmp short 09a74h                          ; eb 10
     14756    jmp short 09a31h                          ; eb 10
    1479114757    mov byte [bp-008h], 01ch                  ; c6 46 f8 1c
    14792     jmp short 09a74h                          ; eb 0a
     14758    jmp short 09a31h                          ; eb 0a
    1479314759    mov byte [bp-008h], 020h                  ; c6 46 f8 20
    14794     jmp short 09a74h                          ; eb 04
     14760    jmp short 09a31h                          ; eb 04
    1479514761    mov byte [bp-008h], 024h                  ; c6 46 f8 24
    1479614762    mov si, dx                                ; 89 d6
     
    1479914765    mov al, byte [bp-008h]                    ; 8a 46 f8
    1480014766    test al, al                               ; 84 c0
    14801     je short 09abeh                           ; 74 3b
     14767    je short 09a7bh                           ; 74 3b
    1480214768    mov bl, al                                ; 88 c3
    1480314769    xor bh, bh                                ; 30 ff
     
    1481014776    mov dx, word [bp-010h]                    ; 8b 56 f0
    1481114777    mov ax, word [bp-016h]                    ; 8b 46 ea
    14812     call 09f63h                               ; e8 c1 04
     14778    call 09f20h                               ; e8 c1 04
    1481314779    test AL, strict byte 001h                 ; a8 01
    14814     je short 09abeh                           ; 74 18
     14780    je short 09a7bh                           ; 74 18
    1481514781    and AL, strict byte 0f0h                  ; 24 f0
    1481614782    add si, ax                                ; 01 c6
     
    1481914785    mov dx, word [bp-010h]                    ; 8b 56 f0
    1482014786    mov ax, word [bp-016h]                    ; 8b 46 ea
    14821     call 09fb1h                               ; e8 f8 04
     14787    call 09f6eh                               ; e8 f8 04
    1482214788    mov ax, si                                ; 89 f0
    14823     call 0981eh                               ; e8 60 fd
     14789    call 097dbh                               ; e8 60 fd
    1482414790    lea sp, [bp-004h]                         ; 8d 66 fc
    1482514791    pop di                                    ; 5f
     
    1482714793    pop bp                                    ; 5d
    1482814794    retn                                      ; c3
    14829 apm_out_str_:                                ; 0xf9ac5 LB 0x39
     14795apm_out_str_:                                ; 0xf9a82 LB 0x39
    1483014796    push bp                                   ; 55
    1483114797    mov bp, sp                                ; 89 e5
     
    1483314799    mov bx, ax                                ; 89 c3
    1483414800    cmp byte [bx], 000h                       ; 80 3f 00
    14835     je short 09adah                           ; 74 0a
     14801    je short 09a97h                           ; 74 0a
    1483614802    mov al, byte [bx]                         ; 8a 07
    1483714803    out DX, AL                                ; ee
     
    1484014806    db  00ah, 0c0h
    1484114807    ; or al, al                                 ; 0a c0
    14842     jne short 09ad2h                          ; 75 f8
     14808    jne short 09a8fh                          ; 75 f8
    1484314809    lea sp, [bp-002h]                         ; 8d 66 fe
    1484414810    pop bx                                    ; 5b
    1484514811    pop bp                                    ; 5d
    1484614812    retn                                      ; c3
    14847     pop DS                                    ; 1f
     14813    fcomp qword [bp+si-0649ch]                ; dc 9a 64 9b
     14814    out DX, AL                                ; ee
     14815    call far 09b64h:09b09h                    ; 9a 09 9b 64 9b
     14816    xor AL, strict byte 09bh                  ; 34 9b
     14817    db  064h, 09bh
     14818    ; fs wait                                   ; 64 9b
     14819    push strict byte 0ff9bh                   ; 6a 9b
     14820    cmp word [bp+di-064c7h], bx               ; 39 9b 39 9b
     14821    cmp word [bp+di-06457h], bx               ; 39 9b a9 9b
     14822    cmp word [bp+di-064c7h], bx               ; 39 9b 39 9b
     14823    db  0a2h
    1484814824    wait                                      ; 9b
    14849     cmpsw                                     ; a7
    14850     wait                                      ; 9b
    14851     xor word [bp+di-064b4h], bx               ; 31 9b 4c 9b
    14852     cmpsw                                     ; a7
    14853     wait                                      ; 9b
    14854     jnbe short 09a87h                         ; 77 9b
    14855     cmpsw                                     ; a7
    14856     wait                                      ; 9b
    14857     lodsw                                     ; ad
    14858     wait                                      ; 9b
    14859     jl short 09a8dh                           ; 7c 9b
    14860     jl short 09a8fh                           ; 7c 9b
    14861     jl short 09a91h                           ; 7c 9b
    14862     in AL, DX                                 ; ec
    14863     wait                                      ; 9b
    14864     jl short 09a95h                           ; 7c 9b
    14865     jl short 09a97h                           ; 7c 9b
    14866     in ax, 09bh                               ; e5 9b
    14867 _apm_function:                               ; 0xf9afe LB 0xf3
     14825_apm_function:                               ; 0xf9abb LB 0xf3
    1486814826    push bp                                   ; 55
    1486914827    mov bp, sp                                ; 89 e5
     
    1487314831    xor ah, ah                                ; 30 e4
    1487414832    cmp ax, strict word 0000eh                ; 3d 0e 00
    14875     jnbe short 09b7ch                         ; 77 6c
     14833    jnbe short 09b39h                         ; 77 6c
    1487614834    mov bx, ax                                ; 89 c3
    1487714835    add bx, ax                                ; 01 c3
    1487814836    mov dx, word [bp+018h]                    ; 8b 56 18
    1487914837    or dl, 001h                               ; 80 ca 01
    14880     jmp word [cs:bx-06520h]                   ; 2e ff a7 e0 9a
     14838    jmp word [cs:bx-06563h]                   ; 2e ff a7 9d 9a
    1488114839    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1488214840    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1488314841    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14884     jmp near 09ba7h                           ; e9 76 00
     14842    jmp near 09b64h                           ; e9 76 00
    1488514843    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14886     mov word [bp+00ch], 0a1b4h                ; c7 46 0c b4 a1
     14844    mov word [bp+00ch], 0a174h                ; c7 46 0c 74 a1
    1488714845    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1488814846    mov ax, strict word 0fff0h                ; b8 f0 ff
    1488914847    mov word [bp+006h], ax                    ; 89 46 06
    1489014848    mov word [bp+004h], ax                    ; 89 46 04
    14891     jmp near 09ba7h                           ; e9 5b 00
     14849    jmp near 09b64h                           ; e9 5b 00
    1489214850    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1489314851    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1490214860    mov si, ax                                ; 89 c6
    1490314861    sal esi, 010h                             ; 66 c1 e6 10
    14904     jmp near 09ba7h                           ; e9 30 00
     14862    jmp near 09b64h                           ; e9 30 00
    1490514863    sti                                       ; fb
    1490614864    hlt                                       ; f4
    14907     jmp near 09ba7h                           ; e9 2b 00
    14908     mov bx, 00e02h                            ; bb 02 0e
     14865    jmp near 09b64h                           ; e9 2b 00
     14866    mov bx, 00da6h                            ; bb a6 0d
    1490914867    mov cx, ds                                ; 8c d9
    1491014868    mov ax, strict word 00004h                ; b8 04 00
    14911     call 01923h                               ; e8 9c 7d
     14869    call 01923h                               ; e8 df 7d
    1491214870    push word [bp+00ch]                       ; ff 76 0c
    1491314871    push word [bp+012h]                       ; ff 76 12
    14914     push 00d8bh                               ; 68 8b 0d
     14872    push 00d29h                               ; 68 29 0d
    1491514873    push strict byte 00004h                   ; 6a 04
    14916     call 01966h                               ; e8 d1 7d
     14874    call 01966h                               ; e8 14 7e
    1491714875    add sp, strict byte 00008h                ; 83 c4 08
    1491814876    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1492614884    retn                                      ; c3
    1492714885    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14928     je short 09bd2h                           ; 74 1f
     14886    je short 09b8fh                           ; 74 1f
    1492914887    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14930     je short 09bcah                           ; 74 11
     14888    je short 09b87h                           ; 74 11
    1493114889    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14932     jne short 09bdah                          ; 75 1b
     14890    jne short 09b97h                          ; 75 1b
    1493314891    mov dx, 0040fh                            ; ba 0f 04
    14934     mov ax, 00d72h                            ; b8 72 0d
    14935     call 09ac5h                               ; e8 fd fe
    14936     jmp short 09ba7h                          ; eb dd
     14892    mov ax, 00d10h                            ; b8 10 0d
     14893    call 09a82h                               ; e8 fd fe
     14894    jmp short 09b64h                          ; eb dd
    1493714895    mov dx, 0040fh                            ; ba 0f 04
    14938     mov ax, 00d7ah                            ; b8 7a 0d
    14939     jmp short 09bc5h                          ; eb f3
     14896    mov ax, 00d18h                            ; b8 18 0d
     14897    jmp short 09b82h                          ; eb f3
    1494014898    mov dx, 0040fh                            ; ba 0f 04
    14941     mov ax, 00d82h                            ; b8 82 0d
    14942     jmp short 09bc5h                          ; eb eb
     14899    mov ax, 00d20h                            ; b8 20 0d
     14900    jmp short 09b82h                          ; eb eb
    1494314901    or ah, 00ah                               ; 80 cc 0a
    1494414902    mov word [bp+012h], ax                    ; 89 46 12
    1494514903    mov word [bp+018h], dx                    ; 89 56 18
    14946     jmp short 09ba7h                          ; eb c2
     14904    jmp short 09b64h                          ; eb c2
    1494714905    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14948     jmp short 09ba7h                          ; eb bb
     14906    jmp short 09b64h                          ; eb bb
    1494914907    or ah, 080h                               ; 80 cc 80
    14950     jmp short 09bddh                          ; eb ec
    14951 pci16_select_reg_:                           ; 0xf9bf1 LB 0x24
     14908    jmp short 09b9ah                          ; eb ec
     14909pci16_select_reg_:                           ; 0xf9bae LB 0x24
    1495214910    push bp                                   ; 55
    1495314911    mov bp, sp                                ; 89 e5
     
    1496614924    pop bp                                    ; 5d
    1496714925    retn                                      ; c3
    14968 pci16_find_device_:                          ; 0xf9c15 LB 0xf9
     14926pci16_find_device_:                          ; 0xf9bd2 LB 0xf9
    1496914927    push bp                                   ; 55
    1497014928    mov bp, sp                                ; 89 e5
     
    1498014938    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1498114939    test bl, 007h                             ; f6 c3 07
    14982     jne short 09c5dh                          ; 75 2d
     14940    jne short 09c1ah                          ; 75 2d
    1498314941    mov dx, strict word 0000eh                ; ba 0e 00
    1498414942    mov ax, bx                                ; 89 d8
    14985     call 09bf1h                               ; e8 b9 ff
     14943    call 09baeh                               ; e8 b9 ff
    1498614944    mov dx, 00cfeh                            ; ba fe 0c
    1498714945    in AL, DX                                 ; ec
     
    1499014948    mov byte [bp-006h], al                    ; 88 46 fa
    1499114949    cmp AL, strict byte 0ffh                  ; 3c ff
    14992     jne short 09c4bh                          ; 75 06
     14950    jne short 09c08h                          ; 75 06
    1499314951    add bx, strict byte 00008h                ; 83 c3 08
    14994     jmp near 09cdeh                           ; e9 93 00
     14952    jmp near 09c9bh                           ; e9 93 00
    1499514953    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14996     je short 09c58h                           ; 74 07
     14954    je short 09c15h                           ; 74 07
    1499714955    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14998     jmp short 09c5dh                          ; eb 05
     14956    jmp short 09c1ah                          ; eb 05
    1499914957    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1500014958    mov al, byte [bp-006h]                    ; 8a 46 fa
    1500114959    and AL, strict byte 007h                  ; 24 07
    1500214960    cmp AL, strict byte 001h                  ; 3c 01
    15003     jne short 09c85h                          ; 75 1f
     14961    jne short 09c42h                          ; 75 1f
    1500414962    mov ax, bx                                ; 89 d8
    1500514963    shr ax, 008h                              ; c1 e8 08
    1500614964    test ax, ax                               ; 85 c0
    15007     jne short 09c85h                          ; 75 16
     14965    jne short 09c42h                          ; 75 16
    1500814966    mov dx, strict word 0001ah                ; ba 1a 00
    1500914967    mov ax, bx                                ; 89 d8
    15010     call 09bf1h                               ; e8 7a ff
     14968    call 09baeh                               ; e8 7a ff
    1501114969    mov dx, 00cfeh                            ; ba fe 0c
    1501214970    in AL, DX                                 ; ec
     
    1501414972    ; sub ah, ah                                ; 2a e4
    1501514973    cmp al, byte [bp-008h]                    ; 3a 46 f8
    15016     jbe short 09c85h                          ; 76 03
     14974    jbe short 09c42h                          ; 76 03
    1501714975    mov byte [bp-008h], al                    ; 88 46 f8
    1501814976    test di, di                               ; 85 ff
    15019     je short 09c8eh                           ; 74 05
     14977    je short 09c4bh                           ; 74 05
    1502014978    mov dx, strict word 00008h                ; ba 08 00
    15021     jmp short 09c90h                          ; eb 02
     14979    jmp short 09c4dh                          ; eb 02
    1502214980    xor dx, dx                                ; 31 d2
    1502314981    mov ax, bx                                ; 89 d8
    15024     call 09bf1h                               ; e8 5c ff
     14982    call 09baeh                               ; e8 5c ff
    1502514983    mov dx, 00cfch                            ; ba fc 0c
    1502614984    in eax, DX                                ; 66 ed
     
    1503314991    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1503414992    test di, di                               ; 85 ff
    15035     je short 09cbfh                           ; 74 0f
     14993    je short 09c7ch                           ; 74 0f
    1503614994    mov cx, strict word 00008h                ; b9 08 00
    1503714995    shr dx, 1                                 ; d1 ea
    1503814996    rcr ax, 1                                 ; d1 d8
    15039     loop 09cb3h                               ; e2 fa
     14997    loop 09c70h                               ; e2 fa
    1504014998    mov word [bp-00ah], ax                    ; 89 46 f6
    1504114999    mov word [bp-00ch], dx                    ; 89 56 f4
    1504215000    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1504315001    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15044     jne short 09ccfh                          ; 75 08
     15002    jne short 09c8ch                          ; 75 08
    1504515003    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1504615004    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15047     je short 09cd5h                           ; 74 06
     15005    je short 09c92h                           ; 74 06
    1504815006    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    15049     je short 09cdbh                           ; 74 06
     15007    je short 09c98h                           ; 74 06
    1505015008    dec si                                    ; 4e
    1505115009    cmp si, strict byte 0ffffh                ; 83 fe ff
    15052     je short 09cefh                           ; 74 14
     15010    je short 09cach                           ; 74 14
    1505315011    add bx, word [bp-010h]                    ; 03 5e f0
    1505415012    mov dx, bx                                ; 89 da
     
    1505715015    xor ah, ah                                ; 30 e4
    1505815016    cmp dx, ax                                ; 39 c2
    15059     jnbe short 09cefh                         ; 77 03
    15060     jmp near 09c2bh                           ; e9 3c ff
     15017    jnbe short 09cach                         ; 77 03
     15018    jmp near 09be8h                           ; e9 3c ff
    1506115019    cmp si, strict byte 0ffffh                ; 83 fe ff
    15062     jne short 09cf8h                          ; 75 04
     15020    jne short 09cb5h                          ; 75 04
    1506315021    mov ax, bx                                ; 89 d8
    15064     jmp short 09cfbh                          ; eb 03
     15022    jmp short 09cb8h                          ; eb 03
    1506515023    mov ax, strict word 0ffffh                ; b8 ff ff
    1506615024    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1506915027    pop bp                                    ; 5d
    1507015028    retn                                      ; c3
    15071     out DX, ax                                ; ef
     15029    lodsb                                     ; ac
    1507215030    popfw                                     ; 9d
    15073     or byte [bp-061e6h], bl                   ; 08 9e 1a 9e
    15074     db  02eh, 09eh
    15075     ; cs sahf                                   ; 2e 9e
    15076     inc ax                                    ; 40
     15031    lds bx, [di-06229h]                       ; c5 9d d7 9d
     15032    jmp short 09c64h                          ; eb 9d
     15033    std                                       ; fd
     15034    popfw                                     ; 9d
     15035    db  010h
    1507715036    sahf                                      ; 9e
    15078     push bx                                   ; 53
    15079     sahf                                      ; 9e
    15080 _pci16_function:                             ; 0xf9d0e LB 0x1d2
     15037_pci16_function:                             ; 0xf9ccb LB 0x1d2
    1508115038    push bp                                   ; 55
    1508215039    mov bp, sp                                ; 89 e5
     
    1509215049    xor ah, ah                                ; 30 e4
    1509315050    cmp bx, strict byte 00003h                ; 83 fb 03
    15094     jc short 09d40h                           ; 72 13
    15095     jbe short 09d93h                          ; 76 64
     15051    jc short 09cfdh                           ; 72 13
     15052    jbe short 09d50h                          ; 76 64
    1509615053    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15097     je short 09d9bh                           ; 74 67
     15054    je short 09d58h                           ; 74 67
    1509815055    cmp bx, strict byte 00008h                ; 83 fb 08
    15099     jc short 09d4ah                           ; 72 11
     15056    jc short 09d07h                           ; 72 11
    1510015057    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15101     jbe short 09d9eh                          ; 76 60
    15102     jmp short 09d4ah                          ; eb 0a
     15058    jbe short 09d5bh                          ; 76 60
     15059    jmp short 09d07h                          ; eb 0a
    1510315060    cmp bx, strict byte 00002h                ; 83 fb 02
    15104     je short 09d69h                           ; 74 24
     15061    je short 09d26h                           ; 74 24
    1510515062    cmp bx, strict byte 00001h                ; 83 fb 01
    15106     je short 09d4dh                           ; 74 03
    15107     jmp near 09each                           ; e9 5f 01
     15063    je short 09d0ah                           ; 74 03
     15064    jmp near 09e69h                           ; e9 5f 01
    1510815065    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1510915066    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1511115068    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1511215069    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15113     jmp near 09ed9h                           ; e9 70 01
     15070    jmp near 09e96h                           ; e9 70 01
    1511415071    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15115     jne short 09d75h                          ; 75 06
     15072    jne short 09d32h                          ; 75 06
    1511615073    or ah, 083h                               ; 80 cc 83
    15117     jmp near 09ed2h                           ; e9 5d 01
     15074    jmp near 09e8fh                           ; e9 5d 01
    1511815075    mov bx, word [bp+008h]                    ; 8b 5e 08
    1511915076    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1512015077    mov ax, word [bp+018h]                    ; 8b 46 18
    1512115078    xor cx, cx                                ; 31 c9
    15122     call 09c15h                               ; e8 92 fe
     15079    call 09bd2h                               ; e8 92 fe
    1512315080    cmp ax, strict word 0ffffh                ; 3d ff ff
    15124     jne short 09d95h                          ; 75 0d
     15081    jne short 09d52h                          ; 75 0d
    1512515082    mov ax, word [bp+020h]                    ; 8b 46 20
    1512615083    xor ah, ah                                ; 30 e4
    1512715084    or ah, 086h                               ; 80 cc 86
    15128     jmp near 09ed2h                           ; e9 3f 01
    15129     jmp short 09da0h                          ; eb 0b
     15085    jmp near 09e8fh                           ; e9 3f 01
     15086    jmp short 09d5dh                          ; eb 0b
    1513015087    mov word [bp+014h], ax                    ; 89 46 14
    15131     jmp near 09ed9h                           ; e9 3e 01
    15132     jmp near 09e67h                           ; e9 c9 00
    15133     jmp short 09dc5h                          ; eb 25
     15088    jmp near 09e96h                           ; e9 3e 01
     15089    jmp near 09e24h                           ; e9 c9 00
     15090    jmp short 09d82h                          ; eb 25
    1513415091    mov bx, word [bp+008h]                    ; 8b 5e 08
    1513515092    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1513615093    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1513715094    mov cx, strict word 00001h                ; b9 01 00
    15138     call 09c15h                               ; e8 66 fe
     15095    call 09bd2h                               ; e8 66 fe
    1513915096    cmp ax, strict word 0ffffh                ; 3d ff ff
    15140     jne short 09dbfh                          ; 75 0b
     15097    jne short 09d7ch                          ; 75 0b
    1514115098    mov ax, word [bp+020h]                    ; 8b 46 20
    1514215099    xor ah, ah                                ; 30 e4
    1514315100    or ah, 086h                               ; 80 cc 86
    15144     jmp near 09ed2h                           ; e9 13 01
     15101    jmp near 09e8fh                           ; e9 13 01
    1514515102    mov word [bp+014h], ax                    ; 89 46 14
    15146     jmp near 09ed9h                           ; e9 14 01
     15103    jmp near 09e96h                           ; e9 14 01
    1514715104    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15148     jc short 09dd2h                           ; 72 06
     15105    jc short 09d8fh                           ; 72 06
    1514915106    or ah, 087h                               ; 80 cc 87
    15150     jmp near 09ed2h                           ; e9 00 01
     15107    jmp near 09e8fh                           ; e9 00 01
    1515115108    mov dx, word [bp+004h]                    ; 8b 56 04
    1515215109    mov ax, word [bp+014h]                    ; 8b 46 14
    15153     call 09bf1h                               ; e8 16 fe
     15110    call 09baeh                               ; e8 16 fe
    1515415111    mov bx, word [bp+020h]                    ; 8b 5e 20
    1515515112    xor bh, bh                                ; 30 ff
    1515615113    sub bx, strict byte 00008h                ; 83 eb 08
    1515715114    cmp bx, strict byte 00005h                ; 83 fb 05
    15158     jnbe short 09e50h                         ; 77 68
     15115    jnbe short 09e0dh                         ; 77 68
    1515915116    add bx, bx                                ; 01 db
    15160     jmp word [cs:bx-062feh]                   ; 2e ff a7 02 9d
     15117    jmp word [cs:bx-06341h]                   ; 2e ff a7 bf 9c
    1516115118    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1516215119    xor bl, bl                                ; 30 db
     
    1516915126    or bx, ax                                 ; 09 c3
    1517015127    mov word [bp+01ch], bx                    ; 89 5e 1c
    15171     jmp short 09e50h                          ; eb 48
     15128    jmp short 09e0dh                          ; eb 48
    1517215129    mov dx, word [bp+004h]                    ; 8b 56 04
    1517315130    xor dh, dh                                ; 30 f6
     
    1517615133    in ax, DX                                 ; ed
    1517715134    mov word [bp+01ch], ax                    ; 89 46 1c
    15178     jmp short 09e50h                          ; eb 36
     15135    jmp short 09e0dh                          ; eb 36
    1517915136    mov dx, 00cfch                            ; ba fc 0c
    1518015137    in eax, DX                                ; 66 ed
     
    1518515142    mov word [bp+01ch], ax                    ; 89 46 1c
    1518615143    mov word [bp+01eh], dx                    ; 89 56 1e
    15187     jmp short 09e50h                          ; eb 22
     15144    jmp short 09e0dh                          ; eb 22
    1518815145    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1518915146    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1519215149    add dx, 00cfch                            ; 81 c2 fc 0c
    1519315150    out DX, AL                                ; ee
    15194     jmp short 09e50h                          ; eb 10
     15151    jmp short 09e0dh                          ; eb 10
    1519515152    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1519615153    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1519915156    add dx, 00cfch                            ; 81 c2 fc 0c
    1520015157    out DX, ax                                ; ef
    15201     jmp near 09ed9h                           ; e9 86 00
     15158    jmp near 09e96h                           ; e9 86 00
    1520215159    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1520315160    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1520815165    ; mov ax, cx                                ; 8b c1
    1520915166    out DX, eax                               ; 66 ef
    15210     jmp short 09ed9h                          ; eb 72
     15167    jmp short 09e96h                          ; eb 72
    1521115168    mov bx, word [bp+004h]                    ; 8b 5e 04
    1521215169    mov es, [bp+026h]                         ; 8e 46 26
     
    1521515172    mov cx, word [0f380h]                     ; 8b 0e 80 f3
    1521615173    cmp cx, word [es:bx]                      ; 26 3b 0f
    15217     jbe short 09e8dh                          ; 76 11
     15174    jbe short 09e4ah                          ; 76 11
    1521815175    mov ax, word [bp+020h]                    ; 8b 46 20
    1521915176    xor ah, ah                                ; 30 e4
     
    1522115178    mov word [bp+020h], ax                    ; 89 46 20
    1522215179    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15223     jmp short 09ea1h                          ; eb 14
     15180    jmp short 09e5eh                          ; eb 14
    1522415181    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1522515182    mov si, 0f1a0h                            ; be a0 f1
     
    1523315190    les bx, [bp-008h]                         ; c4 5e f8
    1523415191    mov word [es:bx], ax                      ; 26 89 07
    15235     jmp short 09ed9h                          ; eb 2d
    15236     mov bx, 00e02h                            ; bb 02 0e
     15192    jmp short 09e96h                          ; eb 2d
     15193    mov bx, 00da6h                            ; bb a6 0d
    1523715194    mov cx, ds                                ; 8c d9
    1523815195    mov ax, strict word 00004h                ; b8 04 00
    15239     call 01923h                               ; e8 6c 7a
     15196    call 01923h                               ; e8 af 7a
    1524015197    mov ax, word [bp+014h]                    ; 8b 46 14
    1524115198    push ax                                   ; 50
    1524215199    mov ax, word [bp+020h]                    ; 8b 46 20
    1524315200    push ax                                   ; 50
    15244     push 00dbeh                               ; 68 be 0d
     15201    push 00d5ch                               ; 68 5c 0d
    1524515202    push strict byte 00004h                   ; 6a 04
    15246     call 01966h                               ; e8 9f 7a
     15203    call 01966h                               ; e8 e2 7a
    1524715204    add sp, strict byte 00008h                ; 83 c4 08
    1524815205    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1525615213    pop bp                                    ; 5d
    1525715214    retn                                      ; c3
    15258 pci_find_classcode_:                         ; 0xf9ee0 LB 0x8
     15215pci_find_classcode_:                         ; 0xf9e9d LB 0x8
    1525915216    push bp                                   ; 55
    1526015217    mov bp, sp                                ; 89 e5
     
    1526215219    pop bp                                    ; 5d
    1526315220    retn                                      ; c3
    15264 pci_find_device_:                            ; 0xf9ee8 LB 0x23
     15221pci_find_device_:                            ; 0xf9ea5 LB 0x23
    1526515222    push bp                                   ; 55
    1526615223    mov bp, sp                                ; 89 e5
     
    1527415231    int 01ah                                  ; cd 1a
    1527515232    cmp ah, 000h                              ; 80 fc 00
    15276     je short 09f01h                           ; 74 03
     15233    je short 09ebeh                           ; 74 03
    1527715234    mov bx, strict word 0ffffh                ; bb ff ff
    1527815235    mov ax, bx                                ; 89 d8
     
    1528315240    pop bp                                    ; 5d
    1528415241    retn                                      ; c3
    15285 pci_read_config_byte_:                       ; 0xf9f0b LB 0x2e
     15242pci_read_config_byte_:                       ; 0xf9ec8 LB 0x2e
    1528615243    push bp                                   ; 55
    1528715244    mov bp, sp                                ; 89 e5
     
    1530915266    pop bp                                    ; 5d
    1531015267    retn                                      ; c3
    15311 pci_read_config_word_:                       ; 0xf9f39 LB 0x2a
     15268pci_read_config_word_:                       ; 0xf9ef6 LB 0x2a
    1531215269    push bp                                   ; 55
    1531315270    mov bp, sp                                ; 89 e5
     
    1533315290    pop bp                                    ; 5d
    1533415291    retn                                      ; c3
    15335 pci_read_config_dword_:                      ; 0xf9f63 LB 0x4e
     15292pci_read_config_dword_:                      ; 0xf9f20 LB 0x4e
    1533615293    push bp                                   ; 55
    1533715294    mov bp, sp                                ; 89 e5
     
    1535515312    int 01ah                                  ; cd 1a
    1535615313    test cx, cx                               ; 85 c9
    15357     jne short 09fa2h                          ; 75 14
     15314    jne short 09f5fh                          ; 75 14
    1535815315    mov al, byte [bp-006h]                    ; 8a 46 fa
    1535915316    xor ah, ah                                ; 30 e4
     
    1536515322    int 01ah                                  ; cd 1a
    1536615323    test cx, cx                               ; 85 c9
    15367     je short 09fa7h                           ; 74 05
     15324    je short 09f64h                           ; 74 05
    1536815325    mov ax, strict word 00001h                ; b8 01 00
    15369     jmp short 09fa9h                          ; eb 02
     15326    jmp short 09f66h                          ; eb 02
    1537015327    xor ax, ax                                ; 31 c0
    1537115328    cwd                                       ; 99
     
    1537515332    pop bp                                    ; 5d
    1537615333    retn                                      ; c3
    15377 pci_write_config_word_:                      ; 0xf9fb1 LB 0x25
     15334pci_write_config_word_:                      ; 0xf9f6e LB 0x25
    1537815335    push bp                                   ; 55
    1537915336    mov bp, sp                                ; 89 e5
     
    1539515352    pop bp                                    ; 5d
    1539615353    retn                                      ; c3
    15397 vds_is_present_:                             ; 0xf9fd6 LB 0x1d
     15354vds_is_present_:                             ; 0xf9f93 LB 0x1d
    1539815355    push bx                                   ; 53
    1539915356    push bp                                   ; 55
     
    1540315360    mov es, ax                                ; 8e c0
    1540415361    test byte [es:bx], 020h                   ; 26 f6 07 20
    15405     je short 09feeh                           ; 74 06
     15362    je short 09fabh                           ; 74 06
    1540615363    mov ax, strict word 00001h                ; b8 01 00
    1540715364    pop bp                                    ; 5d
     
    1541215369    pop bx                                    ; 5b
    1541315370    retn                                      ; c3
    15414 vds_real_to_lin_:                            ; 0xf9ff3 LB 0x1e
     15371vds_real_to_lin_:                            ; 0xf9fb0 LB 0x1e
    1541515372    push bx                                   ; 53
    1541615373    push cx                                   ; 51
     
    1542315380    sal ax, 1                                 ; d1 e0
    1542415381    rcl dx, 1                                 ; d1 d2
    15425     loop 0a001h                               ; e2 fa
     15382    loop 09fbeh                               ; e2 fa
    1542615383    xor cx, cx                                ; 31 c9
    1542715384    add ax, bx                                ; 01 d8
     
    1543115388    pop bx                                    ; 5b
    1543215389    retn                                      ; c3
    15433 vds_build_sg_list_:                          ; 0xfa011 LB 0x77
     15390vds_build_sg_list_:                          ; 0xf9fce LB 0x77
    1543415391    push bp                                   ; 55
    1543515392    mov bp, sp                                ; 89 e5
     
    1544515402    mov bx, word [bp+006h]                    ; 8b 5e 06
    1544615403    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15447     call 09ff3h                               ; e8 c3 ff
     15404    call 09fb0h                               ; e8 c3 ff
    1544815405    mov es, si                                ; 8e c6
    1544915406    mov word [es:di+004h], ax                 ; 26 89 45 04
    1545015407    mov word [es:di+006h], dx                 ; 26 89 55 06
    1545115408    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15452     call 09fd6h                               ; e8 93 ff
     15409    call 09f93h                               ; e8 93 ff
    1545315410    test ax, ax                               ; 85 c0
    15454     je short 0a058h                           ; 74 11
     15411    je short 0a015h                           ; 74 11
    1545515412    mov es, si                                ; 8e c6
    1545615413    mov ax, 08105h                            ; b8 05 81
    1545715414    mov dx, strict word 00000h                ; ba 00 00
    1545815415    int 04bh                                  ; cd 4b
    15459     jc short 0a055h                           ; 72 02
     15416    jc short 0a012h                           ; 72 02
    1546015417    db  032h, 0c0h
    1546115418    ; xor al, al                                ; 32 c0
    1546215419    cbw                                       ; 98
    15463     jmp short 0a07fh                          ; eb 27
     15420    jmp short 0a03ch                          ; eb 27
    1546415421    mov es, si                                ; 8e c6
    1546515422    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1547815435    pop bp                                    ; 5d
    1547915436    retn 00004h                               ; c2 04 00
    15480 vds_free_sg_list_:                           ; 0xfa088 LB 0x38
     15437vds_free_sg_list_:                           ; 0xfa045 LB 0x3b
    1548115438    push bp                                   ; 55
    1548215439    mov bp, sp                                ; 89 e5
     
    1548415441    push di                                   ; 57
    1548515442    mov bx, ax                                ; 89 c3
    15486     call 09fd6h                               ; e8 44 ff
     15443    call 09f93h                               ; e8 44 ff
    1548715444    test ax, ax                               ; 85 c0
    15488     je short 0a0a7h                           ; 74 11
     15445    je short 0a064h                           ; 74 11
    1548915446    mov di, bx                                ; 89 df
    1549015447    mov es, dx                                ; 8e c2
     
    1549215449    mov dx, strict word 00000h                ; ba 00 00
    1549315450    int 04bh                                  ; cd 4b
    15494     jc short 0a0a6h                           ; 72 02
     15451    jc short 0a063h                           ; 72 02
    1549515452    db  032h, 0c0h
    1549615453    ; xor al, al                                ; 32 c0
     
    1550315460    pop bp                                    ; 5d
    1550415461    retn                                      ; c3
    15505     times 0xa db 0
    15506 __U4M:                                       ; 0xfa0c0 LB 0x20
     15462    times 0xd db 0
     15463__U4M:                                       ; 0xfa080 LB 0x20
    1550715464    pushfw                                    ; 9c
    1550815465    push si                                   ; 56
     
    1553115488    retn                                      ; c3
    1553215489    times 0x4 db 0
    15533 __U4D:                                       ; 0xfa0e0 LB 0x30
     15490__U4D:                                       ; 0xfa0a0 LB 0x30
    1553415491    pushfw                                    ; 9c
    1553515492    push DS                                   ; 1e
     
    1554615503    push dx                                   ; 52
    1554715504    push ax                                   ; 50
    15548     call 0a1c5h                               ; e8 d0 00
     15505    call 0a185h                               ; e8 d0 00
    1554915506    mov cx, word [bp-002h]                    ; 8b 4e fe
    1555015507    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1555715514    retn                                      ; c3
    1555815515    times 0xe db 0
    15559 __U8RS:                                      ; 0xfa110 LB 0x10
     15516__U8RS:                                      ; 0xfa0d0 LB 0x10
    1556015517    test si, si                               ; 85 f6
    15561     je short 0a11fh                           ; 74 0b
     15518    je short 0a0dfh                           ; 74 0b
    1556215519    shr ax, 1                                 ; d1 e8
    1556315520    rcr bx, 1                                 ; d1 db
     
    1556515522    rcr dx, 1                                 ; d1 da
    1556615523    dec si                                    ; 4e
    15567     jne short 0a114h                          ; 75 f5
     15524    jne short 0a0d4h                          ; 75 f5
    1556815525    retn                                      ; c3
    15569 __U8LS:                                      ; 0xfa120 LB 0x10
     15526__U8LS:                                      ; 0xfa0e0 LB 0x10
    1557015527    test si, si                               ; 85 f6
    15571     je short 0a12fh                           ; 74 0b
     15528    je short 0a0efh                           ; 74 0b
    1557215529    sal dx, 1                                 ; d1 e2
    1557315530    rcl cx, 1                                 ; d1 d1
     
    1557515532    rcl ax, 1                                 ; d1 d0
    1557615533    dec si                                    ; 4e
    15577     jne short 0a124h                          ; 75 f5
     15534    jne short 0a0e4h                          ; 75 f5
    1557815535    retn                                      ; c3
    15579 _fmemset_:                                   ; 0xfa130 LB 0x10
     15536_fmemset_:                                   ; 0xfa0f0 LB 0x10
    1558015537    push di                                   ; 57
    1558115538    mov es, dx                                ; 8e c2
     
    1558815545    retn                                      ; c3
    1558915546    times 0x3 db 0
    15590 _fmemcpy_:                                   ; 0xfa140 LB 0x3a
     15547_fmemcpy_:                                   ; 0xfa100 LB 0x3a
    1559115548    push bp                                   ; 55
    1559215549    db  08bh, 0ech
     
    1561315570    add byte [bx+si], al                      ; 00 00
    1561415571    add byte [bx+si], al                      ; 00 00
    15615     nop                                       ; 90
    15616     mov ax, word [0a192h]                     ; a1 92 a1
    15617     xchg si, ax                               ; 96
    15618     mov ax, word [0a196h]                     ; a1 96 a1
    15619     xchg si, ax                               ; 96
    15620     mov ax, word [0a198h]                     ; a1 98 a1
    15621     cbw                                       ; 98
    15622     mov ax, word [0a19ah]                     ; a1 9a a1
    15623     sahf                                      ; 9e
    15624     mov ax, word [0a19eh]                     ; a1 9e a1
    15625     mov AL, byte [0a5a1h]                     ; a0 a1 a5
    15626     mov ax, word [0a1a7h]                     ; a1 a7 a1
    15627 apm_worker:                                  ; 0xfa17a LB 0x3a
     15572    push ax                                   ; 50
     15573    mov ax, word [0a152h]                     ; a1 52 a1
     15574    push si                                   ; 56
     15575    mov ax, word [0a156h]                     ; a1 56 a1
     15576    push si                                   ; 56
     15577    mov ax, word [0a158h]                     ; a1 58 a1
     15578    pop ax                                    ; 58
     15579    mov ax, word [0a15ah]                     ; a1 5a a1
     15580    pop si                                    ; 5e
     15581    mov ax, word [0a15eh]                     ; a1 5e a1
     15582    pushaw                                    ; 60
     15583    mov ax, word [0a165h]                     ; a1 65 a1
     15584    db  067h
     15585    db  0a1h
     15586apm_worker:                                  ; 0xfa13a LB 0x3a
    1562815587    sti                                       ; fb
    1562915588    push ax                                   ; 50
     
    1563715596    pop ax                                    ; 58
    1563815597    mov AH, strict byte 053h                  ; b4 53
    15639     jnc short 0a1b0h                          ; 73 25
    15640     jmp word [cs:bp-05ea0h]                   ; 2e ff a6 60 a1
    15641     jmp short 0a1aeh                          ; eb 1c
     15598    jnc short 0a170h                          ; 73 25
     15599    jmp word [cs:bp-05ee0h]                   ; 2e ff a6 20 a1
     15600    jmp short 0a16eh                          ; eb 1c
    1564215601    sti                                       ; fb
    1564315602    hlt                                       ; f4
    15644     jmp short 0a1aeh                          ; eb 18
    15645     jmp short 0a1aeh                          ; eb 16
    15646     jmp short 0a1b0h                          ; eb 16
     15603    jmp short 0a16eh                          ; eb 18
     15604    jmp short 0a16eh                          ; eb 16
     15605    jmp short 0a170h                          ; eb 16
    1564715606    mov AH, strict byte 080h                  ; b4 80
    15648     jmp short 0a1b2h                          ; eb 14
    15649     jmp short 0a1b0h                          ; eb 10
     15607    jmp short 0a172h                          ; eb 14
     15608    jmp short 0a170h                          ; eb 10
    1565015609    mov ax, 00102h                            ; b8 02 01
    15651     jmp short 0a1aeh                          ; eb 09
    15652     jmp short 0a1aeh                          ; eb 07
     15610    jmp short 0a16eh                          ; eb 09
     15611    jmp short 0a16eh                          ; eb 07
    1565315612    mov BL, strict byte 000h                  ; b3 00
    1565415613    mov cx, strict word 00000h                ; b9 00 00
    15655     jmp short 0a1aeh                          ; eb 00
     15614    jmp short 0a16eh                          ; eb 00
    1565615615    clc                                       ; f8
    1565715616    retn                                      ; c3
     
    1565915618    stc                                       ; f9
    1566015619    retn                                      ; c3
    15661 apm_pm16_entry:                              ; 0xfa1b4 LB 0x11
     15620apm_pm16_entry:                              ; 0xfa174 LB 0x11
    1566215621    mov AH, strict byte 002h                  ; b4 02
    1566315622    push DS                                   ; 1e
     
    1566715626    add bp, strict byte 00008h                ; 83 c5 08
    1566815627    mov ds, bp                                ; 8e dd
    15669     call 0a17ah                               ; e8 b8 ff
     15628    call 0a13ah                               ; e8 b8 ff
    1567015629    pop bp                                    ; 5d
    1567115630    pop DS                                    ; 1f
    1567215631    retf                                      ; cb
    15673 _DoUInt32Div:                                ; 0xfa1c5 LB 0x26b
     15632_DoUInt32Div:                                ; 0xfa185 LB 0x26b
    1567415633    push bp                                   ; 55
    1567515634    mov bp, sp                                ; 89 e5
     
    1568915648    mov [bp-006h], ds                         ; 8c 5e fa
    1569015649    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15691     jne short 0a215h                          ; 75 22
     15650    jne short 0a1d5h                          ; 75 22
    1569215651    mov ax, word [bx]                         ; 8b 07
    1569315652    test ax, ax                               ; 85 c0
    15694     je short 0a212h                           ; 74 19
     15653    je short 0a1d2h                           ; 74 19
    1569515654    cmp ax, strict word 00001h                ; 3d 01 00
    15696     jne short 0a215h                          ; 75 17
     15655    jne short 0a1d5h                          ; 75 17
    1569715656    xor ax, ax                                ; 31 c0
    1569815657    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1570215661    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1570315662    mov word [bp+006h], ax                    ; 89 46 06
    15704     jmp near 0a41dh                           ; e9 08 02
     15663    jmp near 0a3ddh                           ; e9 08 02
    1570515664    lds bx, [bp-00ch]                         ; c5 5e f4
    1570615665    mov ax, word [bx+002h]                    ; 8b 47 02
    1570715666    mov ds, [bp-006h]                         ; 8e 5e fa
    1570815667    cmp ax, word [si+002h]                    ; 3b 44 02
    15709     je short 0a23bh                           ; 74 18
     15668    je short 0a1fbh                           ; 74 18
    1571015669    mov ds, [bp-00ah]                         ; 8e 5e f6
    1571115670    mov ax, word [bx+002h]                    ; 8b 47 02
    1571215671    mov ds, [bp-006h]                         ; 8e 5e fa
    1571315672    cmp ax, word [si+002h]                    ; 3b 44 02
    15714     jbe short 0a236h                          ; 76 05
     15673    jbe short 0a1f6h                          ; 76 05
    1571515674    mov ax, strict word 00001h                ; b8 01 00
    15716     jmp short 0a25ch                          ; eb 26
     15675    jmp short 0a21ch                          ; eb 26
    1571715676    mov ax, strict word 0ffffh                ; b8 ff ff
    15718     jmp short 0a25ch                          ; eb 21
     15677    jmp short 0a21ch                          ; eb 21
    1571915678    mov ds, [bp-00ah]                         ; 8e 5e f6
    1572015679    mov ax, word [bx]                         ; 8b 07
    1572115680    mov ds, [bp-006h]                         ; 8e 5e fa
    1572215681    cmp ax, word [si]                         ; 3b 04
    15723     je short 0a25ah                           ; 74 13
     15682    je short 0a21ah                           ; 74 13
    1572415683    mov ds, [bp-00ah]                         ; 8e 5e f6
    1572515684    mov ax, word [bx]                         ; 8b 07
    1572615685    mov ds, [bp-006h]                         ; 8e 5e fa
    1572715686    cmp ax, word [si]                         ; 3b 04
    15728     jbe short 0a255h                          ; 76 02
    15729     jmp short 0a231h                          ; eb dc
     15687    jbe short 0a215h                          ; 76 02
     15688    jmp short 0a1f1h                          ; eb dc
    1573015689    mov ax, strict word 0ffffh                ; b8 ff ff
    15731     jmp short 0a25ch                          ; eb 02
     15690    jmp short 0a21ch                          ; eb 02
    1573215691    xor ax, ax                                ; 31 c0
    1573315692    test ax, ax                               ; 85 c0
    15734     jnl short 0a27eh                          ; 7d 1e
     15693    jnl short 0a23eh                          ; 7d 1e
    1573515694    lds bx, [bp-00ch]                         ; c5 5e f4
    1573615695    mov ax, word [bx]                         ; 8b 07
     
    1574215701    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1574315702    mov word [bx], strict word 00000h         ; c7 07 00 00
    15744     jmp short 0a212h                          ; eb 94
    15745     jne short 0a295h                          ; 75 15
     15703    jmp short 0a1d2h                          ; eb 94
     15704    jne short 0a255h                          ; 75 15
    1574615705    mov ds, [bp-008h]                         ; 8e 5e f8
    1574715706    mov word [di+002h], ax                    ; 89 45 02
     
    1575015709    mov word [bx], strict word 00001h         ; c7 07 01 00
    1575115710    mov word [bx+002h], ax                    ; 89 47 02
    15752     jmp near 0a41dh                           ; e9 88 01
     15711    jmp near 0a3ddh                           ; e9 88 01
    1575315712    lds bx, [bp-00ch]                         ; c5 5e f4
    1575415713    mov ax, word [bx+002h]                    ; 8b 47 02
    1575515714    test ax, ax                               ; 85 c0
    15756     je short 0a2b0h                           ; 74 11
     15715    je short 0a270h                           ; 74 11
    1575715716    push ax                                   ; 50
    1575815717    mov ax, 0f000h                            ; b8 00 f0
    1575915718    mov ds, ax                                ; 8e d8
    15760     call 0a430h                               ; e8 88 01
     15719    call 0a3f0h                               ; e8 88 01
    1576115720    add sp, strict byte 00002h                ; 83 c4 02
    1576215721    add ax, strict word 00010h                ; 05 10 00
    15763     jmp short 0a2bdh                          ; eb 0d
     15722    jmp short 0a27dh                          ; eb 0d
    1576415723    push word [bx]                            ; ff 37
    1576515724    mov ax, 0f000h                            ; b8 00 f0
    1576615725    mov ds, ax                                ; 8e d8
    15767     call 0a430h                               ; e8 76 01
     15726    call 0a3f0h                               ; e8 76 01
    1576815727    add sp, strict byte 00002h                ; 83 c4 02
    1576915728    mov word [bp-014h], ax                    ; 89 46 ec
     
    1577115730    mov ax, word [si+002h]                    ; 8b 44 02
    1577215731    test ax, ax                               ; 85 c0
    15773     je short 0a2dbh                           ; 74 11
     15732    je short 0a29bh                           ; 74 11
    1577415733    push ax                                   ; 50
    1577515734    mov ax, 0f000h                            ; b8 00 f0
    1577615735    mov ds, ax                                ; 8e d8
    15777     call 0a430h                               ; e8 5d 01
     15736    call 0a3f0h                               ; e8 5d 01
    1577815737    add sp, strict byte 00002h                ; 83 c4 02
    1577915738    add ax, strict word 00010h                ; 05 10 00
    15780     jmp short 0a2e8h                          ; eb 0d
     15739    jmp short 0a2a8h                          ; eb 0d
    1578115740    push word [si]                            ; ff 34
    1578215741    mov ax, 0f000h                            ; b8 00 f0
    1578315742    mov ds, ax                                ; 8e d8
    15784     call 0a430h                               ; e8 4b 01
     15743    call 0a3f0h                               ; e8 4b 01
    1578515744    add sp, strict byte 00002h                ; 83 c4 02
    1578615745    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1579315752    mov word [bp-016h], ax                    ; 89 46 ea
    1579415753    test dx, dx                               ; 85 d2
    15795     je short 0a358h                           ; 74 56
     15754    je short 0a318h                           ; 74 56
    1579615755    mov cx, dx                                ; 89 d1
    1579715756    xor ch, dh                                ; 30 f5
     
    1579915758    mov ax, word [si]                         ; 8b 04
    1580015759    mov dx, word [si+002h]                    ; 8b 54 02
    15801     jcxz 0a316h                               ; e3 06
     15760    jcxz 0a2d6h                               ; e3 06
    1580215761    sal ax, 1                                 ; d1 e0
    1580315762    rcl dx, 1                                 ; d1 d2
    15804     loop 0a310h                               ; e2 fa
     15763    loop 0a2d0h                               ; e2 fa
    1580515764    mov word [bp-018h], ax                    ; 89 46 e8
    1580615765    mov word [bp-016h], dx                    ; 89 56 ea
     
    1580815767    lds bx, [bp-00ch]                         ; c5 5e f4
    1580915768    cmp ax, word [bx+002h]                    ; 3b 47 02
    15810     jnbe short 0a336h                         ; 77 0f
     15769    jnbe short 0a2f6h                         ; 77 0f
    1581115770    mov ax, word [bp-016h]                    ; 8b 46 ea
    1581215771    cmp ax, word [bx+002h]                    ; 3b 47 02
    15813     jne short 0a33ah                          ; 75 0b
     15772    jne short 0a2fah                          ; 75 0b
    1581415773    mov ax, word [bp-018h]                    ; 8b 46 e8
    1581515774    cmp ax, word [bx]                         ; 3b 07
    15816     jbe short 0a33ah                          ; 76 04
     15775    jbe short 0a2fah                          ; 76 04
    1581715776    mov AL, strict byte 001h                  ; b0 01
    15818     jmp short 0a33ch                          ; eb 02
     15777    jmp short 0a2fch                          ; eb 02
    1581915778    xor al, al                                ; 30 c0
    1582015779    test al, al                               ; 84 c0
    15821     je short 0a363h                           ; 74 23
     15780    je short 0a323h                           ; 74 23
    1582215781    shr word [bp-016h], 1                     ; d1 6e ea
    1582315782    rcr word [bp-018h], 1                     ; d1 5e e8
    1582415783    dec word [bp-012h]                        ; ff 4e ee
    15825     jmp short 0a363h                          ; eb 18
     15784    jmp short 0a323h                          ; eb 18
    1582615785    mov cx, strict word 0001fh                ; b9 1f 00
    1582715786    sal word [bp-018h], 1                     ; d1 66 e8
    1582815787    rcl word [bp-016h], 1                     ; d1 56 ea
    15829     loop 0a34eh                               ; e2 f8
    15830     jmp short 0a346h                          ; eb ee
     15788    loop 0a30eh                               ; e2 f8
     15789    jmp short 0a306h                          ; eb ee
    1583115790    mov ax, word [si]                         ; 8b 04
    1583215791    mov word [bp-018h], ax                    ; 89 46 e8
     
    1584515804    mov ds, [bp-006h]                         ; 8e 5e fa
    1584615805    cmp ax, word [si+002h]                    ; 3b 44 02
    15847     jnbe short 0a38fh                         ; 77 06
    15848     jne short 0a393h                          ; 75 08
     15806    jnbe short 0a34fh                         ; 77 06
     15807    jne short 0a353h                          ; 75 08
    1584915808    cmp dx, word [si]                         ; 3b 14
    15850     jc short 0a393h                           ; 72 04
     15809    jc short 0a353h                           ; 72 04
    1585115810    mov AL, strict byte 001h                  ; b0 01
    15852     jmp short 0a395h                          ; eb 02
     15811    jmp short 0a355h                          ; eb 02
    1585315812    xor al, al                                ; 30 c0
    1585415813    test al, al                               ; 84 c0
    15855     je short 0a3fah                           ; 74 61
     15814    je short 0a3bah                           ; 74 61
    1585615815    mov ds, [bp-008h]                         ; 8e 5e f8
    1585715816    mov ax, word [di+002h]                    ; 8b 45 02
    1585815817    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15859     jnbe short 0a3b0h                         ; 77 0c
     15818    jnbe short 0a370h                         ; 77 0c
    1586015819    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15861     jne short 0a3b4h                          ; 75 0b
     15820    jne short 0a374h                          ; 75 0b
    1586215821    mov ax, word [di]                         ; 8b 05
    1586315822    cmp ax, word [bp-018h]                    ; 3b 46 e8
    15864     jc short 0a3b4h                           ; 72 04
     15823    jc short 0a374h                           ; 72 04
    1586515824    mov AL, strict byte 001h                  ; b0 01
    15866     jmp short 0a3b6h                          ; eb 02
     15825    jmp short 0a376h                          ; eb 02
    1586715826    xor al, al                                ; 30 c0
    1586815827    test al, al                               ; 84 c0
    15869     je short 0a3e0h                           ; 74 26
     15828    je short 0a3a0h                           ; 74 26
    1587015829    mov ax, word [bp-018h]                    ; 8b 46 e8
    1587115830    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1587615835    xor dx, dx                                ; 31 d2
    1587715836    mov cx, word [bp-012h]                    ; 8b 4e ee
    15878     jcxz 0a3d8h                               ; e3 06
     15837    jcxz 0a398h                               ; e3 06
    1587915838    sal ax, 1                                 ; d1 e0
    1588015839    rcl dx, 1                                 ; d1 d2
    15881     loop 0a3d2h                               ; e2 fa
     15840    loop 0a392h                               ; e2 fa
    1588215841    lds bx, [bp-010h]                         ; c5 5e f0
    1588315842    or word [bx], ax                          ; 09 07
     
    1588815847    mov ds, [bp-006h]                         ; 8e 5e fa
    1588915848    cmp ax, word [si+002h]                    ; 3b 44 02
    15890     jc short 0a3f6h                           ; 72 06
    15891     jne short 0a3fch                          ; 75 0a
     15849    jc short 0a3b6h                           ; 72 06
     15850    jne short 0a3bch                          ; 75 0a
    1589215851    cmp dx, word [si]                         ; 3b 14
    15893     jnc short 0a3fch                          ; 73 06
     15852    jnc short 0a3bch                          ; 73 06
    1589415853    mov AL, strict byte 001h                  ; b0 01
    15895     jmp short 0a3feh                          ; eb 04
    15896     jmp short 0a41dh                          ; eb 21
     15854    jmp short 0a3beh                          ; eb 04
     15855    jmp short 0a3ddh                          ; eb 21
    1589715856    xor al, al                                ; 30 c0
    1589815857    test al, al                               ; 84 c0
    15899     je short 0a411h                           ; 74 0f
    15900     jmp short 0a41dh                          ; eb 19
     15858    je short 0a3d1h                           ; 74 0f
     15859    jmp short 0a3ddh                          ; eb 19
    1590115860    mov cx, strict word 0001fh                ; b9 1f 00
    1590215861    sal word [bp-018h], 1                     ; d1 66 e8
    1590315862    rcl word [bp-016h], 1                     ; d1 56 ea
    15904     loop 0a407h                               ; e2 f8
    15905     jmp short 0a417h                          ; eb 06
     15863    loop 0a3c7h                               ; e2 f8
     15864    jmp short 0a3d7h                          ; eb 06
    1590615865    shr word [bp-016h], 1                     ; d1 6e ea
    1590715866    rcr word [bp-018h], 1                     ; d1 5e e8
    1590815867    dec word [bp-012h]                        ; ff 4e ee
    15909     jmp near 0a399h                           ; e9 7c ff
     15868    jmp near 0a359h                           ; e9 7c ff
    1591015869    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1591115870    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1591615875    retn                                      ; c3
    1591715876    times 0x6 db 0
    15918 _ASMBitLastSetU16:                           ; 0xfa430 LB 0x18
     15877_ASMBitLastSetU16:                           ; 0xfa3f0 LB 0x18
    1591915878    push bp                                   ; 55
    1592015879    db  08bh, 0ech
     
    1592215881    mov cx, word [bp+004h]                    ; 8b 4e 04
    1592315882    test cx, cx                               ; 85 c9
    15924     je short 0a444h                           ; 74 0a
     15883    je short 0a404h                           ; 74 0a
    1592515884    mov ax, strict word 00010h                ; b8 10 00
    1592615885    sal cx, 1                                 ; d1 e1
    15927     jc short 0a446h                           ; 72 05
     15886    jc short 0a406h                           ; 72 05
    1592815887    dec ax                                    ; 48
    15929     jmp short 0a43dh                          ; eb f9
     15888    jmp short 0a3fdh                          ; eb f9
    1593015889    db  033h, 0c0h
    1593115890    ; xor ax, ax                                ; 33 c0
     
    1593315892    retn                                      ; c3
    1593415893
    15935   ; Padding 0x35b8 bytes at 0xfa448
    15936   times 13752 db 0
     15894  ; Padding 0x35f8 bytes at 0xfa408
     15895  times 13816 db 0
    1593715896
    1593815897section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1598115940    add bp, strict byte 00008h                ; 83 c5 08
    1598215941    push ebp                                  ; 66 55
    15983     mov bp, 0a1b6h                            ; bd b6 a1
     15942    mov bp, 0a176h                            ; bd 76 a1
    1598415943    add byte [bx+si], al                      ; 00 00
    1598515944    push ebp                                  ; 66 55
     
    1670716666    call 01c9fh                               ; e8 63 39
    1670816667    call 02118h                               ; e8 d9 3d
    16709     call 0998bh                               ; e8 49 b6
    16710     call 087fbh                               ; e8 b6 a4
     16668    call 09948h                               ; e8 06 b6
     16669    call 087b8h                               ; e8 73 a4
    1671116670    call 0ed2fh                               ; e8 e7 09
    1671216671    call 0e2d2h                               ; e8 87 ff
     
    1685616815    out strict byte 0a1h, AL                  ; e6 a1
    1685716816    retn                                      ; c3
    16858 ebda_post:                                   ; 0xfe778 LB 0x45
     16817ebda_post:                                   ; 0xfe778 LB 0x51
    1685916818    mov ax, 0e746h                            ; b8 46 e7
    1686016819    mov word [00034h], ax                     ; a3 34 00
     
    1687016829    mov word [001cah], ax                     ; a3 ca 01
    1687116830    mov ax, 0e746h                            ; b8 46 e7
     16831    mov word [001cch], ax                     ; a3 cc 01
     16832    mov ax, 0f000h                            ; b8 00 f0
     16833    mov word [001ceh], ax                     ; a3 ce 01
     16834    mov ax, 0e746h                            ; b8 46 e7
    1687216835    mov word [001dch], ax                     ; a3 dc 01
    1687316836    mov ax, 0f000h                            ; b8 00 f0
     
    1688116844    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
    1688216845    retn                                      ; c3
    16883 biosorg_check_before_or_at_0E82Ch:           ; 0xfe7bd LB 0x71
    16884     times 0x6f db 0
     16846biosorg_check_before_or_at_0E82Ch:           ; 0xfe7c9 LB 0x65
     16847    times 0x63 db 0
    1688516848    db  'XM'
    1688616849biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x3d
     
    1754117504    popfw                                     ; 9d
    1754217505    jmp short 0f8a5h                          ; eb 11
    17543     call 09afeh                               ; e8 67 a2
     17506    call 09abbh                               ; e8 24 a2
    1754417507    jmp short 0f88eh                          ; eb f5
    1754517508int15_handler_mouse:                         ; 0xff899 LB 0x5
     
    1780717770cpu_reset:                                   ; 0xffff0 LB 0x10
    1780817771    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17809     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 00fh
     17772    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03dh
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum

    r67807 r68290  
    1 0aa9c82df689a029ef3c0dd6eb7cfba6 *VBoxPcBios286.rom
     1854cf294cb1f7c54bf62169e4fb5a30b *VBoxPcBios286.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm

    r67807 r68290  
    951951    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    952952_pktacc:                                     ; 0xf006a LB 0xc
    953     db  000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 01ah, 082h, 0c8h, 091h
     953    db  000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 01ah, 082h, 089h, 091h
    954954_softrst:                                    ; 0xf0076 LB 0xc
    955955    db  000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0b6h, 03ch, 0b6h, 03ch
    956956_dskacc:                                     ; 0xf0082 LB 0x2e
    957957    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h
    958     db  064h, 080h, 03fh, 081h, 09eh, 090h, 044h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     958    db  064h, 080h, 03fh, 081h, 05fh, 090h, 005h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    959959    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    960960
    961 section CONST progbits vstart=0xb0 align=1 ; size=0xd52 class=DATA group=DGROUP
     961section CONST progbits vstart=0xb0 align=1 ; size=0xcf0 class=DATA group=DGROUP
    962962    db   'CPUID EDX: 0x%lx', 00ah, 000h
    963963    db   'NMI Handler called', 00ah, 000h
     
    10651065    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
    10661066    db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
    1067     db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h
    1068     db   'scsi_pci_init', 000h
    1069     db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
    1070     db   '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h
     1067    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
    10711068    db   'ahci_read_sectors', 000h
    10721069    db   '%s: device_id out of range %d', 00ah, 000h
     
    10811078    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    10821079
    1083 section CONST2 progbits vstart=0xe02 align=1 ; size=0x3fa class=DATA group=DGROUP
    1084 _bios_cvs_version_string:                    ; 0xf0e02 LB 0x12
    1085     db  'VirtualBox 5.1.51', 000h
    1086 _bios_prefix_string:                         ; 0xf0e14 LB 0x8
     1080section CONST2 progbits vstart=0xda0 align=1 ; size=0x400 class=DATA group=DGROUP
     1081_bios_cvs_version_string:                    ; 0xf0da0 LB 0x18
     1082    db  'VirtualBox 5.2.0_BETA1', 000h, 000h
     1083_bios_prefix_string:                         ; 0xf0db8 LB 0x8
    10871084    db  'BIOS: ', 000h, 000h
    1088 _isotag:                                     ; 0xf0e1c LB 0x6
     1085_isotag:                                     ; 0xf0dc0 LB 0x6
    10891086    db  'CD001', 000h
    1090 _eltorito:                                   ; 0xf0e22 LB 0x18
     1087_eltorito:                                   ; 0xf0dc6 LB 0x18
    10911088    db  'EL TORITO SPECIFICATION', 000h
    1092 _drivetypes:                                 ; 0xf0e3a LB 0x28
     1089_drivetypes:                                 ; 0xf0dde LB 0x28
    10931090    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    10941091    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    10951092    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1096 _scan_to_scanascii:                          ; 0xf0e62 LB 0x37a
     1093_scan_to_scanascii:                          ; 0xf0e06 LB 0x37a
    10971094    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    10981095    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11511148    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11521149    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1153 _panic_msg_keyb_buffer_full:                 ; 0xf11dc LB 0x20
     1150_panic_msg_keyb_buffer_full:                 ; 0xf1180 LB 0x20
    11541151    db  '%s: keyboard input buffer full', 00ah, 000h
    11551152
    1156   ; Padding 0x404 bytes at 0xf11fc
    1157   times 1028 db 0
     1153  ; Padding 0x460 bytes at 0xf11a0
     1154  times 1120 db 0
    11581155
    1159 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8bd5 class=CODE group=AUTO
     1156section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b95 class=CODE group=AUTO
    11601157rom_scan_:                                   ; 0xf1600 LB 0x50
    11611158    push bp                                   ; 55
     
    15041501    push bp                                   ; 55
    15051502    mov bp, sp                                ; 89 e5
    1506     mov bx, 00e14h                            ; bb 14 0e
     1503    mov bx, 00db8h                            ; bb b8 0d
    15071504    mov cx, ds                                ; 8c d9
    15081505    mov ax, strict word 00004h                ; b8 04 00
    15091506    call 01a2ah                               ; e8 ac 01
    1510     push 00e02h                               ; 68 02 0e
     1507    push 00da0h                               ; 68 a0 0d
    15111508    push 000ebh                               ; 68 eb 00
    15121509    push strict byte 00004h                   ; 6a 04
     
    16791676    mov bx, strict word 0000ah                ; bb 0a 00
    16801677    xor cx, cx                                ; 31 c9
    1681     call 0a0e0h                               ; e8 0e 87
     1678    call 0a0a0h                               ; e8 ce 86
    16821679    mov word [bp-008h], ax                    ; 89 46 f8
    16831680    mov cx, dx                                ; 89 d1
     
    19051902    mov dx, word [bp-026h]                    ; 8b 56 da
    19061903    mov si, word [bp-01eh]                    ; 8b 76 e2
    1907     call 0a120h                               ; e8 1c 85
     1904    call 0a0e0h                               ; e8 dc 84
    19081905    mov ax, dx                                ; 89 d0
    19091906    xor ah, dh                                ; 30 f4
     
    23472344    mov dx, word [es:si]                      ; 26 8b 14
    23482345    mov si, strict word 00018h                ; be 18 00
    2349     call 0a120h                               ; e8 c0 80
     2346    call 0a0e0h                               ; e8 80 80
    23502347    xor dh, dh                                ; 30 f6
    23512348    mov word [bp-016h], dx                    ; 89 56 ea
     
    23572354    mov dx, word [es:si]                      ; 26 8b 14
    23582355    mov si, strict word 00020h                ; be 20 00
    2359     call 0a120h                               ; e8 a0 80
     2356    call 0a0e0h                               ; e8 60 80
    23602357    mov bx, dx                                ; 89 d3
    23612358    mov ax, word [bp-01eh]                    ; 8b 46 e2
     
    23882385    mov dx, word [es:si]                      ; 26 8b 14
    23892386    mov si, strict word 00008h                ; be 08 00
    2390     call 0a120h                               ; e8 4f 80
     2387    call 0a0e0h                               ; e8 0f 80
    23912388    mov word [bp-014h], dx                    ; 89 56 ec
    23922389    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    23972394    mov dx, word [es:si]                      ; 26 8b 14
    23982395    mov si, strict word 00018h                ; be 18 00
    2399     call 0a120h                               ; e8 31 80
     2396    call 0a0e0h                               ; e8 f1 7f
    24002397    and dx, strict byte 0000fh                ; 83 e2 0f
    24012398    or dl, 040h                               ; 80 ca 40
     
    27912788    lea ax, [bp-03ah]                         ; 8d 46 c6
    27922789    call 05ad0h                               ; e8 ff 35
    2793     mov bx, 00e14h                            ; bb 14 0e
     2790    mov bx, 00db8h                            ; bb b8 0d
    27942791    mov cx, ds                                ; 8c d9
    27952792    mov ax, strict word 00004h                ; b8 04 00
     
    29532950    mov dx, word [es:si+036h]                 ; 26 8b 54 36
    29542951    mov si, strict word 0000bh                ; be 0b 00
    2955     call 0a120h                               ; e8 69 7a
     2952    call 0a0e0h                               ; e8 29 7a
    29562953    mov word [bp-030h], dx                    ; 89 56 d0
    29572954    mov word [bp-02eh], cx                    ; 89 4e d2
     
    32243221    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32253222    mov si, strict word 00018h                ; be 18 00
    3226     call 0a120h                               ; e8 93 77
     3223    call 0a0e0h                               ; e8 53 77
    32273224    xor dh, dh                                ; 30 f6
    32283225    mov word [bp-01ch], dx                    ; 89 56 e4
     
    32323229    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32333230    mov si, strict word 00020h                ; be 20 00
    3234     call 0a120h                               ; e8 7c 77
     3231    call 0a0e0h                               ; e8 3c 77
    32353232    mov bx, dx                                ; 89 d3
    32363233    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    32663263    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32673264    mov si, strict word 00008h                ; be 08 00
    3268     call 0a120h                               ; e8 28 77
     3265    call 0a0e0h                               ; e8 e8 76
    32693266    mov word [bp-010h], ax                    ; 89 46 f0
    32703267    mov word [bp-014h], bx                    ; 89 5e ec
     
    32733270    mov word [bp-026h], dx                    ; 89 56 da
    32743271    mov si, strict word 00010h                ; be 10 00
    3275     call 0a120h                               ; e8 13 77
     3272    call 0a0e0h                               ; e8 d3 76
    32763273    mov word [bp-01eh], dx                    ; 89 56 e2
    32773274    mov ax, dx                                ; 89 d0
     
    35423539    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    35433540    jne short 02cafh                          ; 75 1f
    3544     mov bx, 00e14h                            ; bb 14 0e
     3541    mov bx, 00db8h                            ; bb b8 0d
    35453542    mov cx, ds                                ; 8c d9
    35463543    mov ax, strict word 00004h                ; b8 04 00
     
    44134410    cmp bh, 048h                              ; 80 ff 48
    44144411    jbe short 03443h                          ; 76 33
    4415     mov bx, 00e14h                            ; bb 14 0e
     4412    mov bx, 00db8h                            ; bb b8 0d
    44164413    mov cx, ds                                ; 8c d9
    44174414    mov ax, strict word 00004h                ; b8 04 00
     
    52555252    mov byte [es:bx], 000h                    ; 26 c6 07 00
    52565253    jmp near 03612h                           ; e9 ae f9
    5257     mov bx, 00e14h                            ; bb 14 0e
     5254    mov bx, 00db8h                            ; bb b8 0d
    52585255    mov cx, ds                                ; 8c d9
    52595256    mov ax, strict word 00004h                ; b8 04 00
     
    53525349    cmp ax, strict word 0004ah                ; 3d 4a 00
    53535350    jne near 03e4eh                           ; 0f 85 1e 01
    5354     mov bx, 00e14h                            ; bb 14 0e
     5351    mov bx, 00db8h                            ; bb b8 0d
    53555352    mov cx, ds                                ; 8c d9
    53565353    mov ax, strict word 00004h                ; b8 04 00
     
    54505447    pop bp                                    ; 5d
    54515448    retn                                      ; c3
    5452     mov bx, 00e14h                            ; bb 14 0e
     5449    mov bx, 00db8h                            ; bb b8 0d
    54535450    mov cx, ds                                ; 8c d9
    54545451    mov ax, strict word 00004h                ; b8 04 00
     
    55315528    mov dx, ss                                ; 8c d2
    55325529    lea ax, [bp-026h]                         ; 8d 46 da
    5533     call 0a140h                               ; e8 28 62
     5530    call 0a100h                               ; e8 e8 61
    55345531    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    55355532    mov ax, strict word 00011h                ; b8 11 00
     
    55855582    jnc short 03fb7h                          ; 73 10
    55865583    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5587     cmp al, byte [di+00e1ch]                  ; 3a 85 1c 0e
     5584    cmp al, byte [di+00dc0h]                  ; 3a 85 c0 0d
    55885585    je short 03fa1h                           ; 74 f0
    55895586    mov ax, strict word 00005h                ; b8 05 00
     
    55955592    jnc short 03fd1h                          ; 73 10
    55965593    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5597     cmp al, byte [di+00e22h]                  ; 3a 85 22 0e
     5594    cmp al, byte [di+00dc6h]                  ; 3a 85 c6 0d
    55985595    je short 03fbbh                           ; 74 f0
    55995596    mov ax, strict word 00006h                ; b8 06 00
     
    58745871    cmp dx, ax                                ; 39 c2
    58755872    je short 04355h                           ; 74 29
    5876     mov bx, 00e14h                            ; bb 14 0e
     5873    mov bx, 00db8h                            ; bb b8 0d
    58775874    mov cx, ds                                ; 8c d9
    58785875    mov ax, strict word 00004h                ; b8 04 00
     
    59915988    xor dl, dl                                ; 30 d2
    59925989    xor cx, cx                                ; 31 c9
    5993     call 0a0a0h                               ; e8 26 5c
     5990    call 0a060h                               ; e8 e6 5b
    59945991    xor bx, bx                                ; 31 db
    59955992    add ax, si                                ; 01 f0
     
    59975994    mov bx, di                                ; 89 fb
    59985995    xor cx, cx                                ; 31 c9
    5999     call 0a0a0h                               ; e8 19 5c
     5996    call 0a060h                               ; e8 d9 5b
    60005997    mov bx, ax                                ; 89 c3
    60015998    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    60326029    mov dx, ss                                ; 8c d2
    60336030    lea ax, [bp-02eh]                         ; 8d 46 d2
    6034     call 0a140h                               ; e8 62 5c
     6031    call 0a100h                               ; e8 22 5c
    60356032    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    60366033    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    60966093    test al, al                               ; 84 c0
    60976094    je near 043a1h                            ; 0f 84 13 fe
    6098     mov bx, 00e14h                            ; bb 14 0e
     6095    mov bx, 00db8h                            ; bb b8 0d
    60996096    mov cx, ds                                ; 8c d9
    61006097    mov ax, strict word 00004h                ; b8 04 00
     
    61776174    mov word [bp+016h], bx                    ; 89 5e 16
    61786175    jmp near 043a5h                           ; e9 37 fd
    6179     mov bx, 00e14h                            ; bb 14 0e
     6176    mov bx, 00db8h                            ; bb b8 0d
    61806177    mov cx, ds                                ; 8c d9
    61816178    mov ax, strict word 00004h                ; b8 04 00
     
    63396336    mov dx, ss                                ; 8c d2
    63406337    lea ax, [bp-02ch]                         ; 8d 46 d4
    6341     call 0a140h                               ; e8 c7 58
     6338    call 0a100h                               ; e8 87 58
    63426339    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    63436340    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    63886385    test dl, dl                               ; 84 d2
    63896386    je near 049cbh                            ; 0f 84 cb 00
    6390     mov bx, 00e14h                            ; bb 14 0e
     6387    mov bx, 00db8h                            ; bb b8 0d
    63916388    mov cx, ds                                ; 8c d9
    63926389    mov ax, strict word 00004h                ; b8 04 00
     
    66726669    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    66736670    jmp near 049deh                           ; e9 8f fd
    6674     mov bx, 00e14h                            ; bb 14 0e
     6671    mov bx, 00db8h                            ; bb b8 0d
    66756672    mov cx, ds                                ; 8c d9
    66766673    mov ax, strict word 00004h                ; b8 04 00
     
    67026699    je short 04cb1h                           ; 74 21
    67036700    mov dx, strict word 00001h                ; ba 01 00
    6704     mov bx, 00e14h                            ; bb 14 0e
     6701    mov bx, 00db8h                            ; bb b8 0d
    67056702    mov cx, ds                                ; 8c d9
    67066703    mov ax, strict word 00004h                ; b8 04 00
    67076704    call 01a2ah                               ; e8 8c cd
    67086705    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    6709     add dx, 00e3ah                            ; 81 c2 3a 0e
     6706    add dx, 00ddeh                            ; 81 c2 de 0d
    67106707    push dx                                   ; 52
    67116708    push 004a6h                               ; 68 a6 04
     
    67276724    test al, al                               ; 84 c0
    67286725    je short 04ce4h                           ; 74 1b
    6729     mov bx, 00e14h                            ; bb 14 0e
     6726    mov bx, 00db8h                            ; bb b8 0d
    67306727    mov cx, ds                                ; 8c d9
    67316728    mov ax, strict word 00004h                ; b8 04 00
    67326729    call 01a2ah                               ; e8 56 cd
    6733     push 00e4eh                               ; 68 4e 0e
     6730    push 00df2h                               ; 68 f2 0d
    67346731    push 004bah                               ; 68 ba 04
    67356732    push strict byte 00004h                   ; 6a 04
     
    67396736    test dl, dl                               ; 84 d2
    67406737    je short 04cf8h                           ; 74 10
    6741     mov bx, 00e14h                            ; bb 14 0e
     6738    mov bx, 00db8h                            ; bb b8 0d
    67426739    mov cx, ds                                ; 8c d9
    67436740    mov ax, strict word 00004h                ; b8 04 00
    67446741    call 01a2ah                               ; e8 37 cd
    6745     push 00e58h                               ; 68 58 0e
     6742    push 00dfch                               ; 68 fc 0d
    67466743    jmp short 04cd7h                          ; eb df
    67476744    test bl, 080h                             ; f6 c3 80
    67486745    je short 04d0eh                           ; 74 11
    6749     mov bx, 00e14h                            ; bb 14 0e
     6746    mov bx, 00db8h                            ; bb b8 0d
    67506747    mov cx, ds                                ; 8c d9
    67516748    mov ax, strict word 00004h                ; b8 04 00
    67526749    call 01a2ah                               ; e8 22 cd
    67536750    push si                                   ; 56
    6754     push 00e44h                               ; 68 44 0e
     6751    push 00de8h                               ; 68 e8 0d
    67556752    jmp short 04d1dh                          ; eb 0f
    6756     mov bx, 00e14h                            ; bb 14 0e
     6753    mov bx, 00db8h                            ; bb b8 0d
    67576754    mov cx, ds                                ; 8c d9
    67586755    mov ax, strict word 00004h                ; b8 04 00
    67596756    call 01a2ah                               ; e8 11 cd
    67606757    push si                                   ; 56
    6761     push 00e3ah                               ; 68 3a 0e
     6758    push 00ddeh                               ; 68 de 0d
    67626759    push 004cfh                               ; 68 cf 04
    67636760    push strict byte 00004h                   ; 6a 04
     
    67856782    push dx                                   ; 52
    67866783    mov dx, ax                                ; 89 c2
    6787     mov bx, 00e14h                            ; bb 14 0e
     6784    mov bx, 00db8h                            ; bb b8 0d
    67886785    mov cx, ds                                ; 8c d9
    67896786    mov ax, strict word 00004h                ; b8 04 00
     
    68606857    mov byte [bp-00ah], al                    ; 88 46 f6
    68616858    mov byte [bp-00ch], al                    ; 88 46 f4
    6862     mov bx, 00e14h                            ; bb 14 0e
     6859    mov bx, 00db8h                            ; bb b8 0d
    68636860    mov cx, ds                                ; 8c d9
    68646861    mov ax, strict word 00004h                ; b8 04 00
     
    73997396    test al, al                               ; 84 c0
    74007397    jne short 05307h                          ; 75 19
    7401     mov bx, 00e14h                            ; bb 14 0e
     7398    mov bx, 00db8h                            ; bb b8 0d
    74027399    mov cx, ds                                ; 8c d9
    74037400    mov ax, strict word 00004h                ; b8 04 00
     
    77167713    cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
    77177714    jbe short 0567bh                          ; 76 1e
    7718     mov bx, 00e14h                            ; bb 14 0e
     7715    mov bx, 00db8h                            ; bb b8 0d
    77197716    mov cx, ds                                ; 8c d9
    77207717    mov ax, strict word 00004h                ; b8 04 00
     
    77327729    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77337730    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7734     mov dl, byte [bx+00e68h]                  ; 8a 97 68 0e
    7735     mov ax, word [bx+00e68h]                  ; 8b 87 68 0e
     7731    mov dl, byte [bx+00e0ch]                  ; 8a 97 0c 0e
     7732    mov ax, word [bx+00e0ch]                  ; 8b 87 0c 0e
    77367733    jmp near 05722h                           ; e9 8e 00
    77377734    test AL, strict byte 004h                 ; a8 04
     
    77397736    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77407737    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7741     mov dl, byte [bx+00e66h]                  ; 8a 97 66 0e
    7742     mov ax, word [bx+00e66h]                  ; 8b 87 66 0e
     7738    mov dl, byte [bx+00e0ah]                  ; 8a 97 0a 0e
     7739    mov ax, word [bx+00e0ah]                  ; 8b 87 0a 0e
    77437740    jmp near 05722h                           ; e9 78 00
    77447741    mov al, byte [bp-004h]                    ; 8a 46 fc
     
    77597756    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77607757    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7761     movzx ax, byte [bx+00e6ah]                ; 0f b6 87 6a 0e
     7758    movzx ax, byte [bx+00e0eh]                ; 0f b6 87 0e 0e
    77627759    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    77637760    test dx, ax                               ; 85 c2
    77647761    je short 056ech                           ; 74 0a
    7765     mov dl, byte [bx+00e62h]                  ; 8a 97 62 0e
    7766     mov ax, word [bx+00e62h]                  ; 8b 87 62 0e
     7762    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
     7763    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
    77677764    jmp short 056f4h                          ; eb 08
    7768     mov dl, byte [bx+00e64h]                  ; 8a 97 64 0e
    7769     mov ax, word [bx+00e64h]                  ; 8b 87 64 0e
     7765    mov dl, byte [bx+00e08h]                  ; 8a 97 08 0e
     7766    mov ax, word [bx+00e08h]                  ; 8b 87 08 0e
    77707767    shr ax, 008h                              ; c1 e8 08
    77717768    mov byte [bp-00ch], al                    ; 88 46 f4
     
    77737770    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77747771    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7775     movzx ax, byte [bx+00e6ah]                ; 0f b6 87 6a 0e
     7772    movzx ax, byte [bx+00e0eh]                ; 0f b6 87 0e 0e
    77767773    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    77777774    test dx, ax                               ; 85 c2
    77787775    je short 0571ah                           ; 74 0a
    7779     mov dl, byte [bx+00e64h]                  ; 8a 97 64 0e
    7780     mov ax, word [bx+00e64h]                  ; 8b 87 64 0e
     7776    mov dl, byte [bx+00e08h]                  ; 8a 97 08 0e
     7777    mov ax, word [bx+00e08h]                  ; 8b 87 08 0e
    77817778    jmp short 05722h                          ; eb 08
    7782     mov dl, byte [bx+00e62h]                  ; 8a 97 62 0e
    7783     mov ax, word [bx+00e62h]                  ; 8b 87 62 0e
     7779    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
     7780    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
    77847781    shr ax, 008h                              ; c1 e8 08
    77857782    mov byte [bp-00ch], al                    ; 88 46 f4
     
    77887785    test dl, dl                               ; 84 d2
    77897786    jne short 05748h                          ; 75 16
    7790     mov bx, 00e14h                            ; bb 14 0e
     7787    mov bx, 00db8h                            ; bb b8 0d
    77917788    mov cx, ds                                ; 8c d9
    77927789    mov ax, strict word 00004h                ; b8 04 00
     
    81428139    or ah, 080h                               ; 80 cc 80
    81438140    jmp near 0595bh                           ; e9 d4 fe
    8144     mov bx, 00e14h                            ; bb 14 0e
     8141    mov bx, 00db8h                            ; bb b8 0d
    81458142    mov cx, ds                                ; 8c d9
    81468143    mov ax, strict word 00004h                ; b8 04 00
     
    81538150    call 01a6bh                               ; e8 ca bf
    81548151    add sp, strict byte 00006h                ; 83 c4 06
    8155     mov bx, 00e14h                            ; bb 14 0e
     8152    mov bx, 00db8h                            ; bb b8 0d
    81568153    mov cx, ds                                ; 8c d9
    81578154    mov ax, strict word 00004h                ; b8 04 00
     
    81888185    mov dx, word [bp+00ch]                    ; 8b 56 0c
    81898186    mov si, strict word 00020h                ; be 20 00
    8190     call 0a120h                               ; e8 25 46
     8187    call 0a0e0h                               ; e8 e5 45
    81918188    test ax, ax                               ; 85 c0
    81928189    jne short 05b0bh                          ; 75 0c
     
    82268223    mov bx, strict word 0003fh                ; bb 3f 00
    82278224    xor cx, cx                                ; 31 c9
    8228     call 0a0a0h                               ; e8 4c 45
     8225    call 0a060h                               ; e8 0c 45
    82298226    mov bx, ax                                ; 89 c3
    82308227    mov cx, dx                                ; 89 d1
    82318228    mov ax, word [bp-004h]                    ; 8b 46 fc
    82328229    mov dx, si                                ; 89 f2
    8233     call 0a0e0h                               ; e8 80 45
     8230    call 0a0a0h                               ; e8 40 45
    82348231    mov word [es:di+002h], ax                 ; 26 89 45 02
    82358232    cmp ax, 00400h                            ; 3d 00 04
     
    83888385    test ax, ax                               ; 85 c0
    83898386    jne short 05cf4h                          ; 75 23
    8390     mov bx, 00e14h                            ; bb 14 0e
     8387    mov bx, 00db8h                            ; bb b8 0d
    83918388    mov cx, ds                                ; 8c d9
    83928389    mov ax, strict word 00004h                ; b8 04 00
     
    84178414    cmp ax, dx                                ; 39 d0
    84188415    jbe short 05d4fh                          ; 76 2e
    8419     mov bx, 00e14h                            ; bb 14 0e
     8416    mov bx, 00db8h                            ; bb b8 0d
    84208417    mov cx, ds                                ; 8c d9
    84218418    mov ax, strict word 00004h                ; b8 04 00
     
    84558452    mov bx, cx                                ; 89 cb
    84568453    xor cx, cx                                ; 31 c9
    8457     call 0a0a0h                               ; e8 17 43
     8454    call 0a060h                               ; e8 d7 42
    84588455    xor bx, bx                                ; 31 db
    84598456    add ax, word [bp-008h]                    ; 03 46 f8
     
    84618458    mov bx, word [bp-00ah]                    ; 8b 5e f6
    84628459    xor cx, cx                                ; 31 c9
    8463     call 0a0a0h                               ; e8 08 43
     8460    call 0a060h                               ; e8 c8 42
    84648461    xor bx, bx                                ; 31 db
    84658462    add ax, word [bp-006h]                    ; 03 46 fa
     
    85178514    test dl, dl                               ; 84 d2
    85188515    je near 05c52h                            ; 0f 84 0a fe
    8519     mov bx, 00e14h                            ; bb 14 0e
     8516    mov bx, 00db8h                            ; bb b8 0d
    85208517    mov cx, ds                                ; 8c d9
    85218518    mov ax, strict word 00004h                ; b8 04 00
     
    85358532    or ah, 00ch                               ; 80 cc 0c
    85368533    jmp near 05fc8h                           ; e9 51 01
    8537     mov bx, 00e14h                            ; bb 14 0e
     8534    mov bx, 00db8h                            ; bb b8 0d
    85388535    mov cx, ds                                ; 8c d9
    85398536    mov ax, strict word 00004h                ; b8 04 00
     
    86218618    mov bx, word [bp-008h]                    ; 8b 5e f8
    86228619    xor cx, cx                                ; 31 c9
    8623     call 0a0a0h                               ; e8 40 41
     8620    call 0a060h                               ; e8 00 41
    86248621    mov bx, word [bp-006h]                    ; 8b 5e fa
    86258622    xor cx, cx                                ; 31 c9
    8626     call 0a0a0h                               ; e8 38 41
     8623    call 0a060h                               ; e8 f8 40
    86278624    mov word [bp-010h], ax                    ; 89 46 f0
    86288625    mov word [bp-00eh], dx                    ; 89 56 f2
     
    86348631    mov word [bp+016h], ax                    ; 89 46 16
    86358632    jmp near 05c56h                           ; e9 d4 fc
    8636     mov bx, 00e14h                            ; bb 14 0e
     8633    mov bx, 00db8h                            ; bb b8 0d
    86378634    mov cx, ds                                ; 8c d9
    86388635    mov ax, strict word 00004h                ; b8 04 00
     
    86478644    add sp, strict byte 00008h                ; 83 c4 08
    86488645    jmp near 05c52h                           ; e9 ad fc
    8649     mov bx, 00e14h                            ; bb 14 0e
     8646    mov bx, 00db8h                            ; bb b8 0d
    86508647    mov cx, ds                                ; 8c d9
    86518648    mov ax, strict word 00004h                ; b8 04 00
     
    87618758    xor bx, bx                                ; 31 db
    87628759    mov si, strict word 00020h                ; be 20 00
    8763     call 0a130h                               ; e8 44 40
     8760    call 0a0f0h                               ; e8 04 40
    87648761    mov word [bp-00eh], bx                    ; 89 5e f2
    87658762    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
     
    87868783    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
    87878784    jc short 06156h                           ; 72 23
    8788     mov bx, 00e14h                            ; bb 14 0e
     8785    mov bx, 00db8h                            ; bb b8 0d
    87898786    mov cx, ds                                ; 8c d9
    87908787    mov ax, strict word 00004h                ; b8 04 00
     
    88428839    test dl, dl                               ; 84 d2
    88438840    je near 0648dh                            ; 0f 84 a8 02
    8844     mov bx, 00e14h                            ; bb 14 0e
     8841    mov bx, 00db8h                            ; bb b8 0d
    88458842    mov cx, ds                                ; 8c d9
    88468843    mov ax, strict word 00004h                ; b8 04 00
     
    89128909    mov bx, word [bp-00eh]                    ; 8b 5e f2
    89138910    mov si, strict word 00020h                ; be 20 00
    8914     call 0a120h                               ; e8 5a 3e
     8911    call 0a0e0h                               ; e8 1a 3e
    89158912    mov bx, di                                ; 89 fb
    89168913    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    90889085    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    90899086    jmp short 064a0h                          ; eb c4
    9090     mov bx, 00e14h                            ; bb 14 0e
     9087    mov bx, 00db8h                            ; bb b8 0d
    90919088    mov cx, ds                                ; 8c d9
    90929089    mov ax, strict word 00004h                ; b8 04 00
     
    92699266    mov bx, strict word 0000fh                ; bb 0f 00
    92709267    xor cx, cx                                ; 31 c9
    9271     call 0a0e0h                               ; e8 81 3a
     9268    call 0a0a0h                               ; e8 41 3a
    92729269    mov cx, ax                                ; 89 c1
    92739270    mov bx, dx                                ; 89 d3
     
    94279424    mov word [bp+00ch], ax                    ; 89 46 0c
    94289425    jmp near 06827h                           ; e9 2b 00
    9429     mov bx, 00e14h                            ; bb 14 0e
     9426    mov bx, 00db8h                            ; bb b8 0d
    94309427    mov cx, ds                                ; 8c d9
    94319428    mov ax, strict word 00004h                ; b8 04 00
     
    96149611    retf                                      ; cb
    96159612    jmp near 06827h                           ; e9 50 fe
    9616     mov bx, 00e14h                            ; bb 14 0e
     9613    mov bx, 00db8h                            ; bb b8 0d
    96179614    mov cx, ds                                ; 8c d9
    96189615    mov ax, strict word 00004h                ; b8 04 00
     
    96549651    or byte [bp+018h], 001h                   ; 80 4e 18 01
    96559652    jmp near 06827h                           ; e9 da fd
    9656     mov bx, 00e14h                            ; bb 14 0e
     9653    mov bx, 00db8h                            ; bb b8 0d
    96579654    mov cx, ds                                ; 8c d9
    96589655    mov ax, strict word 00004h                ; b8 04 00
     
    99709967    mov word [bp+014h], dx                    ; 89 56 14
    99719968    jmp short 06e0fh                          ; eb 2a
    9972     mov bx, 00e14h                            ; bb 14 0e
     9969    mov bx, 00db8h                            ; bb b8 0d
    99739970    mov cx, ds                                ; 8c d9
    99749971    mov ax, strict word 00004h                ; b8 04 00
     
    1059010587    je short 07443h                           ; 74 0e
    1059110588    push 00900h                               ; 68 00 09
    10592     push 011dch                               ; 68 dc 11
     10589    push 01180h                               ; 68 80 11
    1059310590    push strict byte 00007h                   ; 6a 07
    1059410591    call 01a6bh                               ; e8 2b a6
     
    1067010667    je short 074d3h                           ; 74 0e
    1067110668    push 0090ah                               ; 68 0a 09
    10672     push 011dch                               ; 68 dc 11
     10669    push 01180h                               ; 68 80 11
    1067310670    push strict byte 00007h                   ; 6a 07
    1067410671    call 01a6bh                               ; e8 9b a5
     
    1212412121    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    1212512122    jne short 08261h                          ; 75 1f
    12126     mov bx, 00e14h                            ; bb 14 0e
     12123    mov bx, 00db8h                            ; bb b8 0d
    1212712124    mov cx, ds                                ; 8c d9
    1212812125    mov ax, strict word 00004h                ; b8 04 00
     
    1227912276    mov dx, ss                                ; 8c d2
    1228012277    lea ax, [bp-046h]                         ; 8d 46 ba
    12281     call 0a140h                               ; e8 89 1d
     12278    call 0a100h                               ; e8 49 1d
    1228212279    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1228312280    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1233812335    cmp bx, 00200h                            ; 81 fb 00 02
    1233912336    je short 0847ch                           ; 74 20
    12340     mov bx, 00e14h                            ; bb 14 0e
     12337    mov bx, 00db8h                            ; bb b8 0d
    1234112338    mov cx, ds                                ; 8c d9
    1234212339    mov ax, strict word 00004h                ; b8 04 00
     
    1240412401    mov dx, word [bp-016h]                    ; 8b 56 ea
    1240512402    mov si, strict word 0000ch                ; be 0c 00
    12406     call 0a120h                               ; e8 26 1c
     12403    call 0a0e0h                               ; e8 e6 1b
    1240712404    mov word [bp-018h], ax                    ; 89 46 e8
    1240812405    mov word [bp-014h], bx                    ; 89 5e ec
     
    1242412421    mov dx, word [bp-016h]                    ; 8b 56 ea
    1242512422    mov si, strict word 00006h                ; be 06 00
    12426     call 0a120h                               ; e8 e6 1b
     12423    call 0a0e0h                               ; e8 a6 1b
    1242712424    mov si, word [bp-020h]                    ; 8b 76 e0
    1242812425    add si, dx                                ; 01 d6
     
    1244212439    mov dx, si                                ; 89 f2
    1244312440    mov si, strict word 00008h                ; be 08 00
    12444     call 0a120h                               ; e8 b6 1b
     12441    call 0a0e0h                               ; e8 76 1b
    1244512442    mov word [bp-022h], bx                    ; 89 5e de
    1244612443    mov word [bp-02ch], cx                    ; 89 4e d4
     
    1245112448    mov dx, word [bp-02ah]                    ; 8b 56 d6
    1245212449    mov si, strict word 00010h                ; be 10 00
    12453     call 0a120h                               ; e8 9b 1b
     12450    call 0a0e0h                               ; e8 5b 1b
    1245412451    mov si, word [bp-01ah]                    ; 8b 76 e6
    1245512452    add si, dx                                ; 01 d6
     
    1247512472    mov dx, word [bp-016h]                    ; 8b 56 ea
    1247612473    mov si, strict word 0000bh                ; be 0b 00
    12477     call 0a120h                               ; e8 53 1b
     12474    call 0a0e0h                               ; e8 13 1b
    1247812475    mov si, dx                                ; 89 d6
    1247912476    mov dx, cx                                ; 89 ca
     
    1251612513    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1251712514    mov word [es:bx+032h], si                 ; 26 89 77 32
    12518     mov bx, 00e14h                            ; bb 14 0e
     12515    mov bx, 00db8h                            ; bb b8 0d
    1251912516    mov cx, ds                                ; 8c d9
    1252012517    mov ax, strict word 00004h                ; b8 04 00
     
    1256612563    inc byte [bp-00ch]                        ; fe 46 f4
    1256712564    jmp near 08770h                           ; e9 8b 00
    12568     mov bx, 00e14h                            ; bb 14 0e
     12565    mov bx, 00db8h                            ; bb b8 0d
    1256912566    mov cx, ds                                ; 8c d9
    1257012567    mov ax, strict word 00004h                ; b8 04 00
     
    1266312660    pop bp                                    ; 5d
    1266412661    retn                                      ; c3
    12665 scsi_pci_init_:                              ; 0xf8802 LB 0x6c
     12662scsi_pci_init_:                              ; 0xf8802 LB 0x2d
    1266612663    push bp                                   ; 55
    1266712664    mov bp, sp                                ; 89 e5
     
    1266912666    push cx                                   ; 51
    1267012667    push si                                   ; 56
    12671     push di                                   ; 57
    12672     mov si, ax                                ; 89 c6
    12673     mov di, dx                                ; 89 d7
    12674     call 09f06h                               ; e8 f6 16
     12668    call 09ec7h                               ; e8 bc 16
    1267512669    mov dx, ax                                ; 89 c2
    1267612670    cmp ax, strict word 0ffffh                ; 3d ff ff
    12677     jne short 08834h                          ; 75 1d
    12678     mov bx, 00e14h                            ; bb 14 0e
    12679     mov cx, ds                                ; 8c d9
    12680     mov ax, strict word 00004h                ; b8 04 00
    12681     call 01a2ah                               ; e8 08 92
    12682     push di                                   ; 57
    12683     push si                                   ; 56
    12684     push 00c73h                               ; 68 73 0c
    12685     push 00c81h                               ; 68 81 0c
    12686     push strict byte 00004h                   ; 6a 04
    12687     call 01a6bh                               ; e8 3c 92
    12688     add sp, strict byte 0000ah                ; 83 c4 0a
    12689     jmp short 08865h                          ; eb 31
    12690     mov bx, 00e14h                            ; bb 14 0e
    12691     mov cx, ds                                ; 8c d9
    12692     mov ax, strict word 00004h                ; b8 04 00
    12693     call 01a2ah                               ; e8 eb 91
    12694     push dx                                   ; 52
    12695     push di                                   ; 57
    12696     push si                                   ; 56
    12697     push 00c73h                               ; 68 73 0c
    12698     push 00caah                               ; 68 aa 0c
    12699     push strict byte 00004h                   ; 6a 04
    12700     call 01a6bh                               ; e8 1e 92
    12701     add sp, strict byte 0000ch                ; 83 c4 0c
     12671    je short 08827h                           ; 74 15
    1270212672    movzx si, dl                              ; 0f b6 f2
    1270312673    mov ax, dx                                ; 89 d0
     
    1270712677    mov bx, strict word 00004h                ; bb 04 00
    1270812678    mov dx, si                                ; 89 f2
    12709     call 09f98h                               ; e8 33 17
    12710     lea sp, [bp-008h]                         ; 8d 66 f8
    12711     pop di                                    ; 5f
     12679    call 09f59h                               ; e8 32 17
     12680    lea sp, [bp-006h]                         ; 8d 66 fa
    1271212681    pop si                                    ; 5e
    1271312682    pop cx                                    ; 59
     
    1271512684    pop bp                                    ; 5d
    1271612685    retn                                      ; c3
    12717 _scsi_init:                                  ; 0xf886e LB 0x81
     12686_scsi_init:                                  ; 0xf882f LB 0x81
    1271812687    push bp                                   ; 55
    1271912688    mov bp, sp                                ; 89 e5
    1272012689    mov dx, strict word 0000eh                ; ba 0e 00
    1272112690    mov ax, strict word 00040h                ; b8 40 00
    12722     call 01765h                               ; e8 eb 8e
     12691    call 01765h                               ; e8 2a 8f
    1272312692    mov bx, 00122h                            ; bb 22 01
    1272412693    mov es, ax                                ; 8e c0
     
    1273112700    ; sub ah, ah                                ; 2a e4
    1273212701    cmp AL, strict byte 055h                  ; 3c 55
    12733     jne short 088a7h                          ; 75 15
     12702    jne short 08868h                          ; 75 15
    1273412703    xor al, al                                ; 30 c0
    1273512704    mov dx, 00433h                            ; ba 33 04
    1273612705    out DX, AL                                ; ee
    1273712706    mov ax, 00430h                            ; b8 30 04
    12738     call 08380h                               ; e8 e2 fa
     12707    call 08380h                               ; e8 21 fb
    1273912708    mov dx, 01040h                            ; ba 40 10
    1274012709    mov ax, 0104bh                            ; b8 4b 10
    12741     call 08802h                               ; e8 5b ff
     12710    call 08802h                               ; e8 9a ff
    1274212711    mov AL, strict byte 055h                  ; b0 55
    1274312712    mov dx, 00436h                            ; ba 36 04
     
    1274712716    ; sub ah, ah                                ; 2a e4
    1274812717    cmp AL, strict byte 055h                  ; 3c 55
    12749     jne short 088c9h                          ; 75 15
     12718    jne short 0888ah                          ; 75 15
    1275012719    xor al, al                                ; 30 c0
    1275112720    mov dx, 00437h                            ; ba 37 04
    1275212721    out DX, AL                                ; ee
    1275312722    mov ax, 00434h                            ; b8 34 04
    12754     call 08380h                               ; e8 c0 fa
     12723    call 08380h                               ; e8 ff fa
    1275512724    mov dx, strict word 00030h                ; ba 30 00
    1275612725    mov ax, 01000h                            ; b8 00 10
    12757     call 08802h                               ; e8 39 ff
     12726    call 08802h                               ; e8 78 ff
    1275812727    mov AL, strict byte 055h                  ; b0 55
    1275912728    mov dx, 0043ah                            ; ba 3a 04
     
    1276312732    ; sub ah, ah                                ; 2a e4
    1276412733    cmp AL, strict byte 055h                  ; 3c 55
    12765     jne short 088ebh                          ; 75 15
     12734    jne short 088ach                          ; 75 15
    1276612735    xor al, al                                ; 30 c0
    1276712736    mov dx, 0043bh                            ; ba 3b 04
    1276812737    out DX, AL                                ; ee
    1276912738    mov ax, 00438h                            ; b8 38 04
    12770     call 08380h                               ; e8 9e fa
     12739    call 08380h                               ; e8 dd fa
    1277112740    mov dx, strict word 00054h                ; ba 54 00
    1277212741    mov ax, 01000h                            ; b8 00 10
    12773     call 08802h                               ; e8 17 ff
     12742    call 08802h                               ; e8 56 ff
    1277412743    mov sp, bp                                ; 89 ec
    1277512744    pop bp                                    ; 5d
    1277612745    retn                                      ; c3
    12777 ahci_ctrl_extract_bits_:                     ; 0xf88ef LB 0x1b
     12746ahci_ctrl_extract_bits_:                     ; 0xf88b0 LB 0x1b
    1277812747    push si                                   ; 56
    1277912748    push bp                                   ; 55
     
    1278312752    and dx, cx                                ; 21 ca
    1278412753    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12785     jcxz 08905h                               ; e3 06
     12754    jcxz 088c6h                               ; e3 06
    1278612755    shr dx, 1                                 ; d1 ea
    1278712756    rcr ax, 1                                 ; d1 d8
    12788     loop 088ffh                               ; e2 fa
     12757    loop 088c0h                               ; e2 fa
    1278912758    pop bp                                    ; 5d
    1279012759    pop si                                    ; 5e
    1279112760    retn 00002h                               ; c2 02 00
    12792 ahci_addr_to_phys_:                          ; 0xf890a LB 0x1e
     12761ahci_addr_to_phys_:                          ; 0xf88cb LB 0x1e
    1279312762    push bx                                   ; 53
    1279412763    push cx                                   ; 51
     
    1280112770    sal ax, 1                                 ; d1 e0
    1280212771    rcl dx, 1                                 ; d1 d2
    12803     loop 08918h                               ; e2 fa
     12772    loop 088d9h                               ; e2 fa
    1280412773    xor cx, cx                                ; 31 c9
    1280512774    add ax, bx                                ; 01 d8
     
    1280912778    pop bx                                    ; 5b
    1281012779    retn                                      ; c3
    12811 ahci_port_cmd_sync_:                         ; 0xf8928 LB 0x14b
     12780ahci_port_cmd_sync_:                         ; 0xf88e9 LB 0x14b
    1281212781    push bp                                   ; 55
    1281312782    mov bp, sp                                ; 89 e5
     
    1282412793    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1282512794    cmp ah, 0ffh                              ; 80 fc ff
    12826     je near 08a6bh                            ; 0f 84 20 01
     12795    je near 08a2ch                            ; 0f 84 20 01
    1282712796    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
    1282812797    xor di, di                                ; 31 ff
     
    1283612805    lea ax, [si+00080h]                       ; 8d 84 80 00
    1283712806    mov dx, cx                                ; 89 ca
    12838     call 0890ah                               ; e8 96 ff
     12807    call 088cbh                               ; e8 96 ff
    1283912808    mov es, cx                                ; 8e c1
    1284012809    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1289912868    xchg dx, ax                               ; 92
    1290012869    test dh, 040h                             ; f6 c6 40
    12901     jne short 08a01h                          ; 75 04
     12870    jne short 089c2h                          ; 75 04
    1290212871    test AL, strict byte 001h                 ; a8 01
    12903     je short 08a05h                           ; 74 04
     12872    je short 089c6h                           ; 74 04
    1290412873    mov AL, strict byte 001h                  ; b0 01
    12905     jmp short 08a07h                          ; eb 02
     12874    jmp short 089c8h                          ; eb 02
    1290612875    xor al, al                                ; 30 c0
    1290712876    test al, al                               ; 84 c0
    12908     je short 089d5h                           ; 74 ca
     12877    je short 08996h                           ; 74 ca
    1290912878    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1291012879    sal di, 007h                              ; c1 e7 07
     
    1296012929    pop bp                                    ; 5d
    1296112930    retn                                      ; c3
    12962 ahci_cmd_data_:                              ; 0xf8a73 LB 0x262
     12931ahci_cmd_data_:                              ; 0xf8a34 LB 0x262
    1296312932    push bp                                   ; 55
    1296412933    mov bp, sp                                ; 89 e5
     
    1298512954    mov ax, 00080h                            ; b8 80 00
    1298612955    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12987     call 0a140h                               ; e8 8f 16
     12956    call 0a100h                               ; e8 8e 16
    1298812957    mov es, [bp-00ah]                         ; 8e 46 f6
    1298912958    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1300312972    mov dx, word [es:si]                      ; 26 8b 14
    1300412973    mov si, strict word 00008h                ; be 08 00
    13005     call 0a120h                               ; e8 2b 16
     12974    call 0a0e0h                               ; e8 2a 16
    1300612975    mov es, [bp-00ah]                         ; 8e 46 f6
    1300712976    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1301412983    mov dx, word [es:si]                      ; 26 8b 14
    1301512984    mov si, strict word 00010h                ; be 10 00
    13016     call 0a120h                               ; e8 05 16
     12985    call 0a0e0h                               ; e8 04 16
    1301712986    mov es, [bp-00ah]                         ; 8e 46 f6
    1301812987    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1302612995    mov dx, word [es:si]                      ; 26 8b 14
    1302712996    mov si, strict word 00018h                ; be 18 00
    13028     call 0a120h                               ; e8 d9 15
     12997    call 0a0e0h                               ; e8 d8 15
    1302912998    mov es, [bp-00ah]                         ; 8e 46 f6
    1303012999    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1303713006    mov dx, word [es:si]                      ; 26 8b 14
    1303813007    mov si, strict word 00020h                ; be 20 00
    13039     call 0a120h                               ; e8 b3 15
     13008    call 0a0e0h                               ; e8 b2 15
    1304013009    mov es, [bp-00ah]                         ; 8e 46 f6
    1304113010    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1304813017    mov dx, word [es:si]                      ; 26 8b 14
    1304913018    mov si, strict word 00028h                ; be 28 00
    13050     call 0a120h                               ; e8 8d 15
     13019    call 0a0e0h                               ; e8 8c 15
    1305113020    mov es, [bp-00ah]                         ; 8e 46 f6
    1305213021    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1306213031    mov bx, word [bp-010h]                    ; 8b 5e f0
    1306313032    xor cx, cx                                ; 31 c9
    13064     call 0a0a0h                               ; e8 d8 14
     13033    call 0a060h                               ; e8 d7 14
    1306513034    push dx                                   ; 52
    1306613035    push ax                                   ; 50
     
    1307213041    mov ax, 0026ah                            ; b8 6a 02
    1307313042    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13074     call 09fefh                               ; e8 0b 14
     13043    call 09fb0h                               ; e8 0b 14
    1307513044    mov es, [bp-00ah]                         ; 8e 46 f6
    1307613045    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     
    1309313062    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1309413063    test ax, ax                               ; 85 c0
    13095     je short 08c72h                           ; 74 39
     13064    je short 08c33h                           ; 74 39
    1309613065    dec ax                                    ; 48
    1309713066    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1310913078    mov al, byte [bp-008h]                    ; 8a 46 f8
    1311013079    cmp AL, strict byte 035h                  ; 3c 35
    13111     jne short 08c7fh                          ; 75 06
     13080    jne short 08c40h                          ; 75 06
    1311213081    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13113     jmp short 08c96h                          ; eb 17
     13082    jmp short 08c57h                          ; eb 17
    1311413083    cmp AL, strict byte 0a0h                  ; 3c a0
    13115     jne short 08c92h                          ; 75 0f
     13084    jne short 08c53h                          ; 75 0f
    1311613085    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1311713086    les bx, [bp-00eh]                         ; c4 5e f2
    1311813087    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13119     jmp short 08c96h                          ; eb 04
     13088    jmp short 08c57h                          ; eb 04
    1312013089    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1312113090    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1312313092    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1312413093    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13125     call 08928h                               ; e8 81 fc
     13094    call 088e9h                               ; e8 81 fc
    1312613095    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1312713096    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1313013099    add ax, 0026ah                            ; 05 6a 02
    1313113100    mov dx, cx                                ; 89 ca
    13132     call 0a068h                               ; e8 ac 13
     13101    call 0a029h                               ; e8 ac 13
    1313313102    mov es, cx                                ; 8e c1
    1313413103    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1313513104    test al, al                               ; 84 c0
    13136     je short 08ccbh                           ; 74 05
     13105    je short 08c8ch                           ; 74 05
    1313713106    mov ax, strict word 00004h                ; b8 04 00
    13138     jmp short 08ccdh                          ; eb 02
     13107    jmp short 08c8eh                          ; eb 02
    1313913108    xor ah, ah                                ; 30 e4
    1314013109    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1314413113    pop bp                                    ; 5d
    1314513114    retn                                      ; c3
    13146 ahci_port_deinit_current_:                   ; 0xf8cd5 LB 0x17f
     13115ahci_port_deinit_current_:                   ; 0xf8c96 LB 0x17f
    1314713116    push bp                                   ; 55
    1314813117    mov bp, sp                                ; 89 e5
     
    1315913128    mov byte [bp-00ah], al                    ; 88 46 f6
    1316013129    cmp AL, strict byte 0ffh                  ; 3c ff
    13161     je near 08e4bh                            ; 0f 84 52 01
     13130    je near 08e0ch                            ; 0f 84 52 01
    1316213131    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1316313132    sal ax, 007h                              ; c1 e0 07
     
    1320213171    xchg dx, ax                               ; 92
    1320313172    test ax, 0c011h                           ; a9 11 c0
    13204     je short 08d59h                           ; 74 04
     13173    je short 08d1ah                           ; 74 04
    1320513174    mov AL, strict byte 001h                  ; b0 01
    13206     jmp short 08d5bh                          ; eb 02
     13175    jmp short 08d1ch                          ; eb 02
    1320713176    xor al, al                                ; 30 c0
    1320813177    cmp AL, strict byte 001h                  ; 3c 01
    13209     je short 08d2dh                           ; 74 ce
     13178    je short 08ceeh                           ; 74 ce
    1321013179    mov cx, strict word 00020h                ; b9 20 00
    1321113180    xor bx, bx                                ; 31 db
    1321213181    mov ax, di                                ; 89 f8
    1321313182    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13214     call 0a140h                               ; e8 d4 13
     13183    call 0a100h                               ; e8 d3 13
    1321513184    lea ax, [di+00080h]                       ; 8d 85 80 00
    1321613185    mov cx, strict word 00040h                ; b9 40 00
    1321713186    xor bx, bx                                ; 31 db
    1321813187    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13219     call 0a140h                               ; e8 c5 13
     13188    call 0a100h                               ; e8 c4 13
    1322013189    lea ax, [di+00200h]                       ; 8d 85 00 02
    1322113190    mov cx, strict word 00060h                ; b9 60 00
    1322213191    xor bx, bx                                ; 31 db
    1322313192    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13224     call 0a140h                               ; e8 b6 13
     13193    call 0a100h                               ; e8 b5 13
    1322513194    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1322613195    sal ax, 007h                              ; c1 e0 07
     
    1332613295    pop bp                                    ; 5d
    1332713296    retn                                      ; c3
    13328 ahci_port_init_:                             ; 0xf8e54 LB 0x24a
     13297ahci_port_init_:                             ; 0xf8e15 LB 0x24a
    1332913298    push bp                                   ; 55
    1333013299    mov bp, sp                                ; 89 e5
     
    1333613305    mov word [bp-00ah], dx                    ; 89 56 f6
    1333713306    mov byte [bp-008h], bl                    ; 88 5e f8
    13338     call 08cd5h                               ; e8 6d fe
     13307    call 08c96h                               ; e8 6d fe
    1333913308    movzx ax, bl                              ; 0f b6 c3
    1334013309    sal ax, 007h                              ; c1 e0 07
     
    1338313352    xchg dx, ax                               ; 92
    1338413353    test ax, 0c011h                           ; a9 11 c0
    13385     je short 08ed7h                           ; 74 04
     13354    je short 08e98h                           ; 74 04
    1338613355    mov AL, strict byte 001h                  ; b0 01
    13387     jmp short 08ed9h                          ; eb 02
     13356    jmp short 08e9ah                          ; eb 02
    1338813357    xor al, al                                ; 30 c0
    1338913358    cmp AL, strict byte 001h                  ; 3c 01
    13390     je short 08ea3h                           ; 74 c6
     13359    je short 08e64h                           ; 74 c6
    1339113360    mov cx, strict word 00020h                ; b9 20 00
    1339213361    xor bx, bx                                ; 31 db
    1339313362    mov ax, si                                ; 89 f0
    1339413363    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13395     call 0a140h                               ; e8 56 12
     13364    call 0a100h                               ; e8 55 12
    1339613365    lea ax, [si+00080h]                       ; 8d 84 80 00
    1339713366    mov cx, strict word 00040h                ; b9 40 00
    1339813367    xor bx, bx                                ; 31 db
    1339913368    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13400     call 0a140h                               ; e8 47 12
     13369    call 0a100h                               ; e8 46 12
    1340113370    lea di, [si+00200h]                       ; 8d bc 00 02
    1340213371    mov cx, strict word 00060h                ; b9 60 00
     
    1340413373    mov ax, di                                ; 89 f8
    1340513374    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13406     call 0a140h                               ; e8 36 12
     13375    call 0a100h                               ; e8 35 12
    1340713376    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1340813377    sal bx, 007h                              ; c1 e3 07
     
    1342113390    mov ax, di                                ; 89 f8
    1342213391    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13423     call 0890ah                               ; e8 d3 f9
     13392    call 088cbh                               ; e8 d3 f9
    1342413393    mov es, [bp-00ah]                         ; 8e 46 f6
    1342513394    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1346613435    mov ax, si                                ; 89 f0
    1346713436    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13468     call 0890ah                               ; e8 67 f9
     13437    call 088cbh                               ; e8 67 f9
    1346913438    mov es, [bp-00ah]                         ; 8e 46 f6
    1347013439    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1357113540    pop bp                                    ; 5d
    1357213541    retn                                      ; c3
    13573 @ahci_read_sectors:                          ; 0xf909e LB 0xa6
     13542@ahci_read_sectors:                          ; 0xf905f LB 0xa6
    1357413543    push bp                                   ; 55
    1357513544    mov bp, sp                                ; 89 e5
     
    1358113550    sub di, strict byte 0000ch                ; 83 ef 0c
    1358213551    cmp di, strict byte 00004h                ; 83 ff 04
    13583     jbe short 090c3h                          ; 76 0f
     13552    jbe short 09084h                          ; 76 0f
    1358413553    push di                                   ; 57
    13585     push 00cd6h                               ; 68 d6 0c
    13586     push 00ce8h                               ; 68 e8 0c
     13554    push 00c74h                               ; 68 74 0c
     13555    push 00c86h                               ; 68 86 0c
    1358713556    push strict byte 00007h                   ; 6a 07
    13588     call 01a6bh                               ; e8 ab 89
     13557    call 01a6bh                               ; e8 ea 89
    1358913558    add sp, strict byte 00008h                ; 83 c4 08
    1359013559    xor bx, bx                                ; 31 db
     
    1360013569    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1360113570    xor ax, ax                                ; 31 c0
    13602     call 08e54h                               ; e8 65 fd
     13571    call 08e15h                               ; e8 65 fd
    1360313572    mov bx, strict word 00025h                ; bb 25 00
    1360413573    mov ax, si                                ; 89 f0
    1360513574    mov dx, word [bp+006h]                    ; 8b 56 06
    13606     call 08a73h                               ; e8 79 f9
     13575    call 08a34h                               ; e8 79 f9
    1360713576    mov word [bp-006h], ax                    ; 89 46 fa
    1360813577    mov es, [bp+006h]                         ; 8e 46 06
     
    1363313602    pop bp                                    ; 5d
    1363413603    retn 00004h                               ; c2 04 00
    13635 @ahci_write_sectors:                         ; 0xf9144 LB 0x84
     13604@ahci_write_sectors:                         ; 0xf9105 LB 0x84
    1363613605    push bp                                   ; 55
    1363713606    mov bp, sp                                ; 89 e5
     
    1364413613    sub dx, strict byte 0000ch                ; 83 ea 0c
    1364513614    cmp dx, strict byte 00004h                ; 83 fa 04
    13646     jbe short 0916dh                          ; 76 0f
     13615    jbe short 0912eh                          ; 76 0f
    1364713616    push dx                                   ; 52
    13648     push 00d07h                               ; 68 07 0d
    13649     push 00ce8h                               ; 68 e8 0c
     13617    push 00ca5h                               ; 68 a5 0c
     13618    push 00c86h                               ; 68 86 0c
    1365013619    push strict byte 00007h                   ; 6a 07
    13651     call 01a6bh                               ; e8 01 89
     13620    call 01a6bh                               ; e8 40 89
    1365213621    add sp, strict byte 00008h                ; 83 c4 08
    1365313622    xor bx, bx                                ; 31 db
     
    1366313632    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1366413633    xor ax, ax                                ; 31 c0
    13665     call 08e54h                               ; e8 bd fc
     13634    call 08e15h                               ; e8 bd fc
    1366613635    mov bx, strict word 00035h                ; bb 35 00
    1366713636    mov ax, si                                ; 89 f0
    1366813637    mov dx, cx                                ; 89 ca
    13669     call 08a73h                               ; e8 d2 f8
     13638    call 08a34h                               ; e8 d2 f8
    1367013639    mov dx, ax                                ; 89 c2
    1367113640    mov es, cx                                ; 8e c1
     
    1368213651    pop bp                                    ; 5d
    1368313652    retn 00004h                               ; c2 04 00
    13684 ahci_cmd_packet_:                            ; 0xf91c8 LB 0x183
     13653ahci_cmd_packet_:                            ; 0xf9189 LB 0x183
    1368513654    push bp                                   ; 55
    1368613655    mov bp, sp                                ; 89 e5
     
    1369413663    mov dx, strict word 0000eh                ; ba 0e 00
    1369513664    mov ax, strict word 00040h                ; b8 40 00
    13696     call 01765h                               ; e8 82 85
     13665    call 01765h                               ; e8 c1 85
    1369713666    mov si, 00122h                            ; be 22 01
    1369813667    mov word [bp-008h], ax                    ; 89 46 f8
    1369913668    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13700     jne short 0920eh                          ; 75 1f
    13701     mov bx, 00e14h                            ; bb 14 0e
     13669    jne short 091cfh                          ; 75 1f
     13670    mov bx, 00db8h                            ; bb b8 0d
    1370213671    mov cx, ds                                ; 8c d9
    1370313672    mov ax, strict word 00004h                ; b8 04 00
    13704     call 01a2ah                               ; e8 30 88
    13705     push 00d1ah                               ; 68 1a 0d
    13706     push 00d2ah                               ; 68 2a 0d
     13673    call 01a2ah                               ; e8 6f 88
     13674    push 00cb8h                               ; 68 b8 0c
     13675    push 00cc8h                               ; 68 c8 0c
    1370713676    push strict byte 00004h                   ; 6a 04
    13708     call 01a6bh                               ; e8 66 88
     13677    call 01a6bh                               ; e8 a5 88
    1370913678    add sp, strict byte 00006h                ; 83 c4 06
    1371013679    mov ax, strict word 00001h                ; b8 01 00
    13711     jmp near 09342h                           ; e9 34 01
     13680    jmp near 09303h                           ; e9 34 01
    1371213681    test byte [bp+004h], 001h                 ; f6 46 04 01
    13713     jne short 09208h                          ; 75 f4
     13682    jne short 091c9h                          ; 75 f4
    1371413683    mov ax, word [bp+006h]                    ; 8b 46 06
    1371513684    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1371713686    sal ax, 1                                 ; d1 e0
    1371813687    rcl dx, 1                                 ; d1 d2
    13719     loop 0921dh                               ; e2 fa
     13688    loop 091deh                               ; e2 fa
    1372013689    mov es, [bp-008h]                         ; 8e 46 f8
    1372113690    mov word [es:si], ax                      ; 26 89 04
     
    1373113700    mov dx, word [bp+008h]                    ; 8b 56 08
    1373213701    xor cx, cx                                ; 31 c9
    13733     call 0a0e0h                               ; e8 8d 0e
     13702    call 0a0a0h                               ; e8 8c 0e
    1373413703    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1373513704    xor di, di                                ; 31 ff
     
    1374813717    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1374913718    xor ax, ax                                ; 31 c0
    13750     call 08e54h                               ; e8 c5 fb
     13719    call 08e15h                               ; e8 c5 fb
    1375113720    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1375213721    push ax                                   ; 50
     
    1375513724    mov ax, 000c0h                            ; b8 c0 00
    1375613725    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13757     call 0a150h                               ; e8 ad 0e
     13726    call 0a110h                               ; e8 ac 0e
    1375813727    mov es, [bp-008h]                         ; 8e 46 f8
    1375913728    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1376213731    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1376313732    test ax, ax                               ; 85 c0
    13764     je short 092e1h                           ; 74 27
     13733    je short 092a2h                           ; 74 27
    1376513734    dec ax                                    ; 48
    1376613735    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1377513744    mov ax, si                                ; 89 f0
    1377613745    mov dx, word [bp-008h]                    ; 8b 56 f8
    13777     call 08a73h                               ; e8 87 f7
     13746    call 08a34h                               ; e8 87 f7
    1377813747    les bx, [bp-00eh]                         ; c4 5e f2
    1377913748    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1380213771    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1380313772    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13804     jne short 09340h                          ; 75 05
     13773    jne short 09301h                          ; 75 05
    1380513774    mov ax, strict word 00004h                ; b8 04 00
    13806     jmp short 09342h                          ; eb 02
     13775    jmp short 09303h                          ; eb 02
    1380713776    xor ax, ax                                ; 31 c0
    1380813777    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1381113780    pop bp                                    ; 5d
    1381213781    retn 0000ch                               ; c2 0c 00
    13813 ahci_port_detect_device_:                    ; 0xf934b LB 0x4b1
     13782ahci_port_detect_device_:                    ; 0xf930c LB 0x4b1
    1381413783    push bp                                   ; 55
    1381513784    mov bp, sp                                ; 89 e5
     
    1382313792    movzx di, bl                              ; 0f b6 fb
    1382413793    mov bx, di                                ; 89 fb
    13825     call 08e54h                               ; e8 ef fa
     13794    call 08e15h                               ; e8 ef fa
    1382613795    mov dx, strict word 0000eh                ; ba 0e 00
    1382713796    mov ax, strict word 00040h                ; b8 40 00
    13828     call 01765h                               ; e8 f7 83
     13797    call 01765h                               ; e8 36 84
    1382913798    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1383013799    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1389513864    mov bx, strict word 0000fh                ; bb 0f 00
    1389613865    xor cx, cx                                ; 31 c9
    13897     call 088efh                               ; e8 d7 f4
     13866    call 088b0h                               ; e8 d7 f4
    1389813867    test ax, ax                               ; 85 c0
    13899     je near 097f4h                            ; 0f 84 d6 03
     13868    je near 097b5h                            ; 0f 84 d6 03
    1390013869    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1390113870    sal ax, 007h                              ; c1 e0 07
     
    1392513894    mov bx, strict word 0000fh                ; bb 0f 00
    1392613895    xor cx, cx                                ; 31 c9
    13927     call 088efh                               ; e8 8b f4
     13896    call 088b0h                               ; e8 8b f4
    1392813897    cmp ax, strict word 00001h                ; 3d 01 00
    13929     je short 0941eh                           ; 74 b5
     13898    je short 093dfh                           ; 74 b5
    1393013899    push strict byte 00000h                   ; 6a 00
    1393113900    mov bx, strict word 0000fh                ; bb 0f 00
     
    1393313902    mov ax, di                                ; 89 f8
    1393413903    mov dx, word [bp-022h]                    ; 8b 56 de
    13935     call 088efh                               ; e8 77 f4
     13904    call 088b0h                               ; e8 77 f4
    1393613905    cmp ax, strict word 00003h                ; 3d 03 00
    13937     jne near 097f4h                           ; 0f 85 75 03
     13906    jne near 097b5h                           ; 0f 85 75 03
    1393813907    mov ax, word [bp-018h]                    ; 8b 46 e8
    1393913908    add ax, 00130h                            ; 05 30 01
     
    1396213931    mov byte [bp-008h], al                    ; 88 46 f8
    1396313932    cmp AL, strict byte 004h                  ; 3c 04
    13964     jnc near 097f4h                           ; 0f 83 2f 03
     13933    jnc near 097b5h                           ; 0f 83 2f 03
    1396513934    mov ax, word [bp-018h]                    ; 8b 46 e8
    1396613935    add ax, 00118h                            ; 05 18 01
     
    1401413983    add cl, 00ch                              ; 80 c1 0c
    1401513984    test dx, dx                               ; 85 d2
    14016     jne near 0974ah                           ; 0f 85 0d 02
     13985    jne near 0970bh                           ; 0f 85 0d 02
    1401713986    cmp di, 00101h                            ; 81 ff 01 01
    14018     jne near 0974ah                           ; 0f 85 05 02
     13987    jne near 0970bh                           ; 0f 85 05 02
    1401913988    les bx, [bp-010h]                         ; c4 5e f0
    1402013989    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1403013999    mov ax, word [bp-010h]                    ; 8b 46 f0
    1403114000    mov dx, es                                ; 8c c2
    14032     call 08a73h                               ; e8 fa f4
     14001    call 08a34h                               ; e8 fa f4
    1403314002    mov byte [bp-00ch], cl                    ; 88 4e f4
    1403414003    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     
    1404714016    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
    1404814017    cmp di, 00fffh                            ; 81 ff ff 0f
    14049     jne short 095d2h                          ; 75 1e
     14018    jne short 09593h                          ; 75 1e
    1405014019    cmp dx, strict byte 0ffffh                ; 83 fa ff
    14051     jne short 095d2h                          ; 75 19
     14020    jne short 09593h                          ; 75 19
    1405214021    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
    1405314022    mov word [bp-014h], dx                    ; 89 56 ec
     
    1408614055    mov al, byte [bp-008h]                    ; 8a 46 f8
    1408714056    cmp AL, strict byte 001h                  ; 3c 01
    14088     jc short 0964bh                           ; 72 0c
    14089     jbe short 09653h                          ; 76 12
     14057    jc short 0960ch                           ; 72 0c
     14058    jbe short 09614h                          ; 76 12
    1409014059    cmp AL, strict byte 003h                  ; 3c 03
    14091     je short 0965bh                           ; 74 16
     14060    je short 0961ch                           ; 74 16
    1409214061    cmp AL, strict byte 002h                  ; 3c 02
    14093     je short 09657h                           ; 74 0e
    14094     jmp short 096a4h                          ; eb 59
     14062    je short 09618h                           ; 74 0e
     14063    jmp short 09665h                          ; eb 59
    1409514064    test al, al                               ; 84 c0
    14096     jne short 096a4h                          ; 75 55
     14065    jne short 09665h                          ; 75 55
    1409714066    mov DL, strict byte 040h                  ; b2 40
    14098     jmp short 0965dh                          ; eb 0a
     14067    jmp short 0961eh                          ; eb 0a
    1409914068    mov DL, strict byte 048h                  ; b2 48
    14100     jmp short 0965dh                          ; eb 06
     14069    jmp short 0961eh                          ; eb 06
    1410114070    mov DL, strict byte 050h                  ; b2 50
    14102     jmp short 0965dh                          ; eb 02
     14071    jmp short 0961eh                          ; eb 02
    1410314072    mov DL, strict byte 058h                  ; b2 58
    1410414073    mov al, dl                                ; 88 d0
     
    1410614075    movzx bx, al                              ; 0f b6 d8
    1410714076    mov ax, bx                                ; 89 d8
    14108     call 017a5h                               ; e8 3c 81
     14077    call 017a5h                               ; e8 7b 81
    1410914078    test al, al                               ; 84 c0
    14110     je short 096a4h                           ; 74 37
     14079    je short 09665h                           ; 74 37
    1411114080    mov al, dl                                ; 88 d0
    1411214081    db  0feh, 0c0h
    1411314082    ; inc al                                    ; fe c0
    1411414083    xor ah, ah                                ; 30 e4
    14115     call 017a5h                               ; e8 2f 81
     14084    call 017a5h                               ; e8 6e 81
    1411614085    xor ah, ah                                ; 30 e4
    1411714086    mov si, ax                                ; 89 c6
    1411814087    sal si, 008h                              ; c1 e6 08
    1411914088    movzx ax, dl                              ; 0f b6 c2
    14120     call 017a5h                               ; e8 22 81
     14089    call 017a5h                               ; e8 61 81
    1412114090    xor ah, ah                                ; 30 e4
    1412214091    add ax, si                                ; 01 f0
     
    1412514094    add AL, strict byte 002h                  ; 04 02
    1412614095    xor ah, ah                                ; 30 e4
    14127     call 017a5h                               ; e8 12 81
     14096    call 017a5h                               ; e8 51 81
    1412814097    xor ah, ah                                ; 30 e4
    1412914098    mov word [bp-02ah], ax                    ; 89 46 d6
    1413014099    mov ax, bx                                ; 89 d8
    14131     call 017a5h                               ; e8 08 81
     14100    call 017a5h                               ; e8 47 81
    1413214101    xor ah, ah                                ; 30 e4
    1413314102    mov word [bp-026h], ax                    ; 89 46 da
    14134     jmp short 096b4h                          ; eb 10
     14103    jmp short 09675h                          ; eb 10
    1413514104    push dword [bp-016h]                      ; 66 ff 76 ea
    1413614105    push di                                   ; 57
     
    1413814107    mov dx, ss                                ; 8c d2
    1413914108    lea ax, [bp-02ah]                         ; 8d 46 d6
    14140     call 05ad0h                               ; e8 1c c4
    14141     mov bx, 00e14h                            ; bb 14 0e
     14109    call 05ad0h                               ; e8 5b c4
     14110    mov bx, 00db8h                            ; bb b8 0d
    1414214111    mov cx, ds                                ; 8c d9
    1414314112    mov ax, strict word 00004h                ; b8 04 00
    14144     call 01a2ah                               ; e8 6b 83
     14113    call 01a2ah                               ; e8 aa 83
    1414514114    push dword [bp-016h]                      ; 66 ff 76 ea
    1414614115    push di                                   ; 57
     
    1415914128    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1416014129    push ax                                   ; 50
    14161     push 00d4ah                               ; 68 4a 0d
     14130    push 00ce8h                               ; 68 e8 0c
    1416214131    push strict byte 00004h                   ; 6a 04
    14163     call 01a6bh                               ; e8 7d 83
     14132    call 01a6bh                               ; e8 bc 83
    1416414133    add sp, strict byte 0001ch                ; 83 c4 1c
    1416514134    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1419014159    mov dx, strict word 00075h                ; ba 75 00
    1419114160    mov ax, strict word 00040h                ; b8 40 00
    14192     call 01749h                               ; e8 10 80
     14161    call 01749h                               ; e8 4f 80
    1419314162    db  0feh, 0c0h
    1419414163    ; inc al                                    ; fe c0
     
    1419614165    mov dx, strict word 00075h                ; ba 75 00
    1419714166    mov ax, strict word 00040h                ; b8 40 00
    14198     call 01757h                               ; e8 10 80
    14199     jmp near 097e6h                           ; e9 9c 00
     14167    call 01757h                               ; e8 4f 80
     14168    jmp near 097a7h                           ; e9 9c 00
    1420014169    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14201     jne near 097e6h                           ; 0f 85 94 00
     14170    jne near 097a7h                           ; 0f 85 94 00
    1420214171    cmp di, 00101h                            ; 81 ff 01 01
    14203     jne near 097e6h                           ; 0f 85 8c 00
     14172    jne near 097a7h                           ; 0f 85 8c 00
    1420414173    les bx, [bp-010h]                         ; c4 5e f0
    1420514174    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1421514184    mov ax, word [bp-010h]                    ; 8b 46 f0
    1421614185    mov dx, es                                ; 8c c2
    14217     call 08a73h                               ; e8 e5 f2
     14186    call 08a34h                               ; e8 e5 f2
    1421814187    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1421914188    db  00fh, 095h, 0c0h
     
    1425214221    pop bp                                    ; 5d
    1425314222    retn                                      ; c3
    14254 ahci_mem_alloc_:                             ; 0xf97fc LB 0x43
     14223ahci_mem_alloc_:                             ; 0xf97bd LB 0x43
    1425514224    push bp                                   ; 55
    1425614225    mov bp, sp                                ; 89 e5
     
    1426214231    mov dx, 00413h                            ; ba 13 04
    1426314232    xor ax, ax                                ; 31 c0
    14264     call 01765h                               ; e8 59 7f
     14233    call 01765h                               ; e8 98 7f
    1426514234    test ax, ax                               ; 85 c0
    14266     je short 09835h                           ; 74 25
     14235    je short 097f6h                           ; 74 25
    1426714236    dec ax                                    ; 48
    1426814237    mov bx, ax                                ; 89 c3
     
    1427114240    sal ax, 1                                 ; d1 e0
    1427214241    rcl dx, 1                                 ; d1 d2
    14273     loop 09818h                               ; e2 fa
     14242    loop 097d9h                               ; e2 fa
    1427414243    mov si, ax                                ; 89 c6
    1427514244    mov di, dx                                ; 89 d7
     
    1427714246    shr di, 1                                 ; d1 ef
    1427814247    rcr si, 1                                 ; d1 de
    14279     loop 09825h                               ; e2 fa
     14248    loop 097e6h                               ; e2 fa
    1428014249    mov dx, 00413h                            ; ba 13 04
    1428114250    xor ax, ax                                ; 31 c0
    14282     call 01773h                               ; e8 40 7f
     14251    call 01773h                               ; e8 7f 7f
    1428314252    mov ax, si                                ; 89 f0
    1428414253    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1429014259    pop bp                                    ; 5d
    1429114260    retn                                      ; c3
    14292 ahci_hba_init_:                              ; 0xf983f LB 0x166
     14261ahci_hba_init_:                              ; 0xf9800 LB 0x166
    1429314262    push bp                                   ; 55
    1429414263    mov bp, sp                                ; 89 e5
     
    1430214271    mov dx, strict word 0000eh                ; ba 0e 00
    1430314272    mov ax, strict word 00040h                ; b8 40 00
    14304     call 01765h                               ; e8 10 7f
     14273    call 01765h                               ; e8 4f 7f
    1430514274    mov bx, 00122h                            ; bb 22 01
    1430614275    mov di, ax                                ; 89 c7
     
    1431914288    shr eax, 010h                             ; 66 c1 e8 10
    1432014289    xchg dx, ax                               ; 92
    14321     call 097fch                               ; e8 83 ff
     14290    call 097bdh                               ; e8 83 ff
    1432214291    mov word [bp-010h], ax                    ; 89 46 f0
    1432314292    test ax, ax                               ; 85 c0
    14324     je near 09984h                            ; 0f 84 02 01
     14293    je near 09945h                            ; 0f 84 02 01
    1432514294    mov ax, word [bp-010h]                    ; 8b 46 f0
    1432614295    mov es, di                                ; 8e c7
     
    1437214341    xchg dx, ax                               ; 92
    1437314342    test AL, strict byte 001h                 ; a8 01
    14374     jne short 098d8h                          ; 75 de
     14343    jne short 09899h                          ; 75 de
    1437514344    xor ax, ax                                ; 31 c0
    1437614345    xor cx, cx                                ; 31 c9
     
    1439014359    mov bx, strict word 0001fh                ; bb 1f 00
    1439114360    xor cx, cx                                ; 31 c9
    14392     call 088efh                               ; e8 d1 ef
     14361    call 088b0h                               ; e8 d1 ef
    1439314362    db  0feh, 0c0h
    1439414363    ; inc al                                    ; fe c0
    1439514364    mov byte [bp-00eh], al                    ; 88 46 f2
    1439614365    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14397     jmp short 09949h                          ; eb 20
     14366    jmp short 0990ah                          ; eb 20
    1439814367    xor al, al                                ; 30 c0
    1439914368    test al, al                               ; 84 c0
    14400     je short 09940h                           ; 74 11
     14369    je short 09901h                           ; 74 11
    1440114370    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1440214371    xor ax, ax                                ; 31 c0
    1440314372    mov dx, word [bp-010h]                    ; 8b 56 f0
    14404     call 0934bh                               ; e8 10 fa
     14373    call 0930ch                               ; e8 10 fa
    1440514374    dec byte [bp-00eh]                        ; fe 4e f2
    14406     je short 09982h                           ; 74 42
     14375    je short 09943h                           ; 74 42
    1440714376    inc byte [bp-00ch]                        ; fe 46 f4
    1440814377    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14409     jnc short 09982h                          ; 73 39
     14378    jnc short 09943h                          ; 73 39
    1441014379    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1441114380    mov bx, strict word 00001h                ; bb 01 00
    1441214381    xor di, di                                ; 31 ff
    14413     jcxz 0995ah                               ; e3 06
     14382    jcxz 0991bh                               ; e3 06
    1441414383    sal bx, 1                                 ; d1 e3
    1441514384    rcl di, 1                                 ; d1 d7
    14416     loop 09954h                               ; e2 fa
     14385    loop 09915h                               ; e2 fa
    1441714386    mov ax, strict word 0000ch                ; b8 0c 00
    1441814387    xor cx, cx                                ; 31 c9
     
    1443014399    xchg dx, ax                               ; 92
    1443114400    test dx, di                               ; 85 fa
    14432     jne short 0997eh                          ; 75 04
     14401    jne short 0993fh                          ; 75 04
    1443314402    test ax, bx                               ; 85 d8
    14434     je short 09929h                           ; 74 ab
     14403    je short 098eah                           ; 74 ab
    1443514404    mov AL, strict byte 001h                  ; b0 01
    14436     jmp short 0992bh                          ; eb a9
     14405    jmp short 098ech                          ; eb a9
    1443714406    xor ax, ax                                ; 31 c0
    1443814407    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1444414413    pop bp                                    ; 5d
    1444514414    retn                                      ; c3
    14446     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 075h, 09ah, 053h, 09ah, 059h, 09ah, 05fh, 09ah, 065h
    14447     db  09ah, 06bh, 09ah, 071h, 09ah, 075h, 09ah
    14448 _ahci_init:                                  ; 0xf99a5 LB 0x116
     14415    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 036h, 09ah, 014h, 09ah, 01ah, 09ah, 020h, 09ah, 026h
     14416    db  09ah, 02ch, 09ah, 032h, 09ah, 036h, 09ah
     14417_ahci_init:                                  ; 0xf9966 LB 0x116
    1444914418    push bp                                   ; 55
    1445014419    mov bp, sp                                ; 89 e5
     
    1445414423    mov ax, 00601h                            ; b8 01 06
    1445514424    mov dx, strict word 00001h                ; ba 01 00
    14456     call 09edbh                               ; e8 25 05
     14425    call 09e9ch                               ; e8 25 05
    1445714426    mov bx, ax                                ; 89 c3
    1445814427    cmp ax, strict word 0ffffh                ; 3d ff ff
    14459     je near 09ab4h                            ; 0f 84 f5 00
     14428    je near 09a75h                            ; 0f 84 f5 00
    1446014429    xor al, al                                ; 30 c0
    1446114430    shr ax, 008h                              ; c1 e8 08
     
    1446514434    xor ah, ah                                ; 30 e4
    1446614435    mov bx, strict word 00034h                ; bb 34 00
    14467     call 09f2bh                               ; e8 56 05
     14436    call 09eech                               ; e8 56 05
    1446814437    mov cl, al                                ; 88 c1
    1446914438    test cl, cl                               ; 84 c9
    14470     je short 099feh                           ; 74 23
     14439    je short 099bfh                           ; 74 23
    1447114440    movzx bx, cl                              ; 0f b6 d9
    1447214441    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1447414443    mov dx, di                                ; 89 fa
    1447514444    mov ax, si                                ; 89 f0
    14476     call 09f2bh                               ; e8 3e 05
     14445    call 09eech                               ; e8 3e 05
    1447714446    cmp AL, strict byte 012h                  ; 3c 12
    14478     je short 099feh                           ; 74 0d
     14447    je short 099bfh                           ; 74 0d
    1447914448    mov al, cl                                ; 88 c8
    1448014449    db  0feh, 0c0h
     
    1448314452    mov dx, di                                ; 89 fa
    1448414453    mov ax, si                                ; 89 f0
    14485     jmp short 099d2h                          ; eb d4
     14454    jmp short 09993h                          ; eb d4
    1448614455    test cl, cl                               ; 84 c9
    14487     je near 09ab4h                            ; 0f 84 b0 00
     14456    je near 09a75h                            ; 0f 84 b0 00
    1448814457    add cl, 002h                              ; 80 c1 02
    1448914458    movzx bx, cl                              ; 0f b6 d9
     
    1449214461    mov dx, si                                ; 89 f2
    1449314462    mov ax, di                                ; 89 f8
    14494     call 09f2bh                               ; e8 12 05
     14463    call 09eech                               ; e8 12 05
    1449514464    cmp AL, strict byte 010h                  ; 3c 10
    14496     jne near 09ab4h                           ; 0f 85 95 00
     14465    jne near 09a75h                           ; 0f 85 95 00
    1449714466    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1449814467    mov al, cl                                ; 88 c8
     
    1450114470    mov dx, si                                ; 89 f2
    1450214471    mov ax, di                                ; 89 f8
    14503     call 09f4fh                               ; e8 1e 05
     14472    call 09f10h                               ; e8 1e 05
    1450414473    mov dx, ax                                ; 89 c2
    1450514474    and ax, strict word 0000fh                ; 25 0f 00
    1450614475    sub ax, strict word 00004h                ; 2d 04 00
    1450714476    cmp ax, strict word 0000bh                ; 3d 0b 00
    14508     jnbe short 09a75h                         ; 77 37
     14477    jnbe short 09a36h                         ; 77 37
    1450914478    push CS                                   ; 0e
    1451014479    pop ES                                    ; 07
    1451114480    mov cx, strict word 00008h                ; b9 08 00
    14512     mov di, 0998eh                            ; bf 8e 99
     14481    mov di, 0994fh                            ; bf 4f 99
    1451314482    repne scasb                               ; f2 ae
    1451414483    sal cx, 1                                 ; d1 e1
    1451514484    mov di, cx                                ; 89 cf
    14516     mov ax, word [cs:di-0666bh]               ; 2e 8b 85 95 99
     14485    mov ax, word [cs:di-066aah]               ; 2e 8b 85 56 99
    1451714486    jmp ax                                    ; ff e0
    1451814487    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    14519     jmp short 09a75h                          ; eb 1c
     14488    jmp short 09a36h                          ; eb 1c
    1452014489    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    14521     jmp short 09a75h                          ; eb 16
     14490    jmp short 09a36h                          ; eb 16
    1452214491    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    14523     jmp short 09a75h                          ; eb 10
     14492    jmp short 09a36h                          ; eb 10
    1452414493    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    14525     jmp short 09a75h                          ; eb 0a
     14494    jmp short 09a36h                          ; eb 0a
    1452614495    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    14527     jmp short 09a75h                          ; eb 04
     14496    jmp short 09a36h                          ; eb 04
    1452814497    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1452914498    mov cx, dx                                ; 89 d1
     
    1453214501    mov al, byte [bp-006h]                    ; 8a 46 fa
    1453314502    test al, al                               ; 84 c0
    14534     je short 09ab4h                           ; 74 30
     14503    je short 09a75h                           ; 74 30
    1453514504    movzx bx, al                              ; 0f b6 d8
    1453614505    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1453814507    mov dx, di                                ; 89 fa
    1453914508    mov ax, si                                ; 89 f0
    14540     call 09f71h                               ; e8 db 04
     14509    call 09f32h                               ; e8 db 04
    1454114510    test AL, strict byte 001h                 ; a8 01
    14542     je short 09ab4h                           ; 74 1a
     14511    je short 09a75h                           ; 74 1a
    1454314512    and AL, strict byte 0f0h                  ; 24 f0
    1454414513    add ax, cx                                ; 01 c8
     
    1454814517    mov dx, di                                ; 89 fa
    1454914518    mov ax, si                                ; 89 f0
    14550     call 09f98h                               ; e8 ea 04
     14519    call 09f59h                               ; e8 ea 04
    1455114520    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14552     call 0983fh                               ; e8 8b fd
     14521    call 09800h                               ; e8 8b fd
    1455314522    lea sp, [bp-004h]                         ; 8d 66 fc
    1455414523    pop di                                    ; 5f
     
    1455614525    pop bp                                    ; 5d
    1455714526    retn                                      ; c3
    14558 apm_out_str_:                                ; 0xf9abb LB 0x39
     14527apm_out_str_:                                ; 0xf9a7c LB 0x39
    1455914528    push bp                                   ; 55
    1456014529    mov bp, sp                                ; 89 e5
     
    1456214531    mov bx, ax                                ; 89 c3
    1456314532    cmp byte [bx], 000h                       ; 80 3f 00
    14564     je short 09ad0h                           ; 74 0a
     14533    je short 09a91h                           ; 74 0a
    1456514534    mov al, byte [bx]                         ; 8a 07
    1456614535    out DX, AL                                ; ee
     
    1456914538    db  00ah, 0c0h
    1457014539    ; or al, al                                 ; 0a c0
    14571     jne short 09ac8h                          ; 75 f8
     14540    jne short 09a89h                          ; 75 f8
    1457214541    lea sp, [bp-002h]                         ; 8d 66 fe
    1457314542    pop bx                                    ; 5b
    1457414543    pop bp                                    ; 5d
    1457514544    retn                                      ; c3
    14576     pop SS                                    ; 17
     14545    fcomp dword [bp+si-0645ch]                ; d8 9a a4 9b
     14546    jmp far 0a49bh:0059ah                     ; ea 9a 05 9b a4
    1457714547    wait                                      ; 9b
    14578     jcxz 09a75h                               ; e3 9b
    14579     sub word [bp+di-064bch], bx               ; 29 9b 44 9b
    14580     jcxz 09a7bh                               ; e3 9b
    14581     outsw                                     ; 6f
     14548    xor byte [bp+di-0645ch], bl               ; 30 9b a4 9b
     14549    xor ax, 0799bh                            ; 35 9b 79
    1458214550    wait                                      ; 9b
    14583     jcxz 09a7fh                               ; e3 9b
    14584     je short 09a81h                           ; 74 9b
    14585     mov ax, 0b89bh                            ; b8 9b b8
     14551    jns short 09a46h                          ; 79 9b
     14552    jns short 09a48h                          ; 79 9b
     14553    je short 09a4ah                           ; 74 9b
     14554    jns short 09a4ch                          ; 79 9b
     14555    jns short 09a4eh                          ; 79 9b
     14556    insw                                      ; 6d
    1458614557    wait                                      ; 9b
    14587     mov ax, 0b39bh                            ; b8 9b b3
    14588     wait                                      ; 9b
    14589     mov ax, 0b89bh                            ; b8 9b b8
    14590     wait                                      ; 9b
    14591     lodsb                                     ; ac
    14592     wait                                      ; 9b
    14593 _apm_function:                               ; 0xf9af4 LB 0xf5
     14558_apm_function:                               ; 0xf9ab5 LB 0xf5
    1459414559    push bp                                   ; 55
    1459514560    mov bp, sp                                ; 89 e5
     
    1459914564    xor ah, ah                                ; 30 e4
    1460014565    cmp ax, strict word 0000eh                ; 3d 0e 00
    14601     jnbe near 09bb8h                          ; 0f 87 b0 00
     14566    jnbe near 09b79h                          ; 0f 87 b0 00
    1460214567    mov bx, ax                                ; 89 c3
    1460314568    add bx, ax                                ; 01 c3
    1460414569    mov dx, word [bp+018h]                    ; 8b 56 18
    1460514570    or dl, 001h                               ; 80 ca 01
    14606     jmp word [cs:bx-0652ah]                   ; 2e ff a7 d6 9a
     14571    jmp word [cs:bx-06569h]                   ; 2e ff a7 97 9a
    1460714572    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1460814573    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1460914574    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14610     jmp near 09be3h                           ; e9 ba 00
     14575    jmp near 09ba4h                           ; e9 ba 00
    1461114576    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14612     mov word [bp+00ch], 0a1c4h                ; c7 46 0c c4 a1
     14577    mov word [bp+00ch], 0a184h                ; c7 46 0c 84 a1
    1461314578    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1461414579    mov ax, strict word 0fff0h                ; b8 f0 ff
    1461514580    mov word [bp+006h], ax                    ; 89 46 06
    1461614581    mov word [bp+004h], ax                    ; 89 46 04
    14617     jmp near 09be3h                           ; e9 9f 00
     14582    jmp near 09ba4h                           ; e9 9f 00
    1461814583    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1461914584    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1462814593    mov si, ax                                ; 89 c6
    1462914594    sal esi, 010h                             ; 66 c1 e6 10
    14630     jmp near 09be3h                           ; e9 74 00
     14595    jmp near 09ba4h                           ; e9 74 00
    1463114596    sti                                       ; fb
    1463214597    hlt                                       ; f4
    14633     jmp near 09be3h                           ; e9 6f 00
     14598    jmp near 09ba4h                           ; e9 6f 00
    1463414599    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14635     je short 09b99h                           ; 74 1f
     14600    je short 09b5ah                           ; 74 1f
    1463614601    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14637     je short 09b91h                           ; 74 11
     14602    je short 09b52h                           ; 74 11
    1463814603    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14639     jne short 09ba1h                          ; 75 1b
     14604    jne short 09b62h                          ; 75 1b
    1464014605    mov dx, 0040fh                            ; ba 0f 04
    14641     mov ax, 00d84h                            ; b8 84 0d
    14642     call 09abbh                               ; e8 2c ff
    14643     jmp short 09be3h                          ; eb 52
     14606    mov ax, 00d22h                            ; b8 22 0d
     14607    call 09a7ch                               ; e8 2c ff
     14608    jmp short 09ba4h                          ; eb 52
    1464414609    mov dx, 0040fh                            ; ba 0f 04
    14645     mov ax, 00d8ch                            ; b8 8c 0d
    14646     jmp short 09b8ch                          ; eb f3
     14610    mov ax, 00d2ah                            ; b8 2a 0d
     14611    jmp short 09b4dh                          ; eb f3
    1464714612    mov dx, 0040fh                            ; ba 0f 04
    14648     mov ax, 00d94h                            ; b8 94 0d
    14649     jmp short 09b8ch                          ; eb eb
     14613    mov ax, 00d32h                            ; b8 32 0d
     14614    jmp short 09b4dh                          ; eb eb
    1465014615    or ah, 00ah                               ; 80 cc 0a
    1465114616    mov word [bp+012h], ax                    ; 89 46 12
    1465214617    mov word [bp+018h], dx                    ; 89 56 18
    14653     jmp short 09be3h                          ; eb 37
     14618    jmp short 09ba4h                          ; eb 37
    1465414619    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14655     jmp short 09be3h                          ; eb 30
     14620    jmp short 09ba4h                          ; eb 30
    1465614621    or ah, 080h                               ; 80 cc 80
    14657     jmp short 09ba4h                          ; eb ec
    14658     mov bx, 00e14h                            ; bb 14 0e
     14622    jmp short 09b65h                          ; eb ec
     14623    mov bx, 00db8h                            ; bb b8 0d
    1465914624    mov cx, ds                                ; 8c d9
    1466014625    mov ax, strict word 00004h                ; b8 04 00
    14661     call 01a2ah                               ; e8 67 7e
     14626    call 01a2ah                               ; e8 a6 7e
    1466214627    push word [bp+00ch]                       ; ff 76 0c
    1466314628    push word [bp+012h]                       ; ff 76 12
    14664     push 00d9dh                               ; 68 9d 0d
     14629    push 00d3bh                               ; 68 3b 0d
    1466514630    push strict byte 00004h                   ; 6a 04
    14666     call 01a6bh                               ; e8 9a 7e
     14631    call 01a6bh                               ; e8 d9 7e
    1466714632    add sp, strict byte 00008h                ; 83 c4 08
    1466814633    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1467514640    pop bp                                    ; 5d
    1467614641    retn                                      ; c3
    14677 pci16_select_reg_:                           ; 0xf9be9 LB 0x24
     14642pci16_select_reg_:                           ; 0xf9baa LB 0x24
    1467814643    push bp                                   ; 55
    1467914644    mov bp, sp                                ; 89 e5
     
    1469214657    pop bp                                    ; 5d
    1469314658    retn                                      ; c3
    14694 pci16_find_device_:                          ; 0xf9c0d LB 0xf7
     14659pci16_find_device_:                          ; 0xf9bce LB 0xf7
    1469514660    push bp                                   ; 55
    1469614661    mov bp, sp                                ; 89 e5
     
    1470614671    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1470714672    test bl, 007h                             ; f6 c3 07
    14708     jne short 09c55h                          ; 75 2d
     14673    jne short 09c16h                          ; 75 2d
    1470914674    mov dx, strict word 0000eh                ; ba 0e 00
    1471014675    mov ax, bx                                ; 89 d8
    14711     call 09be9h                               ; e8 b9 ff
     14676    call 09baah                               ; e8 b9 ff
    1471214677    mov dx, 00cfeh                            ; ba fe 0c
    1471314678    in AL, DX                                 ; ec
     
    1471614681    mov byte [bp-006h], al                    ; 88 46 fa
    1471714682    cmp AL, strict byte 0ffh                  ; 3c ff
    14718     jne short 09c43h                          ; 75 06
     14683    jne short 09c04h                          ; 75 06
    1471914684    add bx, strict byte 00008h                ; 83 c3 08
    14720     jmp near 09cd6h                           ; e9 93 00
     14685    jmp near 09c97h                           ; e9 93 00
    1472114686    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14722     je short 09c50h                           ; 74 07
     14687    je short 09c11h                           ; 74 07
    1472314688    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    14724     jmp short 09c55h                          ; eb 05
     14689    jmp short 09c16h                          ; eb 05
    1472514690    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1472614691    mov al, byte [bp-006h]                    ; 8a 46 fa
    1472714692    and AL, strict byte 007h                  ; 24 07
    1472814693    cmp AL, strict byte 001h                  ; 3c 01
    14729     jne short 09c7dh                          ; 75 1f
     14694    jne short 09c3eh                          ; 75 1f
    1473014695    mov ax, bx                                ; 89 d8
    1473114696    shr ax, 008h                              ; c1 e8 08
    1473214697    test ax, ax                               ; 85 c0
    14733     jne short 09c7dh                          ; 75 16
     14698    jne short 09c3eh                          ; 75 16
    1473414699    mov dx, strict word 0001ah                ; ba 1a 00
    1473514700    mov ax, bx                                ; 89 d8
    14736     call 09be9h                               ; e8 7a ff
     14701    call 09baah                               ; e8 7a ff
    1473714702    mov dx, 00cfeh                            ; ba fe 0c
    1473814703    in AL, DX                                 ; ec
     
    1474014705    ; sub ah, ah                                ; 2a e4
    1474114706    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14742     jbe short 09c7dh                          ; 76 03
     14707    jbe short 09c3eh                          ; 76 03
    1474314708    mov byte [bp-008h], al                    ; 88 46 f8
    1474414709    test di, di                               ; 85 ff
    14745     je short 09c86h                           ; 74 05
     14710    je short 09c47h                           ; 74 05
    1474614711    mov dx, strict word 00008h                ; ba 08 00
    14747     jmp short 09c88h                          ; eb 02
     14712    jmp short 09c49h                          ; eb 02
    1474814713    xor dx, dx                                ; 31 d2
    1474914714    mov ax, bx                                ; 89 d8
    14750     call 09be9h                               ; e8 5c ff
     14715    call 09baah                               ; e8 5c ff
    1475114716    mov dx, 00cfch                            ; ba fc 0c
    1475214717    in eax, DX                                ; 66 ed
     
    1475914724    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1476014725    test di, di                               ; 85 ff
    14761     je short 09cb7h                           ; 74 0f
     14726    je short 09c78h                           ; 74 0f
    1476214727    mov cx, strict word 00008h                ; b9 08 00
    1476314728    shr dx, 1                                 ; d1 ea
    1476414729    rcr ax, 1                                 ; d1 d8
    14765     loop 09cabh                               ; e2 fa
     14730    loop 09c6ch                               ; e2 fa
    1476614731    mov word [bp-00eh], ax                    ; 89 46 f2
    1476714732    mov word [bp-00ch], dx                    ; 89 56 f4
    1476814733    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1476914734    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14770     jne short 09cc7h                          ; 75 08
     14735    jne short 09c88h                          ; 75 08
    1477114736    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1477214737    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14773     je short 09ccdh                           ; 74 06
     14738    je short 09c8eh                           ; 74 06
    1477414739    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    14775     je short 09cd3h                           ; 74 06
     14740    je short 09c94h                           ; 74 06
    1477614741    dec si                                    ; 4e
    1477714742    cmp si, strict byte 0ffffh                ; 83 fe ff
    14778     je short 09ce5h                           ; 74 12
     14743    je short 09ca6h                           ; 74 12
    1477914744    add bx, word [bp-00ah]                    ; 03 5e f6
    1478014745    mov dx, bx                                ; 89 da
     
    1478214747    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1478314748    cmp dx, ax                                ; 39 c2
    14784     jbe near 09c23h                           ; 0f 86 3e ff
     14749    jbe near 09be4h                           ; 0f 86 3e ff
    1478514750    cmp si, strict byte 0ffffh                ; 83 fe ff
    14786     jne short 09ceeh                          ; 75 04
     14751    jne short 09cafh                          ; 75 04
    1478714752    mov ax, bx                                ; 89 d8
    14788     jmp short 09cf1h                          ; eb 03
     14753    jmp short 09cb2h                          ; eb 03
    1478914754    mov ax, strict word 0ffffh                ; b8 ff ff
    1479014755    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1479314758    pop bp                                    ; 5d
    1479414759    retn                                      ; c3
    14795     out strict byte 09dh, AL                  ; e6 9d
    14796     add byte [bp-061edh], bl                  ; 00 9e 13 9e
    14797     sub byte [bp-061c5h], bl                  ; 28 9e 3b 9e
    14798     dec si                                    ; 4e
     14760    cmpsw                                     ; a7
     14761    popfw                                     ; 9d
     14762    rcr word [di-0622ch], 0e9h                ; c1 9d d4 9d e9
     14763    popfw                                     ; 9d
     14764    cld                                       ; fc
     14765    popfw                                     ; 9d
     14766    db  00fh
    1479914767    sahf                                      ; 9e
    14800 _pci16_function:                             ; 0xf9d04 LB 0x1d7
     14768_pci16_function:                             ; 0xf9cc5 LB 0x1d7
    1480114769    push bp                                   ; 55
    1480214770    mov bp, sp                                ; 89 e5
     
    1481214780    xor ah, ah                                ; 30 e4
    1481314781    cmp bx, strict byte 00003h                ; 83 fb 03
    14814     jc short 09d3dh                           ; 72 1a
    14815     jbe short 09d95h                          ; 76 70
     14782    jc short 09cfeh                           ; 72 1a
     14783    jbe short 09d56h                          ; 76 70
    1481614784    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14817     je near 09e62h                            ; 0f 84 36 01
     14785    je near 09e23h                            ; 0f 84 36 01
    1481814786    cmp bx, strict byte 00008h                ; 83 fb 08
    14819     jc near 09ea7h                            ; 0f 82 74 01
     14787    jc near 09e68h                            ; 0f 82 74 01
    1482014788    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14821     jbe near 09dbah                           ; 0f 86 80 00
    14822     jmp near 09ea7h                           ; e9 6a 01
     14789    jbe near 09d7bh                           ; 0f 86 80 00
     14790    jmp near 09e68h                           ; e9 6a 01
    1482314791    cmp bx, strict byte 00002h                ; 83 fb 02
    14824     je short 09d65h                           ; 74 23
     14792    je short 09d26h                           ; 74 23
    1482514793    cmp bx, strict byte 00001h                ; 83 fb 01
    14826     jne near 09ea7h                           ; 0f 85 5e 01
     14794    jne near 09e68h                           ; 0f 85 5e 01
    1482714795    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1482814796    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1483014798    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1483114799    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14832     jmp near 09ed4h                           ; e9 6f 01
     14800    jmp near 09e95h                           ; e9 6f 01
    1483314801    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14834     jne short 09d71h                          ; 75 06
     14802    jne short 09d32h                          ; 75 06
    1483514803    or ah, 083h                               ; 80 cc 83
    14836     jmp near 09ecdh                           ; e9 5c 01
     14804    jmp near 09e8eh                           ; e9 5c 01
    1483714805    mov bx, word [bp+008h]                    ; 8b 5e 08
    1483814806    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1483914807    mov ax, word [bp+018h]                    ; 8b 46 18
    1484014808    xor cx, cx                                ; 31 c9
    14841     call 09c0dh                               ; e8 8e fe
     14809    call 09bceh                               ; e8 8e fe
    1484214810    cmp ax, strict word 0ffffh                ; 3d ff ff
    14843     jne short 09d8fh                          ; 75 0b
     14811    jne short 09d50h                          ; 75 0b
    1484414812    mov ax, word [bp+020h]                    ; 8b 46 20
    1484514813    xor ah, ah                                ; 30 e4
    1484614814    or ah, 086h                               ; 80 cc 86
    14847     jmp near 09ecdh                           ; e9 3e 01
     14815    jmp near 09e8eh                           ; e9 3e 01
    1484814816    mov word [bp+014h], ax                    ; 89 46 14
    14849     jmp near 09ed4h                           ; e9 3f 01
     14817    jmp near 09e95h                           ; e9 3f 01
    1485014818    mov bx, word [bp+008h]                    ; 8b 5e 08
    1485114819    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1485214820    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1485314821    mov cx, strict word 00001h                ; b9 01 00
    14854     call 09c0dh                               ; e8 69 fe
     14822    call 09bceh                               ; e8 69 fe
    1485514823    cmp ax, strict word 0ffffh                ; 3d ff ff
    14856     jne short 09db4h                          ; 75 0b
     14824    jne short 09d75h                          ; 75 0b
    1485714825    mov ax, word [bp+020h]                    ; 8b 46 20
    1485814826    xor ah, ah                                ; 30 e4
    1485914827    or ah, 086h                               ; 80 cc 86
    14860     jmp near 09ecdh                           ; e9 19 01
     14828    jmp near 09e8eh                           ; e9 19 01
    1486114829    mov word [bp+014h], ax                    ; 89 46 14
    14862     jmp near 09ed4h                           ; e9 1a 01
     14830    jmp near 09e95h                           ; e9 1a 01
    1486314831    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14864     jc short 09dc7h                           ; 72 06
     14832    jc short 09d88h                           ; 72 06
    1486514833    or ah, 087h                               ; 80 cc 87
    14866     jmp near 09ecdh                           ; e9 06 01
     14834    jmp near 09e8eh                           ; e9 06 01
    1486714835    mov dx, word [bp+004h]                    ; 8b 56 04
    1486814836    mov ax, word [bp+014h]                    ; 8b 46 14
    14869     call 09be9h                               ; e8 19 fe
     14837    call 09baah                               ; e8 19 fe
    1487014838    mov bx, word [bp+020h]                    ; 8b 5e 20
    1487114839    xor bh, bh                                ; 30 ff
    1487214840    sub bx, strict byte 00008h                ; 83 eb 08
    1487314841    cmp bx, strict byte 00005h                ; 83 fb 05
    14874     jnbe near 09ed4h                          ; 0f 87 f5 00
     14842    jnbe near 09e95h                          ; 0f 87 f5 00
    1487514843    add bx, bx                                ; 01 db
    14876     jmp word [cs:bx-06308h]                   ; 2e ff a7 f8 9c
     14844    jmp word [cs:bx-06347h]                   ; 2e ff a7 b9 9c
    1487714845    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1487814846    xor bl, bl                                ; 30 db
     
    1488514853    or bx, ax                                 ; 09 c3
    1488614854    mov word [bp+01ch], bx                    ; 89 5e 1c
    14887     jmp near 09ed4h                           ; e9 d4 00
     14855    jmp near 09e95h                           ; e9 d4 00
    1488814856    mov dx, word [bp+004h]                    ; 8b 56 04
    1488914857    xor dh, dh                                ; 30 f6
     
    1489214860    in ax, DX                                 ; ed
    1489314861    mov word [bp+01ch], ax                    ; 89 46 1c
    14894     jmp near 09ed4h                           ; e9 c1 00
     14862    jmp near 09e95h                           ; e9 c1 00
    1489514863    mov dx, 00cfch                            ; ba fc 0c
    1489614864    in eax, DX                                ; 66 ed
     
    1490114869    mov word [bp+01ch], ax                    ; 89 46 1c
    1490214870    mov word [bp+01eh], dx                    ; 89 56 1e
    14903     jmp near 09ed4h                           ; e9 ac 00
     14871    jmp near 09e95h                           ; e9 ac 00
    1490414872    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1490514873    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1490814876    add dx, 00cfch                            ; 81 c2 fc 0c
    1490914877    out DX, AL                                ; ee
    14910     jmp near 09ed4h                           ; e9 99 00
     14878    jmp near 09e95h                           ; e9 99 00
    1491114879    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1491214880    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1491514883    add dx, 00cfch                            ; 81 c2 fc 0c
    1491614884    out DX, ax                                ; ef
    14917     jmp near 09ed4h                           ; e9 86 00
     14885    jmp near 09e95h                           ; e9 86 00
    1491814886    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1491914887    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1492414892    ; mov ax, cx                                ; 8b c1
    1492514893    out DX, eax                               ; 66 ef
    14926     jmp short 09ed4h                          ; eb 72
     14894    jmp short 09e95h                          ; eb 72
    1492714895    mov bx, word [bp+004h]                    ; 8b 5e 04
    1492814896    mov es, [bp+026h]                         ; 8e 46 26
     
    1493114899    mov cx, word [0f370h]                     ; 8b 0e 70 f3
    1493214900    cmp cx, word [es:bx]                      ; 26 3b 0f
    14933     jbe short 09e88h                          ; 76 11
     14901    jbe short 09e49h                          ; 76 11
    1493414902    mov ax, word [bp+020h]                    ; 8b 46 20
    1493514903    xor ah, ah                                ; 30 e4
     
    1493714905    mov word [bp+020h], ax                    ; 89 46 20
    1493814906    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14939     jmp short 09e9ch                          ; eb 14
     14907    jmp short 09e5dh                          ; eb 14
    1494014908    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1494114909    mov si, 0f190h                            ; be 90 f1
     
    1494914917    les bx, [bp-008h]                         ; c4 5e f8
    1495014918    mov word [es:bx], ax                      ; 26 89 07
    14951     jmp short 09ed4h                          ; eb 2d
    14952     mov bx, 00e14h                            ; bb 14 0e
     14919    jmp short 09e95h                          ; eb 2d
     14920    mov bx, 00db8h                            ; bb b8 0d
    1495314921    mov cx, ds                                ; 8c d9
    1495414922    mov ax, strict word 00004h                ; b8 04 00
    14955     call 01a2ah                               ; e8 78 7b
     14923    call 01a2ah                               ; e8 b7 7b
    1495614924    mov ax, word [bp+014h]                    ; 8b 46 14
    1495714925    push ax                                   ; 50
    1495814926    mov ax, word [bp+020h]                    ; 8b 46 20
    1495914927    push ax                                   ; 50
    14960     push 00dd0h                               ; 68 d0 0d
     14928    push 00d6eh                               ; 68 6e 0d
    1496114929    push strict byte 00004h                   ; 6a 04
    14962     call 01a6bh                               ; e8 a9 7b
     14930    call 01a6bh                               ; e8 e8 7b
    1496314931    add sp, strict byte 00008h                ; 83 c4 08
    1496414932    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1497214940    pop bp                                    ; 5d
    1497314941    retn                                      ; c3
    14974 pci_find_classcode_:                         ; 0xf9edb LB 0x2b
     14942pci_find_classcode_:                         ; 0xf9e9c LB 0x2b
    1497514943    push bp                                   ; 55
    1497614944    mov bp, sp                                ; 89 e5
     
    1498714955    int 01ah                                  ; cd 1a
    1498814956    cmp ah, 000h                              ; 80 fc 00
    14989     je near 09efch                            ; 0f 84 03 00
     14957    je near 09ebdh                            ; 0f 84 03 00
    1499014958    mov bx, strict word 0ffffh                ; bb ff ff
    1499114959    mov ax, bx                                ; 89 d8
     
    1499614964    pop bp                                    ; 5d
    1499714965    retn                                      ; c3
    14998 pci_find_device_:                            ; 0xf9f06 LB 0x25
     14966pci_find_device_:                            ; 0xf9ec7 LB 0x25
    1499914967    push bp                                   ; 55
    1500014968    mov bp, sp                                ; 89 e5
     
    1500814976    int 01ah                                  ; cd 1a
    1500914977    cmp ah, 000h                              ; 80 fc 00
    15010     je near 09f21h                            ; 0f 84 03 00
     14978    je near 09ee2h                            ; 0f 84 03 00
    1501114979    mov bx, strict word 0ffffh                ; bb ff ff
    1501214980    mov ax, bx                                ; 89 d8
     
    1501714985    pop bp                                    ; 5d
    1501814986    retn                                      ; c3
    15019 pci_read_config_byte_:                       ; 0xf9f2b LB 0x24
     14987pci_read_config_byte_:                       ; 0xf9eec LB 0x24
    1502014988    push bp                                   ; 55
    1502114989    mov bp, sp                                ; 89 e5
     
    1503615004    pop bp                                    ; 5d
    1503715005    retn                                      ; c3
    15038 pci_read_config_word_:                       ; 0xf9f4f LB 0x22
     15006pci_read_config_word_:                       ; 0xf9f10 LB 0x22
    1503915007    push bp                                   ; 55
    1504015008    mov bp, sp                                ; 89 e5
     
    1505515023    pop bp                                    ; 5d
    1505615024    retn                                      ; c3
    15057 pci_read_config_dword_:                      ; 0xf9f71 LB 0x27
     15025pci_read_config_dword_:                      ; 0xf9f32 LB 0x27
    1505815026    push bp                                   ; 55
    1505915027    mov bp, sp                                ; 89 e5
     
    1507615044    pop bp                                    ; 5d
    1507715045    retn                                      ; c3
    15078 pci_write_config_word_:                      ; 0xf9f98 LB 0x1c
     15046pci_write_config_word_:                      ; 0xf9f59 LB 0x1c
    1507915047    push bp                                   ; 55
    1508015048    mov bp, sp                                ; 89 e5
     
    1509115059    pop bp                                    ; 5d
    1509215060    retn                                      ; c3
    15093 vds_is_present_:                             ; 0xf9fb4 LB 0x1d
     15061vds_is_present_:                             ; 0xf9f75 LB 0x1d
    1509415062    push bx                                   ; 53
    1509515063    push bp                                   ; 55
     
    1509915067    mov es, ax                                ; 8e c0
    1510015068    test byte [es:bx], 020h                   ; 26 f6 07 20
    15101     je short 09fcch                           ; 74 06
     15069    je short 09f8dh                           ; 74 06
    1510215070    mov ax, strict word 00001h                ; b8 01 00
    1510315071    pop bp                                    ; 5d
     
    1510815076    pop bx                                    ; 5b
    1510915077    retn                                      ; c3
    15110 vds_real_to_lin_:                            ; 0xf9fd1 LB 0x1e
     15078vds_real_to_lin_:                            ; 0xf9f92 LB 0x1e
    1511115079    push bx                                   ; 53
    1511215080    push cx                                   ; 51
     
    1511915087    sal ax, 1                                 ; d1 e0
    1512015088    rcl dx, 1                                 ; d1 d2
    15121     loop 09fdfh                               ; e2 fa
     15089    loop 09fa0h                               ; e2 fa
    1512215090    xor cx, cx                                ; 31 c9
    1512315091    add ax, bx                                ; 01 d8
     
    1512715095    pop bx                                    ; 5b
    1512815096    retn                                      ; c3
    15129 vds_build_sg_list_:                          ; 0xf9fef LB 0x79
     15097vds_build_sg_list_:                          ; 0xf9fb0 LB 0x79
    1513015098    push bp                                   ; 55
    1513115099    mov bp, sp                                ; 89 e5
     
    1514115109    mov bx, word [bp+006h]                    ; 8b 5e 06
    1514215110    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15143     call 09fd1h                               ; e8 c3 ff
     15111    call 09f92h                               ; e8 c3 ff
    1514415112    mov es, si                                ; 8e c6
    1514515113    mov word [es:di+004h], ax                 ; 26 89 45 04
    1514615114    mov word [es:di+006h], dx                 ; 26 89 55 06
    1514715115    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15148     call 09fb4h                               ; e8 93 ff
     15116    call 09f75h                               ; e8 93 ff
    1514915117    test ax, ax                               ; 85 c0
    15150     je short 0a038h                           ; 74 13
     15118    je short 09ff9h                           ; 74 13
    1515115119    mov es, si                                ; 8e c6
    1515215120    mov ax, 08105h                            ; b8 05 81
    1515315121    mov dx, strict word 00000h                ; ba 00 00
    1515415122    int 04bh                                  ; cd 4b
    15155     jc near 0a035h                            ; 0f 82 02 00
     15123    jc near 09ff6h                            ; 0f 82 02 00
    1515615124    db  032h, 0c0h
    1515715125    ; xor al, al                                ; 32 c0
    1515815126    cbw                                       ; 98
    15159     jmp short 0a05fh                          ; eb 27
     15127    jmp short 0a020h                          ; eb 27
    1516015128    mov es, si                                ; 8e c6
    1516115129    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1517415142    pop bp                                    ; 5d
    1517515143    retn 00004h                               ; c2 04 00
    15176 vds_free_sg_list_:                           ; 0xfa068 LB 0x38
     15144vds_free_sg_list_:                           ; 0xfa029 LB 0x37
    1517715145    push bp                                   ; 55
    1517815146    mov bp, sp                                ; 89 e5
     
    1518015148    push di                                   ; 57
    1518115149    mov bx, ax                                ; 89 c3
    15182     call 09fb4h                               ; e8 42 ff
     15150    call 09f75h                               ; e8 42 ff
    1518315151    test ax, ax                               ; 85 c0
    15184     je short 0a089h                           ; 74 13
     15152    je short 0a04ah                           ; 74 13
    1518515153    mov di, bx                                ; 89 df
    1518615154    mov es, dx                                ; 8e c2
     
    1518815156    mov dx, strict word 00000h                ; ba 00 00
    1518915157    int 04bh                                  ; cd 4b
    15190     jc near 0a088h                            ; 0f 82 02 00
     15158    jc near 0a049h                            ; 0f 82 02 00
    1519115159    db  032h, 0c0h
    1519215160    ; xor al, al                                ; 32 c0
     
    1519915167    pop bp                                    ; 5d
    1520015168    retn                                      ; c3
    15201     times 0x8 db 0
    15202 __U4M:                                       ; 0xfa0a0 LB 0x40
     15169    times 0x7 db 0
     15170__U4M:                                       ; 0xfa060 LB 0x40
    1520315171    pushfw                                    ; 9c
    1520415172    push eax                                  ; 66 50
     
    1522615194    retn                                      ; c3
    1522715195    times 0xf db 0
    15228 __U4D:                                       ; 0xfa0e0 LB 0x40
     15196__U4D:                                       ; 0xfa0a0 LB 0x40
    1522915197    pushfw                                    ; 9c
    1523015198    push eax                                  ; 66 50
     
    1525715225    retn                                      ; c3
    1525815226    times 0x7 db 0
    15259 __U8RS:                                      ; 0xfa120 LB 0x10
     15227__U8RS:                                      ; 0xfa0e0 LB 0x10
    1526015228    test si, si                               ; 85 f6
    15261     je short 0a12fh                           ; 74 0b
     15229    je short 0a0efh                           ; 74 0b
    1526215230    shr ax, 1                                 ; d1 e8
    1526315231    rcr bx, 1                                 ; d1 db
     
    1526515233    rcr dx, 1                                 ; d1 da
    1526615234    dec si                                    ; 4e
    15267     jne short 0a124h                          ; 75 f5
     15235    jne short 0a0e4h                          ; 75 f5
    1526815236    retn                                      ; c3
    15269 __U8LS:                                      ; 0xfa130 LB 0x10
     15237__U8LS:                                      ; 0xfa0f0 LB 0x10
    1527015238    test si, si                               ; 85 f6
    15271     je short 0a13fh                           ; 74 0b
     15239    je short 0a0ffh                           ; 74 0b
    1527215240    sal dx, 1                                 ; d1 e2
    1527315241    rcl cx, 1                                 ; d1 d1
     
    1527515243    rcl ax, 1                                 ; d1 d0
    1527615244    dec si                                    ; 4e
    15277     jne short 0a134h                          ; 75 f5
     15245    jne short 0a0f4h                          ; 75 f5
    1527815246    retn                                      ; c3
    15279 _fmemset_:                                   ; 0xfa140 LB 0x10
     15247_fmemset_:                                   ; 0xfa100 LB 0x10
    1528015248    push di                                   ; 57
    1528115249    mov es, dx                                ; 8e c2
     
    1528815256    retn                                      ; c3
    1528915257    times 0x3 db 0
    15290 _fmemcpy_:                                   ; 0xfa150 LB 0x3a
     15258_fmemcpy_:                                   ; 0xfa110 LB 0x3a
    1529115259    push bp                                   ; 55
    1529215260    db  08bh, 0ech
     
    1531315281    add byte [bx+si], al                      ; 00 00
    1531415282    add byte [bx+si], al                      ; 00 00
    15315     mov AL, byte [0a2a1h]                     ; a0 a1 a2
    15316     mov ax, word [0a1a6h]                     ; a1 a6 a1
    15317     cmpsb                                     ; a6
    15318     mov ax, word [0a1a6h]                     ; a1 a6 a1
    15319     test AL, strict byte 0a1h                 ; a8 a1
    15320     test AL, strict byte 0a1h                 ; a8 a1
    15321     stosb                                     ; aa
    15322     mov ax, word [0a1aeh]                     ; a1 ae a1
    15323     scasb                                     ; ae
    15324     mov ax, word [0a1b0h]                     ; a1 b0 a1
    15325     mov CH, strict byte 0a1h                  ; b5 a1
    15326     mov BH, strict byte 0a1h                  ; b7 a1
    15327 apm_worker:                                  ; 0xfa18a LB 0x3a
     15283    pushaw                                    ; 60
     15284    mov ax, word [0a162h]                     ; a1 62 a1
     15285    mov eax, dword [0a166h]                   ; 66 a1 66 a1
     15286    mov eax, dword [0a168h]                   ; 66 a1 68 a1
     15287    push 06aa1h                               ; 68 a1 6a
     15288    mov ax, word [0a16eh]                     ; a1 6e a1
     15289    outsb                                     ; 6e
     15290    mov ax, word [0a170h]                     ; a1 70 a1
     15291    jne short 0a0e9h                          ; 75 a1
     15292    jnbe short 0a0ebh                         ; 77 a1
     15293apm_worker:                                  ; 0xfa14a LB 0x3a
    1532815294    sti                                       ; fb
    1532915295    push ax                                   ; 50
     
    1533715303    pop ax                                    ; 58
    1533815304    mov AH, strict byte 053h                  ; b4 53
    15339     jnc short 0a1c0h                          ; 73 25
    15340     jmp word [cs:bp-05e90h]                   ; 2e ff a6 70 a1
    15341     jmp short 0a1beh                          ; eb 1c
     15305    jnc short 0a180h                          ; 73 25
     15306    jmp word [cs:bp-05ed0h]                   ; 2e ff a6 30 a1
     15307    jmp short 0a17eh                          ; eb 1c
    1534215308    sti                                       ; fb
    1534315309    hlt                                       ; f4
    15344     jmp short 0a1beh                          ; eb 18
    15345     jmp short 0a1beh                          ; eb 16
    15346     jmp short 0a1c0h                          ; eb 16
     15310    jmp short 0a17eh                          ; eb 18
     15311    jmp short 0a17eh                          ; eb 16
     15312    jmp short 0a180h                          ; eb 16
    1534715313    mov AH, strict byte 080h                  ; b4 80
    15348     jmp short 0a1c2h                          ; eb 14
    15349     jmp short 0a1c0h                          ; eb 10
     15314    jmp short 0a182h                          ; eb 14
     15315    jmp short 0a180h                          ; eb 10
    1535015316    mov ax, 00102h                            ; b8 02 01
    15351     jmp short 0a1beh                          ; eb 09
    15352     jmp short 0a1beh                          ; eb 07
     15317    jmp short 0a17eh                          ; eb 09
     15318    jmp short 0a17eh                          ; eb 07
    1535315319    mov BL, strict byte 000h                  ; b3 00
    1535415320    mov cx, strict word 00000h                ; b9 00 00
    15355     jmp short 0a1beh                          ; eb 00
     15321    jmp short 0a17eh                          ; eb 00
    1535615322    clc                                       ; f8
    1535715323    retn                                      ; c3
     
    1535915325    stc                                       ; f9
    1536015326    retn                                      ; c3
    15361 apm_pm16_entry:                              ; 0xfa1c4 LB 0x11
     15327apm_pm16_entry:                              ; 0xfa184 LB 0x11
    1536215328    mov AH, strict byte 002h                  ; b4 02
    1536315329    push DS                                   ; 1e
     
    1536715333    add bp, strict byte 00008h                ; 83 c5 08
    1536815334    mov ds, bp                                ; 8e dd
    15369     call 0a18ah                               ; e8 b8 ff
     15335    call 0a14ah                               ; e8 b8 ff
    1537015336    pop bp                                    ; 5d
    1537115337    pop DS                                    ; 1f
    1537215338    retf                                      ; cb
    1537315339
    15374   ; Padding 0x382b bytes at 0xfa1d5
    15375   times 14379 db 0
     15340  ; Padding 0x386b bytes at 0xfa195
     15341  times 14443 db 0
    1537615342
    1537715343section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1542015386    add bp, strict byte 00008h                ; 83 c5 08
    1542115387    push ebp                                  ; 66 55
    15422     mov bp, 0a1c6h                            ; bd c6 a1
     15388    mov bp, 0a186h                            ; bd 86 a1
    1542315389    add byte [bx+si], al                      ; 00 00
    1542415390    push ebp                                  ; 66 55
     
    1615516121    call 01da8h                               ; e8 65 3a
    1615616122    call 02235h                               ; e8 ef 3e
    16157     call 099a5h                               ; e8 5c b6
    16158     call 0886eh                               ; e8 22 a5
     16123    call 09966h                               ; e8 1d b6
     16124    call 0882fh                               ; e8 e3 a4
    1615916125    call 0ed2fh                               ; e8 e0 09
    1616016126    call 0e2d2h                               ; e8 80 ff
     
    1631216278    out strict byte 0a1h, AL                  ; e6 a1
    1631316279    retn                                      ; c3
    16314 ebda_post:                                   ; 0xfe778 LB 0x45
     16280ebda_post:                                   ; 0xfe778 LB 0x51
    1631516281    mov ax, 0e746h                            ; b8 46 e7
    1631616282    mov word [00034h], ax                     ; a3 34 00
     
    1632616292    mov word [001cah], ax                     ; a3 ca 01
    1632716293    mov ax, 0e746h                            ; b8 46 e7
     16294    mov word [001cch], ax                     ; a3 cc 01
     16295    mov ax, 0f000h                            ; b8 00 f0
     16296    mov word [001ceh], ax                     ; a3 ce 01
     16297    mov ax, 0e746h                            ; b8 46 e7
    1632816298    mov word [001dch], ax                     ; a3 dc 01
    1632916299    mov ax, 0f000h                            ; b8 00 f0
     
    1633716307    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
    1633816308    retn                                      ; c3
    16339 biosorg_check_before_or_at_0E82Ch:           ; 0xfe7bd LB 0x71
    16340     times 0x6f db 0
     16309biosorg_check_before_or_at_0E82Ch:           ; 0xfe7c9 LB 0x65
     16310    times 0x63 db 0
    1634116311    db  'XM'
    1634216312biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x3d
     
    1704417014    popfw                                     ; 9d
    1704517015    jmp short 0f8a7h                          ; eb 13
    17046     call 09af4h                               ; e8 5d a2
     17016    call 09ab5h                               ; e8 1e a2
    1704717017    jmp short 0f88eh                          ; eb f5
    1704817018int15_handler_mouse:                         ; 0xff899 LB 0x5
     
    1719817168    cld                                       ; fc
    1719917169    pushad                                    ; 66 60
    17200     call 09d04h                               ; e8 87 9e
     17170    call 09cc5h                               ; e8 48 9e
    1720117171    popad                                     ; 66 61
    1720217172    pop DS                                    ; 1f
     
    1731217282cpu_reset:                                   ; 0xffff0 LB 0x10
    1731317283    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17314     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 037h
     17284    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 020h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum

    r67807 r68290  
    1 f85d1e93260947edc3616ca0a94b2b5f *VBoxPcBios386.rom
     1c1a8ae98c9a136255d8b6646740f698c *VBoxPcBios386.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm

    r67807 r68290  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 00bh, 082h, 033h, 092h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 00bh, 082h, 0ech, 091h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992992    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 02eh, 03ch, 02eh, 03ch
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
    995     db  039h, 080h, 022h, 081h, 001h, 091h, 0abh, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  039h, 080h, 022h, 081h, 0bah, 090h, 064h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
    998 section CONST progbits vstart=0xb0 align=1 ; size=0xd40 class=DATA group=DGROUP
     998section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
    999999    db   'NMI Handler called', 00ah, 000h
    10001000    db   'INT18: BOOT FAILURE', 00ah, 000h
     
    11011101    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
    11021102    db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
    1103     db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h
    1104     db   'scsi_pci_init', 000h
    1105     db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
    1106     db   '%s: Adapter %x:%x found at %x, enabling BM', 00ah, 000h
     1103    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
    11071104    db   'ahci_read_sectors', 000h
    11081105    db   '%s: device_id out of range %d', 00ah, 000h
     
    11171114    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    11181115
    1119 section CONST2 progbits vstart=0xdf0 align=1 ; size=0x3fa class=DATA group=DGROUP
    1120 _bios_cvs_version_string:                    ; 0xf0df0 LB 0x12
    1121     db  'VirtualBox 5.1.51', 000h
    1122 _bios_prefix_string:                         ; 0xf0e02 LB 0x8
     1116section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP
     1117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x18
     1118    db  'VirtualBox 5.2.0_BETA1', 000h, 000h
     1119_bios_prefix_string:                         ; 0xf0da6 LB 0x8
    11231120    db  'BIOS: ', 000h, 000h
    1124 _isotag:                                     ; 0xf0e0a LB 0x6
     1121_isotag:                                     ; 0xf0dae LB 0x6
    11251122    db  'CD001', 000h
    1126 _eltorito:                                   ; 0xf0e10 LB 0x18
     1123_eltorito:                                   ; 0xf0db4 LB 0x18
    11271124    db  'EL TORITO SPECIFICATION', 000h
    1128 _drivetypes:                                 ; 0xf0e28 LB 0x28
     1125_drivetypes:                                 ; 0xf0dcc LB 0x28
    11291126    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    11301127    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    11311128    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1132 _scan_to_scanascii:                          ; 0xf0e50 LB 0x37a
     1129_scan_to_scanascii:                          ; 0xf0df4 LB 0x37a
    11331130    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    11341131    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11871184    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11881185    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1189 _panic_msg_keyb_buffer_full:                 ; 0xf11ca LB 0x20
     1186_panic_msg_keyb_buffer_full:                 ; 0xf116e LB 0x20
    11901187    db  '%s: keyboard input buffer full', 00ah, 000h
    11911188
    1192   ; Padding 0x416 bytes at 0xf11ea
    1193   times 1046 db 0
     1189  ; Padding 0x472 bytes at 0xf118e
     1190  times 1138 db 0
    11941191
    1195 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8f08 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ec8 class=CODE group=AUTO
    11961193rom_scan_:                                   ; 0xf1600 LB 0x52
    11971194    push bp                                   ; 55
     
    14211418    push bp                                   ; 55
    14221419    mov bp, sp                                ; 89 e5
    1423     mov bx, 00e02h                            ; bb 02 0e
     1420    mov bx, 00da6h                            ; bb a6 0d
    14241421    mov cx, ds                                ; 8c d9
    14251422    mov ax, strict word 00004h                ; b8 04 00
    14261423    call 01933h                               ; e8 b0 01
    1427     mov ax, 00df0h                            ; b8 f0 0d
     1424    mov ax, 00d8eh                            ; b8 8e 0d
    14281425    push ax                                   ; 50
    14291426    mov ax, 000d9h                            ; b8 d9 00
     
    15991596    mov bx, strict word 0000ah                ; bb 0a 00
    16001597    xor cx, cx                                ; 31 c9
    1601     call 0a1a0h                               ; e8 c3 88
     1598    call 0a160h                               ; e8 83 88
    16021599    mov word [bp-008h], ax                    ; 89 46 f8
    16031600    mov cx, dx                                ; 89 d1
     
    18361833    mov dx, word [bp-026h]                    ; 8b 56 da
    18371834    mov si, word [bp-01eh]                    ; 8b 76 e2
    1838     call 0a1d0h                               ; e8 b8 86
     1835    call 0a190h                               ; e8 78 86
    18391836    mov ax, dx                                ; 89 d0
    18401837    xor ah, dh                                ; 30 f4
     
    22972294    mov dx, word [es:si]                      ; 26 8b 14
    22982295    mov si, strict word 00018h                ; be 18 00
    2299     call 0a1d0h                               ; e8 3e 82
     2296    call 0a190h                               ; e8 fe 81
    23002297    xor dh, dh                                ; 30 f6
    23012298    mov word [bp-014h], dx                    ; 89 56 ec
     
    23072304    mov dx, word [es:si]                      ; 26 8b 14
    23082305    mov si, strict word 00020h                ; be 20 00
    2309     call 0a1d0h                               ; e8 1e 82
     2306    call 0a190h                               ; e8 de 81
    23102307    mov bx, dx                                ; 89 d3
    23112308    mov word [bp-010h], dx                    ; 89 56 f0
     
    23392336    mov dx, word [es:si]                      ; 26 8b 14
    23402337    mov si, strict word 00008h                ; be 08 00
    2341     call 0a1d0h                               ; e8 cb 81
     2338    call 0a190h                               ; e8 8b 81
    23422339    mov word [bp-010h], dx                    ; 89 56 f0
    23432340    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23482345    mov dx, word [es:si]                      ; 26 8b 14
    23492346    mov si, strict word 00018h                ; be 18 00
    2350     call 0a1d0h                               ; e8 ad 81
     2347    call 0a190h                               ; e8 6d 81
    23512348    mov bl, dl                                ; 88 d3
    23522349    and bl, 00fh                              ; 80 e3 0f
     
    27452742    lea ax, [bp-03eh]                         ; 8d 46 c2
    27462743    call 05b7fh                               ; e8 7e 37
    2747     mov bx, 00e02h                            ; bb 02 0e
     2744    mov bx, 00da6h                            ; bb a6 0d
    27482745    mov cx, ds                                ; 8c d9
    27492746    mov ax, strict word 00004h                ; b8 04 00
     
    29262923    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    29272924    mov si, strict word 0000bh                ; be 0b 00
    2928     call 0a1d0h                               ; e8 d1 7b
     2925    call 0a190h                               ; e8 91 7b
    29292926    mov word [bp-02ah], dx                    ; 89 56 d6
    29302927    mov word [bp-026h], cx                    ; 89 4e da
     
    32183215    mov dx, word [bp-022h]                    ; 8b 56 de
    32193216    mov si, strict word 00018h                ; be 18 00
    3220     call 0a1d0h                               ; e8 f4 78
     3217    call 0a190h                               ; e8 b4 78
    32213218    xor dh, dh                                ; 30 f6
    32223219    mov word [bp-014h], dx                    ; 89 56 ec
     
    32263223    mov dx, word [bp-022h]                    ; 8b 56 de
    32273224    mov si, strict word 00020h                ; be 20 00
    3228     call 0a1d0h                               ; e8 dd 78
     3225    call 0a190h                               ; e8 9d 78
    32293226    mov bx, dx                                ; 89 d3
    32303227    mov word [bp-024h], dx                    ; 89 56 dc
     
    32603257    mov dx, word [bp-022h]                    ; 8b 56 de
    32613258    mov si, strict word 00008h                ; be 08 00
    3262     call 0a1d0h                               ; e8 89 78
     3259    call 0a190h                               ; e8 49 78
    32633260    mov word [bp-00ch], ax                    ; 89 46 f4
    32643261    mov word [bp-020h], bx                    ; 89 5e e0
     
    32673264    mov word [bp-024h], dx                    ; 89 56 dc
    32683265    mov si, strict word 00010h                ; be 10 00
    3269     call 0a1d0h                               ; e8 74 78
     3266    call 0a190h                               ; e8 34 78
    32703267    mov word [bp-022h], dx                    ; 89 56 de
    32713268    mov ax, dx                                ; 89 d0
     
    35343531    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    35353532    jne short 02bf6h                          ; 75 23
    3536     mov bx, 00e02h                            ; bb 02 0e
     3533    mov bx, 00da6h                            ; bb a6 0d
    35373534    mov cx, ds                                ; 8c d9
    35383535    mov ax, strict word 00004h                ; b8 04 00
     
    43824379    cmp bh, 048h                              ; 80 ff 48
    43834380    jbe short 0333ch                          ; 76 37
    4384     mov bx, 00e02h                            ; bb 02 0e
     4381    mov bx, 00da6h                            ; bb a6 0d
    43854382    mov cx, ds                                ; 8c d9
    43864383    mov ax, strict word 00004h                ; b8 04 00
     
    53185315    mov byte [es:bx], 000h                    ; 26 c6 07 00
    53195316    jmp near 03533h                           ; e9 5d f9
    5320     mov bx, 00e02h                            ; bb 02 0e
     5317    mov bx, 00da6h                            ; bb a6 0d
    53215318    mov cx, ds                                ; 8c d9
    53225319    mov ax, strict word 00004h                ; b8 04 00
     
    54205417    cmp ax, strict word 0004ah                ; 3d 4a 00
    54215418    jne short 03cc8h                          ; 75 23
    5422     mov bx, 00e02h                            ; bb 02 0e
     5419    mov bx, 00da6h                            ; bb a6 0d
    54235420    mov cx, ds                                ; 8c d9
    54245421    mov ax, strict word 00004h                ; b8 04 00
     
    55285525    pop bp                                    ; 5d
    55295526    retn                                      ; c3
    5530     mov bx, 00e02h                            ; bb 02 0e
     5527    mov bx, 00da6h                            ; bb a6 0d
    55315528    mov cx, ds                                ; 8c d9
    55325529    mov ax, strict word 00004h                ; b8 04 00
     
    56165613    mov dx, ss                                ; 8c d2
    56175614    lea ax, [bp-026h]                         ; 8d 46 da
    5618     call 0a1f0h                               ; e8 4d 63
     5615    call 0a1b0h                               ; e8 0d 63
    56195616    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    56205617    mov ax, strict word 00011h                ; b8 11 00
     
    56795676    jnc short 03f51h                          ; 73 10
    56805677    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5681     cmp al, byte [di+00e0ah]                  ; 3a 85 0a 0e
     5678    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    56825679    je short 03f3bh                           ; 74 f0
    56835680    mov ax, strict word 00005h                ; b8 05 00
     
    56895686    jnc short 03f6bh                          ; 73 10
    56905687    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5691     cmp al, byte [di+00e10h]                  ; 3a 85 10 0e
     5688    cmp al, byte [di+00db4h]                  ; 3a 85 b4 0d
    56925689    je short 03f55h                           ; 74 f0
    56935690    mov ax, strict word 00006h                ; b8 06 00
     
    59905987    cmp ax, dx                                ; 39 d0
    59915988    je short 04308h                           ; 74 2a
    5992     mov bx, 00e02h                            ; bb 02 0e
     5989    mov bx, 00da6h                            ; bb a6 0d
    59935990    mov cx, ds                                ; 8c d9
    59945991    mov ax, strict word 00004h                ; b8 04 00
     
    61086105    xor dl, dl                                ; 30 d2
    61096106    xor cx, cx                                ; 31 c9
    6110     call 0a180h                               ; e8 68 5d
     6107    call 0a140h                               ; e8 28 5d
    61116108    xor bx, bx                                ; 31 db
    61126109    add ax, si                                ; 01 f0
     
    61146111    mov bx, di                                ; 89 fb
    61156112    xor cx, cx                                ; 31 c9
    6116     call 0a180h                               ; e8 5b 5d
     6113    call 0a140h                               ; e8 1b 5d
    61176114    mov bx, ax                                ; 89 c3
    61186115    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    61496146    mov dx, ss                                ; 8c d2
    61506147    lea ax, [bp-030h]                         ; 8d 46 d0
    6151     call 0a1f0h                               ; e8 74 5d
     6148    call 0a1b0h                               ; e8 34 5d
    61526149    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61536150    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    62196216    test al, al                               ; 84 c0
    62206217    je short 0456dh                           ; 74 38
    6221     mov bx, 00e02h                            ; bb 02 0e
     6218    mov bx, 00da6h                            ; bb a6 0d
    62226219    mov cx, ds                                ; 8c d9
    62236220    mov ax, strict word 00004h                ; b8 04 00
     
    63216318    mov word [bp+016h], bx                    ; 89 5e 16
    63226319    jmp near 04571h                           ; e9 33 ff
    6323     mov bx, 00e02h                            ; bb 02 0e
     6320    mov bx, 00da6h                            ; bb a6 0d
    63246321    mov cx, ds                                ; 8c d9
    63256322    mov ax, strict word 00004h                ; b8 04 00
     
    64456442    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    64466443    jmp near 04c0ch                           ; e9 49 04
    6447     mov bx, 00e02h                            ; bb 02 0e
     6444    mov bx, 00da6h                            ; bb a6 0d
    64486445    mov cx, ds                                ; 8c d9
    64496446    mov ax, strict word 00004h                ; b8 04 00
     
    65036500    mov dx, ss                                ; 8c d2
    65046501    lea ax, [bp-02eh]                         ; 8d 46 d2
    6505     call 0a1f0h                               ; e8 8c 59
     6502    call 0a1b0h                               ; e8 4c 59
    65066503    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    65076504    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    65606557    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
    65616558    je short 04950h                           ; 74 57
    6562     mov bx, 00e02h                            ; bb 02 0e
     6559    mov bx, 00da6h                            ; bb a6 0d
    65636560    mov cx, ds                                ; 8c d9
    65646561    mov ax, strict word 00004h                ; b8 04 00
     
    68706867    je short 04caah                           ; 74 27
    68716868    mov dx, strict word 00001h                ; ba 01 00
    6872     mov bx, 00e02h                            ; bb 02 0e
     6869    mov bx, 00da6h                            ; bb a6 0d
    68736870    mov cx, ds                                ; 8c d9
    68746871    mov ax, strict word 00004h                ; b8 04 00
     
    68776874    mov dx, strict word 0000ah                ; ba 0a 00
    68786875    imul dx                                   ; f7 ea
    6879     add ax, 00e28h                            ; 05 28 0e
     6876    add ax, 00dcch                            ; 05 cc 0d
    68806877    push ax                                   ; 50
    68816878    mov ax, 00494h                            ; b8 94 04
     
    69006897    test al, al                               ; 84 c0
    69016898    je short 04ce2h                           ; 74 1f
    6902     mov bx, 00e02h                            ; bb 02 0e
     6899    mov bx, 00da6h                            ; bb a6 0d
    69036900    mov cx, ds                                ; 8c d9
    69046901    mov ax, strict word 00004h                ; b8 04 00
    69056902    call 01933h                               ; e8 65 cc
    6906     mov cx, 00e3ch                            ; b9 3c 0e
     6903    mov cx, 00de0h                            ; b9 e0 0d
    69076904    push cx                                   ; 51
    69086905    mov cx, 004a8h                            ; b9 a8 04
     
    69156912    test dl, dl                               ; 84 d2
    69166913    je short 04cf6h                           ; 74 10
    6917     mov bx, 00e02h                            ; bb 02 0e
     6914    mov bx, 00da6h                            ; bb a6 0d
    69186915    mov cx, ds                                ; 8c d9
    69196916    mov ax, strict word 00004h                ; b8 04 00
    69206917    call 01933h                               ; e8 42 cc
    6921     mov cx, 00e46h                            ; b9 46 0e
     6918    mov cx, 00deah                            ; b9 ea 0d
    69226919    jmp short 04cd1h                          ; eb db
    69236920    test bl, 080h                             ; f6 c3 80
    69246921    je short 04d0ch                           ; 74 11
    6925     mov bx, 00e02h                            ; bb 02 0e
     6922    mov bx, 00da6h                            ; bb a6 0d
    69266923    mov cx, ds                                ; 8c d9
    69276924    mov ax, strict word 00004h                ; b8 04 00
    69286925    call 01933h                               ; e8 2d cc
    69296926    push si                                   ; 56
    6930     mov cx, 00e32h                            ; b9 32 0e
     6927    mov cx, 00dd6h                            ; b9 d6 0d
    69316928    jmp short 04d1bh                          ; eb 0f
    6932     mov bx, 00e02h                            ; bb 02 0e
     6929    mov bx, 00da6h                            ; bb a6 0d
    69336930    mov cx, ds                                ; 8c d9
    69346931    mov ax, strict word 00004h                ; b8 04 00
    69356932    call 01933h                               ; e8 1c cc
    69366933    push si                                   ; 56
    6937     mov cx, 00e28h                            ; b9 28 0e
     6934    mov cx, 00dcch                            ; b9 cc 0d
    69386935    push cx                                   ; 51
    69396936    mov cx, 004bdh                            ; b9 bd 04
     
    69666963    push dx                                   ; 52
    69676964    mov dx, ax                                ; 89 c2
    6968     mov bx, 00e02h                            ; bb 02 0e
     6965    mov bx, 00da6h                            ; bb a6 0d
    69696966    mov cx, ds                                ; 8c d9
    69706967    mov ax, strict word 00004h                ; b8 04 00
     
    70567053    mov byte [bp-008h], al                    ; 88 46 f8
    70577054    mov byte [bp-00ah], al                    ; 88 46 f6
    7058     mov bx, 00e02h                            ; bb 02 0e
     7055    mov bx, 00da6h                            ; bb a6 0d
    70597056    mov cx, ds                                ; 8c d9
    70607057    mov ax, strict word 00004h                ; b8 04 00
     
    76247621    test al, al                               ; 84 c0
    76257622    jne short 05351h                          ; 75 1c
    7626     mov bx, 00e02h                            ; bb 02 0e
     7623    mov bx, 00da6h                            ; bb a6 0d
    76277624    mov cx, ds                                ; 8c d9
    76287625    mov ax, strict word 00004h                ; b8 04 00
     
    79767973    cmp byte [bp-004h], 058h                  ; 80 7e fc 58
    79777974    jbe short 056e7h                          ; 76 22
    7978     mov bx, 00e02h                            ; bb 02 0e
     7975    mov bx, 00da6h                            ; bb a6 0d
    79797976    mov cx, ds                                ; 8c d9
    79807977    mov ax, strict word 00004h                ; b8 04 00
     
    79987995    imul bx                                   ; f7 eb
    79997996    mov bx, ax                                ; 89 c3
    8000     mov al, byte [bx+00e56h]                  ; 8a 87 56 0e
     7997    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
    80017998    mov byte [bp-012h], al                    ; 88 46 ee
    8002     mov al, byte [bx+00e57h]                  ; 8a 87 57 0e
     7999    mov al, byte [bx+00dfbh]                  ; 8a 87 fb 0d
    80038000    jmp near 057bah                           ; e9 b2 00
    80048001    test AL, strict byte 004h                 ; a8 04
     
    80098006    imul dx                                   ; f7 ea
    80108007    mov bx, ax                                ; 89 c3
    8011     mov al, byte [bx+00e54h]                  ; 8a 87 54 0e
     8008    mov al, byte [bx+00df8h]                  ; 8a 87 f8 0d
    80128009    mov byte [bp-012h], al                    ; 88 46 ee
    8013     mov al, byte [bx+00e55h]                  ; 8a 87 55 0e
     8010    mov al, byte [bx+00df9h]                  ; 8a 87 f9 0d
    80148011    jmp near 057bah                           ; e9 94 00
    80158012    mov al, byte [bp-010h]                    ; 8a 46 f0
     
    80358032    imul dx                                   ; f7 ea
    80368033    mov bx, ax                                ; 89 c3
    8037     mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
     8034    mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
    80388035    xor ah, ah                                ; 30 e4
    80398036    mov dx, ax                                ; 89 c2
     
    80418038    test ax, dx                               ; 85 d0
    80428039    je short 05777h                           ; 74 0d
    8043     mov al, byte [bx+00e50h]                  ; 8a 87 50 0e
     8040    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
    80448041    mov byte [bp-012h], al                    ; 88 46 ee
    8045     mov al, byte [bx+00e51h]                  ; 8a 87 51 0e
     8042    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
    80468043    jmp short 05782h                          ; eb 0b
    8047     mov al, byte [bx+00e52h]                  ; 8a 87 52 0e
     8044    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    80488045    mov byte [bp-012h], al                    ; 88 46 ee
    8049     mov al, byte [bx+00e53h]                  ; 8a 87 53 0e
     8046    mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
    80508047    mov byte [bp-004h], al                    ; 88 46 fc
    80518048    jmp short 057bdh                          ; eb 36
     
    80558052    imul bx                                   ; f7 eb
    80568053    mov bx, ax                                ; 89 c3
    8057     mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
     8054    mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
    80588055    xor ah, ah                                ; 30 e4
    80598056    mov dx, ax                                ; 89 c2
     
    80618058    test ax, dx                               ; 85 d0
    80628059    je short 057afh                           ; 74 0d
    8063     mov al, byte [bx+00e52h]                  ; 8a 87 52 0e
     8060    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    80648061    mov byte [bp-012h], al                    ; 88 46 ee
    8065     mov al, byte [bx+00e53h]                  ; 8a 87 53 0e
     8062    mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
    80668063    jmp short 057bah                          ; eb 0b
    8067     mov al, byte [bx+00e50h]                  ; 8a 87 50 0e
     8064    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
    80688065    mov byte [bp-012h], al                    ; 88 46 ee
    8069     mov al, byte [bx+00e51h]                  ; 8a 87 51 0e
     8066    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
    80708067    mov byte [bp-004h], al                    ; 88 46 fc
    80718068    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     
    80738070    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    80748071    jne short 057e2h                          ; 75 19
    8075     mov bx, 00e02h                            ; bb 02 0e
     8072    mov bx, 00da6h                            ; bb a6 0d
    80768073    mov cx, ds                                ; 8c d9
    80778074    mov ax, strict word 00004h                ; b8 04 00
     
    82768273    mov word [bp+012h], ax                    ; 89 46 12
    82778274    jmp near 059d7h                           ; e9 4a 00
    8278     mov bx, 00e02h                            ; bb 02 0e
     8275    mov bx, 00da6h                            ; bb a6 0d
    82798276    mov cx, ds                                ; 8c d9
    82808277    mov ax, strict word 00004h                ; b8 04 00
     
    82908287    call 01976h                               ; e8 cb bf
    82918288    add sp, strict byte 00006h                ; 83 c4 06
    8292     mov bx, 00e02h                            ; bb 02 0e
     8289    mov bx, 00da6h                            ; bb a6 0d
    82938290    mov cx, ds                                ; 8c d9
    82948291    mov ax, strict word 00004h                ; b8 04 00
     
    85048501    mov dx, word [bp+00ch]                    ; 8b 56 0c
    85058502    mov si, strict word 00020h                ; be 20 00
    8506     call 0a1d0h                               ; e8 22 46
     8503    call 0a190h                               ; e8 e2 45
    85078504    test ax, ax                               ; 85 c0
    85088505    jne short 05bbeh                          ; 75 0c
     
    85428539    mov bx, strict word 0003fh                ; bb 3f 00
    85438540    xor cx, cx                                ; 31 c9
    8544     call 0a180h                               ; e8 79 45
     8541    call 0a140h                               ; e8 39 45
    85458542    mov bx, ax                                ; 89 c3
    85468543    mov cx, dx                                ; 89 d1
    85478544    mov ax, word [bp-004h]                    ; 8b 46 fc
    85488545    mov dx, si                                ; 89 f2
    8549     call 0a1a0h                               ; e8 8d 45
     8546    call 0a160h                               ; e8 4d 45
    85508547    mov word [es:di+002h], ax                 ; 26 89 45 02
    85518548    cmp ax, 00400h                            ; 3d 00 04
     
    86988695    test ax, ax                               ; 85 c0
    86998696    jne short 05d8eh                          ; 75 29
    8700     mov bx, 00e02h                            ; bb 02 0e
     8697    mov bx, 00da6h                            ; bb a6 0d
    87018698    mov cx, ds                                ; 8c d9
    87028699    mov ax, strict word 00004h                ; b8 04 00
     
    87328729    cmp di, dx                                ; 39 d7
    87338730    jbe short 05dedh                          ; 76 31
    8734     mov bx, 00e02h                            ; bb 02 0e
     8731    mov bx, 00da6h                            ; bb a6 0d
    87358732    mov cx, ds                                ; 8c d9
    87368733    mov ax, strict word 00004h                ; b8 04 00
     
    87768773    mov bx, cx                                ; 89 cb
    87778774    xor cx, cx                                ; 31 c9
    8778     call 0a180h                               ; e8 54 43
     8775    call 0a140h                               ; e8 14 43
    87798776    xor bx, bx                                ; 31 db
    87808777    add ax, word [bp-008h]                    ; 03 46 f8
     
    87828779    mov bx, word [bp-00eh]                    ; 8b 5e f2
    87838780    xor cx, cx                                ; 31 c9
    8784     call 0a180h                               ; e8 45 43
     8781    call 0a140h                               ; e8 05 43
    87858782    xor bx, bx                                ; 31 db
    87868783    add ax, di                                ; 01 f8
     
    88408837    test dl, dl                               ; 84 d2
    88418838    je short 05f36h                           ; 74 4a
    8842     mov bx, 00e02h                            ; bb 02 0e
     8839    mov bx, 00da6h                            ; bb a6 0d
    88438840    mov cx, ds                                ; 8c d9
    88448841    mov ax, strict word 00004h                ; b8 04 00
     
    88618858    or ah, 00ch                               ; 80 cc 0c
    88628859    jmp near 0607ch                           ; e9 5f 01
    8863     mov bx, 00e02h                            ; bb 02 0e
     8860    mov bx, 00da6h                            ; bb a6 0d
    88648861    mov cx, ds                                ; 8c d9
    88658862    mov ax, strict word 00004h                ; b8 04 00
     
    89568953    mov bx, word [bp-008h]                    ; 8b 5e f8
    89578954    xor cx, cx                                ; 31 c9
    8958     call 0a180h                               ; e8 6e 41
     8955    call 0a140h                               ; e8 2e 41
    89598956    mov bx, di                                ; 89 fb
    89608957    xor cx, cx                                ; 31 c9
    8961     call 0a180h                               ; e8 67 41
     8958    call 0a140h                               ; e8 27 41
    89628959    mov word [bp-010h], ax                    ; 89 46 f0
    89638960    mov word [bp-004h], dx                    ; 89 56 fc
     
    89698966    mov word [bp+016h], ax                    ; 89 46 16
    89708967    jmp near 05f3ah                           ; e9 07 ff
    8971     mov bx, 00e02h                            ; bb 02 0e
     8968    mov bx, 00da6h                            ; bb a6 0d
    89728969    mov cx, ds                                ; 8c d9
    89738970    mov ax, strict word 00004h                ; b8 04 00
     
    89858982    add sp, strict byte 00008h                ; 83 c4 08
    89868983    jmp near 05f36h                           ; e9 dd fe
    8987     mov bx, 00e02h                            ; bb 02 0e
     8984    mov bx, 00da6h                            ; bb a6 0d
    89888985    mov cx, ds                                ; 8c d9
    89898986    mov ax, strict word 00004h                ; b8 04 00
     
    90929089    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    90939090    jmp near 06597h                           ; e9 31 04
    9094     mov bx, 00e02h                            ; bb 02 0e
     9091    mov bx, 00da6h                            ; bb a6 0d
    90959092    mov cx, ds                                ; 8c d9
    90969093    mov ax, strict word 00004h                ; b8 04 00
     
    91189115    xor bx, bx                                ; 31 db
    91199116    mov si, strict word 00020h                ; be 20 00
    9120     call 0a1e0h                               ; e8 2c 40
     9117    call 0a1a0h                               ; e8 ec 3f
    91219118    mov word [bp-00eh], ax                    ; 89 46 f2
    91229119    mov word [bp-010h], bx                    ; 89 5e f0
     
    91489145    cmp si, word [es:bx+036h]                 ; 26 3b 77 36
    91499146    jc short 0622ch                           ; 72 26
    9150     mov bx, 00e02h                            ; bb 02 0e
     9147    mov bx, 00da6h                            ; bb a6 0d
    91519148    mov cx, ds                                ; 8c d9
    91529149    mov ax, strict word 00004h                ; b8 04 00
     
    92109207    test dl, dl                               ; 84 d2
    92119208    je short 0631ah                           ; 74 54
    9212     mov bx, 00e02h                            ; bb 02 0e
     9209    mov bx, 00da6h                            ; bb a6 0d
    92139210    mov cx, ds                                ; 8c d9
    92149211    mov ax, strict word 00004h                ; b8 04 00
     
    92839280    mov dx, si                                ; 89 f2
    92849281    mov si, strict word 00020h                ; be 20 00
    9285     call 0a1d0h                               ; e8 25 3e
     9282    call 0a190h                               ; e8 e5 3d
    92869283    mov bx, di                                ; 89 fb
    92879284    mov word [es:bx+014h], dx                 ; 26 89 57 14
     
    96479644    mov bx, strict word 0000fh                ; bb 0f 00
    96489645    xor cx, cx                                ; 31 c9
    9649     call 0a1a0h                               ; e8 57 3a
     9646    call 0a160h                               ; e8 17 3a
    96509647    mov cx, ax                                ; 89 c1
    96519648    mov bx, dx                                ; 89 d3
     
    98119808    mov word [bp+00ch], ax                    ; 89 46 0c
    98129809    jmp near 0691bh                           ; e9 2e 00
    9813     mov bx, 00e02h                            ; bb 02 0e
     9810    mov bx, 00da6h                            ; bb a6 0d
    98149811    mov cx, ds                                ; 8c d9
    98159812    mov ax, strict word 00004h                ; b8 04 00
     
    100009997    retf                                      ; cb
    100019998    jmp near 0691bh                           ; e9 53 fe
    10002     mov bx, 00e02h                            ; bb 02 0e
     9999    mov bx, 00da6h                            ; bb a6 0d
    1000310000    mov cx, ds                                ; 8c d9
    1000410001    mov ax, strict word 00004h                ; b8 04 00
     
    1004310040    or byte [bp+018h], 001h                   ; 80 4e 18 01
    1004410041    jmp near 0691bh                           ; e9 d8 fd
    10045     mov bx, 00e02h                            ; bb 02 0e
     10042    mov bx, 00da6h                            ; bb a6 0d
    1004610043    mov cx, ds                                ; 8c d9
    1004710044    mov ax, strict word 00004h                ; b8 04 00
     
    1023510232    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    1023610233    jmp short 06d04h                          ; eb d3
    10237     mov bx, 00e02h                            ; bb 02 0e
     10234    mov bx, 00da6h                            ; bb a6 0d
    1023810235    mov cx, ds                                ; 8c d9
    1023910236    mov ax, strict word 00004h                ; b8 04 00
     
    1088210879    mov ax, 008eeh                            ; b8 ee 08
    1088310880    push ax                                   ; 50
    10884     mov ax, 011cah                            ; b8 ca 11
     10881    mov ax, 0116eh                            ; b8 6e 11
    1088510882    push ax                                   ; 50
    1088610883    mov ax, strict word 00007h                ; b8 07 00
     
    1096610963    mov ax, 008f8h                            ; b8 f8 08
    1096710964    push ax                                   ; 50
    10968     mov ax, 011cah                            ; b8 ca 11
     10965    mov ax, 0116eh                            ; b8 6e 11
    1096910966    push ax                                   ; 50
    1097010967    mov ax, strict word 00007h                ; b8 07 00
     
    1252912526    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    1253012527    jne short 08256h                          ; 75 23
    12531     mov bx, 00e02h                            ; bb 02 0e
     12528    mov bx, 00da6h                            ; bb a6 0d
    1253212529    mov cx, ds                                ; 8c d9
    1253312530    mov ax, strict word 00004h                ; b8 04 00
     
    1269212689    mov dx, ss                                ; 8c d2
    1269312690    lea ax, [bp-048h]                         ; 8d 46 b8
    12694     call 0a1f0h                               ; e8 3d 1e
     12691    call 0a1b0h                               ; e8 fd 1d
    1269512692    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1269612693    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1276212759    cmp bx, 00200h                            ; 81 fb 00 02
    1276312760    je short 08487h                           ; 74 23
    12764     mov bx, 00e02h                            ; bb 02 0e
     12761    mov bx, 00da6h                            ; bb a6 0d
    1276512762    mov cx, ds                                ; 8c d9
    1276612763    mov ax, strict word 00004h                ; b8 04 00
     
    1283012827    mov dx, word [bp-024h]                    ; 8b 56 dc
    1283112828    mov si, strict word 0000ch                ; be 0c 00
    12832     call 0a1d0h                               ; e8 cd 1c
     12829    call 0a190h                               ; e8 8d 1c
    1283312830    mov word [bp-02ah], ax                    ; 89 46 d6
    1283412831    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1285212849    mov dx, word [bp-024h]                    ; 8b 56 dc
    1285312850    mov si, strict word 00006h                ; be 06 00
    12854     call 0a1d0h                               ; e8 8c 1c
     12851    call 0a190h                               ; e8 4c 1c
    1285512852    mov si, word [bp-018h]                    ; 8b 76 e8
    1285612853    add si, dx                                ; 01 d6
     
    1287012867    mov dx, si                                ; 89 f2
    1287112868    mov si, strict word 00008h                ; be 08 00
    12872     call 0a1d0h                               ; e8 5c 1c
     12869    call 0a190h                               ; e8 1c 1c
    1287312870    mov word [bp-02eh], bx                    ; 89 5e d2
    1287412871    mov word [bp-030h], cx                    ; 89 4e d0
     
    1287912876    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1288012877    mov si, strict word 00010h                ; be 10 00
    12881     call 0a1d0h                               ; e8 41 1c
     12878    call 0a190h                               ; e8 01 1c
    1288212879    mov si, word [bp-032h]                    ; 8b 76 ce
    1288312880    add si, dx                                ; 01 d6
     
    1290412901    mov dx, word [bp-024h]                    ; 8b 56 dc
    1290512902    mov si, strict word 0000bh                ; be 0b 00
    12906     call 0a1d0h                               ; e8 f7 1b
     12903    call 0a190h                               ; e8 b7 1b
    1290712904    mov si, dx                                ; 89 d6
    1290812905    mov word [bp-026h], cx                    ; 89 4e da
     
    1294912946    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1295012947    mov word [es:bx+032h], si                 ; 26 89 77 32
    12951     mov bx, 00e02h                            ; bb 02 0e
     12948    mov bx, 00da6h                            ; bb a6 0d
    1295212949    mov cx, ds                                ; 8c d9
    1295312950    mov ax, strict word 00004h                ; b8 04 00
     
    1300813005    inc byte [bp-00ch]                        ; fe 46 f4
    1300913006    jmp near 087a2h                           ; e9 97 00
    13010     mov bx, 00e02h                            ; bb 02 0e
     13007    mov bx, 00da6h                            ; bb a6 0d
    1301113008    mov cx, ds                                ; 8c d9
    1301213009    mov ax, strict word 00004h                ; b8 04 00
     
    1312513122    pop bp                                    ; 5d
    1312613123    retn                                      ; c3
    13127 scsi_pci_init_:                              ; 0xf8846 LB 0x72
     13124scsi_pci_init_:                              ; 0xf8846 LB 0x2b
    1312813125    push bp                                   ; 55
    1312913126    mov bp, sp                                ; 89 e5
     
    1313113128    push cx                                   ; 51
    1313213129    push si                                   ; 56
    13133     push di                                   ; 57
    13134     mov di, ax                                ; 89 c7
    13135     mov si, dx                                ; 89 d6
    13136     call 09fceh                               ; e8 7a 17
     13130    call 09f87h                               ; e8 38 17
    1313713131    mov dx, ax                                ; 89 c2
    1313813132    cmp ax, strict word 0ffffh                ; 3d ff ff
    13139     jne short 0887ch                          ; 75 21
    13140     mov bx, 00e02h                            ; bb 02 0e
    13141     mov cx, ds                                ; 8c d9
    13142     mov ax, strict word 00004h                ; b8 04 00
    13143     call 01933h                               ; e8 cd 90
    13144     push si                                   ; 56
    13145     push di                                   ; 57
    13146     mov ax, 00c61h                            ; b8 61 0c
    13147     push ax                                   ; 50
    13148     mov ax, 00c6fh                            ; b8 6f 0c
    13149     push ax                                   ; 50
    13150     mov ax, strict word 00004h                ; b8 04 00
    13151     push ax                                   ; 50
    13152     call 01976h                               ; e8 ff 90
    13153     add sp, strict byte 0000ah                ; 83 c4 0a
    13154     jmp short 088afh                          ; eb 33
    13155     mov bx, 00e02h                            ; bb 02 0e
    13156     mov cx, ds                                ; 8c d9
    13157     mov ax, strict word 00004h                ; b8 04 00
    13158     call 01933h                               ; e8 ac 90
    13159     push dx                                   ; 52
    13160     push si                                   ; 56
    13161     push di                                   ; 57
    13162     mov ax, 00c61h                            ; b8 61 0c
    13163     push ax                                   ; 50
    13164     mov ax, 00c98h                            ; b8 98 0c
    13165     push ax                                   ; 50
    13166     mov ax, strict word 00004h                ; b8 04 00
    13167     push ax                                   ; 50
    13168     call 01976h                               ; e8 dd 90
    13169     add sp, strict byte 0000ch                ; 83 c4 0c
     13133    je short 08869h                           ; 74 13
    1317013134    mov al, dl                                ; 88 d0
    1317113135    xor ah, ah                                ; 30 e4
     
    1317513139    mov bx, strict word 00004h                ; bb 04 00
    1317613140    mov dx, si                                ; 89 f2
    13177     call 0a07ch                               ; e8 cd 17
    13178     lea sp, [bp-008h]                         ; 8d 66 f8
    13179     pop di                                    ; 5f
     13141    call 0a035h                               ; e8 cc 17
     13142    lea sp, [bp-006h]                         ; 8d 66 fa
    1318013143    pop si                                    ; 5e
    1318113144    pop cx                                    ; 59
     
    1318313146    pop bp                                    ; 5d
    1318413147    retn                                      ; c3
    13185 _scsi_init:                                  ; 0xf88b8 LB 0x81
     13148_scsi_init:                                  ; 0xf8871 LB 0x81
    1318613149    push bp                                   ; 55
    1318713150    mov bp, sp                                ; 89 e5
    1318813151    mov dx, strict word 0000eh                ; ba 0e 00
    1318913152    mov ax, strict word 00040h                ; b8 40 00
    13190     call 0166eh                               ; e8 aa 8d
     13153    call 0166eh                               ; e8 f1 8d
    1319113154    mov bx, 00122h                            ; bb 22 01
    1319213155    mov es, ax                                ; 8e c0
     
    1319913162    ; sub ah, ah                                ; 2a e4
    1320013163    cmp AL, strict byte 055h                  ; 3c 55
    13201     jne short 088f1h                          ; 75 15
     13164    jne short 088aah                          ; 75 15
    1320213165    xor al, al                                ; 30 c0
    1320313166    mov dx, 00433h                            ; ba 33 04
    1320413167    out DX, AL                                ; ee
    1320513168    mov ax, 00430h                            ; b8 30 04
    13206     call 0837bh                               ; e8 93 fa
     13169    call 0837bh                               ; e8 da fa
    1320713170    mov dx, 01040h                            ; ba 40 10
    1320813171    mov ax, 0104bh                            ; b8 4b 10
    13209     call 08846h                               ; e8 55 ff
     13172    call 08846h                               ; e8 9c ff
    1321013173    mov AL, strict byte 055h                  ; b0 55
    1321113174    mov dx, 00436h                            ; ba 36 04
     
    1321513178    ; sub ah, ah                                ; 2a e4
    1321613179    cmp AL, strict byte 055h                  ; 3c 55
    13217     jne short 08913h                          ; 75 15
     13180    jne short 088cch                          ; 75 15
    1321813181    xor al, al                                ; 30 c0
    1321913182    mov dx, 00437h                            ; ba 37 04
    1322013183    out DX, AL                                ; ee
    1322113184    mov ax, 00434h                            ; b8 34 04
    13222     call 0837bh                               ; e8 71 fa
     13185    call 0837bh                               ; e8 b8 fa
    1322313186    mov dx, strict word 00030h                ; ba 30 00
    1322413187    mov ax, 01000h                            ; b8 00 10
    13225     call 08846h                               ; e8 33 ff
     13188    call 08846h                               ; e8 7a ff
    1322613189    mov AL, strict byte 055h                  ; b0 55
    1322713190    mov dx, 0043ah                            ; ba 3a 04
     
    1323113194    ; sub ah, ah                                ; 2a e4
    1323213195    cmp AL, strict byte 055h                  ; 3c 55
    13233     jne short 08935h                          ; 75 15
     13196    jne short 088eeh                          ; 75 15
    1323413197    xor al, al                                ; 30 c0
    1323513198    mov dx, 0043bh                            ; ba 3b 04
    1323613199    out DX, AL                                ; ee
    1323713200    mov ax, 00438h                            ; b8 38 04
    13238     call 0837bh                               ; e8 4f fa
     13201    call 0837bh                               ; e8 96 fa
    1323913202    mov dx, strict word 00054h                ; ba 54 00
    1324013203    mov ax, 01000h                            ; b8 00 10
    13241     call 08846h                               ; e8 11 ff
     13204    call 08846h                               ; e8 58 ff
    1324213205    mov sp, bp                                ; 89 ec
    1324313206    pop bp                                    ; 5d
    1324413207    retn                                      ; c3
    13245 ahci_ctrl_extract_bits_:                     ; 0xf8939 LB 0x1c
     13208ahci_ctrl_extract_bits_:                     ; 0xf88f2 LB 0x1c
    1324613209    push si                                   ; 56
    1324713210    push bp                                   ; 55
     
    1325213215    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1325313216    xor ch, ch                                ; 30 ed
    13254     jcxz 08950h                               ; e3 06
     13217    jcxz 08909h                               ; e3 06
    1325513218    shr dx, 1                                 ; d1 ea
    1325613219    rcr ax, 1                                 ; d1 d8
    13257     loop 0894ah                               ; e2 fa
     13220    loop 08903h                               ; e2 fa
    1325813221    pop bp                                    ; 5d
    1325913222    pop si                                    ; 5e
    1326013223    retn 00002h                               ; c2 02 00
    13261 ahci_addr_to_phys_:                          ; 0xf8955 LB 0x1e
     13224ahci_addr_to_phys_:                          ; 0xf890e LB 0x1e
    1326213225    push bx                                   ; 53
    1326313226    push cx                                   ; 51
     
    1327013233    sal ax, 1                                 ; d1 e0
    1327113234    rcl dx, 1                                 ; d1 d2
    13272     loop 08963h                               ; e2 fa
     13235    loop 0891ch                               ; e2 fa
    1327313236    xor cx, cx                                ; 31 c9
    1327413237    add ax, bx                                ; 01 d8
     
    1327813241    pop bx                                    ; 5b
    1327913242    retn                                      ; c3
    13280 ahci_port_cmd_sync_:                         ; 0xf8973 LB 0x159
     13243ahci_port_cmd_sync_:                         ; 0xf892c LB 0x159
    1328113244    push bp                                   ; 55
    1328213245    mov bp, sp                                ; 89 e5
     
    1329313256    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1329413257    cmp AL, strict byte 0ffh                  ; 3c ff
    13295     jne short 08996h                          ; 75 03
    13296     jmp near 08ac4h                           ; e9 2e 01
     13258    jne short 0894fh                          ; 75 03
     13259    jmp near 08a7dh                           ; e9 2e 01
    1329713260    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1329813261    xor ah, ah                                ; 30 e4
     
    1330713270    lea ax, [si+00080h]                       ; 8d 84 80 00
    1330813271    mov dx, cx                                ; 89 ca
    13309     call 08955h                               ; e8 92 ff
     13272    call 0890eh                               ; e8 92 ff
    1331013273    mov es, cx                                ; 8e c1
    1331113274    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1337513338    xchg dx, ax                               ; 92
    1337613339    test dh, 040h                             ; f6 c6 40
    13377     jne short 08a56h                          ; 75 04
     13340    jne short 08a0fh                          ; 75 04
    1337813341    test AL, strict byte 001h                 ; a8 01
    13379     je short 08a5ah                           ; 74 04
     13342    je short 08a13h                           ; 74 04
    1338013343    mov AL, strict byte 001h                  ; b0 01
    13381     jmp short 08a5ch                          ; eb 02
     13344    jmp short 08a15h                          ; eb 02
    1338213345    xor al, al                                ; 30 c0
    1338313346    test al, al                               ; 84 c0
    13384     je short 08a28h                           ; 74 c8
     13347    je short 089e1h                           ; 74 c8
    1338513348    mov al, byte [bp-008h]                    ; 8a 46 f8
    1338613349    xor ah, ah                                ; 30 e4
     
    1343913402    pop bp                                    ; 5d
    1344013403    retn                                      ; c3
    13441 ahci_cmd_data_:                              ; 0xf8acc LB 0x262
     13404ahci_cmd_data_:                              ; 0xf8a85 LB 0x262
    1344213405    push bp                                   ; 55
    1344313406    mov bp, sp                                ; 89 e5
     
    1346413427    mov ax, 00080h                            ; b8 80 00
    1346513428    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13466     call 0a1f0h                               ; e8 e6 16
     13429    call 0a1b0h                               ; e8 ed 16
    1346713430    mov es, [bp-00ah]                         ; 8e 46 f6
    1346813431    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1348213445    mov dx, word [es:si]                      ; 26 8b 14
    1348313446    mov si, strict word 00008h                ; be 08 00
    13484     call 0a1d0h                               ; e8 82 16
     13447    call 0a190h                               ; e8 89 16
    1348513448    mov es, [bp-00ah]                         ; 8e 46 f6
    1348613449    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1349313456    mov dx, word [es:si]                      ; 26 8b 14
    1349413457    mov si, strict word 00010h                ; be 10 00
    13495     call 0a1d0h                               ; e8 5c 16
     13458    call 0a190h                               ; e8 63 16
    1349613459    mov es, [bp-00ah]                         ; 8e 46 f6
    1349713460    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1350513468    mov dx, word [es:si]                      ; 26 8b 14
    1350613469    mov si, strict word 00018h                ; be 18 00
    13507     call 0a1d0h                               ; e8 30 16
     13470    call 0a190h                               ; e8 37 16
    1350813471    mov es, [bp-00ah]                         ; 8e 46 f6
    1350913472    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1351613479    mov dx, word [es:si]                      ; 26 8b 14
    1351713480    mov si, strict word 00020h                ; be 20 00
    13518     call 0a1d0h                               ; e8 0a 16
     13481    call 0a190h                               ; e8 11 16
    1351913482    mov es, [bp-00ah]                         ; 8e 46 f6
    1352013483    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1352713490    mov dx, word [es:si]                      ; 26 8b 14
    1352813491    mov si, strict word 00028h                ; be 28 00
    13529     call 0a1d0h                               ; e8 e4 15
     13492    call 0a190h                               ; e8 eb 15
    1353013493    mov es, [bp-00ah]                         ; 8e 46 f6
    1353113494    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1354013503    mov bx, word [bp-012h]                    ; 8b 5e ee
    1354113504    xor cx, cx                                ; 31 c9
    13542     call 0a180h                               ; e8 62 15
     13505    call 0a140h                               ; e8 69 15
    1354313506    push dx                                   ; 52
    1354413507    push ax                                   ; 50
     
    1355013513    mov ax, 0026ah                            ; b8 6a 02
    1355113514    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13552     call 0a0d5h                               ; e8 9b 14
     13515    call 0a08eh                               ; e8 9b 14
    1355313516    mov es, [bp-00ah]                         ; 8e 46 f6
    1355413517    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1357413537    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1357513538    test ax, ax                               ; 85 c0
    13576     je short 08ccah                           ; 74 39
     13539    je short 08c83h                           ; 74 39
    1357713540    dec ax                                    ; 48
    1357813541    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1359213555    mov al, byte [bp-008h]                    ; 8a 46 f8
    1359313556    cmp AL, strict byte 035h                  ; 3c 35
    13594     jne short 08cd7h                          ; 75 06
     13557    jne short 08c90h                          ; 75 06
    1359513558    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13596     jmp short 08ceeh                          ; eb 17
     13559    jmp short 08ca7h                          ; eb 17
    1359713560    cmp AL, strict byte 0a0h                  ; 3c a0
    13598     jne short 08ceah                          ; 75 0f
     13561    jne short 08ca3h                          ; 75 0f
    1359913562    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1360013563    les bx, [bp-00eh]                         ; c4 5e f2
    1360113564    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13602     jmp short 08ceeh                          ; eb 04
     13565    jmp short 08ca7h                          ; eb 04
    1360313566    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1360413567    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1360713570    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1360813571    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13609     call 08973h                               ; e8 73 fc
     13572    call 0892ch                               ; e8 73 fc
    1361013573    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1361113574    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1361413577    add ax, 0026ah                            ; 05 6a 02
    1361513578    mov dx, cx                                ; 89 ca
    13616     call 0a14ch                               ; e8 37 14
     13579    call 0a105h                               ; e8 37 14
    1361713580    mov es, cx                                ; 8e c1
    1361813581    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1361913582    test al, al                               ; 84 c0
    13620     je short 08d24h                           ; 74 05
     13583    je short 08cddh                           ; 74 05
    1362113584    mov ax, strict word 00004h                ; b8 04 00
    13622     jmp short 08d26h                          ; eb 02
     13585    jmp short 08cdfh                          ; eb 02
    1362313586    xor ah, ah                                ; 30 e4
    1362413587    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1362813591    pop bp                                    ; 5d
    1362913592    retn                                      ; c3
    13630 ahci_port_deinit_current_:                   ; 0xf8d2e LB 0x183
     13593ahci_port_deinit_current_:                   ; 0xf8ce7 LB 0x183
    1363113594    push bp                                   ; 55
    1363213595    mov bp, sp                                ; 89 e5
     
    1364313606    mov byte [bp-00ah], al                    ; 88 46 f6
    1364413607    cmp AL, strict byte 0ffh                  ; 3c ff
    13645     je short 08db1h                           ; 74 61
     13608    je short 08d6ah                           ; 74 61
    1364613609    xor ah, ah                                ; 30 e4
    1364713610    mov CL, strict byte 007h                  ; b1 07
     
    1368913652    xchg dx, ax                               ; 92
    1369013653    test ax, 0c011h                           ; a9 11 c0
    13691     je short 08db4h                           ; 74 07
     13654    je short 08d6dh                           ; 74 07
    1369213655    mov AL, strict byte 001h                  ; b0 01
    13693     jmp short 08db6h                          ; eb 05
    13694     jmp near 08ea8h                           ; e9 f4 00
     13656    jmp short 08d6fh                          ; eb 05
     13657    jmp near 08e61h                           ; e9 f4 00
    1369513658    xor al, al                                ; 30 c0
    1369613659    cmp AL, strict byte 001h                  ; 3c 01
    13697     je short 08d83h                           ; 74 c9
     13660    je short 08d3ch                           ; 74 c9
    1369813661    mov cx, strict word 00020h                ; b9 20 00
    1369913662    xor bx, bx                                ; 31 db
    1370013663    mov ax, di                                ; 89 f8
    1370113664    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13702     call 0a1f0h                               ; e8 29 14
     13665    call 0a1b0h                               ; e8 30 14
    1370313666    lea ax, [di+00080h]                       ; 8d 85 80 00
    1370413667    mov cx, strict word 00040h                ; b9 40 00
    1370513668    xor bx, bx                                ; 31 db
    1370613669    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13707     call 0a1f0h                               ; e8 1a 14
     13670    call 0a1b0h                               ; e8 21 14
    1370813671    lea ax, [di+00200h]                       ; 8d 85 00 02
    1370913672    mov cx, strict word 00060h                ; b9 60 00
    1371013673    xor bx, bx                                ; 31 db
    1371113674    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13712     call 0a1f0h                               ; e8 0b 14
     13675    call 0a1b0h                               ; e8 12 14
    1371313676    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1371413677    xor ah, ah                                ; 30 e4
     
    1381613779    pop bp                                    ; 5d
    1381713780    retn                                      ; c3
    13818 ahci_port_init_:                             ; 0xf8eb1 LB 0x250
     13781ahci_port_init_:                             ; 0xf8e6a LB 0x250
    1381913782    push bp                                   ; 55
    1382013783    mov bp, sp                                ; 89 e5
     
    1382613789    mov word [bp-00ah], dx                    ; 89 56 f6
    1382713790    mov byte [bp-008h], bl                    ; 88 5e f8
    13828     call 08d2eh                               ; e8 69 fe
     13791    call 08ce7h                               ; e8 69 fe
    1382913792    mov al, bl                                ; 88 d8
    1383013793    xor ah, ah                                ; 30 e4
     
    1387713840    xchg dx, ax                               ; 92
    1387813841    test ax, 0c011h                           ; a9 11 c0
    13879     je short 08f38h                           ; 74 04
     13842    je short 08ef1h                           ; 74 04
    1388013843    mov AL, strict byte 001h                  ; b0 01
    13881     jmp short 08f3ah                          ; eb 02
     13844    jmp short 08ef3h                          ; eb 02
    1388213845    xor al, al                                ; 30 c0
    1388313846    cmp AL, strict byte 001h                  ; 3c 01
    13884     je short 08f02h                           ; 74 c4
     13847    je short 08ebbh                           ; 74 c4
    1388513848    mov cx, strict word 00020h                ; b9 20 00
    1388613849    xor bx, bx                                ; 31 db
    1388713850    mov ax, si                                ; 89 f0
    1388813851    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13889     call 0a1f0h                               ; e8 a5 12
     13852    call 0a1b0h                               ; e8 ac 12
    1389013853    lea ax, [si+00080h]                       ; 8d 84 80 00
    1389113854    mov cx, strict word 00040h                ; b9 40 00
    1389213855    xor bx, bx                                ; 31 db
    1389313856    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13894     call 0a1f0h                               ; e8 96 12
     13857    call 0a1b0h                               ; e8 9d 12
    1389513858    lea di, [si+00200h]                       ; 8d bc 00 02
    1389613859    mov cx, strict word 00060h                ; b9 60 00
     
    1389813861    mov ax, di                                ; 89 f8
    1389913862    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13900     call 0a1f0h                               ; e8 85 12
     13863    call 0a1b0h                               ; e8 8c 12
    1390113864    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1390213865    xor bh, bh                                ; 30 ff
     
    1391713880    mov ax, di                                ; 89 f8
    1391813881    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13919     call 08955h                               ; e8 bb f9
     13882    call 0890eh                               ; e8 bb f9
    1392013883    mov es, [bp-00ah]                         ; 8e 46 f6
    1392113884    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1396213925    mov ax, si                                ; 89 f0
    1396313926    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13964     call 08955h                               ; e8 4f f9
     13927    call 0890eh                               ; e8 4f f9
    1396513928    mov es, [bp-00ah]                         ; 8e 46 f6
    1396613929    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1406714030    pop bp                                    ; 5d
    1406814031    retn                                      ; c3
    14069 @ahci_read_sectors:                          ; 0xf9101 LB 0xaa
     14032@ahci_read_sectors:                          ; 0xf90ba LB 0xaa
    1407014033    push bp                                   ; 55
    1407114034    mov bp, sp                                ; 89 e5
     
    1407814041    sub di, strict byte 0000ch                ; 83 ef 0c
    1407914042    cmp di, strict byte 00004h                ; 83 ff 04
    14080     jbe short 0912ch                          ; 76 13
     14043    jbe short 090e5h                          ; 76 13
    1408114044    push di                                   ; 57
    14082     mov ax, 00cc4h                            ; b8 c4 0c
    14083     push ax                                   ; 50
    14084     mov ax, 00cd6h                            ; b8 d6 0c
     14045    mov ax, 00c62h                            ; b8 62 0c
     14046    push ax                                   ; 50
     14047    mov ax, 00c74h                            ; b8 74 0c
    1408514048    push ax                                   ; 50
    1408614049    mov ax, strict word 00007h                ; b8 07 00
    1408714050    push ax                                   ; 50
    14088     call 01976h                               ; e8 4d 88
     14051    call 01976h                               ; e8 94 88
    1408914052    add sp, strict byte 00008h                ; 83 c4 08
    1409014053    xor bx, bx                                ; 31 db
     
    1410014063    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1410114064    xor ax, ax                                ; 31 c0
    14102     call 08eb1h                               ; e8 5a fd
     14065    call 08e6ah                               ; e8 5a fd
    1410314066    mov bx, strict word 00025h                ; bb 25 00
    1410414067    mov ax, si                                ; 89 f0
    1410514068    mov dx, word [bp+006h]                    ; 8b 56 06
    14106     call 08acch                               ; e8 6a f9
     14069    call 08a85h                               ; e8 6a f9
    1410714070    mov bx, ax                                ; 89 c3
    1410814071    mov es, [bp+006h]                         ; 8e 46 06
     
    1413414097    pop bp                                    ; 5d
    1413514098    retn 00004h                               ; c2 04 00
    14136 @ahci_write_sectors:                         ; 0xf91ab LB 0x88
     14099@ahci_write_sectors:                         ; 0xf9164 LB 0x88
    1413714100    push bp                                   ; 55
    1413814101    mov bp, sp                                ; 89 e5
     
    1414614109    sub bx, strict byte 0000ch                ; 83 eb 0c
    1414714110    cmp bx, strict byte 00004h                ; 83 fb 04
    14148     jbe short 091d9h                          ; 76 13
     14111    jbe short 09192h                          ; 76 13
    1414914112    push bx                                   ; 53
    14150     mov ax, 00cf5h                            ; b8 f5 0c
    14151     push ax                                   ; 50
    14152     mov ax, 00cd6h                            ; b8 d6 0c
     14113    mov ax, 00c93h                            ; b8 93 0c
     14114    push ax                                   ; 50
     14115    mov ax, 00c74h                            ; b8 74 0c
    1415314116    push ax                                   ; 50
    1415414117    mov ax, strict word 00007h                ; b8 07 00
    1415514118    push ax                                   ; 50
    14156     call 01976h                               ; e8 a0 87
     14119    call 01976h                               ; e8 e7 87
    1415714120    add sp, strict byte 00008h                ; 83 c4 08
    1415814121    xor di, di                                ; 31 ff
     
    1416814131    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1416914132    xor ax, ax                                ; 31 c0
    14170     call 08eb1h                               ; e8 af fc
     14133    call 08e6ah                               ; e8 af fc
    1417114134    mov bx, strict word 00035h                ; bb 35 00
    1417214135    mov ax, si                                ; 89 f0
    1417314136    mov dx, cx                                ; 89 ca
    14174     call 08acch                               ; e8 c0 f8
     14137    call 08a85h                               ; e8 c0 f8
    1417514138    mov dx, ax                                ; 89 c2
    1417614139    mov es, cx                                ; 8e c1
     
    1418714150    pop bp                                    ; 5d
    1418814151    retn 00004h                               ; c2 04 00
    14189 ahci_cmd_packet_:                            ; 0xf9233 LB 0x18c
     14152ahci_cmd_packet_:                            ; 0xf91ec LB 0x18c
    1419014153    push bp                                   ; 55
    1419114154    mov bp, sp                                ; 89 e5
     
    1419914162    mov dx, strict word 0000eh                ; ba 0e 00
    1420014163    mov ax, strict word 00040h                ; b8 40 00
    14201     call 0166eh                               ; e8 20 84
     14164    call 0166eh                               ; e8 67 84
    1420214165    mov si, 00122h                            ; be 22 01
    1420314166    mov word [bp-008h], ax                    ; 89 46 f8
    1420414167    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14205     jne short 0927dh                          ; 75 23
    14206     mov bx, 00e02h                            ; bb 02 0e
     14168    jne short 09236h                          ; 75 23
     14169    mov bx, 00da6h                            ; bb a6 0d
    1420714170    mov cx, ds                                ; 8c d9
    1420814171    mov ax, strict word 00004h                ; b8 04 00
    14209     call 01933h                               ; e8 ce 86
    14210     mov ax, 00d08h                            ; b8 08 0d
    14211     push ax                                   ; 50
    14212     mov ax, 00d18h                            ; b8 18 0d
     14172    call 01933h                               ; e8 15 87
     14173    mov ax, 00ca6h                            ; b8 a6 0c
     14174    push ax                                   ; 50
     14175    mov ax, 00cb6h                            ; b8 b6 0c
    1421314176    push ax                                   ; 50
    1421414177    mov ax, strict word 00004h                ; b8 04 00
    1421514178    push ax                                   ; 50
    14216     call 01976h                               ; e8 02 87
     14179    call 01976h                               ; e8 49 87
    1421714180    add sp, strict byte 00006h                ; 83 c4 06
    1421814181    mov ax, strict word 00001h                ; b8 01 00
    14219     jmp near 093b6h                           ; e9 39 01
     14182    jmp near 0936fh                           ; e9 39 01
    1422014183    test byte [bp+004h], 001h                 ; f6 46 04 01
    14221     jne short 09277h                          ; 75 f4
     14184    jne short 09230h                          ; 75 f4
    1422214185    mov bx, word [bp+006h]                    ; 8b 5e 06
    1422314186    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1422514188    sal bx, 1                                 ; d1 e3
    1422614189    rcl di, 1                                 ; d1 d7
    14227     loop 0928ch                               ; e2 fa
     14190    loop 09245h                               ; e2 fa
    1422814191    mov es, [bp-008h]                         ; 8e 46 f8
    1422914192    mov word [es:si], bx                      ; 26 89 1c
     
    1423914202    mov dx, word [bp+008h]                    ; 8b 56 08
    1424014203    xor cx, cx                                ; 31 c9
    14241     call 0a1a0h                               ; e8 db 0e
     14204    call 0a160h                               ; e8 e2 0e
    1424214205    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1424314206    xor di, di                                ; 31 ff
     
    1425714220    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1425814221    xor ax, ax                                ; 31 c0
    14259     call 08eb1h                               ; e8 af fb
     14222    call 08e6ah                               ; e8 af fb
    1426014223    mov al, byte [bp-006h]                    ; 8a 46 fa
    1426114224    xor ah, ah                                ; 30 e4
     
    1426514228    mov ax, 000c0h                            ; b8 c0 00
    1426614229    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14267     call 0a200h                               ; e8 e9 0e
     14230    call 0a1c0h                               ; e8 f0 0e
    1426814231    mov es, [bp-008h]                         ; 8e 46 f8
    1426914232    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1427214235    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1427314236    test ax, ax                               ; 85 c0
    14274     je short 09355h                           ; 74 27
     14237    je short 0930eh                           ; 74 27
    1427514238    dec ax                                    ; 48
    1427614239    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1428514248    mov ax, si                                ; 89 f0
    1428614249    mov dx, word [bp-008h]                    ; 8b 56 f8
    14287     call 08acch                               ; e8 6c f7
     14250    call 08a85h                               ; e8 6c f7
    1428814251    les bx, [bp-00eh]                         ; c4 5e f2
    1428914252    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1431214275    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1431314276    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14314     jne short 093b4h                          ; 75 05
     14277    jne short 0936dh                          ; 75 05
    1431514278    mov ax, strict word 00004h                ; b8 04 00
    14316     jmp short 093b6h                          ; eb 02
     14279    jmp short 0936fh                          ; eb 02
    1431714280    xor ax, ax                                ; 31 c0
    1431814281    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1432114284    pop bp                                    ; 5d
    1432214285    retn 0000ch                               ; c2 0c 00
    14323 ahci_port_detect_device_:                    ; 0xf93bf LB 0x4fe
     14286ahci_port_detect_device_:                    ; 0xf9378 LB 0x4fe
    1432414287    push bp                                   ; 55
    1432514288    mov bp, sp                                ; 89 e5
     
    1433714300    mov bx, word [bp-020h]                    ; 8b 5e e0
    1433814301    mov ax, si                                ; 89 f0
    14339     call 08eb1h                               ; e8 ce fa
     14302    call 08e6ah                               ; e8 ce fa
    1434014303    mov dx, strict word 0000eh                ; ba 0e 00
    1434114304    mov ax, strict word 00040h                ; b8 40 00
    14342     call 0166eh                               ; e8 82 82
     14305    call 0166eh                               ; e8 c9 82
    1434314306    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
    1434414307    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1441214375    mov bx, strict word 0000fh                ; bb 0f 00
    1441314376    xor cx, cx                                ; 31 c9
    14414     call 08939h                               ; e8 9f f4
     14377    call 088f2h                               ; e8 9f f4
    1441514378    test ax, ax                               ; 85 c0
    14416     jne short 094a1h                          ; 75 03
    14417     jmp near 098b5h                           ; e9 14 04
     14379    jne short 0945ah                          ; 75 03
     14380    jmp near 0986eh                           ; e9 14 04
    1441814381    mov al, byte [bp-008h]                    ; 8a 46 f8
    1441914382    xor ah, ah                                ; 30 e4
     
    1444714410    xor cx, cx                                ; 31 c9
    1444814411    mov ax, di                                ; 89 f8
    14449     call 08939h                               ; e8 4d f4
     14412    call 088f2h                               ; e8 4d f4
    1445014413    cmp ax, strict word 00001h                ; 3d 01 00
    14451     je short 094a1h                           ; 74 b0
     14414    je short 0945ah                           ; 74 b0
    1445214415    xor ax, ax                                ; 31 c0
    1445314416    push ax                                   ; 50
     
    1445614419    mov ax, di                                ; 89 f8
    1445714420    mov dx, word [bp-01ch]                    ; 8b 56 e4
    14458     call 08939h                               ; e8 38 f4
     14421    call 088f2h                               ; e8 38 f4
    1445914422    cmp ax, strict word 00003h                ; 3d 03 00
    14460     jne short 0949eh                          ; 75 98
     14423    jne short 09457h                          ; 75 98
    1446114424    mov ax, word [bp-016h]                    ; 8b 46 ea
    1446214425    add ax, 00130h                            ; 05 30 01
     
    1448614449    mov byte [bp-00ch], al                    ; 88 46 f4
    1448714450    cmp AL, strict byte 004h                  ; 3c 04
    14488     jc short 09550h                           ; 72 03
    14489     jmp near 098b5h                           ; e9 65 03
     14451    jc short 09509h                           ; 72 03
     14452    jmp near 0986eh                           ; e9 65 03
    1449014453    mov ax, word [bp-016h]                    ; 8b 46 ea
    1449114454    add ax, 00118h                            ; 05 18 01
     
    1453914502    add cl, 00ch                              ; 80 c1 0c
    1454014503    test dx, dx                               ; 85 d2
    14541     jne short 0961bh                          ; 75 55
     14504    jne short 095d4h                          ; 75 55
    1454214505    cmp bx, 00101h                            ; 81 fb 01 01
    14543     jne short 0961bh                          ; 75 4f
     14506    jne short 095d4h                          ; 75 4f
    1454414507    mov es, [bp-00eh]                         ; 8e 46 f2
    1454514508    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1455614519    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1455714520    mov dx, es                                ; 8c c2
    14558     call 08acch                               ; e8 c0 f4
     14521    call 08a85h                               ; e8 c0 f4
    1455914522    mov byte [bp-00ah], cl                    ; 88 4e f6
    1456014523    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14561     je short 0961eh                           ; 74 08
     14524    je short 095d7h                           ; 74 08
    1456214525    mov ax, strict word 00001h                ; b8 01 00
    14563     jmp short 09620h                          ; eb 05
    14564     jmp near 097f0h                           ; e9 d2 01
     14526    jmp short 095d9h                          ; eb 05
     14527    jmp near 097a9h                           ; e9 d2 01
    1456514528    xor ax, ax                                ; 31 c0
    1456614529    mov cl, al                                ; 88 c1
     
    1457814541    mov word [bp-012h], ax                    ; 89 46 ee
    1457914542    cmp di, 00fffh                            ; 81 ff ff 0f
    14580     jne short 0966fh                          ; 75 1f
     14543    jne short 09628h                          ; 75 1f
    1458114544    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
    14582     jne short 0966fh                          ; 75 19
     14545    jne short 09628h                          ; 75 19
    1458314546    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1458414547    mov word [bp-012h], ax                    ; 89 46 ee
     
    1462014583    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1462114584    cmp AL, strict byte 001h                  ; 3c 01
    14622     jc short 096ech                           ; 72 0c
    14623     jbe short 096f4h                          ; 76 12
     14585    jc short 096a5h                           ; 72 0c
     14586    jbe short 096adh                          ; 76 12
    1462414587    cmp AL, strict byte 003h                  ; 3c 03
    14625     je short 096fch                           ; 74 16
     14588    je short 096b5h                           ; 74 16
    1462614589    cmp AL, strict byte 002h                  ; 3c 02
    14627     je short 096f8h                           ; 74 0e
    14628     jmp short 0973fh                          ; eb 53
     14590    je short 096b1h                           ; 74 0e
     14591    jmp short 096f8h                          ; eb 53
    1462914592    test al, al                               ; 84 c0
    14630     jne short 0973fh                          ; 75 4f
     14593    jne short 096f8h                          ; 75 4f
    1463114594    mov DL, strict byte 040h                  ; b2 40
    14632     jmp short 096feh                          ; eb 0a
     14595    jmp short 096b7h                          ; eb 0a
    1463314596    mov DL, strict byte 048h                  ; b2 48
    14634     jmp short 096feh                          ; eb 06
     14597    jmp short 096b7h                          ; eb 06
    1463514598    mov DL, strict byte 050h                  ; b2 50
    14636     jmp short 096feh                          ; eb 02
     14599    jmp short 096b7h                          ; eb 02
    1463714600    mov DL, strict byte 058h                  ; b2 58
    1463814601    mov bl, dl                                ; 88 d3
     
    1464014603    xor bh, bh                                ; 30 ff
    1464114604    mov ax, bx                                ; 89 d8
    14642     call 016aeh                               ; e8 a4 7f
     14605    call 016aeh                               ; e8 eb 7f
    1464314606    test al, al                               ; 84 c0
    14644     je short 0973fh                           ; 74 31
     14607    je short 096f8h                           ; 74 31
    1464514608    mov al, dl                                ; 88 d0
    1464614609    db  0feh, 0c0h
    1464714610    ; inc al                                    ; fe c0
    1464814611    xor ah, ah                                ; 30 e4
    14649     call 016aeh                               ; e8 97 7f
     14612    call 016aeh                               ; e8 de 7f
    1465014613    mov ch, al                                ; 88 c5
    1465114614    mov al, dl                                ; 88 d0
    1465214615    xor ah, ah                                ; 30 e4
    14653     call 016aeh                               ; e8 8e 7f
     14616    call 016aeh                               ; e8 d5 7f
    1465414617    mov ah, ch                                ; 88 ec
    1465514618    mov word [bp-028h], ax                    ; 89 46 d8
     
    1465714620    add AL, strict byte 002h                  ; 04 02
    1465814621    xor ah, ah                                ; 30 e4
    14659     call 016aeh                               ; e8 80 7f
     14622    call 016aeh                               ; e8 c7 7f
    1466014623    xor ah, ah                                ; 30 e4
    1466114624    mov word [bp-02ah], ax                    ; 89 46 d6
    1466214625    mov ax, bx                                ; 89 d8
    14663     call 016aeh                               ; e8 76 7f
     14626    call 016aeh                               ; e8 bd 7f
    1466414627    xor ah, ah                                ; 30 e4
    1466514628    mov word [bp-026h], ax                    ; 89 46 da
    14666     jmp short 09751h                          ; eb 12
     14629    jmp short 0970ah                          ; eb 12
    1466714630    push word [bp-012h]                       ; ff 76 ee
    1466814631    push word [bp-01eh]                       ; ff 76 e2
     
    1467114634    mov dx, ss                                ; 8c d2
    1467214635    lea ax, [bp-02ah]                         ; 8d 46 d6
    14673     call 05b7fh                               ; e8 2e c4
    14674     mov bx, 00e02h                            ; bb 02 0e
     14636    call 05b7fh                               ; e8 75 c4
     14637    mov bx, 00da6h                            ; bb a6 0d
    1467514638    mov cx, ds                                ; 8c d9
    1467614639    mov ax, strict word 00004h                ; b8 04 00
    14677     call 01933h                               ; e8 d7 81
     14640    call 01933h                               ; e8 1e 82
    1467814641    push word [bp-012h]                       ; ff 76 ee
    1467914642    push word [bp-01eh]                       ; ff 76 e2
     
    1469414657    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1469514658    push ax                                   ; 50
    14696     mov ax, 00d38h                            ; b8 38 0d
     14659    mov ax, 00cd6h                            ; b8 d6 0c
    1469714660    push ax                                   ; 50
    1469814661    mov ax, strict word 00004h                ; b8 04 00
    1469914662    push ax                                   ; 50
    14700     call 01976h                               ; e8 e6 81
     14663    call 01976h                               ; e8 2d 82
    1470114664    add sp, strict byte 0001ch                ; 83 c4 1c
    1470214665    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1473014693    mov dx, strict word 00075h                ; ba 75 00
    1473114694    mov ax, strict word 00040h                ; b8 40 00
    14732     call 01652h                               ; e8 74 7e
     14695    call 01652h                               ; e8 bb 7e
    1473314696    mov bl, al                                ; 88 c3
    1473414697    db  0feh, 0c3h
     
    1473714700    mov dx, strict word 00075h                ; ba 75 00
    1473814701    mov ax, strict word 00040h                ; b8 40 00
    14739     call 01660h                               ; e8 73 7e
    14740     jmp near 098a4h                           ; e9 b4 00
     14702    call 01660h                               ; e8 ba 7e
     14703    jmp near 0985dh                           ; e9 b4 00
    1474114704    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14742     jne short 0984bh                          ; 75 55
     14705    jne short 09804h                          ; 75 55
    1474314706    cmp bx, 00101h                            ; 81 fb 01 01
    14744     jne short 0984bh                          ; 75 4f
     14707    jne short 09804h                          ; 75 4f
    1474514708    mov es, [bp-00eh]                         ; 8e 46 f2
    1474614709    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1475714720    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1475814721    mov dx, es                                ; 8c c2
    14759     call 08acch                               ; e8 90 f2
     14722    call 08a85h                               ; e8 90 f2
    1476014723    mov byte [bp-00ah], cl                    ; 88 4e f6
    1476114724    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14762     je short 0984dh                           ; 74 07
     14725    je short 09806h                           ; 74 07
    1476314726    mov cx, strict word 00001h                ; b9 01 00
    14764     jmp short 0984fh                          ; eb 04
    14765     jmp short 098a4h                          ; eb 57
     14727    jmp short 09808h                          ; eb 04
     14728    jmp short 0985dh                          ; eb 57
    1476614729    xor cx, cx                                ; 31 c9
    1476714730    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1480314766    pop bp                                    ; 5d
    1480414767    retn                                      ; c3
    14805 ahci_mem_alloc_:                             ; 0xf98bd LB 0x43
     14768ahci_mem_alloc_:                             ; 0xf9876 LB 0x43
    1480614769    push bp                                   ; 55
    1480714770    mov bp, sp                                ; 89 e5
     
    1481314776    mov dx, 00413h                            ; ba 13 04
    1481414777    xor ax, ax                                ; 31 c0
    14815     call 0166eh                               ; e8 a1 7d
     14778    call 0166eh                               ; e8 e8 7d
    1481614779    test ax, ax                               ; 85 c0
    14817     je short 098f6h                           ; 74 25
     14780    je short 098afh                           ; 74 25
    1481814781    dec ax                                    ; 48
    1481914782    mov bx, ax                                ; 89 c3
     
    1482214785    sal ax, 1                                 ; d1 e0
    1482314786    rcl dx, 1                                 ; d1 d2
    14824     loop 098d9h                               ; e2 fa
     14787    loop 09892h                               ; e2 fa
    1482514788    mov si, ax                                ; 89 c6
    1482614789    mov di, dx                                ; 89 d7
     
    1482814791    shr di, 1                                 ; d1 ef
    1482914792    rcr si, 1                                 ; d1 de
    14830     loop 098e6h                               ; e2 fa
     14793    loop 0989fh                               ; e2 fa
    1483114794    mov dx, 00413h                            ; ba 13 04
    1483214795    xor ax, ax                                ; 31 c0
    14833     call 0167ch                               ; e8 88 7d
     14796    call 0167ch                               ; e8 cf 7d
    1483414797    mov ax, si                                ; 89 f0
    1483514798    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1484114804    pop bp                                    ; 5d
    1484214805    retn                                      ; c3
    14843 ahci_hba_init_:                              ; 0xf9900 LB 0x16e
     14806ahci_hba_init_:                              ; 0xf98b9 LB 0x16e
    1484414807    push bp                                   ; 55
    1484514808    mov bp, sp                                ; 89 e5
     
    1485314816    mov dx, strict word 0000eh                ; ba 0e 00
    1485414817    mov ax, strict word 00040h                ; b8 40 00
    14855     call 0166eh                               ; e8 58 7d
     14818    call 0166eh                               ; e8 9f 7d
    1485614819    mov bx, 00122h                            ; bb 22 01
    1485714820    mov di, ax                                ; 89 c7
     
    1487014833    shr eax, 010h                             ; 66 c1 e8 10
    1487114834    xchg dx, ax                               ; 92
    14872     call 098bdh                               ; e8 83 ff
     14835    call 09876h                               ; e8 83 ff
    1487314836    mov word [bp-010h], ax                    ; 89 46 f0
    1487414837    test ax, ax                               ; 85 c0
    14875     jne short 09944h                          ; 75 03
    14876     jmp near 09a4dh                           ; e9 09 01
     14838    jne short 098fdh                          ; 75 03
     14839    jmp near 09a06h                           ; e9 09 01
    1487714840    mov ax, word [bp-010h]                    ; 8b 46 f0
    1487814841    mov es, di                                ; 8e c7
     
    1492414887    xchg dx, ax                               ; 92
    1492514888    test AL, strict byte 001h                 ; a8 01
    14926     jne short 0999eh                          ; 75 de
     14889    jne short 09957h                          ; 75 de
    1492714890    xor ax, ax                                ; 31 c0
    1492814891    xor cx, cx                                ; 31 c9
     
    1494314906    mov bx, strict word 0001fh                ; bb 1f 00
    1494414907    xor cx, cx                                ; 31 c9
    14945     call 08939h                               ; e8 54 ef
     14908    call 088f2h                               ; e8 54 ef
    1494614909    db  0feh, 0c0h
    1494714910    ; inc al                                    ; fe c0
    1494814911    mov byte [bp-00eh], al                    ; 88 46 f2
    1494914912    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14950     jmp short 09a11h                          ; eb 21
     14913    jmp short 099cah                          ; eb 21
    1495114914    xor al, al                                ; 30 c0
    1495214915    test al, al                               ; 84 c0
    14953     je short 09a08h                           ; 74 12
     14916    je short 099c1h                           ; 74 12
    1495414917    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1495514918    xor bh, bh                                ; 30 ff
    1495614919    xor ax, ax                                ; 31 c0
    1495714920    mov dx, word [bp-010h]                    ; 8b 56 f0
    14958     call 093bfh                               ; e8 bc f9
     14921    call 09378h                               ; e8 bc f9
    1495914922    dec byte [bp-00eh]                        ; fe 4e f2
    14960     je short 09a4bh                           ; 74 43
     14923    je short 09a04h                           ; 74 43
    1496114924    inc byte [bp-00ch]                        ; fe 46 f4
    1496214925    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14963     jnc short 09a4bh                          ; 73 3a
     14926    jnc short 09a04h                          ; 73 3a
    1496414927    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1496514928    xor ch, ch                                ; 30 ed
    1496614929    mov bx, strict word 00001h                ; bb 01 00
    1496714930    xor di, di                                ; 31 ff
    14968     jcxz 09a23h                               ; e3 06
     14931    jcxz 099dch                               ; e3 06
    1496914932    sal bx, 1                                 ; d1 e3
    1497014933    rcl di, 1                                 ; d1 d7
    14971     loop 09a1dh                               ; e2 fa
     14934    loop 099d6h                               ; e2 fa
    1497214935    mov ax, strict word 0000ch                ; b8 0c 00
    1497314936    xor cx, cx                                ; 31 c9
     
    1498514948    xchg dx, ax                               ; 92
    1498614949    test dx, di                               ; 85 fa
    14987     jne short 09a47h                          ; 75 04
     14950    jne short 09a00h                          ; 75 04
    1498814951    test ax, bx                               ; 85 d8
    14989     je short 099f0h                           ; 74 a9
     14952    je short 099a9h                           ; 74 a9
    1499014953    mov AL, strict byte 001h                  ; b0 01
    14991     jmp short 099f2h                          ; eb a7
     14954    jmp short 099abh                          ; eb a7
    1499214955    xor ax, ax                                ; 31 c0
    1499314956    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1499914962    pop bp                                    ; 5d
    1500014963    retn                                      ; c3
    15001     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 054h, 09bh, 032h, 09bh, 038h, 09bh, 03eh, 09bh, 044h
    15002     db  09bh, 04ah, 09bh, 050h, 09bh, 054h, 09bh
    15003 _ahci_init:                                  ; 0xf9a6e LB 0x139
     14964    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 00dh, 09bh, 0ebh, 09ah, 0f1h, 09ah, 0f7h, 09ah, 0fdh
     14965    db  09ah, 003h, 09bh, 009h, 09bh, 00dh, 09bh
     14966_ahci_init:                                  ; 0xf9a27 LB 0x139
    1500414967    push bp                                   ; 55
    1500514968    mov bp, sp                                ; 89 e5
     
    1500914972    mov ax, 00601h                            ; b8 01 06
    1501014973    mov dx, strict word 00001h                ; ba 01 00
    15011     call 09fc6h                               ; e8 47 05
     14974    call 09f7fh                               ; e8 47 05
    1501214975    mov dx, ax                                ; 89 c2
    1501314976    cmp ax, strict word 0ffffh                ; 3d ff ff
    15014     je short 09acfh                           ; 74 49
     14977    je short 09a88h                           ; 74 49
    1501514978    mov al, ah                                ; 88 e0
    1501614979    mov byte [bp-008h], ah                    ; 88 66 f8
     
    1501914982    xor ah, ah                                ; 30 e4
    1502014983    mov bx, strict word 00034h                ; bb 34 00
    15021     call 09ff1h                               ; e8 59 05
     14984    call 09faah                               ; e8 59 05
    1502214985    mov cl, al                                ; 88 c1
    1502314986    test cl, cl                               ; 84 c9
    15024     je short 09ad2h                           ; 74 34
     14987    je short 09a8bh                           ; 74 34
    1502514988    mov bl, cl                                ; 88 cb
    1502614989    xor bh, bh                                ; 30 ff
     
    1503314996    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1503414997    mov ax, word [bp-012h]                    ; 8b 46 ee
    15035     call 09ff1h                               ; e8 34 05
     14998    call 09faah                               ; e8 34 05
    1503614999    cmp AL, strict byte 012h                  ; 3c 12
    15037     je short 09ad2h                           ; 74 11
     15000    je short 09a8bh                           ; 74 11
    1503815001    mov bl, cl                                ; 88 cb
    1503915002    db  0feh, 0c3h
     
    1504215005    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1504315006    mov ax, word [bp-012h]                    ; 8b 46 ee
    15044     jmp short 09a95h                          ; eb c6
    15045     jmp near 09ba0h                           ; e9 ce 00
     15007    jmp short 09a4eh                          ; eb c6
     15008    jmp near 09b59h                           ; e9 ce 00
    1504615009    test cl, cl                               ; 84 c9
    15047     je short 09acfh                           ; 74 f9
     15010    je short 09a88h                           ; 74 f9
    1504815011    add cl, 002h                              ; 80 c1 02
    1504915012    mov bl, cl                                ; 88 cb
     
    1505715020    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1505815021    mov ax, word [bp-014h]                    ; 8b 46 ec
    15059     call 09ff1h                               ; e8 f9 04
     15022    call 09faah                               ; e8 f9 04
    1506015023    cmp AL, strict byte 010h                  ; 3c 10
    15061     jne short 09acfh                          ; 75 d3
     15024    jne short 09a88h                          ; 75 d3
    1506215025    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1506315026    mov bl, cl                                ; 88 cb
     
    1506615029    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1506715030    mov ax, word [bp-014h]                    ; 8b 46 ec
    15068     call 0a018h                               ; e8 08 05
     15031    call 09fd1h                               ; e8 08 05
    1506915032    mov dx, ax                                ; 89 c2
    1507015033    and ax, strict word 0000fh                ; 25 0f 00
    1507115034    sub ax, strict word 00004h                ; 2d 04 00
    1507215035    cmp ax, strict word 0000bh                ; 3d 0b 00
    15073     jnbe short 09b54h                         ; 77 37
     15036    jnbe short 09b0dh                         ; 77 37
    1507415037    push CS                                   ; 0e
    1507515038    pop ES                                    ; 07
    1507615039    mov cx, strict word 00008h                ; b9 08 00
    15077     mov di, 09a57h                            ; bf 57 9a
     15040    mov di, 09a10h                            ; bf 10 9a
    1507815041    repne scasb                               ; f2 ae
    1507915042    sal cx, 1                                 ; d1 e1
    1508015043    mov di, cx                                ; 89 cf
    15081     mov ax, word [cs:di-065a2h]               ; 2e 8b 85 5e 9a
     15044    mov ax, word [cs:di-065e9h]               ; 2e 8b 85 17 9a
    1508215045    jmp ax                                    ; ff e0
    1508315046    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    15084     jmp short 09b54h                          ; eb 1c
     15047    jmp short 09b0dh                          ; eb 1c
    1508515048    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    15086     jmp short 09b54h                          ; eb 16
     15049    jmp short 09b0dh                          ; eb 16
    1508715050    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    15088     jmp short 09b54h                          ; eb 10
     15051    jmp short 09b0dh                          ; eb 10
    1508915052    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    15090     jmp short 09b54h                          ; eb 0a
     15053    jmp short 09b0dh                          ; eb 0a
    1509115054    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    15092     jmp short 09b54h                          ; eb 04
     15055    jmp short 09b0dh                          ; eb 04
    1509315056    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1509415057    mov CL, strict byte 004h                  ; b1 04
     
    1509915062    mov al, byte [bp-006h]                    ; 8a 46 fa
    1510015063    test al, al                               ; 84 c0
    15101     je short 09ba0h                           ; 74 3b
     15064    je short 09b59h                           ; 74 3b
    1510215065    mov bl, al                                ; 88 c3
    1510315066    xor bh, bh                                ; 30 ff
     
    1511015073    mov dx, word [bp-010h]                    ; 8b 56 f0
    1511115074    mov ax, word [bp-016h]                    ; 8b 46 ea
    15112     call 0a03dh                               ; e8 b9 04
     15075    call 09ff6h                               ; e8 b9 04
    1511315076    test AL, strict byte 001h                 ; a8 01
    15114     je short 09ba0h                           ; 74 18
     15077    je short 09b59h                           ; 74 18
    1511515078    and AL, strict byte 0f0h                  ; 24 f0
    1511615079    add si, ax                                ; 01 c6
     
    1511915082    mov dx, word [bp-010h]                    ; 8b 56 f0
    1512015083    mov ax, word [bp-016h]                    ; 8b 46 ea
    15121     call 0a07ch                               ; e8 e1 04
     15084    call 0a035h                               ; e8 e1 04
    1512215085    mov ax, si                                ; 89 f0
    15123     call 09900h                               ; e8 60 fd
     15086    call 098b9h                               ; e8 60 fd
    1512415087    lea sp, [bp-004h]                         ; 8d 66 fc
    1512515088    pop di                                    ; 5f
     
    1512715090    pop bp                                    ; 5d
    1512815091    retn                                      ; c3
    15129 apm_out_str_:                                ; 0xf9ba7 LB 0x39
     15092apm_out_str_:                                ; 0xf9b60 LB 0x39
    1513015093    push bp                                   ; 55
    1513115094    mov bp, sp                                ; 89 e5
     
    1513315096    mov bx, ax                                ; 89 c3
    1513415097    cmp byte [bx], 000h                       ; 80 3f 00
    15135     je short 09bbch                           ; 74 0a
     15098    je short 09b75h                           ; 74 0a
    1513615099    mov al, byte [bx]                         ; 8a 07
    1513715100    out DX, AL                                ; ee
     
    1514015103    db  00ah, 0c0h
    1514115104    ; or al, al                                 ; 0a c0
    15142     jne short 09bb4h                          ; 75 f8
     15105    jne short 09b6dh                          ; 75 f8
    1514315106    lea sp, [bp-002h]                         ; 8d 66 fe
    1514415107    pop bx                                    ; 5b
    1514515108    pop bp                                    ; 5d
    1514615109    retn                                      ; c3
    15147     add word [si-06374h], bx                  ; 01 9c 8c 9c
    15148     adc bx, word [si-063d2h]                  ; 13 9c 2e 9c
    15149     mov [si-063a7h], ds                       ; 8c 9c 59 9c
    15150     mov [si-0636eh], ds                       ; 8c 9c 92 9c
    15151     pop si                                    ; 5e
     15110    mov dx, 0459bh                            ; ba 9b 45
    1515215111    pushfw                                    ; 9c
    15153     pop si                                    ; 5e
     15112    int3                                      ; cc
     15113    wait                                      ; 9b
     15114    out 09bh, ax                              ; e7 9b
     15115    inc bp                                    ; 45
    1515415116    pushfw                                    ; 9c
    15155     pop si                                    ; 5e
     15117    adc bl, byte [si-063bbh]                  ; 12 9c 45 9c
     15118    dec bx                                    ; 4b
    1515615119    pushfw                                    ; 9c
    15157     rcr word [si-063a2h], 1                   ; d1 9c 5e 9c
    15158     pop si                                    ; 5e
     15120    pop SS                                    ; 17
    1515915121    pushfw                                    ; 9c
    15160     db  0cah
     15122    pop SS                                    ; 17
    1516115123    pushfw                                    ; 9c
    15162 _apm_function:                               ; 0xf9be0 LB 0xf6
     15124    pop SS                                    ; 17
     15125    pushfw                                    ; 9c
     15126    mov bl, byte [si-063e9h]                  ; 8a 9c 17 9c
     15127    pop SS                                    ; 17
     15128    pushfw                                    ; 9c
     15129    db  083h
     15130    pushfw                                    ; 9c
     15131_apm_function:                               ; 0xf9b99 LB 0xf6
    1516315132    push bp                                   ; 55
    1516415133    mov bp, sp                                ; 89 e5
     
    1516815137    xor ah, ah                                ; 30 e4
    1516915138    cmp ax, strict word 0000eh                ; 3d 0e 00
    15170     jnbe short 09c5eh                         ; 77 6c
     15139    jnbe short 09c17h                         ; 77 6c
    1517115140    mov bx, ax                                ; 89 c3
    1517215141    sal bx, 1                                 ; d1 e3
    1517315142    mov dx, word [bp+018h]                    ; 8b 56 18
    1517415143    or dl, 001h                               ; 80 ca 01
    15175     jmp word [cs:bx-0643eh]                   ; 2e ff a7 c2 9b
     15144    jmp word [cs:bx-06485h]                   ; 2e ff a7 7b 9b
    1517615145    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1517715146    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1517815147    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15179     jmp near 09c8ch                           ; e9 79 00
     15148    jmp near 09c45h                           ; e9 79 00
    1518015149    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15181     mov word [bp+00ch], 0a274h                ; c7 46 0c 74 a2
     15150    mov word [bp+00ch], 0a234h                ; c7 46 0c 34 a2
    1518215151    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1518315152    mov ax, strict word 0fff0h                ; b8 f0 ff
    1518415153    mov word [bp+006h], ax                    ; 89 46 06
    1518515154    mov word [bp+004h], ax                    ; 89 46 04
    15186     jmp near 09c8ch                           ; e9 5e 00
     15155    jmp near 09c45h                           ; e9 5e 00
    1518715156    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1518815157    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1519715166    mov si, ax                                ; 89 c6
    1519815167    sal esi, 010h                             ; 66 c1 e6 10
    15199     jmp near 09c8ch                           ; e9 33 00
     15168    jmp near 09c45h                           ; e9 33 00
    1520015169    sti                                       ; fb
    1520115170    hlt                                       ; f4
    15202     jmp near 09c8ch                           ; e9 2e 00
    15203     mov bx, 00e02h                            ; bb 02 0e
     15171    jmp near 09c45h                           ; e9 2e 00
     15172    mov bx, 00da6h                            ; bb a6 0d
    1520415173    mov cx, ds                                ; 8c d9
    1520515174    mov ax, strict word 00004h                ; b8 04 00
    15206     call 01933h                               ; e8 ca 7c
     15175    call 01933h                               ; e8 11 7d
    1520715176    push word [bp+00ch]                       ; ff 76 0c
    1520815177    push word [bp+012h]                       ; ff 76 12
    15209     mov ax, 00d8bh                            ; b8 8b 0d
     15178    mov ax, 00d29h                            ; b8 29 0d
    1521015179    push ax                                   ; 50
    1521115180    mov ax, strict word 00004h                ; b8 04 00
    1521215181    push ax                                   ; 50
    15213     call 01976h                               ; e8 fc 7c
     15182    call 01976h                               ; e8 43 7d
    1521415183    add sp, strict byte 00008h                ; 83 c4 08
    1521515184    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1522315192    retn                                      ; c3
    1522415193    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15225     je short 09cb7h                           ; 74 1f
     15194    je short 09c70h                           ; 74 1f
    1522615195    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15227     je short 09cafh                           ; 74 11
     15196    je short 09c68h                           ; 74 11
    1522815197    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15229     jne short 09cbfh                          ; 75 1b
     15198    jne short 09c78h                          ; 75 1b
    1523015199    mov dx, 0040fh                            ; ba 0f 04
    15231     mov ax, 00d72h                            ; b8 72 0d
    15232     call 09ba7h                               ; e8 fa fe
    15233     jmp short 09c8ch                          ; eb dd
     15200    mov ax, 00d10h                            ; b8 10 0d
     15201    call 09b60h                               ; e8 fa fe
     15202    jmp short 09c45h                          ; eb dd
    1523415203    mov dx, 0040fh                            ; ba 0f 04
    15235     mov ax, 00d7ah                            ; b8 7a 0d
    15236     jmp short 09caah                          ; eb f3
     15204    mov ax, 00d18h                            ; b8 18 0d
     15205    jmp short 09c63h                          ; eb f3
    1523715206    mov dx, 0040fh                            ; ba 0f 04
    15238     mov ax, 00d82h                            ; b8 82 0d
    15239     jmp short 09caah                          ; eb eb
     15207    mov ax, 00d20h                            ; b8 20 0d
     15208    jmp short 09c63h                          ; eb eb
    1524015209    or ah, 00ah                               ; 80 cc 0a
    1524115210    mov word [bp+012h], ax                    ; 89 46 12
    1524215211    mov word [bp+018h], dx                    ; 89 56 18
    15243     jmp short 09c8ch                          ; eb c2
     15212    jmp short 09c45h                          ; eb c2
    1524415213    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15245     jmp short 09c8ch                          ; eb bb
     15214    jmp short 09c45h                          ; eb bb
    1524615215    or ah, 080h                               ; 80 cc 80
    15247     jmp short 09cc2h                          ; eb ec
    15248 pci16_select_reg_:                           ; 0xf9cd6 LB 0x24
     15216    jmp short 09c7bh                          ; eb ec
     15217pci16_select_reg_:                           ; 0xf9c8f LB 0x24
    1524915218    push bp                                   ; 55
    1525015219    mov bp, sp                                ; 89 e5
     
    1526315232    pop bp                                    ; 5d
    1526415233    retn                                      ; c3
    15265 pci16_find_device_:                          ; 0xf9cfa LB 0xf7
     15234pci16_find_device_:                          ; 0xf9cb3 LB 0xf7
    1526615235    push bp                                   ; 55
    1526715236    mov bp, sp                                ; 89 e5
     
    1527715246    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1527815247    test bl, 007h                             ; f6 c3 07
    15279     jne short 09d42h                          ; 75 2d
     15248    jne short 09cfbh                          ; 75 2d
    1528015249    mov dx, strict word 0000eh                ; ba 0e 00
    1528115250    mov ax, bx                                ; 89 d8
    15282     call 09cd6h                               ; e8 b9 ff
     15251    call 09c8fh                               ; e8 b9 ff
    1528315252    mov dx, 00cfeh                            ; ba fe 0c
    1528415253    in AL, DX                                 ; ec
     
    1528715256    mov byte [bp-008h], al                    ; 88 46 f8
    1528815257    cmp AL, strict byte 0ffh                  ; 3c ff
    15289     jne short 09d30h                          ; 75 06
     15258    jne short 09ce9h                          ; 75 06
    1529015259    add bx, strict byte 00008h                ; 83 c3 08
    15291     jmp near 09dc2h                           ; e9 92 00
     15260    jmp near 09d7bh                           ; e9 92 00
    1529215261    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15293     je short 09d3dh                           ; 74 07
     15262    je short 09cf6h                           ; 74 07
    1529415263    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15295     jmp short 09d42h                          ; eb 05
     15264    jmp short 09cfbh                          ; eb 05
    1529615265    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1529715266    mov al, byte [bp-008h]                    ; 8a 46 f8
    1529815267    and AL, strict byte 007h                  ; 24 07
    1529915268    cmp AL, strict byte 001h                  ; 3c 01
    15300     jne short 09d69h                          ; 75 1e
     15269    jne short 09d22h                          ; 75 1e
    1530115270    mov al, bh                                ; 88 f8
    1530215271    xor ah, ah                                ; 30 e4
    1530315272    test ax, ax                               ; 85 c0
    15304     jne short 09d69h                          ; 75 16
     15273    jne short 09d22h                          ; 75 16
    1530515274    mov dx, strict word 0001ah                ; ba 1a 00
    1530615275    mov ax, bx                                ; 89 d8
    15307     call 09cd6h                               ; e8 7b ff
     15276    call 09c8fh                               ; e8 7b ff
    1530815277    mov dx, 00cfeh                            ; ba fe 0c
    1530915278    in AL, DX                                 ; ec
     
    1531115280    ; sub ah, ah                                ; 2a e4
    1531215281    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15313     jbe short 09d69h                          ; 76 03
     15282    jbe short 09d22h                          ; 76 03
    1531415283    mov byte [bp-006h], al                    ; 88 46 fa
    1531515284    test di, di                               ; 85 ff
    15316     je short 09d72h                           ; 74 05
     15285    je short 09d2bh                           ; 74 05
    1531715286    mov dx, strict word 00008h                ; ba 08 00
    15318     jmp short 09d74h                          ; eb 02
     15287    jmp short 09d2dh                          ; eb 02
    1531915288    xor dx, dx                                ; 31 d2
    1532015289    mov ax, bx                                ; 89 d8
    15321     call 09cd6h                               ; e8 5d ff
     15290    call 09c8fh                               ; e8 5d ff
    1532215291    mov dx, 00cfch                            ; ba fc 0c
    1532315292    in eax, DX                                ; 66 ed
     
    1533015299    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1533115300    test di, di                               ; 85 ff
    15332     je short 09da3h                           ; 74 0f
     15301    je short 09d5ch                           ; 74 0f
    1533315302    mov cx, strict word 00008h                ; b9 08 00
    1533415303    shr dx, 1                                 ; d1 ea
    1533515304    rcr ax, 1                                 ; d1 d8
    15336     loop 09d97h                               ; e2 fa
     15305    loop 09d50h                               ; e2 fa
    1533715306    mov word [bp-00ah], ax                    ; 89 46 f6
    1533815307    mov word [bp-010h], dx                    ; 89 56 f0
    1533915308    mov ax, word [bp-010h]                    ; 8b 46 f0
    1534015309    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15341     jne short 09db3h                          ; 75 08
     15310    jne short 09d6ch                          ; 75 08
    1534215311    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1534315312    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15344     je short 09db9h                           ; 74 06
     15313    je short 09d72h                           ; 74 06
    1534515314    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15346     je short 09dbfh                           ; 74 06
     15315    je short 09d78h                           ; 74 06
    1534715316    dec si                                    ; 4e
    1534815317    cmp si, strict byte 0ffffh                ; 83 fe ff
    15349     je short 09dd2h                           ; 74 13
     15318    je short 09d8bh                           ; 74 13
    1535015319    add bx, word [bp-00eh]                    ; 03 5e f2
    1535115320    mov al, bh                                ; 88 f8
     
    1535415323    xor dh, dh                                ; 30 f6
    1535515324    cmp ax, dx                                ; 39 d0
    15356     jnbe short 09dd2h                         ; 77 03
    15357     jmp near 09d10h                           ; e9 3e ff
     15325    jnbe short 09d8bh                         ; 77 03
     15326    jmp near 09cc9h                           ; e9 3e ff
    1535815327    cmp si, strict byte 0ffffh                ; 83 fe ff
    15359     jne short 09ddbh                          ; 75 04
     15328    jne short 09d94h                          ; 75 04
    1536015329    mov ax, bx                                ; 89 d8
    15361     jmp short 09ddeh                          ; eb 03
     15330    jmp short 09d97h                          ; eb 03
    1536215331    mov ax, strict word 0ffffh                ; b8 ff ff
    1536315332    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1536615335    pop bp                                    ; 5d
    1536715336    retn                                      ; c3
    15368     rcr byte [bp-06115h], CL                  ; d2 9e eb 9e
    15369     std                                       ; fd
     15337    mov bx, word [bp-0615ch]                  ; 8b 9e a4 9e
     15338    mov DH, strict byte 09eh                  ; b6 9e
     15339    retf 0dc9eh                               ; ca 9e dc
    1537015340    sahf                                      ; 9e
    15371     adc word [bx-060ddh], bx                  ; 11 9f 23 9f
    15372     db  036h, 09fh
    15373     ; ss lahf                                   ; 36 9f
    15374 _pci16_function:                             ; 0xf9df1 LB 0x1d5
     15341    out DX, ax                                ; ef
     15342    sahf                                      ; 9e
     15343_pci16_function:                             ; 0xf9daa LB 0x1d5
    1537515344    push bp                                   ; 55
    1537615345    mov bp, sp                                ; 89 e5
     
    1538615355    xor ah, ah                                ; 30 e4
    1538715356    cmp bx, strict byte 00003h                ; 83 fb 03
    15388     jc short 09e23h                           ; 72 13
    15389     jbe short 09e76h                          ; 76 64
     15357    jc short 09ddch                           ; 72 13
     15358    jbe short 09e2fh                          ; 76 64
    1539015359    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15391     je short 09e7eh                           ; 74 67
     15360    je short 09e37h                           ; 74 67
    1539215361    cmp bx, strict byte 00008h                ; 83 fb 08
    15393     jc short 09e2dh                           ; 72 11
     15362    jc short 09de6h                           ; 72 11
    1539415363    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15395     jbe short 09e81h                          ; 76 60
    15396     jmp short 09e2dh                          ; eb 0a
     15364    jbe short 09e3ah                          ; 76 60
     15365    jmp short 09de6h                          ; eb 0a
    1539715366    cmp bx, strict byte 00002h                ; 83 fb 02
    15398     je short 09e4ch                           ; 74 24
     15367    je short 09e05h                           ; 74 24
    1539915368    cmp bx, strict byte 00001h                ; 83 fb 01
    15400     je short 09e30h                           ; 74 03
    15401     jmp near 09f8fh                           ; e9 5f 01
     15369    je short 09de9h                           ; 74 03
     15370    jmp near 09f48h                           ; e9 5f 01
    1540215371    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1540315372    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1540515374    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1540615375    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15407     jmp near 09fbfh                           ; e9 73 01
     15376    jmp near 09f78h                           ; e9 73 01
    1540815377    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15409     jne short 09e58h                          ; 75 06
     15378    jne short 09e11h                          ; 75 06
    1541015379    or ah, 083h                               ; 80 cc 83
    15411     jmp near 09fb8h                           ; e9 60 01
     15380    jmp near 09f71h                           ; e9 60 01
    1541215381    mov bx, word [bp+008h]                    ; 8b 5e 08
    1541315382    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1541415383    mov ax, word [bp+018h]                    ; 8b 46 18
    1541515384    xor cx, cx                                ; 31 c9
    15416     call 09cfah                               ; e8 94 fe
     15385    call 09cb3h                               ; e8 94 fe
    1541715386    cmp ax, strict word 0ffffh                ; 3d ff ff
    15418     jne short 09e78h                          ; 75 0d
     15387    jne short 09e31h                          ; 75 0d
    1541915388    mov ax, word [bp+020h]                    ; 8b 46 20
    1542015389    xor ah, ah                                ; 30 e4
    1542115390    or ah, 086h                               ; 80 cc 86
    15422     jmp near 09fb8h                           ; e9 42 01
    15423     jmp short 09e83h                          ; eb 0b
     15391    jmp near 09f71h                           ; e9 42 01
     15392    jmp short 09e3ch                          ; eb 0b
    1542415393    mov word [bp+014h], ax                    ; 89 46 14
    15425     jmp near 09fbfh                           ; e9 41 01
    15426     jmp near 09f4ah                           ; e9 c9 00
    15427     jmp short 09ea8h                          ; eb 25
     15394    jmp near 09f78h                           ; e9 41 01
     15395    jmp near 09f03h                           ; e9 c9 00
     15396    jmp short 09e61h                          ; eb 25
    1542815397    mov bx, word [bp+008h]                    ; 8b 5e 08
    1542915398    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1543015399    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1543115400    mov cx, strict word 00001h                ; b9 01 00
    15432     call 09cfah                               ; e8 68 fe
     15401    call 09cb3h                               ; e8 68 fe
    1543315402    cmp ax, strict word 0ffffh                ; 3d ff ff
    15434     jne short 09ea2h                          ; 75 0b
     15403    jne short 09e5bh                          ; 75 0b
    1543515404    mov ax, word [bp+020h]                    ; 8b 46 20
    1543615405    xor ah, ah                                ; 30 e4
    1543715406    or ah, 086h                               ; 80 cc 86
    15438     jmp near 09fb8h                           ; e9 16 01
     15407    jmp near 09f71h                           ; e9 16 01
    1543915408    mov word [bp+014h], ax                    ; 89 46 14
    15440     jmp near 09fbfh                           ; e9 17 01
     15409    jmp near 09f78h                           ; e9 17 01
    1544115410    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15442     jc short 09eb5h                           ; 72 06
     15411    jc short 09e6eh                           ; 72 06
    1544315412    or ah, 087h                               ; 80 cc 87
    15444     jmp near 09fb8h                           ; e9 03 01
     15413    jmp near 09f71h                           ; e9 03 01
    1544515414    mov dx, word [bp+004h]                    ; 8b 56 04
    1544615415    mov ax, word [bp+014h]                    ; 8b 46 14
    15447     call 09cd6h                               ; e8 18 fe
     15416    call 09c8fh                               ; e8 18 fe
    1544815417    mov bx, word [bp+020h]                    ; 8b 5e 20
    1544915418    xor bh, bh                                ; 30 ff
    1545015419    sub bx, strict byte 00008h                ; 83 eb 08
    1545115420    cmp bx, strict byte 00005h                ; 83 fb 05
    15452     jnbe short 09f33h                         ; 77 68
     15421    jnbe short 09eech                         ; 77 68
    1545315422    sal bx, 1                                 ; d1 e3
    15454     jmp word [cs:bx-0621bh]                   ; 2e ff a7 e5 9d
     15423    jmp word [cs:bx-06262h]                   ; 2e ff a7 9e 9d
    1545515424    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1545615425    xor bl, bl                                ; 30 db
     
    1546315432    or bx, ax                                 ; 09 c3
    1546415433    mov word [bp+01ch], bx                    ; 89 5e 1c
    15465     jmp short 09f33h                          ; eb 48
     15434    jmp short 09eech                          ; eb 48
    1546615435    mov dx, word [bp+004h]                    ; 8b 56 04
    1546715436    xor dh, dh                                ; 30 f6
     
    1547015439    in ax, DX                                 ; ed
    1547115440    mov word [bp+01ch], ax                    ; 89 46 1c
    15472     jmp short 09f33h                          ; eb 36
     15441    jmp short 09eech                          ; eb 36
    1547315442    mov dx, 00cfch                            ; ba fc 0c
    1547415443    in eax, DX                                ; 66 ed
     
    1547915448    mov word [bp+01ch], ax                    ; 89 46 1c
    1548015449    mov word [bp+01eh], dx                    ; 89 56 1e
    15481     jmp short 09f33h                          ; eb 22
     15450    jmp short 09eech                          ; eb 22
    1548215451    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1548315452    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1548615455    add dx, 00cfch                            ; 81 c2 fc 0c
    1548715456    out DX, AL                                ; ee
    15488     jmp short 09f33h                          ; eb 10
     15457    jmp short 09eech                          ; eb 10
    1548915458    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1549015459    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1549315462    add dx, 00cfch                            ; 81 c2 fc 0c
    1549415463    out DX, ax                                ; ef
    15495     jmp near 09fbfh                           ; e9 89 00
     15464    jmp near 09f78h                           ; e9 89 00
    1549615465    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1549715466    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1550215471    ; mov ax, cx                                ; 8b c1
    1550315472    out DX, eax                               ; 66 ef
    15504     jmp short 09fbfh                          ; eb 75
     15473    jmp short 09f78h                          ; eb 75
    1550515474    mov bx, word [bp+004h]                    ; 8b 5e 04
    1550615475    mov es, [bp+026h]                         ; 8e 46 26
     
    1550915478    mov cx, word [0f380h]                     ; 8b 0e 80 f3
    1551015479    cmp cx, word [es:bx]                      ; 26 3b 0f
    15511     jbe short 09f70h                          ; 76 11
     15480    jbe short 09f29h                          ; 76 11
    1551215481    mov ax, word [bp+020h]                    ; 8b 46 20
    1551315482    xor ah, ah                                ; 30 e4
     
    1551515484    mov word [bp+020h], ax                    ; 89 46 20
    1551615485    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15517     jmp short 09f84h                          ; eb 14
     15486    jmp short 09f3dh                          ; eb 14
    1551815487    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1551915488    mov si, 0f1a0h                            ; be a0 f1
     
    1552715496    les bx, [bp-008h]                         ; c4 5e f8
    1552815497    mov word [es:bx], ax                      ; 26 89 07
    15529     jmp short 09fbfh                          ; eb 30
    15530     mov bx, 00e02h                            ; bb 02 0e
     15498    jmp short 09f78h                          ; eb 30
     15499    mov bx, 00da6h                            ; bb a6 0d
    1553115500    mov cx, ds                                ; 8c d9
    1553215501    mov ax, strict word 00004h                ; b8 04 00
    15533     call 01933h                               ; e8 99 79
     15502    call 01933h                               ; e8 e0 79
    1553415503    mov ax, word [bp+014h]                    ; 8b 46 14
    1553515504    push ax                                   ; 50
    1553615505    mov ax, word [bp+020h]                    ; 8b 46 20
    1553715506    push ax                                   ; 50
    15538     mov ax, 00dbeh                            ; b8 be 0d
     15507    mov ax, 00d5ch                            ; b8 5c 0d
    1553915508    push ax                                   ; 50
    1554015509    mov ax, strict word 00004h                ; b8 04 00
    1554115510    push ax                                   ; 50
    15542     call 01976h                               ; e8 c9 79
     15511    call 01976h                               ; e8 10 7a
    1554315512    add sp, strict byte 00008h                ; 83 c4 08
    1554415513    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1555215521    pop bp                                    ; 5d
    1555315522    retn                                      ; c3
    15554 pci_find_classcode_:                         ; 0xf9fc6 LB 0x8
     15523pci_find_classcode_:                         ; 0xf9f7f LB 0x8
    1555515524    push bp                                   ; 55
    1555615525    mov bp, sp                                ; 89 e5
     
    1555815527    pop bp                                    ; 5d
    1555915528    retn                                      ; c3
    15560 pci_find_device_:                            ; 0xf9fce LB 0x23
     15529pci_find_device_:                            ; 0xf9f87 LB 0x23
    1556115530    push bp                                   ; 55
    1556215531    mov bp, sp                                ; 89 e5
     
    1557015539    int 01ah                                  ; cd 1a
    1557115540    cmp ah, 000h                              ; 80 fc 00
    15572     je short 09fe7h                           ; 74 03
     15541    je short 09fa0h                           ; 74 03
    1557315542    mov bx, strict word 0ffffh                ; bb ff ff
    1557415543    mov ax, bx                                ; 89 d8
     
    1557915548    pop bp                                    ; 5d
    1558015549    retn                                      ; c3
    15581 pci_read_config_byte_:                       ; 0xf9ff1 LB 0x27
     15550pci_read_config_byte_:                       ; 0xf9faa LB 0x27
    1558215551    push bp                                   ; 55
    1558315552    mov bp, sp                                ; 89 e5
     
    1560215571    pop bp                                    ; 5d
    1560315572    retn                                      ; c3
    15604 pci_read_config_word_:                       ; 0xfa018 LB 0x25
     15573pci_read_config_word_:                       ; 0xf9fd1 LB 0x25
    1560515574    push bp                                   ; 55
    1560615575    mov bp, sp                                ; 89 e5
     
    1562415593    pop bp                                    ; 5d
    1562515594    retn                                      ; c3
    15626 pci_read_config_dword_:                      ; 0xfa03d LB 0x3f
     15595pci_read_config_dword_:                      ; 0xf9ff6 LB 0x3f
    1562715596    push bp                                   ; 55
    1562815597    mov bp, sp                                ; 89 e5
     
    1563915608    int 01ah                                  ; cd 1a
    1564015609    test cx, cx                               ; 85 c9
    15641     jne short 0a06dh                          ; 75 14
     15610    jne short 0a026h                          ; 75 14
    1564215611    mov al, byte [bp-006h]                    ; 8a 46 fa
    1564315612    xor ah, ah                                ; 30 e4
     
    1564915618    int 01ah                                  ; cd 1a
    1565015619    test cx, cx                               ; 85 c9
    15651     je short 0a072h                           ; 74 05
     15620    je short 0a02bh                           ; 74 05
    1565215621    mov ax, strict word 00001h                ; b8 01 00
    15653     jmp short 0a074h                          ; eb 02
     15622    jmp short 0a02dh                          ; eb 02
    1565415623    xor ax, ax                                ; 31 c0
    1565515624    cwd                                       ; 99
     
    1565915628    pop bp                                    ; 5d
    1566015629    retn                                      ; c3
    15661 pci_write_config_word_:                      ; 0xfa07c LB 0x1e
     15630pci_write_config_word_:                      ; 0xfa035 LB 0x1e
    1566215631    push bp                                   ; 55
    1566315632    mov bp, sp                                ; 89 e5
     
    1567615645    pop bp                                    ; 5d
    1567715646    retn                                      ; c3
    15678 vds_is_present_:                             ; 0xfa09a LB 0x1d
     15647vds_is_present_:                             ; 0xfa053 LB 0x1d
    1567915648    push bx                                   ; 53
    1568015649    push bp                                   ; 55
     
    1568415653    mov es, ax                                ; 8e c0
    1568515654    test byte [es:bx], 020h                   ; 26 f6 07 20
    15686     je short 0a0b2h                           ; 74 06
     15655    je short 0a06bh                           ; 74 06
    1568715656    mov ax, strict word 00001h                ; b8 01 00
    1568815657    pop bp                                    ; 5d
     
    1569315662    pop bx                                    ; 5b
    1569415663    retn                                      ; c3
    15695 vds_real_to_lin_:                            ; 0xfa0b7 LB 0x1e
     15664vds_real_to_lin_:                            ; 0xfa070 LB 0x1e
    1569615665    push bx                                   ; 53
    1569715666    push cx                                   ; 51
     
    1570415673    sal ax, 1                                 ; d1 e0
    1570515674    rcl dx, 1                                 ; d1 d2
    15706     loop 0a0c5h                               ; e2 fa
     15675    loop 0a07eh                               ; e2 fa
    1570715676    xor cx, cx                                ; 31 c9
    1570815677    add ax, bx                                ; 01 d8
     
    1571215681    pop bx                                    ; 5b
    1571315682    retn                                      ; c3
    15714 vds_build_sg_list_:                          ; 0xfa0d5 LB 0x77
     15683vds_build_sg_list_:                          ; 0xfa08e LB 0x77
    1571515684    push bp                                   ; 55
    1571615685    mov bp, sp                                ; 89 e5
     
    1572615695    mov bx, word [bp+006h]                    ; 8b 5e 06
    1572715696    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15728     call 0a0b7h                               ; e8 c3 ff
     15697    call 0a070h                               ; e8 c3 ff
    1572915698    mov es, si                                ; 8e c6
    1573015699    mov word [es:di+004h], ax                 ; 26 89 45 04
    1573115700    mov word [es:di+006h], dx                 ; 26 89 55 06
    1573215701    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15733     call 0a09ah                               ; e8 93 ff
     15702    call 0a053h                               ; e8 93 ff
    1573415703    test ax, ax                               ; 85 c0
    15735     je short 0a11ch                           ; 74 11
     15704    je short 0a0d5h                           ; 74 11
    1573615705    mov es, si                                ; 8e c6
    1573715706    mov ax, 08105h                            ; b8 05 81
    1573815707    mov dx, strict word 00000h                ; ba 00 00
    1573915708    int 04bh                                  ; cd 4b
    15740     jc short 0a119h                           ; 72 02
     15709    jc short 0a0d2h                           ; 72 02
    1574115710    db  032h, 0c0h
    1574215711    ; xor al, al                                ; 32 c0
    1574315712    cbw                                       ; 98
    15744     jmp short 0a143h                          ; eb 27
     15713    jmp short 0a0fch                          ; eb 27
    1574515714    mov es, si                                ; 8e c6
    1574615715    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1575915728    pop bp                                    ; 5d
    1576015729    retn 00004h                               ; c2 04 00
    15761 vds_free_sg_list_:                           ; 0xfa14c LB 0x34
     15730vds_free_sg_list_:                           ; 0xfa105 LB 0x3b
    1576215731    push bp                                   ; 55
    1576315732    mov bp, sp                                ; 89 e5
     
    1576515734    push di                                   ; 57
    1576615735    mov bx, ax                                ; 89 c3
    15767     call 0a09ah                               ; e8 44 ff
     15736    call 0a053h                               ; e8 44 ff
    1576815737    test ax, ax                               ; 85 c0
    15769     je short 0a16bh                           ; 74 11
     15738    je short 0a124h                           ; 74 11
    1577015739    mov di, bx                                ; 89 df
    1577115740    mov es, dx                                ; 8e c2
     
    1577315742    mov dx, strict word 00000h                ; ba 00 00
    1577415743    int 04bh                                  ; cd 4b
    15775     jc short 0a16ah                           ; 72 02
     15744    jc short 0a123h                           ; 72 02
    1577615745    db  032h, 0c0h
    1577715746    ; xor al, al                                ; 32 c0
     
    1578415753    pop bp                                    ; 5d
    1578515754    retn                                      ; c3
    15786     times 0x6 db 0
    15787 __U4M:                                       ; 0xfa180 LB 0x20
     15755    times 0xd db 0
     15756__U4M:                                       ; 0xfa140 LB 0x20
    1578815757    pushfw                                    ; 9c
    1578915758    push si                                   ; 56
     
    1581215781    retn                                      ; c3
    1581315782    times 0x4 db 0
    15814 __U4D:                                       ; 0xfa1a0 LB 0x30
     15783__U4D:                                       ; 0xfa160 LB 0x30
    1581515784    pushfw                                    ; 9c
    1581615785    push DS                                   ; 1e
     
    1582715796    push dx                                   ; 52
    1582815797    push ax                                   ; 50
    15829     call 0a285h                               ; e8 d0 00
     15798    call 0a245h                               ; e8 d0 00
    1583015799    mov cx, word [bp-002h]                    ; 8b 4e fe
    1583115800    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1583815807    retn                                      ; c3
    1583915808    times 0xe db 0
    15840 __U8RS:                                      ; 0xfa1d0 LB 0x10
     15809__U8RS:                                      ; 0xfa190 LB 0x10
    1584115810    test si, si                               ; 85 f6
    15842     je short 0a1dfh                           ; 74 0b
     15811    je short 0a19fh                           ; 74 0b
    1584315812    shr ax, 1                                 ; d1 e8
    1584415813    rcr bx, 1                                 ; d1 db
     
    1584615815    rcr dx, 1                                 ; d1 da
    1584715816    dec si                                    ; 4e
    15848     jne short 0a1d4h                          ; 75 f5
     15817    jne short 0a194h                          ; 75 f5
    1584915818    retn                                      ; c3
    15850 __U8LS:                                      ; 0xfa1e0 LB 0x10
     15819__U8LS:                                      ; 0xfa1a0 LB 0x10
    1585115820    test si, si                               ; 85 f6
    15852     je short 0a1efh                           ; 74 0b
     15821    je short 0a1afh                           ; 74 0b
    1585315822    sal dx, 1                                 ; d1 e2
    1585415823    rcl cx, 1                                 ; d1 d1
     
    1585615825    rcl ax, 1                                 ; d1 d0
    1585715826    dec si                                    ; 4e
    15858     jne short 0a1e4h                          ; 75 f5
     15827    jne short 0a1a4h                          ; 75 f5
    1585915828    retn                                      ; c3
    15860 _fmemset_:                                   ; 0xfa1f0 LB 0x10
     15829_fmemset_:                                   ; 0xfa1b0 LB 0x10
    1586115830    push di                                   ; 57
    1586215831    mov es, dx                                ; 8e c2
     
    1586915838    retn                                      ; c3
    1587015839    times 0x3 db 0
    15871 _fmemcpy_:                                   ; 0xfa200 LB 0x3a
     15840_fmemcpy_:                                   ; 0xfa1c0 LB 0x3a
    1587215841    push bp                                   ; 55
    1587315842    db  08bh, 0ech
     
    1589415863    add byte [bx+si], al                      ; 00 00
    1589515864    add byte [bx+si], al                      ; 00 00
    15896     push ax                                   ; 50
    15897     mov byte [0a252h], AL                     ; a2 52 a2
    15898     push si                                   ; 56
    15899     mov byte [0a256h], AL                     ; a2 56 a2
    15900     push si                                   ; 56
    15901     mov byte [0a258h], AL                     ; a2 58 a2
    15902     pop ax                                    ; 58
    15903     mov byte [0a25ah], AL                     ; a2 5a a2
    15904     pop si                                    ; 5e
    15905     mov byte [0a25eh], AL                     ; a2 5e a2
    15906     pushaw                                    ; 60
    15907     mov byte [0a265h], AL                     ; a2 65 a2
    15908     db  067h
     15865    adc byte [bp+si-05deeh], ah               ; 10 a2 12 a2
     15866    push SS                                   ; 16
     15867    mov byte [0a216h], AL                     ; a2 16 a2
     15868    push SS                                   ; 16
     15869    mov byte [0a218h], AL                     ; a2 18 a2
     15870    sbb byte [bp+si-05de6h], ah               ; 18 a2 1a a2
     15871    push DS                                   ; 1e
     15872    mov byte [0a21eh], AL                     ; a2 1e a2
     15873    and byte [bp+si-05ddbh], ah               ; 20 a2 25 a2
     15874    daa                                       ; 27
    1590915875    db  0a2h
    15910 apm_worker:                                  ; 0xfa23a LB 0x3a
     15876apm_worker:                                  ; 0xfa1fa LB 0x3a
    1591115877    sti                                       ; fb
    1591215878    push ax                                   ; 50
     
    1592015886    pop ax                                    ; 58
    1592115887    mov AH, strict byte 053h                  ; b4 53
    15922     jnc short 0a270h                          ; 73 25
    15923     jmp word [cs:bp-05de0h]                   ; 2e ff a6 20 a2
    15924     jmp short 0a26eh                          ; eb 1c
     15888    jnc short 0a230h                          ; 73 25
     15889    jmp word [cs:bp-05e20h]                   ; 2e ff a6 e0 a1
     15890    jmp short 0a22eh                          ; eb 1c
    1592515891    sti                                       ; fb
    1592615892    hlt                                       ; f4
    15927     jmp short 0a26eh                          ; eb 18
    15928     jmp short 0a26eh                          ; eb 16
    15929     jmp short 0a270h                          ; eb 16
     15893    jmp short 0a22eh                          ; eb 18
     15894    jmp short 0a22eh                          ; eb 16
     15895    jmp short 0a230h                          ; eb 16
    1593015896    mov AH, strict byte 080h                  ; b4 80
    15931     jmp short 0a272h                          ; eb 14
    15932     jmp short 0a270h                          ; eb 10
     15897    jmp short 0a232h                          ; eb 14
     15898    jmp short 0a230h                          ; eb 10
    1593315899    mov ax, 00102h                            ; b8 02 01
    15934     jmp short 0a26eh                          ; eb 09
    15935     jmp short 0a26eh                          ; eb 07
     15900    jmp short 0a22eh                          ; eb 09
     15901    jmp short 0a22eh                          ; eb 07
    1593615902    mov BL, strict byte 000h                  ; b3 00
    1593715903    mov cx, strict word 00000h                ; b9 00 00
    15938     jmp short 0a26eh                          ; eb 00
     15904    jmp short 0a22eh                          ; eb 00
    1593915905    clc                                       ; f8
    1594015906    retn                                      ; c3
     
    1594215908    stc                                       ; f9
    1594315909    retn                                      ; c3
    15944 apm_pm16_entry:                              ; 0xfa274 LB 0x11
     15910apm_pm16_entry:                              ; 0xfa234 LB 0x11
    1594515911    mov AH, strict byte 002h                  ; b4 02
    1594615912    push DS                                   ; 1e
     
    1595015916    add bp, strict byte 00008h                ; 83 c5 08
    1595115917    mov ds, bp                                ; 8e dd
    15952     call 0a23ah                               ; e8 b8 ff
     15918    call 0a1fah                               ; e8 b8 ff
    1595315919    pop bp                                    ; 5d
    1595415920    pop DS                                    ; 1f
    1595515921    retf                                      ; cb
    15956 _DoUInt32Div:                                ; 0xfa285 LB 0x26b
     15922_DoUInt32Div:                                ; 0xfa245 LB 0x26b
    1595715923    push bp                                   ; 55
    1595815924    mov bp, sp                                ; 89 e5
     
    1597215938    mov [bp-006h], ds                         ; 8c 5e fa
    1597315939    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15974     jne short 0a2d5h                          ; 75 22
     15940    jne short 0a295h                          ; 75 22
    1597515941    mov ax, word [bx]                         ; 8b 07
    1597615942    test ax, ax                               ; 85 c0
    15977     je short 0a2d2h                           ; 74 19
     15943    je short 0a292h                           ; 74 19
    1597815944    cmp ax, strict word 00001h                ; 3d 01 00
    15979     jne short 0a2d5h                          ; 75 17
     15945    jne short 0a295h                          ; 75 17
    1598015946    xor ax, ax                                ; 31 c0
    1598115947    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1598515951    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1598615952    mov word [bp+006h], ax                    ; 89 46 06
    15987     jmp near 0a4ddh                           ; e9 08 02
     15953    jmp near 0a49dh                           ; e9 08 02
    1598815954    lds bx, [bp-00ch]                         ; c5 5e f4
    1598915955    mov ax, word [bx+002h]                    ; 8b 47 02
    1599015956    mov ds, [bp-006h]                         ; 8e 5e fa
    1599115957    cmp ax, word [si+002h]                    ; 3b 44 02
    15992     je short 0a2fbh                           ; 74 18
     15958    je short 0a2bbh                           ; 74 18
    1599315959    mov ds, [bp-00ah]                         ; 8e 5e f6
    1599415960    mov ax, word [bx+002h]                    ; 8b 47 02
    1599515961    mov ds, [bp-006h]                         ; 8e 5e fa
    1599615962    cmp ax, word [si+002h]                    ; 3b 44 02
    15997     jbe short 0a2f6h                          ; 76 05
     15963    jbe short 0a2b6h                          ; 76 05
    1599815964    mov ax, strict word 00001h                ; b8 01 00
    15999     jmp short 0a31ch                          ; eb 26
     15965    jmp short 0a2dch                          ; eb 26
    1600015966    mov ax, strict word 0ffffh                ; b8 ff ff
    16001     jmp short 0a31ch                          ; eb 21
     15967    jmp short 0a2dch                          ; eb 21
    1600215968    mov ds, [bp-00ah]                         ; 8e 5e f6
    1600315969    mov ax, word [bx]                         ; 8b 07
    1600415970    mov ds, [bp-006h]                         ; 8e 5e fa
    1600515971    cmp ax, word [si]                         ; 3b 04
    16006     je short 0a31ah                           ; 74 13
     15972    je short 0a2dah                           ; 74 13
    1600715973    mov ds, [bp-00ah]                         ; 8e 5e f6
    1600815974    mov ax, word [bx]                         ; 8b 07
    1600915975    mov ds, [bp-006h]                         ; 8e 5e fa
    1601015976    cmp ax, word [si]                         ; 3b 04
    16011     jbe short 0a315h                          ; 76 02
    16012     jmp short 0a2f1h                          ; eb dc
     15977    jbe short 0a2d5h                          ; 76 02
     15978    jmp short 0a2b1h                          ; eb dc
    1601315979    mov ax, strict word 0ffffh                ; b8 ff ff
    16014     jmp short 0a31ch                          ; eb 02
     15980    jmp short 0a2dch                          ; eb 02
    1601515981    xor ax, ax                                ; 31 c0
    1601615982    test ax, ax                               ; 85 c0
    16017     jnl short 0a33eh                          ; 7d 1e
     15983    jnl short 0a2feh                          ; 7d 1e
    1601815984    lds bx, [bp-00ch]                         ; c5 5e f4
    1601915985    mov ax, word [bx]                         ; 8b 07
     
    1602515991    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1602615992    mov word [bx], strict word 00000h         ; c7 07 00 00
    16027     jmp short 0a2d2h                          ; eb 94
    16028     jne short 0a355h                          ; 75 15
     15993    jmp short 0a292h                          ; eb 94
     15994    jne short 0a315h                          ; 75 15
    1602915995    mov ds, [bp-008h]                         ; 8e 5e f8
    1603015996    mov word [di+002h], ax                    ; 89 45 02
     
    1603315999    mov word [bx], strict word 00001h         ; c7 07 01 00
    1603416000    mov word [bx+002h], ax                    ; 89 47 02
    16035     jmp near 0a4ddh                           ; e9 88 01
     16001    jmp near 0a49dh                           ; e9 88 01
    1603616002    lds bx, [bp-00ch]                         ; c5 5e f4
    1603716003    mov ax, word [bx+002h]                    ; 8b 47 02
    1603816004    test ax, ax                               ; 85 c0
    16039     je short 0a370h                           ; 74 11
     16005    je short 0a330h                           ; 74 11
    1604016006    push ax                                   ; 50
    1604116007    mov ax, 0f000h                            ; b8 00 f0
    1604216008    mov ds, ax                                ; 8e d8
    16043     call 0a4f0h                               ; e8 88 01
     16009    call 0a4b0h                               ; e8 88 01
    1604416010    add sp, strict byte 00002h                ; 83 c4 02
    1604516011    add ax, strict word 00010h                ; 05 10 00
    16046     jmp short 0a37dh                          ; eb 0d
     16012    jmp short 0a33dh                          ; eb 0d
    1604716013    push word [bx]                            ; ff 37
    1604816014    mov ax, 0f000h                            ; b8 00 f0
    1604916015    mov ds, ax                                ; 8e d8
    16050     call 0a4f0h                               ; e8 76 01
     16016    call 0a4b0h                               ; e8 76 01
    1605116017    add sp, strict byte 00002h                ; 83 c4 02
    1605216018    mov word [bp-014h], ax                    ; 89 46 ec
     
    1605416020    mov ax, word [si+002h]                    ; 8b 44 02
    1605516021    test ax, ax                               ; 85 c0
    16056     je short 0a39bh                           ; 74 11
     16022    je short 0a35bh                           ; 74 11
    1605716023    push ax                                   ; 50
    1605816024    mov ax, 0f000h                            ; b8 00 f0
    1605916025    mov ds, ax                                ; 8e d8
    16060     call 0a4f0h                               ; e8 5d 01
     16026    call 0a4b0h                               ; e8 5d 01
    1606116027    add sp, strict byte 00002h                ; 83 c4 02
    1606216028    add ax, strict word 00010h                ; 05 10 00
    16063     jmp short 0a3a8h                          ; eb 0d
     16029    jmp short 0a368h                          ; eb 0d
    1606416030    push word [si]                            ; ff 34
    1606516031    mov ax, 0f000h                            ; b8 00 f0
    1606616032    mov ds, ax                                ; 8e d8
    16067     call 0a4f0h                               ; e8 4b 01
     16033    call 0a4b0h                               ; e8 4b 01
    1606816034    add sp, strict byte 00002h                ; 83 c4 02
    1606916035    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1607616042    mov word [bp-016h], ax                    ; 89 46 ea
    1607716043    test dx, dx                               ; 85 d2
    16078     je short 0a418h                           ; 74 56
     16044    je short 0a3d8h                           ; 74 56
    1607916045    mov cx, dx                                ; 89 d1
    1608016046    xor ch, dh                                ; 30 f5
     
    1608216048    mov ax, word [si]                         ; 8b 04
    1608316049    mov dx, word [si+002h]                    ; 8b 54 02
    16084     jcxz 0a3d6h                               ; e3 06
     16050    jcxz 0a396h                               ; e3 06
    1608516051    sal ax, 1                                 ; d1 e0
    1608616052    rcl dx, 1                                 ; d1 d2
    16087     loop 0a3d0h                               ; e2 fa
     16053    loop 0a390h                               ; e2 fa
    1608816054    mov word [bp-018h], ax                    ; 89 46 e8
    1608916055    mov word [bp-016h], dx                    ; 89 56 ea
     
    1609116057    lds bx, [bp-00ch]                         ; c5 5e f4
    1609216058    cmp ax, word [bx+002h]                    ; 3b 47 02
    16093     jnbe short 0a3f6h                         ; 77 0f
     16059    jnbe short 0a3b6h                         ; 77 0f
    1609416060    mov ax, word [bp-016h]                    ; 8b 46 ea
    1609516061    cmp ax, word [bx+002h]                    ; 3b 47 02
    16096     jne short 0a3fah                          ; 75 0b
     16062    jne short 0a3bah                          ; 75 0b
    1609716063    mov ax, word [bp-018h]                    ; 8b 46 e8
    1609816064    cmp ax, word [bx]                         ; 3b 07
    16099     jbe short 0a3fah                          ; 76 04
     16065    jbe short 0a3bah                          ; 76 04
    1610016066    mov AL, strict byte 001h                  ; b0 01
    16101     jmp short 0a3fch                          ; eb 02
     16067    jmp short 0a3bch                          ; eb 02
    1610216068    xor al, al                                ; 30 c0
    1610316069    test al, al                               ; 84 c0
    16104     je short 0a423h                           ; 74 23
     16070    je short 0a3e3h                           ; 74 23
    1610516071    shr word [bp-016h], 1                     ; d1 6e ea
    1610616072    rcr word [bp-018h], 1                     ; d1 5e e8
    1610716073    dec word [bp-012h]                        ; ff 4e ee
    16108     jmp short 0a423h                          ; eb 18
     16074    jmp short 0a3e3h                          ; eb 18
    1610916075    mov cx, strict word 0001fh                ; b9 1f 00
    1611016076    sal word [bp-018h], 1                     ; d1 66 e8
    1611116077    rcl word [bp-016h], 1                     ; d1 56 ea
    16112     loop 0a40eh                               ; e2 f8
    16113     jmp short 0a406h                          ; eb ee
     16078    loop 0a3ceh                               ; e2 f8
     16079    jmp short 0a3c6h                          ; eb ee
    1611416080    mov ax, word [si]                         ; 8b 04
    1611516081    mov word [bp-018h], ax                    ; 89 46 e8
     
    1612816094    mov ds, [bp-006h]                         ; 8e 5e fa
    1612916095    cmp ax, word [si+002h]                    ; 3b 44 02
    16130     jnbe short 0a44fh                         ; 77 06
    16131     jne short 0a453h                          ; 75 08
     16096    jnbe short 0a40fh                         ; 77 06
     16097    jne short 0a413h                          ; 75 08
    1613216098    cmp dx, word [si]                         ; 3b 14
    16133     jc short 0a453h                           ; 72 04
     16099    jc short 0a413h                           ; 72 04
    1613416100    mov AL, strict byte 001h                  ; b0 01
    16135     jmp short 0a455h                          ; eb 02
     16101    jmp short 0a415h                          ; eb 02
    1613616102    xor al, al                                ; 30 c0
    1613716103    test al, al                               ; 84 c0
    16138     je short 0a4bah                           ; 74 61
     16104    je short 0a47ah                           ; 74 61
    1613916105    mov ds, [bp-008h]                         ; 8e 5e f8
    1614016106    mov ax, word [di+002h]                    ; 8b 45 02
    1614116107    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16142     jnbe short 0a470h                         ; 77 0c
     16108    jnbe short 0a430h                         ; 77 0c
    1614316109    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16144     jne short 0a474h                          ; 75 0b
     16110    jne short 0a434h                          ; 75 0b
    1614516111    mov ax, word [di]                         ; 8b 05
    1614616112    cmp ax, word [bp-018h]                    ; 3b 46 e8
    16147     jc short 0a474h                           ; 72 04
     16113    jc short 0a434h                           ; 72 04
    1614816114    mov AL, strict byte 001h                  ; b0 01
    16149     jmp short 0a476h                          ; eb 02
     16115    jmp short 0a436h                          ; eb 02
    1615016116    xor al, al                                ; 30 c0
    1615116117    test al, al                               ; 84 c0
    16152     je short 0a4a0h                           ; 74 26
     16118    je short 0a460h                           ; 74 26
    1615316119    mov ax, word [bp-018h]                    ; 8b 46 e8
    1615416120    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1615916125    xor dx, dx                                ; 31 d2
    1616016126    mov cx, word [bp-012h]                    ; 8b 4e ee
    16161     jcxz 0a498h                               ; e3 06
     16127    jcxz 0a458h                               ; e3 06
    1616216128    sal ax, 1                                 ; d1 e0
    1616316129    rcl dx, 1                                 ; d1 d2
    16164     loop 0a492h                               ; e2 fa
     16130    loop 0a452h                               ; e2 fa
    1616516131    lds bx, [bp-010h]                         ; c5 5e f0
    1616616132    or word [bx], ax                          ; 09 07
     
    1617116137    mov ds, [bp-006h]                         ; 8e 5e fa
    1617216138    cmp ax, word [si+002h]                    ; 3b 44 02
    16173     jc short 0a4b6h                           ; 72 06
    16174     jne short 0a4bch                          ; 75 0a
     16139    jc short 0a476h                           ; 72 06
     16140    jne short 0a47ch                          ; 75 0a
    1617516141    cmp dx, word [si]                         ; 3b 14
    16176     jnc short 0a4bch                          ; 73 06
     16142    jnc short 0a47ch                          ; 73 06
    1617716143    mov AL, strict byte 001h                  ; b0 01
    16178     jmp short 0a4beh                          ; eb 04
    16179     jmp short 0a4ddh                          ; eb 21
     16144    jmp short 0a47eh                          ; eb 04
     16145    jmp short 0a49dh                          ; eb 21
    1618016146    xor al, al                                ; 30 c0
    1618116147    test al, al                               ; 84 c0
    16182     je short 0a4d1h                           ; 74 0f
    16183     jmp short 0a4ddh                          ; eb 19
     16148    je short 0a491h                           ; 74 0f
     16149    jmp short 0a49dh                          ; eb 19
    1618416150    mov cx, strict word 0001fh                ; b9 1f 00
    1618516151    sal word [bp-018h], 1                     ; d1 66 e8
    1618616152    rcl word [bp-016h], 1                     ; d1 56 ea
    16187     loop 0a4c7h                               ; e2 f8
    16188     jmp short 0a4d7h                          ; eb 06
     16153    loop 0a487h                               ; e2 f8
     16154    jmp short 0a497h                          ; eb 06
    1618916155    shr word [bp-016h], 1                     ; d1 6e ea
    1619016156    rcr word [bp-018h], 1                     ; d1 5e e8
    1619116157    dec word [bp-012h]                        ; ff 4e ee
    16192     jmp near 0a459h                           ; e9 7c ff
     16158    jmp near 0a419h                           ; e9 7c ff
    1619316159    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1619416160    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1619916165    retn                                      ; c3
    1620016166    times 0x6 db 0
    16201 _ASMBitLastSetU16:                           ; 0xfa4f0 LB 0x18
     16167_ASMBitLastSetU16:                           ; 0xfa4b0 LB 0x18
    1620216168    push bp                                   ; 55
    1620316169    db  08bh, 0ech
     
    1620516171    mov cx, word [bp+004h]                    ; 8b 4e 04
    1620616172    test cx, cx                               ; 85 c9
    16207     je short 0a504h                           ; 74 0a
     16173    je short 0a4c4h                           ; 74 0a
    1620816174    mov ax, strict word 00010h                ; b8 10 00
    1620916175    sal cx, 1                                 ; d1 e1
    16210     jc short 0a506h                           ; 72 05
     16176    jc short 0a4c6h                           ; 72 05
    1621116177    dec ax                                    ; 48
    16212     jmp short 0a4fdh                          ; eb f9
     16178    jmp short 0a4bdh                          ; eb f9
    1621316179    db  033h, 0c0h
    1621416180    ; xor ax, ax                                ; 33 c0
     
    1621616182    retn                                      ; c3
    1621716183
    16218   ; Padding 0x34f8 bytes at 0xfa508
    16219   times 13560 db 0
     16184  ; Padding 0x3538 bytes at 0xfa4c8
     16185  times 13624 db 0
    1622016186
    1622116187section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1626416230    add bp, strict byte 00008h                ; 83 c5 08
    1626516231    push ebp                                  ; 66 55
    16266     mov bp, 0a276h                            ; bd 76 a2
     16232    mov bp, 0a236h                            ; bd 36 a2
    1626716233    add byte [bx+si], al                      ; 00 00
    1626816234    push ebp                                  ; 66 55
     
    1699416960    call 01cc5h                               ; e8 89 39
    1699516961    call 02154h                               ; e8 15 3e
    16996     call 09a6eh                               ; e8 2c b7
    16997     call 088b8h                               ; e8 73 a5
     16962    call 09a27h                               ; e8 e5 b6
     16963    call 08871h                               ; e8 2c a5
    1699816964    call 0ed4ch                               ; e8 04 0a
    1699916965    call 0e2d2h                               ; e8 87 ff
     
    1717117137    out strict byte 0a1h, AL                  ; e6 a1
    1717217138    retn                                      ; c3
    17173 ebda_post:                                   ; 0xfe794 LB 0x45
     17139ebda_post:                                   ; 0xfe794 LB 0x51
    1717417140    mov ax, 0e754h                            ; b8 54 e7
    1717517141    mov word [00034h], ax                     ; a3 34 00
     
    1718517151    mov word [001cah], ax                     ; a3 ca 01
    1718617152    mov ax, 0e754h                            ; b8 54 e7
     17153    mov word [001cch], ax                     ; a3 cc 01
     17154    mov ax, 0f000h                            ; b8 00 f0
     17155    mov word [001ceh], ax                     ; a3 ce 01
     17156    mov ax, 0e754h                            ; b8 54 e7
    1718717157    mov word [001dch], ax                     ; a3 dc 01
    1718817158    mov ax, 0f000h                            ; b8 00 f0
     
    1719617166    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
    1719717167    retn                                      ; c3
    17198 biosorg_check_before_or_at_0E82Ch:           ; 0xfe7d9 LB 0x55
    17199     times 0x53 db 0
     17168biosorg_check_before_or_at_0E82Ch:           ; 0xfe7e5 LB 0x49
     17169    times 0x47 db 0
    1720017170    db  'XM'
    1720117171biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x52
     
    1795017920    popfw                                     ; 9d
    1795117921    jmp short 0f8afh                          ; eb 1f
    17952     call 09be0h                               ; e8 4d a3
     17922    call 09b99h                               ; e8 06 a3
    1795317923    jmp short 0f883h                          ; eb ee
    1795417924int15_handler_mouse:                         ; 0xff895 LB 0x5
     
    1827418244cpu_reset:                                   ; 0xffff0 LB 0x10
    1827518245    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18276     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 023h
     18246    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0f9h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum

    r67807 r68290  
    1 269f62de83976f5a734bb5219dc89ba4 *VBoxPcBios8086.rom
     1e5b242e719ad26ca22448575914e8257 *VBoxPcBios8086.rom
  • trunk/src/VBox/Installer/linux/debian/control

    r67067 r68290  
    1 Source: virtualbox-5.1
     1Source: virtualbox-5.2
    22Section: contrib/misc
    33Priority: optional
     
    1414XS-Python-Version: >= 2.4
    1515
    16 Package: virtualbox-5.1
     16Package: virtualbox-5.2
    1717Architecture: i386 amd64
    1818Pre-Depends: debconf (>= 1.1) | debconf-2.0
     
    3333XB-Python-Version: ${python:Versions}
    3434
    35 Package: virtualbox-5.1-dbg
     35Package: virtualbox-5.2-dbg
    3636Architecture: i386 amd64
    37 Depends: virtualbox-5.1 (= ${binary:Version})
     37Depends: virtualbox-5.2 (= ${binary:Version})
    3838Provides: virtualbox-dbg
    3939Replaces: virtualbox-dbg
  • trunk/src/VBox/Installer/linux/debian/rules

    r68128 r68290  
    4646
    4747package  := virtualbox
    48 verpkg   := virtualbox-5.1
     48verpkg   := virtualbox-5.2
    4949current  := $(shell pwd)
    5050vboxroot := $(shell cd ../../../..; pwd)
  • trunk/src/VBox/Installer/linux/rpm/rules

    r68131 r68290  
    6060endif
    6161
    62 verpkg   := VirtualBox-5.1
     62verpkg   := VirtualBox-5.2
    6363current  := $(shell pwd)
    6464vboxroot := $(shell while ! test -r configure && ! test "$PWD" = "/"; do cd ..; done; pwd)
  • trunk/src/VBox/ValidationKit/testdriver/vbox.py

    r68263 r68290  
    12951295                sVer = "4.0.0";
    12961296            reporter.log("sVer=%s" % (sVer,));          # Temporary - debugging hang somewhere after 'sys.path' log line above.
    1297             if sVer.startswith("5.1"):
     1297            if sVer.startswith("5.2"):
     1298                self.fpApiVer = 5.2;
     1299            elif sVer.startswith("5.1"):
    12981300                self.fpApiVer = 5.1;
    12991301            elif sVer.startswith("5.0") or (sVer.startswith("4.3.5") and len(sVer) == 6):
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