VirtualBox

Changeset 51255 in vbox


Ignore:
Timestamp:
May 15, 2014 8:21:54 AM (10 years ago)
Author:
vboxsync
Message:

update alternative BIOS sources

Location:
trunk/src/VBox/Devices
Files:
4 edited

Legend:

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

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

    r51062 r51255  
    1 be05e86993fbde08237d26cfc61fb370 *VBoxVgaBios.rom
     12abf7b9050be07a06bb5f956042ff4df *VBoxVgaBios.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm

    r51062 r51255  
    10581058  times 1142 db 0
    10591059
    1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7fd5 class=CODE group=AUTO
     1060section _TEXT progbits vstart=0x1600 align=1 ; size=0x8025 class=CODE group=AUTO
    10611061rom_scan_:                                   ; 0xf1600 LB 0x50
    10621062    push bp                                   ; 55
     
    14551455    mov bx, strict word 0000ah                ; bb 0a 00
    14561456    xor cx, cx                                ; 31 c9
    1457     call 094e0h                               ; e8 07 7c
     1457    call 09530h                               ; e8 57 7c
    14581458    mov word [bp-008h], ax                    ; 89 46 f8
    14591459    mov cx, dx                                ; 89 d1
     
    48224822    mov dx, ss                                ; 8c d2
    48234823    lea ax, [bp-026h]                         ; 8d 46 da
    4824     call 0954ah                               ; e8 57 5c
     4824    call 0959ah                               ; e8 a7 5c
    48254825    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    48264826    mov ax, strict word 00011h                ; b8 11 00
     
    52815281    xor dl, dl                                ; 30 d2
    52825282    xor cx, cx                                ; 31 c9
    5283     call 09519h                               ; e8 c5 56
     5283    call 09569h                               ; e8 15 57
    52845284    xor bx, bx                                ; 31 db
    52855285    add ax, si                                ; 01 f0
     
    52875287    mov bx, di                                ; 89 fb
    52885288    xor cx, cx                                ; 31 c9
    5289     call 09519h                               ; e8 b8 56
     5289    call 09569h                               ; e8 08 57
    52905290    mov bx, ax                                ; 89 c3
    52915291    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    53225322    mov dx, ss                                ; 8c d2
    53235323    lea ax, [bp-02eh]                         ; 8d 46 d2
    5324     call 0954ah                               ; e8 92 56
     5324    call 0959ah                               ; e8 e2 56
    53255325    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    53265326    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    56295629    mov dx, ss                                ; 8c d2
    56305630    lea ax, [bp-02ch]                         ; 8d 46 d4
    5631     call 0954ah                               ; e8 f7 52
     5631    call 0959ah                               ; e8 47 53
    56325632    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    56335633    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    74537453    mov bx, strict word 0003fh                ; bb 3f 00
    74547454    xor cx, cx                                ; 31 c9
    7455     call 09519h                               ; e8 e3 40
     7455    call 09569h                               ; e8 33 41
    74567456    mov bx, ax                                ; 89 c3
    74577457    mov cx, dx                                ; 89 d1
    74587458    mov ax, word [bp-004h]                    ; 8b 46 fc
    74597459    mov dx, word [bp-002h]                    ; 8b 56 fe
    7460     call 094e0h                               ; e8 9d 40
     7460    call 09530h                               ; e8 ed 40
    74617461    mov word [es:si+002h], ax                 ; 26 89 44 02
    74627462    cmp ax, 00400h                            ; 3d 00 04
     
    76767676    mov bx, cx                                ; 89 cb
    76777677    xor cx, cx                                ; 31 c9
    7678     call 09519h                               ; e8 b8 3e
     7678    call 09569h                               ; e8 08 3f
    76797679    xor bx, bx                                ; 31 db
    76807680    add ax, word [bp-008h]                    ; 03 46 f8
     
    76827682    mov bx, word [bp-00ah]                    ; 8b 5e f6
    76837683    xor cx, cx                                ; 31 c9
    7684     call 09519h                               ; e8 a9 3e
     7684    call 09569h                               ; e8 f9 3e
    76857685    xor bx, bx                                ; 31 db
    76867686    add ax, word [bp-006h]                    ; 03 46 fa
     
    78407840    mov bx, word [bp-008h]                    ; 8b 5e f8
    78417841    xor cx, cx                                ; 31 c9
    7842     call 09519h                               ; e8 ea 3c
     7842    call 09569h                               ; e8 3a 3d
    78437843    mov bx, word [bp-006h]                    ; 8b 5e fa
    78447844    xor cx, cx                                ; 31 c9
    7845     call 09519h                               ; e8 e2 3c
     7845    call 09569h                               ; e8 32 3d
    78467846    mov word [bp-010h], ax                    ; 89 46 f0
    78477847    mov word [bp-00eh], dx                    ; 89 56 f2
     
    1134411344    mov dx, ss                                ; 8c d2
    1134511345    lea ax, [bp-026h]                         ; 8d 46 da
    11346     call 0954ah                               ; e8 0c 1a
     11346    call 0959ah                               ; e8 5c 1a
    1134711347    mov byte [bp-026h], 025h                  ; c6 46 da 25
    1134811348    push dword 000000008h                     ; 66 6a 08
     
    1148411484    mov dx, word [bp-018h]                    ; 8b 56 e8
    1148511485    xor cx, cx                                ; 31 c9
    11486     call 094e0h                               ; e8 30 18
     11486    call 09530h                               ; e8 80 18
    1148711487    mov di, ax                                ; 89 c7
    1148811488    mov word [bp-012h], dx                    ; 89 56 ee
     
    1200012000    mov ax, 00080h                            ; b8 80 00
    1200112001    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12002     call 0954ah                               ; e8 c1 13
     12002    call 0959ah                               ; e8 11 14
    1200312003    mov es, [bp-00ah]                         ; 8e 46 f6
    1200412004    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1204112041    mov bx, word [bp-016h]                    ; 8b 5e ea
    1204212042    xor cx, cx                                ; 31 c9
    12043     call 09519h                               ; e8 f4 12
     12043    call 09569h                               ; e8 44 13
    1204412044    push dx                                   ; 52
    1204512045    push ax                                   ; 50
     
    1204912049    mov ax, 0026ah                            ; b8 6a 02
    1205012050    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12051     call 0942fh                               ; e8 f4 11
     12051    call 0947fh                               ; e8 44 12
    1205212052    mov es, [bp-00ah]                         ; 8e 46 f6
    1205312053    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1211012110    add ax, 0026ah                            ; 05 6a 02
    1211112111    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12112     call 094a8h                               ; e8 9c 11
     12112    call 094f8h                               ; e8 ec 11
    1211312113    lea sp, [bp-006h]                         ; 8d 66 fa
    1211412114    pop di                                    ; 5f
     
    1215512155    mov ax, di                                ; 89 f8
    1215612156    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12157     call 0954ah                               ; e8 d3 11
     12157    call 0959ah                               ; e8 23 12
    1215812158    lea ax, [di+00080h]                       ; 8d 85 80 00
    1215912159    mov cx, strict word 00040h                ; b9 40 00
    1216012160    xor bx, bx                                ; 31 db
    1216112161    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12162     call 0954ah                               ; e8 c4 11
     12162    call 0959ah                               ; e8 14 12
    1216312163    lea ax, [di+00200h]                       ; 8d 85 00 02
    1216412164    mov cx, strict word 00060h                ; b9 60 00
    1216512165    xor bx, bx                                ; 31 db
    1216612166    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12167     call 0954ah                               ; e8 b5 11
     12167    call 0959ah                               ; e8 05 12
    1216812168    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1216912169    add ax, 00108h                            ; 05 08 01
     
    1230012300    mov ax, si                                ; 89 f0
    1230112301    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12302     call 0954ah                               ; e8 98 10
     12302    call 0959ah                               ; e8 e8 10
    1230312303    lea ax, [si+00080h]                       ; 8d 84 80 00
    1230412304    mov cx, strict word 00040h                ; b9 40 00
    1230512305    xor bx, bx                                ; 31 db
    1230612306    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12307     call 0954ah                               ; e8 89 10
     12307    call 0959ah                               ; e8 d9 10
    1230812308    mov ax, si                                ; 89 f0
    1230912309    add ah, 002h                              ; 80 c4 02
     
    1231212312    xor bx, bx                                ; 31 db
    1231312313    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12314     call 0954ah                               ; e8 76 10
     12314    call 0959ah                               ; e8 c6 10
    1231512315    lea ax, [di+00108h]                       ; 8d 85 08 01
    1231612316    cwd                                       ; 99
     
    1262212622    mov dx, word [bp+008h]                    ; 8b 56 08
    1262312623    xor cx, cx                                ; 31 c9
    12624     call 094e0h                               ; e8 fc 0c
     12624    call 09530h                               ; e8 4c 0d
    1262512625    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1262612626    xor di, di                                ; 31 ff
     
    1264612646    mov ax, 000c0h                            ; b8 c0 00
    1264712647    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12648     call 09557h                               ; e8 27 0d
     12648    call 095a7h                               ; e8 77 0d
    1264912649    mov es, [bp-008h]                         ; 8e 46 f8
    1265012650    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1270212702    pop bp                                    ; 5d
    1270312703    retn 0000ch                               ; c2 0c 00
    12704 ahci_port_detect_device_:                    ; 0xf88d5 LB 0x401
     12704ahci_port_detect_device_:                    ; 0xf88d5 LB 0x451
    1270512705    push bp                                   ; 55
    1270612706    mov bp, sp                                ; 89 e5
     
    1270812708    push si                                   ; 56
    1270912709    push di                                   ; 57
    12710     sub sp, 00222h                            ; 81 ec 22 02
    12711     mov di, ax                                ; 89 c7
    12712     mov word [bp-010h], dx                    ; 89 56 f0
    12713     mov byte [bp-00ch], bl                    ; 88 5e f4
    12714     movzx cx, bl                              ; 0f b6 cb
    12715     mov bx, cx                                ; 89 cb
     12710    sub sp, 00220h                            ; 81 ec 20 02
     12711    mov si, ax                                ; 89 c6
     12712    mov word [bp-012h], dx                    ; 89 56 ee
     12713    mov byte [bp-008h], bl                    ; 88 5e f8
     12714    movzx di, bl                              ; 0f b6 fb
     12715    mov bx, di                                ; 89 fb
    1271612716    call 08458h                               ; e8 69 fb
    1271712717    mov dx, strict word 0000eh                ; ba 0e 00
    1271812718    mov ax, strict word 00040h                ; b8 40 00
    1271912719    call 0166ch                               ; e8 74 8d
    12720     mov word [bp-020h], ax                    ; 89 46 e0
    12721     mov si, 00122h                            ; be 22 01
     12720    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1272212721    mov word [bp-00eh], ax                    ; 89 46 f2
    12723     mov word [bp-012h], si                    ; 89 76 ee
    12724     mov word [bp-01eh], ax                    ; 89 46 e2
    12725     sal cx, 007h                              ; c1 e1 07
    12726     mov word [bp-016h], cx                    ; 89 4e ea
    12727     mov ax, cx                                ; 89 c8
    12728     add ax, 0012ch                            ; 05 2c 01
     12722    sal di, 007h                              ; c1 e7 07
     12723    mov word [bp-020h], di                    ; 89 7e e0
     12724    lea ax, [di+0012ch]                       ; 8d 85 2c 01
    1272912725    cwd                                       ; 99
    12730     mov word [bp-022h], ax                    ; 89 46 de
     12726    mov di, ax                                ; 89 c7
    1273112727    mov bx, dx                                ; 89 d3
    12732     mov es, [bp-010h]                         ; 8e 46 f0
    12733     mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
     12728    mov es, [bp-012h]                         ; 8e 46 ee
     12729    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1273412730    mov cx, bx                                ; 89 d9
    1273512731    xchg cx, ax                               ; 91
     
    1273812734    ; mov ax, cx                                ; 8b c1
    1273912735    out DX, eax                               ; 66 ef
    12740     mov es, [bp-010h]                         ; 8e 46 f0
    12741     mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
     12736    mov es, [bp-012h]                         ; 8e 46 ee
     12737    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1274212738    add dx, strict byte 00004h                ; 83 c2 04
    1274312739    mov ax, strict word 00001h                ; b8 01 00
     
    1274812744    ; mov ax, cx                                ; 8b c1
    1274912745    out DX, eax                               ; 66 ef
    12750     mov es, [bp-010h]                         ; 8e 46 f0
    12751     mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    12752     mov ax, word [bp-022h]                    ; 8b 46 de
     12746    mov es, [bp-012h]                         ; 8e 46 ee
     12747    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
     12748    mov ax, di                                ; 89 f8
    1275312749    mov cx, bx                                ; 89 d9
    1275412750    xchg cx, ax                               ; 91
     
    1275712753    ; mov ax, cx                                ; 8b c1
    1275812754    out DX, eax                               ; 66 ef
    12759     mov es, [bp-010h]                         ; 8e 46 f0
    12760     mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
     12755    mov es, [bp-012h]                         ; 8e 46 ee
     12756    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1276112757    add dx, strict byte 00004h                ; 83 c2 04
    1276212758    xor ax, ax                                ; 31 c0
     
    1276712763    ; mov ax, cx                                ; 8b c1
    1276812764    out DX, eax                               ; 66 ef
    12769     mov ax, word [bp-016h]                    ; 8b 46 ea
     12765    mov ax, word [bp-020h]                    ; 8b 46 e0
    1277012766    add ax, 00128h                            ; 05 28 01
    1277112767    cwd                                       ; 99
    12772     mov es, [bp-010h]                         ; 8e 46 f0
    12773     mov bx, word [es:di+00260h]               ; 26 8b 9d 60 02
     12768    mov es, [bp-012h]                         ; 8e 46 ee
     12769    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1277412770    mov cx, dx                                ; 89 d1
    1277512771    mov dx, bx                                ; 89 da
     
    1277912775    ; mov ax, cx                                ; 8b c1
    1278012776    out DX, eax                               ; 66 ef
    12781     mov es, [bp-010h]                         ; 8e 46 f0
    12782     mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
     12777    mov es, [bp-012h]                         ; 8e 46 ee
     12778    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1278312779    add dx, strict byte 00004h                ; 83 c2 04
    1278412780    in eax, DX                                ; 66 ed
     
    1279012786    mov bx, strict word 0000fh                ; bb 0f 00
    1279112787    xor cx, cx                                ; 31 c9
    12792     call 0803ch                               ; e8 90 f6
    12793     cmp ax, strict word 00003h                ; 3d 03 00
    12794     jne near 08cceh                           ; 0f 85 1b 03
    12795     mov ax, word [bp-016h]                    ; 8b 46 ea
    12796     add ax, 00130h                            ; 05 30 01
     12788    call 0803ch                               ; e8 9a f6
     12789    test ax, ax                               ; 85 c0
     12790    je near 08d1eh                            ; 0f 84 76 03
     12791    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     12792    sal ax, 007h                              ; c1 e0 07
     12793    mov word [bp-016h], ax                    ; 89 46 ea
     12794    add ax, 00128h                            ; 05 28 01
    1279712795    cwd                                       ; 99
    12798     mov es, [bp-010h]                         ; 8e 46 f0
    12799     mov bx, word [es:di+00260h]               ; 26 8b 9d 60 02
     12796    mov es, [bp-012h]                         ; 8e 46 ee
     12797    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1280012798    mov cx, dx                                ; 89 d1
    1280112799    mov dx, bx                                ; 89 da
     
    1280512803    ; mov ax, cx                                ; 8b c1
    1280612804    out DX, eax                               ; 66 ef
    12807     mov es, [bp-010h]                         ; 8e 46 f0
    12808     mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
     12805    mov es, [bp-012h]                         ; 8e 46 ee
     12806    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
     12807    add dx, strict byte 00004h                ; 83 c2 04
     12808    in eax, DX                                ; 66 ed
     12809    db  08bh, 0d0h
     12810    ; mov dx, ax                                ; 8b d0
     12811    shr eax, 010h                             ; 66 c1 e8 10
     12812    xchg dx, ax                               ; 92
     12813    mov di, ax                                ; 89 c7
     12814    mov word [bp-01ah], dx                    ; 89 56 e6
     12815    push strict byte 00000h                   ; 6a 00
     12816    mov bx, strict word 0000fh                ; bb 0f 00
     12817    xor cx, cx                                ; 31 c9
     12818    call 0803ch                               ; e8 4e f6
     12819    cmp ax, strict word 00001h                ; 3d 01 00
     12820    je short 089a8h                           ; 74 b5
     12821    push strict byte 00000h                   ; 6a 00
     12822    mov bx, strict word 0000fh                ; bb 0f 00
     12823    xor cx, cx                                ; 31 c9
     12824    mov ax, di                                ; 89 f8
     12825    mov dx, word [bp-01ah]                    ; 8b 56 e6
     12826    call 0803ch                               ; e8 3a f6
     12827    cmp ax, strict word 00003h                ; 3d 03 00
     12828    jne near 08d1eh                           ; 0f 85 15 03
     12829    mov ax, word [bp-016h]                    ; 8b 46 ea
     12830    add ax, 00130h                            ; 05 30 01
     12831    cwd                                       ; 99
     12832    mov es, [bp-012h]                         ; 8e 46 ee
     12833    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     12834    mov cx, dx                                ; 89 d1
     12835    mov dx, bx                                ; 89 da
     12836    xchg cx, ax                               ; 91
     12837    sal eax, 010h                             ; 66 c1 e0 10
     12838    db  08bh, 0c1h
     12839    ; mov ax, cx                                ; 8b c1
     12840    out DX, eax                               ; 66 ef
     12841    mov es, [bp-012h]                         ; 8e 46 ee
     12842    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1280912843    add dx, strict byte 00004h                ; 83 c2 04
    1281012844    mov ax, strict word 0ffffh                ; b8 ff ff
     
    1281512849    ; mov ax, cx                                ; 8b c1
    1281612850    out DX, eax                               ; 66 ef
    12817     mov es, [bp-00eh]                         ; 8e 46 f2
    12818     mov al, byte [es:si+001edh]               ; 26 8a 84 ed 01
    12819     mov byte [bp-008h], al                    ; 88 46 f8
     12851    les bx, [bp-010h]                         ; c4 5e f0
     12852    mov al, byte [es:bx+001edh]               ; 26 8a 87 ed 01
     12853    mov byte [bp-00ch], al                    ; 88 46 f4
    1282012854    cmp AL, strict byte 004h                  ; 3c 04
    12821     jnc near 08cceh                           ; 0f 83 d5 02
     12855    jnc near 08d1eh                           ; 0f 83 cf 02
    1282212856    mov dx, word [bp-016h]                    ; 8b 56 ea
    1282312857    add dx, 00118h                            ; 81 c2 18 01
    12824     mov es, [bp-010h]                         ; 8e 46 f0
    12825     mov ax, word [es:di+00260h]               ; 26 8b 85 60 02
     12858    mov es, [bp-012h]                         ; 8e 46 ee
     12859    mov ax, word [es:si+00260h]               ; 26 8b 84 60 02
    1282612860    mov bx, strict word 00010h                ; bb 10 00
    1282712861    xor cx, cx                                ; 31 c9
    12828     call 07f79h                               ; e8 69 f5
     12862    call 07f79h                               ; e8 13 f5
    1282912863    mov ax, word [bp-016h]                    ; 8b 46 ea
    1283012864    add ax, 00124h                            ; 05 24 01
    1283112865    cwd                                       ; 99
    12832     mov es, [bp-010h]                         ; 8e 46 f0
    12833     mov bx, word [es:di+00260h]               ; 26 8b 9d 60 02
     12866    mov es, [bp-012h]                         ; 8e 46 ee
     12867    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1283412868    mov cx, dx                                ; 89 d1
    1283512869    mov dx, bx                                ; 89 da
     
    1283912873    ; mov ax, cx                                ; 8b c1
    1284012874    out DX, eax                               ; 66 ef
    12841     mov es, [bp-010h]                         ; 8e 46 f0
    12842     mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
     12875    mov es, [bp-012h]                         ; 8e 46 ee
     12876    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1284312877    add dx, strict byte 00004h                ; 83 c2 04
    1284412878    in eax, DX                                ; 66 ed
     
    1284712881    shr eax, 010h                             ; 66 c1 e8 10
    1284812882    xchg dx, ax                               ; 92
    12849     mov cl, byte [bp-008h]                    ; 8a 4e f8
     12883    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1285012884    add cl, 00ch                              ; 80 c1 0c
    1285112885    test dx, dx                               ; 85 d2
    12852     jne near 08c20h                           ; 0f 85 d4 01
     12886    jne near 08c7ah                           ; 0f 85 d8 01
    1285312887    cmp ax, 00101h                            ; 3d 01 01
    12854     jne near 08c20h                           ; 0f 85 cd 01
    12855     mov es, [bp-00eh]                         ; 8e 46 f2
    12856     db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
    12857     ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00
    12858     lea dx, [bp-00228h]                       ; 8d 96 d8 fd
    12859     mov word [es:si+004h], dx                 ; 26 89 54 04
    12860     mov [es:si+006h], ss                      ; 26 8c 54 06
    12861     db  066h, 026h, 0c7h, 044h, 00ah, 001h, 000h, 000h, 002h
    12862     ; mov dword [es:si+00ah], strict dword 002000001h ; 66 26 c7 44 0a 01 00 00 02
     12888    jne near 08c7ah                           ; 0f 85 d1 01
     12889    les bx, [bp-010h]                         ; c4 5e f0
     12890    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
     12891    ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00
     12892    lea dx, [bp-00226h]                       ; 8d 96 da fd
     12893    mov word [es:bx+004h], dx                 ; 26 89 57 04
     12894    mov [es:bx+006h], ss                      ; 26 8c 57 06
     12895    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 002h
     12896    ; mov dword [es:bx+00ah], strict dword 002000001h ; 66 26 c7 47 0a 01 00 00 02
    1286312897    mov bx, 000ech                            ; bb ec 00
    12864     mov ax, si                                ; 89 f0
    12865     mov dx, word [bp-020h]                    ; 8b 56 e0
    12866     call 0814ah                               ; e8 cc f6
     12898    mov ax, word [bp-010h]                    ; 8b 46 f0
     12899    mov dx, es                                ; 8c c2
     12900    call 0814ah                               ; e8 76 f6
    1286712901    mov byte [bp-00ah], cl                    ; 88 4e f6
    12868     test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
     12902    test byte [bp-00226h], 080h               ; f6 86 da fd 80
    1286912903    db  00fh, 095h, 0c0h
    1287012904    ; setne al                                  ; 0f 95 c0
    1287112905    xor ah, ah                                ; 30 e4
    12872     mov dx, word [bp-00226h]                  ; 8b 96 da fd
    12873     mov word [bp-018h], dx                    ; 89 56 e8
    12874     mov dx, word [bp-00222h]                  ; 8b 96 de fd
    12875     mov word [bp-01ch], dx                    ; 89 56 e4
    12876     mov dx, word [bp-0021ch]                  ; 8b 96 e4 fd
    12877     mov word [bp-01ah], dx                    ; 89 56 e6
    12878     mov di, word [bp-001b0h]                  ; 8b be 50 fe
    12879     mov dx, word [bp-001aeh]                  ; 8b 96 52 fe
    12880     mov word [bp-014h], dx                    ; 89 56 ec
    12881     cmp dx, 00fffh                            ; 81 fa ff 0f
    12882     jne short 08ac1h                          ; 75 10
    12883     cmp di, strict byte 0ffffh                ; 83 ff ff
    12884     jne short 08ac1h                          ; 75 0b
    12885     mov di, word [bp-00160h]                  ; 8b be a0 fe
    12886     mov dx, word [bp-0015eh]                  ; 8b 96 a2 fe
    12887     mov word [bp-014h], dx                    ; 89 56 ec
    12888     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    12889     mov es, [bp-01eh]                         ; 8e 46 e2
    12890     add bx, word [bp-012h]                    ; 03 5e ee
    12891     mov ah, byte [bp-00ch]                    ; 8a 66 f4
    12892     mov byte [es:bx+001e9h], ah               ; 26 88 a7 e9 01
    12893     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    12894     imul dx, dx, strict byte 00018h           ; 6b d2 18
    12895     mov si, word [bp-012h]                    ; 8b 76 ee
    12896     add si, dx                                ; 01 d6
     12906    mov dl, al                                ; 88 c2
     12907    mov ax, word [bp-00224h]                  ; 8b 86 dc fd
     12908    mov word [bp-018h], ax                    ; 89 46 e8
     12909    mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
     12910    mov word [bp-01eh], ax                    ; 89 46 e2
     12911    mov ax, word [bp-0021ah]                  ; 8b 86 e6 fd
     12912    mov word [bp-01ch], ax                    ; 89 46 e4
     12913    mov ax, word [bp-001aeh]                  ; 8b 86 52 fe
     12914    mov word [bp-014h], ax                    ; 89 46 ec
     12915    mov di, word [bp-001ach]                  ; 8b be 54 fe
     12916    cmp di, 00fffh                            ; 81 ff ff 0f
     12917    jne short 08b19h                          ; 75 10
     12918    cmp ax, strict word 0ffffh                ; 3d ff ff
     12919    jne short 08b19h                          ; 75 0b
     12920    mov ax, word [bp-0015eh]                  ; 8b 86 a2 fe
     12921    mov word [bp-014h], ax                    ; 89 46 ec
     12922    mov di, word [bp-0015ch]                  ; 8b be a4 fe
     12923    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     12924    mov es, [bp-00eh]                         ; 8e 46 f2
     12925    add bx, word [bp-010h]                    ; 03 5e f0
     12926    mov al, byte [bp-008h]                    ; 8a 46 f8
     12927    mov byte [es:bx+001e9h], al               ; 26 88 87 e9 01
     12928    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     12929    imul ax, ax, strict byte 00018h           ; 6b c0 18
     12930    mov si, word [bp-010h]                    ; 8b 76 f0
     12931    add si, ax                                ; 01 c6
    1289712932    mov word [es:si+01eh], 0ff05h             ; 26 c7 44 1e 05 ff
    12898     mov byte [es:si+020h], al                 ; 26 88 44 20
     12933    mov byte [es:si+020h], dl                 ; 26 88 54 20
    1289912934    mov byte [es:si+021h], 000h               ; 26 c6 44 21 00
    1290012935    mov word [es:si+024h], 00200h             ; 26 c7 44 24 00 02
    1290112936    mov byte [es:si+023h], 001h               ; 26 c6 44 23 01
    12902     mov word [es:si+032h], di                 ; 26 89 7c 32
    1290312937    mov ax, word [bp-014h]                    ; 8b 46 ec
    12904     mov word [es:si+034h], ax                 ; 26 89 44 34
    12905     mov ax, word [bp-01ch]                    ; 8b 46 e4
     12938    mov word [es:si+032h], ax                 ; 26 89 44 32
     12939    mov word [es:si+034h], di                 ; 26 89 7c 34
     12940    mov ax, word [bp-01eh]                    ; 8b 46 e2
    1290612941    mov word [es:si+02ch], ax                 ; 26 89 44 2c
    1290712942    mov ax, word [bp-018h]                    ; 8b 46 e8
    1290812943    mov word [es:si+02eh], ax                 ; 26 89 44 2e
    12909     mov ax, word [bp-01ah]                    ; 8b 46 e6
     12944    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1291012945    mov word [es:si+030h], ax                 ; 26 89 44 30
    12911     mov al, byte [bp-008h]                    ; 8a 46 f8
     12946    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1291212947    cmp AL, strict byte 001h                  ; 3c 01
    12913     jc short 08b2ch                           ; 72 0c
    12914     jbe short 08b34h                          ; 76 12
     12948    jc short 08b84h                           ; 72 0c
     12949    jbe short 08b8ch                          ; 76 12
    1291512950    cmp AL, strict byte 003h                  ; 3c 03
    12916     je short 08b3ch                           ; 74 16
     12951    je short 08b94h                           ; 74 16
    1291712952    cmp AL, strict byte 002h                  ; 3c 02
    12918     je short 08b38h                           ; 74 0e
    12919     jmp short 08b85h                          ; eb 59
     12953    je short 08b90h                           ; 74 0e
     12954    jmp short 08bddh                          ; eb 59
    1292012955    test al, al                               ; 84 c0
    12921     jne short 08b85h                          ; 75 55
     12956    jne short 08bddh                          ; 75 55
    1292212957    mov DL, strict byte 040h                  ; b2 40
    12923     jmp short 08b3eh                          ; eb 0a
     12958    jmp short 08b96h                          ; eb 0a
    1292412959    mov DL, strict byte 048h                  ; b2 48
    12925     jmp short 08b3eh                          ; eb 06
     12960    jmp short 08b96h                          ; eb 06
    1292612961    mov DL, strict byte 050h                  ; b2 50
    12927     jmp short 08b3eh                          ; eb 02
     12962    jmp short 08b96h                          ; eb 02
    1292812963    mov DL, strict byte 058h                  ; b2 58
    1292912964    mov al, dl                                ; 88 d0
     
    1293112966    movzx bx, al                              ; 0f b6 d8
    1293212967    mov ax, bx                                ; 89 d8
    12933     call 016ach                               ; e8 62 8b
     12968    call 016ach                               ; e8 0a 8b
    1293412969    test al, al                               ; 84 c0
    12935     je short 08b85h                           ; 74 37
     12970    je short 08bddh                           ; 74 37
    1293612971    mov al, dl                                ; 88 d0
    1293712972    db  0feh, 0c0h
    1293812973    ; inc al                                    ; fe c0
    1293912974    xor ah, ah                                ; 30 e4
    12940     call 016ach                               ; e8 55 8b
     12975    call 016ach                               ; e8 fd 8a
    1294112976    xor ah, ah                                ; 30 e4
    12942     mov cx, ax                                ; 89 c1
    12943     sal cx, 008h                              ; c1 e1 08
     12977    mov si, ax                                ; 89 c6
     12978    sal si, 008h                              ; c1 e6 08
    1294412979    movzx ax, dl                              ; 0f b6 c2
    12945     call 016ach                               ; e8 48 8b
     12980    call 016ach                               ; e8 f0 8a
    1294612981    xor ah, ah                                ; 30 e4
    12947     add ax, cx                                ; 01 c8
    12948     mov word [bp-026h], ax                    ; 89 46 da
     12982    add ax, si                                ; 01 f0
     12983    mov word [bp-024h], ax                    ; 89 46 dc
    1294912984    mov al, dl                                ; 88 d0
    1295012985    add AL, strict byte 002h                  ; 04 02
    1295112986    xor ah, ah                                ; 30 e4
    12952     call 016ach                               ; e8 38 8b
     12987    call 016ach                               ; e8 e0 8a
    1295312988    xor ah, ah                                ; 30 e4
    12954     mov word [bp-028h], ax                    ; 89 46 d8
     12989    mov word [bp-026h], ax                    ; 89 46 da
    1295512990    mov ax, bx                                ; 89 d8
    12956     call 016ach                               ; e8 2e 8b
     12991    call 016ach                               ; e8 d6 8a
    1295712992    xor ah, ah                                ; 30 e4
    12958     mov word [bp-024h], ax                    ; 89 46 dc
    12959     jmp short 08b92h                          ; eb 0d
    12960     mov bx, di                                ; 89 fb
    12961     mov cx, word [bp-014h]                    ; 8b 4e ec
     12993    mov word [bp-022h], ax                    ; 89 46 de
     12994    jmp short 08beah                          ; eb 0d
     12995    mov bx, word [bp-014h]                    ; 8b 5e ec
     12996    mov cx, di                                ; 89 f9
    1296212997    mov dx, ss                                ; 8c d2
    12963     lea ax, [bp-028h]                         ; 8d 46 d8
    12964     call 053f3h                               ; e8 61 c8
     12998    lea ax, [bp-026h]                         ; 8d 46 da
     12999    call 053f3h                               ; e8 09 c8
    1296513000    mov bx, 00da2h                            ; bb a2 0d
    1296613001    mov cx, ds                                ; 8c d9
    1296713002    mov ax, strict word 00004h                ; b8 04 00
    12968     call 01931h                               ; e8 94 8d
     13003    call 01931h                               ; e8 3c 8d
     13004    push di                                   ; 57
    1296913005    push word [bp-014h]                       ; ff 76 ec
    12970     push di                                   ; 57
    12971     mov ax, word [bp-024h]                    ; 8b 46 dc
    12972     push ax                                   ; 50
    12973     mov ax, word [bp-028h]                    ; 8b 46 d8
     13006    mov ax, word [bp-022h]                    ; 8b 46 de
    1297413007    push ax                                   ; 50
    1297513008    mov ax, word [bp-026h]                    ; 8b 46 da
    1297613009    push ax                                   ; 50
    12977     push dword [bp-01ch]                      ; 66 ff 76 e4
     13010    mov ax, word [bp-024h]                    ; 8b 46 dc
     13011    push ax                                   ; 50
     13012    push dword [bp-01eh]                      ; 66 ff 76 e2
    1297813013    push word [bp-018h]                       ; ff 76 e8
     13014    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     13015    push ax                                   ; 50
    1297913016    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    12980     push ax                                   ; 50
    12981     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1298213017    push ax                                   ; 50
    1298313018    push 00cdah                               ; 68 da 0c
    1298413019    push strict byte 00004h                   ; 6a 04
    12985     call 01972h                               ; e8 ac 8d
     13020    call 01972h                               ; e8 54 8d
    1298613021    add sp, strict byte 00018h                ; 83 c4 18
    12987     movzx di, byte [bp-00ah]                  ; 0f b6 7e f6
    12988     imul di, di, strict byte 00018h           ; 6b ff 18
    12989     add di, word [bp-012h]                    ; 03 7e ee
    12990     mov es, [bp-01eh]                         ; 8e 46 e2
     13022    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     13023    imul ax, ax, strict byte 00018h           ; 6b c0 18
     13024    mov di, word [bp-010h]                    ; 8b 7e f0
     13025    add di, ax                                ; 01 c7
     13026    mov es, [bp-00eh]                         ; 8e 46 f2
    1299113027    lea di, [di+026h]                         ; 8d 7d 26
    1299213028    push DS                                   ; 1e
    1299313029    push SS                                   ; 16
    1299413030    pop DS                                    ; 1f
    12995     lea si, [bp-028h]                         ; 8d 76 d8
     13031    lea si, [bp-026h]                         ; 8d 76 da
    1299613032    movsw                                     ; a5
    1299713033    movsw                                     ; a5
    1299813034    movsw                                     ; a5
    1299913035    pop DS                                    ; 1f
    13000     mov bx, word [bp-012h]                    ; 8b 5e ee
     13036    mov bx, word [bp-010h]                    ; 8b 5e f0
    1300113037    mov al, byte [es:bx+0019eh]               ; 26 8a 87 9e 01
    13002     mov ah, byte [bp-008h]                    ; 8a 66 f8
     13038    mov ah, byte [bp-00ch]                    ; 8a 66 f4
    1300313039    add ah, 00ch                              ; 80 c4 0c
    1300413040    movzx bx, al                              ; 0f b6 d8
    13005     add bx, word [bp-012h]                    ; 03 5e ee
     13041    add bx, word [bp-010h]                    ; 03 5e f0
    1300613042    mov byte [es:bx+0019fh], ah               ; 26 88 a7 9f 01
    1300713043    db  0feh, 0c0h
    1300813044    ; inc al                                    ; fe c0
    13009     mov bx, word [bp-012h]                    ; 8b 5e ee
     13045    mov bx, word [bp-010h]                    ; 8b 5e f0
    1301013046    mov byte [es:bx+0019eh], al               ; 26 88 87 9e 01
    1301113047    mov dx, strict word 00075h                ; ba 75 00
    1301213048    mov ax, strict word 00040h                ; b8 40 00
    13013     call 01650h                               ; e8 41 8a
     13049    call 01650h                               ; e8 e7 89
    1301413050    db  0feh, 0c0h
    1301513051    ; inc al                                    ; fe c0
     
    1301713053    mov dx, strict word 00075h                ; ba 75 00
    1301813054    mov ax, strict word 00040h                ; b8 40 00
    13019     call 0165eh                               ; e8 41 8a
    13020     jmp near 08cbdh                           ; e9 9d 00
     13055    call 0165eh                               ; e8 e7 89
     13056    jmp near 08d10h                           ; e9 96 00
    1302113057    cmp dx, 0eb14h                            ; 81 fa 14 eb
    13022     jne near 08cbdh                           ; 0f 85 95 00
     13058    jne near 08d10h                           ; 0f 85 8e 00
    1302313059    cmp ax, 00101h                            ; 3d 01 01
    13024     jne near 08cbdh                           ; 0f 85 8e 00
    13025     mov es, [bp-00eh]                         ; 8e 46 f2
    13026     db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
    13027     ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00
    13028     lea dx, [bp-00228h]                       ; 8d 96 d8 fd
    13029     mov word [es:si+004h], dx                 ; 26 89 54 04
    13030     mov [es:si+006h], ss                      ; 26 8c 54 06
    13031     db  066h, 026h, 0c7h, 044h, 00ah, 001h, 000h, 000h, 002h
    13032     ; mov dword [es:si+00ah], strict dword 002000001h ; 66 26 c7 44 0a 01 00 00 02
     13060    jne near 08d10h                           ; 0f 85 87 00
     13061    les bx, [bp-010h]                         ; c4 5e f0
     13062    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
     13063    ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00
     13064    lea dx, [bp-00226h]                       ; 8d 96 da fd
     13065    mov word [es:bx+004h], dx                 ; 26 89 57 04
     13066    mov [es:bx+006h], ss                      ; 26 8c 57 06
     13067    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 002h
     13068    ; mov dword [es:bx+00ah], strict dword 002000001h ; 66 26 c7 47 0a 01 00 00 02
    1303313069    mov bx, 000a1h                            ; bb a1 00
    13034     mov ax, si                                ; 89 f0
    13035     mov dx, word [bp-020h]                    ; 8b 56 e0
    13036     call 0814ah                               ; e8 f0 f4
    13037     test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
     13070    mov ax, word [bp-010h]                    ; 8b 46 f0
     13071    mov dx, es                                ; 8c c2
     13072    call 0814ah                               ; e8 96 f4
     13073    test byte [bp-00226h], 080h               ; f6 86 da fd 80
    1303813074    db  00fh, 095h, 0c0h
    1303913075    ; setne al                                  ; 0f 95 c0
    13040     movzx dx, al                              ; 0f b6 d0
    13041     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    13042     mov es, [bp-020h]                         ; 8e 46 e0
    13043     add bx, si                                ; 01 f3
    13044     mov al, byte [bp-00ch]                    ; 8a 46 f4
     13076    xor ah, ah                                ; 30 e4
     13077    mov dx, ax                                ; 89 c2
     13078    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     13079    mov es, [bp-00eh]                         ; 8e 46 f2
     13080    add bx, word [bp-010h]                    ; 03 5e f0
     13081    mov al, byte [bp-008h]                    ; 8a 46 f8
    1304513082    mov byte [es:bx+001e9h], al               ; 26 88 87 e9 01
    13046     movzx si, cl                              ; 0f b6 f1
    13047     imul si, si, strict byte 00018h           ; 6b f6 18
    13048     add si, 00122h                            ; 81 c6 22 01
     13083    movzx ax, cl                              ; 0f b6 c1
     13084    imul ax, ax, strict byte 00018h           ; 6b c0 18
     13085    mov si, word [bp-010h]                    ; 8b 76 f0
     13086    add si, ax                                ; 01 c6
    1304913087    mov word [es:si+01eh], 00505h             ; 26 c7 44 1e 05 05
    1305013088    mov byte [es:si+020h], dl                 ; 26 88 54 20
    1305113089    mov word [es:si+024h], 00800h             ; 26 c7 44 24 00 08
    13052     mov es, [bp-01eh]                         ; 8e 46 e2
    13053     mov bx, word [bp-012h]                    ; 8b 5e ee
     13090    mov bx, word [bp-010h]                    ; 8b 5e f0
    1305413091    mov al, byte [es:bx+001afh]               ; 26 8a 87 af 01
    13055     mov ah, byte [bp-008h]                    ; 8a 66 f8
     13092    mov ah, byte [bp-00ch]                    ; 8a 66 f4
    1305613093    add ah, 00ch                              ; 80 c4 0c
    1305713094    movzx bx, al                              ; 0f b6 d8
    13058     mov es, [bp-020h]                         ; 8e 46 e0
    13059     add bx, 00122h                            ; 81 c3 22 01
     13095    add bx, word [bp-010h]                    ; 03 5e f0
    1306013096    mov byte [es:bx+001b0h], ah               ; 26 88 a7 b0 01
    1306113097    db  0feh, 0c0h
    1306213098    ; inc al                                    ; fe c0
    13063     mov es, [bp-01eh]                         ; 8e 46 e2
    13064     mov bx, word [bp-012h]                    ; 8b 5e ee
     13099    mov bx, word [bp-010h]                    ; 8b 5e f0
    1306513100    mov byte [es:bx+001afh], al               ; 26 88 87 af 01
    13066     inc byte [bp-008h]                        ; fe 46 f8
    13067     mov al, byte [bp-008h]                    ; 8a 46 f8
    13068     mov es, [bp-01eh]                         ; 8e 46 e2
    13069     mov bx, word [bp-012h]                    ; 8b 5e ee
     13101    inc byte [bp-00ch]                        ; fe 46 f4
     13102    mov al, byte [bp-00ch]                    ; 8a 46 f4
     13103    les bx, [bp-010h]                         ; c4 5e f0
    1307013104    mov byte [es:bx+001edh], al               ; 26 88 87 ed 01
    1307113105    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1307513109    pop bp                                    ; 5d
    1307613110    retn                                      ; c3
    13077 ahci_mem_alloc_:                             ; 0xf8cd6 LB 0x43
     13111ahci_mem_alloc_:                             ; 0xf8d26 LB 0x43
    1307813112    push bp                                   ; 55
    1307913113    mov bp, sp                                ; 89 e5
     
    1308513119    mov dx, 00413h                            ; ba 13 04
    1308613120    xor ax, ax                                ; 31 c0
    13087     call 0166ch                               ; e8 86 89
     13121    call 0166ch                               ; e8 36 89
    1308813122    test ax, ax                               ; 85 c0
    13089     je short 08d0fh                           ; 74 25
     13123    je short 08d5fh                           ; 74 25
    1309013124    dec ax                                    ; 48
    1309113125    mov bx, ax                                ; 89 c3
     
    1309413128    sal ax, 1                                 ; d1 e0
    1309513129    rcl dx, 1                                 ; d1 d2
    13096     loop 08cf2h                               ; e2 fa
     13130    loop 08d42h                               ; e2 fa
    1309713131    mov si, ax                                ; 89 c6
    1309813132    mov di, dx                                ; 89 d7
     
    1310013134    shr di, 1                                 ; d1 ef
    1310113135    rcr si, 1                                 ; d1 de
    13102     loop 08cffh                               ; e2 fa
     13136    loop 08d4fh                               ; e2 fa
    1310313137    mov dx, 00413h                            ; ba 13 04
    1310413138    xor ax, ax                                ; 31 c0
    13105     call 0167ah                               ; e8 6d 89
     13139    call 0167ah                               ; e8 1d 89
    1310613140    mov ax, si                                ; 89 f0
    1310713141    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1311313147    pop bp                                    ; 5d
    1311413148    retn                                      ; c3
    13115 ahci_hba_init_:                              ; 0xf8d19 LB 0x125
     13149ahci_hba_init_:                              ; 0xf8d69 LB 0x125
    1311613150    push bp                                   ; 55
    1311713151    mov bp, sp                                ; 89 e5
     
    1312513159    mov dx, strict word 0000eh                ; ba 0e 00
    1312613160    mov ax, strict word 00040h                ; b8 40 00
    13127     call 0166ch                               ; e8 3d 89
     13161    call 0166ch                               ; e8 ed 88
    1312813162    mov bx, 00122h                            ; bb 22 01
    1312913163    mov word [bp-010h], ax                    ; 89 46 f0
     
    1314213176    shr eax, 010h                             ; 66 c1 e8 10
    1314313177    xchg dx, ax                               ; 92
    13144     call 08cd6h                               ; e8 82 ff
     13178    call 08d26h                               ; e8 82 ff
    1314513179    mov di, ax                                ; 89 c7
    1314613180    test ax, ax                               ; 85 c0
    13147     je near 08e1dh                            ; 0f 84 c1 00
     13181    je near 08e6dh                            ; 0f 84 c1 00
    1314813182    mov es, [bp-010h]                         ; 8e 46 f0
    1314913183    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1315913193    mov dx, strict word 00004h                ; ba 04 00
    1316013194    mov ax, si                                ; 89 f0
    13161     call 07f79h                               ; e8 e9 f1
     13195    call 07f79h                               ; e8 99 f1
    1316213196    mov ax, strict word 00004h                ; b8 04 00
    1316313197    xor cx, cx                                ; 31 c9
     
    1317613210    xchg dx, ax                               ; 92
    1317713211    test AL, strict byte 001h                 ; a8 01
    13178     jne short 08d90h                          ; 75 de
     13212    jne short 08de0h                          ; 75 de
    1317913213    xor ax, ax                                ; 31 c0
    1318013214    xor cx, cx                                ; 31 c9
     
    1319413228    mov bx, strict word 0001fh                ; bb 1f 00
    1319513229    xor cx, cx                                ; 31 c9
    13196     call 0803ch                               ; e8 66 f2
     13230    call 0803ch                               ; e8 16 f2
    1319713231    db  0feh, 0c0h
    1319813232    ; inc al                                    ; fe c0
    1319913233    mov byte [bp-00eh], al                    ; 88 46 f2
    1320013234    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    13201     jmp short 08deah                          ; eb 09
     13235    jmp short 08e3ah                          ; eb 09
    1320213236    inc byte [bp-00ch]                        ; fe 46 f4
    1320313237    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    13204     jnc short 08e1bh                          ; 73 31
     13238    jnc short 08e6bh                          ; 73 31
    1320513239    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1320613240    mov ax, strict word 00001h                ; b8 01 00
    1320713241    xor dx, dx                                ; 31 d2
    13208     jcxz 08dfbh                               ; e3 06
     13242    jcxz 08e4bh                               ; e3 06
    1320913243    sal ax, 1                                 ; d1 e0
    1321013244    rcl dx, 1                                 ; d1 d2
    13211     loop 08df5h                               ; e2 fa
     13245    loop 08e45h                               ; e2 fa
    1321213246    mov bx, ax                                ; 89 c3
    1321313247    mov cx, dx                                ; 89 d1
    1321413248    mov dx, strict word 0000ch                ; ba 0c 00
    1321513249    mov ax, si                                ; 89 f0
    13216     call 08003h                               ; e8 fc f1
     13250    call 08003h                               ; e8 ac f1
    1321713251    test al, al                               ; 84 c0
    13218     je short 08de1h                           ; 74 d6
     13252    je short 08e31h                           ; 74 d6
    1321913253    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1322013254    xor ax, ax                                ; 31 c0
    1322113255    mov dx, di                                ; 89 fa
    13222     call 088d5h                               ; e8 bf fa
     13256    call 088d5h                               ; e8 6f fa
    1322313257    dec byte [bp-00eh]                        ; fe 4e f2
    13224     jne short 08de1h                          ; 75 c6
     13258    jne short 08e31h                          ; 75 c6
    1322513259    xor ax, ax                                ; 31 c0
    1322613260    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1323213266    pop bp                                    ; 5d
    1323313267    retn                                      ; c3
    13234     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 00dh, 08fh, 0ebh, 08eh, 0f1h, 08eh, 0f7h, 08eh, 0fdh
    13235     db  08eh, 003h, 08fh, 009h, 08fh, 00dh, 08fh
    13236 _ahci_init:                                  ; 0xf8e3e LB 0xfe
     13268    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 05dh, 08fh, 03bh, 08fh, 041h, 08fh, 047h, 08fh, 04dh
     13269    db  08fh, 053h, 08fh, 059h, 08fh, 05dh, 08fh
     13270_ahci_init:                                  ; 0xf8e8e LB 0xfe
    1323713271    push bp                                   ; 55
    1323813272    mov bp, sp                                ; 89 e5
     
    1324213276    mov ax, 00601h                            ; b8 01 06
    1324313277    mov dx, strict word 00001h                ; ba 01 00
    13244     call 0935ch                               ; e8 0d 05
     13278    call 093ach                               ; e8 0d 05
    1324513279    mov dx, ax                                ; 89 c2
    1324613280    cmp ax, strict word 0ffffh                ; 3d ff ff
    13247     je near 08f35h                            ; 0f 84 dd 00
     13281    je near 08f85h                            ; 0f 84 dd 00
    1324813282    xor al, al                                ; 30 c0
    1324913283    shr ax, 008h                              ; c1 e8 08
     
    1325313287    xor ah, ah                                ; 30 e4
    1325413288    mov bx, strict word 00034h                ; bb 34 00
    13255     call 09387h                               ; e8 1a 05
     13289    call 093d7h                               ; e8 1a 05
    1325613290    mov cl, al                                ; 88 c1
    1325713291    test cl, cl                               ; 84 c9
    13258     je short 08e96h                           ; 74 23
     13292    je short 08ee6h                           ; 74 23
    1325913293    movzx bx, cl                              ; 0f b6 d9
    1326013294    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1326213296    mov dx, di                                ; 89 fa
    1326313297    mov ax, si                                ; 89 f0
    13264     call 09387h                               ; e8 02 05
     13298    call 093d7h                               ; e8 02 05
    1326513299    cmp AL, strict byte 012h                  ; 3c 12
    13266     je short 08e96h                           ; 74 0d
     13300    je short 08ee6h                           ; 74 0d
    1326713301    mov al, cl                                ; 88 c8
    1326813302    db  0feh, 0c0h
     
    1327113305    mov dx, di                                ; 89 fa
    1327213306    mov ax, si                                ; 89 f0
    13273     jmp short 08e6ah                          ; eb d4
     13307    jmp short 08ebah                          ; eb d4
    1327413308    test cl, cl                               ; 84 c9
    13275     je near 08f35h                            ; 0f 84 99 00
     13309    je near 08f85h                            ; 0f 84 99 00
    1327613310    add cl, 002h                              ; 80 c1 02
    1327713311    movzx bx, cl                              ; 0f b6 d9
     
    1328013314    mov dx, di                                ; 89 fa
    1328113315    mov ax, si                                ; 89 f0
    13282     call 09387h                               ; e8 d6 04
     13316    call 093d7h                               ; e8 d6 04
    1328313317    cmp AL, strict byte 010h                  ; 3c 10
    13284     jne near 08f35h                           ; 0f 85 7e 00
     13318    jne near 08f85h                           ; 0f 85 7e 00
    1328513319    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1328613320    mov al, cl                                ; 88 c8
     
    1328913323    mov dx, di                                ; 89 fa
    1329013324    mov ax, si                                ; 89 f0
    13291     call 093abh                               ; e8 e2 04
     13325    call 093fbh                               ; e8 e2 04
    1329213326    mov dx, ax                                ; 89 c2
    1329313327    and ax, strict word 0000fh                ; 25 0f 00
    1329413328    sub ax, strict word 00004h                ; 2d 04 00
    1329513329    cmp ax, strict word 0000bh                ; 3d 0b 00
    13296     jnbe short 08f0dh                         ; 77 37
     13330    jnbe short 08f5dh                         ; 77 37
    1329713331    push CS                                   ; 0e
    1329813332    pop ES                                    ; 07
    1329913333    mov cx, strict word 00008h                ; b9 08 00
    13300     mov di, 08e27h                            ; bf 27 8e
     13334    mov di, 08e77h                            ; bf 77 8e
    1330113335    repne scasb                               ; f2 ae
    1330213336    sal cx, 1                                 ; d1 e1
    1330313337    mov di, cx                                ; 89 cf
    13304     mov ax, word [cs:di-071d2h]               ; 2e 8b 85 2e 8e
     13338    mov ax, word [cs:di-07182h]               ; 2e 8b 85 7e 8e
    1330513339    jmp ax                                    ; ff e0
    1330613340    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    13307     jmp short 08f0dh                          ; eb 1c
     13341    jmp short 08f5dh                          ; eb 1c
    1330813342    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    13309     jmp short 08f0dh                          ; eb 16
     13343    jmp short 08f5dh                          ; eb 16
    1331013344    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    13311     jmp short 08f0dh                          ; eb 10
     13345    jmp short 08f5dh                          ; eb 10
    1331213346    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    13313     jmp short 08f0dh                          ; eb 0a
     13347    jmp short 08f5dh                          ; eb 0a
    1331413348    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    13315     jmp short 08f0dh                          ; eb 04
     13349    jmp short 08f5dh                          ; eb 04
    1331613350    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1331713351    mov si, dx                                ; 89 d6
     
    1332013354    mov al, byte [bp-006h]                    ; 8a 46 fa
    1332113355    test al, al                               ; 84 c0
    13322     je short 08f35h                           ; 74 19
     13356    je short 08f85h                           ; 74 19
    1332313357    movzx bx, al                              ; 0f b6 d8
    1332413358    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1332513359    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    13326     call 093cdh                               ; e8 a3 04
     13360    call 0941dh                               ; e8 a3 04
    1332713361    test AL, strict byte 001h                 ; a8 01
    13328     je short 08f35h                           ; 74 07
     13362    je short 08f85h                           ; 74 07
    1332913363    and AL, strict byte 0f0h                  ; 24 f0
    1333013364    add ax, si                                ; 01 f0
    13331     call 08d19h                               ; e8 e4 fd
     13365    call 08d69h                               ; e8 e4 fd
    1333213366    lea sp, [bp-004h]                         ; 8d 66 fc
    1333313367    pop di                                    ; 5f
     
    1333513369    pop bp                                    ; 5d
    1333613370    retn                                      ; c3
    13337 apm_out_str_:                                ; 0xf8f3c LB 0x39
     13371apm_out_str_:                                ; 0xf8f8c LB 0x39
    1333813372    push bp                                   ; 55
    1333913373    mov bp, sp                                ; 89 e5
     
    1334113375    mov bx, ax                                ; 89 c3
    1334213376    cmp byte [bx], 000h                       ; 80 3f 00
    13343     je short 08f51h                           ; 74 0a
     13377    je short 08fa1h                           ; 74 0a
    1334413378    mov al, byte [bx]                         ; 8a 07
    1334513379    out DX, AL                                ; ee
     
    1334813382    db  00ah, 0c0h
    1334913383    ; or al, al                                 ; 0a c0
    13350     jne short 08f49h                          ; 75 f8
     13384    jne short 08f99h                          ; 75 f8
    1335113385    lea sp, [bp-002h]                         ; 8d 66 fe
    1335213386    pop bx                                    ; 5b
    1335313387    pop bp                                    ; 5d
    1335413388    retn                                      ; c3
    13355     cbw                                       ; 98
    13356     db  08fh, 064h, 090h
    13357     ; pop word [si-070h]                        ; 8f 64 90
    13358     stosb                                     ; aa
    13359     db  08fh, 0c5h
    13360     ; pop bp                                    ; 8f c5
    13361     db  08fh, 064h, 090h
    13362     ; pop word [si-070h]                        ; 8f 64 90
    13363     db  0f0h, 08fh, 064h, 090h
    13364     ; Illegal opcode                            ; f0 8f 64 90
    13365     cmc                                       ; f5
    13366     db  08fh, 039h
    13367     ; pop word [bx+di]                          ; 8f 39
     13389    call 04439h                               ; e8 8f b4
    1336813390    nop                                       ; 90
    13369     cmp word [bx+si-06fc7h], dx               ; 39 90 39 90
    13370     xor AL, strict byte 090h                  ; 34 90
    13371     cmp word [bx+si-06fc7h], dx               ; 39 90 39 90
    13372     db  02dh
     13391    cli                                       ; fa
     13392    db  08fh, 015h
     13393    ; pop word [di]                             ; 8f 15
    1337313394    nop                                       ; 90
    13374 _apm_function:                               ; 0xf8f75 LB 0xf5
     13395    mov AH, strict byte 090h                  ; b4 90
     13396    inc ax                                    ; 40
     13397    nop                                       ; 90
     13398    mov AH, strict byte 090h                  ; b4 90
     13399    inc bp                                    ; 45
     13400    nop                                       ; 90
     13401    mov word [bx+si-06f77h], dx               ; 89 90 89 90
     13402    mov word [bx+si-06f7ch], dx               ; 89 90 84 90
     13403    mov word [bx+si-06f77h], dx               ; 89 90 89 90
     13404    jnl short 08f55h                          ; 7d 90
     13405_apm_function:                               ; 0xf8fc5 LB 0xf5
    1337513406    push bp                                   ; 55
    1337613407    mov bp, sp                                ; 89 e5
     
    1338013411    xor ah, ah                                ; 30 e4
    1338113412    cmp ax, strict word 0000eh                ; 3d 0e 00
    13382     jnbe near 09039h                          ; 0f 87 b0 00
     13413    jnbe near 09089h                          ; 0f 87 b0 00
    1338313414    mov bx, ax                                ; 89 c3
    1338413415    add bx, ax                                ; 01 c3
    1338513416    mov dx, word [bp+018h]                    ; 8b 56 18
    1338613417    or dl, 001h                               ; 80 ca 01
    13387     jmp word [cs:bx-070a9h]                   ; 2e ff a7 57 8f
     13418    jmp word [cs:bx-07059h]                   ; 2e ff a7 a7 8f
    1338813419    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1338913420    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1339013421    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    13391     jmp near 09064h                           ; e9 ba 00
     13422    jmp near 090b4h                           ; e9 ba 00
    1339213423    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    13393     mov word [bp+00ch], 095c4h                ; c7 46 0c c4 95
     13424    mov word [bp+00ch], 09614h                ; c7 46 0c 14 96
    1339413425    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1339513426    mov ax, strict word 0fff0h                ; b8 f0 ff
    1339613427    mov word [bp+006h], ax                    ; 89 46 06
    1339713428    mov word [bp+004h], ax                    ; 89 46 04
    13398     jmp near 09064h                           ; e9 9f 00
     13429    jmp near 090b4h                           ; e9 9f 00
    1339913430    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1340013431    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1340913440    mov si, ax                                ; 89 c6
    1341013441    sal esi, 010h                             ; 66 c1 e6 10
    13411     jmp near 09064h                           ; e9 74 00
     13442    jmp near 090b4h                           ; e9 74 00
    1341213443    sti                                       ; fb
    1341313444    hlt                                       ; f4
    13414     jmp near 09064h                           ; e9 6f 00
     13445    jmp near 090b4h                           ; e9 6f 00
    1341513446    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    13416     je short 0901ah                           ; 74 1f
     13447    je short 0906ah                           ; 74 1f
    1341713448    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    13418     je short 09012h                           ; 74 11
     13449    je short 09062h                           ; 74 11
    1341913450    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    13420     jne short 09022h                          ; 75 1b
     13451    jne short 09072h                          ; 75 1b
    1342113452    mov dx, 08900h                            ; ba 00 89
    1342213453    mov ax, 00d12h                            ; b8 12 0d
    13423     call 08f3ch                               ; e8 2c ff
    13424     jmp short 09064h                          ; eb 52
     13454    call 08f8ch                               ; e8 2c ff
     13455    jmp short 090b4h                          ; eb 52
    1342513456    mov dx, 08900h                            ; ba 00 89
    1342613457    mov ax, 00d1ah                            ; b8 1a 0d
    13427     jmp short 0900dh                          ; eb f3
     13458    jmp short 0905dh                          ; eb f3
    1342813459    mov dx, 08900h                            ; ba 00 89
    1342913460    mov ax, 00d22h                            ; b8 22 0d
    13430     jmp short 0900dh                          ; eb eb
     13461    jmp short 0905dh                          ; eb eb
    1343113462    or ah, 00ah                               ; 80 cc 0a
    1343213463    mov word [bp+012h], ax                    ; 89 46 12
    1343313464    mov word [bp+018h], dx                    ; 89 56 18
    13434     jmp short 09064h                          ; eb 37
     13465    jmp short 090b4h                          ; eb 37
    1343513466    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    13436     jmp short 09064h                          ; eb 30
     13467    jmp short 090b4h                          ; eb 30
    1343713468    or ah, 080h                               ; 80 cc 80
    13438     jmp short 09025h                          ; eb ec
     13469    jmp short 09075h                          ; eb ec
    1343913470    mov bx, 00da2h                            ; bb a2 0d
    1344013471    mov cx, ds                                ; 8c d9
    1344113472    mov ax, strict word 00004h                ; b8 04 00
    13442     call 01931h                               ; e8 ed 88
     13473    call 01931h                               ; e8 9d 88
    1344313474    push word [bp+00ch]                       ; ff 76 0c
    1344413475    push word [bp+012h]                       ; ff 76 12
    1344513476    push 00d2bh                               ; 68 2b 0d
    1344613477    push strict byte 00004h                   ; 6a 04
    13447     call 01972h                               ; e8 20 89
     13478    call 01972h                               ; e8 d0 88
    1344813479    add sp, strict byte 00008h                ; 83 c4 08
    1344913480    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1345613487    pop bp                                    ; 5d
    1345713488    retn                                      ; c3
    13458 pci16_select_reg_:                           ; 0xf906a LB 0x24
     13489pci16_select_reg_:                           ; 0xf90ba LB 0x24
    1345913490    push bp                                   ; 55
    1346013491    mov bp, sp                                ; 89 e5
     
    1347313504    pop bp                                    ; 5d
    1347413505    retn                                      ; c3
    13475 pci16_find_device_:                          ; 0xf908e LB 0xf7
     13506pci16_find_device_:                          ; 0xf90de LB 0xf7
    1347613507    push bp                                   ; 55
    1347713508    mov bp, sp                                ; 89 e5
     
    1348713518    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1348813519    test bl, 007h                             ; f6 c3 07
    13489     jne short 090d6h                          ; 75 2d
     13520    jne short 09126h                          ; 75 2d
    1349013521    mov dx, strict word 0000eh                ; ba 0e 00
    1349113522    mov ax, bx                                ; 89 d8
    13492     call 0906ah                               ; e8 b9 ff
     13523    call 090bah                               ; e8 b9 ff
    1349313524    mov dx, 00cfeh                            ; ba fe 0c
    1349413525    in AL, DX                                 ; ec
     
    1349713528    mov byte [bp-006h], al                    ; 88 46 fa
    1349813529    cmp AL, strict byte 0ffh                  ; 3c ff
    13499     jne short 090c4h                          ; 75 06
     13530    jne short 09114h                          ; 75 06
    1350013531    add bx, strict byte 00008h                ; 83 c3 08
    13501     jmp near 09157h                           ; e9 93 00
     13532    jmp near 091a7h                           ; e9 93 00
    1350213533    test byte [bp-006h], 080h                 ; f6 46 fa 80
    13503     je short 090d1h                           ; 74 07
     13534    je short 09121h                           ; 74 07
    1350413535    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    13505     jmp short 090d6h                          ; eb 05
     13536    jmp short 09126h                          ; eb 05
    1350613537    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1350713538    mov al, byte [bp-006h]                    ; 8a 46 fa
    1350813539    and AL, strict byte 007h                  ; 24 07
    1350913540    cmp AL, strict byte 001h                  ; 3c 01
    13510     jne short 090feh                          ; 75 1f
     13541    jne short 0914eh                          ; 75 1f
    1351113542    mov ax, bx                                ; 89 d8
    1351213543    shr ax, 008h                              ; c1 e8 08
    1351313544    test ax, ax                               ; 85 c0
    13514     jne short 090feh                          ; 75 16
     13545    jne short 0914eh                          ; 75 16
    1351513546    mov dx, strict word 0001ah                ; ba 1a 00
    1351613547    mov ax, bx                                ; 89 d8
    13517     call 0906ah                               ; e8 7a ff
     13548    call 090bah                               ; e8 7a ff
    1351813549    mov dx, 00cfeh                            ; ba fe 0c
    1351913550    in AL, DX                                 ; ec
     
    1352113552    ; sub ah, ah                                ; 2a e4
    1352213553    cmp al, byte [bp-008h]                    ; 3a 46 f8
    13523     jbe short 090feh                          ; 76 03
     13554    jbe short 0914eh                          ; 76 03
    1352413555    mov byte [bp-008h], al                    ; 88 46 f8
    1352513556    test di, di                               ; 85 ff
    13526     je short 09107h                           ; 74 05
     13557    je short 09157h                           ; 74 05
    1352713558    mov dx, strict word 00008h                ; ba 08 00
    13528     jmp short 09109h                          ; eb 02
     13559    jmp short 09159h                          ; eb 02
    1352913560    xor dx, dx                                ; 31 d2
    1353013561    mov ax, bx                                ; 89 d8
    13531     call 0906ah                               ; e8 5c ff
     13562    call 090bah                               ; e8 5c ff
    1353213563    mov dx, 00cfch                            ; ba fc 0c
    1353313564    in eax, DX                                ; 66 ed
     
    1354013571    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1354113572    test di, di                               ; 85 ff
    13542     je short 09138h                           ; 74 0f
     13573    je short 09188h                           ; 74 0f
    1354313574    mov cx, strict word 00008h                ; b9 08 00
    1354413575    shr dx, 1                                 ; d1 ea
    1354513576    rcr ax, 1                                 ; d1 d8
    13546     loop 0912ch                               ; e2 fa
     13577    loop 0917ch                               ; e2 fa
    1354713578    mov word [bp-00eh], ax                    ; 89 46 f2
    1354813579    mov word [bp-00ch], dx                    ; 89 56 f4
    1354913580    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1355013581    cmp ax, word [bp-014h]                    ; 3b 46 ec
    13551     jne short 09148h                          ; 75 08
     13582    jne short 09198h                          ; 75 08
    1355213583    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1355313584    cmp ax, word [bp-012h]                    ; 3b 46 ee
    13554     je short 0914eh                           ; 74 06
     13585    je short 0919eh                           ; 74 06
    1355513586    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    13556     je short 09154h                           ; 74 06
     13587    je short 091a4h                           ; 74 06
    1355713588    dec si                                    ; 4e
    1355813589    cmp si, strict byte 0ffffh                ; 83 fe ff
    13559     je short 09166h                           ; 74 12
     13590    je short 091b6h                           ; 74 12
    1356013591    add bx, word [bp-00ah]                    ; 03 5e f6
    1356113592    mov dx, bx                                ; 89 da
     
    1356313594    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1356413595    cmp dx, ax                                ; 39 c2
    13565     jbe near 090a4h                           ; 0f 86 3e ff
     13596    jbe near 090f4h                           ; 0f 86 3e ff
    1356613597    cmp si, strict byte 0ffffh                ; 83 fe ff
    13567     jne short 0916fh                          ; 75 04
     13598    jne short 091bfh                          ; 75 04
    1356813599    mov ax, bx                                ; 89 d8
    13569     jmp short 09172h                          ; eb 03
     13600    jmp short 091c2h                          ; eb 03
    1357013601    mov ax, strict word 0ffffh                ; b8 ff ff
    1357113602    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1357413605    pop bp                                    ; 5d
    1357513606    retn                                      ; c3
    13576     db  067h, 092h, 081h, 092h, 094h, 092h, 0a9h, 092h, 0bch, 092h, 0cfh, 092h
    13577 _pci16_function:                             ; 0xf9185 LB 0x1d7
     13607    mov BH, strict byte 092h                  ; b7 92
     13608    rcl word [bp+si-06d1ch], 1                ; d1 92 e4 92
     13609    stc                                       ; f9
     13610    xchg dx, ax                               ; 92
     13611    or AL, strict byte 093h                   ; 0c 93
     13612    pop DS                                    ; 1f
     13613    xchg bx, ax                               ; 93
     13614_pci16_function:                             ; 0xf91d5 LB 0x1d7
    1357813615    push bp                                   ; 55
    1357913616    mov bp, sp                                ; 89 e5
     
    1358913626    xor ah, ah                                ; 30 e4
    1359013627    cmp bx, strict byte 00003h                ; 83 fb 03
    13591     jc short 091beh                           ; 72 1a
    13592     jbe short 09216h                          ; 76 70
     13628    jc short 0920eh                           ; 72 1a
     13629    jbe short 09266h                          ; 76 70
    1359313630    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13594     je near 092e3h                            ; 0f 84 36 01
     13631    je near 09333h                            ; 0f 84 36 01
    1359513632    cmp bx, strict byte 00008h                ; 83 fb 08
    13596     jc near 09328h                            ; 0f 82 74 01
     13633    jc near 09378h                            ; 0f 82 74 01
    1359713634    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13598     jbe near 0923bh                           ; 0f 86 80 00
    13599     jmp near 09328h                           ; e9 6a 01
     13635    jbe near 0928bh                           ; 0f 86 80 00
     13636    jmp near 09378h                           ; e9 6a 01
    1360013637    cmp bx, strict byte 00002h                ; 83 fb 02
    13601     je short 091e6h                           ; 74 23
     13638    je short 09236h                           ; 74 23
    1360213639    cmp bx, strict byte 00001h                ; 83 fb 01
    13603     jne near 09328h                           ; 0f 85 5e 01
     13640    jne near 09378h                           ; 0f 85 5e 01
    1360413641    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1360513642    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1360713644    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1360813645    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    13609     jmp near 09355h                           ; e9 6f 01
     13646    jmp near 093a5h                           ; e9 6f 01
    1361013647    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    13611     jne short 091f2h                          ; 75 06
     13648    jne short 09242h                          ; 75 06
    1361213649    or ah, 083h                               ; 80 cc 83
    13613     jmp near 0934eh                           ; e9 5c 01
     13650    jmp near 0939eh                           ; e9 5c 01
    1361413651    mov bx, word [bp+008h]                    ; 8b 5e 08
    1361513652    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1361613653    mov ax, word [bp+018h]                    ; 8b 46 18
    1361713654    xor cx, cx                                ; 31 c9
    13618     call 0908eh                               ; e8 8e fe
     13655    call 090deh                               ; e8 8e fe
    1361913656    cmp ax, strict word 0ffffh                ; 3d ff ff
    13620     jne short 09210h                          ; 75 0b
     13657    jne short 09260h                          ; 75 0b
    1362113658    mov ax, word [bp+020h]                    ; 8b 46 20
    1362213659    xor ah, ah                                ; 30 e4
    1362313660    or ah, 086h                               ; 80 cc 86
    13624     jmp near 0934eh                           ; e9 3e 01
     13661    jmp near 0939eh                           ; e9 3e 01
    1362513662    mov word [bp+014h], ax                    ; 89 46 14
    13626     jmp near 09355h                           ; e9 3f 01
     13663    jmp near 093a5h                           ; e9 3f 01
    1362713664    mov bx, word [bp+008h]                    ; 8b 5e 08
    1362813665    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1362913666    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1363013667    mov cx, strict word 00001h                ; b9 01 00
    13631     call 0908eh                               ; e8 69 fe
     13668    call 090deh                               ; e8 69 fe
    1363213669    cmp ax, strict word 0ffffh                ; 3d ff ff
    13633     jne short 09235h                          ; 75 0b
     13670    jne short 09285h                          ; 75 0b
    1363413671    mov ax, word [bp+020h]                    ; 8b 46 20
    1363513672    xor ah, ah                                ; 30 e4
    1363613673    or ah, 086h                               ; 80 cc 86
    13637     jmp near 0934eh                           ; e9 19 01
     13674    jmp near 0939eh                           ; e9 19 01
    1363813675    mov word [bp+014h], ax                    ; 89 46 14
    13639     jmp near 09355h                           ; e9 1a 01
     13676    jmp near 093a5h                           ; e9 1a 01
    1364013677    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    13641     jc short 09248h                           ; 72 06
     13678    jc short 09298h                           ; 72 06
    1364213679    or ah, 087h                               ; 80 cc 87
    13643     jmp near 0934eh                           ; e9 06 01
     13680    jmp near 0939eh                           ; e9 06 01
    1364413681    mov dx, word [bp+004h]                    ; 8b 56 04
    1364513682    mov ax, word [bp+014h]                    ; 8b 46 14
    13646     call 0906ah                               ; e8 19 fe
     13683    call 090bah                               ; e8 19 fe
    1364713684    mov bx, word [bp+020h]                    ; 8b 5e 20
    1364813685    xor bh, bh                                ; 30 ff
    1364913686    sub bx, strict byte 00008h                ; 83 eb 08
    1365013687    cmp bx, strict byte 00005h                ; 83 fb 05
    13651     jnbe near 09355h                          ; 0f 87 f5 00
     13688    jnbe near 093a5h                          ; 0f 87 f5 00
    1365213689    add bx, bx                                ; 01 db
    13653     jmp word [cs:bx-06e87h]                   ; 2e ff a7 79 91
     13690    jmp word [cs:bx-06e37h]                   ; 2e ff a7 c9 91
    1365413691    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1365513692    xor bl, bl                                ; 30 db
     
    1366213699    or bx, ax                                 ; 09 c3
    1366313700    mov word [bp+01ch], bx                    ; 89 5e 1c
    13664     jmp near 09355h                           ; e9 d4 00
     13701    jmp near 093a5h                           ; e9 d4 00
    1366513702    mov dx, word [bp+004h]                    ; 8b 56 04
    1366613703    xor dh, dh                                ; 30 f6
     
    1366913706    in ax, DX                                 ; ed
    1367013707    mov word [bp+01ch], ax                    ; 89 46 1c
    13671     jmp near 09355h                           ; e9 c1 00
     13708    jmp near 093a5h                           ; e9 c1 00
    1367213709    mov dx, 00cfch                            ; ba fc 0c
    1367313710    in eax, DX                                ; 66 ed
     
    1367813715    mov word [bp+01ch], ax                    ; 89 46 1c
    1367913716    mov word [bp+01eh], dx                    ; 89 56 1e
    13680     jmp near 09355h                           ; e9 ac 00
     13717    jmp near 093a5h                           ; e9 ac 00
    1368113718    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1368213719    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1368513722    add dx, 00cfch                            ; 81 c2 fc 0c
    1368613723    out DX, AL                                ; ee
    13687     jmp near 09355h                           ; e9 99 00
     13724    jmp near 093a5h                           ; e9 99 00
    1368813725    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1368913726    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1369213729    add dx, 00cfch                            ; 81 c2 fc 0c
    1369313730    out DX, ax                                ; ef
    13694     jmp near 09355h                           ; e9 86 00
     13731    jmp near 093a5h                           ; e9 86 00
    1369513732    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1369613733    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1370113738    ; mov ax, cx                                ; 8b c1
    1370213739    out DX, eax                               ; 66 ef
    13703     jmp short 09355h                          ; eb 72
     13740    jmp short 093a5h                          ; eb 72
    1370413741    mov bx, word [bp+004h]                    ; 8b 5e 04
    1370513742    mov es, [bp+026h]                         ; 8e 46 26
     
    1370813745    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1370913746    cmp cx, word [es:bx]                      ; 26 3b 0f
    13710     jbe short 09309h                          ; 76 11
     13747    jbe short 09359h                          ; 76 11
    1371113748    mov ax, word [bp+020h]                    ; 8b 46 20
    1371213749    xor ah, ah                                ; 30 e4
     
    1371413751    mov word [bp+020h], ax                    ; 89 46 20
    1371513752    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    13716     jmp short 0931dh                          ; eb 14
     13753    jmp short 0936dh                          ; eb 14
    1371713754    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1371813755    mov si, 0f2c0h                            ; be c0 f2
     
    1372613763    les bx, [bp-008h]                         ; c4 5e f8
    1372713764    mov word [es:bx], ax                      ; 26 89 07
    13728     jmp short 09355h                          ; eb 2d
     13765    jmp short 093a5h                          ; eb 2d
    1372913766    mov bx, 00da2h                            ; bb a2 0d
    1373013767    mov cx, ds                                ; 8c d9
    1373113768    mov ax, strict word 00004h                ; b8 04 00
    13732     call 01931h                               ; e8 fe 85
     13769    call 01931h                               ; e8 ae 85
    1373313770    mov ax, word [bp+014h]                    ; 8b 46 14
    1373413771    push ax                                   ; 50
     
    1373713774    push 00d5eh                               ; 68 5e 0d
    1373813775    push strict byte 00004h                   ; 6a 04
    13739     call 01972h                               ; e8 2f 86
     13776    call 01972h                               ; e8 df 85
    1374013777    add sp, strict byte 00008h                ; 83 c4 08
    1374113778    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1374913786    pop bp                                    ; 5d
    1375013787    retn                                      ; c3
    13751 pci_find_classcode_:                         ; 0xf935c LB 0x2b
     13788pci_find_classcode_:                         ; 0xf93ac LB 0x2b
    1375213789    push bp                                   ; 55
    1375313790    mov bp, sp                                ; 89 e5
     
    1376413801    int 01ah                                  ; cd 1a
    1376513802    cmp ah, 000h                              ; 80 fc 00
    13766     je near 0937dh                            ; 0f 84 03 00
     13803    je near 093cdh                            ; 0f 84 03 00
    1376713804    mov bx, strict word 0ffffh                ; bb ff ff
    1376813805    mov ax, bx                                ; 89 d8
     
    1377313810    pop bp                                    ; 5d
    1377413811    retn                                      ; c3
    13775 pci_read_config_byte_:                       ; 0xf9387 LB 0x24
     13812pci_read_config_byte_:                       ; 0xf93d7 LB 0x24
    1377613813    push bp                                   ; 55
    1377713814    mov bp, sp                                ; 89 e5
     
    1379213829    pop bp                                    ; 5d
    1379313830    retn                                      ; c3
    13794 pci_read_config_word_:                       ; 0xf93ab LB 0x22
     13831pci_read_config_word_:                       ; 0xf93fb LB 0x22
    1379513832    push bp                                   ; 55
    1379613833    mov bp, sp                                ; 89 e5
     
    1381113848    pop bp                                    ; 5d
    1381213849    retn                                      ; c3
    13813 pci_read_config_dword_:                      ; 0xf93cd LB 0x27
     13850pci_read_config_dword_:                      ; 0xf941d LB 0x27
    1381413851    push bp                                   ; 55
    1381513852    mov bp, sp                                ; 89 e5
     
    1383213869    pop bp                                    ; 5d
    1383313870    retn                                      ; c3
    13834 vds_is_present_:                             ; 0xf93f4 LB 0x1d
     13871vds_is_present_:                             ; 0xf9444 LB 0x1d
    1383513872    push bx                                   ; 53
    1383613873    push bp                                   ; 55
     
    1384013877    mov es, ax                                ; 8e c0
    1384113878    test byte [es:bx], 020h                   ; 26 f6 07 20
    13842     je short 0940ch                           ; 74 06
     13879    je short 0945ch                           ; 74 06
    1384313880    mov ax, strict word 00001h                ; b8 01 00
    1384413881    pop bp                                    ; 5d
     
    1384913886    pop bx                                    ; 5b
    1385013887    retn                                      ; c3
    13851 vds_real_to_lin_:                            ; 0xf9411 LB 0x1e
     13888vds_real_to_lin_:                            ; 0xf9461 LB 0x1e
    1385213889    push bx                                   ; 53
    1385313890    push cx                                   ; 51
     
    1386013897    sal ax, 1                                 ; d1 e0
    1386113898    rcl dx, 1                                 ; d1 d2
    13862     loop 0941fh                               ; e2 fa
     13899    loop 0946fh                               ; e2 fa
    1386313900    xor cx, cx                                ; 31 c9
    1386413901    add ax, bx                                ; 01 d8
     
    1386813905    pop bx                                    ; 5b
    1386913906    retn                                      ; c3
    13870 vds_build_sg_list_:                          ; 0xf942f LB 0x79
     13907vds_build_sg_list_:                          ; 0xf947f LB 0x79
    1387113908    push bp                                   ; 55
    1387213909    mov bp, sp                                ; 89 e5
     
    1388213919    mov bx, word [bp+006h]                    ; 8b 5e 06
    1388313920    mov word [es:di+002h], bx                 ; 26 89 5d 02
    13884     call 09411h                               ; e8 c3 ff
     13921    call 09461h                               ; e8 c3 ff
    1388513922    mov es, si                                ; 8e c6
    1388613923    mov word [es:di+004h], ax                 ; 26 89 45 04
    1388713924    mov word [es:di+006h], dx                 ; 26 89 55 06
    1388813925    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    13889     call 093f4h                               ; e8 93 ff
     13926    call 09444h                               ; e8 93 ff
    1389013927    test ax, ax                               ; 85 c0
    13891     je short 09478h                           ; 74 13
     13928    je short 094c8h                           ; 74 13
    1389213929    mov es, si                                ; 8e c6
    1389313930    mov ax, 08105h                            ; b8 05 81
    1389413931    mov dx, strict word 00000h                ; ba 00 00
    1389513932    int 04bh                                  ; cd 4b
    13896     jc near 09475h                            ; 0f 82 02 00
     13933    jc near 094c5h                            ; 0f 82 02 00
    1389713934    db  032h, 0c0h
    1389813935    ; xor al, al                                ; 32 c0
    1389913936    cbw                                       ; 98
    13900     jmp short 0949fh                          ; eb 27
     13937    jmp short 094efh                          ; eb 27
    1390113938    mov es, si                                ; 8e c6
    1390213939    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1391513952    pop bp                                    ; 5d
    1391613953    retn 00004h                               ; c2 04 00
    13917 vds_free_sg_list_:                           ; 0xf94a8 LB 0x38
     13954vds_free_sg_list_:                           ; 0xf94f8 LB 0x38
    1391813955    push bp                                   ; 55
    1391913956    mov bp, sp                                ; 89 e5
     
    1392113958    push di                                   ; 57
    1392213959    mov bx, ax                                ; 89 c3
    13923     call 093f4h                               ; e8 42 ff
     13960    call 09444h                               ; e8 42 ff
    1392413961    test ax, ax                               ; 85 c0
    13925     je short 094c9h                           ; 74 13
     13962    je short 09519h                           ; 74 13
    1392613963    mov di, bx                                ; 89 df
    1392713964    mov es, dx                                ; 8e c2
     
    1392913966    mov dx, strict word 00000h                ; ba 00 00
    1393013967    int 04bh                                  ; cd 4b
    13931     jc near 094c8h                            ; 0f 82 02 00
     13968    jc near 09518h                            ; 0f 82 02 00
    1393213969    db  032h, 0c0h
    1393313970    ; xor al, al                                ; 32 c0
     
    1394113978    retn                                      ; c3
    1394213979    times 0x8 db 0
    13943 __U4D:                                       ; 0xf94e0 LB 0x39
     13980__U4D:                                       ; 0xf9530 LB 0x39
    1394413981    pushfw                                    ; 9c
    1394513982    push eax                                  ; 66 50
     
    1397114008    popfw                                     ; 9d
    1397214009    retn                                      ; c3
    13973 __U4M:                                       ; 0xf9519 LB 0x31
     14010__U4M:                                       ; 0xf9569 LB 0x31
    1397414011    pushfw                                    ; 9c
    1397514012    push eax                                  ; 66 50
     
    1399614033    popfw                                     ; 9d
    1399714034    retn                                      ; c3
    13998 _fmemset_:                                   ; 0xf954a LB 0xd
     14035_fmemset_:                                   ; 0xf959a LB 0xd
    1399914036    push di                                   ; 57
    1400014037    mov es, dx                                ; 8e c2
     
    1400614043    pop di                                    ; 5f
    1400714044    retn                                      ; c3
    14008 _fmemcpy_:                                   ; 0xf9557 LB 0x33
     14045_fmemcpy_:                                   ; 0xf95a7 LB 0x33
    1400914046    push bp                                   ; 55
    1401014047    db  08bh, 0ech
     
    1402614063    leave                                     ; c9
    1402714064    retn                                      ; c3
    14028     add byte [bx+si-05d6bh], ah               ; 00 a0 95 a2
     14065    add al, dh                                ; 00 f0
    1402914066    xchg bp, ax                               ; 95
    14030     cmpsb                                     ; a6
     14067    repne xchg bp, ax                         ; f2 95
     14068    not byte [di-06a0ah]                      ; f6 95 f6 95
     14069    not byte [di-06a08h]                      ; f6 95 f8 95
     14070    clc                                       ; f8
    1403114071    xchg bp, ax                               ; 95
    14032     cmpsb                                     ; a6
     14072    cli                                       ; fa
    1403314073    xchg bp, ax                               ; 95
    14034     cmpsb                                     ; a6
     14074    db  0feh
    1403514075    xchg bp, ax                               ; 95
    14036     test AL, strict byte 095h                 ; a8 95
    14037     test AL, strict byte 095h                 ; a8 95
    14038     stosb                                     ; aa
     14076    db  0feh
    1403914077    xchg bp, ax                               ; 95
    14040     scasb                                     ; ae
    14041     xchg bp, ax                               ; 95
    14042     scasb                                     ; ae
    14043     xchg bp, ax                               ; 95
    14044     mov AL, strict byte 095h                  ; b0 95
    14045     mov CH, strict byte 095h                  ; b5 95
    14046     mov BH, strict byte 095h                  ; b7 95
    14047 apm_worker:                                  ; 0xf958a LB 0x3a
     14078    add byte [bp-069fbh], dl                  ; 00 96 05 96
     14079    pop ES                                    ; 07
     14080    xchg si, ax                               ; 96
     14081apm_worker:                                  ; 0xf95da LB 0x3a
    1404814082    sti                                       ; fb
    1404914083    push ax                                   ; 50
     
    1405714091    pop ax                                    ; 58
    1405814092    mov AH, strict byte 053h                  ; b4 53
    14059     jnc short 095c0h                          ; 73 25
    14060     jmp word [cs:bp-06a90h]                   ; 2e ff a6 70 95
    14061     jmp short 095beh                          ; eb 1c
     14093    jnc short 09610h                          ; 73 25
     14094    jmp word [cs:bp-06a40h]                   ; 2e ff a6 c0 95
     14095    jmp short 0960eh                          ; eb 1c
    1406214096    sti                                       ; fb
    1406314097    hlt                                       ; f4
    14064     jmp short 095beh                          ; eb 18
    14065     jmp short 095beh                          ; eb 16
    14066     jmp short 095c0h                          ; eb 16
     14098    jmp short 0960eh                          ; eb 18
     14099    jmp short 0960eh                          ; eb 16
     14100    jmp short 09610h                          ; eb 16
    1406714101    mov AH, strict byte 080h                  ; b4 80
    14068     jmp short 095c2h                          ; eb 14
    14069     jmp short 095c0h                          ; eb 10
     14102    jmp short 09612h                          ; eb 14
     14103    jmp short 09610h                          ; eb 10
    1407014104    mov ax, 00102h                            ; b8 02 01
    14071     jmp short 095beh                          ; eb 09
    14072     jmp short 095beh                          ; eb 07
     14105    jmp short 0960eh                          ; eb 09
     14106    jmp short 0960eh                          ; eb 07
    1407314107    mov BL, strict byte 000h                  ; b3 00
    1407414108    mov cx, strict word 00000h                ; b9 00 00
    14075     jmp short 095beh                          ; eb 00
     14109    jmp short 0960eh                          ; eb 00
    1407614110    clc                                       ; f8
    1407714111    retn                                      ; c3
     
    1407914113    stc                                       ; f9
    1408014114    retn                                      ; c3
    14081 apm_pm16_entry:                              ; 0xf95c4 LB 0x11
     14115apm_pm16_entry:                              ; 0xf9614 LB 0x11
    1408214116    mov AH, strict byte 002h                  ; b4 02
    1408314117    push DS                                   ; 1e
     
    1408714121    add bp, strict byte 00008h                ; 83 c5 08
    1408814122    mov ds, bp                                ; 8e dd
    14089     call 0958ah                               ; e8 b8 ff
     14123    call 095dah                               ; e8 b8 ff
    1409014124    pop bp                                    ; 5d
    1409114125    pop DS                                    ; 1f
    1409214126    retf                                      ; cb
    1409314127
    14094   ; Padding 0x442b bytes at 0xf95d5
    14095   times 17451 db 0
     14128  ; Padding 0x43db bytes at 0xf9625
     14129  times 17371 db 0
    1409614130
    1409714131section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1414014174    add bp, strict byte 00008h                ; 83 c5 08
    1414114175    push ebp                                  ; 66 55
    14142     mov bp, 095c6h                            ; bd c6 95
     14176    mov bp, 09616h                            ; bd 16 96
    1414314177    add byte [bx+si], al                      ; 00 00
    1414414178    push ebp                                  ; 66 55
     
    1486214896    call 01badh                               ; e8 71 38
    1486314897    call 01fa7h                               ; e8 68 3c
    14864     call 08e3eh                               ; e8 fc aa
     14898    call 08e8eh                               ; e8 4c ab
    1486514899    call 07ee5h                               ; e8 a0 9b
    1486614900    call 0ed2fh                               ; e8 e7 09
     
    1586015894    popfw                                     ; 9d
    1586115895    jmp short 0f895h                          ; eb 13
    15862     call 08f75h                               ; e8 f0 96
     15896    call 08fc5h                               ; e8 40 97
    1586315897    jmp short 0f87ch                          ; eb f5
    1586415898int15_handler_mouse:                         ; 0xff887 LB 0x5
     
    1598916023    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1599016024    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    15991     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 008h, 093h, 066h
     16025    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 058h, 093h, 066h
    1599216026    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 007h, 06ch, 061h, 01fh, 007h
    1599316027    db  0cfh
     
    1609816132cpu_reset:                                   ; 0xffff0 LB 0x10
    1609916133    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    16100     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0e8h
     16134    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 018h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r51062 r51255  
    1 6a940bcf6a5d4747e33d98d6028b3cec *VBoxPcBios.rom
     155ca2fd1a1b0f2f630e123a300b99aa4 *VBoxPcBios.rom
Note: See TracChangeset for help on using the changeset viewer.

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