VirtualBox

Changeset 45670 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Apr 22, 2013 3:46:03 PM (12 years ago)
Author:
vboxsync
Message:

BIOS: updated the alternative source code

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp

    r45045 r45670  
    966966                     && pb[5] == 0x58
    967967                    )
    968                  || (   pb[0] == 0x72   /* _pci16_function switch */
     968                 || (   pb[0] == 0xc9   /* _pci16_function switch */
    969969                     && pb[1] == 0x8d
    970                      && pb[2] == 0x8c
     970                     && pb[2] == 0xe3
    971971                     && pb[3] == 0x8d
    972                      && pb[4] == 0x9f
     972                     && pb[4] == 0xf6
    973973                     && pb[5] == 0x8d
    974974                     )
    975                  || (   pb[0] == 0xd0   /* _int1a_function switch */
     975                 || (   pb[0] == 0xa3   /* _int1a_function switch */
    976976                     && pb[1] == 0x67
    977                      && pb[2] == 0xf7
     977                     && pb[2] == 0xca
    978978                     && pb[3] == 0x67
    979                      && pb[4] == 0x1c
    980                      && pb[5] == 0x68
     979                     && pb[4] == 0xef
     980                     && pb[5] == 0x67
    981981                    )
    982982                 || (   pb[0] == 0x0b   /* _ahci_init byte table */
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm

    r44751 r45670  
    794794section _DATA progbits vstart=0x0 align=1 ; size=0x40 class=DATA group=DGROUP
    795795_pktacc:                                     ; 0xf0000 LB 0xc
    796     db  000h, 000h, 000h, 000h, 000h, 000h, 0eah, 027h, 08dh, 075h, 0adh, 082h
     796    db  000h, 000h, 000h, 000h, 000h, 000h, 0e4h, 027h, 0f9h, 075h, 019h, 083h
    797797_softrst:                                    ; 0xf000c LB 0xc
    798     db  000h, 000h, 000h, 000h, 000h, 000h, 0cdh, 02ah, 000h, 000h, 000h, 000h
     798    db  000h, 000h, 000h, 000h, 000h, 000h, 0c7h, 02ah, 000h, 000h, 000h, 000h
    799799_dskacc:                                     ; 0xf0018 LB 0x28
    800     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 039h, 027h, 0b0h, 027h, 000h, 000h, 000h, 000h
    801     db  02bh, 074h, 0dch, 074h, 0afh, 081h, 040h, 082h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h
     800    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 033h, 027h, 0aah, 027h, 000h, 000h, 000h, 000h
     801    db  097h, 074h, 048h, 075h, 01bh, 082h, 0ach, 082h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h
    802802    db  000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    803803
     
    994994  times 1254 db 0
    995995
    996 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7aa5 class=CODE group=AUTO
     996section _TEXT progbits vstart=0x1600 align=1 ; size=0x7b05 class=CODE group=AUTO
    997997read_byte_:                                  ; 0xf1600 LB 0xe
    998998    push bx                                   ; 53
     
    11851185    pop bp                                    ; 5d
    11861186    retn                                      ; c3
    1187     call 07097h                               ; e8 48 59
     1187    call 07103h                               ; e8 b4 59
    11881188    pop bp                                    ; 5d
    11891189    retn                                      ; c3
     
    13181318    mov bx, strict word 0000ah                ; bb 0a 00
    13191319    xor cx, cx                                ; 31 c9
    1320     call 08fb0h                               ; e8 57 77
     1320    call 09010h                               ; e8 b7 77
    13211321    mov word [bp-004h], ax                    ; 89 46 fc
    13221322    mov cx, dx                                ; 89 d1
     
    13941394    pop bx                                    ; 5b
    13951395    retn                                      ; c3
    1396 bios_printf_:                                ; 0xf18e9 LB 0x23c
     1396bios_printf_:                                ; 0xf18e9 LB 0x236
    13971397    push bx                                   ; 53
    13981398    push cx                                   ; 51
     
    14091409    and ax, strict word 00007h                ; 25 07 00
    14101410    cmp ax, strict word 00007h                ; 3d 07 00
    1411     jne short 0191bh                          ; 75 11
    1412     xor al, al                                ; 30 c0
    1413     mov dx, 00401h                            ; ba 01 04
    1414     out DX, AL                                ; ee
     1411    jne short 01915h                          ; 75 0b
    14151412    push strict word 0006eh                   ; 68 6e 00
    14161413    push strict byte 00002h                   ; 6a 02
    1417     call 018e9h                               ; e8 d1 ff
     1414    call 018e9h                               ; e8 d7 ff
    14181415    add sp, strict byte 00004h                ; 83 c4 04
    14191416    mov bx, word [bp+010h]                    ; 8b 5e 10
    14201417    mov dl, byte [bx]                         ; 8a 17
    14211418    test dl, dl                               ; 84 d2
    1422     je near 01b0ch                            ; 0f 84 e6 01
     1419    je near 01b06h                            ; 0f 84 e6 01
    14231420    cmp dl, 025h                              ; 80 fa 25
    1424     jne short 01933h                          ; 75 08
     1421    jne short 0192dh                          ; 75 08
    14251422    mov cx, strict word 00001h                ; b9 01 00
    14261423    xor si, si                                ; 31 f6
    1427     jmp near 01b06h                           ; e9 d3 01
     1424    jmp near 01b00h                           ; e9 d3 01
    14281425    test cx, cx                               ; 85 c9
    1429     je near 01afeh                            ; 0f 84 c5 01
     1426    je near 01af8h                            ; 0f 84 c5 01
    14301427    cmp dl, 030h                              ; 80 fa 30
    1431     jc short 01951h                           ; 72 13
     1428    jc short 0194bh                           ; 72 13
    14321429    cmp dl, 039h                              ; 80 fa 39
    1433     jnbe short 01951h                         ; 77 0e
     1430    jnbe short 0194bh                         ; 77 0e
    14341431    movzx ax, dl                              ; 0f b6 c2
    14351432    imul si, si, strict byte 0000ah           ; 6b f6 0a
    14361433    sub ax, strict word 00030h                ; 2d 30 00
    14371434    add si, ax                                ; 01 c6
    1438     jmp near 01b06h                           ; e9 b5 01
     1435    jmp near 01b00h                           ; e9 b5 01
    14391436    mov ax, word [bp-006h]                    ; 8b 46 fa
    14401437    mov word [bp-006h], ax                    ; 89 46 fa
     
    14441441    mov word [bp-002h], ax                    ; 89 46 fe
    14451442    cmp dl, 078h                              ; 80 fa 78
    1446     je short 0196fh                           ; 74 05
     1443    je short 01969h                           ; 74 05
    14471444    cmp dl, 058h                              ; 80 fa 58
    1448     jne short 019b8h                          ; 75 49
     1445    jne short 019b2h                          ; 75 49
    14491446    test si, si                               ; 85 f6
    1450     jne short 01976h                          ; 75 03
     1447    jne short 01970h                          ; 75 03
    14511448    mov si, strict word 00004h                ; be 04 00
    14521449    cmp dl, 078h                              ; 80 fa 78
    1453     jne short 01980h                          ; 75 05
     1450    jne short 0197ah                          ; 75 05
    14541451    mov di, strict word 00061h                ; bf 61 00
    1455     jmp short 01983h                          ; eb 03
     1452    jmp short 0197dh                          ; eb 03
    14561453    mov di, strict word 00041h                ; bf 41 00
    14571454    lea bx, [si-001h]                         ; 8d 5c ff
    14581455    test bx, bx                               ; 85 db
    1459     jl near 01afah                            ; 0f 8c 6e 01
     1456    jl near 01af4h                            ; 0f 8c 6e 01
    14601457    mov cx, bx                                ; 89 d9
    14611458    sal cx, 002h                              ; c1 e1 02
     
    14651462    and AL, strict byte 00fh                  ; 24 0f
    14661463    cmp ax, strict word 00009h                ; 3d 09 00
    1467     jnbe short 019a6h                         ; 77 07
     1464    jnbe short 019a0h                         ; 77 07
    14681465    mov dx, ax                                ; 89 c2
    14691466    add dx, strict byte 00030h                ; 83 c2 30
    1470     jmp short 019adh                          ; eb 07
     1467    jmp short 019a7h                          ; eb 07
    14711468    mov dx, ax                                ; 89 c2
    14721469    sub dx, strict byte 0000ah                ; 83 ea 0a
     
    14741471    xor dh, dh                                ; 30 f6
    14751472    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1476     call 01751h                               ; e8 9c fd
     1473    call 01751h                               ; e8 a2 fd
    14771474    dec bx                                    ; 4b
    1478     jmp short 01986h                          ; eb ce
     1475    jmp short 01980h                          ; eb ce
    14791476    cmp dl, 075h                              ; 80 fa 75
    1480     jne short 019cch                          ; 75 0f
     1477    jne short 019c6h                          ; 75 0f
    14811478    xor cx, cx                                ; 31 c9
    14821479    mov bx, si                                ; 89 f3
    14831480    mov dx, ax                                ; 89 c2
    14841481    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1485     call 017e4h                               ; e8 1b fe
    1486     jmp near 01afah                           ; e9 2e 01
     1482    call 017e4h                               ; e8 21 fe
     1483    jmp near 01af4h                           ; e9 2e 01
    14871484    lea bx, [si-001h]                         ; 8d 5c ff
    14881485    cmp dl, 06ch                              ; 80 fa 6c
    1489     jne near 01a88h                           ; 0f 85 b2 00
     1486    jne near 01a82h                           ; 0f 85 b2 00
    14901487    inc word [bp+010h]                        ; ff 46 10
    14911488    mov di, word [bp+010h]                    ; 8b 7e 10
     
    14981495    mov word [bp-004h], ax                    ; 89 46 fc
    14991496    cmp dl, 064h                              ; 80 fa 64
    1500     jne short 01a24h                          ; 75 2d
     1497    jne short 01a1eh                          ; 75 2d
    15011498    test byte [bp-003h], 080h                 ; f6 46 fd 80
    1502     je short 01a12h                           ; 74 15
     1499    je short 01a0ch                           ; 74 15
    15031500    push strict byte 00001h                   ; 6a 01
    15041501    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    15091506    mov dx, bx                                ; 89 da
    15101507    mov bx, ax                                ; 89 c3
    1511     jmp short 01a1bh                          ; eb 09
     1508    jmp short 01a15h                          ; eb 09
    15121509    push strict byte 00000h                   ; 6a 00
    15131510    mov bx, word [bp-002h]                    ; 8b 5e fe
     
    15151512    mov cx, ax                                ; 89 c1
    15161513    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1517     call 01840h                               ; e8 1f fe
    1518     jmp near 01afah                           ; e9 d6 00
     1514    call 01840h                               ; e8 25 fe
     1515    jmp near 01af4h                           ; e9 d6 00
    15191516    cmp dl, 075h                              ; 80 fa 75
    1520     jne short 01a2bh                          ; 75 02
    1521     jmp short 01a12h                          ; eb e7
     1517    jne short 01a25h                          ; 75 02
     1518    jmp short 01a0ch                          ; eb e7
    15221519    cmp dl, 078h                              ; 80 fa 78
    1523     je short 01a37h                           ; 74 07
     1520    je short 01a31h                           ; 74 07
    15241521    cmp dl, 058h                              ; 80 fa 58
    1525     jne near 01afah                           ; 0f 85 c3 00
     1522    jne near 01af4h                           ; 0f 85 c3 00
    15261523    test si, si                               ; 85 f6
    1527     jne short 01a3eh                          ; 75 03
     1524    jne short 01a38h                          ; 75 03
    15281525    mov si, strict word 00008h                ; be 08 00
    15291526    cmp dl, 078h                              ; 80 fa 78
    1530     jne short 01a48h                          ; 75 05
     1527    jne short 01a42h                          ; 75 05
    15311528    mov di, strict word 00061h                ; bf 61 00
    1532     jmp short 01a4bh                          ; eb 03
     1529    jmp short 01a45h                          ; eb 03
    15331530    mov di, strict word 00041h                ; bf 41 00
    15341531    lea bx, [si-001h]                         ; 8d 5c ff
    15351532    test bx, bx                               ; 85 db
    1536     jl near 01afah                            ; 0f 8c a6 00
     1533    jl near 01af4h                            ; 0f 8c a6 00
    15371534    mov ax, word [bp-002h]                    ; 8b 46 fe
    15381535    mov cx, bx                                ; 89 d9
    15391536    sal cx, 002h                              ; c1 e1 02
    15401537    mov dx, word [bp-004h]                    ; 8b 56 fc
    1541     jcxz 01a67h                               ; e3 06
     1538    jcxz 01a61h                               ; e3 06
    15421539    shr dx, 1                                 ; d1 ea
    15431540    rcr ax, 1                                 ; d1 d8
    1544     loop 01a61h                               ; e2 fa
     1541    loop 01a5bh                               ; e2 fa
    15451542    and ax, strict word 0000fh                ; 25 0f 00
    15461543    cmp ax, strict word 00009h                ; 3d 09 00
    1547     jnbe short 01a76h                         ; 77 07
     1544    jnbe short 01a70h                         ; 77 07
    15481545    mov dx, ax                                ; 89 c2
    15491546    add dx, strict byte 00030h                ; 83 c2 30
    1550     jmp short 01a7dh                          ; eb 07
     1547    jmp short 01a77h                          ; eb 07
    15511548    mov dx, ax                                ; 89 c2
    15521549    sub dx, strict byte 0000ah                ; 83 ea 0a
     
    15541551    xor dh, dh                                ; 30 f6
    15551552    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1556     call 01751h                               ; e8 cc fc
     1553    call 01751h                               ; e8 d2 fc
    15571554    dec bx                                    ; 4b
    1558     jmp short 01a4eh                          ; eb c6
     1555    jmp short 01a48h                          ; eb c6
    15591556    cmp dl, 064h                              ; 80 fa 64
    1560     jne short 01aaah                          ; 75 1d
     1557    jne short 01aa4h                          ; 75 1d
    15611558    test byte [bp-001h], 080h                 ; f6 46 ff 80
    1562     je short 01a9ch                           ; 74 09
     1559    je short 01a96h                           ; 74 09
    15631560    mov dx, ax                                ; 89 c2
    15641561    neg dx                                    ; f7 da
    15651562    mov cx, strict word 00001h                ; b9 01 00
    1566     jmp short 01aa2h                          ; eb 06
     1563    jmp short 01a9ch                          ; eb 06
    15671564    xor cx, cx                                ; 31 c9
    15681565    mov bx, si                                ; 89 f3
    15691566    mov dx, ax                                ; 89 c2
    15701567    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1571     call 01789h                               ; e8 e1 fc
    1572     jmp short 01afah                          ; eb 50
     1568    call 01789h                               ; e8 e7 fc
     1569    jmp short 01af4h                          ; eb 50
    15731570    cmp dl, 073h                              ; 80 fa 73
    1574     jne short 01abbh                          ; 75 0c
     1571    jne short 01ab5h                          ; 75 0c
    15751572    mov cx, ds                                ; 8c d9
    15761573    mov bx, ax                                ; 89 c3
    15771574    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1578     call 018aeh                               ; e8 f5 fd
    1579     jmp short 01afah                          ; eb 3f
     1575    call 018aeh                               ; e8 fb fd
     1576    jmp short 01af4h                          ; eb 3f
    15801577    cmp dl, 053h                              ; 80 fa 53
    1581     jne short 01adeh                          ; 75 1e
     1578    jne short 01ad8h                          ; 75 1e
    15821579    mov word [bp-004h], ax                    ; 89 46 fc
    15831580    mov ax, word [bp-006h]                    ; 8b 46 fa
     
    15891586    mov bx, ax                                ; 89 c3
    15901587    mov cx, word [bp-004h]                    ; 8b 4e fc
    1591     jmp short 01ab3h                          ; eb d5
     1588    jmp short 01aadh                          ; eb d5
    15921589    cmp dl, 063h                              ; 80 fa 63
    1593     jne short 01aefh                          ; 75 0c
     1590    jne short 01ae9h                          ; 75 0c
    15941591    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    15951592    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1596     call 01751h                               ; e8 64 fc
    1597     jmp short 01afah                          ; eb 0b
     1593    call 01751h                               ; e8 6a fc
     1594    jmp short 01af4h                          ; eb 0b
    15981595    push strict word 00076h                   ; 68 76 00
    15991596    push strict byte 00007h                   ; 6a 07
    1600     call 018e9h                               ; e8 f2 fd
     1597    call 018e9h                               ; e8 f8 fd
    16011598    add sp, strict byte 00004h                ; 83 c4 04
    16021599    xor cx, cx                                ; 31 c9
    1603     jmp short 01b06h                          ; eb 08
     1600    jmp short 01b00h                          ; eb 08
    16041601    xor dh, dh                                ; 30 f6
    16051602    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1606     call 01751h                               ; e8 4b fc
     1603    call 01751h                               ; e8 51 fc
    16071604    inc word [bp+010h]                        ; ff 46 10
    1608     jmp near 0191bh                           ; e9 0f fe
     1605    jmp near 01915h                           ; e9 0f fe
    16091606    xor ax, ax                                ; 31 c0
    16101607    mov word [bp-008h], ax                    ; 89 46 f8
    16111608    mov word [bp-006h], ax                    ; 89 46 fa
    16121609    test byte [bp+00eh], 001h                 ; f6 46 0e 01
    1613     je short 01b1eh                           ; 74 04
     1610    je short 01b18h                           ; 74 04
    16141611    cli                                       ; fa
    16151612    hlt                                       ; f4
    1616     jmp short 01b1bh                          ; eb fd
     1613    jmp short 01b15h                          ; eb fd
    16171614    leave                                     ; c9
    16181615    pop di                                    ; 5f
     
    16221619    pop bx                                    ; 5b
    16231620    retn                                      ; c3
    1624 _ata_init:                                   ; 0xf1b25 LB 0xc1
     1621_ata_init:                                   ; 0xf1b1f LB 0xc1
    16251622    push si                                   ; 56
    16261623    push bp                                   ; 55
     
    16281625    mov dx, strict word 0000eh                ; ba 0e 00
    16291626    mov ax, strict word 00040h                ; b8 40 00
    1630     call 0161ch                               ; e8 ea fa
     1627    call 0161ch                               ; e8 f0 fa
    16311628    mov si, 00122h                            ; be 22 01
    16321629    mov dx, ax                                ; 89 c2
    16331630    xor al, al                                ; 30 c0
    1634     jmp short 01b3fh                          ; eb 04
     1631    jmp short 01b39h                          ; eb 04
    16351632    cmp AL, strict byte 004h                  ; 3c 04
    1636     jnc short 01b63h                          ; 73 24
     1633    jnc short 01b5dh                          ; 73 24
    16371634    movzx bx, al                              ; 0f b6 d8
    16381635    imul bx, bx, strict byte 00006h           ; 6b db 06
     
    16451642    db  0feh, 0c0h
    16461643    ; inc al                                    ; fe c0
    1647     jmp short 01b3bh                          ; eb d8
     1644    jmp short 01b35h                          ; eb d8
    16481645    xor al, al                                ; 30 c0
    1649     jmp short 01b6bh                          ; eb 04
     1646    jmp short 01b65h                          ; eb 04
    16501647    cmp AL, strict byte 008h                  ; 3c 08
    1651     jnc short 01bb6h                          ; 73 4b
     1648    jnc short 01bb0h                          ; 73 4b
    16521649    movzx bx, al                              ; 0f b6 d8
    16531650    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    16691666    db  0feh, 0c0h
    16701667    ; inc al                                    ; fe c0
    1671     jmp short 01b67h                          ; eb b1
     1668    jmp short 01b61h                          ; eb b1
    16721669    xor al, al                                ; 30 c0
    1673     jmp short 01bbeh                          ; eb 04
     1670    jmp short 01bb8h                          ; eb 04
    16741671    cmp AL, strict byte 010h                  ; 3c 10
    1675     jnc short 01bd5h                          ; 73 17
     1672    jnc short 01bcfh                          ; 73 17
    16761673    movzx bx, al                              ; 0f b6 d8
    16771674    mov es, dx                                ; 8e c2
     
    16811678    db  0feh, 0c0h
    16821679    ; inc al                                    ; fe c0
    1683     jmp short 01bbah                          ; eb e5
     1680    jmp short 01bb4h                          ; eb e5
    16841681    mov es, dx                                ; 8e c2
    16851682    mov byte [es:si+0019eh], 000h             ; 26 c6 84 9e 01 00
     
    16881685    pop si                                    ; 5e
    16891686    retn                                      ; c3
    1690 ata_reset_:                                  ; 0xf1be6 LB 0xda
     1687ata_reset_:                                  ; 0xf1be0 LB 0xda
    16911688    push bx                                   ; 53
    16921689    push cx                                   ; 51
     
    16981695    mov dx, strict word 0000eh                ; ba 0e 00
    16991696    mov ax, strict word 00040h                ; b8 40 00
    1700     call 0161ch                               ; e8 23 fa
     1697    call 0161ch                               ; e8 29 fa
    17011698    mov word [bp-004h], 00122h                ; c7 46 fc 22 01
    17021699    mov di, ax                                ; 89 c7
     
    17181715    dec bx                                    ; 4b
    17191716    test bx, bx                               ; 85 db
    1720     jbe short 01c3dh                          ; 76 0c
     1717    jbe short 01c37h                          ; 76 0c
    17211718    mov dx, cx                                ; 89 ca
    17221719    add dx, strict byte 00007h                ; 83 c2 07
     
    17251722    ; sub ah, ah                                ; 2a e4
    17261723    test AL, strict byte 080h                 ; a8 80
    1727     je short 01c2ch                           ; 74 ef
     1724    je short 01c26h                           ; 74 ef
    17281725    lea dx, [si+006h]                         ; 8d 54 06
    17291726    mov AL, strict byte 00ah                  ; b0 0a
     
    17331730    add bx, word [bp-004h]                    ; 03 5e fc
    17341731    cmp byte [es:bx+01eh], 000h               ; 26 80 7f 1e 00
    1735     je short 01c9fh                           ; 74 4c
     1732    je short 01c99h                           ; 74 4c
    17361733    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    1737     je short 01c5eh                           ; 74 05
     1734    je short 01c58h                           ; 74 05
    17381735    mov ax, 000b0h                            ; b8 b0 00
    1739     jmp short 01c61h                          ; eb 03
     1736    jmp short 01c5bh                          ; eb 03
    17401737    mov ax, 000a0h                            ; b8 a0 00
    17411738    mov dx, cx                                ; 89 ca
     
    17551752    ; sub ah, ah                                ; 2a e4
    17561753    cmp bl, 001h                              ; 80 fb 01
    1757     jne short 01c9fh                          ; 75 22
     1754    jne short 01c99h                          ; 75 22
    17581755    cmp al, bl                                ; 38 d8
    1759     jne short 01c9fh                          ; 75 1e
     1756    jne short 01c99h                          ; 75 1e
    17601757    mov bx, strict word 0ffffh                ; bb ff ff
    17611758    dec bx                                    ; 4b
    17621759    test bx, bx                               ; 85 db
    1763     jbe short 01c9fh                          ; 76 16
     1760    jbe short 01c99h                          ; 76 16
    17641761    mov dx, cx                                ; 89 ca
    17651762    add dx, strict byte 00007h                ; 83 c2 07
     
    17681765    ; sub ah, ah                                ; 2a e4
    17691766    test AL, strict byte 080h                 ; a8 80
    1770     je short 01c9fh                           ; 74 0a
     1767    je short 01c99h                           ; 74 0a
    17711768    mov ax, strict word 0ffffh                ; b8 ff ff
    17721769    dec ax                                    ; 48
    17731770    test ax, ax                               ; 85 c0
    1774     jnbe short 01c98h                         ; 77 fb
    1775     jmp short 01c84h                          ; eb e5
     1771    jnbe short 01c92h                         ; 77 fb
     1772    jmp short 01c7eh                          ; eb e5
    17761773    mov bx, strict word 00010h                ; bb 10 00
    17771774    dec bx                                    ; 4b
    17781775    test bx, bx                               ; 85 db
    1779     jbe short 01cb3h                          ; 76 0c
     1776    jbe short 01cadh                          ; 76 0c
    17801777    mov dx, cx                                ; 89 ca
    17811778    add dx, strict byte 00007h                ; 83 c2 07
     
    17841781    ; sub ah, ah                                ; 2a e4
    17851782    test AL, strict byte 040h                 ; a8 40
    1786     je short 01ca2h                           ; 74 ef
     1783    je short 01c9ch                           ; 74 ef
    17871784    lea dx, [si+006h]                         ; 8d 54 06
    17881785    mov AL, strict byte 008h                  ; b0 08
     
    17951792    pop bx                                    ; 5b
    17961793    retn                                      ; c3
    1797 ata_cmd_data_in_:                            ; 0xf1cc0 LB 0x253
     1794ata_cmd_data_in_:                            ; 0xf1cba LB 0x253
    17981795    push si                                   ; 56
    17991796    push di                                   ; 57
     
    18241821    mov word [bp-008h], ax                    ; 89 46 f8
    18251822    test ax, ax                               ; 85 c0
    1826     jne short 01d26h                          ; 75 14
     1823    jne short 01d20h                          ; 75 14
    18271824    cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1828     jne short 01d1fh                          ; 75 07
     1825    jne short 01d19h                          ; 75 07
    18291826    mov word [bp-008h], 04000h                ; c7 46 f8 00 40
    1830     jmp short 01d35h                          ; eb 16
     1827    jmp short 01d2fh                          ; eb 16
    18311828    mov word [bp-008h], 08000h                ; c7 46 f8 00 80
    1832     jmp short 01d35h                          ; eb 0f
     1829    jmp short 01d2fh                          ; eb 0f
    18331830    cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1834     jne short 01d32h                          ; 75 06
     1831    jne short 01d2ch                          ; 75 06
    18351832    shr word [bp-008h], 002h                  ; c1 6e f8 02
    1836     jmp short 01d35h                          ; eb 03
     1833    jmp short 01d2fh                          ; eb 03
    18371834    shr word [bp-008h], 1                     ; d1 6e f8
    18381835    lea dx, [bx+007h]                         ; 8d 57 07
     
    18411838    ; sub ah, ah                                ; 2a e4
    18421839    test AL, strict byte 080h                 ; a8 80
    1843     je short 01d4eh                           ; 74 0f
     1840    je short 01d48h                           ; 74 0f
    18441841    mov dx, word [bp-018h]                    ; 8b 56 e8
    18451842    add dx, strict byte 00006h                ; 83 c2 06
     
    18471844    out DX, AL                                ; ee
    18481845    mov dx, strict word 00001h                ; ba 01 00
    1849     jmp near 01f0dh                           ; e9 bf 01
     1846    jmp near 01f07h                           ; e9 bf 01
    18501847    mov es, [bp-006h]                         ; 8e 46 fa
    18511848    mov ax, word [es:si]                      ; 26 8b 04
     
    18641861    mov ax, word [bp-00ch]                    ; 8b 46 f4
    18651862    test ax, ax                               ; 85 c0
    1866     jne short 01dech                          ; 75 67
     1863    jne short 01de6h                          ; 75 67
    18671864    mov dx, word [bp-01ch]                    ; 8b 56 e4
    18681865    add dx, word [bp-010h]                    ; 03 56 f0
    18691866    adc ax, word [bp-01ah]                    ; 13 46 e6
    18701867    cmp ax, 01000h                            ; 3d 00 10
    1871     jnbe short 01d95h                         ; 77 02
    1872     jne short 01dc0h                          ; 75 2b
     1868    jnbe short 01d8fh                         ; 77 02
     1869    jne short 01dbah                          ; 75 2b
    18731870    mov ax, word [bp-01ah]                    ; 8b 46 e6
    18741871    xor al, al                                ; 30 c0
     
    18951892    shr word [bp-01ah], 1                     ; d1 6e e6
    18961893    rcr word [bp-01ch], 1                     ; d1 5e e4
    1897     loop 01dcbh                               ; e2 f8
     1894    loop 01dc5h                               ; e2 f8
    18981895    mov ax, word [bp-01ch]                    ; 8b 46 e4
    18991896    mov word [bp-00eh], ax                    ; 89 46 f2
     
    19241921    out DX, AL                                ; ee
    19251922    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    1926     je short 01e22h                           ; 74 05
     1923    je short 01e1ch                           ; 74 05
    19271924    mov ax, 000b0h                            ; b8 b0 00
    1928     jmp short 01e25h                          ; eb 03
     1925    jmp short 01e1fh                          ; eb 03
    19291926    mov ax, 000a0h                            ; b8 a0 00
    19301927    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     
    19371934    mov ax, word [bp-012h]                    ; 8b 46 ee
    19381935    cmp ax, 000c4h                            ; 3d c4 00
    1939     je short 01e43h                           ; 74 05
     1936    je short 01e3dh                           ; 74 05
    19401937    cmp ax, strict word 00029h                ; 3d 29 00
    1941     jne short 01e50h                          ; 75 0d
     1938    jne short 01e4ah                          ; 75 0d
    19421939    mov ax, word [bp-010h]                    ; 8b 46 f0
    19431940    mov word [bp-016h], ax                    ; 89 46 ea
    19441941    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    1945     jmp short 01e55h                          ; eb 05
     1942    jmp short 01e4fh                          ; eb 05
    19461943    mov word [bp-016h], strict word 00001h    ; c7 46 ea 01 00
    19471944    lea dx, [bx+007h]                         ; 8d 57 07
     
    19511948    mov dl, al                                ; 88 c2
    19521949    test AL, strict byte 080h                 ; a8 80
    1953     jne short 01e55h                          ; 75 f4
     1950    jne short 01e4fh                          ; 75 f4
    19541951    test AL, strict byte 001h                 ; a8 01
    1955     je short 01e74h                           ; 74 0f
     1952    je short 01e6eh                           ; 74 0f
    19561953    mov dx, word [bp-018h]                    ; 8b 56 e8
    19571954    add dx, strict byte 00006h                ; 83 c2 06
     
    19591956    out DX, AL                                ; ee
    19601957    mov dx, strict word 00002h                ; ba 02 00
    1961     jmp near 01f0dh                           ; e9 99 00
     1958    jmp near 01f07h                           ; e9 99 00
    19621959    test dl, 008h                             ; f6 c2 08
    1963     jne short 01e88h                          ; 75 0f
     1960    jne short 01e82h                          ; 75 0f
    19641961    mov dx, word [bp-018h]                    ; 8b 56 e8
    19651962    add dx, strict byte 00006h                ; 83 c2 06
     
    19671964    out DX, AL                                ; ee
    19681965    mov dx, strict word 00003h                ; ba 03 00
    1969     jmp near 01f0dh                           ; e9 85 00
     1966    jmp near 01f07h                           ; e9 85 00
    19701967    sti                                       ; fb
    19711968    cmp di, 0f800h                            ; 81 ff 00 f8
    1972     jc short 01e9ch                           ; 72 0d
     1969    jc short 01e96h                           ; 72 0d
    19731970    sub di, 00800h                            ; 81 ef 00 08
    19741971    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    19761973    mov word [bp-00ah], ax                    ; 89 46 f6
    19771974    cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1978     jne short 01eafh                          ; 75 0d
     1975    jne short 01ea9h                          ; 75 0d
    19791976    mov dx, bx                                ; 89 da
    19801977    mov cx, word [bp-008h]                    ; 8b 4e f8
     
    19821979    db  0f3h, 066h, 06dh
    19831980    ; rep insd                                  ; f3 66 6d
    1984     jmp short 01eb9h                          ; eb 0a
     1981    jmp short 01eb3h                          ; eb 0a
    19851982    mov dx, bx                                ; 89 da
    19861983    mov cx, word [bp-008h]                    ; 8b 4e f8
     
    19971994    mov dl, al                                ; 88 c2
    19981995    test AL, strict byte 080h                 ; a8 80
    1999     jne short 01ec6h                          ; 75 f4
     1996    jne short 01ec0h                          ; 75 f4
    20001997    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    2001     jne short 01eech                          ; 75 14
     1998    jne short 01ee6h                          ; 75 14
    20021999    and AL, strict byte 0c9h                  ; 24 c9
    20032000    cmp AL, strict byte 040h                  ; 3c 40
    2004     je short 01f02h                           ; 74 24
     2001    je short 01efch                           ; 74 24
    20052002    mov dx, word [bp-018h]                    ; 8b 56 e8
    20062003    add dx, strict byte 00006h                ; 83 c2 06
     
    20082005    out DX, AL                                ; ee
    20092006    mov dx, strict word 00004h                ; ba 04 00
    2010     jmp short 01f0dh                          ; eb 21
     2007    jmp short 01f07h                          ; eb 21
    20112008    mov al, dl                                ; 88 d0
    20122009    and AL, strict byte 0c9h                  ; 24 c9
    20132010    cmp AL, strict byte 048h                  ; 3c 48
    2014     je short 01e89h                           ; 74 95
     2011    je short 01e83h                           ; 74 95
    20152012    mov dx, word [bp-018h]                    ; 8b 56 e8
    20162013    add dx, strict byte 00006h                ; 83 c2 06
     
    20182015    out DX, AL                                ; ee
    20192016    mov dx, strict word 00005h                ; ba 05 00
    2020     jmp short 01f0dh                          ; eb 0b
     2017    jmp short 01f07h                          ; eb 0b
    20212018    mov dx, word [bp-018h]                    ; 8b 56 e8
    20222019    add dx, strict byte 00006h                ; 83 c2 06
     
    20292026    pop si                                    ; 5e
    20302027    retn                                      ; c3
    2031 _ata_detect:                                 ; 0xf1f13 LB 0x611
     2028_ata_detect:                                 ; 0xf1f0d LB 0x611
    20322029    push si                                   ; 56
    20332030    push di                                   ; 57
     
    20352032    mov dx, strict word 0000eh                ; ba 0e 00
    20362033    mov ax, strict word 00040h                ; b8 40 00
    2037     call 0161ch                               ; e8 fa f6
     2034    call 0161ch                               ; e8 00 f7
    20382035    mov word [bp-020h], ax                    ; 89 46 e0
    20392036    mov di, 00122h                            ; bf 22 01
     
    20532050    mov byte [bp-002h], al                    ; 88 46 fe
    20542051    mov byte [bp-00ah], al                    ; 88 46 f6
    2055     jmp near 024b2h                           ; e9 48 05
     2052    jmp near 024ach                           ; e9 48 05
    20562053    mov ax, 000a0h                            ; b8 a0 00
    20572054    lea dx, [si+006h]                         ; 8d 54 06
     
    20852082    ; sub ah, ah                                ; 2a e4
    20862083    cmp cl, 055h                              ; 80 f9 55
    2087     jne near 02064h                           ; 0f 85 c0 00
     2084    jne near 0205eh                           ; 0f 85 c0 00
    20882085    cmp AL, strict byte 0aah                  ; 3c aa
    2089     jne near 02064h                           ; 0f 85 ba 00
     2086    jne near 0205eh                           ; 0f 85 ba 00
    20902087    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    20912088    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    20942091    mov byte [es:bx+01eh], 001h               ; 26 c6 47 1e 01
    20952092    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    2096     call 01be6h                               ; e8 24 fc
     2093    call 01be0h                               ; e8 24 fc
    20972094    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2098     je short 01fcdh                           ; 74 05
     2095    je short 01fc7h                           ; 74 05
    20992096    mov ax, 000b0h                            ; b8 b0 00
    2100     jmp short 01fd0h                          ; eb 03
     2097    jmp short 01fcah                          ; eb 03
    21012098    mov ax, 000a0h                            ; b8 a0 00
    21022099    lea dx, [si+006h]                         ; 8d 54 06
     
    21122109    ; sub ah, ah                                ; 2a e4
    21132110    cmp bl, 001h                              ; 80 fb 01
    2114     jne near 02064h                           ; 0f 85 7b 00
     2111    jne near 0205eh                           ; 0f 85 7b 00
    21152112    cmp al, bl                                ; 38 d8
    2116     jne near 02064h                           ; 0f 85 75 00
     2113    jne near 0205eh                           ; 0f 85 75 00
    21172114    lea dx, [si+004h]                         ; 8d 54 04
    21182115    in AL, DX                                 ; ec
     
    21322129    ; sub ah, ah                                ; 2a e4
    21332130    cmp bl, 014h                              ; 80 fb 14
    2134     jne short 02027h                          ; 75 18
     2131    jne short 02021h                          ; 75 18
    21352132    cmp cl, 0ebh                              ; 80 f9 eb
    2136     jne short 02027h                          ; 75 13
     2133    jne short 02021h                          ; 75 13
    21372134    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    21382135    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    21402137    add bx, ax                                ; 01 c3
    21412138    mov byte [es:bx+01eh], 003h               ; 26 c6 47 1e 03
    2142     jmp short 02064h                          ; eb 3d
     2139    jmp short 0205eh                          ; eb 3d
    21432140    test bh, bh                               ; 84 ff
    2144     jne short 02049h                          ; 75 1e
     2141    jne short 02043h                          ; 75 1e
    21452142    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2146     jne short 02049h                          ; 75 18
     2143    jne short 02043h                          ; 75 18
    21472144    test al, al                               ; 84 c0
    2148     je short 02049h                           ; 74 14
     2145    je short 02043h                           ; 74 14
    21492146    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    21502147    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    21522149    add bx, word [bp-024h]                    ; 03 5e dc
    21532150    mov byte [es:bx+01eh], 002h               ; 26 c6 47 1e 02
    2154     jmp short 02064h                          ; eb 1b
     2151    jmp short 0205eh                          ; eb 1b
    21552152    cmp bh, 0ffh                              ; 80 ff ff
    2156     jne short 02064h                          ; 75 16
     2153    jne short 0205eh                          ; 75 16
    21572154    cmp bh, byte [bp-008h]                    ; 3a 7e f8
    2158     jne short 02064h                          ; 75 11
     2155    jne short 0205eh                          ; 75 11
    21592156    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    21602157    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    21732170    mov byte [bp-00ch], al                    ; 88 46 f4
    21742171    cmp AL, strict byte 002h                  ; 3c 02
    2175     jne near 0228ah                           ; 0f 85 03 02
     2172    jne near 02284h                           ; 0f 85 03 02
    21762173    mov byte [es:si+01fh], 0ffh               ; 26 c6 44 1f ff
    21772174    mov byte [es:si+022h], 000h               ; 26 c6 44 22 00
     
    21862183    mov ax, word [bp-024h]                    ; 8b 46 dc
    21872184    mov dx, es                                ; 8c c2
    2188     call 01cc0h                               ; e8 0b fc
     2185    call 01cbah                               ; e8 0b fc
    21892186    test ax, ax                               ; 85 c0
    2190     je short 020c4h                           ; 74 0b
     2187    je short 020beh                           ; 74 0b
    21912188    push 00094h                               ; 68 94 00
    21922189    push strict byte 00007h                   ; 6a 07
    2193     call 018e9h                               ; e8 28 f8
     2190    call 018e9h                               ; e8 2e f8
    21942191    add sp, strict byte 00004h                ; 83 c4 04
    21952192    test byte [bp-0025ch], 080h               ; f6 86 a4 fd 80
     
    22142211    mov si, word [bp-001e2h]                  ; 8b b6 1e fe
    22152212    cmp si, 00fffh                            ; 81 fe ff 0f
    2216     jne short 02119h                          ; 75 10
     2213    jne short 02113h                          ; 75 10
    22172214    cmp ax, strict word 0ffffh                ; 3d ff ff
    2218     jne short 02119h                          ; 75 0b
     2215    jne short 02113h                          ; 75 0b
    22192216    mov ax, word [bp-00194h]                  ; 8b 86 6c fe
    22202217    mov word [bp-01ch], ax                    ; 89 46 e4
     
    22222219    mov al, byte [bp-00ah]                    ; 8a 46 f6
    22232220    cmp AL, strict byte 001h                  ; 3c 01
    2224     jc short 0212ch                           ; 72 0c
    2225     jbe short 02134h                          ; 76 12
     2221    jc short 02126h                           ; 72 0c
     2222    jbe short 0212eh                          ; 76 12
    22262223    cmp AL, strict byte 003h                  ; 3c 03
    2227     je short 0213ch                           ; 74 16
     2224    je short 02136h                           ; 74 16
    22282225    cmp AL, strict byte 002h                  ; 3c 02
    2229     je short 02138h                           ; 74 0e
    2230     jmp short 02179h                          ; eb 4d
     2226    je short 02132h                           ; 74 0e
     2227    jmp short 02173h                          ; eb 4d
    22312228    test al, al                               ; 84 c0
    2232     jne short 02179h                          ; 75 49
     2229    jne short 02173h                          ; 75 49
    22332230    mov BL, strict byte 01eh                  ; b3 1e
    2234     jmp short 0213eh                          ; eb 0a
     2231    jmp short 02138h                          ; eb 0a
    22352232    mov BL, strict byte 026h                  ; b3 26
    2236     jmp short 0213eh                          ; eb 06
     2233    jmp short 02138h                          ; eb 06
    22372234    mov BL, strict byte 067h                  ; b3 67
    2238     jmp short 0213eh                          ; eb 02
     2235    jmp short 02138h                          ; eb 02
    22392236    mov BL, strict byte 070h                  ; b3 70
    22402237    mov al, bl                                ; 88 d8
     
    22422239    ; inc al                                    ; fe c0
    22432240    xor ah, ah                                ; 30 e4
    2244     call 0165ch                               ; e8 15 f5
     2241    call 0165ch                               ; e8 1b f5
    22452242    xor ah, ah                                ; 30 e4
    22462243    mov dx, ax                                ; 89 c2
    22472244    sal dx, 008h                              ; c1 e2 08
    22482245    movzx ax, bl                              ; 0f b6 c3
    2249     call 0165ch                               ; e8 08 f5
     2246    call 0165ch                               ; e8 0e f5
    22502247    xor ah, ah                                ; 30 e4
    22512248    add ax, dx                                ; 01 d0
     
    22542251    add AL, strict byte 002h                  ; 04 02
    22552252    xor ah, ah                                ; 30 e4
    2256     call 0165ch                               ; e8 f8 f4
     2253    call 0165ch                               ; e8 fe f4
    22572254    xor ah, ah                                ; 30 e4
    22582255    mov word [bp-032h], ax                    ; 89 46 ce
     
    22602257    add AL, strict byte 007h                  ; 04 07
    22612258    xor ah, ah                                ; 30 e4
    2262     call 0165ch                               ; e8 ea f4
     2259    call 0165ch                               ; e8 f0 f4
    22632260    xor ah, ah                                ; 30 e4
    22642261    mov word [bp-02eh], ax                    ; 89 46 d2
    2265     jmp short 02186h                          ; eb 0d
     2262    jmp short 02180h                          ; eb 0d
    22662263    mov bx, word [bp-01ch]                    ; 8b 5e e4
    22672264    mov cx, si                                ; 89 f1
    22682265    mov dx, ss                                ; 8c d2
    22692266    lea ax, [bp-032h]                         ; 8d 46 ce
    2270     call 052a4h                               ; e8 1e 31
     2267    call 0529eh                               ; e8 1e 31
    22712268    mov bx, 00d32h                            ; bb 32 0d
    22722269    mov cx, ds                                ; 8c d9
    22732270    mov ax, strict word 00004h                ; b8 04 00
    2274     call 018aeh                               ; e8 1d f7
     2271    call 018aeh                               ; e8 23 f7
    22752272    mov ax, word [bp-02eh]                    ; 8b 46 d2
    22762273    push ax                                   ; 50
     
    22882285    push 000bdh                               ; 68 bd 00
    22892286    push strict byte 00004h                   ; 6a 04
    2290     call 018e9h                               ; e8 31 f7
     2287    call 018e9h                               ; e8 37 f7
    22912288    add sp, strict byte 00014h                ; 83 c4 14
    22922289    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     
    23212318    mov al, byte [bp-00ah]                    ; 8a 46 f6
    23222319    cmp AL, strict byte 002h                  ; 3c 02
    2323     jnc short 02275h                          ; 73 60
     2320    jnc short 0226fh                          ; 73 60
    23242321    test al, al                               ; 84 c0
    2325     jne short 0221eh                          ; 75 05
     2322    jne short 02218h                          ; 75 05
    23262323    mov di, strict word 0003dh                ; bf 3d 00
    2327     jmp short 02221h                          ; eb 03
     2324    jmp short 0221bh                          ; eb 03
    23282325    mov di, strict word 0004dh                ; bf 4d 00
    23292326    mov dx, word [bp-020h]                    ; 8b 56 e0
     
    23442341    xor al, al                                ; 30 c0
    23452342    xor ah, ah                                ; 30 e4
    2346     jmp short 0225fh                          ; eb 05
     2343    jmp short 02259h                          ; eb 05
    23472344    cmp ah, 00fh                              ; 80 fc 0f
    2348     jnc short 0226dh                          ; 73 0e
     2345    jnc short 02267h                          ; 73 0e
    23492346    movzx bx, ah                              ; 0f b6 dc
    23502347    mov es, dx                                ; 8e c2
     
    23532350    db  0feh, 0c4h
    23542351    ; inc ah                                    ; fe c4
    2355     jmp short 0225ah                          ; eb ed
     2352    jmp short 02254h                          ; eb ed
    23562353    neg al                                    ; f6 d8
    23572354    mov es, dx                                ; 8e c2
     
    23642361    inc byte [bp-002h]                        ; fe 46 fe
    23652362    cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
    2366     jne near 0232ah                           ; 0f 85 98 00
     2363    jne near 02324h                           ; 0f 85 98 00
    23672364    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    23682365    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    23812378    mov ax, word [bp-024h]                    ; 8b 46 dc
    23822379    mov dx, es                                ; 8c c2
    2383     call 01cc0h                               ; e8 f4 f9
     2380    call 01cbah                               ; e8 f4 f9
    23842381    test ax, ax                               ; 85 c0
    2385     je short 022dbh                           ; 74 0b
     2382    je short 022d5h                           ; 74 0b
    23862383    push 000e4h                               ; 68 e4 00
    23872384    push strict byte 00007h                   ; 6a 07
    2388     call 018e9h                               ; e8 11 f6
     2385    call 018e9h                               ; e8 17 f6
    23892386    add sp, strict byte 00004h                ; 83 c4 04
    23902387    mov cl, byte [bp-0025bh]                  ; 8a 8e a5 fd
     
    24152412    mov al, byte [bp-00ch]                    ; 8a 46 f4
    24162413    cmp AL, strict byte 003h                  ; 3c 03
    2417     je short 0235dh                           ; 74 2c
     2414    je short 02357h                           ; 74 2c
    24182415    cmp AL, strict byte 002h                  ; 3c 02
    2419     jne near 023c0h                           ; 0f 85 89 00
     2416    jne near 023bah                           ; 0f 85 89 00
    24202417    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    24212418    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    24292426    shr word [bp-02ah], 1                     ; d1 6e d6
    24302427    rcr word [bp-02ch], 1                     ; d1 5e d4
    2431     loop 02355h                               ; e2 f8
     2428    loop 0234fh                               ; e2 f8
    24322429    movzx dx, byte [bp-001bbh]                ; 0f b6 96 45 fe
    24332430    sal dx, 008h                              ; c1 e2 08
     
    24352432    or dx, ax                                 ; 09 c2
    24362433    mov byte [bp-00eh], 00fh                  ; c6 46 f2 0f
    2437     jmp short 0237bh                          ; eb 09
     2434    jmp short 02375h                          ; eb 09
    24382435    dec byte [bp-00eh]                        ; fe 4e f2
    24392436    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2440     jbe short 02388h                          ; 76 0d
     2437    jbe short 02382h                          ; 76 0d
    24412438    movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
    24422439    mov ax, strict word 00001h                ; b8 01 00
    24432440    sal ax, CL                                ; d3 e0
    24442441    test dx, ax                               ; 85 c2
    2445     je short 02372h                           ; 74 ea
     2442    je short 0236ch                           ; 74 ea
    24462443    xor di, di                                ; 31 ff
    2447     jmp short 02391h                          ; eb 05
     2444    jmp short 0238bh                          ; eb 05
    24482445    cmp di, strict byte 00014h                ; 83 ff 14
    2449     jnl short 023a6h                          ; 7d 15
     2446    jnl short 023a0h                          ; 7d 15
    24502447    mov si, di                                ; 89 fe
    24512448    add si, di                                ; 01 fe
     
    24552452    mov byte [bp+si-05bh], al                 ; 88 42 a5
    24562453    inc di                                    ; 47
    2457     jmp short 0238ch                          ; eb e6
     2454    jmp short 02386h                          ; eb e6
    24582455    mov byte [bp-034h], 000h                  ; c6 46 cc 00
    24592456    mov di, strict word 00027h                ; bf 27 00
    2460     jmp short 023b4h                          ; eb 05
     2457    jmp short 023aeh                          ; eb 05
    24612458    dec di                                    ; 4f
    24622459    test di, di                               ; 85 ff
    2463     jle short 023c0h                          ; 7e 0c
     2460    jle short 023bah                          ; 7e 0c
    24642461    cmp byte [bp+di-05ch], 020h               ; 80 7b a4 20
    2465     jne short 023c0h                          ; 75 06
     2462    jne short 023bah                          ; 75 06
    24662463    mov byte [bp+di-05ch], 000h               ; c6 43 a4 00
    2467     jmp short 023afh                          ; eb ef
     2464    jmp short 023a9h                          ; eb ef
    24682465    mov al, byte [bp-00ch]                    ; 8a 46 f4
    24692466    cmp AL, strict byte 003h                  ; 3c 03
    2470     je short 02423h                           ; 74 5c
     2467    je short 0241dh                           ; 74 5c
    24712468    cmp AL, strict byte 002h                  ; 3c 02
    2472     je short 023d4h                           ; 74 09
     2469    je short 023ceh                           ; 74 09
    24732470    cmp AL, strict byte 001h                  ; 3c 01
    2474     je near 0248ah                            ; 0f 84 b9 00
    2475     jmp near 024a9h                           ; e9 d5 00
     2471    je near 02484h                            ; 0f 84 b9 00
     2472    jmp near 024a3h                           ; e9 d5 00
    24762473    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2477     je short 023dfh                           ; 74 05
     2474    je short 023d9h                           ; 74 05
    24782475    mov ax, 0010fh                            ; b8 0f 01
    2479     jmp short 023e2h                          ; eb 03
     2476    jmp short 023dch                          ; eb 03
    24802477    mov ax, 00116h                            ; b8 16 01
    24812478    push ax                                   ; 50
     
    24842481    push 0011dh                               ; 68 1d 01
    24852482    push strict byte 00002h                   ; 6a 02
    2486     call 018e9h                               ; e8 f9 f4
     2483    call 018e9h                               ; e8 ff f4
    24872484    add sp, strict byte 00008h                ; 83 c4 08
    24882485    xor di, di                                ; 31 ff
     
    24902487    inc di                                    ; 47
    24912488    test ax, ax                               ; 85 c0
    2492     je short 0240ch                           ; 74 0e
     2489    je short 02406h                           ; 74 0e
    24932490    push ax                                   ; 50
    24942491    push 00128h                               ; 68 28 01
    24952492    push strict byte 00002h                   ; 6a 02
    2496     call 018e9h                               ; e8 e2 f4
     2493    call 018e9h                               ; e8 e8 f4
    24972494    add sp, strict byte 00006h                ; 83 c4 06
    2498     jmp short 023f5h                          ; eb e9
     2495    jmp short 023efh                          ; eb e9
    24992496    push dword [bp-02ch]                      ; 66 ff 76 d4
    25002497    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     
    25022499    push 0012bh                               ; 68 2b 01
    25032500    push strict byte 00002h                   ; 6a 02
    2504     call 018e9h                               ; e8 cc f4
     2501    call 018e9h                               ; e8 d2 f4
    25052502    add sp, strict byte 0000ah                ; 83 c4 0a
    2506     jmp near 024a9h                           ; e9 86 00
     2503    jmp near 024a3h                           ; e9 86 00
    25072504    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2508     je short 0242eh                           ; 74 05
     2505    je short 02428h                           ; 74 05
    25092506    mov ax, 0010fh                            ; b8 0f 01
    2510     jmp short 02431h                          ; eb 03
     2507    jmp short 0242bh                          ; eb 03
    25112508    mov ax, 00116h                            ; b8 16 01
    25122509    push ax                                   ; 50
     
    25152512    push 0011dh                               ; 68 1d 01
    25162513    push strict byte 00002h                   ; 6a 02
    2517     call 018e9h                               ; e8 aa f4
     2514    call 018e9h                               ; e8 b0 f4
    25182515    add sp, strict byte 00008h                ; 83 c4 08
    25192516    xor di, di                                ; 31 ff
     
    25212518    inc di                                    ; 47
    25222519    test ax, ax                               ; 85 c0
    2523     je short 0245bh                           ; 74 0e
     2520    je short 02455h                           ; 74 0e
    25242521    push ax                                   ; 50
    25252522    push 00128h                               ; 68 28 01
    25262523    push strict byte 00002h                   ; 6a 02
    2527     call 018e9h                               ; e8 93 f4
     2524    call 018e9h                               ; e8 99 f4
    25282525    add sp, strict byte 00006h                ; 83 c4 06
    2529     jmp short 02444h                          ; eb e9
     2526    jmp short 0243eh                          ; eb e9
    25302527    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    25312528    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    25332530    add bx, ax                                ; 01 c3
    25342531    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    2535     jne short 02478h                          ; 75 0a
     2532    jne short 02472h                          ; 75 0a
    25362533    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    25372534    push ax                                   ; 50
    25382535    push 0014bh                               ; 68 4b 01
    2539     jmp short 02480h                          ; eb 08
     2536    jmp short 0247ah                          ; eb 08
    25402537    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    25412538    push ax                                   ; 50
    25422539    push 00165h                               ; 68 65 01
    25432540    push strict byte 00002h                   ; 6a 02
    2544     call 018e9h                               ; e8 64 f4
     2541    call 018e9h                               ; e8 6a f4
    25452542    add sp, strict byte 00006h                ; 83 c4 06
    2546     jmp short 024a9h                          ; eb 1f
     2543    jmp short 024a3h                          ; eb 1f
    25472544    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2548     je short 02495h                           ; 74 05
     2545    je short 0248fh                           ; 74 05
    25492546    mov ax, 0010fh                            ; b8 0f 01
    2550     jmp short 02498h                          ; eb 03
     2547    jmp short 02492h                          ; eb 03
    25512548    mov ax, 00116h                            ; b8 16 01
    25522549    push ax                                   ; 50
     
    25552552    push 00177h                               ; 68 77 01
    25562553    push strict byte 00002h                   ; 6a 02
    2557     call 018e9h                               ; e8 43 f4
     2554    call 018e9h                               ; e8 49 f4
    25582555    add sp, strict byte 00008h                ; 83 c4 08
    25592556    inc byte [bp-00ah]                        ; fe 46 f6
    25602557    cmp byte [bp-00ah], 008h                  ; 80 7e f6 08
    2561     jnc short 02500h                          ; 73 4e
     2558    jnc short 024fah                          ; 73 4e
    25622559    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    25632560    mov ax, bx                                ; 89 d8
     
    25872584    out DX, AL                                ; ee
    25882585    test cl, cl                               ; 84 c9
    2589     je near 01f6ah                            ; 0f 84 70 fa
     2586    je near 01f64h                            ; 0f 84 70 fa
    25902587    mov ax, 000b0h                            ; b8 b0 00
    2591     jmp near 01f6dh                           ; e9 6d fa
     2588    jmp near 01f67h                           ; e9 6d fa
    25922589    mov al, byte [bp-002h]                    ; 8a 46 fe
    25932590    les bx, [bp-024h]                         ; c4 5e dc
     
    25982595    mov dx, strict word 00075h                ; ba 75 00
    25992596    mov ax, strict word 00040h                ; b8 40 00
    2600     call 0160eh                               ; e8 ee f0
     2597    call 0160eh                               ; e8 f4 f0
    26012598    leave                                     ; c9
    26022599    pop di                                    ; 5f
    26032600    pop si                                    ; 5e
    26042601    retn                                      ; c3
    2605 ata_cmd_data_out_:                           ; 0xf2524 LB 0x215
     2602ata_cmd_data_out_:                           ; 0xf251e LB 0x215
    26062603    push si                                   ; 56
    26072604    push di                                   ; 57
     
    26302627    mov byte [bp-004h], al                    ; 88 46 fc
    26312628    cmp AL, strict byte 001h                  ; 3c 01
    2632     jne short 02576h                          ; 75 07
     2629    jne short 02570h                          ; 75 07
    26332630    mov word [bp-00eh], 00080h                ; c7 46 f2 80 00
    2634     jmp short 0257bh                          ; eb 05
     2631    jmp short 02575h                          ; eb 05
    26352632    mov word [bp-00eh], 00100h                ; c7 46 f2 00 01
    26362633    lea dx, [bx+007h]                         ; 8d 57 07
     
    26392636    ; sub ah, ah                                ; 2a e4
    26402637    test AL, strict byte 080h                 ; a8 80
    2641     je short 02594h                           ; 74 0f
     2638    je short 0258eh                           ; 74 0f
    26422639    mov dx, word [bp-008h]                    ; 8b 56 f8
    26432640    add dx, strict byte 00006h                ; 83 c2 06
     
    26452642    out DX, AL                                ; ee
    26462643    mov dx, strict word 00001h                ; ba 01 00
    2647     jmp near 02733h                           ; e9 9f 01
     2644    jmp near 0272dh                           ; e9 9f 01
    26482645    mov es, [bp-006h]                         ; 8e 46 fa
    26492646    mov ax, word [es:di]                      ; 26 8b 05
     
    26622659    mov ax, word [bp-00ch]                    ; 8b 46 f4
    26632660    test ax, ax                               ; 85 c0
    2664     jne short 02632h                          ; 75 67
     2661    jne short 0262ch                          ; 75 67
    26652662    mov dx, word [bp-01ah]                    ; 8b 56 e6
    26662663    add dx, word [bp-00ah]                    ; 03 56 f6
    26672664    adc ax, word [bp-018h]                    ; 13 46 e8
    26682665    cmp ax, 01000h                            ; 3d 00 10
    2669     jnbe short 025dbh                         ; 77 02
    2670     jne short 02606h                          ; 75 2b
     2666    jnbe short 025d5h                         ; 77 02
     2667    jne short 02600h                          ; 75 2b
    26712668    mov ax, word [bp-018h]                    ; 8b 46 e8
    26722669    xor al, al                                ; 30 c0
     
    26932690    shr word [bp-018h], 1                     ; d1 6e e8
    26942691    rcr word [bp-01ah], 1                     ; d1 5e e6
    2695     loop 02611h                               ; e2 f8
     2692    loop 0260bh                               ; e2 f8
    26962693    mov ax, word [bp-01ah]                    ; 8b 46 e6
    26972694    mov word [bp-012h], ax                    ; 89 46 ee
     
    27222719    out DX, AL                                ; ee
    27232720    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    2724     je short 02668h                           ; 74 05
     2721    je short 02662h                           ; 74 05
    27252722    mov ax, 000b0h                            ; b8 b0 00
    2726     jmp short 0266bh                          ; eb 03
     2723    jmp short 02665h                          ; eb 03
    27272724    mov ax, 000a0h                            ; b8 a0 00
    27282725    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
     
    27392736    mov dl, al                                ; 88 c2
    27402737    test AL, strict byte 080h                 ; a8 80
    2741     jne short 0267ch                          ; 75 f4
     2738    jne short 02676h                          ; 75 f4
    27422739    test AL, strict byte 001h                 ; a8 01
    2743     je short 0269bh                           ; 74 0f
     2740    je short 02695h                           ; 74 0f
    27442741    mov dx, word [bp-008h]                    ; 8b 56 f8
    27452742    add dx, strict byte 00006h                ; 83 c2 06
     
    27472744    out DX, AL                                ; ee
    27482745    mov dx, strict word 00002h                ; ba 02 00
    2749     jmp near 02733h                           ; e9 98 00
     2746    jmp near 0272dh                           ; e9 98 00
    27502747    test dl, 008h                             ; f6 c2 08
    2751     jne short 026afh                          ; 75 0f
     2748    jne short 026a9h                          ; 75 0f
    27522749    mov dx, word [bp-008h]                    ; 8b 56 f8
    27532750    add dx, strict byte 00006h                ; 83 c2 06
     
    27552752    out DX, AL                                ; ee
    27562753    mov dx, strict word 00003h                ; ba 03 00
    2757     jmp near 02733h                           ; e9 84 00
     2754    jmp near 0272dh                           ; e9 84 00
    27582755    sti                                       ; fb
    27592756    cmp si, 0f800h                            ; 81 fe 00 f8
    2760     jc short 026c3h                           ; 72 0d
     2757    jc short 026bdh                           ; 72 0d
    27612758    sub si, 00800h                            ; 81 ee 00 08
    27622759    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    27642761    mov word [bp-014h], ax                    ; 89 46 ec
    27652762    cmp byte [bp-004h], 001h                  ; 80 7e fc 01
    2766     jne short 026d7h                          ; 75 0e
     2763    jne short 026d1h                          ; 75 0e
    27672764    mov dx, bx                                ; 89 da
    27682765    mov cx, word [bp-00eh]                    ; 8b 4e f2
     
    27702767    db  0f3h, 066h, 026h, 06fh
    27712768    ; rep es outsd                              ; f3 66 26 6f
    2772     jmp short 026e2h                          ; eb 0b
     2769    jmp short 026dch                          ; eb 0b
    27732770    mov dx, bx                                ; 89 da
    27742771    mov cx, word [bp-00eh]                    ; 8b 4e f2
     
    27852782    mov dl, al                                ; 88 c2
    27862783    test AL, strict byte 080h                 ; a8 80
    2787     jne short 026ech                          ; 75 f4
     2784    jne short 026e6h                          ; 75 f4
    27882785    cmp word [bp-00ah], strict byte 00000h    ; 83 7e f6 00
    2789     jne short 02712h                          ; 75 14
     2786    jne short 0270ch                          ; 75 14
    27902787    and AL, strict byte 0e9h                  ; 24 e9
    27912788    cmp AL, strict byte 040h                  ; 3c 40
    2792     je short 02728h                           ; 74 24
     2789    je short 02722h                           ; 74 24
    27932790    mov dx, word [bp-008h]                    ; 8b 56 f8
    27942791    add dx, strict byte 00006h                ; 83 c2 06
     
    27962793    out DX, AL                                ; ee
    27972794    mov dx, strict word 00006h                ; ba 06 00
    2798     jmp short 02733h                          ; eb 21
     2795    jmp short 0272dh                          ; eb 21
    27992796    mov al, dl                                ; 88 d0
    28002797    and AL, strict byte 0c9h                  ; 24 c9
    28012798    cmp AL, strict byte 048h                  ; 3c 48
    2802     je short 026b0h                           ; 74 96
     2799    je short 026aah                           ; 74 96
    28032800    mov dx, word [bp-008h]                    ; 8b 56 f8
    28042801    add dx, strict byte 00006h                ; 83 c2 06
     
    28062803    out DX, AL                                ; ee
    28072804    mov dx, strict word 00007h                ; ba 07 00
    2808     jmp short 02733h                          ; eb 0b
     2805    jmp short 0272dh                          ; eb 0b
    28092806    mov dx, word [bp-008h]                    ; 8b 56 f8
    28102807    add dx, strict byte 00006h                ; 83 c2 06
     
    28172814    pop si                                    ; 5e
    28182815    retn                                      ; c3
    2819 @ata_read_sectors:                           ; 0xf2739 LB 0x77
     2816@ata_read_sectors:                           ; 0xf2733 LB 0x77
    28202817    push si                                   ; 56
    28212818    push di                                   ; 57
     
    28292826    mov ax, word [es:si+012h]                 ; 26 8b 44 12
    28302827    test ax, ax                               ; 85 c0
    2831     je short 02767h                           ; 74 0d
     2828    je short 02761h                           ; 74 0d
    28322829    movzx di, bl                              ; 0f b6 fb
    28332830    imul di, di, strict byte 00018h           ; 6b ff 18
    28342831    mov [bp-002h], es                         ; 8c 46 fe
    28352832    add di, si                                ; 01 f7
    2836     jmp short 02793h                          ; eb 2c
     2833    jmp short 0278dh                          ; eb 2c
    28372834    mov di, word [es:si]                      ; 26 8b 3c
    28382835    add di, cx                                ; 01 cf
     
    28402837    adc ax, word [es:si+002h]                 ; 26 13 44 02
    28412838    cmp ax, 01000h                            ; 3d 00 10
    2842     jnbe short 0277ah                         ; 77 02
    2843     jne short 02786h                          ; 75 0c
     2839    jnbe short 02774h                         ; 77 02
     2840    jne short 02780h                          ; 75 0c
    28442841    mov bx, strict word 00024h                ; bb 24 00
    28452842    mov ax, si                                ; 89 f0
    28462843    mov dx, es                                ; 8c c2
    2847     call 01cc0h                               ; e8 3c f5
    2848     jmp short 027aah                          ; eb 24
     2844    call 01cbah                               ; e8 3c f5
     2845    jmp short 027a4h                          ; eb 24
    28492846    movzx ax, bl                              ; 0f b6 c3
    28502847    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    28562853    mov ax, si                                ; 89 f0
    28572854    mov dx, es                                ; 8c c2
    2858     call 01cc0h                               ; e8 1f f5
     2855    call 01cbah                               ; e8 1f f5
    28592856    mov es, [bp-002h]                         ; 8e 46 fe
    28602857    mov word [es:di+024h], 00200h             ; 26 c7 45 24 00 02
     
    28632860    pop si                                    ; 5e
    28642861    retn 00004h                               ; c2 04 00
    2865 @ata_write_sectors:                          ; 0xf27b0 LB 0x3a
     2862@ata_write_sectors:                          ; 0xf27aa LB 0x3a
    28662863    push si                                   ; 56
    28672864    push bp                                   ; 55
     
    28702867    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
    28712868    cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00
    2872     je short 027ceh                           ; 74 0c
     2869    je short 027c8h                           ; 74 0c
    28732870    mov bx, strict word 00030h                ; bb 30 00
    28742871    mov ax, si                                ; 89 f0
    28752872    mov dx, es                                ; 8c c2
    2876     call 02524h                               ; e8 58 fd
    2877     jmp short 027e5h                          ; eb 17
     2873    call 0251eh                               ; e8 58 fd
     2874    jmp short 027dfh                          ; eb 17
    28782875    xor ax, ax                                ; 31 c0
    28792876    mov dx, word [es:si]                      ; 26 8b 14
     
    28812878    adc ax, word [es:si+002h]                 ; 26 13 44 02
    28822879    cmp ax, 01000h                            ; 3d 00 10
    2883     jnbe short 027e0h                         ; 77 02
    2884     jne short 027c2h                          ; 75 e2
     2880    jnbe short 027dah                         ; 77 02
     2881    jne short 027bch                          ; 75 e2
    28852882    mov bx, strict word 00034h                ; bb 34 00
    2886     jmp short 027c5h                          ; eb e0
     2883    jmp short 027bfh                          ; eb e0
    28872884    pop bp                                    ; 5d
    28882885    pop si                                    ; 5e
    28892886    retn 00004h                               ; c2 04 00
    2890 ata_cmd_packet_:                             ; 0xf27ea LB 0x2e3
     2887ata_cmd_packet_:                             ; 0xf27e4 LB 0x2e3
    28912888    push si                                   ; 56
    28922889    push di                                   ; 57
     
    28972894    mov dx, strict word 0000eh                ; ba 0e 00
    28982895    mov ax, strict word 00040h                ; b8 40 00
    2899     call 0161ch                               ; e8 1d ee
     2896    call 0161ch                               ; e8 23 ee
    29002897    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    29012898    mov word [bp-00ah], ax                    ; 89 46 f6
     
    29062903    mov byte [bp-002h], ah                    ; 88 66 fe
    29072904    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    2908     jne short 0283ah                          ; 75 1f
     2905    jne short 02834h                          ; 75 1f
    29092906    mov bx, 00d32h                            ; bb 32 0d
    29102907    mov cx, ds                                ; 8c d9
    29112908    mov ax, strict word 00004h                ; b8 04 00
    2912     call 018aeh                               ; e8 88 f0
     2909    call 018aeh                               ; e8 8e f0
    29132910    push 00191h                               ; 68 91 01
    29142911    push 001a0h                               ; 68 a0 01
    29152912    push strict byte 00004h                   ; 6a 04
    2916     call 018e9h                               ; e8 b8 f0
     2913    call 018e9h                               ; e8 be f0
    29172914    add sp, strict byte 00006h                ; 83 c4 06
    29182915    mov dx, strict word 00001h                ; ba 01 00
    2919     jmp near 02ac5h                           ; e9 8b 02
     2916    jmp near 02abfh                           ; e9 8b 02
    29202917    test byte [bp+008h], 001h                 ; f6 46 08 01
    2921     jne short 02834h                          ; 75 f4
     2918    jne short 0282eh                          ; 75 f4
    29222919    xor ah, ah                                ; 30 e4
    29232920    imul ax, ax, strict byte 00006h           ; 6b c0 06
     
    29372934    mov al, byte [bp-004h]                    ; 8a 46 fc
    29382935    cmp AL, strict byte 00ch                  ; 3c 0c
    2939     jnc short 0287dh                          ; 73 06
     2936    jnc short 02877h                          ; 73 06
    29402937    mov byte [bp-004h], 00ch                  ; c6 46 fc 0c
    2941     jmp short 02883h                          ; eb 06
    2942     jbe short 02883h                          ; 76 04
     2938    jmp short 0287dh                          ; eb 06
     2939    jbe short 0287dh                          ; 76 04
    29432940    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    29442941    shr byte [bp-004h], 1                     ; d0 6e fc
     
    29532950    ; sub ah, ah                                ; 2a e4
    29542951    test AL, strict byte 080h                 ; a8 80
    2955     je short 028abh                           ; 74 06
     2952    je short 028a5h                           ; 74 06
    29562953    mov dx, strict word 00002h                ; ba 02 00
    2957     jmp near 02ac5h                           ; e9 1a 02
     2954    jmp near 02abfh                           ; e9 1a 02
    29582955    mov dx, word [bp-00ch]                    ; 8b 56 f4
    29592956    add dx, strict byte 00006h                ; 83 c2 06
     
    29672964    out DX, AL                                ; ee
    29682965    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    2969     je short 028cbh                           ; 74 05
     2966    je short 028c5h                           ; 74 05
    29702967    mov ax, 000b0h                            ; b8 b0 00
    2971     jmp short 028ceh                          ; eb 03
     2968    jmp short 028c8h                          ; eb 03
    29722969    mov ax, 000a0h                            ; b8 a0 00
    29732970    lea dx, [bx+006h]                         ; 8d 57 06
     
    29822979    mov dl, al                                ; 88 c2
    29832980    test AL, strict byte 080h                 ; a8 80
    2984     jne short 028d8h                          ; 75 f4
     2981    jne short 028d2h                          ; 75 f4
    29852982    test AL, strict byte 001h                 ; a8 01
    2986     je short 028f7h                           ; 74 0f
     2983    je short 028f1h                           ; 74 0f
    29872984    mov dx, word [bp-00ch]                    ; 8b 56 f4
    29882985    add dx, strict byte 00006h                ; 83 c2 06
     
    29902987    out DX, AL                                ; ee
    29912988    mov dx, strict word 00003h                ; ba 03 00
    2992     jmp near 02ac5h                           ; e9 ce 01
     2989    jmp near 02abfh                           ; e9 ce 01
    29932990    test dl, 008h                             ; f6 c2 08
    2994     jne short 0290bh                          ; 75 0f
     2991    jne short 02905h                          ; 75 0f
    29952992    mov dx, word [bp-00ch]                    ; 8b 56 f4
    29962993    add dx, strict byte 00006h                ; 83 c2 06
     
    29982995    out DX, AL                                ; ee
    29992996    mov dx, strict word 00004h                ; ba 04 00
    3000     jmp near 02ac5h                           ; e9 ba 01
     2997    jmp near 02abfh                           ; e9 ba 01
    30012998    sti                                       ; fb
    30022999    mov ax, di                                ; 89 f8
     
    30113008    ; rep es outsw                              ; f3 26 6f
    30123009    cmp byte [bp+00eh], 000h                  ; 80 7e 0e 00
    3013     jne short 02934h                          ; 75 0b
     3010    jne short 0292eh                          ; 75 0b
    30143011    lea dx, [bx+007h]                         ; 8d 57 07
    30153012    in AL, DX                                 ; ec
     
    30173014    ; sub ah, ah                                ; 2a e4
    30183015    mov dl, al                                ; 88 c2
    3019     jmp near 02aa6h                           ; e9 72 01
     3016    jmp near 02aa0h                           ; e9 72 01
    30203017    lea dx, [bx+007h]                         ; 8d 57 07
    30213018    in AL, DX                                 ; ec
     
    30243021    mov dl, al                                ; 88 c2
    30253022    test AL, strict byte 080h                 ; a8 80
    3026     jne short 02934h                          ; 75 f4
     3023    jne short 0292eh                          ; 75 f4
    30273024    test AL, strict byte 088h                 ; a8 88
    3028     je near 02aa6h                            ; 0f 84 60 01
     3025    je near 02aa0h                            ; 0f 84 60 01
    30293026    test AL, strict byte 001h                 ; a8 01
    3030     je short 02955h                           ; 74 0b
     3027    je short 0294fh                           ; 74 0b
    30313028    mov dx, word [bp-00ch]                    ; 8b 56 f4
    30323029    add dx, strict byte 00006h                ; 83 c2 06
    30333030    mov AL, strict byte 008h                  ; b0 08
    30343031    out DX, AL                                ; ee
    3035     jmp short 028f1h                          ; eb 9c
     3032    jmp short 028ebh                          ; eb 9c
    30363033    mov al, dl                                ; 88 d0
    30373034    and AL, strict byte 0c9h                  ; 24 c9
    30383035    cmp AL, strict byte 048h                  ; 3c 48
    3039     je short 02968h                           ; 74 0b
     3036    je short 02962h                           ; 74 0b
    30403037    mov dx, word [bp-00ch]                    ; 8b 56 f4
    30413038    add dx, strict byte 00006h                ; 83 c2 06
    30423039    mov AL, strict byte 008h                  ; b0 08
    30433040    out DX, AL                                ; ee
    3044     jmp short 02905h                          ; eb 9d
     3041    jmp short 028ffh                          ; eb 9d
    30453042    mov ax, word [bp+010h]                    ; 8b 46 10
    30463043    shr ax, 004h                              ; c1 e8 04
     
    30653062    mov ax, word [bp+008h]                    ; 8b 46 08
    30663063    cmp ax, cx                                ; 39 c8
    3067     jbe short 029a8h                          ; 76 0c
     3064    jbe short 029a2h                          ; 76 0c
    30683065    mov ax, cx                                ; 89 c8
    30693066    sub word [bp+008h], cx                    ; 29 4e 08
    30703067    xor ax, cx                                ; 31 c8
    30713068    mov word [bp-010h], ax                    ; 89 46 f0
    3072     jmp short 029b2h                          ; eb 0a
     3069    jmp short 029ach                          ; eb 0a
    30733070    mov cx, ax                                ; 89 c1
    30743071    mov word [bp+008h], strict word 00000h    ; c7 46 08 00 00
     
    30763073    xor ax, ax                                ; 31 c0
    30773074    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    3078     jne short 029dbh                          ; 75 21
     3075    jne short 029d5h                          ; 75 21
    30793076    mov dx, word [bp-010h]                    ; 8b 56 f0
    30803077    cmp dx, word [bp+00ah]                    ; 3b 56 0a
    3081     jbe short 029dbh                          ; 76 19
     3078    jbe short 029d5h                          ; 76 19
    30823079    mov ax, word [bp-010h]                    ; 8b 46 f0
    30833080    sub ax, word [bp+00ah]                    ; 2b 46 0a
     
    30883085    mov word [bp+00ah], ax                    ; 89 46 0a
    30893086    mov word [bp+00ch], ax                    ; 89 46 0c
    3090     jmp short 029e7h                          ; eb 0c
     3087    jmp short 029e1h                          ; eb 0c
    30913088    mov word [bp-008h], ax                    ; 89 46 f8
    30923089    mov dx, word [bp-010h]                    ; 8b 56 f0
     
    30963093    mov al, byte [bp-006h]                    ; 8a 46 fa
    30973094    test cl, 003h                             ; f6 c1 03
    3098     je short 029f4h                           ; 74 02
     3095    je short 029eeh                           ; 74 02
    30993096    xor al, al                                ; 30 c0
    31003097    test byte [bp-010h], 003h                 ; f6 46 f0 03
    3101     je short 029fch                           ; 74 02
     3098    je short 029f6h                           ; 74 02
    31023099    xor al, al                                ; 30 c0
    31033100    test byte [bp-008h], 003h                 ; f6 46 f8 03
    3104     je short 02a04h                           ; 74 02
     3101    je short 029feh                           ; 74 02
    31053102    xor al, al                                ; 30 c0
    31063103    test byte [bp-010h], 001h                 ; f6 46 f0 01
    3107     je short 02a1ch                           ; 74 12
     3104    je short 02a16h                           ; 74 12
    31083105    inc word [bp-010h]                        ; ff 46 f0
    31093106    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    3110     jbe short 02a1ch                          ; 76 09
     3107    jbe short 02a16h                          ; 76 09
    31113108    test byte [bp-008h], 001h                 ; f6 46 f8 01
    3112     je short 02a1ch                           ; 74 03
     3109    je short 02a16h                           ; 74 03
    31133110    dec word [bp-008h]                        ; ff 4e f8
    31143111    cmp AL, strict byte 001h                  ; 3c 01
    3115     jne short 02a2dh                          ; 75 0d
     3112    jne short 02a27h                          ; 75 0d
    31163113    shr word [bp-010h], 002h                  ; c1 6e f0 02
    31173114    shr cx, 002h                              ; c1 e9 02
    31183115    shr word [bp-008h], 002h                  ; c1 6e f8 02
    3119     jmp short 02a35h                          ; eb 08
     3116    jmp short 02a2fh                          ; eb 08
    31203117    shr word [bp-010h], 1                     ; d1 6e f0
    31213118    shr cx, 1                                 ; d1 e9
    31223119    shr word [bp-008h], 1                     ; d1 6e f8
    31233120    cmp AL, strict byte 001h                  ; 3c 01
    3124     jne short 02a65h                          ; 75 2c
     3121    jne short 02a5fh                          ; 75 2c
    31253122    test cx, cx                               ; 85 c9
    3126     je short 02a47h                           ; 74 0a
     3123    je short 02a41h                           ; 74 0a
    31273124    mov dx, bx                                ; 89 da
    31283125    push eax                                  ; 66 50
    31293126    in eax, DX                                ; 66 ed
    3130     loop 02a41h                               ; e2 fc
     3127    loop 02a3bh                               ; e2 fc
    31313128    pop eax                                   ; 66 58
    31323129    mov dx, bx                                ; 89 da
     
    31373134    mov ax, word [bp-008h]                    ; 8b 46 f8
    31383135    test ax, ax                               ; 85 c0
    3139     je short 02a84h                           ; 74 2b
     3136    je short 02a7eh                           ; 74 2b
    31403137    mov cx, ax                                ; 89 c1
    31413138    push eax                                  ; 66 50
    31423139    in eax, DX                                ; 66 ed
    3143     loop 02a5dh                               ; e2 fc
     3140    loop 02a57h                               ; e2 fc
    31443141    pop eax                                   ; 66 58
    3145     jmp short 02a84h                          ; eb 1f
     3142    jmp short 02a7eh                          ; eb 1f
    31463143    test cx, cx                               ; 85 c9
    3147     je short 02a6eh                           ; 74 05
     3144    je short 02a68h                           ; 74 05
    31483145    mov dx, bx                                ; 89 da
    31493146    in ax, DX                                 ; ed
    3150     loop 02a6bh                               ; e2 fd
     3147    loop 02a65h                               ; e2 fd
    31513148    mov dx, bx                                ; 89 da
    31523149    mov cx, word [bp-010h]                    ; 8b 4e f0
     
    31553152    mov ax, word [bp-008h]                    ; 8b 46 f8
    31563153    test ax, ax                               ; 85 c0
    3157     je short 02a84h                           ; 74 05
     3154    je short 02a7eh                           ; 74 05
    31583155    mov cx, ax                                ; 89 c1
    31593156    in ax, DX                                 ; ed
    3160     loop 02a81h                               ; e2 fd
     3157    loop 02a7bh                               ; e2 fd
    31613158    add word [bp+010h], si                    ; 01 76 10
    31623159    xor ax, ax                                ; 31 c0
     
    31693166    mov ax, word [bp-012h]                    ; 8b 46 ee
    31703167    mov word [es:si+018h], ax                 ; 26 89 44 18
    3171     jmp near 02934h                           ; e9 8e fe
     3168    jmp near 0292eh                           ; e9 8e fe
    31723169    mov al, dl                                ; 88 d0
    31733170    and AL, strict byte 0e9h                  ; 24 e9
    31743171    cmp AL, strict byte 040h                  ; 3c 40
    3175     je short 02abah                           ; 74 0c
     3172    je short 02ab4h                           ; 74 0c
    31763173    mov dx, word [bp-00ch]                    ; 8b 56 f4
    31773174    add dx, strict byte 00006h                ; 83 c2 06
    31783175    mov AL, strict byte 008h                  ; b0 08
    31793176    out DX, AL                                ; ee
    3180     jmp near 02905h                           ; e9 4b fe
     3177    jmp near 028ffh                           ; e9 4b fe
    31813178    mov dx, word [bp-00ch]                    ; 8b 56 f4
    31823179    add dx, strict byte 00006h                ; 83 c2 06
     
    31893186    pop si                                    ; 5e
    31903187    retn 0000ch                               ; c2 0c 00
    3191 ata_soft_reset_:                             ; 0xf2acd LB 0x7d
     3188ata_soft_reset_:                             ; 0xf2ac7 LB 0x7d
    31923189    push bx                                   ; 53
    31933190    push cx                                   ; 51
     
    31973194    mov dx, strict word 0000eh                ; ba 0e 00
    31983195    mov ax, strict word 00040h                ; b8 40 00
    3199     call 0161ch                               ; e8 3d eb
     3196    call 0161ch                               ; e8 43 eb
    32003197    mov dx, bx                                ; 89 da
    32013198    shr dx, 1                                 ; d1 ea
     
    32123209    out DX, AL                                ; ee
    32133210    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3214     je short 02b0fh                           ; 74 05
     3211    je short 02b09h                           ; 74 05
    32153212    mov ax, 000b0h                            ; b8 b0 00
    3216     jmp short 02b12h                          ; eb 03
     3213    jmp short 02b0ch                          ; eb 03
    32173214    mov ax, 000a0h                            ; b8 a0 00
    32183215    mov dx, cx                                ; 89 ca
     
    32293226    ; sub ah, ah                                ; 2a e4
    32303227    test AL, strict byte 080h                 ; a8 80
    3231     jne short 02b20h                          ; 75 f4
     3228    jne short 02b1ah                          ; 75 f4
    32323229    and AL, strict byte 0e9h                  ; 24 e9
    32333230    cmp AL, strict byte 040h                  ; 3c 40
    3234     je short 02b3dh                           ; 74 0b
     3231    je short 02b37h                           ; 74 0b
    32353232    lea dx, [bx+006h]                         ; 8d 57 06
    32363233    mov AL, strict byte 008h                  ; b0 08
    32373234    out DX, AL                                ; ee
    32383235    mov ax, strict word 00001h                ; b8 01 00
    3239     jmp short 02b45h                          ; eb 08
     3236    jmp short 02b3fh                          ; eb 08
    32403237    lea dx, [bx+006h]                         ; 8d 57 06
    32413238    mov AL, strict byte 008h                  ; b0 08
     
    32473244    pop bx                                    ; 5b
    32483245    retn                                      ; c3
    3249 set_diskette_ret_status_:                    ; 0xf2b4a LB 0x15
     3246set_diskette_ret_status_:                    ; 0xf2b44 LB 0x15
    32503247    push bx                                   ; 53
    32513248    push dx                                   ; 52
     
    32553252    mov dx, strict word 00041h                ; ba 41 00
    32563253    mov ax, strict word 00040h                ; b8 40 00
    3257     call 0160eh                               ; e8 b3 ea
     3254    call 0160eh                               ; e8 b9 ea
    32583255    pop bp                                    ; 5d
    32593256    pop dx                                    ; 5a
    32603257    pop bx                                    ; 5b
    32613258    retn                                      ; c3
    3262 set_diskette_current_cyl_:                   ; 0xf2b5f LB 0x2a
     3259set_diskette_current_cyl_:                   ; 0xf2b59 LB 0x2a
    32633260    push bx                                   ; 53
    32643261    push bp                                   ; 55
     
    32663263    mov bl, al                                ; 88 c3
    32673264    cmp AL, strict byte 001h                  ; 3c 01
    3268     jbe short 02b74h                          ; 76 0b
     3265    jbe short 02b6eh                          ; 76 0b
    32693266    push 001c0h                               ; 68 c0 01
    32703267    push strict byte 00007h                   ; 6a 07
    3271     call 018e9h                               ; e8 78 ed
     3268    call 018e9h                               ; e8 7e ed
    32723269    add sp, strict byte 00004h                ; 83 c4 04
    32733270    movzx ax, dl                              ; 0f b6 c2
     
    32763273    mov bx, ax                                ; 89 c3
    32773274    mov ax, strict word 00040h                ; b8 40 00
    3278     call 0160eh                               ; e8 88 ea
     3275    call 0160eh                               ; e8 8e ea
    32793276    pop bp                                    ; 5d
    32803277    pop bx                                    ; 5b
    32813278    retn                                      ; c3
    3282 floppy_reset_controller_:                    ; 0xf2b89 LB 0x28
     3279floppy_reset_controller_:                    ; 0xf2b83 LB 0x28
    32833280    push bx                                   ; 53
    32843281    push dx                                   ; 52
     
    33023299    and AL, strict byte 0c0h                  ; 24 c0
    33033300    cmp AL, strict byte 080h                  ; 3c 80
    3304     jne short 02ba1h                          ; 75 f4
     3301    jne short 02b9bh                          ; 75 f4
    33053302    pop bp                                    ; 5d
    33063303    pop dx                                    ; 5a
    33073304    pop bx                                    ; 5b
    33083305    retn                                      ; c3
    3309 floppy_prepare_controller_:                  ; 0xf2bb1 LB 0x8c
     3306floppy_prepare_controller_:                  ; 0xf2bab LB 0x8c
    33103307    push bx                                   ; 53
    33113308    push cx                                   ; 51
     
    33153312    mov dx, strict word 0003eh                ; ba 3e 00
    33163313    mov ax, strict word 00040h                ; b8 40 00
    3317     call 01600h                               ; e8 3d ea
     3314    call 01600h                               ; e8 43 ea
    33183315    and AL, strict byte 07fh                  ; 24 7f
    33193316    movzx bx, al                              ; 0f b6 d8
    33203317    mov dx, strict word 0003eh                ; ba 3e 00
    33213318    mov ax, strict word 00040h                ; b8 40 00
    3322     call 0160eh                               ; e8 3d ea
     3319    call 0160eh                               ; e8 43 ea
    33233320    mov dx, 003f2h                            ; ba f2 03
    33243321    in AL, DX                                 ; ec
     
    33283325    mov byte [bp-002h], al                    ; 88 46 fe
    33293326    test cx, cx                               ; 85 c9
    3330     je short 02be4h                           ; 74 04
     3327    je short 02bdeh                           ; 74 04
    33313328    mov AL, strict byte 020h                  ; b0 20
    3332     jmp short 02be6h                          ; eb 02
     3329    jmp short 02be0h                          ; eb 02
    33333330    mov AL, strict byte 010h                  ; b0 10
    33343331    or AL, strict byte 00ch                   ; 0c 0c
     
    33393336    mov dx, strict word 00040h                ; ba 40 00
    33403337    mov ax, dx                                ; 89 d0
    3341     call 0160eh                               ; e8 15 ea
     3338    call 0160eh                               ; e8 1b ea
    33423339    mov dx, 0008bh                            ; ba 8b 00
    33433340    mov ax, strict word 00040h                ; b8 40 00
    3344     call 01600h                               ; e8 fe e9
     3341    call 01600h                               ; e8 04 ea
    33453342    shr al, 006h                              ; c0 e8 06
    33463343    mov dx, 003f7h                            ; ba f7 03
     
    33523349    and AL, strict byte 0c0h                  ; 24 c0
    33533350    cmp AL, strict byte 080h                  ; 3c 80
    3354     jne short 02c09h                          ; 75 f4
     3351    jne short 02c03h                          ; 75 f4
    33553352    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3356     jne short 02c38h                          ; 75 1d
     3353    jne short 02c32h                          ; 75 1d
    33573354    sti                                       ; fb
    33583355    mov dx, strict word 0003eh                ; ba 3e 00
    33593356    mov ax, strict word 00040h                ; b8 40 00
    3360     call 01600h                               ; e8 db e9
     3357    call 01600h                               ; e8 e1 e9
    33613358    test AL, strict byte 080h                 ; a8 80
    3362     je short 02c1ch                           ; 74 f3
     3359    je short 02c16h                           ; 74 f3
    33633360    and AL, strict byte 07fh                  ; 24 7f
    33643361    cli                                       ; fa
     
    33663363    mov dx, strict word 0003eh                ; ba 3e 00
    33673364    mov ax, strict word 00040h                ; b8 40 00
    3368     call 0160eh                               ; e8 d6 e9
     3365    call 0160eh                               ; e8 dc e9
    33693366    leave                                     ; c9
    33703367    pop dx                                    ; 5a
     
    33723369    pop bx                                    ; 5b
    33733370    retn                                      ; c3
    3374 floppy_media_known_:                         ; 0xf2c3d LB 0x40
     3371floppy_media_known_:                         ; 0xf2c37 LB 0x40
    33753372    push bx                                   ; 53
    33763373    push dx                                   ; 52
     
    33803377    mov dx, strict word 0003eh                ; ba 3e 00
    33813378    mov ax, strict word 00040h                ; b8 40 00
    3382     call 01600h                               ; e8 b3 e9
     3379    call 01600h                               ; e8 b9 e9
    33833380    mov ah, al                                ; 88 c4
    33843381    test bx, bx                               ; 85 db
    3385     je short 02c55h                           ; 74 02
     3382    je short 02c4fh                           ; 74 02
    33863383    shr al, 1                                 ; d0 e8
    33873384    and AL, strict byte 001h                  ; 24 01
    3388     jne short 02c5dh                          ; 75 04
     3385    jne short 02c57h                          ; 75 04
    33893386    xor ah, ah                                ; 30 e4
    3390     jmp short 02c79h                          ; eb 1c
     3387    jmp short 02c73h                          ; eb 1c
    33913388    mov dx, 00090h                            ; ba 90 00
    33923389    test bx, bx                               ; 85 db
    3393     je short 02c67h                           ; 74 03
     3390    je short 02c61h                           ; 74 03
    33943391    mov dx, 00091h                            ; ba 91 00
    33953392    mov ax, strict word 00040h                ; b8 40 00
    3396     call 01600h                               ; e8 93 e9
     3393    call 01600h                               ; e8 99 e9
    33973394    xor ah, ah                                ; 30 e4
    33983395    sar ax, 004h                              ; c1 f8 04
    33993396    and AL, strict byte 001h                  ; 24 01
    3400     je short 02c59h                           ; 74 e3
     3397    je short 02c53h                           ; 74 e3
    34013398    mov ax, strict word 00001h                ; b8 01 00
    34023399    pop bp                                    ; 5d
     
    34043401    pop bx                                    ; 5b
    34053402    retn                                      ; c3
    3406 floppy_read_id_:                             ; 0xf2c7d LB 0x49
     3403floppy_read_id_:                             ; 0xf2c77 LB 0x49
    34073404    push bx                                   ; 53
    34083405    push dx                                   ; 52
     
    34103407    enter 00008h, 000h                        ; c8 08 00 00
    34113408    mov bx, ax                                ; 89 c3
    3412     call 02bb1h                               ; e8 28 ff
     3409    call 02babh                               ; e8 28 ff
    34133410    mov AL, strict byte 04ah                  ; b0 4a
    34143411    mov dx, 003f5h                            ; ba f5 03
     
    34193416    mov dx, strict word 0003eh                ; ba 3e 00
    34203417    mov ax, strict word 00040h                ; b8 40 00
    3421     call 01600h                               ; e8 64 e9
     3418    call 01600h                               ; e8 6a e9
    34223419    and AL, strict byte 080h                  ; 24 80
    34233420    test al, al                               ; 84 c0
    3424     je short 02c93h                           ; 74 f1
     3421    je short 02c8dh                           ; 74 f1
    34253422    cli                                       ; fa
    34263423    xor si, si                                ; 31 f6
    3427     jmp short 02cach                          ; eb 05
     3424    jmp short 02ca6h                          ; eb 05
    34283425    cmp si, strict byte 00007h                ; 83 fe 07
    3429     jnl short 02cb8h                          ; 7d 0c
     3426    jnl short 02cb2h                          ; 7d 0c
    34303427    mov dx, 003f5h                            ; ba f5 03
    34313428    in AL, DX                                 ; ec
     
    34343431    mov byte [bp+si-008h], al                 ; 88 42 f8
    34353432    inc si                                    ; 46
    3436     jmp short 02ca7h                          ; eb ef
     3433    jmp short 02ca1h                          ; eb ef
    34373434    test byte [bp-008h], 0c0h                 ; f6 46 f8 c0
    34383435    db  00fh, 094h, 0c0h
     
    34443441    pop bx                                    ; 5b
    34453442    retn                                      ; c3
    3446 floppy_drive_recal_:                         ; 0xf2cc6 LB 0x5e
     3443floppy_drive_recal_:                         ; 0xf2cc0 LB 0x5e
    34473444    push bx                                   ; 53
    34483445    push cx                                   ; 51
     
    34513448    mov bp, sp                                ; 89 e5
    34523449    mov bx, ax                                ; 89 c3
    3453     call 02bb1h                               ; e8 e0 fe
     3450    call 02babh                               ; e8 e0 fe
    34543451    mov AL, strict byte 007h                  ; b0 07
    34553452    mov dx, 003f5h                            ; ba f5 03
     
    34603457    mov dx, strict word 0003eh                ; ba 3e 00
    34613458    mov ax, strict word 00040h                ; b8 40 00
    3462     call 01600h                               ; e8 1c e9
     3459    call 01600h                               ; e8 22 e9
    34633460    and AL, strict byte 080h                  ; 24 80
    34643461    test al, al                               ; 84 c0
    3465     je short 02cdbh                           ; 74 f1
     3462    je short 02cd5h                           ; 74 f1
    34663463    cli                                       ; fa
    34673464    mov dx, strict word 0003eh                ; ba 3e 00
    34683465    mov ax, strict word 00040h                ; b8 40 00
    3469     call 01600h                               ; e8 0c e9
     3466    call 01600h                               ; e8 12 e9
    34703467    and AL, strict byte 07fh                  ; 24 7f
    34713468    test bx, bx                               ; 85 db
    3472     je short 02d01h                           ; 74 07
     3469    je short 02cfbh                           ; 74 07
    34733470    or AL, strict byte 002h                   ; 0c 02
    34743471    mov cx, 00095h                            ; b9 95 00
    3475     jmp short 02d06h                          ; eb 05
     3472    jmp short 02d00h                          ; eb 05
    34763473    or AL, strict byte 001h                   ; 0c 01
    34773474    mov cx, 00094h                            ; b9 94 00
     
    34793476    mov dx, strict word 0003eh                ; ba 3e 00
    34803477    mov ax, strict word 00040h                ; b8 40 00
    3481     call 0160eh                               ; e8 fc e8
     3478    call 0160eh                               ; e8 02 e9
    34823479    xor bx, bx                                ; 31 db
    34833480    mov dx, cx                                ; 89 ca
    34843481    mov ax, strict word 00040h                ; b8 40 00
    3485     call 0160eh                               ; e8 f2 e8
     3482    call 0160eh                               ; e8 f8 e8
    34863483    mov ax, strict word 00001h                ; b8 01 00
    34873484    pop bp                                    ; 5d
     
    34903487    pop bx                                    ; 5b
    34913488    retn                                      ; c3
    3492 floppy_media_sense_:                         ; 0xf2d24 LB 0xfa
     3489floppy_media_sense_:                         ; 0xf2d1e LB 0xfa
    34933490    push bx                                   ; 53
    34943491    push cx                                   ; 51
     
    34993496    mov bp, sp                                ; 89 e5
    35003497    mov di, ax                                ; 89 c7
    3501     call 02cc6h                               ; e8 95 ff
     3498    call 02cc0h                               ; e8 95 ff
    35023499    test ax, ax                               ; 85 c0
    3503     jne short 02d3ah                          ; 75 05
     3500    jne short 02d34h                          ; 75 05
    35043501    xor cx, cx                                ; 31 c9
    3505     jmp near 02e15h                           ; e9 db 00
     3502    jmp near 02e0fh                           ; e9 db 00
    35063503    mov ax, strict word 00010h                ; b8 10 00
    3507     call 0165ch                               ; e8 1c e9
     3504    call 0165ch                               ; e8 22 e9
    35083505    test di, di                               ; 85 ff
    3509     jne short 02d4bh                          ; 75 07
     3506    jne short 02d45h                          ; 75 07
    35103507    mov cl, al                                ; 88 c1
    35113508    shr cl, 004h                              ; c0 e9 04
    3512     jmp short 02d50h                          ; eb 05
     3509    jmp short 02d4ah                          ; eb 05
    35133510    mov cl, al                                ; 88 c1
    35143511    and cl, 00fh                              ; 80 e1 0f
    35153512    cmp cl, 001h                              ; 80 f9 01
    3516     jne short 02d5eh                          ; 75 09
     3513    jne short 02d58h                          ; 75 09
    35173514    xor cl, cl                                ; 30 c9
    35183515    mov CH, strict byte 015h                  ; b5 15
    35193516    mov si, strict word 00001h                ; be 01 00
    3520     jmp short 02da9h                          ; eb 4b
     3517    jmp short 02da3h                          ; eb 4b
    35213518    cmp cl, 002h                              ; 80 f9 02
    3522     jne short 02d69h                          ; 75 06
     3519    jne short 02d63h                          ; 75 06
    35233520    xor cl, cl                                ; 30 c9
    35243521    mov CH, strict byte 035h                  ; b5 35
    3525     jmp short 02d59h                          ; eb f0
     3522    jmp short 02d53h                          ; eb f0
    35263523    cmp cl, 003h                              ; 80 f9 03
    3527     jne short 02d74h                          ; 75 06
     3524    jne short 02d6eh                          ; 75 06
    35283525    xor cl, cl                                ; 30 c9
    35293526    mov CH, strict byte 017h                  ; b5 17
    3530     jmp short 02d59h                          ; eb e5
     3527    jmp short 02d53h                          ; eb e5
    35313528    cmp cl, 004h                              ; 80 f9 04
    3532     jne short 02d7fh                          ; 75 06
     3529    jne short 02d79h                          ; 75 06
    35333530    xor cl, cl                                ; 30 c9
    35343531    mov CH, strict byte 017h                  ; b5 17
    3535     jmp short 02d59h                          ; eb da
     3532    jmp short 02d53h                          ; eb da
    35363533    cmp cl, 005h                              ; 80 f9 05
    3537     jne short 02d8ah                          ; 75 06
     3534    jne short 02d84h                          ; 75 06
    35383535    mov CL, strict byte 0cch                  ; b1 cc
    35393536    mov CH, strict byte 0d7h                  ; b5 d7
    3540     jmp short 02d59h                          ; eb cf
     3537    jmp short 02d53h                          ; eb cf
    35413538    cmp cl, 006h                              ; 80 f9 06
    3542     jne short 02d95h                          ; 75 06
     3539    jne short 02d8fh                          ; 75 06
    35433540    xor cl, cl                                ; 30 c9
    35443541    mov CH, strict byte 027h                  ; b5 27
    3545     jmp short 02d59h                          ; eb c4
     3542    jmp short 02d53h                          ; eb c4
    35463543    cmp cl, 007h                              ; 80 f9 07
    3547     jne short 02d9ch                          ; 75 02
    3548     jmp short 02d8fh                          ; eb f3
     3544    jne short 02d96h                          ; 75 02
     3545    jmp short 02d89h                          ; eb f3
    35493546    cmp cl, 008h                              ; 80 f9 08
    3550     jne short 02da3h                          ; 75 02
    3551     jmp short 02d8fh                          ; eb ec
     3547    jne short 02d9dh                          ; 75 02
     3548    jmp short 02d89h                          ; eb ec
    35523549    xor cl, cl                                ; 30 c9
    35533550    xor ch, ch                                ; 30 ed
     
    35563553    mov dx, 0008bh                            ; ba 8b 00
    35573554    mov ax, strict word 00040h                ; b8 40 00
    3558     call 0160eh                               ; e8 59 e8
     3555    call 0160eh                               ; e8 5f e8
    35593556    mov ax, di                                ; 89 f8
    3560     call 02c7dh                               ; e8 c3 fe
     3557    call 02c77h                               ; e8 c3 fe
    35613558    test ax, ax                               ; 85 c0
    3562     jne short 02df0h                          ; 75 32
     3559    jne short 02deah                          ; 75 32
    35633560    mov al, cl                                ; 88 c8
    35643561    and AL, strict byte 0c0h                  ; 24 c0
    35653562    cmp AL, strict byte 080h                  ; 3c 80
    3566     je short 02df0h                           ; 74 2a
     3563    je short 02deah                           ; 74 2a
    35673564    mov al, cl                                ; 88 c8
    35683565    and AL, strict byte 0c0h                  ; 24 c0
    35693566    cmp AL, strict byte 0c0h                  ; 3c c0
    3570     je short 02dddh                           ; 74 0f
     3567    je short 02dd7h                           ; 74 0f
    35713568    mov ah, cl                                ; 88 cc
    35723569    and ah, 03fh                              ; 80 e4 3f
    35733570    cmp AL, strict byte 040h                  ; 3c 40
    3574     je short 02de9h                           ; 74 12
     3571    je short 02de3h                           ; 74 12
    35753572    test al, al                               ; 84 c0
    3576     je short 02de2h                           ; 74 07
    3577     jmp short 02da9h                          ; eb cc
     3573    je short 02ddch                           ; 74 07
     3574    jmp short 02da3h                          ; eb cc
    35783575    and cl, 03fh                              ; 80 e1 3f
    3579     jmp short 02da9h                          ; eb c7
     3576    jmp short 02da3h                          ; eb c7
    35803577    mov cl, ah                                ; 88 e1
    35813578    or cl, 040h                               ; 80 c9 40
    3582     jmp short 02da9h                          ; eb c0
     3579    jmp short 02da3h                          ; eb c0
    35833580    mov cl, ah                                ; 88 e1
    35843581    or cl, 080h                               ; 80 c9 80
    3585     jmp short 02da9h                          ; eb b9
     3582    jmp short 02da3h                          ; eb b9
    35863583    test di, di                               ; 85 ff
    35873584    db  00fh, 095h, 0c0h
     
    35923589    mov dx, 0008bh                            ; ba 8b 00
    35933590    mov ax, strict word 00040h                ; b8 40 00
    3594     call 0160eh                               ; e8 06 e8
     3591    call 0160eh                               ; e8 0c e8
    35953592    movzx bx, ch                              ; 0f b6 dd
    35963593    mov dx, di                                ; 89 fa
    35973594    mov ax, strict word 00040h                ; b8 40 00
    3598     call 0160eh                               ; e8 fb e7
     3595    call 0160eh                               ; e8 01 e8
    35993596    mov cx, si                                ; 89 f1
    36003597    mov ax, cx                                ; 89 c8
     
    36063603    pop bx                                    ; 5b
    36073604    retn                                      ; c3
    3608 floppy_drive_exists_:                        ; 0xf2e1e LB 0x33
     3605floppy_drive_exists_:                        ; 0xf2e18 LB 0x33
    36093606    push dx                                   ; 52
    36103607    push bp                                   ; 55
     
    36123609    mov dx, ax                                ; 89 c2
    36133610    mov ax, strict word 00010h                ; b8 10 00
    3614     call 0165ch                               ; e8 32 e8
     3611    call 0165ch                               ; e8 38 e8
    36153612    test dx, dx                               ; 85 d2
    3616     jne short 02e33h                          ; 75 05
     3613    jne short 02e2dh                          ; 75 05
    36173614    shr al, 004h                              ; c0 e8 04
    3618     jmp short 02e35h                          ; eb 02
     3615    jmp short 02e2fh                          ; eb 02
    36193616    and AL, strict byte 00fh                  ; 24 0f
    36203617    test al, al                               ; 84 c0
     
    36253622    pop dx                                    ; 5a
    36263623    retn                                      ; c3
    3627     sti                                       ; fb
    3628     xor AL, strict byte 006h                  ; 34 06
    3629     xor ax, 03510h                            ; 35 10 35
    3630     pop SS                                    ; 17
    3631     xor ax, 0351eh                            ; 35 1e 35
    3632     and ax, 02c35h                            ; 25 35 2c
    3633     xor ax, 03536h                            ; 35 36 35
    3634     db  03dh
     3624    cmc                                       ; f5
     3625    xor AL, strict byte 000h                  ; 34 00
     3626    xor ax, 0350ah                            ; 35 0a 35
     3627    adc word [di], si                         ; 11 35
     3628    sbb byte [di], dh                         ; 18 35
     3629    pop DS                                    ; 1f
     3630    xor ax, 03526h                            ; 35 26 35
     3631    xor byte [di], dh                         ; 30 35
     3632    aaa                                       ; 37
    36353633    db  035h
    3636 _int13_diskette_function:                    ; 0xf2e51 LB 0x78f
     3634_int13_diskette_function:                    ; 0xf2e4b LB 0x78f
    36373635    push si                                   ; 56
    36383636    push di                                   ; 57
     
    36453643    mov ah, byte [bp+012h]                    ; 8a 66 12
    36463644    cmp bl, 008h                              ; 80 fb 08
    3647     jc short 02ea8h                           ; 72 3a
     3645    jc short 02ea2h                           ; 72 3a
    36483646    mov dx, word [bp+020h]                    ; 8b 56 20
    36493647    or dl, 001h                               ; 80 ca 01
    36503648    cmp bl, 008h                              ; 80 fb 08
    3651     jbe near 0347ch                           ; 0f 86 01 06
     3649    jbe near 03476h                           ; 0f 86 01 06
    36523650    cmp bl, 016h                              ; 80 fb 16
    3653     jc short 02e9eh                           ; 72 1e
     3651    jc short 02e98h                           ; 72 1e
    36543652    or si, 00100h                             ; 81 ce 00 01
    36553653    mov cx, si                                ; 89 f1
    36563654    cmp bl, 016h                              ; 80 fb 16
    3657     jbe near 0359bh                           ; 0f 86 0e 07
     3655    jbe near 03595h                           ; 0f 86 0e 07
    36583656    cmp bl, 018h                              ; 80 fb 18
    3659     je near 035a0h                            ; 0f 84 0c 07
     3657    je near 0359ah                            ; 0f 84 0c 07
    36603658    cmp bl, 017h                              ; 80 fb 17
    3661     je near 035a0h                            ; 0f 84 05 07
    3662     jmp near 035bdh                           ; e9 1f 07
     3659    je near 0359ah                            ; 0f 84 05 07
     3660    jmp near 035b7h                           ; e9 1f 07
    36633661    cmp bl, 015h                              ; 80 fb 15
    3664     je near 0355fh                            ; 0f 84 ba 06
    3665     jmp near 035bdh                           ; e9 15 07
     3662    je near 03559h                            ; 0f 84 ba 06
     3663    jmp near 035b7h                           ; e9 15 07
    36663664    cmp bl, 001h                              ; 80 fb 01
    3667     jc short 02ec2h                           ; 72 15
    3668     jbe near 02f38h                           ; 0f 86 87 00
     3665    jc short 02ebch                           ; 72 15
     3666    jbe near 02f32h                           ; 0f 86 87 00
    36693667    cmp bl, 005h                              ; 80 fb 05
    3670     je near 032d5h                            ; 0f 84 1d 04
     3668    je near 032cfh                            ; 0f 84 1d 04
    36713669    cmp bl, 004h                              ; 80 fb 04
    3672     jbe near 02f56h                           ; 0f 86 97 00
    3673     jmp near 035bdh                           ; e9 fb 06
     3670    jbe near 02f50h                           ; 0f 86 97 00
     3671    jmp near 035b7h                           ; e9 fb 06
    36743672    test bl, bl                               ; 84 db
    3675     jne near 035bdh                           ; 0f 85 f5 06
     3673    jne near 035b7h                           ; 0f 85 f5 06
    36763674    mov al, byte [bp+012h]                    ; 8a 46 12
    36773675    mov byte [bp-00ah], al                    ; 88 46 f6
    36783676    cmp AL, strict byte 001h                  ; 3c 01
    3679     jbe short 02ee6h                          ; 76 14
     3677    jbe short 02ee0h                          ; 76 14
    36803678    mov ax, word [bp+01ah]                    ; 8b 46 1a
    36813679    xor ah, ah                                ; 30 e4
     
    36833681    mov word [bp+01ah], ax                    ; 89 46 1a
    36843682    mov ax, strict word 00001h                ; b8 01 00
    3685     call 02b4ah                               ; e8 67 fc
    3686     jmp near 032b1h                           ; e9 cb 03
     3683    call 02b44h                               ; e8 67 fc
     3684    jmp near 032abh                           ; e9 cb 03
    36873685    mov ax, strict word 00010h                ; b8 10 00
    3688     call 0165ch                               ; e8 70 e7
     3686    call 0165ch                               ; e8 76 e7
    36893687    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3690     jne short 02ef9h                          ; 75 07
     3688    jne short 02ef3h                          ; 75 07
    36913689    mov bl, al                                ; 88 c3
    36923690    shr bl, 004h                              ; c0 eb 04
    3693     jmp short 02efeh                          ; eb 05
     3691    jmp short 02ef8h                          ; eb 05
    36943692    mov bl, al                                ; 88 c3
    36953693    and bl, 00fh                              ; 80 e3 0f
    36963694    test bl, bl                               ; 84 db
    3697     jne short 02f12h                          ; 75 10
     3695    jne short 02f0ch                          ; 75 10
    36983696    mov ax, word [bp+01ah]                    ; 8b 46 1a
    36993697    xor ah, ah                                ; 30 e4
     
    37013699    mov word [bp+01ah], ax                    ; 89 46 1a
    37023700    mov ax, 00080h                            ; b8 80 00
    3703     jmp short 02ee0h                          ; eb ce
     3701    jmp short 02edah                          ; eb ce
    37043702    xor bx, bx                                ; 31 db
    37053703    mov dx, strict word 0003eh                ; ba 3e 00
    37063704    mov ax, strict word 00040h                ; b8 40 00
    3707     call 0160eh                               ; e8 f1 e6
     3705    call 0160eh                               ; e8 f7 e6
    37083706    xor al, al                                ; 30 c0
    37093707    mov byte [bp+01bh], al                    ; 88 46 1b
    37103708    xor ah, ah                                ; 30 e4
    3711     call 02b4ah                               ; e8 23 fc
     3709    call 02b44h                               ; e8 23 fc
    37123710    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    37133711    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    37143712    xor dx, dx                                ; 31 d2
    3715     call 02b5fh                               ; e8 2b fc
     3713    call 02b59h                               ; e8 2b fc
    37163714    leave                                     ; c9
    37173715    pop di                                    ; 5f
     
    37213719    mov dx, 00441h                            ; ba 41 04
    37223720    xor ax, ax                                ; 31 c0
    3723     call 01600h                               ; e8 bc e6
     3721    call 01600h                               ; e8 c2 e6
    37243722    movzx dx, al                              ; 0f b6 d0
    37253723    sal dx, 008h                              ; c1 e2 08
     
    37273725    mov word [bp+01ah], si                    ; 89 76 1a
    37283726    test al, al                               ; 84 c0
    3729     je short 02f34h                           ; 74 e1
    3730     jmp near 032b1h                           ; e9 5b 03
     3727    je short 02f2eh                           ; 74 e1
     3728    jmp near 032abh                           ; e9 5b 03
    37313729    mov al, byte [bp+01ah]                    ; 8a 46 1a
    37323730    mov byte [bp-008h], al                    ; 88 46 f8
     
    37413739    mov byte [bp-00ah], ah                    ; 88 66 f6
    37423740    cmp ah, 001h                              ; 80 fc 01
    3743     jnbe short 02f8ch                         ; 77 10
     3741    jnbe short 02f86h                         ; 77 10
    37443742    cmp dl, 001h                              ; 80 fa 01
    3745     jnbe short 02f8ch                         ; 77 0b
     3743    jnbe short 02f86h                         ; 77 0b
    37463744    mov al, byte [bp-008h]                    ; 8a 46 f8
    37473745    test al, al                               ; 84 c0
    3748     je short 02f8ch                           ; 74 04
     3746    je short 02f86h                           ; 74 04
    37493747    cmp AL, strict byte 048h                  ; 3c 48
    3750     jbe short 02fb5h                          ; 76 29
     3748    jbe short 02fafh                          ; 76 29
    37513749    mov bx, 00d32h                            ; bb 32 0d
    37523750    mov cx, ds                                ; 8c d9
    37533751    mov ax, strict word 00004h                ; b8 04 00
    3754     call 018aeh                               ; e8 17 e9
     3752    call 018aeh                               ; e8 1d e9
    37553753    push 001e5h                               ; 68 e5 01
    37563754    push 001fdh                               ; 68 fd 01
    37573755    push strict byte 00004h                   ; 6a 04
    3758     call 018e9h                               ; e8 47 e9
     3756    call 018e9h                               ; e8 4d e9
    37593757    add sp, strict byte 00006h                ; 83 c4 06
    37603758    mov ax, word [bp+01ah]                    ; 8b 46 1a
     
    37633761    mov word [bp+01ah], ax                    ; 89 46 1a
    37643762    mov ax, strict word 00001h                ; b8 01 00
    3765     jmp short 03026h                          ; eb 71
     3763    jmp short 03020h                          ; eb 71
    37663764    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3767     call 02e1eh                               ; e8 62 fe
     3765    call 02e18h                               ; e8 62 fe
    37683766    test ax, ax                               ; 85 c0
    3769     je near 030bfh                            ; 0f 84 fd 00
     3767    je near 030b9h                            ; 0f 84 fd 00
    37703768    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    37713769    mov ax, dx                                ; 89 d0
    3772     call 02c3dh                               ; e8 72 fc
     3770    call 02c37h                               ; e8 72 fc
    37733771    test ax, ax                               ; 85 c0
    3774     jne short 02fe8h                          ; 75 19
     3772    jne short 02fe2h                          ; 75 19
    37753773    mov ax, dx                                ; 89 d0
    3776     call 02d24h                               ; e8 50 fd
     3774    call 02d1eh                               ; e8 50 fd
    37773775    test ax, ax                               ; 85 c0
    3778     jne short 02fe8h                          ; 75 10
     3776    jne short 02fe2h                          ; 75 10
    37793777    mov ax, word [bp+01ah]                    ; 8b 46 1a
    37803778    xor ah, ah                                ; 30 e4
     
    37823780    mov word [bp+01ah], ax                    ; 89 46 1a
    37833781    mov ax, strict word 0000ch                ; b8 0c 00
    3784     jmp short 03026h                          ; eb 3e
     3782    jmp short 03020h                          ; eb 3e
    37853783    cmp ch, 002h                              ; 80 fd 02
    3786     jne near 0317dh                           ; 0f 85 8e 01
     3784    jne near 03177h                           ; 0f 85 8e 01
    37873785    mov dx, word [bp+00ah]                    ; 8b 56 0a
    37883786    shr dx, 00ch                              ; c1 ea 0c
     
    37933791    add bx, cx                                ; 01 cb
    37943792    cmp bx, cx                                ; 39 cb
    3795     jnc short 03008h                          ; 73 02
     3793    jnc short 03002h                          ; 73 02
    37963794    db  0feh, 0c4h
    37973795    ; inc ah                                    ; fe c4
     
    38023800    add dx, cx                                ; 01 ca
    38033801    cmp dx, bx                                ; 39 da
    3804     jnc short 03030h                          ; 73 18
     3802    jnc short 0302ah                          ; 73 18
    38053803    mov ax, word [bp+01ah]                    ; 8b 46 1a
    38063804    xor ah, ah                                ; 30 e4
     
    38083806    mov word [bp+01ah], ax                    ; 89 46 1a
    38093807    mov ax, strict word 00009h                ; b8 09 00
    3810     call 02b4ah                               ; e8 21 fb
     3808    call 02b44h                               ; e8 21 fb
    38113809    mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    3812     jmp near 032b1h                           ; e9 81 02
     3810    jmp near 032abh                           ; e9 81 02
    38133811    mov AL, strict byte 006h                  ; b0 06
    38143812    mov dx, strict word 0000ah                ; ba 0a 00
     
    38433841    out DX, AL                                ; ee
    38443842    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3845     call 02bb1h                               ; e8 3d fb
     3843    call 02babh                               ; e8 3d fb
    38463844    mov AL, strict byte 0e6h                  ; b0 e6
    38473845    mov dx, 003f5h                            ; ba f5 03
     
    38743872    mov dx, strict word 00040h                ; ba 40 00
    38753873    mov ax, dx                                ; 89 d0
    3876     call 01600h                               ; e8 48 e5
     3874    call 01600h                               ; e8 4e e5
    38773875    test al, al                               ; 84 c0
    3878     jne short 030d0h                          ; 75 14
    3879     call 02b89h                               ; e8 ca fa
     3876    jne short 030cah                          ; 75 14
     3877    call 02b83h                               ; e8 ca fa
    38803878    mov ax, word [bp+01ah]                    ; 8b 46 1a
    38813879    xor ah, ah                                ; 30 e4
     
    38833881    mov word [bp+01ah], ax                    ; 89 46 1a
    38843882    mov ax, 00080h                            ; b8 80 00
    3885     jmp near 03026h                           ; e9 56 ff
     3883    jmp near 03020h                           ; e9 56 ff
    38863884    mov dx, strict word 0003eh                ; ba 3e 00
    38873885    mov ax, strict word 00040h                ; b8 40 00
    3888     call 01600h                               ; e8 27 e5
     3886    call 01600h                               ; e8 2d e5
    38893887    and AL, strict byte 080h                  ; 24 80
    38903888    test al, al                               ; 84 c0
    3891     je short 030b0h                           ; 74 d1
     3889    je short 030aah                           ; 74 d1
    38923890    cli                                       ; fa
    38933891    mov dx, strict word 0003eh                ; ba 3e 00
    38943892    mov ax, strict word 00040h                ; b8 40 00
    3895     call 01600h                               ; e8 17 e5
     3893    call 01600h                               ; e8 1d e5
    38963894    and AL, strict byte 07fh                  ; 24 7f
    38973895    movzx bx, al                              ; 0f b6 d8
    38983896    mov dx, strict word 0003eh                ; ba 3e 00
    38993897    mov ax, strict word 00040h                ; b8 40 00
    3900     call 0160eh                               ; e8 17 e5
     3898    call 0160eh                               ; e8 1d e5
    39013899    mov dx, 003f4h                            ; ba f4 03
    39023900    in AL, DX                                 ; ec
     
    39053903    and AL, strict byte 0c0h                  ; 24 c0
    39063904    cmp AL, strict byte 0c0h                  ; 3c c0
    3907     je short 03111h                           ; 74 0e
     3905    je short 0310bh                           ; 74 0e
    39083906    push 001e5h                               ; 68 e5 01
    39093907    push 00218h                               ; 68 18 02
    39103908    push strict byte 00007h                   ; 6a 07
    3911     call 018e9h                               ; e8 db e7
     3909    call 018e9h                               ; e8 e1 e7
    39123910    add sp, strict byte 00006h                ; 83 c4 06
    39133911    xor si, si                                ; 31 f6
    3914     jmp short 0311ah                          ; eb 05
     3912    jmp short 03114h                          ; eb 05
    39153913    cmp si, strict byte 00007h                ; 83 fe 07
    3916     jnl short 03132h                          ; 7d 18
     3914    jnl short 0312ch                          ; 7d 18
    39173915    mov dx, 003f5h                            ; ba f5 03
    39183916    in AL, DX                                 ; ec
     
    39233921    lea dx, [si+042h]                         ; 8d 54 42
    39243922    mov ax, strict word 00040h                ; b8 40 00
    3925     call 0160eh                               ; e8 df e4
     3923    call 0160eh                               ; e8 e5 e4
    39263924    inc si                                    ; 46
    3927     jmp short 03115h                          ; eb e3
     3925    jmp short 0310fh                          ; eb e3
    39283926    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    3929     je short 03149h                           ; 74 11
     3927    je short 03143h                           ; 74 11
    39303928    mov ax, word [bp+01ah]                    ; 8b 46 1a
    39313929    xor ah, ah                                ; 30 e4
     
    39333931    mov word [bp+01ah], ax                    ; 89 46 1a
    39343932    mov ax, strict word 00020h                ; b8 20 00
    3935     jmp near 03026h                           ; e9 dd fe
     3933    jmp near 03020h                           ; e9 dd fe
    39363934    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    39373935    sal ax, 009h                              ; c1 e0 09
     
    39513949    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    39523950    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3953     call 02b5fh                               ; e8 ed f9
     3951    call 02b59h                               ; e8 ed f9
    39543952    mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    39553953    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    3956     jmp near 02f34h                           ; e9 b7 fd
     3954    jmp near 02f2eh                           ; e9 b7 fd
    39573955    cmp ch, 003h                              ; 80 fd 03
    3958     jne near 032bfh                           ; 0f 85 3b 01
     3956    jne near 032b9h                           ; 0f 85 3b 01
    39593957    mov dx, word [bp+00ah]                    ; 8b 56 0a
    39603958    shr dx, 00ch                              ; c1 ea 0c
     
    39653963    add bx, cx                                ; 01 cb
    39663964    cmp bx, cx                                ; 39 cb
    3967     jnc short 0319dh                          ; 73 02
     3965    jnc short 03197h                          ; 73 02
    39683966    db  0feh, 0c4h
    39693967    ; inc ah                                    ; fe c4
     
    39743972    add dx, cx                                ; 01 ca
    39753973    cmp dx, bx                                ; 39 da
    3976     jc near 03018h                            ; 0f 82 69 fe
     3974    jc near 03012h                            ; 0f 82 69 fe
    39773975    mov AL, strict byte 006h                  ; b0 06
    39783976    mov dx, strict word 0000ah                ; ba 0a 00
     
    40064004    out DX, AL                                ; ee
    40074005    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4008     call 02bb1h                               ; e8 bf f9
     4006    call 02babh                               ; e8 bf f9
    40094007    mov AL, strict byte 0c5h                  ; b0 c5
    40104008    mov dx, 003f5h                            ; ba f5 03
     
    40374035    mov dx, strict word 00040h                ; ba 40 00
    40384036    mov ax, dx                                ; 89 d0
    4039     call 01600h                               ; e8 ca e3
     4037    call 01600h                               ; e8 d0 e3
    40404038    test al, al                               ; 84 c0
    4041     je near 030bch                            ; 0f 84 80 fe
     4039    je near 030b6h                            ; 0f 84 80 fe
    40424040    mov dx, strict word 0003eh                ; ba 3e 00
    40434041    mov ax, strict word 00040h                ; b8 40 00
    4044     call 01600h                               ; e8 bb e3
     4042    call 01600h                               ; e8 c1 e3
    40454043    and AL, strict byte 080h                  ; 24 80
    40464044    test al, al                               ; 84 c0
    4047     je short 0322eh                           ; 74 e3
     4045    je short 03228h                           ; 74 e3
    40484046    cli                                       ; fa
    40494047    mov dx, strict word 0003eh                ; ba 3e 00
    40504048    mov ax, strict word 00040h                ; b8 40 00
    4051     call 01600h                               ; e8 ab e3
     4049    call 01600h                               ; e8 b1 e3
    40524050    and AL, strict byte 07fh                  ; 24 7f
    40534051    movzx bx, al                              ; 0f b6 d8
    40544052    mov dx, strict word 0003eh                ; ba 3e 00
    40554053    mov ax, strict word 00040h                ; b8 40 00
    4056     call 0160eh                               ; e8 ab e3
     4054    call 0160eh                               ; e8 b1 e3
    40574055    mov dx, 003f4h                            ; ba f4 03
    40584056    in AL, DX                                 ; ec
     
    40614059    and AL, strict byte 0c0h                  ; 24 c0
    40624060    cmp AL, strict byte 0c0h                  ; 3c c0
    4063     je short 0327dh                           ; 74 0e
     4061    je short 03277h                           ; 74 0e
    40644062    push 001e5h                               ; 68 e5 01
    40654063    push 00218h                               ; 68 18 02
    40664064    push strict byte 00007h                   ; 6a 07
    4067     call 018e9h                               ; e8 6f e6
     4065    call 018e9h                               ; e8 75 e6
    40684066    add sp, strict byte 00006h                ; 83 c4 06
    40694067    xor si, si                                ; 31 f6
    4070     jmp short 03286h                          ; eb 05
     4068    jmp short 03280h                          ; eb 05
    40714069    cmp si, strict byte 00007h                ; 83 fe 07
    4072     jnl short 0329eh                          ; 7d 18
     4070    jnl short 03298h                          ; 7d 18
    40734071    mov dx, 003f5h                            ; ba f5 03
    40744072    in AL, DX                                 ; ec
     
    40794077    lea dx, [si+042h]                         ; 8d 54 42
    40804078    mov ax, strict word 00040h                ; b8 40 00
    4081     call 0160eh                               ; e8 73 e3
     4079    call 0160eh                               ; e8 79 e3
    40824080    inc si                                    ; 46
    4083     jmp short 03281h                          ; eb e3
     4081    jmp short 0327bh                          ; eb e3
    40844082    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    4085     je near 03167h                            ; 0f 84 c1 fe
     4083    je near 03161h                            ; 0f 84 c1 fe
    40864084    test byte [bp-011h], 002h                 ; f6 46 ef 02
    4087     je short 032b8h                           ; 74 0c
     4085    je short 032b2h                           ; 74 0c
    40884086    mov word [bp+01ah], 00300h                ; c7 46 1a 00 03
    40894087    or byte [bp+020h], 001h                   ; 80 4e 20 01
    4090     jmp near 02f34h                           ; e9 7c fc
     4088    jmp near 02f2eh                           ; e9 7c fc
    40914089    mov word [bp+01ah], 00100h                ; c7 46 1a 00 01
    4092     jmp short 032b1h                          ; eb f2
     4090    jmp short 032abh                          ; eb f2
    40934091    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40944092    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4095     call 02b5fh                               ; e8 95 f8
     4093    call 02b59h                               ; e8 95 f8
    40964094    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    40974095    mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    4098     jmp near 02f34h                           ; e9 5f fc
     4096    jmp near 02f2eh                           ; e9 5f fc
    40994097    mov al, byte [bp+01ah]                    ; 8a 46 1a
    41004098    mov byte [bp-008h], al                    ; 88 46 f8
     
    41074105    mov byte [bp-00ah], bl                    ; 88 5e f6
    41084106    cmp bl, 001h                              ; 80 fb 01
    4109     jnbe short 03309h                         ; 77 14
     4107    jnbe short 03303h                         ; 77 14
    41104108    cmp AL, strict byte 001h                  ; 3c 01
    4111     jnbe short 03309h                         ; 77 10
     4109    jnbe short 03303h                         ; 77 10
    41124110    cmp dl, 04fh                              ; 80 fa 4f
    4113     jnbe short 03309h                         ; 77 0b
     4111    jnbe short 03303h                         ; 77 0b
    41144112    mov al, byte [bp-008h]                    ; 8a 46 f8
    41154113    test al, al                               ; 84 c0
    4116     je short 03309h                           ; 74 04
     4114    je short 03303h                           ; 74 04
    41174115    cmp AL, strict byte 012h                  ; 3c 12
    4118     jbe short 0331eh                          ; 76 15
     4116    jbe short 03318h                          ; 76 15
    41194117    mov ax, word [bp+01ah]                    ; 8b 46 1a
    41204118    xor ah, ah                                ; 30 e4
     
    41224120    mov word [bp+01ah], ax                    ; 89 46 1a
    41234121    mov ax, strict word 00001h                ; b8 01 00
    4124     call 02b4ah                               ; e8 30 f8
     4122    call 02b44h                               ; e8 30 f8
    41254123    or byte [bp+020h], 001h                   ; 80 4e 20 01
    41264124    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4127     call 02e1eh                               ; e8 f9 fa
     4125    call 02e18h                               ; e8 f9 fa
    41284126    test ax, ax                               ; 85 c0
    4129     je near 02f02h                            ; 0f 84 d7 fb
     4127    je near 02efch                            ; 0f 84 d7 fb
    41304128    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    41314129    mov ax, dx                                ; 89 d0
    4132     call 02c3dh                               ; e8 09 f9
     4130    call 02c37h                               ; e8 09 f9
    41334131    test ax, ax                               ; 85 c0
    4134     jne short 03343h                          ; 75 0b
     4132    jne short 0333dh                          ; 75 0b
    41354133    mov ax, dx                                ; 89 d0
    4136     call 02d24h                               ; e8 e7 f9
     4134    call 02d1eh                               ; e8 e7 f9
    41374135    test ax, ax                               ; 85 c0
    4138     je near 02fd8h                            ; 0f 84 95 fc
     4136    je near 02fd2h                            ; 0f 84 95 fc
    41394137    mov dx, word [bp+00ah]                    ; 8b 56 0a
    41404138    shr dx, 00ch                              ; c1 ea 0c
     
    41454143    add bx, cx                                ; 01 cb
    41464144    cmp bx, cx                                ; 39 cb
    4147     jnc short 0335ch                          ; 73 02
     4145    jnc short 03356h                          ; 73 02
    41484146    db  0feh, 0c4h
    41494147    ; inc ah                                    ; fe c4
     
    41544152    add dx, cx                                ; 01 ca
    41554153    cmp dx, bx                                ; 39 da
    4156     jc near 03018h                            ; 0f 82 aa fc
     4154    jc near 03012h                            ; 0f 82 aa fc
    41574155    mov AL, strict byte 006h                  ; b0 06
    41584156    mov dx, strict word 0000ah                ; ba 0a 00
     
    41864184    out DX, AL                                ; ee
    41874185    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4188     call 02bb1h                               ; e8 00 f8
     4186    call 02babh                               ; e8 00 f8
    41894187    mov AL, strict byte 04dh                  ; b0 4d
    41904188    mov dx, 003f5h                            ; ba f5 03
     
    42074205    mov dx, strict word 00040h                ; ba 40 00
    42084206    mov ax, dx                                ; 89 d0
    4209     call 01600h                               ; e8 22 e2
     4207    call 01600h                               ; e8 28 e2
    42104208    test al, al                               ; 84 c0
    4211     jne short 033e8h                          ; 75 06
    4212     call 02b89h                               ; e8 a4 f7
    4213     jmp near 02f02h                           ; e9 1a fb
     4209    jne short 033e2h                          ; 75 06
     4210    call 02b83h                               ; e8 a4 f7
     4211    jmp near 02efch                           ; e9 1a fb
    42144212    mov dx, strict word 0003eh                ; ba 3e 00
    42154213    mov ax, strict word 00040h                ; b8 40 00
    4216     call 01600h                               ; e8 0f e2
     4214    call 01600h                               ; e8 15 e2
    42174215    and AL, strict byte 080h                  ; 24 80
    42184216    test al, al                               ; 84 c0
    4219     je short 033d6h                           ; 74 df
     4217    je short 033d0h                           ; 74 df
    42204218    cli                                       ; fa
    42214219    mov dx, strict word 0003eh                ; ba 3e 00
    42224220    mov ax, strict word 00040h                ; b8 40 00
    4223     call 01600h                               ; e8 ff e1
     4221    call 01600h                               ; e8 05 e2
    42244222    and AL, strict byte 07fh                  ; 24 7f
    42254223    movzx bx, al                              ; 0f b6 d8
    42264224    mov dx, strict word 0003eh                ; ba 3e 00
    42274225    mov ax, strict word 00040h                ; b8 40 00
    4228     call 0160eh                               ; e8 ff e1
     4226    call 0160eh                               ; e8 05 e2
    42294227    mov dx, 003f4h                            ; ba f4 03
    42304228    in AL, DX                                 ; ec
     
    42334231    and AL, strict byte 0c0h                  ; 24 c0
    42344232    cmp AL, strict byte 0c0h                  ; 3c c0
    4235     je short 03429h                           ; 74 0e
     4233    je short 03423h                           ; 74 0e
    42364234    push 001e5h                               ; 68 e5 01
    42374235    push 00218h                               ; 68 18 02
    42384236    push strict byte 00007h                   ; 6a 07
    4239     call 018e9h                               ; e8 c3 e4
     4237    call 018e9h                               ; e8 c9 e4
    42404238    add sp, strict byte 00006h                ; 83 c4 06
    42414239    xor si, si                                ; 31 f6
    4242     jmp short 03432h                          ; eb 05
     4240    jmp short 0342ch                          ; eb 05
    42434241    cmp si, strict byte 00007h                ; 83 fe 07
    4244     jnl short 0344ah                          ; 7d 18
     4242    jnl short 03444h                          ; 7d 18
    42454243    mov dx, 003f5h                            ; ba f5 03
    42464244    in AL, DX                                 ; ec
     
    42514249    lea dx, [si+042h]                         ; 8d 54 42
    42524250    mov ax, strict word 00040h                ; b8 40 00
    4253     call 0160eh                               ; e8 c7 e1
     4251    call 0160eh                               ; e8 cd e1
    42544252    inc si                                    ; 46
    4255     jmp short 0342dh                          ; eb e3
     4253    jmp short 03427h                          ; eb e3
    42564254    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    4257     je short 03466h                           ; 74 16
     4255    je short 03460h                           ; 74 16
    42584256    test byte [bp-011h], 002h                 ; f6 46 ef 02
    4259     jne near 032ach                           ; 0f 85 54 fe
     4257    jne near 032a6h                           ; 0f 85 54 fe
    42604258    push 001e5h                               ; 68 e5 01
    42614259    push 0022ch                               ; 68 2c 02
    42624260    push strict byte 00007h                   ; 6a 07
    4263     call 018e9h                               ; e8 86 e4
     4261    call 018e9h                               ; e8 8c e4
    42644262    add sp, strict byte 00006h                ; 83 c4 06
    42654263    xor al, al                                ; 30 c0
    42664264    mov byte [bp+01bh], al                    ; 88 46 1b
    42674265    xor ah, ah                                ; 30 e4
    4268     call 02b4ah                               ; e8 da f6
     4266    call 02b44h                               ; e8 da f6
    42694267    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    42704268    xor dx, dx                                ; 31 d2
    4271     call 02b5fh                               ; e8 e6 f6
    4272     jmp near 03176h                           ; e9 fa fc
     4269    call 02b59h                               ; e8 e6 f6
     4270    jmp near 03170h                           ; e9 fa fc
    42734271    mov byte [bp-00ah], ah                    ; 88 66 f6
    42744272    cmp ah, 001h                              ; 80 fc 01
    4275     jbe short 034a4h                          ; 76 20
     4273    jbe short 0349eh                          ; 76 20
    42764274    xor ax, ax                                ; 31 c0
    42774275    mov word [bp+01ah], ax                    ; 89 46 1a
     
    42844282    mov word [bp+016h], ax                    ; 89 46 16
    42854283    mov word [bp+020h], dx                    ; 89 56 20
    4286     jmp near 02f34h                           ; e9 90 fa
     4284    jmp near 02f2eh                           ; e9 90 fa
    42874285    mov ax, strict word 00010h                ; b8 10 00
    4288     call 0165ch                               ; e8 b2 e1
     4286    call 0165ch                               ; e8 b8 e1
    42894287    mov bl, al                                ; 88 c3
    42904288    xor cl, cl                                ; 30 c9
    42914289    test AL, strict byte 0f0h                 ; a8 f0
    4292     je short 034b4h                           ; 74 02
     4290    je short 034aeh                           ; 74 02
    42934291    mov CL, strict byte 001h                  ; b1 01
    42944292    test bl, 00fh                             ; f6 c3 0f
    4295     je short 034bbh                           ; 74 02
     4293    je short 034b5h                           ; 74 02
    42964294    db  0feh, 0c1h
    42974295    ; inc cl                                    ; fe c1
    42984296    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    4299     jne short 034c6h                          ; 75 05
     4297    jne short 034c0h                          ; 75 05
    43004298    shr bl, 004h                              ; c0 eb 04
    4301     jmp short 034c9h                          ; eb 03
     4299    jmp short 034c3h                          ; eb 03
    43024300    and bl, 00fh                              ; 80 e3 0f
    43034301    xor al, al                                ; 30 c0
     
    43134311    mov word [bp+016h], dx                    ; 89 56 16
    43144312    cmp bl, 008h                              ; 80 fb 08
    4315     jnbe short 03544h                         ; 77 59
     4313    jnbe short 0353eh                         ; 77 59
    43164314    add si, si                                ; 01 f6
    43174315    mov ax, dx                                ; 89 d0
     
    43194317    mov bx, ax                                ; 89 c3
    43204318    or bh, 001h                               ; 80 cf 01
    4321     jmp word [cs:si+02e3fh]                   ; 2e ff a4 3f 2e
     4319    jmp word [cs:si+02e39h]                   ; 2e ff a4 39 2e
    43224320    mov word [bp+018h], strict word 00000h    ; c7 46 18 00 00
    43234321    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4324     jmp short 03552h                          ; eb 4c
     4322    jmp short 0354ch                          ; eb 4c
    43254323    mov word [bp+018h], 02709h                ; c7 46 18 09 27
    43264324    mov word [bp+016h], bx                    ; 89 5e 16
    4327     jmp short 03552h                          ; eb 42
     4325    jmp short 0354ch                          ; eb 42
    43284326    mov word [bp+018h], 04f0fh                ; c7 46 18 0f 4f
    4329     jmp short 0350bh                          ; eb f4
     4327    jmp short 03505h                          ; eb f4
    43304328    mov word [bp+018h], 04f09h                ; c7 46 18 09 4f
    4331     jmp short 0350bh                          ; eb ed
     4329    jmp short 03505h                          ; eb ed
    43324330    mov word [bp+018h], 04f12h                ; c7 46 18 12 4f
    4333     jmp short 0350bh                          ; eb e6
     4331    jmp short 03505h                          ; eb e6
    43344332    mov word [bp+018h], 04f24h                ; c7 46 18 24 4f
    4335     jmp short 0350bh                          ; eb df
     4333    jmp short 03505h                          ; eb df
    43364334    mov word [bp+018h], 02708h                ; c7 46 18 08 27
    43374335    mov word [bp+016h], ax                    ; 89 46 16
    4338     jmp short 03552h                          ; eb 1c
     4336    jmp short 0354ch                          ; eb 1c
    43394337    mov word [bp+018h], 02709h                ; c7 46 18 09 27
    4340     jmp short 03531h                          ; eb f4
     4338    jmp short 0352bh                          ; eb f4
    43414339    mov word [bp+018h], 02708h                ; c7 46 18 08 27
    4342     jmp short 0350bh                          ; eb c7
     4340    jmp short 03505h                          ; eb c7
    43434341    push 001e5h                               ; 68 e5 01
    43444342    push 0023dh                               ; 68 3d 02
    43454343    push strict byte 00007h                   ; 6a 07
    4346     call 018e9h                               ; e8 9a e3
     4344    call 018e9h                               ; e8 a0 e3
    43474345    add sp, strict byte 00006h                ; 83 c4 06
    43484346    mov word [bp+00ah], 0f000h                ; c7 46 0a 00 f0
    43494347    mov word [bp+00ch], 0efc7h                ; c7 46 0c c7 ef
    4350     jmp near 03176h                           ; e9 17 fc
     4348    jmp near 03170h                           ; e9 17 fc
    43514349    mov byte [bp-00ah], ah                    ; 88 66 f6
    43524350    cmp ah, 001h                              ; 80 fc 01
    4353     jbe short 0356dh                          ; 76 06
     4351    jbe short 03567h                          ; 76 06
    43544352    mov word [bp+01ah], si                    ; 89 76 1a
    4355     jmp near 0349eh                           ; e9 31 ff
     4353    jmp near 03498h                           ; e9 31 ff
    43564354    mov ax, strict word 00010h                ; b8 10 00
    4357     call 0165ch                               ; e8 e9 e0
     4355    call 0165ch                               ; e8 ef e0
    43584356    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    4359     jne short 03580h                          ; 75 07
     4357    jne short 0357ah                          ; 75 07
    43604358    mov bl, al                                ; 88 c3
    43614359    shr bl, 004h                              ; c0 eb 04
    4362     jmp short 03585h                          ; eb 05
     4360    jmp short 0357fh                          ; eb 05
    43634361    mov bl, al                                ; 88 c3
    43644362    and bl, 00fh                              ; 80 e3 0f
     
    43674365    xor ah, ah                                ; 30 e4
    43684366    test bl, bl                               ; 84 db
    4369     je short 03595h                           ; 74 03
     4367    je short 0358fh                           ; 74 03
    43704368    or ah, 001h                               ; 80 cc 01
    43714369    mov word [bp+01ah], ax                    ; 89 46 1a
    4372     jmp near 02f34h                           ; e9 99 f9
     4370    jmp near 02f2eh                           ; e9 99 f9
    43734371    cmp ah, 001h                              ; 80 fc 01
    4374     jbe short 035ach                          ; 76 0c
     4372    jbe short 035a6h                          ; 76 0c
    43754373    mov word [bp+01ah], si                    ; 89 76 1a
    43764374    mov ax, strict word 00001h                ; b8 01 00
    4377     call 02b4ah                               ; e8 a1 f5
    4378     jmp near 0349eh                           ; e9 f2 fe
     4375    call 02b44h                               ; e8 a1 f5
     4376    jmp near 03498h                           ; e9 f2 fe
    43794377    mov ax, word [bp+01ah]                    ; 8b 46 1a
    43804378    xor ah, ah                                ; 30 e4
     
    43824380    mov word [bp+01ah], ax                    ; 89 46 1a
    43834381    mov ax, strict word 00006h                ; b8 06 00
    4384     jmp near 02ee0h                           ; e9 23 f9
     4382    jmp near 02edah                           ; e9 23 f9
    43854383    mov bx, 00d32h                            ; bb 32 0d
    43864384    mov cx, ds                                ; 8c d9
    43874385    mov ax, strict word 00004h                ; b8 04 00
    4388     call 018aeh                               ; e8 e6 e2
     4386    call 018aeh                               ; e8 ec e2
    43894387    mov ax, word [bp+01ah]                    ; 8b 46 1a
    43904388    shr ax, 008h                              ; c1 e8 08
     
    43934391    push 00252h                               ; 68 52 02
    43944392    push strict byte 00004h                   ; 6a 04
    4395     call 018e9h                               ; e8 0f e3
     4393    call 018e9h                               ; e8 15 e3
    43964394    add sp, strict byte 00008h                ; 83 c4 08
    4397     jmp near 02ed2h                           ; e9 f2 f8
    4398 _cdemu_init:                                 ; 0xf35e0 LB 0x16
     4395    jmp near 02ecch                           ; e9 f2 f8
     4396_cdemu_init:                                 ; 0xf35da LB 0x16
    43994397    push bp                                   ; 55
    44004398    mov bp, sp                                ; 89 e5
    44014399    mov dx, strict word 0000eh                ; ba 0e 00
    44024400    mov ax, strict word 00040h                ; b8 40 00
    4403     call 0161ch                               ; e8 30 e0
     4401    call 0161ch                               ; e8 36 e0
    44044402    xor bx, bx                                ; 31 db
    44054403    mov dx, 00322h                            ; ba 22 03
    4406     call 0160eh                               ; e8 1a e0
     4404    call 0160eh                               ; e8 20 e0
    44074405    pop bp                                    ; 5d
    44084406    retn                                      ; c3
    4409 _cdemu_isactive:                             ; 0xf35f6 LB 0x14
     4407_cdemu_isactive:                             ; 0xf35f0 LB 0x14
    44104408    push bp                                   ; 55
    44114409    mov bp, sp                                ; 89 e5
    44124410    mov dx, strict word 0000eh                ; ba 0e 00
    44134411    mov ax, strict word 00040h                ; b8 40 00
    4414     call 0161ch                               ; e8 1a e0
     4412    call 0161ch                               ; e8 20 e0
    44154413    mov dx, 00322h                            ; ba 22 03
    4416     call 01600h                               ; e8 f8 df
     4414    call 01600h                               ; e8 fe df
    44174415    pop bp                                    ; 5d
    44184416    retn                                      ; c3
    4419 _cdemu_emulated_drive:                       ; 0xf360a LB 0x14
     4417_cdemu_emulated_drive:                       ; 0xf3604 LB 0x14
    44204418    push bp                                   ; 55
    44214419    mov bp, sp                                ; 89 e5
    44224420    mov dx, strict word 0000eh                ; ba 0e 00
    44234421    mov ax, strict word 00040h                ; b8 40 00
    4424     call 0161ch                               ; e8 06 e0
     4422    call 0161ch                               ; e8 0c e0
    44254423    mov dx, 00324h                            ; ba 24 03
    4426     call 01600h                               ; e8 e4 df
     4424    call 01600h                               ; e8 ea df
    44274425    pop bp                                    ; 5d
    44284426    retn                                      ; c3
    4429 _int13_eltorito:                             ; 0xf361e LB 0x186
     4427_int13_eltorito:                             ; 0xf3618 LB 0x186
    44304428    push si                                   ; 56
    44314429    push di                                   ; 57
     
    44344432    mov dx, strict word 0000eh                ; ba 0e 00
    44354433    mov ax, strict word 00040h                ; b8 40 00
    4436     call 0161ch                               ; e8 f0 df
     4434    call 0161ch                               ; e8 f6 df
    44374435    mov si, 00322h                            ; be 22 03
    44384436    mov di, ax                                ; 89 c7
     
    44404438    shr ax, 008h                              ; c1 e8 08
    44414439    cmp ax, strict word 0004bh                ; 3d 4b 00
    4442     jc short 03646h                           ; 72 0a
    4443     jbe short 0366ch                          ; 76 2e
     4440    jc short 03640h                           ; 72 0a
     4441    jbe short 03666h                          ; 76 2e
    44444442    cmp ax, strict word 0004dh                ; 3d 4d 00
    4445     jbe short 0364dh                          ; 76 0a
    4446     jmp near 03768h                           ; e9 22 01
     4443    jbe short 03647h                          ; 76 0a
     4444    jmp near 03762h                           ; e9 22 01
    44474445    cmp ax, strict word 0004ah                ; 3d 4a 00
    4448     jne near 03768h                           ; 0f 85 1b 01
     4446    jne near 03762h                           ; 0f 85 1b 01
    44494447    mov bx, 00d32h                            ; bb 32 0d
    44504448    mov cx, ds                                ; 8c d9
    44514449    mov ax, strict word 00004h                ; b8 04 00
    4452     call 018aeh                               ; e8 56 e2
     4450    call 018aeh                               ; e8 5c e2
    44534451    push word [bp+01ah]                       ; ff 76 1a
    44544452    push 0026ch                               ; 68 6c 02
    44554453    push 0027bh                               ; 68 7b 02
    44564454    push strict byte 00004h                   ; 6a 04
    4457     call 018e9h                               ; e8 83 e2
     4455    call 018e9h                               ; e8 89 e2
    44584456    add sp, strict byte 00008h                ; 83 c4 08
    4459     jmp near 03783h                           ; e9 17 01
     4457    jmp near 0377dh                           ; e9 17 01
    44604458    mov dx, word [bp+00eh]                    ; 8b 56 0e
    44614459    mov ax, word [bp+008h]                    ; 8b 46 08
    44624460    mov bx, strict word 00013h                ; bb 13 00
    4463     call 0160eh                               ; e8 96 df
     4461    call 0160eh                               ; e8 9c df
    44644462    mov es, di                                ; 8e c7
    44654463    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    44674465    inc dx                                    ; 42
    44684466    mov ax, word [bp+008h]                    ; 8b 46 08
    4469     call 0160eh                               ; e8 85 df
     4467    call 0160eh                               ; e8 8b df
    44704468    mov es, di                                ; 8e c7
    44714469    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    44744472    inc dx                                    ; 42
    44754473    mov ax, word [bp+008h]                    ; 8b 46 08
    4476     call 0160eh                               ; e8 73 df
     4474    call 0160eh                               ; e8 79 df
    44774475    mov es, di                                ; 8e c7
    44784476    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    44804478    add dx, strict byte 00003h                ; 83 c2 03
    44814479    mov ax, word [bp+008h]                    ; 8b 46 08
    4482     call 0160eh                               ; e8 60 df
     4480    call 0160eh                               ; e8 66 df
    44834481    mov es, di                                ; 8e c7
    44844482    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    44874485    add dx, strict byte 00004h                ; 83 c2 04
    44884486    mov ax, word [bp+008h]                    ; 8b 46 08
    4489     call 0164ah                               ; e8 86 df
     4487    call 0164ah                               ; e8 8c df
    44904488    mov es, di                                ; 8e c7
    44914489    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    44934491    add dx, strict byte 00008h                ; 83 c2 08
    44944492    mov ax, word [bp+008h]                    ; 8b 46 08
    4495     call 0162ah                               ; e8 54 df
     4493    call 0162ah                               ; e8 5a df
    44964494    mov es, di                                ; 8e c7
    44974495    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    44994497    add dx, strict byte 0000ah                ; 83 c2 0a
    45004498    mov ax, word [bp+008h]                    ; 8b 46 08
    4501     call 0162ah                               ; e8 42 df
     4499    call 0162ah                               ; e8 48 df
    45024500    mov es, di                                ; 8e c7
    45034501    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    45054503    add dx, strict byte 0000ch                ; 83 c2 0c
    45064504    mov ax, word [bp+008h]                    ; 8b 46 08
    4507     call 0162ah                               ; e8 30 df
     4505    call 0162ah                               ; e8 36 df
    45084506    mov es, di                                ; 8e c7
    45094507    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    45114509    add dx, strict byte 0000eh                ; 83 c2 0e
    45124510    mov ax, word [bp+008h]                    ; 8b 46 08
    4513     call 0162ah                               ; e8 1e df
     4511    call 0162ah                               ; e8 24 df
    45144512    mov es, di                                ; 8e c7
    45154513    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    45174515    add dx, strict byte 00010h                ; 83 c2 10
    45184516    mov ax, word [bp+008h]                    ; 8b 46 08
    4519     call 0160eh                               ; e8 ef de
     4517    call 0160eh                               ; e8 f5 de
    45204518    mov es, di                                ; 8e c7
    45214519    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    45234521    add dx, strict byte 00011h                ; 83 c2 11
    45244522    mov ax, word [bp+008h]                    ; 8b 46 08
    4525     call 0160eh                               ; e8 dc de
     4523    call 0160eh                               ; e8 e2 de
    45264524    mov es, di                                ; 8e c7
    45274525    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    45294527    add dx, strict byte 00012h                ; 83 c2 12
    45304528    mov ax, word [bp+008h]                    ; 8b 46 08
    4531     call 0160eh                               ; e8 c9 de
     4529    call 0160eh                               ; e8 cf de
    45324530    test byte [bp+01ah], 0ffh                 ; f6 46 1a ff
    4533     jne short 03751h                          ; 75 06
     4531    jne short 0374bh                          ; 75 06
    45344532    mov es, di                                ; 8e c7
    45354533    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    45384536    mov dx, strict word 00074h                ; ba 74 00
    45394537    mov ax, strict word 00040h                ; b8 40 00
    4540     call 0160eh                               ; e8 ae de
     4538    call 0160eh                               ; e8 b4 de
    45414539    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    45424540    pop bp                                    ; 5d
     
    45474545    mov cx, ds                                ; 8c d9
    45484546    mov ax, strict word 00004h                ; b8 04 00
    4549     call 018aeh                               ; e8 3b e1
     4547    call 018aeh                               ; e8 41 e1
    45504548    mov ax, word [bp+01ah]                    ; 8b 46 1a
    45514549    shr ax, 008h                              ; c1 e8 08
     
    45534551    push 0026ch                               ; 68 6c 02
    45544552    push 002a3h                               ; 68 a3 02
    4555     jmp near 03661h                           ; e9 de fe
     4553    jmp near 0365bh                           ; e9 de fe
    45564554    mov ax, word [bp+01ah]                    ; 8b 46 1a
    45574555    xor ah, ah                                ; 30 e4
     
    45634561    mov dx, strict word 00074h                ; ba 74 00
    45644562    mov ax, strict word 00040h                ; b8 40 00
    4565     call 0160eh                               ; e8 70 de
     4563    call 0160eh                               ; e8 76 de
    45664564    or byte [bp+020h], 001h                   ; 80 4e 20 01
    4567     jmp short 03764h                          ; eb c0
    4568 device_is_cdrom_:                            ; 0xf37a4 LB 0x32
     4565    jmp short 0375eh                          ; eb c0
     4566device_is_cdrom_:                            ; 0xf379e LB 0x32
    45694567    push bx                                   ; 53
    45704568    push dx                                   ; 52
     
    45744572    mov dx, strict word 0000eh                ; ba 0e 00
    45754573    mov ax, strict word 00040h                ; b8 40 00
    4576     call 0161ch                               ; e8 68 de
     4574    call 0161ch                               ; e8 6e de
    45774575    cmp bl, 010h                              ; 80 fb 10
    4578     jc short 037bdh                           ; 72 04
     4576    jc short 037b7h                           ; 72 04
    45794577    xor ax, ax                                ; 31 c0
    4580     jmp short 037d2h                          ; eb 15
     4578    jmp short 037cch                          ; eb 15
    45814579    xor bh, bh                                ; 30 ff
    45824580    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    45844582    add bx, 00122h                            ; 81 c3 22 01
    45854583    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    4586     jne short 037b9h                          ; 75 ea
     4584    jne short 037b3h                          ; 75 ea
    45874585    mov ax, strict word 00001h                ; b8 01 00
    45884586    pop bp                                    ; 5d
     
    45904588    pop bx                                    ; 5b
    45914589    retn                                      ; c3
    4592 cdrom_boot_:                                 ; 0xf37d6 LB 0x410
     4590cdrom_boot_:                                 ; 0xf37d0 LB 0x410
    45934591    push bx                                   ; 53
    45944592    push cx                                   ; 51
     
    45994597    mov dx, strict word 0000eh                ; ba 0e 00
    46004598    mov ax, strict word 00040h                ; b8 40 00
    4601     call 0161ch                               ; e8 34 de
     4599    call 0161ch                               ; e8 3a de
    46024600    mov word [bp-00eh], ax                    ; 89 46 f2
    46034601    mov si, 00322h                            ; be 22 03
     
    46064604    mov word [bp-008h], ax                    ; 89 46 f8
    46074605    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    4608     jmp short 03808h                          ; eb 09
     4606    jmp short 03802h                          ; eb 09
    46094607    inc byte [bp-002h]                        ; fe 46 fe
    46104608    cmp byte [bp-002h], 010h                  ; 80 7e fe 10
    4611     jnc short 03813h                          ; 73 0b
     4609    jnc short 0380dh                          ; 73 0b
    46124610    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    4613     call 037a4h                               ; e8 95 ff
     4611    call 0379eh                               ; e8 95 ff
    46144612    test ax, ax                               ; 85 c0
    4615     je short 037ffh                           ; 74 ec
     4613    je short 037f9h                           ; 74 ec
    46164614    cmp byte [bp-002h], 010h                  ; 80 7e fe 10
    4617     jc short 0381fh                           ; 72 06
     4615    jc short 03819h                           ; 72 06
    46184616    mov ax, strict word 00002h                ; b8 02 00
    4619     jmp near 03b86h                           ; e9 67 03
     4617    jmp near 03b80h                           ; e9 67 03
    46204618    mov cx, strict word 0000ch                ; b9 0c 00
    46214619    xor bx, bx                                ; 31 db
    46224620    mov dx, ss                                ; 8c d2
    46234621    lea ax, [bp-01ch]                         ; 8d 46 e4
    4624     call 0901ah                               ; e8 ee 57
     4622    call 0907ah                               ; e8 54 58
    46254623    mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
    46264624    mov ax, strict word 00011h                ; b8 11 00
     
    46384636    ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08
    46394637    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    4640     jmp short 03864h                          ; eb 09
     4638    jmp short 0385eh                          ; eb 09
    46414639    inc byte [bp-004h]                        ; fe 46 fc
    46424640    cmp byte [bp-004h], 004h                  ; 80 7e fc 04
    4643     jnbe short 0389bh                         ; 77 37
     4641    jnbe short 03895h                         ; 77 37
    46444642    movzx di, byte [bp-002h]                  ; 0f b6 7e fe
    46454643    imul di, di, strict byte 00018h           ; 6b ff 18
     
    46614659    call word [word di+00000h]                ; ff 95 00 00
    46624660    test ax, ax                               ; 85 c0
    4663     jne short 0385bh                          ; 75 c0
     4661    jne short 03855h                          ; 75 c0
    46644662    test ax, ax                               ; 85 c0
    4665     je short 038a5h                           ; 74 06
     4663    je short 0389fh                           ; 74 06
    46664664    mov ax, strict word 00003h                ; b8 03 00
    4667     jmp near 03b86h                           ; e9 e1 02
     4665    jmp near 03b80h                           ; e9 e1 02
    46684666    cmp byte [bp-0081ch], 000h                ; 80 be e4 f7 00
    4669     je short 038b2h                           ; 74 06
     4667    je short 038ach                           ; 74 06
    46704668    mov ax, strict word 00004h                ; b8 04 00
    4671     jmp near 03b86h                           ; e9 d4 02
     4669    jmp near 03b80h                           ; e9 d4 02
    46724670    xor di, di                                ; 31 ff
    4673     jmp short 038bch                          ; eb 06
     4671    jmp short 038b6h                          ; eb 06
    46744672    inc di                                    ; 47
    46754673    cmp di, strict byte 00005h                ; 83 ff 05
    4676     jnc short 038cch                          ; 73 10
     4674    jnc short 038c6h                          ; 73 10
    46774675    mov al, byte [bp+di-0081bh]               ; 8a 83 e5 f7
    46784676    cmp al, byte [di+00d3ah]                  ; 3a 85 3a 0d
    4679     je short 038b6h                           ; 74 f0
     4677    je short 038b0h                           ; 74 f0
    46804678    mov ax, strict word 00005h                ; b8 05 00
    4681     jmp near 03b86h                           ; e9 ba 02
     4679    jmp near 03b80h                           ; e9 ba 02
    46824680    xor di, di                                ; 31 ff
    4683     jmp short 038d6h                          ; eb 06
     4681    jmp short 038d0h                          ; eb 06
    46844682    inc di                                    ; 47
    46854683    cmp di, strict byte 00017h                ; 83 ff 17
    4686     jnc short 038e6h                          ; 73 10
     4684    jnc short 038e0h                          ; 73 10
    46874685    mov al, byte [bp+di-00815h]               ; 8a 83 eb f7
    46884686    cmp al, byte [di+00d40h]                  ; 3a 85 40 0d
    4689     je short 038d0h                           ; 74 f0
     4687    je short 038cah                           ; 74 f0
    46904688    mov ax, strict word 00006h                ; b8 06 00
    4691     jmp near 03b86h                           ; e9 a0 02
     4689    jmp near 03b80h                           ; e9 a0 02
    46924690    mov ax, word [bp-007d5h]                  ; 8b 86 2b f8
    46934691    mov dx, word [bp-007d3h]                  ; 8b 96 2d f8
     
    47204718    call word [word di+00000h]                ; ff 95 00 00
    47214719    test ax, ax                               ; 85 c0
    4722     je short 03943h                           ; 74 06
     4720    je short 0393dh                           ; 74 06
    47234721    mov ax, strict word 00007h                ; b8 07 00
    4724     jmp near 03b86h                           ; e9 43 02
     4722    jmp near 03b80h                           ; e9 43 02
    47254723    cmp byte [bp-0081ch], 001h                ; 80 be e4 f7 01
    4726     je short 03950h                           ; 74 06
     4724    je short 0394ah                           ; 74 06
    47274725    mov ax, strict word 00008h                ; b8 08 00
    4728     jmp near 03b86h                           ; e9 36 02
     4726    jmp near 03b80h                           ; e9 36 02
    47294727    cmp byte [bp-0081bh], 000h                ; 80 be e5 f7 00
    4730     je short 0395dh                           ; 74 06
     4728    je short 03957h                           ; 74 06
    47314729    mov ax, strict word 00009h                ; b8 09 00
    4732     jmp near 03b86h                           ; e9 29 02
     4730    jmp near 03b80h                           ; e9 29 02
    47334731    cmp byte [bp-007feh], 055h                ; 80 be 02 f8 55
    4734     je short 0396ah                           ; 74 06
     4732    je short 03964h                           ; 74 06
    47354733    mov ax, strict word 0000ah                ; b8 0a 00
    4736     jmp near 03b86h                           ; e9 1c 02
     4734    jmp near 03b80h                           ; e9 1c 02
    47374735    cmp byte [bp-007fdh], 0aah                ; 80 be 03 f8 aa
    4738     jne short 03964h                          ; 75 f3
     4736    jne short 0395eh                          ; 75 f3
    47394737    cmp byte [bp-007fch], 088h                ; 80 be 04 f8 88
    4740     je short 0397eh                           ; 74 06
     4738    je short 03978h                           ; 74 06
    47414739    mov ax, strict word 0000bh                ; b8 0b 00
    4742     jmp near 03b86h                           ; e9 08 02
     4740    jmp near 03b80h                           ; e9 08 02
    47434741    mov al, byte [bp-007fbh]                  ; 8a 86 05 f8
    47444742    mov es, [bp-006h]                         ; 8e 46 fa
    47454743    mov byte [es:si+001h], al                 ; 26 88 44 01
    47464744    cmp byte [bp-007fbh], 000h                ; 80 be 05 f8 00
    4747     jne short 03997h                          ; 75 07
     4745    jne short 03991h                          ; 75 07
    47484746    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    4749     jmp short 039aah                          ; eb 13
     4747    jmp short 039a4h                          ; eb 13
    47504748    cmp byte [bp-007fbh], 004h                ; 80 be 05 f8 04
    4751     jnc short 039a5h                          ; 73 07
     4749    jnc short 0399fh                          ; 73 07
    47524750    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    4753     jmp short 039aah                          ; eb 05
     4751    jmp short 039a4h                          ; eb 05
    47544752    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    47554753    movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     
    47694767    mov word [bp-00ch], ax                    ; 89 46 f4
    47704768    test ax, ax                               ; 85 c0
    4771     jne short 039d8h                          ; 75 05
     4769    jne short 039d2h                          ; 75 05
    47724770    mov word [bp-00ch], 007c0h                ; c7 46 f4 c0 07
    47734771    mov ax, word [bp-00ch]                    ; 8b 46 f4
     
    47784776    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    47794777    test di, di                               ; 85 ff
    4780     je short 039fah                           ; 74 06
     4778    je short 039f4h                           ; 74 06
    47814779    cmp di, 00400h                            ; 81 ff 00 04
    4782     jbe short 03a00h                          ; 76 06
     4780    jbe short 039fah                          ; 76 06
    47834781    mov ax, strict word 0000ch                ; b8 0c 00
    4784     jmp near 03b86h                           ; e9 86 01
     4782    jmp near 03b80h                           ; e9 86 01
    47854783    mov ax, word [bp-007f4h]                  ; 8b 86 0c f8
    47864784    mov dx, word [bp-007f2h]                  ; 8b 96 0e f8
     
    48224820    sal ax, 1                                 ; d1 e0
    48234821    rcl di, 1                                 ; d1 d7
    4824     loop 03a6eh                               ; e2 fa
     4822    loop 03a68h                               ; e2 fa
    48254823    push di                                   ; 57
    48264824    push ax                                   ; 50
     
    48354833    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
    48364834    test ax, ax                               ; 85 c0
    4837     je short 03a9eh                           ; 74 06
     4835    je short 03a98h                           ; 74 06
    48384836    mov ax, strict word 0000dh                ; b8 0d 00
    4839     jmp near 03b86h                           ; e9 e8 00
     4837    jmp near 03b80h                           ; e9 e8 00
    48404838    mov es, [bp-006h]                         ; 8e 46 fa
    48414839    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    48424840    cmp AL, strict byte 002h                  ; 3c 02
    4843     jc short 03ab6h                           ; 72 0d
    4844     jbe short 03aceh                          ; 76 23
     4841    jc short 03ab0h                           ; 72 0d
     4842    jbe short 03ac8h                          ; 76 23
    48454843    cmp AL, strict byte 004h                  ; 3c 04
    4846     je short 03ae4h                           ; 74 35
     4844    je short 03adeh                           ; 74 35
    48474845    cmp AL, strict byte 003h                  ; 3c 03
    4848     je short 03ad9h                           ; 74 26
    4849     jmp near 03b2fh                           ; e9 79 00
     4846    je short 03ad3h                           ; 74 26
     4847    jmp near 03b29h                           ; e9 79 00
    48504848    cmp AL, strict byte 001h                  ; 3c 01
    4851     jne short 03b2fh                          ; 75 75
     4849    jne short 03b29h                          ; 75 75
    48524850    mov es, [bp-006h]                         ; 8e 46 fa
    48534851    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    48544852    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    48554853    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    4856     jmp short 03b2fh                          ; eb 61
     4854    jmp short 03b29h                          ; eb 61
    48574855    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    48584856    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    4859     jmp short 03ac6h                          ; eb ed
     4857    jmp short 03ac0h                          ; eb ed
    48604858    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    48614859    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    4862     jmp short 03ac6h                          ; eb e2
     4860    jmp short 03ac0h                          ; eb e2
    48634861    mov dx, 001c4h                            ; ba c4 01
    48644862    mov ax, word [bp-00ch]                    ; 8b 46 f4
    4865     call 01600h                               ; e8 13 db
     4863    call 01600h                               ; e8 19 db
    48664864    and AL, strict byte 03fh                  ; 24 3f
    48674865    xor ah, ah                                ; 30 e4
     
    48704868    mov dx, 001c4h                            ; ba c4 01
    48714869    mov ax, word [bp-00ch]                    ; 8b 46 f4
    4872     call 01600h                               ; e8 ff da
     4870    call 01600h                               ; e8 05 db
    48734871    movzx bx, al                              ; 0f b6 d8
    48744872    sal bx, 002h                              ; c1 e3 02
    48754873    mov dx, 001c5h                            ; ba c5 01
    48764874    mov ax, word [bp-00ch]                    ; 8b 46 f4
    4877     call 01600h                               ; e8 f0 da
     4875    call 01600h                               ; e8 f6 da
    48784876    xor ah, ah                                ; 30 e4
    48794877    add ax, bx                                ; 01 d8
     
    48834881    mov dx, 001c3h                            ; ba c3 01
    48844882    mov ax, word [bp-00ch]                    ; 8b 46 f4
    4885     call 01600h                               ; e8 db da
     4883    call 01600h                               ; e8 e1 da
    48864884    xor ah, ah                                ; 30 e4
    48874885    inc ax                                    ; 40
     
    48904888    mov es, [bp-006h]                         ; 8e 46 fa
    48914889    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4892     je short 03b6dh                           ; 74 34
     4890    je short 03b67h                           ; 74 34
    48934891    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    4894     jne short 03b56h                          ; 75 16
     4892    jne short 03b50h                          ; 75 16
    48954893    mov dx, strict word 00010h                ; ba 10 00
    48964894    mov ax, strict word 00040h                ; b8 40 00
    4897     call 01600h                               ; e8 b7 da
     4895    call 01600h                               ; e8 bd da
    48984896    or AL, strict byte 041h                   ; 0c 41
    48994897    movzx bx, al                              ; 0f b6 d8
    49004898    mov dx, strict word 00010h                ; ba 10 00
    49014899    mov ax, strict word 00040h                ; b8 40 00
    4902     jmp short 03b6ah                          ; eb 14
     4900    jmp short 03b64h                          ; eb 14
    49034901    mov dx, 002c0h                            ; ba c0 02
    49044902    mov ax, word [bp-00eh]                    ; 8b 46 f2
    4905     call 01600h                               ; e8 a1 da
     4903    call 01600h                               ; e8 a7 da
    49064904    db  0feh, 0c0h
    49074905    ; inc al                                    ; fe c0
     
    49094907    mov dx, 002c0h                            ; ba c0 02
    49104908    mov ax, word [bp-00eh]                    ; 8b 46 f2
    4911     call 0160eh                               ; e8 a1 da
     4909    call 0160eh                               ; e8 a7 da
    49124910    mov es, [bp-006h]                         ; 8e 46 fa
    49134911    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4914     je short 03b7bh                           ; 74 04
     4912    je short 03b75h                           ; 74 04
    49154913    mov byte [es:si], 001h                    ; 26 c6 04 01
    49164914    mov es, [bp-006h]                         ; 8e 46 fa
     
    49424940    add AL, strict byte 003h                  ; 04 03
    49434941    add al, byte [bx+di]                      ; 02 01
    4944     add byte [bx+di+03fh], bh                 ; 00 79 3f
    4945     mov bh, byte [si]                         ; 8a 3c
    4946     sar word [si], 1                          ; d1 3c
    4947     stc                                       ; f9
    4948     cmp AL, strict byte 0c6h                  ; 3c c6
    4949     cmp AL, strict byte 0f9h                  ; 3c f9
    4950     cmp AL, strict byte 0c6h                  ; 3c c6
    4951     cmp AL, strict byte 0cfh                  ; 3c cf
    4952     db  03eh, 0afh
    4953     ; ds scasw                                  ; 3e af
    4954     cmp AL, strict byte 079h                  ; 3c 79
     4942    add byte [bp+di+03fh], dh                 ; 00 73 3f
     4943    test byte [si], bh                        ; 84 3c
     4944    retf                                      ; cb
     4945    cmp AL, strict byte 0f3h                  ; 3c f3
     4946    cmp AL, strict byte 0c0h                  ; 3c c0
     4947    cmp AL, strict byte 0f3h                  ; 3c f3
     4948    cmp AL, strict byte 0c0h                  ; 3c c0
     4949    cmp AL, strict byte 0c9h                  ; 3c c9
     4950    db  03eh, 0a9h, 03ch, 073h
     4951    ; ds test ax, 0733ch                        ; 3e a9 3c 73
    49554952    aas                                       ; 3f
    4956     jns short 03bffh                          ; 79 3f
    4957     scasw                                     ; af
    4958     cmp AL, strict byte 0afh                  ; 3c af
    4959     cmp AL, strict byte 0afh                  ; 3c af
    4960     cmp AL, strict byte 0afh                  ; 3c af
    4961     cmp AL, strict byte 0afh                  ; 3c af
    4962     cmp AL, strict byte 070h                  ; 3c 70
     4953    jnc short 03bf9h                          ; 73 3f
     4954    test ax, 0a93ch                           ; a9 3c a9
     4955    cmp AL, strict byte 0a9h                  ; 3c a9
     4956    cmp AL, strict byte 0a9h                  ; 3c a9
     4957    cmp AL, strict byte 0a9h                  ; 3c a9
     4958    cmp AL, strict byte 06ah                  ; 3c 6a
    49634959    aas                                       ; 3f
    4964     scasw                                     ; af
    4965     cmp AL, strict byte 079h                  ; 3c 79
     4960    test ax, 0733ch                           ; a9 3c 73
    49664961    aas                                       ; 3f
    4967     jns short 03c11h                          ; 79 3f
    4968     jns short 03c13h                          ; 79 3f
    4969     jns short 03c15h                          ; 79 3f
    4970     jns short 03c17h                          ; 79 3f
    4971     jns short 03c19h                          ; 79 3f
    4972     jns short 03c1bh                          ; 79 3f
    4973     jns short 03c1dh                          ; 79 3f
    4974     jns short 03c1fh                          ; 79 3f
    4975     jns short 03c21h                          ; 79 3f
    4976     jns short 03c23h                          ; 79 3f
    4977     jns short 03c25h                          ; 79 3f
    4978 _int13_cdemu:                                ; 0xf3be6 LB 0x42f
     4962    jnc short 03c0bh                          ; 73 3f
     4963    jnc short 03c0dh                          ; 73 3f
     4964    jnc short 03c0fh                          ; 73 3f
     4965    jnc short 03c11h                          ; 73 3f
     4966    jnc short 03c13h                          ; 73 3f
     4967    jnc short 03c15h                          ; 73 3f
     4968    jnc short 03c17h                          ; 73 3f
     4969    jnc short 03c19h                          ; 73 3f
     4970    jnc short 03c1bh                          ; 73 3f
     4971    jnc short 03c1dh                          ; 73 3f
     4972    jnc short 03c1fh                          ; 73 3f
     4973_int13_cdemu:                                ; 0xf3be0 LB 0x42f
    49794974    push si                                   ; 56
    49804975    push di                                   ; 57
     
    49824977    mov dx, strict word 0000eh                ; ba 0e 00
    49834978    mov ax, strict word 00040h                ; b8 40 00
    4984     call 0161ch                               ; e8 27 da
     4979    call 0161ch                               ; e8 2d da
    49854980    mov di, 00322h                            ; bf 22 03
    49864981    mov cx, ax                                ; 89 c1
     
    49984993    mov dx, strict word 00074h                ; ba 74 00
    49994994    mov ax, strict word 00040h                ; b8 40 00
    5000     call 0160eh                               ; e8 ea d9
     4995    call 0160eh                               ; e8 f0 d9
    50014996    mov es, cx                                ; 8e c1
    50024997    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5003     je short 03c3ah                           ; 74 0e
     4998    je short 03c34h                           ; 74 0e
    50044999    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    50055000    mov ax, word [bp+016h]                    ; 8b 46 16
    50065001    xor ah, ah                                ; 30 e4
    50075002    cmp dx, ax                                ; 39 c2
    5008     je short 03c63h                           ; 74 29
     5003    je short 03c5dh                           ; 74 29
    50095004    mov bx, 00d32h                            ; bb 32 0d
    50105005    mov cx, ds                                ; 8c d9
    50115006    mov ax, strict word 00004h                ; b8 04 00
    5012     call 018aeh                               ; e8 69 dc
     5007    call 018aeh                               ; e8 6f dc
    50135008    mov ax, word [bp+016h]                    ; 8b 46 16
    50145009    xor ah, ah                                ; 30 e4
     
    50205015    push 002c8h                               ; 68 c8 02
    50215016    push strict byte 00004h                   ; 6a 04
    5022     call 018e9h                               ; e8 8c dc
     5017    call 018e9h                               ; e8 92 dc
    50235018    add sp, strict byte 0000ah                ; 83 c4 0a
    5024     jmp near 03f99h                           ; e9 36 03
     5019    jmp near 03f93h                           ; e9 36 03
    50255020    mov ax, word [bp+01ah]                    ; 8b 46 1a
    50265021    shr ax, 008h                              ; c1 e8 08
    50275022    cmp ax, strict word 00050h                ; 3d 50 00
    5028     jnbe near 03f79h                          ; 0f 87 09 03
     5023    jnbe near 03f73h                          ; 0f 87 09 03
    50295024    push CS                                   ; 0e
    50305025    pop ES                                    ; 07
    50315026    mov cx, strict word 0001eh                ; b9 1e 00
    5032     mov di, 03b8dh                            ; bf 8d 3b
     5027    mov di, 03b87h                            ; bf 87 3b
    50335028    repne scasb                               ; f2 ae
    50345029    sal cx, 1                                 ; d1 e1
    50355030    mov di, cx                                ; 89 cf
    5036     mov ax, word [cs:di+03baah]               ; 2e 8b 85 aa 3b
     5031    mov ax, word [cs:di+03ba4h]               ; 2e 8b 85 a4 3b
    50375032    mov bx, word [bp+01ah]                    ; 8b 5e 1a
    50385033    xor bh, bh                                ; 30 ff
     
    50455040    add bx, bx                                ; 01 db
    50465041    cmp word [word bx+00000h], strict byte 00000h ; 83 bf 00 00 00
    5047     je near 03cafh                            ; 0f 84 08 00
     5042    je near 03ca9h                            ; 0f 84 08 00
    50485043    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    50495044    call word [word bx+0000ch]                ; ff 97 0c 00
     
    50525047    mov dx, strict word 00074h                ; ba 74 00
    50535048    mov ax, strict word 00040h                ; b8 40 00
    5054     call 0160eh                               ; e8 50 d9
     5049    call 0160eh                               ; e8 56 d9
    50555050    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    50565051    leave                                     ; c9
     
    50615056    xor ah, ah                                ; 30 e4
    50625057    or ah, 003h                               ; 80 cc 03
    5063     jmp near 03fa1h                           ; e9 d0 02
     5058    jmp near 03f9bh                           ; e9 d0 02
    50645059    mov dx, strict word 00074h                ; ba 74 00
    50655060    mov ax, strict word 00040h                ; b8 40 00
    5066     call 01600h                               ; e8 26 d9
     5061    call 01600h                               ; e8 2c d9
    50675062    mov cl, al                                ; 88 c1
    50685063    movzx ax, cl                              ; 0f b6 c1
     
    50735068    mov dx, strict word 00074h                ; ba 74 00
    50745069    mov ax, strict word 00040h                ; b8 40 00
    5075     call 0160eh                               ; e8 1c d9
     5070    call 0160eh                               ; e8 22 d9
    50765071    test cl, cl                               ; 84 c9
    5077     je short 03cb3h                           ; 74 bd
    5078     jmp near 03fb5h                           ; e9 bc 02
     5072    je short 03cadh                           ; 74 bd
     5073    jmp near 03fafh                           ; e9 bc 02
    50795074    mov es, [bp-004h]                         ; 8e 46 fc
    50805075    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    51005095    mov word [bp-006h], cx                    ; 89 4e fa
    51015096    test cx, cx                               ; 85 c9
    5102     jne short 03d46h                          ; 75 03
    5103     jmp near 03cafh                           ; e9 69 ff
     5097    jne short 03d40h                          ; 75 03
     5098    jmp near 03ca9h                           ; e9 69 ff
    51045099    cmp di, word [bp-00ch]                    ; 3b 7e f4
    5105     jc near 03f99h                            ; 0f 82 4c 02
     5100    jc near 03f93h                            ; 0f 82 4c 02
    51065101    cmp ax, dx                                ; 39 d0
    5107     jnc near 03f99h                           ; 0f 83 46 02
     5102    jnc near 03f93h                           ; 0f 83 46 02
    51085103    cmp si, bx                                ; 39 de
    5109     jnc near 03f99h                           ; 0f 83 40 02
     5104    jnc near 03f93h                           ; 0f 83 40 02
    51105105    mov dx, word [bp+01ah]                    ; 8b 56 1a
    51115106    shr dx, 008h                              ; c1 ea 08
    51125107    cmp dx, strict byte 00004h                ; 83 fa 04
    5113     jne short 03d67h                          ; 75 03
    5114     jmp near 03cafh                           ; e9 48 ff
     5108    jne short 03d61h                          ; 75 03
     5109    jmp near 03ca9h                           ; e9 48 ff
    51155110    mov dx, word [bp+014h]                    ; 8b 56 14
    51165111    shr dx, 004h                              ; c1 ea 04
     
    51235118    xor dl, dl                                ; 30 d2
    51245119    xor cx, cx                                ; 31 c9
    5125     call 08fe9h                               ; e8 64 52
     5120    call 09049h                               ; e8 ca 52
    51265121    xor bx, bx                                ; 31 db
    51275122    add ax, si                                ; 01 f0
     
    51295124    mov bx, di                                ; 89 fb
    51305125    xor cx, cx                                ; 31 c9
    5131     call 08fe9h                               ; e8 57 52
     5126    call 09049h                               ; e8 bd 52
    51325127    mov bx, ax                                ; 89 c3
    51335128    mov ax, word [bp-00ch]                    ; 8b 46 f4
     
    51645159    mov dx, ss                                ; 8c d2
    51655160    lea ax, [bp-02ah]                         ; 8d 46 d6
    5166     call 0901ah                               ; e8 31 52
     5161    call 0907ah                               ; e8 97 52
    51675162    mov word [bp-02ah], strict word 00028h    ; c7 46 d6 28 00
    51685163    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    52125207    sal si, 1                                 ; d1 e6
    52135208    rcl di, 1                                 ; d1 d7
    5214     loop 03e69h                               ; e2 fa
     5209    loop 03e63h                               ; e2 fa
    52155210    push di                                   ; 57
    52165211    push si                                   ; 56
     
    52275222    ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00
    52285223    test al, al                               ; 84 c0
    5229     je near 03cafh                            ; 0f 84 16 fe
     5224    je near 03ca9h                            ; 0f 84 16 fe
    52305225    mov bx, 00d32h                            ; bb 32 0d
    52315226    mov cx, ds                                ; 8c d9
    52325227    mov ax, strict word 00004h                ; b8 04 00
    5233     call 018aeh                               ; e8 0a da
     5228    call 018aeh                               ; e8 10 da
    52345229    movzx ax, dl                              ; 0f b6 c2
    52355230    push ax                                   ; 50
     
    52405235    push 002feh                               ; 68 fe 02
    52415236    push strict byte 00004h                   ; 6a 04
    5242     call 018e9h                               ; e8 2f da
     5237    call 018e9h                               ; e8 35 da
    52435238    add sp, strict byte 0000ah                ; 83 c4 0a
    52445239    mov ax, word [bp+01ah]                    ; 8b 46 1a
     
    52475242    mov word [bp+01ah], ax                    ; 89 46 1a
    52485243    mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    5249     jmp near 03fa4h                           ; e9 d5 00
     5244    jmp near 03f9eh                           ; e9 d5 00
    52505245    mov es, [bp-004h]                         ; 8e 46 fc
    52515246    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    52865281    mov word [bp+014h], ax                    ; 89 46 14
    52875282    cmp dl, 003h                              ; 80 fa 03
    5288     je short 03f53h                           ; 74 1a
     5283    je short 03f4dh                           ; 74 1a
    52895284    cmp dl, 002h                              ; 80 fa 02
    5290     je short 03f4fh                           ; 74 11
     5285    je short 03f49h                           ; 74 11
    52915286    cmp dl, 001h                              ; 80 fa 01
    5292     jne short 03f57h                          ; 75 14
     5287    jne short 03f51h                          ; 75 14
    52935288    mov ax, word [bp+014h]                    ; 8b 46 14
    52945289    xor al, al                                ; 30 c0
    52955290    or AL, strict byte 002h                   ; 0c 02
    52965291    mov word [bp+014h], ax                    ; 89 46 14
    5297     jmp short 03f57h                          ; eb 08
     5292    jmp short 03f51h                          ; eb 08
    52985293    or AL, strict byte 004h                   ; 0c 04
    5299     jmp short 03f4ah                          ; eb f7
     5294    jmp short 03f44h                          ; eb f7
    53005295    or AL, strict byte 005h                   ; 0c 05
    5301     jmp short 03f4ah                          ; eb f3
     5296    jmp short 03f44h                          ; eb f3
    53025297    mov es, [bp-004h]                         ; 8e 46 fc
    53035298    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    5304     jnc near 03cafh                           ; 0f 83 4c fd
     5299    jnc near 03ca9h                           ; 0f 83 4c fd
    53055300    mov word [bp+00ch], 0efc7h                ; c7 46 0c c7 ef
    53065301    mov word [bp+00ah], 0f000h                ; c7 46 0a 00 f0
    5307     jmp near 03cafh                           ; e9 3f fd
     5302    jmp near 03ca9h                           ; e9 3f fd
    53085303    or bh, 003h                               ; 80 cf 03
    53095304    mov word [bp+01ah], bx                    ; 89 5e 1a
    5310     jmp near 03cb3h                           ; e9 3a fd
     5305    jmp near 03cadh                           ; e9 3a fd
    53115306    mov bx, 00d32h                            ; bb 32 0d
    53125307    mov cx, ds                                ; 8c d9
    53135308    mov ax, strict word 00004h                ; b8 04 00
    5314     call 018aeh                               ; e8 2a d9
     5309    call 018aeh                               ; e8 30 d9
    53155310    mov ax, word [bp+01ah]                    ; 8b 46 1a
    53165311    shr ax, 008h                              ; c1 e8 08
     
    53195314    push 0031fh                               ; 68 1f 03
    53205315    push strict byte 00004h                   ; 6a 04
    5321     call 018e9h                               ; e8 53 d9
     5316    call 018e9h                               ; e8 59 d9
    53225317    add sp, strict byte 00008h                ; 83 c4 08
    53235318    mov ax, word [bp+01ah]                    ; 8b 46 1a
     
    53305325    mov dx, strict word 00074h                ; ba 74 00
    53315326    mov ax, strict word 00040h                ; b8 40 00
    5332     call 0160eh                               ; e8 59 d6
     5327    call 0160eh                               ; e8 5f d6
    53335328    or byte [bp+020h], 001h                   ; 80 4e 20 01
    5334     jmp near 03cc2h                           ; e9 06 fd
     5329    jmp near 03cbch                           ; e9 06 fd
    53355330    push ax                                   ; 50
    53365331    dec si                                    ; 4e
     
    53515346    add AL, strict byte 003h                  ; 04 03
    53525347    add al, byte [bx+di]                      ; 02 01
    5353     add byte [di+045h], dl                    ; 00 55 45
    5354     aam 042h                                  ; d4 42
    5355     rol byte [bx+si+055h], 045h               ; c0 40 55 45
    5356     mov CH, strict byte 040h                  ; b5 40
    5357     push bp                                   ; 55
     5348    add byte [bx+045h], cl                    ; 00 4f 45
     5349    into                                      ; ce
     5350    inc dx                                    ; 42
     5351    mov dx, 04f40h                            ; ba 40 4f
    53585352    inc bp                                    ; 45
    5359     mov CH, strict byte 040h                  ; b5 40
    5360     push bp                                   ; 55
     5353    scasw                                     ; af
     5354    inc ax                                    ; 40
     5355    dec di                                    ; 4f
    53615356    inc bp                                    ; 45
    5362     aam 042h                                  ; d4 42
    5363     push bp                                   ; 55
     5357    scasw                                     ; af
     5358    inc ax                                    ; 40
     5359    dec di                                    ; 4f
    53645360    inc bp                                    ; 45
    5365     push bp                                   ; 55
     5361    into                                      ; ce
     5362    inc dx                                    ; 42
     5363    dec di                                    ; 4f
    53665364    inc bp                                    ; 45
    5367     aam 042h                                  ; d4 42
    5368     aam 042h                                  ; d4 42
    5369     aam 042h                                  ; d4 42
    5370     aam 042h                                  ; d4 42
    5371     aam 042h                                  ; d4 42
    5372     jmp far 05542h:0d440h                     ; ea 40 d4 42 55
     5365    dec di                                    ; 4f
    53735366    inc bp                                    ; 45
    5374     rep inc ax                                ; f3 40
    5375     push ES                                   ; 06
    5376     inc cx                                    ; 41
    5377     mov CH, strict byte 040h                  ; b5 40
    5378     push ES                                   ; 06
    5379     inc cx                                    ; 41
    5380     xor AL, strict byte 042h                  ; 34 42
    5381     jmp short 0404dh                          ; eb 42
    5382     push ES                                   ; 06
    5383     inc cx                                    ; 41
    5384     adc al, byte [bp+di+00eh]                 ; 12 43 0e
     5367    into                                      ; ce
     5368    inc dx                                    ; 42
     5369    into                                      ; ce
     5370    inc dx                                    ; 42
     5371    into                                      ; ce
     5372    inc dx                                    ; 42
     5373    into                                      ; ce
     5374    inc dx                                    ; 42
     5375    into                                      ; ce
     5376    inc dx                                    ; 42
     5377    in AL, strict byte 040h                   ; e4 40
     5378    into                                      ; ce
     5379    inc dx                                    ; 42
     5380    dec di                                    ; 4f
    53855381    inc bp                                    ; 45
    5386     push SS                                   ; 16
     5382    in ax, DX                                 ; ed
     5383    inc ax                                    ; 40
     5384    add byte [bx+di-051h], al                 ; 00 41 af
     5385    inc ax                                    ; 40
     5386    add byte [bx+di+02eh], al                 ; 00 41 2e
     5387    inc dx                                    ; 42
     5388    in ax, 042h                               ; e5 42
     5389    add byte [bx+di+00ch], al                 ; 00 41 0c
     5390    inc bx                                    ; 43
     5391    or byte [di+010h], al                     ; 08 45 10
    53875392    inc bp                                    ; 45
    5388     push bp                                   ; 55
     5393    dec di                                    ; 4f
    53895394    inc bp                                    ; 45
    5390 _int13_cdrom:                                ; 0xf4015 LB 0x55d
     5395_int13_cdrom:                                ; 0xf400f LB 0x55d
    53915396    push si                                   ; 56
    53925397    push di                                   ; 57
     
    53945399    mov dx, strict word 0000eh                ; ba 0e 00
    53955400    mov ax, strict word 00040h                ; b8 40 00
    5396     call 0161ch                               ; e8 f8 d5
     5401    call 0161ch                               ; e8 fe d5
    53975402    mov word [bp-016h], ax                    ; 89 46 ea
    53985403    mov si, 00122h                            ; be 22 01
     
    54015406    mov dx, strict word 00074h                ; ba 74 00
    54025407    mov ax, strict word 00040h                ; b8 40 00
    5403     call 0160eh                               ; e8 d6 d5
     5408    call 0160eh                               ; e8 dc d5
    54045409    mov ax, word [bp+014h]                    ; 8b 46 14
    54055410    xor ah, ah                                ; 30 e4
    54065411    cmp ax, 000e0h                            ; 3d e0 00
    5407     jc short 04047h                           ; 72 05
     5412    jc short 04041h                           ; 72 05
    54085413    cmp ax, 000f0h                            ; 3d f0 00
    5409     jc short 04065h                           ; 72 1e
     5414    jc short 0405fh                           ; 72 1e
    54105415    mov ax, word [bp+014h]                    ; 8b 46 14
    54115416    xor ah, ah                                ; 30 e4
     
    54175422    push 0035bh                               ; 68 5b 03
    54185423    push strict byte 00004h                   ; 6a 04
    5419     call 018e9h                               ; e8 8a d8
     5424    call 018e9h                               ; e8 90 d8
    54205425    add sp, strict byte 0000ah                ; 83 c4 0a
    5421     jmp near 04532h                           ; e9 cd 04
     5426    jmp near 0452ch                           ; e9 cd 04
    54225427    mov ax, word [bp+014h]                    ; 8b 46 14
    54235428    xor ah, ah                                ; 30 e4
     
    54285433    mov byte [bp-004h], dl                    ; 88 56 fc
    54295434    cmp dl, 010h                              ; 80 fa 10
    5430     jc short 0408eh                           ; 72 10
     5435    jc short 04088h                           ; 72 10
    54315436    push ax                                   ; 50
    54325437    mov ax, word [bp+01ch]                    ; 8b 46 1c
     
    54355440    push 0034fh                               ; 68 4f 03
    54365441    push 00386h                               ; 68 86 03
    5437     jmp short 0405ah                          ; eb cc
     5442    jmp short 04054h                          ; eb cc
    54385443    mov ax, word [bp+01ch]                    ; 8b 46 1c
    54395444    shr ax, 008h                              ; c1 e8 08
    54405445    cmp ax, strict word 00050h                ; 3d 50 00
    5441     jnbe near 04555h                          ; 0f 87 ba 04
     5446    jnbe near 0454fh                          ; 0f 87 ba 04
    54425447    push CS                                   ; 0e
    54435448    pop ES                                    ; 07
    54445449    mov cx, strict word 0001eh                ; b9 1e 00
    5445     mov di, 03fbch                            ; bf bc 3f
     5450    mov di, 03fb6h                            ; bf b6 3f
    54465451    repne scasb                               ; f2 ae
    54475452    sal cx, 1                                 ; d1 e1
    54485453    mov di, cx                                ; 89 cf
    5449     mov ax, word [cs:di+03fd9h]               ; 2e 8b 85 d9 3f
     5454    mov ax, word [cs:di+03fd3h]               ; 2e 8b 85 d3 3f
    54505455    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    54515456    xor bh, bh                                ; 30 ff
     
    54545459    xor ah, ah                                ; 30 e4
    54555460    or ah, 003h                               ; 80 cc 03
    5456     jmp near 0453ah                           ; e9 7a 04
     5461    jmp near 04534h                           ; e9 7a 04
    54575462    mov dx, strict word 00074h                ; ba 74 00
    54585463    mov ax, strict word 00040h                ; b8 40 00
    5459     call 01600h                               ; e8 37 d5
     5464    call 01600h                               ; e8 3d d5
    54605465    mov cl, al                                ; 88 c1
    54615466    movzx ax, cl                              ; 0f b6 c1
     
    54665471    mov dx, strict word 00074h                ; ba 74 00
    54675472    mov ax, strict word 00040h                ; b8 40 00
    5468     call 0160eh                               ; e8 2d d5
     5473    call 0160eh                               ; e8 33 d5
    54695474    test cl, cl                               ; 84 c9
    5470     je near 042d8h                            ; 0f 84 f1 01
    5471     jmp near 0454eh                           ; e9 64 04
     5475    je near 042d2h                            ; 0f 84 f1 01
     5476    jmp near 04548h                           ; e9 64 04
    54725477    or bh, 002h                               ; 80 cf 02
    54735478    mov word [bp+01ch], bx                    ; 89 5e 1c
    5474     jmp near 0453dh                           ; e9 4a 04
     5479    jmp near 04537h                           ; e9 4a 04
    54755480    mov word [bp+016h], 0aa55h                ; c7 46 16 55 aa
    54765481    or bh, 030h                               ; 80 cf 30
    54775482    mov word [bp+01ch], bx                    ; 89 5e 1c
    54785483    mov word [bp+01ah], strict word 00007h    ; c7 46 1a 07 00
    5479     jmp near 042d8h                           ; e9 d2 01
     5484    jmp near 042d2h                           ; e9 d2 01
    54805485    mov bx, word [bp+010h]                    ; 8b 5e 10
    54815486    mov es, [bp+00ah]                         ; 8e 46 0a
     
    54925497    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    54935498    or di, ax                                 ; 09 c7
    5494     je short 0414eh                           ; 74 18
     5499    je short 04148h                           ; 74 18
    54955500    mov ax, word [bp+01ch]                    ; 8b 46 1c
    54965501    shr ax, 008h                              ; c1 e8 08
     
    54995504    push 003b8h                               ; 68 b8 03
    55005505    push strict byte 00007h                   ; 6a 07
    5501     call 018e9h                               ; e8 a1 d7
     5506    call 018e9h                               ; e8 a7 d7
    55025507    add sp, strict byte 00008h                ; 83 c4 08
    5503     jmp near 04532h                           ; e9 e4 03
     5508    jmp near 0452ch                           ; e9 e4 03
    55045509    les bx, [bp-010h]                         ; c4 5e f0
    55055510    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    55115516    mov word [bp-012h], ax                    ; 89 46 ee
    55125517    cmp ax, strict word 00044h                ; 3d 44 00
    5513     je near 042d4h                            ; 0f 84 66 01
     5518    je near 042ceh                            ; 0f 84 66 01
    55145519    cmp ax, strict word 00047h                ; 3d 47 00
    5515     je near 042d4h                            ; 0f 84 5f 01
     5520    je near 042ceh                            ; 0f 84 5f 01
    55165521    mov cx, strict word 0000ch                ; b9 0c 00
    55175522    xor bx, bx                                ; 31 db
    55185523    mov dx, ss                                ; 8c d2
    55195524    lea ax, [bp-028h]                         ; 8d 46 d8
    5520     call 0901ah                               ; e8 98 4e
     5525    call 0907ah                               ; e8 fe 4e
    55215526    mov word [bp-028h], strict word 00028h    ; c7 46 d8 28 00
    55225527    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    55465551    sal ax, 1                                 ; d1 e0
    55475552    rcl bx, 1                                 ; d1 d3
    5548     loop 041cch                               ; e2 fa
     5553    loop 041c6h                               ; e2 fa
    55495554    push bx                                   ; 53
    55505555    push ax                                   ; 50
     
    55625567    shr di, 1                                 ; d1 ef
    55635568    rcr ax, 1                                 ; d1 d8
    5564     loop 041f6h                               ; e2 fa
     5569    loop 041f0h                               ; e2 fa
    55655570    les bx, [bp-010h]                         ; c4 5e f0
    55665571    mov word [es:bx+002h], ax                 ; 26 89 47 02
    55675572    test dl, dl                               ; 84 d2
    5568     je near 042d4h                            ; 0f 84 cb 00
     5573    je near 042ceh                            ; 0f 84 cb 00
    55695574    mov bx, 00d32h                            ; bb 32 0d
    55705575    mov cx, ds                                ; 8c d9
    55715576    mov ax, strict word 00004h                ; b8 04 00
    5572     call 018aeh                               ; e8 9a d6
     5577    call 018aeh                               ; e8 a0 d6
    55735578    movzx ax, dl                              ; 0f b6 c2
    55745579    push ax                                   ; 50
     
    55775582    push 003e1h                               ; 68 e1 03
    55785583    push strict byte 00004h                   ; 6a 04
    5579     call 018e9h                               ; e8 c3 d6
     5584    call 018e9h                               ; e8 c9 d6
    55805585    add sp, strict byte 0000ah                ; 83 c4 0a
    55815586    mov ax, word [bp+01ch]                    ; 8b 46 1c
    55825587    xor ah, ah                                ; 30 e4
    55835588    or ah, 00ch                               ; 80 cc 0c
    5584     jmp near 0453ah                           ; e9 06 03
     5589    jmp near 04534h                           ; e9 06 03
    55855590    cmp bx, strict byte 00002h                ; 83 fb 02
    5586     jnbe near 04532h                          ; 0f 87 f7 02
     5591    jnbe near 0452ch                          ; 0f 87 f7 02
    55875592    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    55885593    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    55925597    mov al, byte [es:di+021h]                 ; 26 8a 45 21
    55935598    cmp bx, strict byte 00002h                ; 83 fb 02
    5594     je short 042c5h                           ; 74 73
     5599    je short 042bfh                           ; 74 73
    55955600    cmp bx, strict byte 00001h                ; 83 fb 01
    5596     je short 04292h                           ; 74 3b
     5601    je short 0428ch                           ; 74 3b
    55975602    test bx, bx                               ; 85 db
    5598     jne near 042d4h                           ; 0f 85 77 00
     5603    jne near 042ceh                           ; 0f 85 77 00
    55995604    cmp AL, strict byte 0ffh                  ; 3c ff
    5600     jne short 04273h                          ; 75 12
     5605    jne short 0426dh                          ; 75 12
    56015606    mov ax, word [bp+01ch]                    ; 8b 46 1c
    56025607    xor ah, ah                                ; 30 e4
     
    56055610    xor al, al                                ; 30 c0
    56065611    or AL, strict byte 001h                   ; 0c 01
    5607     jmp near 0453ah                           ; e9 c7 02
     5612    jmp near 04534h                           ; e9 c7 02
    56085613    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    56095614    imul dx, dx, strict byte 00018h           ; 6b d2 18
     
    56175622    or AL, strict byte 001h                   ; 0c 01
    56185623    mov word [bp+01ch], ax                    ; 89 46 1c
    5619     jmp near 042d4h                           ; e9 42 00
     5624    jmp near 042ceh                           ; e9 42 00
    56205625    test al, al                               ; 84 c0
    5621     jne short 042a2h                          ; 75 0c
     5626    jne short 0429ch                          ; 75 0c
    56225627    or bh, 0b0h                               ; 80 cf b0
    56235628    mov word [bp+01ch], bx                    ; 89 5e 1c
    56245629    mov byte [bp+01ch], al                    ; 88 46 1c
    5625     jmp near 0453dh                           ; e9 9b 02
     5630    jmp near 04537h                           ; e9 9b 02
    56265631    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    56275632    imul dx, dx, strict byte 00018h           ; 6b d2 18
     
    56385643    xor al, al                                ; 30 c0
    56395644    or ax, dx                                 ; 09 d0
    5640     jmp short 0428ch                          ; eb c7
     5645    jmp short 04286h                          ; eb c7
    56415646    test al, al                               ; 84 c0
    56425647    db  00fh, 095h, 0c0h
     
    56505655    mov dx, strict word 00074h                ; ba 74 00
    56515656    mov ax, strict word 00040h                ; b8 40 00
    5652     call 0160eh                               ; e8 2b d3
     5657    call 0160eh                               ; e8 31 d3
    56535658    and byte [bp+022h], 0feh                  ; 80 66 22 fe
    56545659    leave                                     ; c9
     
    56625667    mov al, byte [es:si+021h]                 ; 26 8a 44 21
    56635668    test al, al                               ; 84 c0
    5664     je short 04305h                           ; 74 06
     5669    je short 042ffh                           ; 74 06
    56655670    or bh, 0b1h                               ; 80 cf b1
    5666     jmp near 040edh                           ; e9 e8 fd
    5667     je short 042d4h                           ; 74 cd
     5671    jmp near 040e7h                           ; e9 e8 fd
     5672    je short 042ceh                           ; 74 cd
    56685673    mov ax, word [bp+01ch]                    ; 8b 46 1c
    56695674    xor ah, ah                                ; 30 e4
    56705675    or ah, 0b1h                               ; 80 cc b1
    5671     jmp near 0453ah                           ; e9 28 02
     5676    jmp near 04534h                           ; e9 28 02
    56725677    mov dx, word [bp+010h]                    ; 8b 56 10
    56735678    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     
    56795684    mov word [bp-00ah], ax                    ; 89 46 f6
    56805685    cmp ax, strict word 0001ah                ; 3d 1a 00
    5681     jc near 04532h                            ; 0f 82 04 02
    5682     jc short 0437fh                           ; 72 4f
     5686    jc near 0452ch                            ; 0f 82 04 02
     5687    jc short 04379h                           ; 72 4f
    56835688    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    56845689    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    57035708    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    57045709    cmp word [bp-00ah], strict byte 0001eh    ; 83 7e f6 1e
    5705     jc near 04456h                            ; 0f 82 cf 00
     5710    jc near 04450h                            ; 0f 82 cf 00
    57065711    mov es, [bp-006h]                         ; 8e 46 fa
    57075712    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    57555760    xor cl, cl                                ; 30 c9
    57565761    xor ch, ch                                ; 30 ed
    5757     jmp short 04439h                          ; eb 05
     5762    jmp short 04433h                          ; eb 05
    57585763    cmp ch, 00fh                              ; 80 fd 0f
    5759     jnc short 0444ch                          ; 73 13
     5764    jnc short 04446h                          ; 73 13
    57605765    movzx dx, ch                              ; 0f b6 d5
    57615766    add dx, 00312h                            ; 81 c2 12 03
    57625767    mov ax, word [bp-016h]                    ; 8b 46 ea
    5763     call 01600h                               ; e8 ba d1
     5768    call 01600h                               ; e8 c0 d1
    57645769    add cl, al                                ; 00 c1
    57655770    db  0feh, 0c5h
    57665771    ; inc ch                                    ; fe c5
    5767     jmp short 04434h                          ; eb e8
     5772    jmp short 0442eh                          ; eb e8
    57685773    neg cl                                    ; f6 d9
    57695774    mov es, [bp-008h]                         ; 8e 46 f8
    57705775    mov byte [es:si+001ffh], cl               ; 26 88 8c ff 01
    57715776    cmp word [bp-00ah], strict byte 00042h    ; 83 7e f6 42
    5772     jc near 042d4h                            ; 0f 82 76 fe
     5777    jc near 042ceh                            ; 0f 82 76 fe
    57735778    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    57745779    cwd                                       ; 99
     
    57885793    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    57895794    test al, al                               ; 84 c0
    5790     jne short 0449fh                          ; 75 09
     5795    jne short 04499h                          ; 75 09
    57915796    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    57925797    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    57975802    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    57985803    test al, al                               ; 84 c0
    5799     jne short 044cbh                          ; 75 13
     5804    jne short 044c5h                          ; 75 13
    58005805    mov word [es:bx+030h], dx                 ; 26 89 57 30
    58015806    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    58125817    xor al, al                                ; 30 c0
    58135818    mov AH, strict byte 01eh                  ; b4 1e
    5814     jmp short 044f3h                          ; eb 05
     5819    jmp short 044edh                          ; eb 05
    58155820    cmp ah, 040h                              ; 80 fc 40
    5816     jnc short 04502h                          ; 73 0f
     5821    jnc short 044fch                          ; 73 0f
    58175822    movzx si, ah                              ; 0f b6 f4
    58185823    mov es, [bp-006h]                         ; 8e 46 fa
     
    58215826    db  0feh, 0c4h
    58225827    ; inc ah                                    ; fe c4
    5823     jmp short 044eeh                          ; eb ec
     5828    jmp short 044e8h                          ; eb ec
    58245829    neg al                                    ; f6 d8
    58255830    mov es, [bp-006h]                         ; 8e 46 fa
    58265831    mov byte [es:bx+041h], al                 ; 26 88 47 41
    5827     jmp near 042d4h                           ; e9 c6 fd
     5832    jmp near 042ceh                           ; e9 c6 fd
    58285833    or bh, 006h                               ; 80 cf 06
    58295834    mov word [bp+01ch], bx                    ; 89 5e 1c
    5830     jmp short 0454eh                          ; eb 38
     5835    jmp short 04548h                          ; eb 38
    58315836    cmp bx, strict byte 00006h                ; 83 fb 06
    5832     je near 042d4h                            ; 0f 84 b7 fd
     5837    je near 042ceh                            ; 0f 84 b7 fd
    58335838    cmp bx, strict byte 00001h                ; 83 fb 01
    5834     jc short 04532h                           ; 72 10
    5835     jbe near 042d4h                           ; 0f 86 ae fd
     5839    jc short 0452ch                           ; 72 10
     5840    jbe near 042ceh                           ; 0f 86 ae fd
    58365841    cmp bx, strict byte 00003h                ; 83 fb 03
    5837     jc short 04532h                           ; 72 07
     5842    jc short 0452ch                           ; 72 07
    58385843    cmp bx, strict byte 00004h                ; 83 fb 04
    5839     jbe near 042d4h                           ; 0f 86 a2 fd
     5844    jbe near 042ceh                           ; 0f 86 a2 fd
    58405845    mov ax, word [bp+01ch]                    ; 8b 46 1c
    58415846    xor ah, ah                                ; 30 e4
     
    58475852    mov dx, strict word 00074h                ; ba 74 00
    58485853    mov ax, strict word 00040h                ; b8 40 00
    5849     call 0160eh                               ; e8 c0 d0
     5854    call 0160eh                               ; e8 c6 d0
    58505855    or byte [bp+022h], 001h                   ; 80 4e 22 01
    5851     jmp near 042e7h                           ; e9 92 fd
     5856    jmp near 042e1h                           ; e9 92 fd
    58525857    mov bx, 00d32h                            ; bb 32 0d
    58535858    mov cx, ds                                ; 8c d9
    58545859    mov ax, strict word 00004h                ; b8 04 00
    5855     call 018aeh                               ; e8 4e d3
     5860    call 018aeh                               ; e8 54 d3
    58565861    mov ax, word [bp+01ch]                    ; 8b 46 1c
    58575862    shr ax, 008h                              ; c1 e8 08
     
    58605865    push 002a3h                               ; 68 a3 02
    58615866    push strict byte 00004h                   ; 6a 04
    5862     jmp near 04145h                           ; e9 d3 fb
    5863 print_boot_device_:                          ; 0xf4572 LB 0x48
     5867    jmp near 0413fh                           ; e9 d3 fb
     5868print_boot_device_:                          ; 0xf456c LB 0x48
    58645869    push cx                                   ; 51
    58655870    push bp                                   ; 55
    58665871    mov bp, sp                                ; 89 e5
    58675872    test al, al                               ; 84 c0
    5868     je short 0457fh                           ; 74 05
     5873    je short 04579h                           ; 74 05
    58695874    mov dx, strict word 00002h                ; ba 02 00
    5870     jmp short 04599h                          ; eb 1a
     5875    jmp short 04593h                          ; eb 1a
    58715876    test dl, dl                               ; 84 d2
    5872     je short 04588h                           ; 74 05
     5877    je short 04582h                           ; 74 05
    58735878    mov dx, strict word 00003h                ; ba 03 00
    5874     jmp short 04599h                          ; eb 11
     5879    jmp short 04593h                          ; eb 11
    58755880    test bl, 080h                             ; f6 c3 80
    5876     jne short 04591h                          ; 75 04
     5881    jne short 0458bh                          ; 75 04
    58775882    xor dh, dh                                ; 30 f6
    5878     jmp short 04599h                          ; eb 08
     5883    jmp short 04593h                          ; eb 08
    58795884    test bl, 080h                             ; f6 c3 80
    5880     je short 045b7h                           ; 74 21
     5885    je short 045b1h                           ; 74 21
    58815886    mov dx, strict word 00001h                ; ba 01 00
    58825887    mov bx, 00d32h                            ; bb 32 0d
    58835888    mov cx, ds                                ; 8c d9
    58845889    mov ax, strict word 00004h                ; b8 04 00
    5885     call 018aeh                               ; e8 0a d3
     5890    call 018aeh                               ; e8 10 d3
    58865891    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    58875892    add dx, 00d58h                            ; 81 c2 58 0d
     
    58895894    push 00404h                               ; 68 04 04
    58905895    push strict byte 00004h                   ; 6a 04
    5891     call 018e9h                               ; e8 35 d3
     5896    call 018e9h                               ; e8 3b d3
    58925897    add sp, strict byte 00006h                ; 83 c4 06
    58935898    pop bp                                    ; 5d
    58945899    pop cx                                    ; 59
    58955900    retn                                      ; c3
    5896 print_boot_failure_:                         ; 0xf45ba LB 0x90
     5901print_boot_failure_:                         ; 0xf45b4 LB 0x90
    58975902    push si                                   ; 56
    58985903    push bp                                   ; 55
     
    59035908    movzx si, ah                              ; 0f b6 f4
    59045909    test al, al                               ; 84 c0
    5905     je short 045e7h                           ; 74 1b
     5910    je short 045e1h                           ; 74 1b
    59065911    mov bx, 00d32h                            ; bb 32 0d
    59075912    mov cx, ds                                ; 8c d9
    59085913    mov ax, strict word 00004h                ; b8 04 00
    5909     call 018aeh                               ; e8 d7 d2
     5914    call 018aeh                               ; e8 dd d2
    59105915    push 00d6ch                               ; 68 6c 0d
    59115916    push 00418h                               ; 68 18 04
    59125917    push strict byte 00004h                   ; 6a 04
    5913     call 018e9h                               ; e8 07 d3
     5918    call 018e9h                               ; e8 0d d3
    59145919    add sp, strict byte 00006h                ; 83 c4 06
    5915     jmp short 0462bh                          ; eb 44
     5920    jmp short 04625h                          ; eb 44
    59165921    test dl, dl                               ; 84 d2
    5917     je short 045fbh                           ; 74 10
     5922    je short 045f5h                           ; 74 10
    59185923    mov bx, 00d32h                            ; bb 32 0d
    59195924    mov cx, ds                                ; 8c d9
    59205925    mov ax, strict word 00004h                ; b8 04 00
    5921     call 018aeh                               ; e8 b8 d2
     5926    call 018aeh                               ; e8 be d2
    59225927    push 00d76h                               ; 68 76 0d
    5923     jmp short 045dah                          ; eb df
     5928    jmp short 045d4h                          ; eb df
    59245929    test bl, 080h                             ; f6 c3 80
    5925     je short 04611h                           ; 74 11
     5930    je short 0460bh                           ; 74 11
    59265931    mov bx, 00d32h                            ; bb 32 0d
    59275932    mov cx, ds                                ; 8c d9
    59285933    mov ax, strict word 00004h                ; b8 04 00
    5929     call 018aeh                               ; e8 a3 d2
     5934    call 018aeh                               ; e8 a9 d2
    59305935    push si                                   ; 56
    59315936    push 00d62h                               ; 68 62 0d
    5932     jmp short 04620h                          ; eb 0f
     5937    jmp short 0461ah                          ; eb 0f
    59335938    mov bx, 00d32h                            ; bb 32 0d
    59345939    mov cx, ds                                ; 8c d9
    59355940    mov ax, strict word 00004h                ; b8 04 00
    5936     call 018aeh                               ; e8 92 d2
     5941    call 018aeh                               ; e8 98 d2
    59375942    push si                                   ; 56
    59385943    push 00d58h                               ; 68 58 0d
    59395944    push 0042dh                               ; 68 2d 04
    59405945    push strict byte 00004h                   ; 6a 04
    5941     call 018e9h                               ; e8 c1 d2
     5946    call 018e9h                               ; e8 c7 d2
    59425947    add sp, strict byte 00008h                ; 83 c4 08
    59435948    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
    5944     jne short 04645h                          ; 75 14
     5949    jne short 0463fh                          ; 75 14
    59455950    test dh, dh                               ; 84 f6
    5946     jne short 0463ah                          ; 75 05
     5951    jne short 04634h                          ; 75 05
    59475952    push 00445h                               ; 68 45 04
    5948     jmp short 0463dh                          ; eb 03
     5953    jmp short 04637h                          ; eb 03
    59495954    push 0046fh                               ; 68 6f 04
    59505955    push strict byte 00007h                   ; 6a 07
    5951     call 018e9h                               ; e8 a7 d2
     5956    call 018e9h                               ; e8 ad d2
    59525957    add sp, strict byte 00004h                ; 83 c4 04
    59535958    pop bp                                    ; 5d
    59545959    pop si                                    ; 5e
    59555960    retn 00002h                               ; c2 02 00
    5956 print_cdromboot_failure_:                    ; 0xf464a LB 0x24
     5961print_cdromboot_failure_:                    ; 0xf4644 LB 0x24
    59575962    push bx                                   ; 53
    59585963    push cx                                   ; 51
     
    59645969    mov cx, ds                                ; 8c d9
    59655970    mov ax, strict word 00004h                ; b8 04 00
    5966     call 018aeh                               ; e8 51 d2
     5971    call 018aeh                               ; e8 57 d2
    59675972    push dx                                   ; 52
    59685973    push 004a4h                               ; 68 a4 04
    59695974    push strict byte 00004h                   ; 6a 04
    5970     call 018e9h                               ; e8 83 d2
     5975    call 018e9h                               ; e8 89 d2
    59715976    add sp, strict byte 00006h                ; 83 c4 06
    59725977    pop bp                                    ; 5d
     
    59755980    pop bx                                    ; 5b
    59765981    retn                                      ; c3
    5977 _int19_function:                             ; 0xf466e LB 0x251
     5982_int19_function:                             ; 0xf4668 LB 0x251
    59785983    push si                                   ; 56
    59795984    push di                                   ; 57
     
    59815986    mov dx, strict word 0000eh                ; ba 0e 00
    59825987    mov ax, strict word 00040h                ; b8 40 00
    5983     call 0161ch                               ; e8 9f cf
     5988    call 0161ch                               ; e8 a5 cf
    59845989    mov bx, ax                                ; 89 c3
    59855990    mov word [bp-00ah], ax                    ; 89 46 f6
    59865991    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    59875992    mov ax, strict word 0003dh                ; b8 3d 00
    5988     call 0165ch                               ; e8 d0 cf
     5993    call 0165ch                               ; e8 d6 cf
    59895994    movzx si, al                              ; 0f b6 f0
    59905995    mov ax, strict word 00038h                ; b8 38 00
    5991     call 0165ch                               ; e8 c7 cf
     5996    call 0165ch                               ; e8 cd cf
    59925997    and AL, strict byte 0f0h                  ; 24 f0
    59935998    xor ah, ah                                ; 30 e4
     
    59956000    or si, ax                                 ; 09 c6
    59966001    mov ax, strict word 0003ch                ; b8 3c 00
    5997     call 0165ch                               ; e8 b8 cf
     6002    call 0165ch                               ; e8 be cf
    59986003    and AL, strict byte 00fh                  ; 24 0f
    59996004    xor ah, ah                                ; 30 e4
     
    60026007    mov dx, 00339h                            ; ba 39 03
    60036008    mov ax, bx                                ; 89 d8
    6004     call 01600h                               ; e8 4b cf
     6009    call 01600h                               ; e8 51 cf
    60056010    test al, al                               ; 84 c0
    6006     je short 046c4h                           ; 74 0b
     6011    je short 046beh                           ; 74 0b
    60076012    mov dx, 00339h                            ; ba 39 03
    60086013    mov ax, bx                                ; 89 d8
    6009     call 01600h                               ; e8 3f cf
     6014    call 01600h                               ; e8 45 cf
    60106015    movzx si, al                              ; 0f b6 f0
    60116016    cmp byte [bp+008h], 001h                  ; 80 7e 08 01
    6012     jne short 046dah                          ; 75 10
     6017    jne short 046d4h                          ; 75 10
    60136018    mov ax, strict word 0003ch                ; b8 3c 00
    6014     call 0165ch                               ; e8 8c cf
     6019    call 0165ch                               ; e8 92 cf
    60156020    and AL, strict byte 0f0h                  ; 24 f0
    60166021    xor ah, ah                                ; 30 e4
    60176022    sar ax, 004h                              ; c1 f8 04
    6018     call 072b6h                               ; e8 dc 2b
     6023    call 07322h                               ; e8 4e 2c
    60196024    cmp byte [bp+008h], 002h                  ; 80 7e 08 02
    6020     jne short 046e3h                          ; 75 03
     6025    jne short 046ddh                          ; 75 03
    60216026    shr si, 004h                              ; c1 ee 04
    60226027    cmp byte [bp+008h], 003h                  ; 80 7e 08 03
    6023     jne short 046ech                          ; 75 03
     6028    jne short 046e6h                          ; 75 03
    60246029    shr si, 008h                              ; c1 ee 08
    60256030    cmp byte [bp+008h], 004h                  ; 80 7e 08 04
    6026     jne short 046f5h                          ; 75 03
     6031    jne short 046efh                          ; 75 03
    60276032    shr si, 00ch                              ; c1 ee 0c
    60286033    cmp si, strict byte 00010h                ; 83 fe 10
    6029     jnc short 046feh                          ; 73 04
     6034    jnc short 046f8h                          ; 73 04
    60306035    mov byte [bp-004h], 001h                  ; c6 46 fc 01
    60316036    xor al, al                                ; 30 c0
     
    60366041    mov cx, ds                                ; 8c d9
    60376042    mov ax, strict word 00004h                ; b8 04 00
    6038     call 018aeh                               ; e8 9a d1
     6043    call 018aeh                               ; e8 a0 d1
    60396044    push si                                   ; 56
    60406045    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
     
    60426047    push 004c4h                               ; 68 c4 04
    60436048    push strict byte 00004h                   ; 6a 04
    6044     call 018e9h                               ; e8 c7 d1
     6049    call 018e9h                               ; e8 cd d1
    60456050    add sp, strict byte 00008h                ; 83 c4 08
    60466051    and si, strict byte 0000fh                ; 83 e6 0f
    60476052    cmp si, strict byte 00002h                ; 83 fe 02
    6048     jc short 0473bh                           ; 72 0e
    6049     jbe short 0474ah                          ; 76 1b
     6053    jc short 04735h                           ; 72 0e
     6054    jbe short 04744h                          ; 76 1b
    60506055    cmp si, strict byte 00004h                ; 83 fe 04
    6051     je short 04768h                           ; 74 34
     6056    je short 04762h                           ; 74 34
    60526057    cmp si, strict byte 00003h                ; 83 fe 03
    6053     je short 0475eh                           ; 74 25
    6054     jmp short 04795h                          ; eb 5a
     6058    je short 04758h                           ; 74 25
     6059    jmp short 0478fh                          ; eb 5a
    60556060    cmp si, strict byte 00001h                ; 83 fe 01
    6056     jne short 04795h                          ; 75 55
     6061    jne short 0478fh                          ; 75 55
    60576062    xor al, al                                ; 30 c0
    60586063    mov byte [bp-002h], al                    ; 88 46 fe
    60596064    mov byte [bp-006h], al                    ; 88 46 fa
    6060     jmp short 047adh                          ; eb 63
     6065    jmp short 047a7h                          ; eb 63
    60616066    mov dx, 00338h                            ; ba 38 03
    60626067    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6063     call 01600h                               ; e8 ad ce
     6068    call 01600h                               ; e8 b3 ce
    60646069    add AL, strict byte 080h                  ; 04 80
    60656070    mov byte [bp-002h], al                    ; 88 46 fe
    60666071    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    6067     jmp short 047adh                          ; eb 4f
     6072    jmp short 047a7h                          ; eb 4f
    60686073    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    60696074    mov byte [bp-006h], 001h                  ; c6 46 fa 01
    6070     jmp short 04772h                          ; eb 0a
     6075    jmp short 0476ch                          ; eb 0a
    60716076    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    60726077    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6073     je short 047adh                           ; 74 3b
    6074     call 037d6h                               ; e8 61 f0
     6078    je short 047a7h                           ; 74 3b
     6079    call 037d0h                               ; e8 61 f0
    60756080    mov bx, ax                                ; 89 c3
    60766081    test AL, strict byte 0ffh                 ; a8 ff
    6077     je short 0479ch                           ; 74 21
    6078     call 0464ah                               ; e8 cc fe
     6082    je short 04796h                           ; 74 21
     6083    call 04644h                               ; e8 cc fe
    60796084    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    60806085    push ax                                   ; 50
     
    60836088    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    60846089    mov cx, strict word 00001h                ; b9 01 00
    6085     call 045bah                               ; e8 25 fe
     6090    call 045b4h                               ; e8 25 fe
    60866091    xor ax, ax                                ; 31 c0
    60876092    xor dx, dx                                ; 31 d2
    6088     jmp near 048bbh                           ; e9 1f 01
     6093    jmp near 048b5h                           ; e9 1f 01
    60896094    mov dx, 0032eh                            ; ba 2e 03
    60906095    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6091     call 0161ch                               ; e8 77 ce
     6096    call 0161ch                               ; e8 7d ce
    60926097    mov di, ax                                ; 89 c7
    60936098    shr bx, 008h                              ; c1 eb 08
    60946099    mov byte [bp-002h], bl                    ; 88 5e fe
    60956100    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    6096     jne near 04829h                           ; 0f 85 74 00
     6101    jne near 04823h                           ; 0f 85 74 00
    60976102    xor si, si                                ; 31 f6
    60986103    mov ax, 0e200h                            ; b8 00 e2
    60996104    mov es, ax                                ; 8e c0
    61006105    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6101     jne short 0477eh                          ; 75 bb
     6106    jne short 04778h                          ; 75 bb
    61026107    mov cx, ax                                ; 89 c1
    61036108    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    61046109    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6105     jne short 0477eh                          ; 75 ad
     6110    jne short 04778h                          ; 75 ad
    61066111    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6107     jne short 0477eh                          ; 75 a6
     6112    jne short 04778h                          ; 75 a6
    61086113    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    61096114    mov dx, word [es:di]                      ; 26 8b 15
    61106115    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    61116116    cmp ax, 06568h                            ; 3d 68 65
    6112     jne short 04807h                          ; 75 1f
     6117    jne short 04801h                          ; 75 1f
    61136118    cmp dx, 07445h                            ; 81 fa 45 74
    6114     jne short 04807h                          ; 75 19
     6119    jne short 04801h                          ; 75 19
    61156120    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    61166121    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    61176122    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6118     call 04572h                               ; e8 75 fd
     6123    call 0456ch                               ; e8 75 fd
    61196124    mov word [bp-00eh], strict word 00006h    ; c7 46 f2 06 00
    61206125    mov word [bp-00ch], cx                    ; 89 4e f4
    6121     jmp short 04823h                          ; eb 1c
     6126    jmp short 0481dh                          ; eb 1c
    61226127    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    61236128    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    61246129    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6125     call 04572h                               ; e8 5c fd
     6130    call 0456ch                               ; e8 5c fd
    61266131    sti                                       ; fb
    61276132    mov word [bp-00ch], cx                    ; 89 4e f4
     
    61306135    mov word [bp-00eh], ax                    ; 89 46 f2
    61316136    call far [bp-00eh]                        ; ff 5e f2
    6132     jmp near 0477eh                           ; e9 55 ff
     6137    jmp near 04778h                           ; e9 55 ff
    61336138    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6134     jne short 04855h                          ; 75 26
     6139    jne short 0484fh                          ; 75 26
    61356140    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6136     jne short 04855h                          ; 75 20
     6141    jne short 0484fh                          ; 75 20
    61376142    mov di, 007c0h                            ; bf c0 07
    61386143    mov es, di                                ; 8e c7
     
    61476152    sbb ax, strict byte 00000h                ; 83 d8 00
    61486153    test ax, ax                               ; 85 c0
    6149     jne near 0477eh                           ; 0f 85 29 ff
     6154    jne near 04778h                           ; 0f 85 29 ff
    61506155    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    61516156    db  00fh, 094h, 0c1h
    61526157    ; sete cl                                   ; 0f 94 c1
    61536158    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6154     je short 04864h                           ; 74 02
     6159    je short 0485eh                           ; 74 02
    61556160    mov CL, strict byte 001h                  ; b1 01
    61566161    xor dx, dx                                ; 31 d2
    61576162    mov ax, di                                ; 89 f8
    6158     call 0161ch                               ; e8 b1 cd
     6163    call 0161ch                               ; e8 b7 cd
    61596164    mov bx, ax                                ; 89 c3
    61606165    mov dx, strict word 00002h                ; ba 02 00
    61616166    mov ax, di                                ; 89 f8
    6162     call 0161ch                               ; e8 a7 cd
     6167    call 0161ch                               ; e8 ad cd
    61636168    cmp bx, ax                                ; 39 c3
    6164     je short 0488ah                           ; 74 11
     6169    je short 04884h                           ; 74 11
    61656170    test cl, cl                               ; 84 c9
    6166     jne short 048a0h                          ; 75 23
     6171    jne short 0489ah                          ; 75 23
    61676172    mov dx, 001feh                            ; ba fe 01
    61686173    mov ax, di                                ; 89 f8
    6169     call 0161ch                               ; e8 97 cd
     6174    call 0161ch                               ; e8 9d cd
    61706175    cmp ax, 0aa55h                            ; 3d 55 aa
    6171     je short 048a0h                           ; 74 16
     6176    je short 0489ah                           ; 74 16
    61726177    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    61736178    push ax                                   ; 50
     
    61766181    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    61776182    xor cx, cx                                ; 31 c9
    6178     jmp near 04792h                           ; e9 f2 fe
     6183    jmp near 0478ch                           ; e9 f2 fe
    61796184    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    61806185    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    61816186    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6182     call 04572h                               ; e8 c3 fc
     6187    call 0456ch                               ; e8 c3 fc
    61836188    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    61846189    xor dx, dx                                ; 31 d2
     
    61906195    pop si                                    ; 5e
    61916196    retn                                      ; c3
    6192 keyboard_panic_:                             ; 0xf48bf LB 0x11
     6197keyboard_panic_:                             ; 0xf48b9 LB 0x11
    61936198    push bp                                   ; 55
    61946199    mov bp, sp                                ; 89 e5
     
    61966201    push 004e4h                               ; 68 e4 04
    61976202    push strict byte 00007h                   ; 6a 07
    6198     call 018e9h                               ; e8 1e d0
     6203    call 018e9h                               ; e8 24 d0
    61996204    add sp, strict byte 00006h                ; 83 c4 06
    62006205    pop bp                                    ; 5d
    62016206    retn                                      ; c3
    6202 _keyboard_init:                              ; 0xf48d0 LB 0x27a
     6207_keyboard_init:                              ; 0xf48ca LB 0x27a
    62036208    push bp                                   ; 55
    62046209    mov bp, sp                                ; 89 e5
     
    62126217    ; sub ah, ah                                ; 2a e4
    62136218    test AL, strict byte 002h                 ; a8 02
    6214     je short 048f3h                           ; 74 0d
     6219    je short 048edh                           ; 74 0d
    62156220    dec bx                                    ; 4b
    62166221    test bx, bx                               ; 85 db
    6217     jbe short 048f3h                          ; 76 08
     6222    jbe short 048edh                          ; 76 08
    62186223    xor al, al                                ; 30 c0
    62196224    mov dx, 00080h                            ; ba 80 00
    62206225    out DX, AL                                ; ee
    6221     jmp short 048dch                          ; eb e9
     6226    jmp short 048d6h                          ; eb e9
    62226227    test bx, bx                               ; 85 db
    6223     jne short 048fch                          ; 75 05
     6228    jne short 048f6h                          ; 75 05
    62246229    xor ax, ax                                ; 31 c0
    6225     call 048bfh                               ; e8 c3 ff
     6230    call 048b9h                               ; e8 c3 ff
    62266231    mov bx, strict word 0ffffh                ; bb ff ff
    62276232    mov dx, strict word 00064h                ; ba 64 00
     
    62306235    ; sub ah, ah                                ; 2a e4
    62316236    test AL, strict byte 001h                 ; a8 01
    6232     jne short 04916h                          ; 75 0d
     6237    jne short 04910h                          ; 75 0d
    62336238    dec bx                                    ; 4b
    62346239    test bx, bx                               ; 85 db
    6235     jbe short 04916h                          ; 76 08
     6240    jbe short 04910h                          ; 76 08
    62366241    mov AL, strict byte 001h                  ; b0 01
    62376242    mov dx, 00080h                            ; ba 80 00
    62386243    out DX, AL                                ; ee
    6239     jmp short 048ffh                          ; eb e9
     6244    jmp short 048f9h                          ; eb e9
    62406245    test bx, bx                               ; 85 db
    6241     jne short 04920h                          ; 75 06
     6246    jne short 0491ah                          ; 75 06
    62426247    mov ax, strict word 00001h                ; b8 01 00
    6243     call 048bfh                               ; e8 9f ff
     6248    call 048b9h                               ; e8 9f ff
    62446249    mov dx, strict word 00060h                ; ba 60 00
    62456250    in AL, DX                                 ; ec
     
    62476252    ; sub ah, ah                                ; 2a e4
    62486253    cmp ax, strict word 00055h                ; 3d 55 00
    6249     je short 04931h                           ; 74 06
     6254    je short 0492bh                           ; 74 06
    62506255    mov ax, 003dfh                            ; b8 df 03
    6251     call 048bfh                               ; e8 8e ff
     6256    call 048b9h                               ; e8 8e ff
    62526257    mov AL, strict byte 0abh                  ; b0 ab
    62536258    mov dx, strict word 00064h                ; ba 64 00
     
    62596264    ; sub ah, ah                                ; 2a e4
    62606265    test AL, strict byte 002h                 ; a8 02
    6261     je short 04951h                           ; 74 0d
     6266    je short 0494bh                           ; 74 0d
    62626267    dec bx                                    ; 4b
    62636268    test bx, bx                               ; 85 db
    6264     jbe short 04951h                          ; 76 08
     6269    jbe short 0494bh                          ; 76 08
    62656270    mov AL, strict byte 010h                  ; b0 10
    62666271    mov dx, 00080h                            ; ba 80 00
    62676272    out DX, AL                                ; ee
    6268     jmp short 0493ah                          ; eb e9
     6273    jmp short 04934h                          ; eb e9
    62696274    test bx, bx                               ; 85 db
    6270     jne short 0495bh                          ; 75 06
     6275    jne short 04955h                          ; 75 06
    62716276    mov ax, strict word 0000ah                ; b8 0a 00
    6272     call 048bfh                               ; e8 64 ff
     6277    call 048b9h                               ; e8 64 ff
    62736278    mov bx, strict word 0ffffh                ; bb ff ff
    62746279    mov dx, strict word 00064h                ; ba 64 00
     
    62776282    ; sub ah, ah                                ; 2a e4
    62786283    test AL, strict byte 001h                 ; a8 01
    6279     jne short 04975h                          ; 75 0d
     6284    jne short 0496fh                          ; 75 0d
    62806285    dec bx                                    ; 4b
    62816286    test bx, bx                               ; 85 db
    6282     jbe short 04975h                          ; 76 08
     6287    jbe short 0496fh                          ; 76 08
    62836288    mov AL, strict byte 011h                  ; b0 11
    62846289    mov dx, 00080h                            ; ba 80 00
    62856290    out DX, AL                                ; ee
    6286     jmp short 0495eh                          ; eb e9
     6291    jmp short 04958h                          ; eb e9
    62876292    test bx, bx                               ; 85 db
    6288     jne short 0497fh                          ; 75 06
     6293    jne short 04979h                          ; 75 06
    62896294    mov ax, strict word 0000bh                ; b8 0b 00
    6290     call 048bfh                               ; e8 40 ff
     6295    call 048b9h                               ; e8 40 ff
    62916296    mov dx, strict word 00060h                ; ba 60 00
    62926297    in AL, DX                                 ; ec
     
    62946299    ; sub ah, ah                                ; 2a e4
    62956300    test ax, ax                               ; 85 c0
    6296     je short 0498fh                           ; 74 06
     6301    je short 04989h                           ; 74 06
    62976302    mov ax, 003e0h                            ; b8 e0 03
    6298     call 048bfh                               ; e8 30 ff
     6303    call 048b9h                               ; e8 30 ff
    62996304    mov AL, strict byte 0ffh                  ; b0 ff
    63006305    mov dx, strict word 00060h                ; ba 60 00
     
    63066311    ; sub ah, ah                                ; 2a e4
    63076312    test AL, strict byte 002h                 ; a8 02
    6308     je short 049afh                           ; 74 0d
     6313    je short 049a9h                           ; 74 0d
    63096314    dec bx                                    ; 4b
    63106315    test bx, bx                               ; 85 db
    6311     jbe short 049afh                          ; 76 08
     6316    jbe short 049a9h                          ; 76 08
    63126317    mov AL, strict byte 020h                  ; b0 20
    63136318    mov dx, 00080h                            ; ba 80 00
    63146319    out DX, AL                                ; ee
    6315     jmp short 04998h                          ; eb e9
     6320    jmp short 04992h                          ; eb e9
    63166321    test bx, bx                               ; 85 db
    6317     jne short 049b9h                          ; 75 06
     6322    jne short 049b3h                          ; 75 06
    63186323    mov ax, strict word 00014h                ; b8 14 00
    6319     call 048bfh                               ; e8 06 ff
     6324    call 048b9h                               ; e8 06 ff
    63206325    mov bx, strict word 0ffffh                ; bb ff ff
    63216326    mov dx, strict word 00064h                ; ba 64 00
     
    63246329    ; sub ah, ah                                ; 2a e4
    63256330    test AL, strict byte 001h                 ; a8 01
    6326     jne short 049d3h                          ; 75 0d
     6331    jne short 049cdh                          ; 75 0d
    63276332    dec bx                                    ; 4b
    63286333    test bx, bx                               ; 85 db
    6329     jbe short 049d3h                          ; 76 08
     6334    jbe short 049cdh                          ; 76 08
    63306335    mov AL, strict byte 021h                  ; b0 21
    63316336    mov dx, 00080h                            ; ba 80 00
    63326337    out DX, AL                                ; ee
    6333     jmp short 049bch                          ; eb e9
     6338    jmp short 049b6h                          ; eb e9
    63346339    test bx, bx                               ; 85 db
    6335     jne short 049ddh                          ; 75 06
     6340    jne short 049d7h                          ; 75 06
    63366341    mov ax, strict word 00015h                ; b8 15 00
    6337     call 048bfh                               ; e8 e2 fe
     6342    call 048b9h                               ; e8 e2 fe
    63386343    mov dx, strict word 00060h                ; ba 60 00
    63396344    in AL, DX                                 ; ec
     
    63416346    ; sub ah, ah                                ; 2a e4
    63426347    cmp ax, 000fah                            ; 3d fa 00
    6343     je short 049eeh                           ; 74 06
     6348    je short 049e8h                           ; 74 06
    63446349    mov ax, 003e1h                            ; b8 e1 03
    6345     call 048bfh                               ; e8 d1 fe
     6350    call 048b9h                               ; e8 d1 fe
    63466351    mov bx, strict word 0ffffh                ; bb ff ff
    63476352    mov dx, strict word 00064h                ; ba 64 00
     
    63506355    ; sub ah, ah                                ; 2a e4
    63516356    test AL, strict byte 001h                 ; a8 01
    6352     jne short 04a08h                          ; 75 0d
     6357    jne short 04a02h                          ; 75 0d
    63536358    dec bx                                    ; 4b
    63546359    test bx, bx                               ; 85 db
    6355     jbe short 04a08h                          ; 76 08
     6360    jbe short 04a02h                          ; 76 08
    63566361    mov AL, strict byte 031h                  ; b0 31
    63576362    mov dx, 00080h                            ; ba 80 00
    63586363    out DX, AL                                ; ee
    6359     jmp short 049f1h                          ; eb e9
     6364    jmp short 049ebh                          ; eb e9
    63606365    test bx, bx                               ; 85 db
    6361     jne short 04a12h                          ; 75 06
     6366    jne short 04a0ch                          ; 75 06
    63626367    mov ax, strict word 0001fh                ; b8 1f 00
    6363     call 048bfh                               ; e8 ad fe
     6368    call 048b9h                               ; e8 ad fe
    63646369    mov dx, strict word 00060h                ; ba 60 00
    63656370    in AL, DX                                 ; ec
     
    63676372    ; sub ah, ah                                ; 2a e4
    63686373    cmp ax, 000aah                            ; 3d aa 00
    6369     je short 04a2bh                           ; 74 0e
     6374    je short 04a25h                           ; 74 0e
    63706375    in AL, DX                                 ; ec
    63716376    db  02ah, 0e4h
    63726377    ; sub ah, ah                                ; 2a e4
    63736378    cmp ax, 000aah                            ; 3d aa 00
    6374     je short 04a2bh                           ; 74 06
     6379    je short 04a25h                           ; 74 06
    63756380    mov ax, 003e2h                            ; b8 e2 03
    6376     call 048bfh                               ; e8 94 fe
     6381    call 048b9h                               ; e8 94 fe
    63776382    mov AL, strict byte 0f5h                  ; b0 f5
    63786383    mov dx, strict word 00060h                ; ba 60 00
     
    63846389    ; sub ah, ah                                ; 2a e4
    63856390    test AL, strict byte 002h                 ; a8 02
    6386     je short 04a4bh                           ; 74 0d
     6391    je short 04a45h                           ; 74 0d
    63876392    dec bx                                    ; 4b
    63886393    test bx, bx                               ; 85 db
    6389     jbe short 04a4bh                          ; 76 08
     6394    jbe short 04a45h                          ; 76 08
    63906395    mov AL, strict byte 040h                  ; b0 40
    63916396    mov dx, 00080h                            ; ba 80 00
    63926397    out DX, AL                                ; ee
    6393     jmp short 04a34h                          ; eb e9
     6398    jmp short 04a2eh                          ; eb e9
    63946399    test bx, bx                               ; 85 db
    6395     jne short 04a55h                          ; 75 06
     6400    jne short 04a4fh                          ; 75 06
    63966401    mov ax, strict word 00028h                ; b8 28 00
    6397     call 048bfh                               ; e8 6a fe
     6402    call 048b9h                               ; e8 6a fe
    63986403    mov bx, strict word 0ffffh                ; bb ff ff
    63996404    mov dx, strict word 00064h                ; ba 64 00
     
    64026407    ; sub ah, ah                                ; 2a e4
    64036408    test AL, strict byte 001h                 ; a8 01
    6404     jne short 04a6fh                          ; 75 0d
     6409    jne short 04a69h                          ; 75 0d
    64056410    dec bx                                    ; 4b
    64066411    test bx, bx                               ; 85 db
    6407     jbe short 04a6fh                          ; 76 08
     6412    jbe short 04a69h                          ; 76 08
    64086413    mov AL, strict byte 041h                  ; b0 41
    64096414    mov dx, 00080h                            ; ba 80 00
    64106415    out DX, AL                                ; ee
    6411     jmp short 04a58h                          ; eb e9
     6416    jmp short 04a52h                          ; eb e9
    64126417    test bx, bx                               ; 85 db
    6413     jne short 04a79h                          ; 75 06
     6418    jne short 04a73h                          ; 75 06
    64146419    mov ax, strict word 00029h                ; b8 29 00
    6415     call 048bfh                               ; e8 46 fe
     6420    call 048b9h                               ; e8 46 fe
    64166421    mov dx, strict word 00060h                ; ba 60 00
    64176422    in AL, DX                                 ; ec
     
    64196424    ; sub ah, ah                                ; 2a e4
    64206425    cmp ax, 000fah                            ; 3d fa 00
    6421     je short 04a8ah                           ; 74 06
     6426    je short 04a84h                           ; 74 06
    64226427    mov ax, 003e3h                            ; b8 e3 03
    6423     call 048bfh                               ; e8 35 fe
     6428    call 048b9h                               ; e8 35 fe
    64246429    mov AL, strict byte 060h                  ; b0 60
    64256430    mov dx, strict word 00064h                ; ba 64 00
     
    64316436    ; sub ah, ah                                ; 2a e4
    64326437    test AL, strict byte 002h                 ; a8 02
    6433     je short 04aaah                           ; 74 0d
     6438    je short 04aa4h                           ; 74 0d
    64346439    dec bx                                    ; 4b
    64356440    test bx, bx                               ; 85 db
    6436     jbe short 04aaah                          ; 76 08
     6441    jbe short 04aa4h                          ; 76 08
    64376442    mov AL, strict byte 050h                  ; b0 50
    64386443    mov dx, 00080h                            ; ba 80 00
    64396444    out DX, AL                                ; ee
    6440     jmp short 04a93h                          ; eb e9
     6445    jmp short 04a8dh                          ; eb e9
    64416446    test bx, bx                               ; 85 db
    6442     jne short 04ab4h                          ; 75 06
     6447    jne short 04aaeh                          ; 75 06
    64436448    mov ax, strict word 00032h                ; b8 32 00
    6444     call 048bfh                               ; e8 0b fe
     6449    call 048b9h                               ; e8 0b fe
    64456450    mov AL, strict byte 065h                  ; b0 65
    64466451    mov dx, strict word 00060h                ; ba 60 00
     
    64526457    ; sub ah, ah                                ; 2a e4
    64536458    test AL, strict byte 002h                 ; a8 02
    6454     je short 04ad4h                           ; 74 0d
     6459    je short 04aceh                           ; 74 0d
    64556460    dec bx                                    ; 4b
    64566461    test bx, bx                               ; 85 db
    6457     jbe short 04ad4h                          ; 76 08
     6462    jbe short 04aceh                          ; 76 08
    64586463    mov AL, strict byte 060h                  ; b0 60
    64596464    mov dx, 00080h                            ; ba 80 00
    64606465    out DX, AL                                ; ee
    6461     jmp short 04abdh                          ; eb e9
     6466    jmp short 04ab7h                          ; eb e9
    64626467    test bx, bx                               ; 85 db
    6463     jne short 04adeh                          ; 75 06
     6468    jne short 04ad8h                          ; 75 06
    64646469    mov ax, strict word 0003ch                ; b8 3c 00
    6465     call 048bfh                               ; e8 e1 fd
     6470    call 048b9h                               ; e8 e1 fd
    64666471    mov AL, strict byte 0f4h                  ; b0 f4
    64676472    mov dx, strict word 00060h                ; ba 60 00
     
    64736478    ; sub ah, ah                                ; 2a e4
    64746479    test AL, strict byte 002h                 ; a8 02
    6475     je short 04afeh                           ; 74 0d
     6480    je short 04af8h                           ; 74 0d
    64766481    dec bx                                    ; 4b
    64776482    test bx, bx                               ; 85 db
    6478     jbe short 04afeh                          ; 76 08
     6483    jbe short 04af8h                          ; 76 08
    64796484    mov AL, strict byte 070h                  ; b0 70
    64806485    mov dx, 00080h                            ; ba 80 00
    64816486    out DX, AL                                ; ee
    6482     jmp short 04ae7h                          ; eb e9
     6487    jmp short 04ae1h                          ; eb e9
    64836488    test bx, bx                               ; 85 db
    6484     jne short 04b08h                          ; 75 06
     6489    jne short 04b02h                          ; 75 06
    64856490    mov ax, strict word 00046h                ; b8 46 00
    6486     call 048bfh                               ; e8 b7 fd
     6491    call 048b9h                               ; e8 b7 fd
    64876492    mov bx, strict word 0ffffh                ; bb ff ff
    64886493    mov dx, strict word 00064h                ; ba 64 00
     
    64916496    ; sub ah, ah                                ; 2a e4
    64926497    test AL, strict byte 001h                 ; a8 01
    6493     jne short 04b22h                          ; 75 0d
     6498    jne short 04b1ch                          ; 75 0d
    64946499    dec bx                                    ; 4b
    64956500    test bx, bx                               ; 85 db
    6496     jbe short 04b22h                          ; 76 08
     6501    jbe short 04b1ch                          ; 76 08
    64976502    mov AL, strict byte 071h                  ; b0 71
    64986503    mov dx, 00080h                            ; ba 80 00
    64996504    out DX, AL                                ; ee
    6500     jmp short 04b0bh                          ; eb e9
     6505    jmp short 04b05h                          ; eb e9
    65016506    test bx, bx                               ; 85 db
    6502     jne short 04b2ch                          ; 75 06
     6507    jne short 04b26h                          ; 75 06
    65036508    mov ax, strict word 00046h                ; b8 46 00
    6504     call 048bfh                               ; e8 93 fd
     6509    call 048b9h                               ; e8 93 fd
    65056510    mov dx, strict word 00060h                ; ba 60 00
    65066511    in AL, DX                                 ; ec
     
    65086513    ; sub ah, ah                                ; 2a e4
    65096514    cmp ax, 000fah                            ; 3d fa 00
    6510     je short 04b3dh                           ; 74 06
     6515    je short 04b37h                           ; 74 06
    65116516    mov ax, 003e4h                            ; b8 e4 03
    6512     call 048bfh                               ; e8 82 fd
     6517    call 048b9h                               ; e8 82 fd
    65136518    mov AL, strict byte 0a8h                  ; b0 a8
    65146519    mov dx, strict word 00064h                ; ba 64 00
    65156520    out DX, AL                                ; ee
    65166521    xor ax, ax                                ; 31 c0
    6517     call 05d9ah                               ; e8 52 12
     6522    call 05d94h                               ; e8 52 12
    65186523    pop bp                                    ; 5d
    65196524    retn                                      ; c3
    6520 enqueue_key_:                                ; 0xf4b4a LB 0x90
     6525enqueue_key_:                                ; 0xf4b44 LB 0x90
    65216526    push bx                                   ; 53
    65226527    push cx                                   ; 51
     
    65286533    mov dx, strict word 0001ah                ; ba 1a 00
    65296534    mov ax, strict word 00040h                ; b8 40 00
    6530     call 0161ch                               ; e8 bc ca
     6535    call 0161ch                               ; e8 c2 ca
    65316536    mov di, ax                                ; 89 c7
    65326537    mov dx, strict word 0001ch                ; ba 1c 00
    65336538    mov ax, strict word 00040h                ; b8 40 00
    6534     call 0161ch                               ; e8 b1 ca
     6539    call 0161ch                               ; e8 b7 ca
    65356540    mov si, ax                                ; 89 c6
    65366541    lea cx, [si+002h]                         ; 8d 4c 02
    65376542    cmp cx, strict byte 0003eh                ; 83 f9 3e
    6538     jc short 04b78h                           ; 72 03
     6543    jc short 04b72h                           ; 72 03
    65396544    mov cx, strict word 0001eh                ; b9 1e 00
    65406545    cmp cx, di                                ; 39 f9
    6541     jne short 04b80h                          ; 75 04
     6546    jne short 04b7ah                          ; 75 04
    65426547    xor ax, ax                                ; 31 c0
    6543     jmp short 04ba5h                          ; eb 25
     6548    jmp short 04b9fh                          ; eb 25
    65446549    xor bh, bh                                ; 30 ff
    65456550    mov dx, si                                ; 89 f2
    65466551    mov ax, strict word 00040h                ; b8 40 00
    6547     call 0160eh                               ; e8 84 ca
     6552    call 0160eh                               ; e8 8a ca
    65486553    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    65496554    lea dx, [si+001h]                         ; 8d 54 01
    65506555    mov ax, strict word 00040h                ; b8 40 00
    6551     call 0160eh                               ; e8 77 ca
     6556    call 0160eh                               ; e8 7d ca
    65526557    mov bx, cx                                ; 89 cb
    65536558    mov dx, strict word 0001ch                ; ba 1c 00
    65546559    mov ax, strict word 00040h                ; b8 40 00
    6555     call 0162ah                               ; e8 88 ca
     6560    call 0162ah                               ; e8 8e ca
    65566561    mov ax, strict word 00001h                ; b8 01 00
    65576562    leave                                     ; c9
     
    65706575    cmp bh, byte [bx+si]                      ; 3a 38
    65716576    sub bl, byte [ss:di]                      ; 36 2a 1d
    6572     adc cl, byte [bp-061h]                    ; 12 4e 9f
     6577    or AL, strict byte 04eh                   ; 0c 4e
     6578    cwd                                       ; 99
    65736579    dec sp                                    ; 4c
    6574     outsb                                     ; 6e
     6580    push 0684ch                               ; 68 4c 68
    65756581    dec sp                                    ; 4c
    6576     outsb                                     ; 6e
     6582    sbb cx, word [di+041h]                    ; 1b 4d 41
    65776583    dec sp                                    ; 4c
    6578     and word [di+047h], cx                    ; 21 4d 47
     6584    lea cx, [di-024h]                         ; 8d 4d dc
     6585    dec bp                                    ; 4d
     6586    dec word [di-026h]                        ; ff 4d da
    65796587    dec sp                                    ; 4c
    6580     xchg bx, ax                               ; 93
     6588    push 0684ch                               ; 68 4c 68
     6589    dec sp                                    ; 4c
     6590    push sp                                   ; 54
    65816591    dec bp                                    ; 4d
    6582     loop 04c17h                               ; e2 4d
    6583     add ax, 0e04eh                            ; 05 4e e0
     6592    pop dx                                    ; 5a
    65846593    dec sp                                    ; 4c
    6585     outsb                                     ; 6e
    6586     dec sp                                    ; 4c
    6587     outsb                                     ; 6e
    6588     dec sp                                    ; 4c
    6589     pop dx                                    ; 5a
     6594    mov bp, 0f84dh                            ; bd 4d f8
    65906595    dec bp                                    ; 4d
    6591     pushaw                                    ; 60
    6592     dec sp                                    ; 4c
    6593     retn                                      ; c3
    6594     dec bp                                    ; 4d
    6595     db  0feh
    6596     dec bp                                    ; 4d
    6597 _int09_function:                             ; 0xf4bda LB 0x358
     6596_int09_function:                             ; 0xf4bd4 LB 0x358
    65986597    push si                                   ; 56
    65996598    push di                                   ; 57
     
    66026601    mov byte [bp-006h], al                    ; 88 46 fa
    66036602    test al, al                               ; 84 c0
    6604     jne short 04c03h                          ; 75 19
     6603    jne short 04bfdh                          ; 75 19
    66056604    mov bx, 00d32h                            ; bb 32 0d
    66066605    mov cx, ds                                ; 8c d9
    66076606    mov ax, strict word 00004h                ; b8 04 00
    6608     call 018aeh                               ; e8 b9 cc
     6607    call 018aeh                               ; e8 bf cc
    66096608    push 004f7h                               ; 68 f7 04
    66106609    push strict byte 00004h                   ; 6a 04
    6611     call 018e9h                               ; e8 ec cc
     6610    call 018e9h                               ; e8 f2 cc
    66126611    add sp, strict byte 00004h                ; 83 c4 04
    6613     jmp near 04f2eh                           ; e9 2b 03
     6612    jmp near 04f28h                           ; e9 2b 03
    66146613    mov dx, strict word 00017h                ; ba 17 00
    66156614    mov ax, strict word 00040h                ; b8 40 00
    6616     call 01600h                               ; e8 f4 c9
     6615    call 01600h                               ; e8 fa c9
    66176616    mov byte [bp-00ah], al                    ; 88 46 f6
    66186617    mov bl, al                                ; 88 c3
    66196618    mov dx, strict word 00018h                ; ba 18 00
    66206619    mov ax, strict word 00040h                ; b8 40 00
    6621     call 01600h                               ; e8 e6 c9
     6620    call 01600h                               ; e8 ec c9
    66226621    mov byte [bp-00ch], al                    ; 88 46 f4
    66236622    mov byte [bp-008h], al                    ; 88 46 f8
    66246623    mov dx, 00096h                            ; ba 96 00
    66256624    mov ax, strict word 00040h                ; b8 40 00
    6626     call 01600h                               ; e8 d7 c9
     6625    call 01600h                               ; e8 dd c9
    66276626    mov byte [bp-004h], al                    ; 88 46 fc
    66286627    mov byte [bp-002h], al                    ; 88 46 fe
     
    66316630    pop ES                                    ; 07
    66326631    mov cx, strict word 00010h                ; b9 10 00
    6633     mov di, 04babh                            ; bf ab 4b
     6632    mov di, 04ba5h                            ; bf a5 4b
    66346633    repne scasb                               ; f2 ae
    66356634    sal cx, 1                                 ; d1 e1
    66366635    mov di, cx                                ; 89 cf
    6637     mov ax, word [cs:di+04bbah]               ; 2e 8b 85 ba 4b
     6636    mov ax, word [cs:di+04bb4h]               ; 2e 8b 85 b4 4b
    66386637    jmp ax                                    ; ff e0
    66396638    xor bl, 040h                              ; 80 f3 40
     
    66416640    mov dx, strict word 00017h                ; ba 17 00
    66426641    mov ax, strict word 00040h                ; b8 40 00
    6643     call 0160eh                               ; e8 b9 c9
     6642    call 0160eh                               ; e8 bf c9
    66446643    or byte [bp-008h], 040h                   ; 80 4e f8 40
    66456644    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    6646     jmp near 04dd6h                           ; e9 76 01
     6645    jmp near 04dd0h                           ; e9 76 01
    66476646    mov al, byte [bp-00ch]                    ; 8a 46 f4
    66486647    and AL, strict byte 0bfh                  ; 24 bf
    66496648    mov byte [bp-008h], al                    ; 88 46 f8
    66506649    movzx bx, al                              ; 0f b6 d8
    6651     jmp near 04dd6h                           ; e9 68 01
     6650    jmp near 04dd0h                           ; e9 68 01
    66526651    test byte [bp-002h], 002h                 ; f6 46 fe 02
    6653     jne near 04f10h                           ; 0f 85 9a 02
     6652    jne near 04f0ah                           ; 0f 85 9a 02
    66546653    mov al, byte [bp-006h]                    ; 8a 46 fa
    66556654    and AL, strict byte 07fh                  ; 24 7f
     
    66606659    inc ax                                    ; 40
    66616660    test byte [bp-006h], 080h                 ; f6 46 fa 80
    6662     je short 04c8fh                           ; 74 06
     6661    je short 04c89h                           ; 74 06
    66636662    not al                                    ; f6 d0
    66646663    and bl, al                                ; 20 c3
    6665     jmp short 04c91h                          ; eb 02
     6664    jmp short 04c8bh                          ; eb 02
    66666665    or bl, al                                 ; 08 c3
    66676666    xor bh, bh                                ; 30 ff
    66686667    mov dx, strict word 00017h                ; ba 17 00
    66696668    mov ax, strict word 00040h                ; b8 40 00
    6670     call 0160eh                               ; e8 72 c9
    6671     jmp near 04f10h                           ; e9 71 02
     6669    call 0160eh                               ; e8 78 c9
     6670    jmp near 04f0ah                           ; e9 71 02
    66726671    test byte [bp-004h], 001h                 ; f6 46 fc 01
    6673     jne near 04f10h                           ; 0f 85 69 02
     6672    jne near 04f0ah                           ; 0f 85 69 02
    66746673    or bl, 004h                               ; 80 cb 04
    66756674    xor bh, bh                                ; 30 ff
    66766675    mov dx, strict word 00017h                ; ba 17 00
    66776676    mov ax, strict word 00040h                ; b8 40 00
    6678     call 0160eh                               ; e8 59 c9
     6677    call 0160eh                               ; e8 5f c9
    66796678    mov al, byte [bp-004h]                    ; 8a 46 fc
    66806679    test AL, strict byte 002h                 ; a8 02
    6681     je short 04cc9h                           ; 74 0d
     6680    je short 04cc3h                           ; 74 0d
    66826681    or AL, strict byte 004h                   ; 0c 04
    66836682    mov byte [bp-002h], al                    ; 88 46 fe
    66846683    movzx bx, al                              ; 0f b6 d8
    66856684    mov dx, 00096h                            ; ba 96 00
    6686     jmp short 04cd7h                          ; eb 0e
     6685    jmp short 04cd1h                          ; eb 0e
    66876686    mov al, byte [bp-00ch]                    ; 8a 46 f4
    66886687    or AL, strict byte 001h                   ; 0c 01
     
    66916690    mov dx, strict word 00018h                ; ba 18 00
    66926691    mov ax, strict word 00040h                ; b8 40 00
    6693     call 0160eh                               ; e8 31 c9
    6694     jmp near 04f10h                           ; e9 30 02
     6692    call 0160eh                               ; e8 37 c9
     6693    jmp near 04f0ah                           ; e9 30 02
    66956694    test byte [bp-004h], 001h                 ; f6 46 fc 01
    6696     jne near 04f10h                           ; 0f 85 28 02
     6695    jne near 04f0ah                           ; 0f 85 28 02
    66976696    and bl, 0fbh                              ; 80 e3 fb
    66986697    xor bh, bh                                ; 30 ff
    66996698    mov dx, strict word 00017h                ; ba 17 00
    67006699    mov ax, strict word 00040h                ; b8 40 00
    6701     call 0160eh                               ; e8 18 c9
     6700    call 0160eh                               ; e8 1e c9
    67026701    mov al, byte [bp-004h]                    ; 8a 46 fc
    67036702    test AL, strict byte 002h                 ; a8 02
    6704     je short 04d0ah                           ; 74 0d
     6703    je short 04d04h                           ; 74 0d
    67056704    and AL, strict byte 0fbh                  ; 24 fb
    67066705    mov byte [bp-002h], al                    ; 88 46 fe
    67076706    movzx bx, al                              ; 0f b6 d8
    67086707    mov dx, 00096h                            ; ba 96 00
    6709     jmp short 04d18h                          ; eb 0e
     6708    jmp short 04d12h                          ; eb 0e
    67106709    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67116710    and AL, strict byte 0feh                  ; 24 fe
     
    67146713    mov dx, strict word 00018h                ; ba 18 00
    67156714    mov ax, strict word 00040h                ; b8 40 00
    6716     call 0160eh                               ; e8 f0 c8
    6717     jmp near 04f10h                           ; e9 ef 01
     6715    call 0160eh                               ; e8 f6 c8
     6716    jmp near 04f0ah                           ; e9 ef 01
    67186717    or bl, 008h                               ; 80 cb 08
    67196718    xor bh, bh                                ; 30 ff
    67206719    mov dx, strict word 00017h                ; ba 17 00
    67216720    mov ax, strict word 00040h                ; b8 40 00
    6722     call 0160eh                               ; e8 df c8
     6721    call 0160eh                               ; e8 e5 c8
    67236722    mov al, byte [bp-004h]                    ; 8a 46 fc
    67246723    test AL, strict byte 002h                 ; a8 02
    6725     je short 04d43h                           ; 74 0d
     6724    je short 04d3dh                           ; 74 0d
    67266725    or AL, strict byte 008h                   ; 0c 08
    67276726    mov byte [bp-002h], al                    ; 88 46 fe
    67286727    movzx bx, al                              ; 0f b6 d8
    67296728    mov dx, 00096h                            ; ba 96 00
    6730     jmp short 04d51h                          ; eb 0e
     6729    jmp short 04d4bh                          ; eb 0e
    67316730    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67326731    or AL, strict byte 002h                   ; 0c 02
     
    67356734    mov dx, strict word 00018h                ; ba 18 00
    67366735    mov ax, strict word 00040h                ; b8 40 00
    6737     call 0160eh                               ; e8 b7 c8
    6738     jmp near 04f10h                           ; e9 b6 01
     6736    call 0160eh                               ; e8 bd c8
     6737    jmp near 04f0ah                           ; e9 b6 01
    67396738    and bl, 0f7h                              ; 80 e3 f7
    67406739    xor bh, bh                                ; 30 ff
    67416740    mov dx, strict word 00017h                ; ba 17 00
    67426741    mov ax, strict word 00040h                ; b8 40 00
    6743     call 0160eh                               ; e8 a6 c8
     6742    call 0160eh                               ; e8 ac c8
    67446743    mov al, byte [bp-004h]                    ; 8a 46 fc
    67456744    test AL, strict byte 002h                 ; a8 02
    6746     je short 04d7ch                           ; 74 0d
     6745    je short 04d76h                           ; 74 0d
    67476746    and AL, strict byte 0f7h                  ; 24 f7
    67486747    mov byte [bp-002h], al                    ; 88 46 fe
    67496748    movzx bx, al                              ; 0f b6 d8
    67506749    mov dx, 00096h                            ; ba 96 00
    6751     jmp short 04d8ah                          ; eb 0e
     6750    jmp short 04d84h                          ; eb 0e
    67526751    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67536752    and AL, strict byte 0fdh                  ; 24 fd
     
    67566755    mov dx, strict word 00018h                ; ba 18 00
    67576756    mov ax, strict word 00040h                ; b8 40 00
    6758     call 0160eh                               ; e8 7e c8
    6759     jmp near 04f10h                           ; e9 7d 01
     6757    call 0160eh                               ; e8 84 c8
     6758    jmp near 04f0ah                           ; e9 7d 01
    67606759    test byte [bp-004h], 003h                 ; f6 46 fc 03
    6761     jne near 04f10h                           ; 0f 85 75 01
     6760    jne near 04f0ah                           ; 0f 85 75 01
    67626761    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67636762    or AL, strict byte 020h                   ; 0c 20
     
    67666765    mov dx, strict word 00018h                ; ba 18 00
    67676766    mov ax, strict word 00040h                ; b8 40 00
    6768     call 0160eh                               ; e8 5f c8
     6767    call 0160eh                               ; e8 65 c8
    67696768    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    67706769    xor bl, 020h                              ; 80 f3 20
     
    67726771    mov dx, strict word 00017h                ; ba 17 00
    67736772    mov ax, strict word 00040h                ; b8 40 00
    6774     call 0160eh                               ; e8 4e c8
    6775     jmp near 04f10h                           ; e9 4d 01
     6773    call 0160eh                               ; e8 54 c8
     6774    jmp near 04f0ah                           ; e9 4d 01
    67766775    test byte [bp-004h], 003h                 ; f6 46 fc 03
    6777     jne near 04f10h                           ; 0f 85 45 01
     6776    jne near 04f0ah                           ; 0f 85 45 01
    67786777    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67796778    and AL, strict byte 0dfh                  ; 24 df
     
    67826781    mov dx, strict word 00018h                ; ba 18 00
    67836782    mov ax, strict word 00040h                ; b8 40 00
    6784     call 0160eh                               ; e8 2f c8
    6785     jmp near 04f10h                           ; e9 2e 01
     6783    call 0160eh                               ; e8 35 c8
     6784    jmp near 04f0ah                           ; e9 2e 01
    67866785    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67876786    or AL, strict byte 010h                   ; 0c 10
     
    67906789    mov dx, strict word 00018h                ; ba 18 00
    67916790    mov ax, strict word 00040h                ; b8 40 00
    6792     call 0160eh                               ; e8 18 c8
     6791    call 0160eh                               ; e8 1e c8
    67936792    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    67946793    xor bl, 010h                              ; 80 f3 10
    6795     jmp short 04db5h                          ; eb b7
     6794    jmp short 04dafh                          ; eb b7
    67966795    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67976796    and AL, strict byte 0efh                  ; 24 ef
    6798     jmp short 04dd0h                          ; eb cb
     6797    jmp short 04dcah                          ; eb cb
    67996798    mov al, bl                                ; 88 d8
    68006799    and AL, strict byte 00ch                  ; 24 0c
    68016800    cmp AL, strict byte 00ch                  ; 3c 0c
    6802     jne short 04e12h                          ; 75 05
     6801    jne short 04e0ch                          ; 75 05
    68036802    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    68046803    test byte [bp-006h], 080h                 ; f6 46 fa 80
    6805     jne near 04f10h                           ; 0f 85 f6 00
     6804    jne near 04f0ah                           ; 0f 85 f6 00
    68066805    cmp byte [bp-006h], 058h                  ; 80 7e fa 58
    6807     jbe short 04e3eh                          ; 76 1e
     6806    jbe short 04e38h                          ; 76 1e
    68086807    mov bx, 00d32h                            ; bb 32 0d
    68096808    mov cx, ds                                ; 8c d9
    68106809    mov ax, strict word 00004h                ; b8 04 00
    6811     call 018aeh                               ; e8 83 ca
     6810    call 018aeh                               ; e8 89 ca
    68126811    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    68136812    push ax                                   ; 50
    68146813    push 00511h                               ; 68 11 05
    68156814    push strict byte 00004h                   ; 6a 04
    6816     call 018e9h                               ; e8 b1 ca
     6815    call 018e9h                               ; e8 b7 ca
    68176816    add sp, strict byte 00006h                ; 83 c4 06
    6818     jmp near 04f2eh                           ; e9 f0 00
     6817    jmp near 04f28h                           ; e9 f0 00
    68196818    test bl, 008h                             ; f6 c3 08
    6820     je short 04e55h                           ; 74 12
     6819    je short 04e4fh                           ; 74 12
    68216820    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    68226821    imul si, si, strict byte 0000ah           ; 6b f6 0a
    68236822    mov dl, byte [si+00d86h]                  ; 8a 94 86 0d
    68246823    mov ax, word [si+00d86h]                  ; 8b 84 86 0d
    6825     jmp near 04ee1h                           ; e9 8c 00
     6824    jmp near 04edbh                           ; e9 8c 00
    68266825    test bl, 004h                             ; f6 c3 04
    6827     je short 04e6ch                           ; 74 12
     6826    je short 04e66h                           ; 74 12
    68286827    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    68296828    imul si, si, strict byte 0000ah           ; 6b f6 0a
    68306829    mov dl, byte [si+00d84h]                  ; 8a 94 84 0d
    68316830    mov ax, word [si+00d84h]                  ; 8b 84 84 0d
    6832     jmp near 04ee1h                           ; e9 75 00
     6831    jmp near 04edbh                           ; e9 75 00
    68336832    mov al, byte [bp-002h]                    ; 8a 46 fe
    68346833    and AL, strict byte 002h                  ; 24 02
    68356834    test al, al                               ; 84 c0
    6836     jbe short 04e8ah                          ; 76 15
     6835    jbe short 04e84h                          ; 76 15
    68376836    mov al, byte [bp-006h]                    ; 8a 46 fa
    68386837    cmp AL, strict byte 047h                  ; 3c 47
    6839     jc short 04e8ah                           ; 72 0e
     6838    jc short 04e84h                           ; 72 0e
    68406839    cmp AL, strict byte 053h                  ; 3c 53
    6841     jnbe short 04e8ah                         ; 77 0a
     6840    jnbe short 04e84h                         ; 77 0a
    68426841    mov DL, strict byte 0e0h                  ; b2 e0
    68436842    movzx si, al                              ; 0f b6 f0
    68446843    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6845     jmp short 04eddh                          ; eb 53
     6844    jmp short 04ed7h                          ; eb 53
    68466845    test bl, 003h                             ; f6 c3 03
    6847     je short 04ebch                           ; 74 2d
     6846    je short 04eb6h                           ; 74 2d
    68486847    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    68496848    imul si, si, strict byte 0000ah           ; 6b f6 0a
     
    68516850    movzx dx, bl                              ; 0f b6 d3
    68526851    test dx, ax                               ; 85 c2
    6853     je short 04each                           ; 74 0a
     6852    je short 04ea6h                           ; 74 0a
    68546853    mov dl, byte [si+00d80h]                  ; 8a 94 80 0d
    68556854    mov ax, word [si+00d80h]                  ; 8b 84 80 0d
    6856     jmp short 04eb4h                          ; eb 08
     6855    jmp short 04eaeh                          ; eb 08
    68576856    mov dl, byte [si+00d82h]                  ; 8a 94 82 0d
    68586857    mov ax, word [si+00d82h]                  ; 8b 84 82 0d
    68596858    shr ax, 008h                              ; c1 e8 08
    68606859    mov byte [bp-006h], al                    ; 88 46 fa
    6861     jmp short 04ee7h                          ; eb 2b
     6860    jmp short 04ee1h                          ; eb 2b
    68626861    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    68636862    imul si, si, strict byte 0000ah           ; 6b f6 0a
     
    68656864    movzx dx, bl                              ; 0f b6 d3
    68666865    test dx, ax                               ; 85 c2
    6867     je short 04ed9h                           ; 74 0a
     6866    je short 04ed3h                           ; 74 0a
    68686867    mov dl, byte [si+00d82h]                  ; 8a 94 82 0d
    68696868    mov ax, word [si+00d82h]                  ; 8b 84 82 0d
    6870     jmp short 04ee1h                          ; eb 08
     6869    jmp short 04edbh                          ; eb 08
    68716870    mov dl, byte [si+00d80h]                  ; 8a 94 80 0d
    68726871    mov ax, word [si+00d80h]                  ; 8b 84 80 0d
     
    68746873    mov byte [bp-006h], al                    ; 88 46 fa
    68756874    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6876     jne short 04f07h                          ; 75 1a
     6875    jne short 04f01h                          ; 75 1a
    68776876    test dl, dl                               ; 84 d2
    6878     jne short 04f07h                          ; 75 16
     6877    jne short 04f01h                          ; 75 16
    68796878    mov bx, 00d32h                            ; bb 32 0d
    68806879    mov cx, ds                                ; 8c d9
    68816880    mov ax, strict word 00004h                ; b8 04 00
    6882     call 018aeh                               ; e8 b2 c9
     6881    call 018aeh                               ; e8 b8 c9
    68836882    push 00548h                               ; 68 48 05
    68846883    push strict byte 00004h                   ; 6a 04
    6885     call 018e9h                               ; e8 e5 c9
     6884    call 018e9h                               ; e8 eb c9
    68866885    add sp, strict byte 00004h                ; 83 c4 04
    68876886    xor dh, dh                                ; 30 f6
    68886887    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6889     call 04b4ah                               ; e8 3a fc
     6888    call 04b44h                               ; e8 3a fc
    68906889    mov al, byte [bp-006h]                    ; 8a 46 fa
    68916890    and AL, strict byte 07fh                  ; 24 7f
    68926891    cmp AL, strict byte 01dh                  ; 3c 1d
    6893     je short 04f1dh                           ; 74 04
     6892    je short 04f17h                           ; 74 04
    68946893    and byte [bp-002h], 0feh                  ; 80 66 fe fe
    68956894    and byte [bp-002h], 0fdh                  ; 80 66 fe fd
     
    68976896    mov dx, 00096h                            ; ba 96 00
    68986897    mov ax, strict word 00040h                ; b8 40 00
    6899     call 0160eh                               ; e8 e0 c6
     6898    call 0160eh                               ; e8 e6 c6
    69006899    leave                                     ; c9
    69016900    pop di                                    ; 5f
    69026901    pop si                                    ; 5e
    69036902    retn                                      ; c3
    6904 dequeue_key_:                                ; 0xf4f32 LB 0x90
     6903dequeue_key_:                                ; 0xf4f2c LB 0x90
    69056904    push si                                   ; 56
    69066905    push di                                   ; 57
     
    69126911    mov dx, strict word 0001ah                ; ba 1a 00
    69136912    mov ax, strict word 00040h                ; b8 40 00
    6914     call 0161ch                               ; e8 d1 c6
     6913    call 0161ch                               ; e8 d7 c6
    69156914    mov bx, ax                                ; 89 c3
    69166915    mov dx, strict word 0001ch                ; ba 1c 00
    69176916    mov ax, strict word 00040h                ; b8 40 00
    6918     call 0161ch                               ; e8 c6 c6
     6917    call 0161ch                               ; e8 cc c6
    69196918    cmp bx, ax                                ; 39 c3
    6920     je short 04f97h                           ; 74 3d
     6919    je short 04f91h                           ; 74 3d
    69216920    mov dx, bx                                ; 89 da
    69226921    mov ax, strict word 00040h                ; b8 40 00
    6923     call 01600h                               ; e8 9e c6
     6922    call 01600h                               ; e8 a4 c6
    69246923    mov cl, al                                ; 88 c1
    69256924    lea dx, [bx+001h]                         ; 8d 57 01
    69266925    mov ax, strict word 00040h                ; b8 40 00
    6927     call 01600h                               ; e8 93 c6
     6926    call 01600h                               ; e8 99 c6
    69286927    mov es, [bp-004h]                         ; 8e 46 fc
    69296928    mov byte [es:si], cl                      ; 26 88 0c
     
    69316930    mov byte [es:di], al                      ; 26 88 05
    69326931    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    6933     je short 04f92h                           ; 74 13
     6932    je short 04f8ch                           ; 74 13
    69346933    inc bx                                    ; 43
    69356934    inc bx                                    ; 43
    69366935    cmp bx, strict byte 0003eh                ; 83 fb 3e
    6937     jc short 04f89h                           ; 72 03
     6936    jc short 04f83h                           ; 72 03
    69386937    mov bx, strict word 0001eh                ; bb 1e 00
    69396938    mov dx, strict word 0001ah                ; ba 1a 00
    69406939    mov ax, strict word 00040h                ; b8 40 00
    6941     call 0162ah                               ; e8 98 c6
     6940    call 0162ah                               ; e8 9e c6
    69426941    mov ax, strict word 00001h                ; b8 01 00
    6943     jmp short 04f99h                          ; eb 02
     6942    jmp short 04f93h                          ; eb 02
    69446943    xor ax, ax                                ; 31 c0
    69456944    leave                                     ; c9
     
    69516950    or cl, byte [bx+di]                       ; 0a 09
    69526951    add ax, 00102h                            ; 05 02 01
    6953     add byte [bp+052h], bl                    ; 00 5e 52
    6954     je short 04ffeh                           ; 74 50
    6955     mov bx, 00750h                            ; bb 50 07
     6952    add byte [bx+si+052h], bl                 ; 00 58 52
     6953    outsb                                     ; 6e
     6954    push ax                                   ; 50
     6955    mov CH, strict byte 050h                  ; b5 50
     6956    add word [bx+di+011h], dx                 ; 01 51 11
    69566957    push cx                                   ; 51
    6957     pop SS                                    ; 17
     6958    cmp dx, word [bx+di+044h]                 ; 3b 51 44
    69586959    push cx                                   ; 51
    6959     inc cx                                    ; 41
    6960     push cx                                   ; 51
    6961     dec dx                                    ; 4a
    6962     push cx                                   ; 51
    6963     mov bx, 0ec51h                            ; bb 51 ec
    6964     push cx                                   ; 51
    6965     sbb word [bp+si+053h], dx                 ; 19 52 53
     6960    mov CH, strict byte 051h                  ; b5 51
     6961    out strict byte 051h, AL                  ; e6 51
     6962    adc dx, word [bp+si+04dh]                 ; 13 52 4d
    69666963    push dx                                   ; 52
    6967     db  0a1h
     6964    wait                                      ; 9b
    69686965    push dx                                   ; 52
    6969 _int16_function:                             ; 0xf4fc2 LB 0x2e2
     6966_int16_function:                             ; 0xf4fbc LB 0x2e2
    69706967    push di                                   ; 57
    69716968    enter 00006h, 000h                        ; c8 06 00 00
    69726969    mov dx, strict word 00017h                ; ba 17 00
    69736970    mov ax, strict word 00040h                ; b8 40 00
    6974     call 01600h                               ; e8 30 c6
     6971    call 01600h                               ; e8 36 c6
    69756972    mov cl, al                                ; 88 c1
    69766973    mov bh, al                                ; 88 c7
    69776974    mov dx, 00097h                            ; ba 97 00
    69786975    mov ax, strict word 00040h                ; b8 40 00
    6979     call 01600h                               ; e8 23 c6
     6976    call 01600h                               ; e8 29 c6
    69806977    mov bl, al                                ; 88 c3
    69816978    movzx dx, cl                              ; 0f b6 d1
     
    69866983    xor al, dl                                ; 30 d0
    69876984    test ax, ax                               ; 85 c0
    6988     je short 05052h                           ; 74 60
     6985    je short 0504ch                           ; 74 60
    69896986    cli                                       ; fa
    69906987    mov AL, strict byte 0edh                  ; b0 ed
     
    69966993    ; sub ah, ah                                ; 2a e4
    69976994    test AL, strict byte 001h                 ; a8 01
    6998     jne short 0500bh                          ; 75 08
     6995    jne short 05005h                          ; 75 08
    69996996    mov AL, strict byte 021h                  ; b0 21
    70006997    mov dx, 00080h                            ; ba 80 00
    70016998    out DX, AL                                ; ee
    7002     jmp short 04ff9h                          ; eb ee
     6999    jmp short 04ff3h                          ; eb ee
    70037000    mov dx, strict word 00060h                ; ba 60 00
    70047001    in AL, DX                                 ; ec
     
    70067003    ; sub ah, ah                                ; 2a e4
    70077004    cmp ax, 000fah                            ; 3d fa 00
    7008     jne short 05051h                          ; 75 3b
     7005    jne short 0504bh                          ; 75 3b
    70097006    and bl, 0f8h                              ; 80 e3 f8
    70107007    movzx ax, bh                              ; 0f b6 c7
     
    70227019    ; sub ah, ah                                ; 2a e4
    70237020    test AL, strict byte 001h                 ; a8 01
    7024     jne short 05040h                          ; 75 08
     7021    jne short 0503ah                          ; 75 08
    70257022    mov AL, strict byte 021h                  ; b0 21
    70267023    mov dx, 00080h                            ; ba 80 00
    70277024    out DX, AL                                ; ee
    7028     jmp short 0502eh                          ; eb ee
     7025    jmp short 05028h                          ; eb ee
    70297026    mov dx, strict word 00060h                ; ba 60 00
    70307027    in AL, DX                                 ; ec
     
    70347031    mov dx, 00097h                            ; ba 97 00
    70357032    mov ax, strict word 00040h                ; b8 40 00
    7036     call 0160eh                               ; e8 bd c5
     7033    call 0160eh                               ; e8 c3 c5
    70377034    sti                                       ; fb
    70387035    mov ax, word [bp+014h]                    ; 8b 46 14
    70397036    shr ax, 008h                              ; c1 e8 08
    70407037    cmp ax, 000a2h                            ; 3d a2 00
    7041     jnbe near 0525eh                          ; 0f 87 ff 01
     7038    jnbe near 05258h                          ; 0f 87 ff 01
    70427039    push CS                                   ; 0e
    70437040    pop ES                                    ; 07
    70447041    mov cx, strict word 0000ch                ; b9 0c 00
    7045     mov di, 04f9fh                            ; bf 9f 4f
     7042    mov di, 04f99h                            ; bf 99 4f
    70467043    repne scasb                               ; f2 ae
    70477044    sal cx, 1                                 ; d1 e1
    70487045    mov di, cx                                ; 89 cf
    7049     mov ax, word [cs:di+04faah]               ; 2e 8b 85 aa 4f
     7046    mov ax, word [cs:di+04fa4h]               ; 2e 8b 85 a4 4f
    70507047    jmp ax                                    ; ff e0
    70517048    push strict byte 00001h                   ; 6a 01
     
    70547051    mov dx, ss                                ; 8c d2
    70557052    lea ax, [bp-004h]                         ; 8d 46 fc
    7056     call 04f32h                               ; e8 af fe
     7053    call 04f2ch                               ; e8 af fe
    70577054    test ax, ax                               ; 85 c0
    7058     jne short 05092h                          ; 75 0b
     7055    jne short 0508ch                          ; 75 0b
    70597056    push 0057fh                               ; 68 7f 05
    70607057    push strict byte 00007h                   ; 6a 07
    7061     call 018e9h                               ; e8 5a c8
     7058    call 018e9h                               ; e8 60 c8
    70627059    add sp, strict byte 00004h                ; 83 c4 04
    70637060    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     7061    je short 05098h                           ; 74 06
     7062    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    70647063    je short 0509eh                           ; 74 06
    7065     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7066     je short 050a4h                           ; 74 06
    70677064    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    7068     jne short 050a8h                          ; 75 04
     7065    jne short 050a2h                          ; 75 04
    70697066    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    70707067    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     
    70827079    mov dx, ss                                ; 8c d2
    70837080    lea ax, [bp-004h]                         ; 8d 46 fc
    7084     call 04f32h                               ; e8 63 fe
     7081    call 04f2ch                               ; e8 63 fe
    70857082    test ax, ax                               ; 85 c0
    7086     jne short 050dah                          ; 75 07
     7083    jne short 050d4h                          ; 75 07
    70877084    or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
    70887085    leave                                     ; c9
     
    70907087    retn                                      ; c3
    70917088    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     7089    je short 050e0h                           ; 74 06
     7090    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    70927091    je short 050e6h                           ; 74 06
    7093     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7094     je short 050ech                           ; 74 06
    70957092    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    7096     jne short 050f0h                          ; 75 04
     7093    jne short 050eah                          ; 75 04
    70977094    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    70987095    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     
    71077104    mov dx, strict word 00017h                ; ba 17 00
    71087105    mov ax, strict word 00040h                ; b8 40 00
    7109     call 01600h                               ; e8 f0 c4
     7106    call 01600h                               ; e8 f6 c4
    71107107    mov dx, word [bp+014h]                    ; 8b 56 14
    71117108    mov dl, al                                ; 88 c2
    7112     jmp short 050b5h                          ; eb 9e
     7109    jmp short 050afh                          ; eb 9e
    71137110    mov al, byte [bp+012h]                    ; 8a 46 12
    71147111    movzx dx, al                              ; 0f b6 d0
     
    71167113    shr ax, 008h                              ; c1 e8 08
    71177114    xor ah, ah                                ; 30 e4
    7118     call 04b4ah                               ; e8 22 fa
     7115    call 04b44h                               ; e8 22 fa
    71197116    test ax, ax                               ; 85 c0
    7120     jne short 05139h                          ; 75 0d
     7117    jne short 05133h                          ; 75 0d
    71217118    mov ax, word [bp+014h]                    ; 8b 46 14
    71227119    xor al, al                                ; 30 c0
     
    71337130    xor al, al                                ; 30 c0
    71347131    or AL, strict byte 030h                   ; 0c 30
    7135     jmp short 05133h                          ; eb e9
     7132    jmp short 0512dh                          ; eb e9
    71367133    mov byte [bp-002h], 002h                  ; c6 46 fe 02
    71377134    xor cx, cx                                ; 31 c9
     
    71467143    ; sub ah, ah                                ; 2a e4
    71477144    test AL, strict byte 001h                 ; a8 01
    7148     jne short 05171h                          ; 75 0d
     7145    jne short 0516bh                          ; 75 0d
    71497146    dec bx                                    ; 4b
    71507147    test bx, bx                               ; 85 db
    7151     jbe short 05171h                          ; 76 08
     7148    jbe short 0516bh                          ; 76 08
    71527149    mov dx, 00080h                            ; ba 80 00
    71537150    in AL, DX                                 ; ec
    71547151    db  02ah, 0e4h
    71557152    ; sub ah, ah                                ; 2a e4
    7156     jmp short 0515ah                          ; eb e9
     7153    jmp short 05154h                          ; eb e9
    71577154    test bx, bx                               ; 85 db
    7158     jbe short 051b5h                          ; 76 40
     7155    jbe short 051afh                          ; 76 40
    71597156    mov dx, strict word 00060h                ; ba 60 00
    71607157    in AL, DX                                 ; ec
     
    71627159    ; sub ah, ah                                ; 2a e4
    71637160    cmp ax, 000fah                            ; 3d fa 00
    7164     jne short 051b5h                          ; 75 35
     7161    jne short 051afh                          ; 75 35
    71657162    mov bx, strict word 0ffffh                ; bb ff ff
    71667163    mov dx, strict word 00064h                ; ba 64 00
     
    71697166    ; sub ah, ah                                ; 2a e4
    71707167    test AL, strict byte 001h                 ; a8 01
    7171     jne short 0519ah                          ; 75 0d
     7168    jne short 05194h                          ; 75 0d
    71727169    dec bx                                    ; 4b
    71737170    test bx, bx                               ; 85 db
    7174     jbe short 0519ah                          ; 76 08
     7171    jbe short 05194h                          ; 76 08
    71757172    mov dx, 00080h                            ; ba 80 00
    71767173    in AL, DX                                 ; ec
    71777174    db  02ah, 0e4h
    71787175    ; sub ah, ah                                ; 2a e4
    7179     jmp short 05183h                          ; eb e9
     7176    jmp short 0517dh                          ; eb e9
    71807177    test bx, bx                               ; 85 db
    7181     jbe short 051ach                          ; 76 0e
     7178    jbe short 051a6h                          ; 76 0e
    71827179    shr cx, 008h                              ; c1 e9 08
    71837180    mov dx, strict word 00060h                ; ba 60 00
     
    71897186    dec byte [bp-002h]                        ; fe 4e fe
    71907187    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    7191     jnbe short 05180h                         ; 77 cb
     7188    jnbe short 0517ah                         ; 77 cb
    71927189    mov word [bp+00eh], cx                    ; 89 4e 0e
    71937190    leave                                     ; c9
     
    71997196    mov dx, ss                                ; 8c d2
    72007197    lea ax, [bp-004h]                         ; 8d 46 fc
    7201     call 04f32h                               ; e8 68 fd
     7198    call 04f2ch                               ; e8 68 fd
    72027199    test ax, ax                               ; 85 c0
    7203     jne short 051d9h                          ; 75 0b
     7200    jne short 051d3h                          ; 75 0b
    72047201    push 0057fh                               ; 68 7f 05
    72057202    push strict byte 00007h                   ; 6a 07
    7206     call 018e9h                               ; e8 13 c7
     7203    call 018e9h                               ; e8 19 c7
    72077204    add sp, strict byte 00004h                ; 83 c4 04
    72087205    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7209     je near 050a8h                            ; 0f 84 c7 fe
     7206    je near 050a2h                            ; 0f 84 c7 fe
    72107207    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7211     je near 050a4h                            ; 0f 84 bb fe
    7212     jmp near 050a8h                           ; e9 bc fe
     7208    je near 0509eh                            ; 0f 84 bb fe
     7209    jmp near 050a2h                           ; e9 bc fe
    72137210    or word [bp+01eh], 00200h                 ; 81 4e 1e 00 02
    72147211    push strict byte 00000h                   ; 6a 00
     
    72177214    mov dx, ss                                ; 8c d2
    72187215    lea ax, [bp-004h]                         ; 8d 46 fc
    7219     call 04f32h                               ; e8 32 fd
     7216    call 04f2ch                               ; e8 32 fd
    72207217    test ax, ax                               ; 85 c0
    7221     je near 050d3h                            ; 0f 84 cd fe
     7218    je near 050cdh                            ; 0f 84 cd fe
    72227219    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7223     je near 050f0h                            ; 0f 84 e2 fe
     7220    je near 050eah                            ; 0f 84 e2 fe
    72247221    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7225     je near 050ech                            ; 0f 84 d6 fe
    7226     jmp near 050f0h                           ; e9 d7 fe
     7222    je near 050e6h                            ; 0f 84 d6 fe
     7223    jmp near 050eah                           ; e9 d7 fe
    72277224    mov dx, strict word 00017h                ; ba 17 00
    72287225    mov ax, strict word 00040h                ; b8 40 00
    7229     call 01600h                               ; e8 de c3
     7226    call 01600h                               ; e8 e4 c3
    72307227    mov dx, word [bp+014h]                    ; 8b 56 14
    72317228    mov dl, al                                ; 88 c2
     
    72337230    mov dx, strict word 00018h                ; ba 18 00
    72347231    mov ax, strict word 00040h                ; b8 40 00
    7235     call 01600h                               ; e8 cd c3
     7232    call 01600h                               ; e8 d3 c3
    72367233    mov bh, al                                ; 88 c7
    72377234    and bh, 073h                              ; 80 e7 73
    72387235    mov dx, 00096h                            ; ba 96 00
    72397236    mov ax, strict word 00040h                ; b8 40 00
    7240     call 01600h                               ; e8 bf c3
     7237    call 01600h                               ; e8 c5 c3
    72417238    and AL, strict byte 00ch                  ; 24 0c
    72427239    or bh, al                                 ; 08 c7
     
    72457242    movzx ax, bh                              ; 0f b6 c7
    72467243    sal ax, 008h                              ; c1 e0 08
    7247     jmp near 050b3h                           ; e9 60 fe
     7244    jmp near 050adh                           ; e9 60 fe
    72487245    mov ax, word [bp+014h]                    ; 8b 46 14
    72497246    xor ah, ah                                ; 30 e4
    72507247    or ah, 080h                               ; 80 cc 80
    7251     jmp near 05133h                           ; e9 d5 fe
     7248    jmp near 0512dh                           ; e9 d5 fe
    72527249    mov bx, 00d32h                            ; bb 32 0d
    72537250    mov cx, ds                                ; 8c d9
    72547251    mov ax, strict word 00004h                ; b8 04 00
    7255     call 018aeh                               ; e8 45 c6
     7252    call 018aeh                               ; e8 4b c6
    72567253    mov ax, word [bp+014h]                    ; 8b 46 14
    72577254    shr ax, 008h                              ; c1 e8 08
     
    72597256    push 005a3h                               ; 68 a3 05
    72607257    push strict byte 00004h                   ; 6a 04
    7261     call 018e9h                               ; e8 71 c6
     7258    call 018e9h                               ; e8 77 c6
    72627259    add sp, strict byte 00006h                ; 83 c4 06
    72637260    mov bx, 00d32h                            ; bb 32 0d
    72647261    mov cx, ds                                ; 8c d9
    72657262    mov ax, strict word 00004h                ; b8 04 00
    7266     call 018aeh                               ; e8 28 c6
     7263    call 018aeh                               ; e8 2e c6
    72677264    mov ax, word [bp+010h]                    ; 8b 46 10
    72687265    push ax                                   ; 50
     
    72757272    push 005cbh                               ; 68 cb 05
    72767273    push strict byte 00004h                   ; 6a 04
    7277     call 018e9h                               ; e8 4b c6
     7274    call 018e9h                               ; e8 51 c6
    72787275    add sp, strict byte 0000ch                ; 83 c4 0c
    72797276    leave                                     ; c9
    72807277    pop di                                    ; 5f
    72817278    retn                                      ; c3
    7282 set_geom_lba_:                               ; 0xf52a4 LB 0x9e
     7279set_geom_lba_:                               ; 0xf529e LB 0x9e
    72837280    push si                                   ; 56
    72847281    push di                                   ; 57
     
    72927289    mov di, 000ffh                            ; bf ff 00
    72937290    xor bx, bx                                ; 31 db
    7294     jmp short 052c5h                          ; eb 05
     7291    jmp short 052bfh                          ; eb 05
    72957292    cmp bx, strict byte 00004h                ; 83 fb 04
    7296     jnl short 052dbh                          ; 7d 16
     7293    jnl short 052d5h                          ; 7d 16
    72977294    cmp dx, word [bp-002h]                    ; 3b 56 fe
    7298     jnbe short 052d1h                         ; 77 07
    7299     jne short 052d4h                          ; 75 08
     7295    jnbe short 052cbh                         ; 77 07
     7296    jne short 052ceh                          ; 75 08
    73007297    cmp ax, word [bp-004h]                    ; 3b 46 fc
    7301     jc short 052d4h                           ; 72 03
     7298    jc short 052ceh                           ; 72 03
    73027299    inc di                                    ; 47
    73037300    shr di, 1                                 ; d1 ef
     
    73057302    rcr ax, 1                                 ; d1 d8
    73067303    inc bx                                    ; 43
    7307     jmp short 052c0h                          ; eb e5
     7304    jmp short 052bah                          ; eb e5
    73087305    mov ax, di                                ; 89 f8
    73097306    xor dx, dx                                ; 31 d2
    73107307    mov bx, strict word 0003fh                ; bb 3f 00
    73117308    xor cx, cx                                ; 31 c9
    7312     call 08fe9h                               ; e8 02 3d
     7309    call 09049h                               ; e8 68 3d
    73137310    mov bx, ax                                ; 89 c3
    73147311    mov cx, dx                                ; 89 d1
    73157312    mov ax, word [bp-004h]                    ; 8b 46 fc
    73167313    mov dx, word [bp-002h]                    ; 8b 56 fe
    7317     call 08fb0h                               ; e8 bc 3c
     7314    call 09010h                               ; e8 22 3d
    73187315    mov word [es:si+002h], ax                 ; 26 89 44 02
    73197316    cmp ax, 00400h                            ; 3d 00 04
    7320     jbe short 05303h                          ; 76 06
     7317    jbe short 052fdh                          ; 76 06
    73217318    mov word [es:si+002h], 00400h             ; 26 c7 44 02 00 04
    73227319    mov word [es:si], di                      ; 26 89 3c
     
    73267323    pop si                                    ; 5e
    73277324    retn                                      ; c3
    7328     retf 0ee53h                               ; ca 53 ee
     7325    les dx, [bp+di-018h]                      ; c4 53 e8
    73297326    push bx                                   ; 53
    7330     sbb dx, word [si+01bh]                    ; 1b 54 1b
     7327    adc ax, 01554h                            ; 15 54 15
    73317328    push sp                                   ; 54
    7332     sbb dx, word [si-00dh]                    ; 1b 54 f3
     7329    adc ax, 0ed54h                            ; 15 54 ed
    73337330    push bp                                   ; 55
    7334     and word [bx+021h], dx                    ; 21 57 21
     7331    sbb dx, word [bx+01bh]                    ; 1b 57 1b
    73357332    push di                                   ; 57
    7336     or AL, strict byte 056h                   ; 0c 56
    7337     db  0feh
     7333    push ES                                   ; 06
    73387334    push si                                   ; 56
    7339     and word [bx+021h], dx                    ; 21 57 21
     7335    clc                                       ; f8
     7336    push si                                   ; 56
     7337    sbb dx, word [bx+01bh]                    ; 1b 57 1b
    73407338    push di                                   ; 57
    7341     db  0feh
     7339    clc                                       ; f8
    73427340    push si                                   ; 56
    7343     db  0feh
     7341    clc                                       ; f8
    73447342    push si                                   ; 56
    7345     and word [bx+021h], dx                    ; 21 57 21
     7343    sbb dx, word [bx+01bh]                    ; 1b 57 1b
    73467344    push di                                   ; 57
    7347     db  082h, 056h, 0feh, 056h
    7348     ; adc byte [bp-002h], 056h                  ; 82 56 fe 56
    7349     and word [bx+021h], dx                    ; 21 57 21
     7345    jl short 05382h                           ; 7c 56
     7346    clc                                       ; f8
     7347    push si                                   ; 56
     7348    sbb dx, word [bx+01bh]                    ; 1b 57 1b
    73507349    push di                                   ; 57
    7351     db  0feh
     7350    clc                                       ; f8
    73527351    push si                                   ; 56
    7353     mov DL, strict byte 056h                  ; b2 56
    7354     and word [bx+021h], dx                    ; 21 57 21
     7352    lodsb                                     ; ac
     7353    push si                                   ; 56
     7354    sbb dx, word [bx+01bh]                    ; 1b 57 1b
    73557355    push di                                   ; 57
    7356     db  021h
     7356    db  01bh
    73577357    push di                                   ; 57
    7358 _int13_harddisk:                             ; 0xf5342 LB 0x43c
     7358_int13_harddisk:                             ; 0xf533c LB 0x43c
    73597359    enter 00010h, 000h                        ; c8 10 00 00
    73607360    mov dx, strict word 0000eh                ; ba 0e 00
    73617361    mov ax, strict word 00040h                ; b8 40 00
    7362     call 0161ch                               ; e8 cd c2
     7362    call 0161ch                               ; e8 d3 c2
    73637363    mov si, 00122h                            ; be 22 01
    73647364    mov word [bp-004h], ax                    ; 89 46 fc
     
    73667366    mov dx, 0008eh                            ; ba 8e 00
    73677367    mov ax, strict word 00040h                ; b8 40 00
    7368     call 0160eh                               ; e8 ae c2
     7368    call 0160eh                               ; e8 b4 c2
    73697369    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73707370    xor ah, ah                                ; 30 e4
    73717371    cmp ax, 00080h                            ; 3d 80 00
    7372     jc short 0536fh                           ; 72 05
     7372    jc short 05369h                           ; 72 05
    73737373    cmp ax, 00090h                            ; 3d 90 00
    7374     jc short 0538dh                           ; 72 1e
     7374    jc short 05387h                           ; 72 1e
    73757375    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73767376    xor ah, ah                                ; 30 e4
     
    73827382    push 005fdh                               ; 68 fd 05
    73837383    push strict byte 00004h                   ; 6a 04
    7384     call 018e9h                               ; e8 62 c5
     7384    call 018e9h                               ; e8 68 c5
    73857385    add sp, strict byte 0000ah                ; 83 c4 0a
    7386     jmp near 0573ch                           ; e9 af 03
     7386    jmp near 05736h                           ; e9 af 03
    73877387    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73887388    xor ah, ah                                ; 30 e4
     
    73937393    mov byte [bp-002h], dl                    ; 88 56 fe
    73947394    cmp dl, 010h                              ; 80 fa 10
    7395     jc short 053b6h                           ; 72 10
     7395    jc short 053b0h                           ; 72 10
    73967396    push ax                                   ; 50
    73977397    mov ax, word [bp+016h]                    ; 8b 46 16
     
    74007400    push 005eeh                               ; 68 ee 05
    74017401    push 00628h                               ; 68 28 06
    7402     jmp short 05382h                          ; eb cc
     7402    jmp short 0537ch                          ; eb cc
    74037403    mov bx, word [bp+016h]                    ; 8b 5e 16
    74047404    shr bx, 008h                              ; c1 eb 08
    74057405    cmp bx, strict byte 00018h                ; 83 fb 18
    7406     jnbe near 05721h                          ; 0f 87 5e 03
     7406    jnbe near 0571bh                          ; 0f 87 5e 03
    74077407    add bx, bx                                ; 01 db
    7408     jmp word [cs:bx+05310h]                   ; 2e ff a7 10 53
     7408    jmp word [cs:bx+0530ah]                   ; 2e ff a7 0a 53
    74097409    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7410     jnc near 053d9h                           ; 0f 83 07 00
     7410    jnc near 053d3h                           ; 0f 83 07 00
    74117411    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7412     call 01be6h                               ; e8 0d c8
     7412    call 01be0h                               ; e8 0d c8
    74137413    mov byte [bp+017h], 000h                  ; c6 46 17 00
    74147414    xor bx, bx                                ; 31 db
    74157415    mov dx, strict word 00074h                ; ba 74 00
    74167416    mov ax, strict word 00040h                ; b8 40 00
    7417     call 0160eh                               ; e8 26 c2
     7417    call 0160eh                               ; e8 2c c2
    74187418    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    74197419    leave                                     ; c9
     
    74217421    mov dx, strict word 00074h                ; ba 74 00
    74227422    mov ax, strict word 00040h                ; b8 40 00
    7423     call 01600h                               ; e8 09 c2
     7423    call 01600h                               ; e8 0f c2
    74247424    mov cl, al                                ; 88 c1
    74257425    mov dx, word [bp+016h]                    ; 8b 56 16
     
    74327432    mov dx, strict word 00074h                ; ba 74 00
    74337433    mov ax, strict word 00040h                ; b8 40 00
    7434     call 0160eh                               ; e8 fa c1
     7434    call 0160eh                               ; e8 00 c2
    74357435    test cl, cl                               ; 84 c9
    7436     je short 053ddh                           ; 74 c5
    7437     jmp near 05758h                           ; e9 3d 03
     7436    je short 053d7h                           ; 74 c5
     7437    jmp near 05752h                           ; e9 3d 03
    74387438    mov ax, word [bp+016h]                    ; 8b 46 16
    74397439    xor ah, ah                                ; 30 e4
     
    74557455    mov ax, word [bp-00ch]                    ; 8b 46 f4
    74567456    cmp ax, 00080h                            ; 3d 80 00
    7457     jnbe short 05456h                         ; 77 04
     7457    jnbe short 05450h                         ; 77 04
    74587458    test ax, ax                               ; 85 c0
    7459     jne short 05479h                          ; 75 23
     7459    jne short 05473h                          ; 75 23
    74607460    mov bx, 00d32h                            ; bb 32 0d
    74617461    mov cx, ds                                ; 8c d9
    74627462    mov ax, strict word 00004h                ; b8 04 00
    7463     call 018aeh                               ; e8 4d c4
     7463    call 018aeh                               ; e8 53 c4
    74647464    mov ax, word [bp+016h]                    ; 8b 46 16
    74657465    shr ax, 008h                              ; c1 e8 08
     
    74687468    push 0065ah                               ; 68 5a 06
    74697469    push strict byte 00004h                   ; 6a 04
    7470     call 018e9h                               ; e8 76 c4
     7470    call 018e9h                               ; e8 7c c4
    74717471    add sp, strict byte 00008h                ; 83 c4 08
    7472     jmp near 0573ch                           ; e9 c3 02
     7472    jmp near 05736h                           ; e9 c3 02
    74737473    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    74747474    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    74817481    mov word [bp-00ah], dx                    ; 89 56 f6
    74827482    cmp di, ax                                ; 39 c7
    7483     jnc short 054a6h                          ; 73 0c
     7483    jnc short 054a0h                          ; 73 0c
    74847484    cmp cx, word [bp-008h]                    ; 3b 4e f8
    7485     jbe short 054a6h                          ; 76 07
     7485    jbe short 054a0h                          ; 76 07
    74867486    mov ax, word [bp-006h]                    ; 8b 46 fa
    74877487    cmp ax, dx                                ; 39 d0
    7488     jbe short 054d4h                          ; 76 2e
     7488    jbe short 054ceh                          ; 76 2e
    74897489    mov bx, 00d32h                            ; bb 32 0d
    74907490    mov cx, ds                                ; 8c d9
    74917491    mov ax, strict word 00004h                ; b8 04 00
    7492     call 018aeh                               ; e8 fd c3
     7492    call 018aeh                               ; e8 03 c4
    74937493    push dword [bp-008h]                      ; 66 ff 76 f8
    74947494    push di                                   ; 57
     
    75027502    push 00682h                               ; 68 82 06
    75037503    push strict byte 00004h                   ; 6a 04
    7504     call 018e9h                               ; e8 1b c4
     7504    call 018e9h                               ; e8 21 c4
    75057505    add sp, strict byte 00010h                ; 83 c4 10
    7506     jmp near 0573ch                           ; e9 68 02
     7506    jmp near 05736h                           ; e9 68 02
    75077507    mov ax, word [bp+016h]                    ; 8b 46 16
    75087508    shr ax, 008h                              ; c1 e8 08
    75097509    cmp ax, strict word 00004h                ; 3d 04 00
    7510     jne short 054e2h                          ; 75 03
    7511     jmp near 053d9h                           ; e9 f7 fe
     7510    jne short 054dch                          ; 75 03
     7511    jmp near 053d3h                           ; e9 f7 fe
    75127512    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    75137513    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    75157515    add bx, si                                ; 01 f3
    75167516    cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    7517     jne short 05503h                          ; 75 0f
     7517    jne short 054fdh                          ; 75 0f
    75187518    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    75197519    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    7520     jne short 05503h                          ; 75 06
     7520    jne short 054fdh                          ; 75 06
    75217521    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7522     jc short 05533h                           ; 72 30
     7522    jc short 0552dh                           ; 72 30
    75237523    mov ax, di                                ; 89 f8
    75247524    xor dx, dx                                ; 31 d2
    75257525    mov bx, cx                                ; 89 cb
    75267526    xor cx, cx                                ; 31 c9
    7527     call 08fe9h                               ; e8 db 3a
     7527    call 09049h                               ; e8 41 3b
    75287528    xor bx, bx                                ; 31 db
    75297529    add ax, word [bp-008h]                    ; 03 46 f8
     
    75317531    mov bx, word [bp-00ah]                    ; 8b 5e f6
    75327532    xor cx, cx                                ; 31 c9
    7533     call 08fe9h                               ; e8 cc 3a
     7533    call 09049h                               ; e8 32 3b
    75347534    xor bx, bx                                ; 31 db
    75357535    add ax, word [bp-006h]                    ; 03 46 fa
     
    75847584    mov word [bp+016h], bx                    ; 89 5e 16
    75857585    test dl, dl                               ; 84 d2
    7586     je near 053d9h                            ; 0f 84 15 fe
     7586    je near 053d3h                            ; 0f 84 15 fe
    75877587    mov bx, 00d32h                            ; bb 32 0d
    75887588    mov cx, ds                                ; 8c d9
    75897589    mov ax, strict word 00004h                ; b8 04 00
    7590     call 018aeh                               ; e8 df c2
     7590    call 018aeh                               ; e8 e5 c2
    75917591    movzx ax, dl                              ; 0f b6 c2
    75927592    push ax                                   ; 50
     
    75977597    push 006c9h                               ; 68 c9 06
    75987598    push strict byte 00004h                   ; 6a 04
    7599     call 018e9h                               ; e8 04 c3
     7599    call 018e9h                               ; e8 0a c3
    76007600    add sp, strict byte 0000ah                ; 83 c4 0a
    76017601    mov ax, word [bp+016h]                    ; 8b 46 16
    76027602    xor ah, ah                                ; 30 e4
    76037603    or ah, 00ch                               ; 80 cc 0c
    7604     jmp near 05744h                           ; e9 51 01
     7604    jmp near 0573eh                           ; e9 51 01
    76057605    mov bx, 00d32h                            ; bb 32 0d
    76067606    mov cx, ds                                ; 8c d9
    76077607    mov ax, strict word 00004h                ; b8 04 00
    7608     call 018aeh                               ; e8 b0 c2
     7608    call 018aeh                               ; e8 b6 c2
    76097609    push 006eah                               ; 68 ea 06
    76107610    push strict byte 00004h                   ; 6a 04
    7611     call 018e9h                               ; e8 e3 c2
     7611    call 018e9h                               ; e8 e9 c2
    76127612    add sp, strict byte 00004h                ; 83 c4 04
    7613     jmp near 053d9h                           ; e9 cd fd
     7613    jmp near 053d3h                           ; e9 cd fd
    76147614    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76157615    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    76547654    or dx, ax                                 ; 09 c2
    76557655    mov word [bp+012h], dx                    ; 89 56 12
    7656     jmp near 053d9h                           ; e9 57 fd
     7656    jmp near 053d3h                           ; e9 57 fd
    76577657    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76587658    cwd                                       ; 99
     
    76707670    and AL, strict byte 0c0h                  ; 24 c0
    76717671    cmp AL, strict byte 040h                  ; 3c 40
    7672     jne short 056a7h                          ; 75 03
    7673     jmp near 053d9h                           ; e9 32 fd
     7672    jne short 056a1h                          ; 75 03
     7673    jmp near 053d3h                           ; e9 32 fd
    76747674    mov ax, word [bp+016h]                    ; 8b 46 16
    76757675    xor ah, ah                                ; 30 e4
    76767676    or ah, 0aah                               ; 80 cc aa
    7677     jmp near 05744h                           ; e9 92 00
     7677    jmp near 0573eh                           ; e9 92 00
    76787678    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76797679    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    76897689    mov bx, word [bp-008h]                    ; 8b 5e f8
    76907690    xor cx, cx                                ; 31 c9
    7691     call 08fe9h                               ; e8 0d 39
     7691    call 09049h                               ; e8 73 39
    76927692    mov bx, word [bp-006h]                    ; 8b 5e fa
    76937693    xor cx, cx                                ; 31 c9
    7694     call 08fe9h                               ; e8 05 39
     7694    call 09049h                               ; e8 6b 39
    76957695    mov word [bp-010h], ax                    ; 89 46 f0
    76967696    mov word [bp-00eh], dx                    ; 89 56 f2
     
    77017701    or ah, 003h                               ; 80 cc 03
    77027702    mov word [bp+016h], ax                    ; 89 46 16
    7703     jmp near 053ddh                           ; e9 df fc
     7703    jmp near 053d7h                           ; e9 df fc
    77047704    mov bx, 00d32h                            ; bb 32 0d
    77057705    mov cx, ds                                ; 8c d9
    77067706    mov ax, strict word 00004h                ; b8 04 00
    7707     call 018aeh                               ; e8 a5 c1
     7707    call 018aeh                               ; e8 ab c1
    77087708    mov ax, word [bp+016h]                    ; 8b 46 16
    77097709    shr ax, 008h                              ; c1 e8 08
     
    77127712    push 00704h                               ; 68 04 07
    77137713    push strict byte 00004h                   ; 6a 04
    7714     call 018e9h                               ; e8 ce c1
     7714    call 018e9h                               ; e8 d4 c1
    77157715    add sp, strict byte 00008h                ; 83 c4 08
    7716     jmp near 053d9h                           ; e9 b8 fc
     7716    jmp near 053d3h                           ; e9 b8 fc
    77177717    mov bx, 00d32h                            ; bb 32 0d
    77187718    mov cx, ds                                ; 8c d9
    77197719    mov ax, strict word 00004h                ; b8 04 00
    7720     call 018aeh                               ; e8 82 c1
     7720    call 018aeh                               ; e8 88 c1
    77217721    mov ax, word [bp+016h]                    ; 8b 46 16
    77227722    shr ax, 008h                              ; c1 e8 08
     
    77247724    push 005eeh                               ; 68 ee 05
    77257725    push 00737h                               ; 68 37 07
    7726     jmp near 0546eh                           ; e9 32 fd
     7726    jmp near 05468h                           ; e9 32 fd
    77277727    mov ax, word [bp+016h]                    ; 8b 46 16
    77287728    xor ah, ah                                ; 30 e4
     
    77347734    mov dx, strict word 00074h                ; ba 74 00
    77357735    mov ax, strict word 00040h                ; b8 40 00
    7736     call 0160eh                               ; e8 b6 be
     7736    call 0160eh                               ; e8 bc be
    77377737    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    77387738    leave                                     ; c9
    77397739    retn                                      ; c3
    7740     pop SS                                    ; 17
     7740    adc word [bx+si+029h], bx                 ; 11 58 29
    77417741    pop ax                                    ; 58
    7742     das                                       ; 2f
     7742    sub word [bx+si+029h], bx                 ; 29 58 29
    77437743    pop ax                                    ; 58
    7744     das                                       ; 2f
    7745     pop ax                                    ; 58
    7746     das                                       ; 2f
    7747     pop ax                                    ; 58
    7748     ficomp word [bp+di+072h]                  ; de 5b 72
     7744    fcomp dword [bp+di+06ch]                  ; d8 5b 6c
    77497745    pop cx                                    ; 59
    7750     das                                       ; 2f
    7751     pop ax                                    ; 58
    7752     js short 057c7h                           ; 78 59
    7753     ficomp word [bp+di+02bh]                  ; de 5b 2b
     7746    sub word [bx+si+072h], bx                 ; 29 58 72
     7747    pop cx                                    ; 59
     7748    fcomp dword [bp+di+025h]                  ; d8 5b 25
    77547749    pop sp                                    ; 5c
    7755     sub bx, word [si+02bh]                    ; 2b 5c 2b
     7750    and ax, 0255ch                            ; 25 5c 25
    77567751    pop sp                                    ; 5c
    7757     sub bx, word [si-00dh]                    ; 2b 5c f3
     7752    and ax, 0ed5ch                            ; 25 5c ed
    77587753    pop bx                                    ; 5b
    7759     sub bx, word [si+02bh]                    ; 2b 5c 2b
     7754    and ax, 0255ch                            ; 25 5c 25
    77607755    pop sp                                    ; 5c
    7761 _int13_harddisk_ext:                         ; 0xf577e LB 0x4c8
     7756_int13_harddisk_ext:                         ; 0xf5778 LB 0x4c8
    77627757    enter 00028h, 000h                        ; c8 28 00 00
    77637758    mov dx, strict word 0000eh                ; ba 0e 00
    77647759    mov ax, strict word 00040h                ; b8 40 00
    7765     call 0161ch                               ; e8 91 be
     7760    call 0161ch                               ; e8 97 be
    77667761    mov word [bp-014h], ax                    ; 89 46 ec
    77677762    mov dx, strict word 0000eh                ; ba 0e 00
    77687763    mov ax, strict word 00040h                ; b8 40 00
    7769     call 0161ch                               ; e8 85 be
     7764    call 0161ch                               ; e8 8b be
    77707765    mov si, 00122h                            ; be 22 01
    77717766    mov word [bp-026h], ax                    ; 89 46 da
     
    77737768    mov dx, 0008eh                            ; ba 8e 00
    77747769    mov ax, strict word 00040h                ; b8 40 00
    7775     call 0160eh                               ; e8 66 be
     7770    call 0160eh                               ; e8 6c be
    77767771    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77777772    xor ah, ah                                ; 30 e4
    77787773    cmp ax, 00080h                            ; 3d 80 00
    7779     jc short 057b7h                           ; 72 05
     7774    jc short 057b1h                           ; 72 05
    77807775    cmp ax, 00090h                            ; 3d 90 00
    7781     jc short 057d5h                           ; 72 1e
     7776    jc short 057cfh                           ; 72 1e
    77827777    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77837778    xor ah, ah                                ; 30 e4
     
    77897784    push 005fdh                               ; 68 fd 05
    77907785    push strict byte 00004h                   ; 6a 04
    7791     call 018e9h                               ; e8 1a c1
     7786    call 018e9h                               ; e8 20 c1
    77927787    add sp, strict byte 0000ah                ; 83 c4 0a
    7793     jmp near 05c09h                           ; e9 34 04
     7788    jmp near 05c03h                           ; e9 34 04
    77947789    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77957790    xor ah, ah                                ; 30 e4
     
    77997794    mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
    78007795    cmp cl, 010h                              ; 80 f9 10
    7801     jc short 057fbh                           ; 72 10
     7796    jc short 057f5h                           ; 72 10
    78027797    push ax                                   ; 50
    78037798    mov ax, word [bp+016h]                    ; 8b 46 16
     
    78067801    push 00765h                               ; 68 65 07
    78077802    push 00628h                               ; 68 28 06
    7808     jmp short 057cah                          ; eb cf
     7803    jmp short 057c4h                          ; eb cf
    78097804    mov bx, word [bp+016h]                    ; 8b 5e 16
    78107805    shr bx, 008h                              ; c1 eb 08
    78117806    sub bx, strict byte 00041h                ; 83 eb 41
    78127807    cmp bx, strict byte 0000fh                ; 83 fb 0f
    7813     jnbe near 05c2bh                          ; 0f 87 20 04
     7808    jnbe near 05c25h                          ; 0f 87 20 04
    78147809    add bx, bx                                ; 01 db
    78157810    mov ax, word [bp+016h]                    ; 8b 46 16
    78167811    xor ah, ah                                ; 30 e4
    7817     jmp word [cs:bx+0575eh]                   ; 2e ff a7 5e 57
     7812    jmp word [cs:bx+05758h]                   ; 2e ff a7 58 57
    78187813    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    78197814    mov ax, word [bp+016h]                    ; 8b 46 16
     
    78227817    mov word [bp+016h], ax                    ; 89 46 16
    78237818    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    7824     jmp near 05be2h                           ; e9 b3 03
     7819    jmp near 05bdch                           ; e9 b3 03
    78257820    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    78267821    mov es, [bp+004h]                         ; 8e 46 04
     
    78377832    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    78387833    or ax, word [bp-00ah]                     ; 0b 46 f6
    7839     je short 05870h                           ; 74 11
     7834    je short 0586ah                           ; 74 11
    78407835    mov ax, word [bp+016h]                    ; 8b 46 16
    78417836    shr ax, 008h                              ; c1 e8 08
     
    78447839    push 00778h                               ; 68 78 07
    78457840    push strict byte 00007h                   ; 6a 07
    7846     jmp short 058bah                          ; eb 4a
     7841    jmp short 058b4h                          ; eb 4a
    78477842    mov es, [bp-010h]                         ; 8e 46 f0
    78487843    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    78567851    mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
    78577852    cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
    7858     jnbe short 058a0h                         ; 77 0b
    7859     jne short 058c3h                          ; 75 2c
     7853    jnbe short 0589ah                         ; 77 0b
     7854    jne short 058bdh                          ; 75 2c
    78607855    mov dx, word [bp-00ah]                    ; 8b 56 f6
    78617856    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    7862     jc short 058c3h                           ; 72 23
     7857    jc short 058bdh                           ; 72 23
    78637858    mov bx, 00d32h                            ; bb 32 0d
    78647859    mov cx, ds                                ; 8c d9
    78657860    mov ax, strict word 00004h                ; b8 04 00
    7866     call 018aeh                               ; e8 03 c0
     7861    call 018aeh                               ; e8 09 c0
    78677862    mov ax, word [bp+016h]                    ; 8b 46 16
    78687863    shr ax, 008h                              ; c1 e8 08
     
    78717866    push 007a1h                               ; 68 a1 07
    78727867    push strict byte 00004h                   ; 6a 04
    7873     call 018e9h                               ; e8 2c c0
     7868    call 018e9h                               ; e8 32 c0
    78747869    add sp, strict byte 00008h                ; 83 c4 08
    7875     jmp near 05c09h                           ; e9 46 03
     7870    jmp near 05c03h                           ; e9 46 03
    78767871    mov dx, word [bp+016h]                    ; 8b 56 16
    78777872    shr dx, 008h                              ; c1 ea 08
    78787873    mov word [bp-00ch], dx                    ; 89 56 f4
    78797874    cmp dx, strict byte 00044h                ; 83 fa 44
    7880     je near 05bdeh                            ; 0f 84 0b 03
     7875    je near 05bd8h                            ; 0f 84 0b 03
    78817876    cmp dx, strict byte 00047h                ; 83 fa 47
    7882     je near 05bdeh                            ; 0f 84 04 03
     7877    je near 05bd8h                            ; 0f 84 04 03
    78837878    mov es, [bp-026h]                         ; 8e 46 da
    78847879    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     
    79127907    mov word [es:di+002h], ax                 ; 26 89 45 02
    79137908    test dl, dl                               ; 84 d2
    7914     je near 05bdeh                            ; 0f 84 97 02
     7909    je near 05bd8h                            ; 0f 84 97 02
    79157910    mov bx, 00d32h                            ; bb 32 0d
    79167911    mov cx, ds                                ; 8c d9
    79177912    mov ax, strict word 00004h                ; b8 04 00
    7918     call 018aeh                               ; e8 5c bf
     7913    call 018aeh                               ; e8 62 bf
    79197914    movzx ax, dl                              ; 0f b6 c2
    79207915    push ax                                   ; 50
     
    79237918    push 006c9h                               ; 68 c9 06
    79247919    push strict byte 00004h                   ; 6a 04
    7925     call 018e9h                               ; e8 85 bf
     7920    call 018e9h                               ; e8 8b bf
    79267921    add sp, strict byte 0000ah                ; 83 c4 0a
    79277922    mov ax, word [bp+016h]                    ; 8b 46 16
    79287923    xor ah, ah                                ; 30 e4
    79297924    or ah, 00ch                               ; 80 cc 0c
    7930     jmp near 05c11h                           ; e9 9f 02
     7925    jmp near 05c0bh                           ; e9 9f 02
    79317926    or ah, 0b2h                               ; 80 cc b2
    7932     jmp near 05c11h                           ; e9 99 02
     7927    jmp near 05c0bh                           ; e9 99 02
    79337928    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    79347929    mov ax, word [bp+004h]                    ; 8b 46 04
     
    79407935    mov word [bp-00eh], ax                    ; 89 46 f2
    79417936    cmp ax, strict word 0001ah                ; 3d 1a 00
    7942     jc near 05c09h                            ; 0f 82 74 02
    7943     jc near 05a1ch                            ; 0f 82 83 00
     7937    jc near 05c03h                            ; 0f 82 74 02
     7938    jc near 05a16h                            ; 0f 82 83 00
    79447939    movzx ax, cl                              ; 0f b6 c1
    79457940    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    79797974    ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
    79807975    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    7981     jc near 05b28h                            ; 0f 82 04 01
     7976    jc near 05b22h                            ; 0f 82 04 01
    79827977    mov es, [bp-004h]                         ; 8e 46 fc
    79837978    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    80058000    mov al, byte [es:di+023h]                 ; 26 8a 45 23
    80068001    test al, al                               ; 84 c0
    8007     jne short 05a7ah                          ; 75 04
     8002    jne short 05a74h                          ; 75 04
    80088003    xor dx, dx                                ; 31 d2
    8009     jmp short 05a7dh                          ; eb 03
     8004    jmp short 05a77h                          ; eb 03
    80108005    mov dx, strict word 00008h                ; ba 08 00
    80118006    or dl, 010h                               ; 80 ca 10
     
    80228017    or word [bp-008h], dx                     ; 09 56 f8
    80238018    cmp AL, strict byte 003h                  ; 3c 03
    8024     jne short 05aa3h                          ; 75 05
     8019    jne short 05a9dh                          ; 75 05
    80258020    mov ax, strict word 00003h                ; b8 03 00
    8026     jmp short 05aa5h                          ; eb 02
     8021    jmp short 05a9fh                          ; eb 02
    80278022    xor ax, ax                                ; 31 c0
    80288023    or word [bp-008h], ax                     ; 09 46 f8
     
    80498044    xor ch, ch                                ; 30 ed
    80508045    mov byte [bp-002h], ch                    ; 88 6e fe
    8051     jmp short 05b09h                          ; eb 06
     8046    jmp short 05b03h                          ; eb 06
    80528047    cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
    8053     jnc short 05b1eh                          ; 73 15
     8048    jnc short 05b18h                          ; 73 15
    80548049    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    80558050    add dx, 00312h                            ; 81 c2 12 03
    80568051    mov ax, word [bp-014h]                    ; 8b 46 ec
    8057     call 01600h                               ; e8 e9 ba
     8052    call 01600h                               ; e8 ef ba
    80588053    add ch, al                                ; 00 c5
    80598054    inc byte [bp-002h]                        ; fe 46 fe
    8060     jmp short 05b03h                          ; eb e5
     8055    jmp short 05afdh                          ; eb e5
    80618056    neg ch                                    ; f6 dd
    80628057    mov es, [bp-026h]                         ; 8e 46 da
    80638058    mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
    80648059    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    8065     jc near 05bdeh                            ; 0f 82 ae 00
     8060    jc near 05bd8h                            ; 0f 82 ae 00
    80668061    movzx ax, cl                              ; 0f b6 c1
    80678062    cwd                                       ; 99
     
    80818076    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    80828077    test al, al                               ; 84 c0
    8083     jne short 05b70h                          ; 75 09
     8078    jne short 05b6ah                          ; 75 09
    80848079    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    80858080    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    80908085    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    80918086    test al, al                               ; 84 c0
    8092     jne short 05b9ch                          ; 75 13
     8087    jne short 05b96h                          ; 75 13
    80938088    mov word [es:bx+030h], dx                 ; 26 89 57 30
    80948089    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    81058100    xor cl, cl                                ; 30 c9
    81068101    mov CH, strict byte 01eh                  ; b5 1e
    8107     jmp short 05bc3h                          ; eb 05
     8102    jmp short 05bbdh                          ; eb 05
    81088103    cmp ch, 040h                              ; 80 fd 40
    8109     jnc short 05bd5h                          ; 73 12
     8104    jnc short 05bcfh                          ; 73 12
    81108105    movzx dx, ch                              ; 0f b6 d5
    81118106    add dx, word [bp+00ah]                    ; 03 56 0a
    81128107    mov ax, word [bp+004h]                    ; 8b 46 04
    8113     call 01600h                               ; e8 31 ba
     8108    call 01600h                               ; e8 37 ba
    81148109    add cl, al                                ; 00 c1
    81158110    db  0feh, 0c5h
    81168111    ; inc ch                                    ; fe c5
    8117     jmp short 05bbeh                          ; eb e9
     8112    jmp short 05bb8h                          ; eb e9
    81188113    neg cl                                    ; f6 d9
    81198114    mov es, [bp-004h]                         ; 8e 46 fc
     
    81238118    mov dx, strict word 00074h                ; ba 74 00
    81248119    mov ax, strict word 00040h                ; b8 40 00
    8125     call 0160eh                               ; e8 21 ba
     8120    call 0160eh                               ; e8 27 ba
    81268121    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    81278122    leave                                     ; c9
    81288123    retn                                      ; c3
    81298124    cmp ax, strict word 00006h                ; 3d 06 00
    8130     je short 05bdeh                           ; 74 e6
     8125    je short 05bd8h                           ; 74 e6
    81318126    cmp ax, strict word 00001h                ; 3d 01 00
    8132     jc short 05c09h                           ; 72 0c
    8133     jbe short 05bdeh                          ; 76 df
     8127    jc short 05c03h                           ; 72 0c
     8128    jbe short 05bd8h                          ; 76 df
    81348129    cmp ax, strict word 00003h                ; 3d 03 00
    8135     jc short 05c09h                           ; 72 05
     8130    jc short 05c03h                           ; 72 05
    81368131    cmp ax, strict word 00004h                ; 3d 04 00
    8137     jbe short 05bdeh                          ; 76 d5
     8132    jbe short 05bd8h                          ; 76 d5
    81388133    mov ax, word [bp+016h]                    ; 8b 46 16
    81398134    xor ah, ah                                ; 30 e4
     
    81458140    mov dx, strict word 00074h                ; ba 74 00
    81468141    mov ax, strict word 00040h                ; b8 40 00
    8147     call 0160eh                               ; e8 e9 b9
     8142    call 0160eh                               ; e8 ef b9
    81488143    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    81498144    leave                                     ; c9
     
    81528147    mov cx, ds                                ; 8c d9
    81538148    mov ax, strict word 00004h                ; b8 04 00
    8154     call 018aeh                               ; e8 78 bc
     8149    call 018aeh                               ; e8 7e bc
    81558150    mov ax, word [bp+016h]                    ; 8b 46 16
    81568151    shr ax, 008h                              ; c1 e8 08
     
    81588153    push 00765h                               ; 68 65 07
    81598154    push 00737h                               ; 68 37 07
    8160     jmp near 058b8h                           ; e9 72 fc
    8161 _int14_function:                             ; 0xf5c46 LB 0x154
     8155    jmp near 058b2h                           ; e9 72 fc
     8156_int14_function:                             ; 0xf5c40 LB 0x154
    81628157    push si                                   ; 56
    81638158    push bp                                   ; 55
     
    81678162    add dx, dx                                ; 01 d2
    81688163    mov ax, strict word 00040h                ; b8 40 00
    8169     call 0161ch                               ; e8 c6 b9
     8164    call 0161ch                               ; e8 cc b9
    81708165    mov si, ax                                ; 89 c6
    81718166    mov bx, ax                                ; 89 c3
     
    81738168    add dx, strict byte 0007ch                ; 83 c2 7c
    81748169    mov ax, strict word 00040h                ; b8 40 00
    8175     call 01600h                               ; e8 9a b9
     8170    call 01600h                               ; e8 a0 b9
    81768171    mov cl, al                                ; 88 c1
    81778172    cmp word [bp+010h], strict byte 00004h    ; 83 7e 10 04
    8178     jnc near 05d93h                           ; 0f 83 23 01
     8173    jnc near 05d8dh                           ; 0f 83 23 01
    81798174    test si, si                               ; 85 f6
    8180     jbe near 05d93h                           ; 0f 86 1d 01
     8175    jbe near 05d8dh                           ; 0f 86 1d 01
    81818176    mov al, byte [bp+015h]                    ; 8a 46 15
    81828177    cmp AL, strict byte 001h                  ; 3c 01
    8183     jc short 05c8eh                           ; 72 11
    8184     jbe short 05ce2h                          ; 76 63
     8178    jc short 05c88h                           ; 72 11
     8179    jbe short 05cdch                          ; 76 63
    81858180    cmp AL, strict byte 003h                  ; 3c 03
    8186     je near 05d7bh                            ; 0f 84 f6 00
     8181    je near 05d75h                            ; 0f 84 f6 00
    81878182    cmp AL, strict byte 002h                  ; 3c 02
    8188     je near 05d30h                            ; 0f 84 a5 00
    8189     jmp near 05d8ch                           ; e9 fe 00
     8183    je near 05d2ah                            ; 0f 84 a5 00
     8184    jmp near 05d86h                           ; e9 fe 00
    81908185    test al, al                               ; 84 c0
    8191     jne near 05d8ch                           ; 0f 85 f8 00
     8186    jne near 05d86h                           ; 0f 85 f8 00
    81928187    lea dx, [bx+003h]                         ; 8d 57 03
    81938188    in AL, DX                                 ; ec
     
    82218216    ; sub ah, ah                                ; 2a e4
    82228217    mov byte [bp+014h], al                    ; 88 46 14
    8223     jmp near 05d6ch                           ; e9 97 00
     8218    jmp near 05d66h                           ; e9 97 00
    82248219    mov AL, strict byte 017h                  ; b0 17
    82258220    mov dx, bx                                ; 89 da
     
    82288223    mov AL, strict byte 004h                  ; b0 04
    82298224    out DX, AL                                ; ee
    8230     jmp short 05cb7h                          ; eb d5
     8225    jmp short 05cb1h                          ; eb d5
    82318226    mov dx, strict word 0006ch                ; ba 6c 00
    82328227    mov ax, strict word 00040h                ; b8 40 00
    8233     call 0161ch                               ; e8 31 b9
     8228    call 0161ch                               ; e8 37 b9
    82348229    mov si, ax                                ; 89 c6
    82358230    lea dx, [bx+005h]                         ; 8d 57 05
     
    82398234    and ax, strict word 00060h                ; 25 60 00
    82408235    cmp ax, strict word 00060h                ; 3d 60 00
    8241     je short 05d12h                           ; 74 17
     8236    je short 05d0ch                           ; 74 17
    82428237    test cl, cl                               ; 84 c9
    8243     je short 05d12h                           ; 74 13
     8238    je short 05d0ch                           ; 74 13
    82448239    mov dx, strict word 0006ch                ; ba 6c 00
    82458240    mov ax, strict word 00040h                ; b8 40 00
    8246     call 0161ch                               ; e8 14 b9
     8241    call 0161ch                               ; e8 1a b9
    82478242    cmp ax, si                                ; 39 f0
    8248     je short 05cedh                           ; 74 e1
     8243    je short 05ce7h                           ; 74 e1
    82498244    mov si, ax                                ; 89 c6
    82508245    db  0feh, 0c9h
    82518246    ; dec cl                                    ; fe c9
    8252     jmp short 05cedh                          ; eb db
     8247    jmp short 05ce7h                          ; eb db
    82538248    test cl, cl                               ; 84 c9
    8254     je short 05d1ch                           ; 74 06
     8249    je short 05d16h                           ; 74 06
    82558250    mov al, byte [bp+014h]                    ; 8a 46 14
    82568251    mov dx, bx                                ; 89 da
     
    82628257    mov byte [bp+015h], al                    ; 88 46 15
    82638258    test cl, cl                               ; 84 c9
    8264     jne short 05d6ch                          ; 75 43
     8259    jne short 05d66h                          ; 75 43
    82658260    or AL, strict byte 080h                   ; 0c 80
    82668261    mov byte [bp+015h], al                    ; 88 46 15
    8267     jmp short 05d6ch                          ; eb 3c
     8262    jmp short 05d66h                          ; eb 3c
    82688263    mov dx, strict word 0006ch                ; ba 6c 00
    82698264    mov ax, strict word 00040h                ; b8 40 00
    8270     call 0161ch                               ; e8 e3 b8
     8265    call 0161ch                               ; e8 e9 b8
    82718266    mov si, ax                                ; 89 c6
    82728267    lea dx, [bx+005h]                         ; 8d 57 05
     
    82758270    ; sub ah, ah                                ; 2a e4
    82768271    test AL, strict byte 001h                 ; a8 01
    8277     jne short 05d5ch                          ; 75 17
     8272    jne short 05d56h                          ; 75 17
    82788273    test cl, cl                               ; 84 c9
    8279     je short 05d5ch                           ; 74 13
     8274    je short 05d56h                           ; 74 13
    82808275    mov dx, strict word 0006ch                ; ba 6c 00
    82818276    mov ax, strict word 00040h                ; b8 40 00
    8282     call 0161ch                               ; e8 ca b8
     8277    call 0161ch                               ; e8 d0 b8
    82838278    cmp ax, si                                ; 39 f0
    8284     je short 05d3bh                           ; 74 e5
     8279    je short 05d35h                           ; 74 e5
    82858280    mov si, ax                                ; 89 c6
    82868281    db  0feh, 0c9h
    82878282    ; dec cl                                    ; fe c9
    8288     jmp short 05d3bh                          ; eb df
     8283    jmp short 05d35h                          ; eb df
    82898284    test cl, cl                               ; 84 c9
    8290     je short 05d73h                           ; 74 13
     8285    je short 05d6dh                           ; 74 13
    82918286    mov byte [bp+015h], 000h                  ; c6 46 15 00
    82928287    mov dx, bx                                ; 89 da
     
    83038298    db  02ah, 0e4h
    83048299    ; sub ah, ah                                ; 2a e4
    8305     jmp short 05d2bh                          ; eb b0
     8300    jmp short 05d25h                          ; eb b0
    83068301    lea dx, [si+005h]                         ; 8d 54 05
    83078302    in AL, DX                                 ; ec
     
    83138308    db  02ah, 0e4h
    83148309    ; sub ah, ah                                ; 2a e4
    8315     jmp short 05d69h                          ; eb dd
     8310    jmp short 05d63h                          ; eb dd
    83168311    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    83178312    pop bp                                    ; 5d
     
    83228317    pop si                                    ; 5e
    83238318    retn                                      ; c3
    8324 set_enable_a20_:                             ; 0xf5d9a LB 0x29
     8319set_enable_a20_:                             ; 0xf5d94 LB 0x29
    83258320    push bx                                   ; 53
    83268321    push cx                                   ; 51
     
    83358330    mov cl, al                                ; 88 c1
    83368331    test bx, bx                               ; 85 db
    8337     je short 05db3h                           ; 74 05
     8332    je short 05dadh                           ; 74 05
    83388333    or AL, strict byte 002h                   ; 0c 02
    83398334    out DX, AL                                ; ee
    8340     jmp short 05db6h                          ; eb 03
     8335    jmp short 05db0h                          ; eb 03
    83418336    and AL, strict byte 0fdh                  ; 24 fd
    83428337    out DX, AL                                ; ee
     
    83508345    pop bx                                    ; 5b
    83518346    retn                                      ; c3
    8352 set_e820_range_:                             ; 0xf5dc3 LB 0x8c
     8347set_e820_range_:                             ; 0xf5dbd LB 0x8c
    83538348    push si                                   ; 56
    83548349    push bp                                   ; 55
     
    83798374    retn 0000ah                               ; c2 0a 00
    83808375    in AL, DX                                 ; ec
    8381     jmp near 01ff6h                           ; e9 d8 c1
     8376    jmp near 01ff0h                           ; e9 d8 c1
    83828377    sar byte [bx-06f6fh], 089h                ; c0 bf 91 90 89
    83838378    mov byte [bx+05283h], al                  ; 88 87 83 52
     
    83858380    inc cx                                    ; 41
    83868381    and AL, strict byte 000h                  ; 24 00
    8387     jmp far 0a05eh:08d62h                     ; ea 62 8d 5e a0
     8382    in AL, strict byte 062h                   ; e4 62
     8383    xchg word [bp-066h], bx                   ; 87 5e 9a
    83888384    pop si                                    ; 5e
    8389     xor bl, byte [bx+038h]                    ; 32 5f 38
     8385    sub AL, strict byte 05fh                  ; 2c 5f
     8386    xor bl, byte [bx+037h]                    ; 32 5f 37
    83908387    pop di                                    ; 5f
    8391     cmp ax, 0425fh                            ; 3d 5f 42
     8388    cmp AL, strict byte 05fh                  ; 3c 5f
     8389    ficomp word [bx+07bh]                     ; de 5f 7b
     8390    popaw                                     ; 61
     8391    mov ax, word [02861h]                     ; a1 61 28
    83928392    pop di                                    ; 5f
    8393     in AL, strict byte 05fh                   ; e4 5f
    8394     and word [bx+di-059h], 02e61h             ; 81 61 a7 61 2e
     8393    sub byte [bx+06eh], bl                    ; 28 5f 6e
     8394    bound dx, [bp-0569eh]                     ; 62 96 62 a9
     8395    bound di, [bx+si+02c62h]                  ; 62 b8 62 2c
    83958396    pop di                                    ; 5f
    8396     db  02eh, 05fh
    8397     ; cs pop di                                 ; 2e 5f
    8398     je short 05ea7h                           ; 74 62
    8399     pushfw                                    ; 9c
    8400     bound bp, [bx-0419eh]                     ; 62 af 62 be
    8401     bound si, [bp+si]                         ; 62 32
    8402     pop di                                    ; 5f
    8403     db  0c5h
     8397    db  0bfh
    84048398    db  062h
    8405 _int15_function:                             ; 0xf5e4f LB 0x4c9
     8399_int15_function:                             ; 0xf5e49 LB 0x4c9
    84068400    push si                                   ; 56
    84078401    push di                                   ; 57
     
    84108404    shr ax, 008h                              ; c1 e8 08
    84118405    cmp ax, 000ech                            ; 3d ec 00
    8412     jnbe near 062eah                          ; 0f 87 88 04
     8406    jnbe near 062e4h                          ; 0f 87 88 04
    84138407    push CS                                   ; 0e
    84148408    pop ES                                    ; 07
    84158409    mov cx, strict word 00012h                ; b9 12 00
    8416     mov di, 05e1ah                            ; bf 1a 5e
     8410    mov di, 05e14h                            ; bf 14 5e
    84178411    repne scasb                               ; f2 ae
    84188412    sal cx, 1                                 ; d1 e1
    84198413    mov di, cx                                ; 89 cf
    8420     mov si, word [cs:di+05e2bh]               ; 2e 8b b5 2b 5e
     8414    mov si, word [cs:di+05e25h]               ; 2e 8b b5 25 5e
    84218415    mov ax, word [bp+016h]                    ; 8b 46 16
    84228416    xor ah, ah                                ; 30 e4
     
    84318425    xor ah, ah                                ; 30 e4
    84328426    cmp ax, 000c0h                            ; 3d c0 00
    8433     jne near 062eah                           ; 0f 85 51 04
     8427    jne near 062e4h                           ; 0f 85 51 04
    84348428    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8435     jmp near 06293h                           ; e9 f3 03
     8429    jmp near 0628dh                           ; e9 f3 03
    84368430    mov dx, ax                                ; 89 c2
    84378431    cmp ax, strict word 00001h                ; 3d 01 00
    8438     jc short 05eb5h                           ; 72 0e
    8439     jbe short 05ec9h                          ; 76 20
     8432    jc short 05eafh                           ; 72 0e
     8433    jbe short 05ec3h                          ; 76 20
    84408434    cmp ax, strict word 00003h                ; 3d 03 00
    8441     je short 05ef6h                           ; 74 48
     8435    je short 05ef0h                           ; 74 48
    84428436    cmp ax, strict word 00002h                ; 3d 02 00
    8443     je short 05ed9h                           ; 74 26
    8444     jmp short 05f03h                          ; eb 4e
     8437    je short 05ed3h                           ; 74 26
     8438    jmp short 05efdh                          ; eb 4e
    84458439    test ax, ax                               ; 85 c0
    8446     jne short 05f03h                          ; 75 4a
     8440    jne short 05efdh                          ; 75 4a
    84478441    xor ax, ax                                ; 31 c0
    8448     call 05d9ah                               ; e8 dc fe
     8442    call 05d94h                               ; e8 dc fe
    84498443    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    84508444    mov byte [bp+017h], 000h                  ; c6 46 17 00
    8451     jmp near 05f2eh                           ; e9 65 00
     8445    jmp near 05f28h                           ; e9 65 00
    84528446    mov ax, strict word 00001h                ; b8 01 00
    8453     call 05d9ah                               ; e8 cb fe
     8447    call 05d94h                               ; e8 cb fe
    84548448    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    84558449    mov byte [bp+017h], dh                    ; 88 76 17
    8456     jmp near 05f2eh                           ; e9 55 00
     8450    jmp near 05f28h                           ; e9 55 00
    84578451    mov dx, 00092h                            ; ba 92 00
    84588452    in AL, DX                                 ; ec
     
    84668460    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    84678461    mov byte [bp+017h], ah                    ; 88 66 17
    8468     jmp near 05f2eh                           ; e9 38 00
     8462    jmp near 05f28h                           ; e9 38 00
    84698463    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    84708464    mov byte [bp+017h], ah                    ; 88 66 17
    84718465    mov word [bp+010h], ax                    ; 89 46 10
    8472     jmp near 05f2eh                           ; e9 2b 00
     8466    jmp near 05f28h                           ; e9 2b 00
    84738467    mov bx, 00d32h                            ; bb 32 0d
    84748468    mov cx, ds                                ; 8c d9
    84758469    mov ax, strict word 00004h                ; b8 04 00
    8476     call 018aeh                               ; e8 a0 b9
     8470    call 018aeh                               ; e8 a6 b9
    84778471    mov ax, word [bp+016h]                    ; 8b 46 16
    84788472    xor ah, ah                                ; 30 e4
     
    84808474    push 007c6h                               ; 68 c6 07
    84818475    push strict byte 00004h                   ; 6a 04
    8482     call 018e9h                               ; e8 cd b9
     8476    call 018e9h                               ; e8 d3 b9
    84838477    add sp, strict byte 00006h                ; 83 c4 06
    84848478    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     
    84928486    retn                                      ; c3
    84938487    mov word [bp+01ch], bx                    ; 89 5e 1c
    8494     jmp near 05fdeh                           ; e9 a6 00
     8488    jmp near 05fd8h                           ; e9 a6 00
    84958489    mov word [bp+01ch], bx                    ; 89 5e 1c
    8496     jmp short 05f2eh                          ; eb f1
     8490    jmp short 05f28h                          ; eb f1
    84978491    mov word [bp+01ch], cx                    ; 89 4e 1c
    8498     jmp short 05f2bh                          ; eb e9
     8492    jmp short 05f25h                          ; eb e9
    84998493    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    8500     je short 05fb4h                           ; 74 6c
     8494    je short 05faeh                           ; 74 6c
    85018495    mov dx, 000a0h                            ; ba a0 00
    85028496    mov ax, strict word 00040h                ; b8 40 00
    8503     call 01600h                               ; e8 af b6
     8497    call 01600h                               ; e8 b5 b6
    85048498    test AL, strict byte 001h                 ; a8 01
    8505     jne near 0628ah                           ; 0f 85 33 03
     8499    jne near 06284h                           ; 0f 85 33 03
    85068500    mov bx, strict word 00001h                ; bb 01 00
    85078501    mov dx, 000a0h                            ; ba a0 00
    85088502    mov ax, strict word 00040h                ; b8 40 00
    8509     call 0160eh                               ; e8 ab b6
     8503    call 0160eh                               ; e8 b1 b6
    85108504    mov bx, word [bp+018h]                    ; 8b 5e 18
    85118505    mov dx, 00098h                            ; ba 98 00
    85128506    mov ax, strict word 00040h                ; b8 40 00
    8513     call 0162ah                               ; e8 bb b6
     8507    call 0162ah                               ; e8 c1 b6
    85148508    mov bx, word [bp+010h]                    ; 8b 5e 10
    85158509    mov dx, 0009ah                            ; ba 9a 00
    85168510    mov ax, strict word 00040h                ; b8 40 00
    8517     call 0162ah                               ; e8 af b6
     8511    call 0162ah                               ; e8 b5 b6
    85188512    mov bx, word [bp+012h]                    ; 8b 5e 12
    85198513    mov dx, 0009ch                            ; ba 9c 00
    85208514    mov ax, strict word 00040h                ; b8 40 00
    8521     call 0162ah                               ; e8 a3 b6
     8515    call 0162ah                               ; e8 a9 b6
    85228516    mov bx, word [bp+014h]                    ; 8b 5e 14
    85238517    mov dx, 0009eh                            ; ba 9e 00
    85248518    mov ax, strict word 00040h                ; b8 40 00
    8525     call 0162ah                               ; e8 97 b6
     8519    call 0162ah                               ; e8 9d b6
    85268520    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    85278521    mov dx, 000a1h                            ; ba a1 00
     
    85328526    out DX, AL                                ; ee
    85338527    mov ax, strict word 0000bh                ; b8 0b 00
    8534     call 0165ch                               ; e8 b6 b6
     8528    call 0165ch                               ; e8 bc b6
    85358529    or AL, strict byte 040h                   ; 0c 40
    85368530    movzx dx, al                              ; 0f b6 d0
    85378531    mov ax, strict word 0000bh                ; b8 0b 00
    8538     call 0166dh                               ; e8 bc b6
    8539     jmp near 05f2eh                           ; e9 7a ff
     8532    call 0166dh                               ; e8 c2 b6
     8533    jmp near 05f28h                           ; e9 7a ff
    85408534    cmp ax, strict word 00001h                ; 3d 01 00
    8541     jne short 05fd2h                          ; 75 19
     8535    jne short 05fcch                          ; 75 19
    85428536    xor bx, bx                                ; 31 db
    85438537    mov dx, 000a0h                            ; ba a0 00
    85448538    mov ax, strict word 00040h                ; b8 40 00
    8545     call 0160eh                               ; e8 4a b6
     8539    call 0160eh                               ; e8 50 b6
    85468540    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    85478541    mov ax, strict word 0000bh                ; b8 0b 00
    8548     call 0165ch                               ; e8 8e b6
     8542    call 0165ch                               ; e8 94 b6
    85498543    and AL, strict byte 0bfh                  ; 24 bf
    8550     jmp short 05fa8h                          ; eb d6
     8544    jmp short 05fa2h                          ; eb d6
    85518545    mov word [bp+01ch], bx                    ; 89 5e 1c
    85528546    mov ax, dx                                ; 89 d0
     
    85568550    or dx, ax                                 ; 09 c2
    85578551    mov word [bp+016h], dx                    ; 89 56 16
    8558     jmp near 05f2eh                           ; e9 4a ff
     8552    jmp near 05f28h                           ; e9 4a ff
    85598553    cli                                       ; fa
    85608554    mov ax, strict word 00001h                ; b8 01 00
    8561     call 05d9ah                               ; e8 af fd
     8555    call 05d94h                               ; e8 af fd
    85628556    mov di, ax                                ; 89 c7
    85638557    mov ax, word [bp+018h]                    ; 8b 46 18
     
    85698563    mov byte [bp-002h], dl                    ; 88 56 fe
    85708564    cmp cx, ax                                ; 39 c1
    8571     jnc short 0600ah                          ; 73 05
     8565    jnc short 06004h                          ; 73 05
    85728566    db  0feh, 0c2h
    85738567    ; inc dl                                    ; fe c2
     
    85778571    mov ax, word [bp+018h]                    ; 8b 46 18
    85788572    mov bx, strict word 0002fh                ; bb 2f 00
    8579     call 0162ah                               ; e8 11 b6
     8573    call 0162ah                               ; e8 17 b6
    85808574    mov dx, word [bp+00ah]                    ; 8b 56 0a
    85818575    add dx, strict byte 0000ah                ; 83 c2 0a
    85828576    mov ax, word [bp+018h]                    ; 8b 46 18
    85838577    mov bx, cx                                ; 89 cb
    8584     call 0162ah                               ; e8 03 b6
     8578    call 0162ah                               ; e8 09 b6
    85858579    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    85868580    mov dx, word [bp+00ah]                    ; 8b 56 0a
    85878581    add dx, strict byte 0000ch                ; 83 c2 0c
    85888582    mov ax, word [bp+018h]                    ; 8b 46 18
    8589     call 0160eh                               ; e8 d7 b5
     8583    call 0160eh                               ; e8 dd b5
    85908584    mov dx, word [bp+00ah]                    ; 8b 56 0a
    85918585    add dx, strict byte 0000dh                ; 83 c2 0d
    85928586    mov ax, word [bp+018h]                    ; 8b 46 18
    85938587    mov bx, 00093h                            ; bb 93 00
    8594     call 0160eh                               ; e8 c8 b5
     8588    call 0160eh                               ; e8 ce b5
    85958589    mov dx, word [bp+00ah]                    ; 8b 56 0a
    85968590    add dx, strict byte 0000eh                ; 83 c2 0e
    85978591    mov ax, word [bp+018h]                    ; 8b 46 18
    85988592    xor bx, bx                                ; 31 db
    8599     call 0162ah                               ; e8 d6 b5
     8593    call 0162ah                               ; e8 dc b5
    86008594    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86018595    add dx, strict byte 00020h                ; 83 c2 20
    86028596    mov ax, word [bp+018h]                    ; 8b 46 18
    86038597    mov bx, strict word 0ffffh                ; bb ff ff
    8604     call 0162ah                               ; e8 c7 b5
     8598    call 0162ah                               ; e8 cd b5
    86058599    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86068600    add dx, strict byte 00022h                ; 83 c2 22
    86078601    mov ax, word [bp+018h]                    ; 8b 46 18
    86088602    xor bx, bx                                ; 31 db
    8609     call 0162ah                               ; e8 b9 b5
     8603    call 0162ah                               ; e8 bf b5
    86108604    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86118605    add dx, strict byte 00024h                ; 83 c2 24
    86128606    mov ax, word [bp+018h]                    ; 8b 46 18
    86138607    mov bx, strict word 0000fh                ; bb 0f 00
    8614     call 0160eh                               ; e8 8e b5
     8608    call 0160eh                               ; e8 94 b5
    86158609    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86168610    add dx, strict byte 00025h                ; 83 c2 25
    86178611    mov ax, word [bp+018h]                    ; 8b 46 18
    86188612    mov bx, 0009bh                            ; bb 9b 00
    8619     call 0160eh                               ; e8 7f b5
     8613    call 0160eh                               ; e8 85 b5
    86208614    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86218615    add dx, strict byte 00026h                ; 83 c2 26
    86228616    mov ax, word [bp+018h]                    ; 8b 46 18
    86238617    xor bx, bx                                ; 31 db
    8624     call 0162ah                               ; e8 8d b5
     8618    call 0162ah                               ; e8 93 b5
    86258619    mov ax, ss                                ; 8c d0
    86268620    mov cx, ax                                ; 89 c1
     
    86328626    mov ax, word [bp+018h]                    ; 8b 46 18
    86338627    mov bx, strict word 0ffffh                ; bb ff ff
    8634     call 0162ah                               ; e8 71 b5
     8628    call 0162ah                               ; e8 77 b5
    86358629    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86368630    add dx, strict byte 0002ah                ; 83 c2 2a
    86378631    mov ax, word [bp+018h]                    ; 8b 46 18
    86388632    mov bx, cx                                ; 89 cb
    8639     call 0162ah                               ; e8 63 b5
     8633    call 0162ah                               ; e8 69 b5
    86408634    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    86418635    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86428636    add dx, strict byte 0002ch                ; 83 c2 2c
    86438637    mov ax, word [bp+018h]                    ; 8b 46 18
    8644     call 0160eh                               ; e8 37 b5
     8638    call 0160eh                               ; e8 3d b5
    86458639    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86468640    add dx, strict byte 0002dh                ; 83 c2 2d
    86478641    mov ax, word [bp+018h]                    ; 8b 46 18
    86488642    mov bx, 00093h                            ; bb 93 00
    8649     call 0160eh                               ; e8 28 b5
     8643    call 0160eh                               ; e8 2e b5
    86508644    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86518645    add dx, strict byte 0002eh                ; 83 c2 2e
    86528646    mov ax, word [bp+018h]                    ; 8b 46 18
    86538647    xor bx, bx                                ; 31 db
    8654     call 0162ah                               ; e8 36 b5
     8648    call 0162ah                               ; e8 3c b5
    86558649    mov si, word [bp+00ah]                    ; 8b 76 0a
    86568650    mov es, [bp+018h]                         ; 8e 46 18
     
    86638657    mov word [00467h], sp                     ; 89 26 67 04
    86648658    mov [00469h], ss                          ; 8c 16 69 04
    8665     call 06110h                               ; e8 00 00
     8659    call 0610ah                               ; e8 00 00
    86668660    pop di                                    ; 5f
    86678661    add di, strict byte 0001bh                ; 83 c7 1b
     
    86868680    cld                                       ; fc
    86878681    rep movsw                                 ; f3 a5
    8688     call 06144h                               ; e8 00 00
     8682    call 0613eh                               ; e8 00 00
    86898683    pop ax                                    ; 58
    86908684    push 0f000h                               ; 68 00 f0
     
    87078701    pop DS                                    ; 1f
    87088702    mov ax, di                                ; 89 f8
    8709     call 05d9ah                               ; e8 25 fc
     8703    call 05d94h                               ; e8 25 fc
    87108704    sti                                       ; fb
    87118705    mov byte [bp+017h], 000h                  ; c6 46 17 00
    87128706    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8713     jmp near 05f2eh                           ; e9 ad fd
     8707    jmp near 05f28h                           ; e9 ad fd
    87148708    mov ax, strict word 00031h                ; b8 31 00
    8715     call 0165ch                               ; e8 d5 b4
     8709    call 0165ch                               ; e8 db b4
    87168710    xor ah, ah                                ; 30 e4
    87178711    mov dx, ax                                ; 89 c2
    87188712    sal dx, 008h                              ; c1 e2 08
    87198713    mov ax, strict word 00030h                ; b8 30 00
    8720     call 0165ch                               ; e8 c8 b4
     8714    call 0165ch                               ; e8 ce b4
    87218715    xor ah, ah                                ; 30 e4
    87228716    or dx, ax                                 ; 09 c2
    87238717    mov word [bp+016h], dx                    ; 89 56 16
    87248718    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    8725     jbe short 0617ah                          ; 76 da
     8719    jbe short 06174h                          ; 76 da
    87268720    mov word [bp+016h], strict word 0ffc0h    ; c7 46 16 c0 ff
    8727     jmp short 0617ah                          ; eb d3
     8721    jmp short 06174h                          ; eb d3
    87288722    cli                                       ; fa
    87298723    mov ax, strict word 00001h                ; b8 01 00
    8730     call 05d9ah                               ; e8 ec fb
     8724    call 05d94h                               ; e8 ec fb
    87318725    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87328726    add dx, strict byte 00038h                ; 83 c2 38
    87338727    mov ax, word [bp+018h]                    ; 8b 46 18
    87348728    mov bx, strict word 0ffffh                ; bb ff ff
    8735     call 0162ah                               ; e8 6d b4
     8729    call 0162ah                               ; e8 73 b4
    87368730    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87378731    add dx, strict byte 0003ah                ; 83 c2 3a
    87388732    mov ax, word [bp+018h]                    ; 8b 46 18
    87398733    xor bx, bx                                ; 31 db
    8740     call 0162ah                               ; e8 5f b4
     8734    call 0162ah                               ; e8 65 b4
    87418735    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87428736    add dx, strict byte 0003ch                ; 83 c2 3c
    87438737    mov ax, word [bp+018h]                    ; 8b 46 18
    87448738    mov bx, strict word 0000fh                ; bb 0f 00
    8745     call 0160eh                               ; e8 34 b4
     8739    call 0160eh                               ; e8 3a b4
    87468740    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87478741    add dx, strict byte 0003dh                ; 83 c2 3d
    87488742    mov ax, word [bp+018h]                    ; 8b 46 18
    87498743    mov bx, 0009bh                            ; bb 9b 00
    8750     call 0160eh                               ; e8 25 b4
     8744    call 0160eh                               ; e8 2b b4
    87518745    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87528746    add dx, strict byte 0003eh                ; 83 c2 3e
    87538747    mov ax, word [bp+018h]                    ; 8b 46 18
    87548748    xor bx, bx                                ; 31 db
    8755     call 0162ah                               ; e8 33 b4
     8749    call 0162ah                               ; e8 39 b4
    87568750    mov AL, strict byte 011h                  ; b0 11
    87578751    mov dx, strict word 00020h                ; ba 20 00
     
    87838777    out DX, AL                                ; ee
    87848778    mov si, word [bp+00ah]                    ; 8b 76 0a
    8785     call 06238h                               ; e8 00 00
     8779    call 06232h                               ; e8 00 00
    87868780    pop di                                    ; 5f
    87878781    add di, strict byte 00018h                ; 83 c7 18
     
    88118805    push cx                                   ; 51
    88128806    retf                                      ; cb
    8813     jmp near 05f2eh                           ; e9 ba fc
     8807    jmp near 05f28h                           ; e9 ba fc
    88148808    mov bx, 00d32h                            ; bb 32 0d
    88158809    mov cx, ds                                ; 8c d9
    88168810    mov ax, strict word 00004h                ; b8 04 00
    8817     call 018aeh                               ; e8 2f b6
     8811    call 018aeh                               ; e8 35 b6
    88188812    push 00806h                               ; 68 06 08
    88198813    push strict byte 00004h                   ; 6a 04
    8820     call 018e9h                               ; e8 62 b6
     8814    call 018e9h                               ; e8 68 b6
    88218815    add sp, strict byte 00004h                ; 83 c4 04
    88228816    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     
    88258819    or ah, 086h                               ; 80 cc 86
    88268820    mov word [bp+016h], ax                    ; 89 46 16
    8827     jmp near 05f2eh                           ; e9 92 fc
     8821    jmp near 05f28h                           ; e9 92 fc
    88288822    mov word [bp+01ch], cx                    ; 89 4e 1c
    88298823    mov word [bp+016h], ax                    ; 89 46 16
    88308824    mov word [bp+010h], 0e6f5h                ; c7 46 10 f5 e6
    88318825    mov word [bp+018h], 0f000h                ; c7 46 18 00 f0
    8832     jmp near 05f2eh                           ; e9 7f fc
     8826    jmp near 05f28h                           ; e9 7f fc
    88338827    mov dx, strict word 0000eh                ; ba 0e 00
    88348828    mov ax, strict word 00040h                ; b8 40 00
    8835     call 0161ch                               ; e8 64 b3
     8829    call 0161ch                               ; e8 6a b3
    88368830    mov word [bp+018h], ax                    ; 89 46 18
    8837     jmp near 0617ah                           ; e9 bc fe
     8831    jmp near 06174h                           ; e9 bc fe
    88388832    push 00835h                               ; 68 35 08
    88398833    push strict byte 00008h                   ; 6a 08
    8840     jmp short 06284h                          ; eb bf
     8834    jmp short 0627eh                          ; eb bf
    88418835    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    8842     jne short 062eah                          ; 75 1f
     8836    jne short 062e4h                          ; 75 1f
    88438837    mov word [bp+016h], ax                    ; 89 46 16
    88448838    mov ax, word [bp+010h]                    ; 8b 46 10
    88458839    xor ah, ah                                ; 30 e4
    88468840    cmp ax, strict word 00001h                ; 3d 01 00
    8847     jc short 062e3h                           ; 72 0b
     8841    jc short 062ddh                           ; 72 0b
    88488842    cmp ax, strict word 00003h                ; 3d 03 00
    8849     jnbe short 062e3h                         ; 77 06
     8843    jnbe short 062ddh                         ; 77 06
    88508844    mov word [bp+01ch], cx                    ; 89 4e 1c
    8851     jmp near 05f2eh                           ; e9 4b fc
     8845    jmp near 05f28h                           ; e9 4b fc
    88528846    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8853     jmp near 05f2eh                           ; e9 44 fc
     8847    jmp near 05f28h                           ; e9 44 fc
    88548848    mov bx, 00d32h                            ; bb 32 0d
    88558849    mov cx, ds                                ; 8c d9
    88568850    mov ax, strict word 00004h                ; b8 04 00
    8857     call 018aeh                               ; e8 b9 b5
     8851    call 018aeh                               ; e8 bf b5
    88588852    push word [bp+010h]                       ; ff 76 10
    88598853    push word [bp+016h]                       ; ff 76 16
    88608854    push 0084ch                               ; 68 4c 08
    88618855    push strict byte 00004h                   ; 6a 04
    8862     call 018e9h                               ; e8 e6 b5
     8856    call 018e9h                               ; e8 ec b5
    88638857    add sp, strict byte 00008h                ; 83 c4 08
    8864     jmp short 0628ah                          ; eb 82
    8865     dec dx                                    ; 4a
    8866     and byte [fs:si-05eh], 064h               ; 64 80 64 a2 64
    8867     retn                                      ; c3
    8868     db  064h, 0e2h, 064h
    8869     ; fs loop 06376h                            ; 64 e2 64
    8870     add word [di+043h], sp                    ; 01 65 43
    8871     db  065h, 070h, 065h
    8872     ; gs jo short 0637dh                        ; 65 70 65
    8873 _int15_function32:                           ; 0xf6318 LB 0x309
     8858    jmp short 06284h                          ; eb 82
     8859    mov cx, 0db64h                            ; b9 64 db
     8860    db  064h
     8861    db  0feh
     8862    and byte [fs:di+040h], ah                 ; 64 20 65 40
     8863    db  065h, 061h
     8864    ; gs popaw                                  ; 65 61
     8865    mov AL, byte [gs:0cc65h]                  ; 65 a0 65 cc
     8866    db  065h
     8867_int15_function32:                           ; 0xf6312 LB 0x37b
    88748868    push si                                   ; 56
    88758869    enter 00008h, 000h                        ; c8 08 00 00
     8870    mov dx, word [bp+022h]                    ; 8b 56 22
     8871    shr dx, 008h                              ; c1 ea 08
     8872    mov bx, word [bp+02ah]                    ; 8b 5e 2a
     8873    and bl, 0feh                              ; 80 e3 fe
    88768874    mov ax, word [bp+022h]                    ; 8b 46 22
    8877     shr ax, 008h                              ; c1 e8 08
    8878     cmp ax, 000e8h                            ; 3d e8 00
    8879     je short 06369h                           ; 74 41
    8880     cmp ax, 00086h                            ; 3d 86 00
    8881     jne near 065f4h                           ; 0f 85 c5 02
     8875    xor ah, ah                                ; 30 e4
     8876    cmp dx, 000e8h                            ; 81 fa e8 00
     8877    je near 063ddh                            ; 0f 84 ad 00
     8878    cmp dx, 000d0h                            ; 81 fa d0 00
     8879    je short 06378h                           ; 74 42
     8880    cmp dx, 00086h                            ; 81 fa 86 00
     8881    jne near 06660h                           ; 0f 85 22 03
    88828882    sti                                       ; fb
    88838883    mov ax, word [bp+01eh]                    ; 8b 46 1e
     
    88988898    db  066h, 00bh, 0c9h
    88998899    ; or ecx, ecx                               ; 66 0b c9
    8900     je near 06366h                            ; 0f 84 0e 00
     8900    je near 06375h                            ; 0f 84 0e 00
    89018901    in AL, strict byte 061h                   ; e4 61
    89028902    and AL, strict byte 010h                  ; 24 10
    89038903    db  03ah, 0c4h
    89048904    ; cmp al, ah                                ; 3a c4
    8905     je short 06358h                           ; 74 f8
     8905    je short 06367h                           ; 74 f8
    89068906    db  08ah, 0e0h
    89078907    ; mov ah, al                                ; 8a e0
    89088908    dec ecx                                   ; 66 49
    8909     jne short 06358h                          ; 75 f2
     8909    jne short 06367h                          ; 75 f2
    89108910    leave                                     ; c9
    89118911    pop si                                    ; 5e
    89128912    retn                                      ; c3
    8913     mov ax, word [bp+022h]                    ; 8b 46 22
    8914     xor ah, ah                                ; 30 e4
     8913    cmp ax, strict word 0004fh                ; 3d 4f 00
     8914    jne near 06660h                           ; 0f 85 e1 02
     8915    cmp word [bp+018h], 05052h                ; 81 7e 18 52 50
     8916    jne near 06660h                           ; 0f 85 d8 02
     8917    cmp word [bp+016h], 04f43h                ; 81 7e 16 43 4f
     8918    jne near 06660h                           ; 0f 85 cf 02
     8919    cmp word [bp+020h], 04d4fh                ; 81 7e 20 4f 4d
     8920    jne near 06660h                           ; 0f 85 c6 02
     8921    cmp word [bp+01eh], 04445h                ; 81 7e 1e 45 44
     8922    jne near 06660h                           ; 0f 85 bd 02
     8923    mov ax, word [bp+00ch]                    ; 8b 46 0c
     8924    or ax, word [bp+00ah]                     ; 0b 46 0a
     8925    jne near 06660h                           ; 0f 85 b3 02
     8926    mov ax, word [bp+008h]                    ; 8b 46 08
     8927    or ax, word [bp+006h]                     ; 0b 46 06
     8928    jne near 06660h                           ; 0f 85 a9 02
     8929    mov word [bp+02ah], bx                    ; 89 5e 2a
     8930    mov ax, word [bp+016h]                    ; 8b 46 16
     8931    mov word [bp+00ah], ax                    ; 89 46 0a
     8932    mov ax, word [bp+018h]                    ; 8b 46 18
     8933    mov word [bp+00ch], ax                    ; 89 46 0c
     8934    mov ax, word [bp+01eh]                    ; 8b 46 1e
     8935    mov word [bp+006h], ax                    ; 89 46 06
     8936    mov ax, word [bp+020h]                    ; 8b 46 20
     8937    mov word [bp+008h], ax                    ; 89 46 08
     8938    mov dword [bp+022h], strict dword 049413332h ; 66 c7 46 22 32 33 41 49
     8939    leave                                     ; c9
     8940    pop si                                    ; 5e
     8941    retn                                      ; c3
    89158942    cmp ax, strict word 00020h                ; 3d 20 00
    8916     je short 0637dh                           ; 74 0a
     8943    je short 063ech                           ; 74 0a
    89178944    cmp ax, strict word 00001h                ; 3d 01 00
    8918     je near 065a6h                            ; 0f 84 2c 02
    8919     jmp near 065f4h                           ; e9 77 02
     8945    je near 06614h                            ; 0f 84 2b 02
     8946    jmp near 06660h                           ; e9 74 02
    89208947    cmp word [bp+01ch], 0534dh                ; 81 7e 1c 4d 53
    8921     jne near 065f4h                           ; 0f 85 6e 02
     8948    jne near 06660h                           ; 0f 85 6b 02
    89228949    cmp word [bp+01ah], 04150h                ; 81 7e 1a 50 41
    8923     jne near 065f4h                           ; 0f 85 65 02
     8950    jne near 06660h                           ; 0f 85 62 02
    89248951    mov ax, strict word 00035h                ; b8 35 00
    8925     call 0165ch                               ; e8 c7 b2
     8952    call 0165ch                               ; e8 58 b2
    89268953    movzx bx, al                              ; 0f b6 d8
    89278954    xor dx, dx                                ; 31 d2
     
    89298956    sal bx, 1                                 ; d1 e3
    89308957    rcl dx, 1                                 ; d1 d2
    8931     loop 0639dh                               ; e2 fa
     8958    loop 0640ch                               ; e2 fa
    89328959    mov ax, strict word 00034h                ; b8 34 00
    8933     call 0165ch                               ; e8 b3 b2
     8960    call 0165ch                               ; e8 44 b2
    89348961    xor ah, ah                                ; 30 e4
    89358962    mov dx, bx                                ; 89 da
     
    89398966    adc dx, 00100h                            ; 81 d2 00 01
    89408967    cmp dx, 00100h                            ; 81 fa 00 01
    8941     jc short 063c3h                           ; 72 06
    8942     jne short 063f0h                          ; 75 31
     8968    jc short 06432h                           ; 72 06
     8969    jne short 0645fh                          ; 75 31
    89438970    test bx, bx                               ; 85 db
    8944     jnbe short 063f0h                         ; 77 2d
     8971    jnbe short 0645fh                         ; 77 2d
    89458972    mov ax, strict word 00031h                ; b8 31 00
    8946     call 0165ch                               ; e8 93 b2
     8973    call 0165ch                               ; e8 24 b2
    89478974    movzx bx, al                              ; 0f b6 d8
    89488975    xor dx, dx                                ; 31 d2
     
    89508977    sal bx, 1                                 ; d1 e3
    89518978    rcl dx, 1                                 ; d1 d2
    8952     loop 063d1h                               ; e2 fa
     8979    loop 06440h                               ; e2 fa
    89538980    mov ax, strict word 00030h                ; b8 30 00
    8954     call 0165ch                               ; e8 7f b2
     8981    call 0165ch                               ; e8 10 b2
    89558982    xor ah, ah                                ; 30 e4
    89568983    or bx, ax                                 ; 09 c3
     
    89588985    sal bx, 1                                 ; d1 e3
    89598986    rcl dx, 1                                 ; d1 d2
    8960     loop 063e4h                               ; e2 fa
     8987    loop 06453h                               ; e2 fa
    89618988    add bx, strict byte 00000h                ; 83 c3 00
    89628989    adc dx, strict byte 00010h                ; 83 d2 10
    89638990    mov ax, strict word 00062h                ; b8 62 00
    8964     call 0165ch                               ; e8 66 b2
     8991    call 0165ch                               ; e8 f7 b1
    89658992    xor ah, ah                                ; 30 e4
    89668993    mov word [bp-008h], ax                    ; 89 46 f8
     
    89708997    sal word [bp-008h], 1                     ; d1 66 f8
    89718998    rcl word [bp-006h], 1                     ; d1 56 fa
    8972     loop 06403h                               ; e2 f8
     8999    loop 06472h                               ; e2 f8
    89739000    mov ax, strict word 00061h                ; b8 61 00
    8974     call 0165ch                               ; e8 4b b2
     9001    call 0165ch                               ; e8 dc b1
    89759002    xor ah, ah                                ; 30 e4
    89769003    or word [bp-008h], ax                     ; 09 46 f8
     
    89799006    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    89809007    mov ax, strict word 00063h                ; b8 63 00
    8981     call 0165ch                               ; e8 35 b2
     9008    call 0165ch                               ; e8 c6 b1
     9009    mov byte [bp-002h], al                    ; 88 46 fe
    89829010    mov byte [bp-004h], al                    ; 88 46 fc
    8983     mov byte [bp-002h], al                    ; 88 46 fe
    89849011    mov ax, word [bp+016h]                    ; 8b 46 16
    89859012    cmp ax, strict word 00007h                ; 3d 07 00
    8986     jnbe near 065f4h                          ; 0f 87 bd 01
     9013    jnbe near 06660h                          ; 0f 87 ba 01
    89879014    mov si, ax                                ; 89 c6
    89889015    add si, ax                                ; 01 c6
    8989     mov ax, bx                                ; 89 d8
    8990     add ax, strict word 00000h                ; 05 00 00
    8991     mov cx, dx                                ; 89 d1
    8992     adc cx, strict byte 0ffffh                ; 83 d1 ff
    8993     jmp word [cs:si+06308h]                   ; 2e ff a4 08 63
     9016    mov cx, bx                                ; 89 d9
     9017    add cx, strict byte 00000h                ; 83 c1 00
     9018    mov ax, dx                                ; 89 d0
     9019    adc ax, strict word 0ffffh                ; 15 ff ff
     9020    jmp word [cs:si+06302h]                   ; 2e ff a4 02 63
    89949021    push strict byte 00001h                   ; 6a 01
    89959022    push dword 000000000h                     ; 66 6a 00
     
    90009027    xor bx, bx                                ; 31 db
    90019028    xor cx, cx                                ; 31 c9
    9002     call 05dc3h                               ; e8 62 f9
     9029    call 05dbdh                               ; e8 ed f8
    90039030    mov dword [bp+016h], strict dword 000000001h ; 66 c7 46 16 01 00 00 00
    9004     mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53
    9005     mov dword [bp+01eh], strict dword 000000014h ; 66 c7 46 1e 14 00 00 00
    9006     and byte [bp+02ah], 0feh                  ; 80 66 2a fe
    9007     leave                                     ; c9
    9008     pop si                                    ; 5e
    9009     retn                                      ; c3
     9031    jmp near 065fdh                           ; e9 22 01
    90109032    push strict byte 00002h                   ; 6a 02
    90119033    push dword 000000000h                     ; 66 6a 00
     
    90169038    mov bx, 0fc00h                            ; bb 00 fc
    90179039    mov cx, strict word 00009h                ; b9 09 00
    9018     call 05dc3h                               ; e8 2b f9
     9040    call 05dbdh                               ; e8 ca f8
    90199041    mov dword [bp+016h], strict dword 000000002h ; 66 c7 46 16 02 00 00 00
    9020     jmp short 06469h                          ; eb c7
     9042    jmp near 065fdh                           ; e9 ff 00
    90219043    push strict byte 00002h                   ; 6a 02
    90229044    push dword 000000000h                     ; 66 6a 00
     
    90279049    xor bx, bx                                ; 31 db
    90289050    mov cx, strict word 0000fh                ; b9 0f 00
    9029     call 05dc3h                               ; e8 0a f9
     9051    call 05dbdh                               ; e8 a8 f8
    90309052    mov dword [bp+016h], strict dword 000000003h ; 66 c7 46 16 03 00 00 00
    9031     jmp short 06469h                          ; eb a6
     9053    jmp near 065fdh                           ; e9 dd 00
    90329054    push strict byte 00001h                   ; 6a 01
    90339055    push dword 000000000h                     ; 66 6a 00
     9056    push ax                                   ; 50
    90349057    push cx                                   ; 51
    9035     push ax                                   ; 50
    90369058    mov dx, word [bp+006h]                    ; 8b 56 06
    90379059    mov ax, word [bp+026h]                    ; 8b 46 26
    90389060    xor bx, bx                                ; 31 db
    90399061    mov cx, strict word 00010h                ; b9 10 00
    9040     call 05dc3h                               ; e8 eb f8
     9062    call 05dbdh                               ; e8 88 f8
    90419063    mov dword [bp+016h], strict dword 000000004h ; 66 c7 46 16 04 00 00 00
    9042     jmp short 06469h                          ; eb 87
     9064    jmp near 065fdh                           ; e9 bd 00
    90439065    push strict byte 00003h                   ; 6a 03
    90449066    push dword 000000000h                     ; 66 6a 00
     
    90479069    mov dx, word [bp+006h]                    ; 8b 56 06
    90489070    mov si, word [bp+026h]                    ; 8b 76 26
    9049     mov bx, ax                                ; 89 c3
     9071    mov bx, cx                                ; 89 cb
     9072    mov cx, ax                                ; 89 c1
    90509073    mov ax, si                                ; 89 f0
    9051     call 05dc3h                               ; e8 cd f8
     9074    call 05dbdh                               ; e8 67 f8
    90529075    mov dword [bp+016h], strict dword 000000005h ; 66 c7 46 16 05 00 00 00
    9053     jmp near 06469h                           ; e9 68 ff
     9076    jmp near 065fdh                           ; e9 9c 00
    90549077    push strict byte 00002h                   ; 6a 02
    90559078    push dword 000000000h                     ; 66 6a 00
     
    90599082    xor bx, bx                                ; 31 db
    90609083    mov cx, strict word 0fffch                ; b9 fc ff
    9061     call 05dc3h                               ; e8 ac f8
    9062     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9063     jne short 06524h                          ; 75 07
     9084    call 05dbdh                               ; e8 46 f8
     9085    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     9086    jne short 06584h                          ; 75 07
    90649087    mov ax, word [bp-006h]                    ; 8b 46 fa
    90659088    test ax, ax                               ; 85 c0
    9066     je short 0653ah                           ; 74 16
     9089    je short 06598h                           ; 74 14
    90679090    mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00
    9068     jmp near 06469h                           ; e9 3a ff
     9091    jmp short 065fdh                          ; eb 6f
    90699092    mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00
    9070     jmp near 06469h                           ; e9 2f ff
     9093    jmp short 065fdh                          ; eb 65
    90719094    mov word [bp+016h], ax                    ; 89 46 16
    90729095    mov word [bp+018h], ax                    ; 89 46 18
    9073     jmp near 06469h                           ; e9 26 ff
     9096    jmp short 065fdh                          ; eb 5d
    90749097    push strict byte 00002h                   ; 6a 02
    90759098    push dword 000000000h                     ; 66 6a 00
     
    90799102    xor bx, bx                                ; 31 db
    90809103    xor cx, cx                                ; 31 c9
    9081     call 05dc3h                               ; e8 6b f8
    9082     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9083     jne short 06565h                          ; 75 07
     9104    call 05dbdh                               ; e8 08 f8
     9105    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     9106    jne short 065c2h                          ; 75 07
    90849107    mov ax, word [bp-006h]                    ; 8b 46 fa
    90859108    test ax, ax                               ; 85 c0
    9086     je short 06567h                           ; 74 02
    9087     jmp short 06524h                          ; eb bd
     9109    je short 065c4h                           ; 74 02
     9110    jmp short 06584h                          ; eb c0
    90889111    mov word [bp+016h], ax                    ; 89 46 16
    90899112    mov word [bp+018h], ax                    ; 89 46 18
    9090     jmp near 06469h                           ; e9 f9 fe
    9091     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9092     jne short 0657eh                          ; 75 08
     9113    jmp short 065fdh                          ; eb 31
     9114    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     9115    jne short 065d8h                          ; 75 06
    90939116    cmp word [bp-006h], strict byte 00000h    ; 83 7e fa 00
    9094     je near 06469h                            ; 0f 84 eb fe
     9117    je short 065fdh                           ; 74 25
    90959118    push strict byte 00001h                   ; 6a 01
    9096     mov al, byte [bp-002h]                    ; 8a 46 fe
     9119    mov al, byte [bp-004h]                    ; 8a 46 fc
    90979120    db  0feh, 0c0h
    90989121    ; inc al                                    ; fe c0
     
    91059128    xor bx, bx                                ; 31 db
    91069129    xor cx, cx                                ; 31 c9
    9107     call 05dc3h                               ; e8 28 f8
     9130    call 05dbdh                               ; e8 c8 f7
    91089131    xor ax, ax                                ; 31 c0
    91099132    mov word [bp+016h], ax                    ; 89 46 16
    91109133    mov word [bp+018h], ax                    ; 89 46 18
    9111     jmp near 06469h                           ; e9 c3 fe
     9134    mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53
     9135    mov dword [bp+01eh], strict dword 000000014h ; 66 c7 46 1e 14 00 00 00
    91129136    and byte [bp+02ah], 0feh                  ; 80 66 2a fe
     9137    leave                                     ; c9
     9138    pop si                                    ; 5e
     9139    retn                                      ; c3
     9140    mov word [bp+02ah], bx                    ; 89 5e 2a
    91139141    mov ax, strict word 00031h                ; b8 31 00
    9114     call 0165ch                               ; e8 ac b0
    9115     xor ah, ah                                ; 30 e4
    9116     mov dx, ax                                ; 89 c2
     9142    call 0165ch                               ; e8 3f b0
     9143    movzx dx, al                              ; 0f b6 d0
    91179144    sal dx, 008h                              ; c1 e2 08
    91189145    mov ax, strict word 00030h                ; b8 30 00
    9119     call 0165ch                               ; e8 9f b0
     9146    call 0165ch                               ; e8 33 b0
    91209147    xor ah, ah                                ; 30 e4
    91219148    or dx, ax                                 ; 09 c2
    91229149    mov word [bp+01eh], dx                    ; 89 56 1e
    91239150    cmp dx, 03c00h                            ; 81 fa 00 3c
    9124     jbe short 065cfh                          ; 76 05
     9151    jbe short 0663bh                          ; 76 05
    91259152    mov word [bp+01eh], 03c00h                ; c7 46 1e 00 3c
    91269153    mov ax, strict word 00035h                ; b8 35 00
    9127     call 0165ch                               ; e8 87 b0
     9154    call 0165ch                               ; e8 1b b0
    91289155    movzx dx, al                              ; 0f b6 d0
    91299156    sal dx, 008h                              ; c1 e2 08
    91309157    mov ax, strict word 00034h                ; b8 34 00
    9131     call 0165ch                               ; e8 7b b0
     9158    call 0165ch                               ; e8 0f b0
    91329159    xor ah, ah                                ; 30 e4
    91339160    or dx, ax                                 ; 09 c2
     
    91429169    mov cx, ds                                ; 8c d9
    91439170    mov ax, strict word 00004h                ; b8 04 00
    9144     call 018aeh                               ; e8 af b2
     9171    call 018aeh                               ; e8 43 b2
    91459172    push word [bp+016h]                       ; ff 76 16
    91469173    push word [bp+022h]                       ; ff 76 22
    91479174    push 0084ch                               ; 68 4c 08
    91489175    push strict byte 00004h                   ; 6a 04
    9149     call 018e9h                               ; e8 dc b2
     9176    call 018e9h                               ; e8 70 b2
    91509177    add sp, strict byte 00008h                ; 83 c4 08
    91519178    or byte [bp+02ah], 001h                   ; 80 4e 2a 01
     
    91579184    pop si                                    ; 5e
    91589185    retn                                      ; c3
    9159 init_rtc_:                                   ; 0xf6621 LB 0x25
     9186init_rtc_:                                   ; 0xf668d LB 0x25
    91609187    push dx                                   ; 52
    91619188    push bp                                   ; 55
     
    91639190    mov dx, strict word 00026h                ; ba 26 00
    91649191    mov ax, strict word 0000ah                ; b8 0a 00
    9165     call 0166dh                               ; e8 3f b0
     9192    call 0166dh                               ; e8 d3 af
    91669193    mov dx, strict word 00002h                ; ba 02 00
    91679194    mov ax, strict word 0000bh                ; b8 0b 00
    9168     call 0166dh                               ; e8 36 b0
     9195    call 0166dh                               ; e8 ca af
    91699196    mov ax, strict word 0000ch                ; b8 0c 00
    9170     call 0165ch                               ; e8 1f b0
     9197    call 0165ch                               ; e8 b3 af
    91719198    mov ax, strict word 0000dh                ; b8 0d 00
    9172     call 0165ch                               ; e8 19 b0
     9199    call 0165ch                               ; e8 ad af
    91739200    pop bp                                    ; 5d
    91749201    pop dx                                    ; 5a
    91759202    retn                                      ; c3
    9176 rtc_updating_:                               ; 0xf6646 LB 0x1f
     9203rtc_updating_:                               ; 0xf66b2 LB 0x1f
    91779204    push dx                                   ; 52
    91789205    push bp                                   ; 55
     
    91809207    mov dx, 061a8h                            ; ba a8 61
    91819208    dec dx                                    ; 4a
    9182     je short 0665fh                           ; 74 0f
     9209    je short 066cbh                           ; 74 0f
    91839210    mov ax, strict word 0000ah                ; b8 0a 00
    9184     call 0165ch                               ; e8 06 b0
     9211    call 0165ch                               ; e8 9a af
    91859212    test AL, strict byte 080h                 ; a8 80
    9186     jne short 0664dh                          ; 75 f3
     9213    jne short 066b9h                          ; 75 f3
    91879214    xor ax, ax                                ; 31 c0
    91889215    pop bp                                    ; 5d
     
    91939220    pop dx                                    ; 5a
    91949221    retn                                      ; c3
    9195 _int70_function:                             ; 0xf6665 LB 0xbb
     9222_int70_function:                             ; 0xf66d1 LB 0xbb
    91969223    push si                                   ; 56
    91979224    enter 00002h, 000h                        ; c8 02 00 00
    91989225    mov ax, strict word 0000bh                ; b8 0b 00
    9199     call 0165ch                               ; e8 ec af
     9226    call 0165ch                               ; e8 80 af
    92009227    mov dl, al                                ; 88 c2
    92019228    mov byte [bp-002h], al                    ; 88 46 fe
    92029229    mov ax, strict word 0000ch                ; b8 0c 00
    9203     call 0165ch                               ; e8 e1 af
     9230    call 0165ch                               ; e8 75 af
    92049231    mov dh, al                                ; 88 c6
    92059232    test dl, 060h                             ; f6 c2 60
    9206     je near 0670ah                            ; 0f 84 86 00
     9233    je near 06776h                            ; 0f 84 86 00
    92079234    test AL, strict byte 020h                 ; a8 20
    9208     je short 0668ch                           ; 74 04
     9235    je short 066f8h                           ; 74 04
    92099236    sti                                       ; fb
    92109237    int 04ah                                  ; cd 4a
    92119238    cli                                       ; fa
    92129239    test dh, 040h                             ; f6 c6 40
    9213     je near 0670ah                            ; 0f 84 77 00
     9240    je near 06776h                            ; 0f 84 77 00
    92149241    mov dx, 000a0h                            ; ba a0 00
    92159242    mov ax, strict word 00040h                ; b8 40 00
    9216     call 01600h                               ; e8 64 af
     9243    call 01600h                               ; e8 f8 ae
    92179244    test al, al                               ; 84 c0
    9218     je short 0670ah                           ; 74 6a
     9245    je short 06776h                           ; 74 6a
    92199246    mov dx, 0009ch                            ; ba 9c 00
    92209247    mov ax, strict word 00040h                ; b8 40 00
    9221     call 01638h                               ; e8 8f af
     9248    call 01638h                               ; e8 23 af
    92229249    test dx, dx                               ; 85 d2
    9223     jne short 066f6h                          ; 75 49
     9250    jne short 06762h                          ; 75 49
    92249251    cmp ax, 003d1h                            ; 3d d1 03
    9225     jnc short 066f6h                          ; 73 44
     9252    jnc short 06762h                          ; 73 44
    92269253    mov dx, 00098h                            ; ba 98 00
    92279254    mov ax, strict word 00040h                ; b8 40 00
    9228     call 0161ch                               ; e8 61 af
     9255    call 0161ch                               ; e8 f5 ae
    92299256    mov si, ax                                ; 89 c6
    92309257    mov dx, 0009ah                            ; ba 9a 00
    92319258    mov ax, strict word 00040h                ; b8 40 00
    9232     call 0161ch                               ; e8 56 af
     9259    call 0161ch                               ; e8 ea ae
    92339260    mov cx, ax                                ; 89 c1
    92349261    xor bx, bx                                ; 31 db
    92359262    mov dx, 000a0h                            ; ba a0 00
    92369263    mov ax, strict word 00040h                ; b8 40 00
    9237     call 0160eh                               ; e8 3b af
     9264    call 0160eh                               ; e8 cf ae
    92389265    mov al, byte [bp-002h]                    ; 8a 46 fe
    92399266    and AL, strict byte 037h                  ; 24 37
    92409267    movzx dx, al                              ; 0f b6 d0
    92419268    mov ax, strict word 0000bh                ; b8 0b 00
    9242     call 0166dh                               ; e8 8c af
     9269    call 0166dh                               ; e8 20 af
    92439270    mov dx, cx                                ; 89 ca
    92449271    mov ax, si                                ; 89 f0
    9245     call 01600h                               ; e8 18 af
     9272    call 01600h                               ; e8 ac ae
    92469273    or AL, strict byte 080h                   ; 0c 80
    92479274    movzx bx, al                              ; 0f b6 d8
    92489275    mov dx, cx                                ; 89 ca
    92499276    mov ax, si                                ; 89 f0
    9250     call 0160eh                               ; e8 1a af
    9251     jmp short 0670ah                          ; eb 14
     9277    call 0160eh                               ; e8 ae ae
     9278    jmp short 06776h                          ; eb 14
    92529279    mov bx, ax                                ; 89 c3
    92539280    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    92569283    mov dx, 0009ch                            ; ba 9c 00
    92579284    mov ax, strict word 00040h                ; b8 40 00
    9258     call 0164ah                               ; e8 40 af
    9259     call 0e03bh                               ; e8 2e 79
     9285    call 0164ah                               ; e8 d4 ae
     9286    call 0e03bh                               ; e8 c2 78
    92609287    leave                                     ; c9
    92619288    pop si                                    ; 5e
    92629289    retn                                      ; c3
    9263     aaa                                       ; 37
    9264     db  067h, 05eh
    9265     ; pop si                                    ; 67 5e
    9266     and word [edi-04bh], strict byte 00067h   ; 67 83 67 b5 67
    9267     add bp, word [bx+si+039h]                 ; 03 68 39
    9268     push 0687bh                               ; 68 7b 68
    9269     db  0d0h
    9270     db  068h
    9271 _int1a_function:                             ; 0xf6720 LB 0x1c0
     9290    db  0a3h, 067h, 0cah, 067h, 0efh, 067h, 021h, 068h, 06fh, 068h, 0a5h, 068h, 0e7h, 068h, 03ch, 069h
     9291_int1a_function:                             ; 0xf678c LB 0x1c0
    92729292    push bp                                   ; 55
    92739293    mov bp, sp                                ; 89 e5
     
    92759295    mov al, byte [bp+013h]                    ; 8a 46 13
    92769296    cmp AL, strict byte 007h                  ; 3c 07
    9277     jnbe near 0675ch                          ; 0f 87 2f 00
     9297    jnbe near 067c8h                          ; 0f 87 2f 00
    92789298    movzx bx, al                              ; 0f b6 d8
    92799299    add bx, bx                                ; 01 db
    9280     jmp word [cs:bx+06710h]                   ; 2e ff a7 10 67
     9300    jmp word [cs:bx+0677ch]                   ; 2e ff a7 7c 67
    92819301    cli                                       ; fa
    92829302    mov bx, 0046eh                            ; bb 6e 04
     
    93109330    pop bp                                    ; 5d
    93119331    retn                                      ; c3
    9312     call 06646h                               ; e8 c0 fe
     9332    call 066b2h                               ; e8 c0 fe
    93139333    test ax, ax                               ; 85 c0
    9314     je short 0678ch                           ; 74 02
     9334    je short 067f8h                           ; 74 02
    93159335    pop bp                                    ; 5d
    93169336    retn                                      ; c3
    93179337    xor ax, ax                                ; 31 c0
    9318     call 0165ch                               ; e8 cb ae
     9338    call 0165ch                               ; e8 5f ae
    93199339    mov byte [bp+00fh], al                    ; 88 46 0f
    93209340    mov ax, strict word 00002h                ; b8 02 00
    9321     call 0165ch                               ; e8 c2 ae
     9341    call 0165ch                               ; e8 56 ae
    93229342    mov byte [bp+010h], al                    ; 88 46 10
    93239343    mov ax, strict word 00004h                ; b8 04 00
    9324     call 0165ch                               ; e8 b9 ae
     9344    call 0165ch                               ; e8 4d ae
    93259345    mov bl, al                                ; 88 c3
    93269346    mov byte [bp+011h], al                    ; 88 46 11
    93279347    mov ax, strict word 0000bh                ; b8 0b 00
    9328     call 0165ch                               ; e8 ae ae
     9348    call 0165ch                               ; e8 42 ae
    93299349    and AL, strict byte 001h                  ; 24 01
    93309350    mov byte [bp+00eh], al                    ; 88 46 0e
    9331     jmp short 067fah                          ; eb 45
    9332     call 06646h                               ; e8 8e fe
     9351    jmp short 06866h                          ; eb 45
     9352    call 066b2h                               ; e8 8e fe
    93339353    test ax, ax                               ; 85 c0
    9334     je short 067bfh                           ; 74 03
    9335     call 06621h                               ; e8 62 fe
     9354    je short 0682bh                           ; 74 03
     9355    call 0668dh                               ; e8 62 fe
    93369356    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    93379357    xor ax, ax                                ; 31 c0
    9338     call 0166dh                               ; e8 a5 ae
     9358    call 0166dh                               ; e8 39 ae
    93399359    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    93409360    mov ax, strict word 00002h                ; b8 02 00
    9341     call 0166dh                               ; e8 9b ae
     9361    call 0166dh                               ; e8 2f ae
    93429362    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    93439363    mov ax, strict word 00004h                ; b8 04 00
    9344     call 0166dh                               ; e8 91 ae
     9364    call 0166dh                               ; e8 25 ae
    93459365    mov ax, strict word 0000bh                ; b8 0b 00
    9346     call 0165ch                               ; e8 7a ae
     9366    call 0165ch                               ; e8 0e ae
    93479367    mov bl, al                                ; 88 c3
    93489368    and bl, 060h                              ; 80 e3 60
     
    93539373    movzx dx, bl                              ; 0f b6 d3
    93549374    mov ax, strict word 0000bh                ; b8 0b 00
    9355     call 0166dh                               ; e8 73 ae
     9375    call 0166dh                               ; e8 07 ae
    93569376    mov byte [bp+013h], 000h                  ; c6 46 13 00
    93579377    mov byte [bp+012h], bl                    ; 88 5e 12
     
    93599379    retn                                      ; c3
    93609380    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9361     call 06646h                               ; e8 3c fe
     9381    call 066b2h                               ; e8 3c fe
    93629382    test ax, ax                               ; 85 c0
    9363     je short 06810h                           ; 74 02
     9383    je short 0687ch                           ; 74 02
    93649384    pop bp                                    ; 5d
    93659385    retn                                      ; c3
    93669386    mov ax, strict word 00009h                ; b8 09 00
    9367     call 0165ch                               ; e8 46 ae
     9387    call 0165ch                               ; e8 da ad
    93689388    mov byte [bp+010h], al                    ; 88 46 10
    93699389    mov ax, strict word 00008h                ; b8 08 00
    9370     call 0165ch                               ; e8 3d ae
     9390    call 0165ch                               ; e8 d1 ad
    93719391    mov byte [bp+00fh], al                    ; 88 46 0f
    93729392    mov ax, strict word 00007h                ; b8 07 00
    9373     call 0165ch                               ; e8 34 ae
     9393    call 0165ch                               ; e8 c8 ad
    93749394    mov byte [bp+00eh], al                    ; 88 46 0e
    93759395    mov ax, strict word 00032h                ; b8 32 00
    9376     call 0165ch                               ; e8 2b ae
     9396    call 0165ch                               ; e8 bf ad
    93779397    mov byte [bp+011h], al                    ; 88 46 11
    93789398    mov byte [bp+012h], al                    ; 88 46 12
    93799399    pop bp                                    ; 5d
    93809400    retn                                      ; c3
    9381     call 06646h                               ; e8 0a fe
     9401    call 066b2h                               ; e8 0a fe
    93829402    test ax, ax                               ; 85 c0
    9383     je short 06845h                           ; 74 05
    9384     call 06621h                               ; e8 de fd
     9403    je short 068b1h                           ; 74 05
     9404    call 0668dh                               ; e8 de fd
    93859405    pop bp                                    ; 5d
    93869406    retn                                      ; c3
    93879407    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    93889408    mov ax, strict word 00009h                ; b8 09 00
    9389     call 0166dh                               ; e8 1e ae
     9409    call 0166dh                               ; e8 b2 ad
    93909410    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    93919411    mov ax, strict word 00008h                ; b8 08 00
    9392     call 0166dh                               ; e8 14 ae
     9412    call 0166dh                               ; e8 a8 ad
    93939413    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    93949414    mov ax, strict word 00007h                ; b8 07 00
    9395     call 0166dh                               ; e8 0a ae
     9415    call 0166dh                               ; e8 9e ad
    93969416    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    93979417    mov ax, strict word 00032h                ; b8 32 00
    9398     call 0166dh                               ; e8 00 ae
     9418    call 0166dh                               ; e8 94 ad
    93999419    mov ax, strict word 0000bh                ; b8 0b 00
    9400     call 0165ch                               ; e8 e9 ad
     9420    call 0165ch                               ; e8 7d ad
    94019421    mov bl, al                                ; 88 c3
    94029422    and bl, 07fh                              ; 80 e3 7f
    9403     jmp near 067f1h                           ; e9 76 ff
     9423    jmp near 0685dh                           ; e9 76 ff
    94049424    mov ax, strict word 0000bh                ; b8 0b 00
    9405     call 0165ch                               ; e8 db ad
     9425    call 0165ch                               ; e8 6f ad
    94069426    mov bl, al                                ; 88 c3
    94079427    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    94089428    test AL, strict byte 020h                 ; a8 20
    9409     je short 0688eh                           ; 74 02
     9429    je short 068fah                           ; 74 02
    94109430    pop bp                                    ; 5d
    94119431    retn                                      ; c3
    9412     call 06646h                               ; e8 b5 fd
     9432    call 066b2h                               ; e8 b5 fd
    94139433    test ax, ax                               ; 85 c0
    9414     je short 06898h                           ; 74 03
    9415     call 06621h                               ; e8 89 fd
     9434    je short 06904h                           ; 74 03
     9435    call 0668dh                               ; e8 89 fd
    94169436    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    94179437    mov ax, strict word 00001h                ; b8 01 00
    9418     call 0166dh                               ; e8 cb ad
     9438    call 0166dh                               ; e8 5f ad
    94199439    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    94209440    mov ax, strict word 00003h                ; b8 03 00
    9421     call 0166dh                               ; e8 c1 ad
     9441    call 0166dh                               ; e8 55 ad
    94229442    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    94239443    mov ax, strict word 00005h                ; b8 05 00
    9424     call 0166dh                               ; e8 b7 ad
     9444    call 0166dh                               ; e8 4b ad
    94259445    mov dx, 000a1h                            ; ba a1 00
    94269446    in AL, DX                                 ; ec
     
    94349454    movzx dx, al                              ; 0f b6 d0
    94359455    mov ax, strict word 0000bh                ; b8 0b 00
    9436     call 0166dh                               ; e8 9f ad
     9456    call 0166dh                               ; e8 33 ad
    94379457    pop bp                                    ; 5d
    94389458    retn                                      ; c3
    94399459    mov ax, strict word 0000bh                ; b8 0b 00
    9440     call 0165ch                               ; e8 86 ad
     9460    call 0165ch                               ; e8 1a ad
    94419461    mov bl, al                                ; 88 c3
    94429462    and AL, strict byte 057h                  ; 24 57
    94439463    movzx dx, al                              ; 0f b6 d0
    9444     jmp near 067f4h                           ; e9 14 ff
    9445 send_to_mouse_ctrl_:                         ; 0xf68e0 LB 0x31
     9464    jmp near 06860h                           ; e9 14 ff
     9465send_to_mouse_ctrl_:                         ; 0xf694c LB 0x31
    94469466    push bx                                   ; 53
    94479467    push dx                                   ; 52
     
    94549474    ; sub ah, ah                                ; 2a e4
    94559475    test AL, strict byte 002h                 ; a8 02
    9456     je short 068ffh                           ; 74 0e
     9476    je short 0696bh                           ; 74 0e
    94579477    push 00886h                               ; 68 86 08
    94589478    push 010fah                               ; 68 fa 10
    94599479    push strict byte 00007h                   ; 6a 07
    9460     call 018e9h                               ; e8 ed af
     9480    call 018e9h                               ; e8 81 af
    94619481    add sp, strict byte 00006h                ; 83 c4 06
    94629482    mov AL, strict byte 0d4h                  ; b0 d4
     
    94719491    pop bx                                    ; 5b
    94729492    retn                                      ; c3
    9473 get_mouse_data_:                             ; 0xf6911 LB 0x38
     9493get_mouse_data_:                             ; 0xf697d LB 0x38
    94749494    push bx                                   ; 53
    94759495    push cx                                   ; 51
     
    94859505    and ax, strict word 00021h                ; 25 21 00
    94869506    cmp ax, strict word 00021h                ; 3d 21 00
    9487     je short 06932h                           ; 74 07
     9507    je short 0699eh                           ; 74 07
    94889508    test cx, cx                               ; 85 c9
    9489     je short 06932h                           ; 74 03
     9509    je short 0699eh                           ; 74 03
    94909510    dec cx                                    ; 49
    9491     jmp short 0691dh                          ; eb eb
     9511    jmp short 06989h                          ; eb eb
    94929512    test cx, cx                               ; 85 c9
    9493     jne short 0693ah                          ; 75 04
     9513    jne short 069a6h                          ; 75 04
    94949514    mov AL, strict byte 001h                  ; b0 01
    9495     jmp short 06945h                          ; eb 0b
     9515    jmp short 069b1h                          ; eb 0b
    94969516    mov dx, strict word 00060h                ; ba 60 00
    94979517    in AL, DX                                 ; ec
     
    95049524    pop bx                                    ; 5b
    95059525    retn                                      ; c3
    9506 set_kbd_command_byte_:                       ; 0xf6949 LB 0x2f
     9526set_kbd_command_byte_:                       ; 0xf69b5 LB 0x2f
    95079527    push bx                                   ; 53
    95089528    push dx                                   ; 52
     
    95159535    ; sub ah, ah                                ; 2a e4
    95169536    test AL, strict byte 002h                 ; a8 02
    9517     je short 06968h                           ; 74 0e
     9537    je short 069d4h                           ; 74 0e
    95189538    push 00890h                               ; 68 90 08
    95199539    push 010fah                               ; 68 fa 10
    95209540    push strict byte 00007h                   ; 6a 07
    9521     call 018e9h                               ; e8 84 af
     9541    call 018e9h                               ; e8 18 af
    95229542    add sp, strict byte 00006h                ; 83 c4 06
    95239543    mov AL, strict byte 060h                  ; b0 60
     
    95319551    pop bx                                    ; 5b
    95329552    retn                                      ; c3
    9533 _int74_function:                             ; 0xf6978 LB 0xc6
     9553_int74_function:                             ; 0xf69e4 LB 0xc6
    95349554    enter 00008h, 000h                        ; c8 08 00 00
    95359555    mov dx, strict word 0000eh                ; ba 0e 00
    95369556    mov ax, strict word 00040h                ; b8 40 00
    9537     call 0161ch                               ; e8 97 ac
     9557    call 0161ch                               ; e8 2b ac
    95389558    mov cx, ax                                ; 89 c1
    95399559    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    95449564    and AL, strict byte 021h                  ; 24 21
    95459565    cmp AL, strict byte 021h                  ; 3c 21
    9546     jne near 06a2ch                           ; 0f 85 92 00
     9566    jne near 06a98h                           ; 0f 85 92 00
    95479567    mov dx, strict word 00060h                ; ba 60 00
    95489568    in AL, DX                                 ; ec
     
    95529572    mov dx, strict word 00026h                ; ba 26 00
    95539573    mov ax, cx                                ; 89 c8
    9554     call 01600h                               ; e8 56 ac
     9574    call 01600h                               ; e8 ea ab
    95559575    mov byte [bp-006h], al                    ; 88 46 fa
    95569576    mov dx, strict word 00027h                ; ba 27 00
    95579577    mov ax, cx                                ; 89 c8
    9558     call 01600h                               ; e8 4b ac
     9578    call 01600h                               ; e8 df ab
    95599579    mov byte [bp-008h], al                    ; 88 46 f8
    95609580    test AL, strict byte 080h                 ; a8 80
    9561     je short 06a2ch                           ; 74 70
     9581    je short 06a98h                           ; 74 70
    95629582    mov al, byte [bp-008h]                    ; 8a 46 f8
    95639583    and AL, strict byte 007h                  ; 24 07
     
    95709590    add dx, strict byte 00028h                ; 83 c2 28
    95719591    mov ax, cx                                ; 89 c8
    9572     call 0160eh                               ; e8 35 ac
     9592    call 0160eh                               ; e8 c9 ab
    95739593    mov al, byte [bp-004h]                    ; 8a 46 fc
    95749594    cmp al, byte [bp-002h]                    ; 3a 46 fe
    9575     jc short 06a1dh                           ; 72 3c
     9595    jc short 06a89h                           ; 72 3c
    95769596    mov dx, strict word 00028h                ; ba 28 00
    95779597    mov ax, cx                                ; 89 c8
    9578     call 01600h                               ; e8 17 ac
     9598    call 01600h                               ; e8 ab ab
    95799599    xor ah, ah                                ; 30 e4
    95809600    mov word [bp+00ch], ax                    ; 89 46 0c
    95819601    mov dx, strict word 00029h                ; ba 29 00
    95829602    mov ax, cx                                ; 89 c8
    9583     call 01600h                               ; e8 0a ac
     9603    call 01600h                               ; e8 9e ab
    95849604    xor ah, ah                                ; 30 e4
    95859605    mov word [bp+00ah], ax                    ; 89 46 0a
    95869606    mov dx, strict word 0002ah                ; ba 2a 00
    95879607    mov ax, cx                                ; 89 c8
    9588     call 01600h                               ; e8 fd ab
     9608    call 01600h                               ; e8 91 ab
    95899609    xor ah, ah                                ; 30 e4
    95909610    mov word [bp+008h], ax                    ; 89 46 08
     
    95939613    mov byte [bp-006h], ah                    ; 88 66 fa
    95949614    test byte [bp-008h], 080h                 ; f6 46 f8 80
    9595     je short 06a20h                           ; 74 0a
     9615    je short 06a8ch                           ; 74 0a
    95969616    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    9597     jmp short 06a20h                          ; eb 03
     9617    jmp short 06a8ch                          ; eb 03
    95989618    inc byte [bp-006h]                        ; fe 46 fa
    95999619    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    96009620    mov dx, strict word 00026h                ; ba 26 00
    96019621    mov ax, cx                                ; 89 c8
    9602     call 0160eh                               ; e8 e2 ab
     9622    call 0160eh                               ; e8 76 ab
    96039623    leave                                     ; c9
    96049624    retn                                      ; c3
    9605     sub byte [bp+si-00ah], 06ah               ; 80 6a f6 6a
    9606     jns short 06a9fh                          ; 79 6b
    9607     or ch, byte [si+078h]                     ; 0a 6c 78
    9608     insb                                      ; 6c
    9609     int3                                      ; cc
    9610     push strict byte 0ffa0h                   ; 6a a0
    9611     insb                                      ; 6c
    9612     db  065h, 06dh
    9613     ; gs insw                                   ; 65 6d
    9614 _int15_function_mouse:                       ; 0xf6a3e LB 0x386
     9625    in AL, DX                                 ; ec
     9626    push strict byte 00062h                   ; 6a 62
     9627    imul sp, bp, strict byte 0006bh           ; 6b e5 6b
     9628    jbe short 06b0eh                          ; 76 6c
     9629    in AL, strict byte 06ch                   ; e4 6c
     9630    cmp byte [bp+di+00ch], ch                 ; 38 6b 0c
     9631    insw                                      ; 6d
     9632    db  0d1h
     9633    insw                                      ; 6d
     9634_int15_function_mouse:                       ; 0xf6aaa LB 0x386
    96159635    push si                                   ; 56
    96169636    enter 00006h, 000h                        ; c8 06 00 00
    96179637    mov dx, strict word 0000eh                ; ba 0e 00
    96189638    mov ax, strict word 00040h                ; b8 40 00
    9619     call 0161ch                               ; e8 d0 ab
     9639    call 0161ch                               ; e8 64 ab
    96209640    mov cx, ax                                ; 89 c1
    96219641    cmp byte [bp+014h], 007h                  ; 80 7e 14 07
    9622     jbe short 06a5fh                          ; 76 0b
     9642    jbe short 06acbh                          ; 76 0b
    96239643    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    96249644    mov byte [bp+015h], 001h                  ; c6 46 15 01
     
    96279647    retn                                      ; c3
    96289648    mov ax, strict word 00065h                ; b8 65 00
    9629     call 06949h                               ; e8 e4 fe
     9649    call 069b5h                               ; e8 e4 fe
    96309650    and word [bp+01ah], strict byte 0fffeh    ; 83 66 1a fe
    96319651    mov byte [bp+015h], 000h                  ; c6 46 15 00
    96329652    mov al, byte [bp+014h]                    ; 8a 46 14
    96339653    cmp AL, strict byte 007h                  ; 3c 07
    9634     jnbe near 06da8h                          ; 0f 87 32 03
     9654    jnbe near 06e14h                          ; 0f 87 32 03
    96359655    movzx si, al                              ; 0f b6 f0
    96369656    add si, si                                ; 01 f6
    9637     jmp word [cs:si+06a2eh]                   ; 2e ff a4 2e 6a
     9657    jmp word [cs:si+06a9ah]                   ; 2e ff a4 9a 6a
    96389658    cmp byte [bp+00fh], 001h                  ; 80 7e 0f 01
    9639     jnbe near 06db3h                          ; 0f 87 2b 03
     9659    jnbe near 06e1fh                          ; 0f 87 2b 03
    96409660    mov dx, strict word 00027h                ; ba 27 00
    96419661    mov ax, cx                                ; 89 c8
    9642     call 01600h                               ; e8 70 ab
     9662    call 01600h                               ; e8 04 ab
    96439663    test AL, strict byte 080h                 ; a8 80
    9644     jne short 06a9fh                          ; 75 0b
     9664    jne short 06b0bh                          ; 75 0b
    96459665    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    96469666    mov byte [bp+015h], 005h                  ; c6 46 15 05
    9647     jmp near 06dbbh                           ; e9 1c 03
     9667    jmp near 06e27h                           ; e9 1c 03
    96489668    cmp byte [bp+00fh], 000h                  ; 80 7e 0f 00
    96499669    db  00fh, 094h, 0c0h
     
    96519671    add AL, strict byte 0f4h                  ; 04 f4
    96529672    xor ah, ah                                ; 30 e4
    9653     call 068e0h                               ; e8 33 fe
     9673    call 0694ch                               ; e8 33 fe
    96549674    test al, al                               ; 84 c0
    9655     jne near 06d41h                           ; 0f 85 8e 02
     9675    jne near 06dadh                           ; 0f 85 8e 02
    96569676    mov dx, ss                                ; 8c d2
    96579677    lea ax, [bp-006h]                         ; 8d 46 fa
    9658     call 06911h                               ; e8 56 fe
     9678    call 0697dh                               ; e8 56 fe
    96599679    test al, al                               ; 84 c0
    9660     je near 06dbbh                            ; 0f 84 fa 02
     9680    je near 06e27h                            ; 0f 84 fa 02
    96619681    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9662     jne near 06d41h                           ; 0f 85 78 02
    9663     jmp near 06dbbh                           ; e9 ef 02
     9682    jne near 06dadh                           ; 0f 85 78 02
     9683    jmp near 06e27h                           ; e9 ef 02
    96649684    mov al, byte [bp+00fh]                    ; 8a 46 0f
    96659685    cmp AL, strict byte 001h                  ; 3c 01
    9666     jc short 06ad7h                           ; 72 04
     9686    jc short 06b43h                           ; 72 04
    96679687    cmp AL, strict byte 008h                  ; 3c 08
    9668     jbe short 06adah                          ; 76 03
    9669     jmp near 06c6dh                           ; e9 93 01
     9688    jbe short 06b46h                          ; 76 03
     9689    jmp near 06cd9h                           ; e9 93 01
    96709690    mov dx, strict word 00027h                ; ba 27 00
    96719691    mov ax, cx                                ; 89 c8
    9672     call 01600h                               ; e8 1e ab
     9692    call 01600h                               ; e8 b2 aa
    96739693    mov ah, byte [bp+00fh]                    ; 8a 66 0f
    96749694    db  0feh, 0cch
     
    96799699    mov dx, strict word 00027h                ; ba 27 00
    96809700    mov ax, cx                                ; 89 c8
    9681     call 0160eh                               ; e8 18 ab
     9701    call 0160eh                               ; e8 ac aa
    96829702    mov dx, strict word 00026h                ; ba 26 00
    96839703    mov ax, cx                                ; 89 c8
    9684     call 01600h                               ; e8 02 ab
     9704    call 01600h                               ; e8 96 aa
    96859705    and AL, strict byte 0f8h                  ; 24 f8
    96869706    movzx bx, al                              ; 0f b6 d8
    96879707    mov dx, strict word 00026h                ; ba 26 00
    96889708    mov ax, cx                                ; 89 c8
    9689     call 0160eh                               ; e8 03 ab
     9709    call 0160eh                               ; e8 97 aa
    96909710    mov ax, 000ffh                            ; b8 ff 00
    9691     call 068e0h                               ; e8 cf fd
     9711    call 0694ch                               ; e8 cf fd
    96929712    test al, al                               ; 84 c0
    9693     jne near 06d41h                           ; 0f 85 2a 02
     9713    jne near 06dadh                           ; 0f 85 2a 02
    96949714    mov dx, ss                                ; 8c d2
    96959715    lea ax, [bp-002h]                         ; 8d 46 fe
    9696     call 06911h                               ; e8 f2 fd
     9716    call 0697dh                               ; e8 f2 fd
    96979717    mov cl, al                                ; 88 c1
    96989718    cmp byte [bp-002h], 0feh                  ; 80 7e fe fe
    9699     jne short 06b32h                          ; 75 0b
     9719    jne short 06b9eh                          ; 75 0b
    97009720    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    97019721    mov byte [bp+015h], 004h                  ; c6 46 15 04
    9702     jmp near 06dbbh                           ; e9 89 02
     9722    jmp near 06e27h                           ; e9 89 02
    97039723    cmp byte [bp-002h], 0fah                  ; 80 7e fe fa
    9704     je short 06b48h                           ; 74 10
     9724    je short 06bb4h                           ; 74 10
    97059725    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    97069726    push ax                                   ; 50
    97079727    push 0089bh                               ; 68 9b 08
    97089728    push strict byte 00007h                   ; 6a 07
    9709     call 018e9h                               ; e8 a4 ad
     9729    call 018e9h                               ; e8 38 ad
    97109730    add sp, strict byte 00006h                ; 83 c4 06
    97119731    test cl, cl                               ; 84 c9
    9712     jne near 06d41h                           ; 0f 85 f3 01
     9732    jne near 06dadh                           ; 0f 85 f3 01
    97139733    mov dx, ss                                ; 8c d2
    97149734    lea ax, [bp-006h]                         ; 8d 46 fa
    9715     call 06911h                               ; e8 bb fd
     9735    call 0697dh                               ; e8 bb fd
    97169736    test al, al                               ; 84 c0
    9717     jne near 06d41h                           ; 0f 85 e5 01
     9737    jne near 06dadh                           ; 0f 85 e5 01
    97189738    mov dx, ss                                ; 8c d2
    97199739    lea ax, [bp-004h]                         ; 8d 46 fc
    9720     call 06911h                               ; e8 ad fd
     9740    call 0697dh                               ; e8 ad fd
    97219741    test al, al                               ; 84 c0
    9722     jne near 06d41h                           ; 0f 85 d7 01
     9742    jne near 06dadh                           ; 0f 85 d7 01
    97239743    mov al, byte [bp-006h]                    ; 8a 46 fa
    97249744    mov byte [bp+00eh], al                    ; 88 46 0e
    97259745    mov al, byte [bp-004h]                    ; 8a 46 fc
    97269746    mov byte [bp+00fh], al                    ; 88 46 0f
    9727     jmp near 06dbbh                           ; e9 42 02
     9747    jmp near 06e27h                           ; e9 42 02
    97289748    mov al, byte [bp+00fh]                    ; 8a 46 0f
    97299749    cmp AL, strict byte 003h                  ; 3c 03
    9730     jc short 06b90h                           ; 72 10
    9731     jbe short 06baeh                          ; 76 2c
     9750    jc short 06bfch                           ; 72 10
     9751    jbe short 06c1ah                          ; 76 2c
    97329752    cmp AL, strict byte 006h                  ; 3c 06
    9733     je short 06bc0h                           ; 74 3a
     9753    je short 06c2ch                           ; 74 3a
    97349754    cmp AL, strict byte 005h                  ; 3c 05
    9735     je short 06bbah                           ; 74 30
     9755    je short 06c26h                           ; 74 30
    97369756    cmp AL, strict byte 004h                  ; 3c 04
    9737     je short 06bb4h                           ; 74 26
    9738     jmp short 06bc6h                          ; eb 36
     9757    je short 06c20h                           ; 74 26
     9758    jmp short 06c32h                          ; eb 36
    97399759    cmp AL, strict byte 002h                  ; 3c 02
    9740     je short 06ba8h                           ; 74 14
     9760    je short 06c14h                           ; 74 14
    97419761    cmp AL, strict byte 001h                  ; 3c 01
    9742     je short 06ba2h                           ; 74 0a
     9762    je short 06c0eh                           ; 74 0a
    97439763    test al, al                               ; 84 c0
    9744     jne short 06bc6h                          ; 75 2a
     9764    jne short 06c32h                          ; 75 2a
    97459765    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    9746     jmp short 06bcah                          ; eb 28
     9766    jmp short 06c36h                          ; eb 28
    97479767    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    9748     jmp short 06bcah                          ; eb 22
     9768    jmp short 06c36h                          ; eb 22
    97499769    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    9750     jmp short 06bcah                          ; eb 1c
     9770    jmp short 06c36h                          ; eb 1c
    97519771    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    9752     jmp short 06bcah                          ; eb 16
     9772    jmp short 06c36h                          ; eb 16
    97539773    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    9754     jmp short 06bcah                          ; eb 10
     9774    jmp short 06c36h                          ; eb 10
    97559775    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    9756     jmp short 06bcah                          ; eb 0a
     9776    jmp short 06c36h                          ; eb 0a
    97579777    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    9758     jmp short 06bcah                          ; eb 04
     9778    jmp short 06c36h                          ; eb 04
    97599779    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    97609780    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    9761     jbe short 06bffh                          ; 76 2f
     9781    jbe short 06c6bh                          ; 76 2f
    97629782    mov ax, 000f3h                            ; b8 f3 00
    9763     call 068e0h                               ; e8 0a fd
     9783    call 0694ch                               ; e8 0a fd
    97649784    test al, al                               ; 84 c0
    9765     jne short 06bf4h                          ; 75 1a
     9785    jne short 06c60h                          ; 75 1a
    97669786    mov dx, ss                                ; 8c d2
    97679787    lea ax, [bp-004h]                         ; 8d 46 fc
    9768     call 06911h                               ; e8 2f fd
     9788    call 0697dh                               ; e8 2f fd
    97699789    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    9770     call 068e0h                               ; e8 f7 fc
     9790    call 0694ch                               ; e8 f7 fc
    97719791    mov dx, ss                                ; 8c d2
    97729792    lea ax, [bp-004h]                         ; 8d 46 fc
    9773     call 06911h                               ; e8 20 fd
    9774     jmp near 06dbbh                           ; e9 c7 01
     9793    call 0697dh                               ; e8 20 fd
     9794    jmp near 06e27h                           ; e9 c7 01
    97759795    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    97769796    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9777     jmp near 06dbbh                           ; e9 bc 01
     9797    jmp near 06e27h                           ; e9 bc 01
    97789798    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    97799799    mov byte [bp+015h], 002h                  ; c6 46 15 02
    9780     jmp near 06dbbh                           ; e9 b1 01
     9800    jmp near 06e27h                           ; e9 b1 01
    97819801    cmp byte [bp+00fh], 004h                  ; 80 7e 0f 04
    9782     jnc short 06c6dh                          ; 73 5d
     9802    jnc short 06cd9h                          ; 73 5d
    97839803    mov ax, 000e8h                            ; b8 e8 00
    9784     call 068e0h                               ; e8 ca fc
     9804    call 0694ch                               ; e8 ca fc
    97859805    test al, al                               ; 84 c0
    9786     jne short 06c62h                          ; 75 48
     9806    jne short 06cceh                          ; 75 48
    97879807    mov dx, ss                                ; 8c d2
    97889808    lea ax, [bp-006h]                         ; 8d 46 fa
    9789     call 06911h                               ; e8 ef fc
     9809    call 0697dh                               ; e8 ef fc
    97909810    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9791     je short 06c38h                           ; 74 10
     9811    je short 06ca4h                           ; 74 10
    97929812    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    97939813    push ax                                   ; 50
    97949814    push 008c6h                               ; 68 c6 08
    97959815    push strict byte 00007h                   ; 6a 07
    9796     call 018e9h                               ; e8 b4 ac
     9816    call 018e9h                               ; e8 48 ac
    97979817    add sp, strict byte 00006h                ; 83 c4 06
    97989818    movzx ax, byte [bp+00fh]                  ; 0f b6 46 0f
    9799     call 068e0h                               ; e8 a1 fc
     9819    call 0694ch                               ; e8 a1 fc
    98009820    mov dx, ss                                ; 8c d2
    98019821    lea ax, [bp-006h]                         ; 8d 46 fa
    9802     call 06911h                               ; e8 ca fc
     9822    call 0697dh                               ; e8 ca fc
    98039823    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9804     je near 06dbbh                            ; 0f 84 6c 01
     9824    je near 06e27h                            ; 0f 84 6c 01
    98059825    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    98069826    push ax                                   ; 50
    98079827    push 008c6h                               ; 68 c6 08
    98089828    push strict byte 00007h                   ; 6a 07
    9809     call 018e9h                               ; e8 8d ac
     9829    call 018e9h                               ; e8 21 ac
    98109830    add sp, strict byte 00006h                ; 83 c4 06
    9811     jmp near 06dbbh                           ; e9 59 01
     9831    jmp near 06e27h                           ; e9 59 01
    98129832    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98139833    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9814     jmp near 06dbbh                           ; e9 4e 01
     9834    jmp near 06e27h                           ; e9 4e 01
    98159835    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98169836    mov byte [bp+015h], 002h                  ; c6 46 15 02
    9817     jmp near 06dbbh                           ; e9 43 01
     9837    jmp near 06e27h                           ; e9 43 01
    98189838    mov ax, 000f2h                            ; b8 f2 00
    9819     call 068e0h                               ; e8 62 fc
     9839    call 0694ch                               ; e8 62 fc
    98209840    test al, al                               ; 84 c0
    9821     jne short 06c95h                          ; 75 13
     9841    jne short 06d01h                          ; 75 13
    98229842    mov dx, ss                                ; 8c d2
    98239843    lea ax, [bp-006h]                         ; 8d 46 fa
    9824     call 06911h                               ; e8 87 fc
     9844    call 0697dh                               ; e8 87 fc
    98259845    mov dx, ss                                ; 8c d2
    98269846    lea ax, [bp-004h]                         ; 8d 46 fc
    9827     call 06911h                               ; e8 7f fc
    9828     jmp near 06b70h                           ; e9 db fe
     9847    call 0697dh                               ; e8 7f fc
     9848    jmp near 06bdch                           ; e9 db fe
    98299849    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98309850    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9831     jmp near 06dbbh                           ; e9 1b 01
     9851    jmp near 06e27h                           ; e9 1b 01
    98329852    mov al, byte [bp+00fh]                    ; 8a 46 0f
    98339853    test al, al                               ; 84 c0
    9834     jbe short 06caeh                          ; 76 07
     9854    jbe short 06d1ah                          ; 76 07
    98359855    cmp AL, strict byte 002h                  ; 3c 02
    9836     jbe short 06d17h                          ; 76 6c
    9837     jmp near 06d4bh                           ; e9 9d 00
     9856    jbe short 06d83h                          ; 76 6c
     9857    jmp near 06db7h                           ; e9 9d 00
    98389858    mov ax, 000e9h                            ; b8 e9 00
    9839     call 068e0h                               ; e8 2c fc
     9859    call 0694ch                               ; e8 2c fc
    98409860    test al, al                               ; 84 c0
    9841     jne near 06d41h                           ; 0f 85 87 00
     9861    jne near 06dadh                           ; 0f 85 87 00
    98429862    mov dx, ss                                ; 8c d2
    98439863    lea ax, [bp-006h]                         ; 8d 46 fa
    9844     call 06911h                               ; e8 4f fc
     9864    call 0697dh                               ; e8 4f fc
    98459865    mov cl, al                                ; 88 c1
    98469866    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9847     je short 06cdah                           ; 74 10
     9867    je short 06d46h                           ; 74 10
    98489868    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    98499869    push ax                                   ; 50
    98509870    push 008c6h                               ; 68 c6 08
    98519871    push strict byte 00007h                   ; 6a 07
    9852     call 018e9h                               ; e8 12 ac
     9872    call 018e9h                               ; e8 a6 ab
    98539873    add sp, strict byte 00006h                ; 83 c4 06
    98549874    test cl, cl                               ; 84 c9
    9855     jne short 06d41h                          ; 75 63
     9875    jne short 06dadh                          ; 75 63
    98569876    mov dx, ss                                ; 8c d2
    98579877    lea ax, [bp-006h]                         ; 8d 46 fa
    9858     call 06911h                               ; e8 2b fc
     9878    call 0697dh                               ; e8 2b fc
    98599879    test al, al                               ; 84 c0
    9860     jne short 06d41h                          ; 75 57
     9880    jne short 06dadh                          ; 75 57
    98619881    mov dx, ss                                ; 8c d2
    98629882    lea ax, [bp-004h]                         ; 8d 46 fc
    9863     call 06911h                               ; e8 1f fc
     9883    call 0697dh                               ; e8 1f fc
    98649884    test al, al                               ; 84 c0
    9865     jne short 06d41h                          ; 75 4b
     9885    jne short 06dadh                          ; 75 4b
    98669886    mov dx, ss                                ; 8c d2
    98679887    lea ax, [bp-002h]                         ; 8d 46 fe
    9868     call 06911h                               ; e8 13 fc
     9888    call 0697dh                               ; e8 13 fc
    98699889    test al, al                               ; 84 c0
    9870     jne short 06d41h                          ; 75 3f
     9890    jne short 06dadh                          ; 75 3f
    98719891    mov al, byte [bp-006h]                    ; 8a 46 fa
    98729892    mov byte [bp+00eh], al                    ; 88 46 0e
     
    98759895    mov al, byte [bp-002h]                    ; 8a 46 fe
    98769896    mov byte [bp+010h], al                    ; 88 46 10
    9877     jmp near 06dbbh                           ; e9 a4 00
     9897    jmp near 06e27h                           ; e9 a4 00
    98789898    cmp AL, strict byte 001h                  ; 3c 01
    9879     jne short 06d20h                          ; 75 05
     9899    jne short 06d8ch                          ; 75 05
    98809900    mov ax, 000e6h                            ; b8 e6 00
    9881     jmp short 06d23h                          ; eb 03
     9901    jmp short 06d8fh                          ; eb 03
    98829902    mov ax, 000e7h                            ; b8 e7 00
    9883     call 068e0h                               ; e8 ba fb
     9903    call 0694ch                               ; e8 ba fb
    98849904    mov cl, al                                ; 88 c1
    98859905    test cl, cl                               ; 84 c9
    9886     jne short 06d3bh                          ; 75 0f
     9906    jne short 06da7h                          ; 75 0f
    98879907    mov dx, ss                                ; 8c d2
    98889908    lea ax, [bp-006h]                         ; 8d 46 fa
    9889     call 06911h                               ; e8 dd fb
     9909    call 0697dh                               ; e8 dd fb
    98909910    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    98919911    db  00fh, 095h, 0c1h
    98929912    ; setne cl                                  ; 0f 95 c1
    98939913    test cl, cl                               ; 84 c9
    9894     je near 06dbbh                            ; 0f 84 7a 00
     9914    je near 06e27h                            ; 0f 84 7a 00
    98959915    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98969916    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9897     jmp short 06dbbh                          ; eb 70
     9917    jmp short 06e27h                          ; eb 70
    98989918    movzx ax, byte [bp+00fh]                  ; 0f b6 46 0f
    98999919    push ax                                   ; 50
    99009920    push 008f2h                               ; 68 f2 08
    99019921    push strict byte 00007h                   ; 6a 07
    9902     call 018e9h                               ; e8 91 ab
     9922    call 018e9h                               ; e8 25 ab
    99039923    add sp, strict byte 00006h                ; 83 c4 06
    99049924    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    99059925    mov byte [bp+015h], 001h                  ; c6 46 15 01
    9906     jmp short 06dbbh                          ; eb 56
     9926    jmp short 06e27h                          ; eb 56
    99079927    mov si, word [bp+00eh]                    ; 8b 76 0e
    99089928    mov bx, si                                ; 89 f3
    99099929    mov dx, strict word 00022h                ; ba 22 00
    99109930    mov ax, cx                                ; 89 c8
    9911     call 0162ah                               ; e8 b8 a8
     9931    call 0162ah                               ; e8 4c a8
    99129932    mov bx, word [bp+016h]                    ; 8b 5e 16
    99139933    mov dx, strict word 00024h                ; ba 24 00
    99149934    mov ax, cx                                ; 89 c8
    9915     call 0162ah                               ; e8 ad a8
     9935    call 0162ah                               ; e8 41 a8
    99169936    mov dx, strict word 00027h                ; ba 27 00
    99179937    mov ax, cx                                ; 89 c8
    9918     call 01600h                               ; e8 7b a8
     9938    call 01600h                               ; e8 0f a8
    99199939    mov ah, al                                ; 88 c4
    99209940    test si, si                               ; 85 f6
    9921     jne short 06d99h                          ; 75 0e
     9941    jne short 06e05h                          ; 75 0e
    99229942    cmp word [bp+016h], strict byte 00000h    ; 83 7e 16 00
    9923     jne short 06d99h                          ; 75 08
     9943    jne short 06e05h                          ; 75 08
    99249944    test AL, strict byte 080h                 ; a8 80
    9925     je short 06d9bh                           ; 74 06
     9945    je short 06e07h                           ; 74 06
    99269946    and AL, strict byte 07fh                  ; 24 7f
    9927     jmp short 06d9bh                          ; eb 02
     9947    jmp short 06e07h                          ; eb 02
    99289948    or AL, strict byte 080h                   ; 0c 80
    99299949    movzx bx, al                              ; 0f b6 d8
    99309950    mov dx, strict word 00027h                ; ba 27 00
    99319951    mov ax, cx                                ; 89 c8
    9932     call 0160eh                               ; e8 68 a8
    9933     jmp short 06dbbh                          ; eb 13
     9952    call 0160eh                               ; e8 fc a7
     9953    jmp short 06e27h                          ; eb 13
    99349954    push 0090ch                               ; 68 0c 09
    99359955    push strict byte 00007h                   ; 6a 07
    9936     call 018e9h                               ; e8 39 ab
     9956    call 018e9h                               ; e8 cd aa
    99379957    add sp, strict byte 00004h                ; 83 c4 04
    99389958    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    99399959    mov byte [bp+015h], 001h                  ; c6 46 15 01
    99409960    mov ax, strict word 00047h                ; b8 47 00
    9941     call 06949h                               ; e8 88 fb
     9961    call 069b5h                               ; e8 88 fb
    99429962    leave                                     ; c9
    99439963    pop si                                    ; 5e
    99449964    retn                                      ; c3
    9945 _int17_function:                             ; 0xf6dc4 LB 0xb1
     9965_int17_function:                             ; 0xf6e30 LB 0xb1
    99469966    push si                                   ; 56
    99479967    enter 00002h, 000h                        ; c8 02 00 00
     
    99519971    add dx, strict byte 00008h                ; 83 c2 08
    99529972    mov ax, strict word 00040h                ; b8 40 00
    9953     call 0161ch                               ; e8 44 a8
     9973    call 0161ch                               ; e8 d8 a7
    99549974    mov bx, ax                                ; 89 c3
    99559975    mov si, ax                                ; 89 c6
    99569976    cmp byte [bp+015h], 003h                  ; 80 7e 15 03
    9957     jnc near 06e6eh                           ; 0f 83 8a 00
     9977    jnc near 06edah                           ; 0f 83 8a 00
    99589978    mov ax, word [bp+010h]                    ; 8b 46 10
    99599979    cmp ax, strict word 00003h                ; 3d 03 00
    9960     jnc near 06e6eh                           ; 0f 83 80 00
     9980    jnc near 06edah                           ; 0f 83 80 00
    99619981    test bx, bx                               ; 85 db
    9962     jbe near 06e6eh                           ; 0f 86 7a 00
     9982    jbe near 06edah                           ; 0f 86 7a 00
    99639983    mov dx, ax                                ; 89 c2
    99649984    add dx, strict byte 00078h                ; 83 c2 78
    99659985    mov ax, strict word 00040h                ; b8 40 00
    9966     call 01600h                               ; e8 01 a8
     9986    call 01600h                               ; e8 95 a7
    99679987    movzx cx, al                              ; 0f b6 c8
    99689988    sal cx, 008h                              ; c1 e1 08
    99699989    cmp byte [bp+015h], 000h                  ; 80 7e 15 00
    9970     jne short 06e38h                          ; 75 2d
     9990    jne short 06ea4h                          ; 75 2d
    99719991    mov al, byte [bp+014h]                    ; 8a 46 14
    99729992    mov dx, bx                                ; 89 da
     
    998810008    ; sub ah, ah                                ; 2a e4
    998910009    test AL, strict byte 040h                 ; a8 40
    9990     je short 06e38h                           ; 74 07
     10010    je short 06ea4h                           ; 74 07
    999110011    test cx, cx                               ; 85 c9
    9992     je short 06e38h                           ; 74 03
     10012    je short 06ea4h                           ; 74 03
    999310013    dec cx                                    ; 49
    9994     jmp short 06e27h                          ; eb ef
     10014    jmp short 06e93h                          ; eb ef
    999510015    cmp byte [bp+015h], 001h                  ; 80 7e 15 01
    9996     jne short 06e54h                          ; 75 16
     10016    jne short 06ec0h                          ; 75 16
    999710017    lea dx, [si+002h]                         ; 8d 54 02
    999810018    in AL, DX                                 ; ec
     
    1001310033    mov byte [bp+015h], al                    ; 88 46 15
    1001410034    test cx, cx                               ; 85 c9
    10015     jne short 06e67h                          ; 75 04
     10035    jne short 06ed3h                          ; 75 04
    1001610036    or byte [bp+015h], 001h                   ; 80 4e 15 01
    1001710037    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
     
    1002310043    pop si                                    ; 5e
    1002410044    retn                                      ; c3
    10025 wait_:                                       ; 0xf6e75 LB 0xad
     10045wait_:                                       ; 0xf6ee1 LB 0xad
    1002610046    push bx                                   ; 53
    1002710047    push cx                                   ; 51
     
    1003910059    mov dx, 0046ch                            ; ba 6c 04
    1004010060    xor ax, ax                                ; 31 c0
    10041     call 01638h                               ; e8 a2 a7
     10061    call 01638h                               ; e8 36 a7
    1004210062    mov word [bp-006h], ax                    ; 89 46 fa
    1004310063    mov bx, dx                                ; 89 d3
     
    1004510065    mov dx, 0046ch                            ; ba 6c 04
    1004610066    xor ax, ax                                ; 31 c0
    10047     call 01638h                               ; e8 94 a7
     10067    call 01638h                               ; e8 28 a7
    1004810068    mov word [bp-00ah], ax                    ; 89 46 f6
    1004910069    mov di, dx                                ; 89 d7
    1005010070    cmp dx, bx                                ; 39 da
    10051     jnbe short 06eb4h                         ; 77 07
    10052     jne short 06ebbh                          ; 75 0c
     10071    jnbe short 06f20h                         ; 77 07
     10072    jne short 06f27h                          ; 75 0c
    1005310073    cmp ax, word [bp-006h]                    ; 3b 46 fa
    10054     jbe short 06ebbh                          ; 76 07
     10074    jbe short 06f27h                          ; 76 07
    1005510075    sub ax, word [bp-006h]                    ; 2b 46 fa
    1005610076    sbb dx, bx                                ; 19 da
    10057     jmp short 06ec6h                          ; eb 0b
     10077    jmp short 06f32h                          ; eb 0b
    1005810078    cmp dx, bx                                ; 39 da
    10059     jc short 06ec6h                           ; 72 07
    10060     jne short 06ecah                          ; 75 09
     10079    jc short 06f32h                           ; 72 07
     10080    jne short 06f36h                          ; 75 09
    1006110081    cmp ax, word [bp-006h]                    ; 3b 46 fa
    10062     jnc short 06ecah                          ; 73 04
     10082    jnc short 06f36h                          ; 73 04
    1006310083    sub si, ax                                ; 29 c6
    1006410084    sbb cx, dx                                ; 19 d1
     
    1006810088    mov ax, 00100h                            ; b8 00 01
    1006910089    int 016h                                  ; cd 16
    10070     je near 06ee0h                            ; 0f 84 05 00
     10090    je near 06f4ch                            ; 0f 84 05 00
    1007110091    mov AL, strict byte 001h                  ; b0 01
    10072     jmp near 06ee2h                           ; e9 02 00
     10092    jmp near 06f4eh                           ; e9 02 00
    1007310093    db  032h, 0c0h
    1007410094    ; xor al, al                                ; 32 c0
    1007510095    test al, al                               ; 84 c0
    10076     je short 06f0ah                           ; 74 24
     10096    je short 06f76h                           ; 74 24
    1007710097    db  033h, 0c0h
    1007810098    ; xor ax, ax                                ; 33 c0
     
    1008510105    push 0092eh                               ; 68 2e 09
    1008610106    push strict byte 00004h                   ; 6a 04
    10087     call 018e9h                               ; e8 ec a9
     10107    call 018e9h                               ; e8 80 a9
    1008810108    add sp, strict byte 00006h                ; 83 c4 06
    1008910109    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10090     je short 06f0ah                           ; 74 04
     10110    je short 06f76h                           ; 74 04
    1009110111    mov al, dl                                ; 88 d0
    10092     jmp short 06f1ch                          ; eb 12
     10112    jmp short 06f88h                          ; eb 12
    1009310113    test cx, cx                               ; 85 c9
    10094     jnle short 06e9bh                         ; 7f 8d
    10095     jne short 06f14h                          ; 75 04
     10114    jnle short 06f07h                         ; 7f 8d
     10115    jne short 06f80h                          ; 75 04
    1009610116    test si, si                               ; 85 f6
    10097     jnbe short 06e9bh                         ; 77 87
     10117    jnbe short 06f07h                         ; 77 87
    1009810118    mov ax, word [bp-008h]                    ; 8b 46 f8
    1009910119    push ax                                   ; 50
     
    1010610126    pop bx                                    ; 5b
    1010710127    retn                                      ; c3
    10108 read_logo_byte_:                             ; 0xf6f22 LB 0x13
     10128read_logo_byte_:                             ; 0xf6f8e LB 0x13
    1010910129    push dx                                   ; 52
    1011010130    push bp                                   ; 55
     
    1012010140    pop dx                                    ; 5a
    1012110141    retn                                      ; c3
    10122 read_logo_word_:                             ; 0xf6f35 LB 0x11
     10142read_logo_word_:                             ; 0xf6fa1 LB 0x11
    1012310143    push dx                                   ; 52
    1012410144    push bp                                   ; 55
     
    1013210152    pop dx                                    ; 5a
    1013310153    retn                                      ; c3
    10134 print_detected_harddisks_:                   ; 0xf6f46 LB 0x12c
     10154print_detected_harddisks_:                   ; 0xf6fb2 LB 0x12c
    1013510155    push bx                                   ; 53
    1013610156    push cx                                   ; 51
     
    1014110161    mov dx, strict word 0000eh                ; ba 0e 00
    1014210162    mov ax, strict word 00040h                ; b8 40 00
    10143     call 0161ch                               ; e8 c4 a6
     10163    call 0161ch                               ; e8 58 a6
    1014410164    mov si, ax                                ; 89 c6
    1014510165    mov byte [bp-002h], 000h                  ; c6 46 fe 00
     
    1014710167    xor ch, ch                                ; 30 ed
    1014810168    mov dx, 002c0h                            ; ba c0 02
    10149     call 01600h                               ; e8 98 a6
     10169    call 01600h                               ; e8 2c a6
    1015010170    mov byte [bp-004h], al                    ; 88 46 fc
    1015110171    xor bl, bl                                ; 30 db
    1015210172    cmp bl, byte [bp-004h]                    ; 3a 5e fc
    10153     jnc near 07047h                           ; 0f 83 d3 00
     10173    jnc near 070b3h                           ; 0f 83 d3 00
    1015410174    movzx dx, bl                              ; 0f b6 d3
    1015510175    add dx, 002c1h                            ; 81 c2 c1 02
    1015610176    mov ax, si                                ; 89 f0
    10157     call 01600h                               ; e8 80 a6
     10177    call 01600h                               ; e8 14 a6
    1015810178    mov bh, al                                ; 88 c7
    1015910179    cmp AL, strict byte 00ch                  ; 3c 0c
    10160     jc short 06faah                           ; 72 24
     10180    jc short 07016h                           ; 72 24
    1016110181    test cl, cl                               ; 84 c9
    10162     jne short 06f97h                          ; 75 0d
     10182    jne short 07003h                          ; 75 0d
    1016310183    push 0093fh                               ; 68 3f 09
    1016410184    push strict byte 00002h                   ; 6a 02
    10165     call 018e9h                               ; e8 57 a9
     10185    call 018e9h                               ; e8 eb a8
    1016610186    add sp, strict byte 00004h                ; 83 c4 04
    1016710187    mov CL, strict byte 001h                  ; b1 01
     
    1017110191    push 00953h                               ; 68 53 09
    1017210192    push strict byte 00002h                   ; 6a 02
    10173     call 018e9h                               ; e8 45 a9
     10193    call 018e9h                               ; e8 d9 a8
    1017410194    add sp, strict byte 00006h                ; 83 c4 06
    10175     jmp near 07042h                           ; e9 98 00
     10195    jmp near 070aeh                           ; e9 98 00
    1017610196    cmp AL, strict byte 008h                  ; 3c 08
    10177     jc short 06fc1h                           ; 72 13
     10197    jc short 0702dh                           ; 72 13
    1017810198    test ch, ch                               ; 84 ed
    10179     jne short 06fbfh                          ; 75 0d
     10199    jne short 0702bh                          ; 75 0d
    1018010200    push 00966h                               ; 68 66 09
    1018110201    push strict byte 00002h                   ; 6a 02
    10182     call 018e9h                               ; e8 2f a9
     10202    call 018e9h                               ; e8 c3 a8
    1018310203    add sp, strict byte 00004h                ; 83 c4 04
    1018410204    mov CH, strict byte 001h                  ; b5 01
    10185     jmp short 06f97h                          ; eb d6
     10205    jmp short 07003h                          ; eb d6
    1018610206    cmp AL, strict byte 004h                  ; 3c 04
    10187     jnc short 06fdch                          ; 73 17
     10207    jnc short 07048h                          ; 73 17
    1018810208    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10189     jne short 06fdch                          ; 75 11
     10209    jne short 07048h                          ; 75 11
    1019010210    push 0097ah                               ; 68 7a 09
    1019110211    push strict byte 00002h                   ; 6a 02
    10192     call 018e9h                               ; e8 16 a9
     10212    call 018e9h                               ; e8 aa a8
    1019310213    add sp, strict byte 00004h                ; 83 c4 04
    1019410214    mov byte [bp-002h], 001h                  ; c6 46 fe 01
    10195     jmp short 06ff2h                          ; eb 16
     10215    jmp short 0705eh                          ; eb 16
    1019610216    cmp bh, 004h                              ; 80 ff 04
    10197     jc short 06ff2h                           ; 72 11
     10217    jc short 0705eh                           ; 72 11
    1019810218    test cl, cl                               ; 84 c9
    10199     jne short 06ff2h                          ; 75 0d
     10219    jne short 0705eh                          ; 75 0d
    1020010220    push 0093fh                               ; 68 3f 09
    1020110221    push strict byte 00002h                   ; 6a 02
    10202     call 018e9h                               ; e8 fc a8
     10222    call 018e9h                               ; e8 90 a8
    1020310223    add sp, strict byte 00004h                ; 83 c4 04
    1020410224    mov CL, strict byte 001h                  ; b1 01
     
    1020810228    push 0098bh                               ; 68 8b 09
    1020910229    push strict byte 00002h                   ; 6a 02
    10210     call 018e9h                               ; e8 ea a8
     10230    call 018e9h                               ; e8 7e a8
    1021110231    add sp, strict byte 00006h                ; 83 c4 06
    1021210232    cmp bh, 004h                              ; 80 ff 04
    10213     jc short 0700ah                           ; 72 03
     10233    jc short 07076h                           ; 72 03
    1021410234    sub bh, 004h                              ; 80 ef 04
    1021510235    movzx ax, bh                              ; 0f b6 c7
     
    1021910239    sar ax, 1                                 ; d1 f8
    1022010240    test ax, ax                               ; 85 c0
    10221     je short 0701bh                           ; 74 05
     10241    je short 07087h                           ; 74 05
    1022210242    push 00995h                               ; 68 95 09
    10223     jmp short 0701eh                          ; eb 03
     10243    jmp short 0708ah                          ; eb 03
    1022410244    push 009a0h                               ; 68 a0 09
    1022510245    push strict byte 00002h                   ; 6a 02
    10226     call 018e9h                               ; e8 c6 a8
     10246    call 018e9h                               ; e8 5a a8
    1022710247    add sp, strict byte 00004h                ; 83 c4 04
    1022810248    movzx ax, bh                              ; 0f b6 c7
     
    1023110251    idiv di                                   ; f7 ff
    1023210252    test dx, dx                               ; 85 d2
    10233     je short 07038h                           ; 74 05
     10253    je short 070a4h                           ; 74 05
    1023410254    push 009a9h                               ; 68 a9 09
    10235     jmp short 0703bh                          ; eb 03
     10255    jmp short 070a7h                          ; eb 03
    1023610256    push 009afh                               ; 68 af 09
    1023710257    push di                                   ; 57
    10238     call 018e9h                               ; e8 aa a8
     10258    call 018e9h                               ; e8 3e a8
    1023910259    add sp, strict byte 00004h                ; 83 c4 04
    1024010260    db  0feh, 0c3h
    1024110261    ; inc bl                                    ; fe c3
    10242     jmp near 06f6dh                           ; e9 26 ff
     10262    jmp near 06fd9h                           ; e9 26 ff
    1024310263    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10244     jne short 07060h                          ; 75 13
     10264    jne short 070cch                          ; 75 13
    1024510265    test cl, cl                               ; 84 c9
    10246     jne short 07060h                          ; 75 0f
     10266    jne short 070cch                          ; 75 0f
    1024710267    test ch, ch                               ; 84 ed
    10248     jne short 07060h                          ; 75 0b
     10268    jne short 070cch                          ; 75 0b
    1024910269    push 009b6h                               ; 68 b6 09
    1025010270    push strict byte 00002h                   ; 6a 02
    10251     call 018e9h                               ; e8 8c a8
     10271    call 018e9h                               ; e8 20 a8
    1025210272    add sp, strict byte 00004h                ; 83 c4 04
    1025310273    push 009cah                               ; 68 ca 09
    1025410274    push strict byte 00002h                   ; 6a 02
    10255     call 018e9h                               ; e8 81 a8
     10275    call 018e9h                               ; e8 15 a8
    1025610276    add sp, strict byte 00004h                ; 83 c4 04
    1025710277    leave                                     ; c9
     
    1026210282    pop bx                                    ; 5b
    1026310283    retn                                      ; c3
    10264 get_boot_drive_:                             ; 0xf7072 LB 0x25
     10284get_boot_drive_:                             ; 0xf70de LB 0x25
    1026510285    push bx                                   ; 53
    1026610286    push dx                                   ; 52
     
    1027010290    mov dx, strict word 0000eh                ; ba 0e 00
    1027110291    mov ax, strict word 00040h                ; b8 40 00
    10272     call 0161ch                               ; e8 9a a5
     10292    call 0161ch                               ; e8 2e a5
    1027310293    mov dx, 002c0h                            ; ba c0 02
    10274     call 01600h                               ; e8 78 a5
     10294    call 01600h                               ; e8 0c a5
    1027510295    sub bl, 002h                              ; 80 eb 02
    1027610296    cmp bl, al                                ; 38 c3
    10277     jc short 07091h                           ; 72 02
     10297    jc short 070fdh                           ; 72 02
    1027810298    mov BL, strict byte 0ffh                  ; b3 ff
    1027910299    mov al, bl                                ; 88 d8
     
    1028210302    pop bx                                    ; 5b
    1028310303    retn                                      ; c3
    10284 show_logo_:                                  ; 0xf7097 LB 0x21f
     10304show_logo_:                                  ; 0xf7103 LB 0x21f
    1028510305    push bx                                   ; 53
    1028610306    push cx                                   ; 51
     
    1029110311    mov dx, strict word 0000eh                ; ba 0e 00
    1029210312    mov ax, strict word 00040h                ; b8 40 00
    10293     call 0161ch                               ; e8 73 a5
     10313    call 0161ch                               ; e8 07 a5
    1029410314    mov si, ax                                ; 89 c6
    1029510315    xor cl, cl                                ; 30 c9
     
    1030210322    out strict byte 040h, AL                  ; e6 40
    1030310323    movzx ax, dl                              ; 0f b6 c2
    10304     call 06f35h                               ; e8 74 fe
     10324    call 06fa1h                               ; e8 74 fe
    1030510325    cmp ax, 066bbh                            ; 3d bb 66
    10306     jne near 07199h                           ; 0f 85 d1 00
     10326    jne near 07205h                           ; 0f 85 d1 00
    1030710327    push SS                                   ; 16
    1030810328    pop ES                                    ; 07
     
    1031210332    mov word [es:di], bx                      ; 26 89 1d
    1031310333    cmp ax, strict word 0004fh                ; 3d 4f 00
    10314     jne near 07199h                           ; 0f 85 bd 00
     10334    jne near 07205h                           ; 0f 85 bd 00
    1031510335    mov al, dl                                ; 88 d0
    1031610336    add AL, strict byte 004h                  ; 04 04
    1031710337    xor ah, ah                                ; 30 e4
    10318     call 06f22h                               ; e8 3d fe
     10338    call 06f8eh                               ; e8 3d fe
    1031910339    mov ch, al                                ; 88 c5
    1032010340    mov byte [bp-002h], al                    ; 88 46 fe
     
    1032210342    add AL, strict byte 005h                  ; 04 05
    1032310343    xor ah, ah                                ; 30 e4
    10324     call 06f22h                               ; e8 2f fe
     10344    call 06f8eh                               ; e8 2f fe
    1032510345    mov dh, al                                ; 88 c6
    1032610346    mov byte [bp-006h], al                    ; 88 46 fa
     
    1032810348    add AL, strict byte 002h                  ; 04 02
    1032910349    xor ah, ah                                ; 30 e4
    10330     call 06f35h                               ; e8 34 fe
     10350    call 06fa1h                               ; e8 34 fe
    1033110351    mov bx, ax                                ; 89 c3
    1033210352    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1033410354    add AL, strict byte 006h                  ; 04 06
    1033510355    xor ah, ah                                ; 30 e4
    10336     call 06f22h                               ; e8 13 fe
     10356    call 06f8eh                               ; e8 13 fe
    1033710357    mov byte [bp-008h], al                    ; 88 46 f8
    1033810358    test ch, ch                               ; 84 ed
    10339     jne short 07120h                          ; 75 0a
     10359    jne short 0718ch                          ; 75 0a
    1034010360    test dh, dh                               ; 84 f6
    10341     jne short 07120h                          ; 75 06
     10361    jne short 0718ch                          ; 75 06
    1034210362    test bx, bx                               ; 85 db
    10343     je near 07199h                            ; 0f 84 79 00
     10363    je near 07205h                            ; 0f 84 79 00
    1034410364    mov bx, 00142h                            ; bb 42 01
    1034510365    mov ax, 04f02h                            ; b8 02 4f
    1034610366    int 010h                                  ; cd 10
    1034710367    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10348     je short 07151h                           ; 74 23
     10368    je short 071bdh                           ; 74 23
    1034910369    xor bx, bx                                ; 31 db
    10350     jmp short 07138h                          ; eb 06
     10370    jmp short 071a4h                          ; eb 06
    1035110371    inc bx                                    ; 43
    1035210372    cmp bx, strict byte 00010h                ; 83 fb 10
    10353     jnbe short 07158h                         ; 77 20
     10373    jnbe short 071c4h                         ; 77 20
    1035410374    mov ax, bx                                ; 89 d8
    1035510375    or ah, 002h                               ; 80 cc 02
     
    1035810378    xor dx, dx                                ; 31 d2
    1035910379    mov ax, strict word 00001h                ; b8 01 00
    10360     call 06e75h                               ; e8 2c fd
     10380    call 06ee1h                               ; e8 2c fd
    1036110381    cmp AL, strict byte 086h                  ; 3c 86
    10362     jne short 07132h                          ; 75 e5
     10382    jne short 0719eh                          ; 75 e5
    1036310383    mov CL, strict byte 001h                  ; b1 01
    10364     jmp short 07158h                          ; eb 07
     10384    jmp short 071c4h                          ; eb 07
    1036510385    mov ax, 00210h                            ; b8 10 02
    1036610386    mov dx, 003b8h                            ; ba b8 03
    1036710387    out DX, ax                                ; ef
    1036810388    test cl, cl                               ; 84 c9
    10369     jne short 0716eh                          ; 75 12
     10389    jne short 071dah                          ; 75 12
    1037010390    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1037110391    shr ax, 004h                              ; c1 e8 04
    1037210392    mov dx, strict word 00001h                ; ba 01 00
    10373     call 06e75h                               ; e8 0d fd
     10393    call 06ee1h                               ; e8 0d fd
    1037410394    cmp AL, strict byte 086h                  ; 3c 86
    10375     jne short 0716eh                          ; 75 02
     10395    jne short 071dah                          ; 75 02
    1037610396    mov CL, strict byte 001h                  ; b1 01
    1037710397    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10378     je short 07199h                           ; 74 25
     10398    je short 07205h                           ; 74 25
    1037910399    test cl, cl                               ; 84 c9
    10380     jne short 07199h                          ; 75 21
     10400    jne short 07205h                          ; 75 21
    1038110401    mov bx, strict word 00010h                ; bb 10 00
    10382     jmp short 07182h                          ; eb 05
     10402    jmp short 071eeh                          ; eb 05
    1038310403    dec bx                                    ; 4b
    1038410404    test bx, bx                               ; 85 db
    10385     jbe short 07199h                          ; 76 17
     10405    jbe short 07205h                          ; 76 17
    1038610406    mov ax, bx                                ; 89 d8
    1038710407    or ah, 002h                               ; 80 cc 02
     
    1039010410    xor dx, dx                                ; 31 d2
    1039110411    mov ax, strict word 00001h                ; b8 01 00
    10392     call 06e75h                               ; e8 e2 fc
     10412    call 06ee1h                               ; e8 e2 fc
    1039310413    cmp AL, strict byte 086h                  ; 3c 86
    10394     jne short 0717dh                          ; 75 e6
     10414    jne short 071e9h                          ; 75 e6
    1039510415    mov CL, strict byte 001h                  ; b1 01
    1039610416    xor bx, bx                                ; 31 db
    1039710417    mov dx, 00339h                            ; ba 39 03
    1039810418    mov ax, si                                ; 89 f0
    10399     call 0160eh                               ; e8 6b a4
     10419    call 0160eh                               ; e8 ff a3
    1040010420    mov AL, strict byte 003h                  ; b0 03
    1040110421    mov AH, strict byte 000h                  ; b4 00
    1040210422    int 010h                                  ; cd 10
    1040310423    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10404     je near 0729ah                            ; 0f 84 e9 00
     10424    je near 07306h                            ; 0f 84 e9 00
    1040510425    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10406     jne short 071e7h                          ; 75 30
     10426    jne short 07253h                          ; 75 30
    1040710427    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10408     jne short 071e7h                          ; 75 2a
     10428    jne short 07253h                          ; 75 2a
    1040910429    cmp word [bp-00ah], strict byte 00000h    ; 83 7e f6 00
    10410     jne short 071e7h                          ; 75 24
     10430    jne short 07253h                          ; 75 24
    1041110431    cmp byte [bp-008h], 002h                  ; 80 7e f8 02
    10412     jne short 071d4h                          ; 75 0b
     10432    jne short 07240h                          ; 75 0b
    1041310433    push 009cch                               ; 68 cc 09
    1041410434    push strict byte 00002h                   ; 6a 02
    10415     call 018e9h                               ; e8 18 a7
     10435    call 018e9h                               ; e8 ac a6
    1041610436    add sp, strict byte 00004h                ; 83 c4 04
    1041710437    test cl, cl                               ; 84 c9
    10418     jne short 071e7h                          ; 75 0f
     10438    jne short 07253h                          ; 75 0f
    1041910439    mov dx, strict word 00001h                ; ba 01 00
    1042010440    mov ax, 000c0h                            ; b8 c0 00
    10421     call 06e75h                               ; e8 94 fc
     10441    call 06ee1h                               ; e8 94 fc
    1042210442    cmp AL, strict byte 086h                  ; 3c 86
    10423     jne short 071e7h                          ; 75 02
     10443    jne short 07253h                          ; 75 02
    1042410444    mov CL, strict byte 001h                  ; b1 01
    1042510445    test cl, cl                               ; 84 c9
    10426     je near 0729ah                            ; 0f 84 ad 00
     10446    je near 07306h                            ; 0f 84 ad 00
    1042710447    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1042810448    mov ax, 00100h                            ; b8 00 01
     
    1044310463    push 009eeh                               ; 68 ee 09
    1044410464    push strict byte 00002h                   ; 6a 02
    10445     call 018e9h                               ; e8 d3 a6
     10465    call 018e9h                               ; e8 67 a6
    1044610466    add sp, strict byte 00004h                ; 83 c4 04
    10447     call 06f46h                               ; e8 2a fd
     10467    call 06fb2h                               ; e8 2a fd
    1044810468    push 00a32h                               ; 68 32 0a
    1044910469    push strict byte 00002h                   ; 6a 02
    10450     call 018e9h                               ; e8 c5 a6
     10470    call 018e9h                               ; e8 59 a6
    1045110471    add sp, strict byte 00004h                ; 83 c4 04
    1045210472    mov dx, strict word 00001h                ; ba 01 00
    1045310473    mov ax, strict word 00040h                ; b8 40 00
    10454     call 06e75h                               ; e8 45 fc
     10474    call 06ee1h                               ; e8 45 fc
    1045510475    mov bl, al                                ; 88 c3
    1045610476    test al, al                               ; 84 c0
    10457     je short 07227h                           ; 74 f1
     10477    je short 07293h                           ; 74 f1
    1045810478    cmp AL, strict byte 030h                  ; 3c 30
    10459     je short 07288h                           ; 74 4e
     10479    je short 072f4h                           ; 74 4e
    1046010480    cmp bl, 002h                              ; 80 fb 02
    10461     jc short 07261h                           ; 72 22
     10481    jc short 072cdh                           ; 72 22
    1046210482    cmp bl, 009h                              ; 80 fb 09
    10463     jnbe short 07261h                         ; 77 1d
     10483    jnbe short 072cdh                         ; 77 1d
    1046410484    movzx ax, bl                              ; 0f b6 c3
    10465     call 07072h                               ; e8 28 fe
     10485    call 070deh                               ; e8 28 fe
    1046610486    cmp AL, strict byte 0ffh                  ; 3c ff
    10467     jne short 07250h                          ; 75 02
    10468     jmp short 07227h                          ; eb d7
     10487    jne short 072bch                          ; 75 02
     10488    jmp short 07293h                          ; eb d7
    1046910489    movzx bx, al                              ; 0f b6 d8
    1047010490    mov dx, 00338h                            ; ba 38 03
    1047110491    mov ax, si                                ; 89 f0
    10472     call 0160eh                               ; e8 b3 a3
     10492    call 0160eh                               ; e8 47 a3
    1047310493    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    10474     jmp short 07288h                          ; eb 27
     10494    jmp short 072f4h                          ; eb 27
    1047510495    cmp bl, 02eh                              ; 80 fb 2e
    10476     je short 07276h                           ; 74 10
     10496    je short 072e2h                           ; 74 10
    1047710497    cmp bl, 026h                              ; 80 fb 26
    10478     je short 0727ch                           ; 74 11
     10498    je short 072e8h                           ; 74 11
    1047910499    cmp bl, 021h                              ; 80 fb 21
    10480     jne short 07282h                          ; 75 12
     10500    jne short 072eeh                          ; 75 12
    1048110501    mov byte [bp-004h], 001h                  ; c6 46 fc 01
    10482     jmp short 07288h                          ; eb 12
     10502    jmp short 072f4h                          ; eb 12
    1048310503    mov byte [bp-004h], 003h                  ; c6 46 fc 03
    10484     jmp short 07288h                          ; eb 0c
     10504    jmp short 072f4h                          ; eb 0c
    1048510505    mov byte [bp-004h], 004h                  ; c6 46 fc 04
    10486     jmp short 07288h                          ; eb 06
     10506    jmp short 072f4h                          ; eb 06
    1048710507    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10488     je short 07227h                           ; 74 9f
     10508    je short 07293h                           ; 74 9f
    1048910509    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    1049010510    mov dx, 00339h                            ; ba 39 03
    1049110511    mov ax, si                                ; 89 f0
    10492     call 0160eh                               ; e8 7a a3
     10512    call 0160eh                               ; e8 0e a3
    1049310513    mov AL, strict byte 003h                  ; b0 03
    1049410514    mov AH, strict byte 000h                  ; b4 00
     
    1050310523    push DS                                   ; 1e
    1050410524    mov ds, ax                                ; 8e d8
    10505     call 0edbfh                               ; e8 13 7b
     10525    call 0edbfh                               ; e8 a7 7a
    1050610526    pop DS                                    ; 1f
    1050710527    popad                                     ; 66 61
     
    1051310533    pop bx                                    ; 5b
    1051410534    retn                                      ; c3
    10515 delay_boot_:                                 ; 0xf72b6 LB 0x64
     10535delay_boot_:                                 ; 0xf7322 LB 0x64
    1051610536    push bx                                   ; 53
    1051710537    push dx                                   ; 52
     
    1052010540    mov dx, ax                                ; 89 c2
    1052110541    test ax, ax                               ; 85 c0
    10522     je short 07316h                           ; 74 55
     10542    je short 07382h                           ; 74 55
    1052310543    mov AL, strict byte 034h                  ; b0 34
    1052410544    out strict byte 043h, AL                  ; e6 43
     
    1053010550    push 00a7ch                               ; 68 7c 0a
    1053110551    push strict byte 00002h                   ; 6a 02
    10532     call 018e9h                               ; e8 13 a6
     10552    call 018e9h                               ; e8 a7 a5
    1053310553    add sp, strict byte 00006h                ; 83 c4 06
    1053410554    mov bx, dx                                ; 89 d3
    1053510555    test bx, bx                               ; 85 db
    10536     jbe short 072f6h                          ; 76 17
     10556    jbe short 07362h                          ; 76 17
    1053710557    push bx                                   ; 53
    1053810558    push 00a9ah                               ; 68 9a 0a
    1053910559    push strict byte 00002h                   ; 6a 02
    10540     call 018e9h                               ; e8 01 a6
     10560    call 018e9h                               ; e8 95 a5
    1054110561    add sp, strict byte 00006h                ; 83 c4 06
    1054210562    xor dx, dx                                ; 31 d2
    1054310563    mov ax, strict word 00040h                ; b8 40 00
    10544     call 06e75h                               ; e8 82 fb
     10564    call 06ee1h                               ; e8 82 fb
    1054510565    dec bx                                    ; 4b
    10546     jmp short 072dbh                          ; eb e5
     10566    jmp short 07347h                          ; eb e5
    1054710567    push 009cah                               ; 68 ca 09
    1054810568    push strict byte 00002h                   ; 6a 02
    10549     call 018e9h                               ; e8 eb a5
     10569    call 018e9h                               ; e8 7f a5
    1055010570    add sp, strict byte 00004h                ; 83 c4 04
    1055110571    mov AL, strict byte 034h                  ; b0 34
     
    1055810578    push DS                                   ; 1e
    1055910579    mov ds, ax                                ; 8e d8
    10560     call 0edbfh                               ; e8 ac 7a
     10580    call 0edbfh                               ; e8 40 7a
    1056110581    pop DS                                    ; 1f
    1056210582    popad                                     ; 66 61
     
    1056510585    pop bx                                    ; 5b
    1056610586    retn                                      ; c3
    10567 scsi_cmd_data_in_:                           ; 0xf731a LB 0x88
     10587scsi_cmd_data_in_:                           ; 0xf7386 LB 0x88
    1056810588    push si                                   ; 56
    1056910589    push di                                   ; 57
     
    1057810598    ; sub ah, ah                                ; 2a e4
    1057910599    test AL, strict byte 001h                 ; a8 01
    10580     jne short 0732bh                          ; 75 f7
     10600    jne short 07397h                          ; 75 f7
    1058110601    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1058210602    mov dx, word [bp+010h]                    ; 8b 56 10
     
    1058410604    shr dx, 1                                 ; d1 ea
    1058510605    rcr ax, 1                                 ; d1 d8
    10586     loop 0733dh                               ; e2 fa
     10606    loop 073a9h                               ; e2 fa
    1058710607    and ax, 000f0h                            ; 25 f0 00
    1058810608    movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
     
    1060210622    shr dx, 1                                 ; d1 ea
    1060310623    rcr ax, 1                                 ; d1 d8
    10604     loop 07365h                               ; e2 fa
     10624    loop 073d1h                               ; e2 fa
    1060510625    mov dx, si                                ; 89 f2
    1060610626    out DX, AL                                ; ee
     
    1060810628    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    1060910629    cmp bx, ax                                ; 39 c3
    10610     jnc short 07386h                          ; 73 0e
     10630    jnc short 073f2h                          ; 73 0e
    1061110631    les di, [bp-006h]                         ; c4 7e fa
    1061210632    add di, bx                                ; 01 df
     
    1061510635    out DX, AL                                ; ee
    1061610636    inc bx                                    ; 43
    10617     jmp short 07370h                          ; eb ea
     10637    jmp short 073dch                          ; eb ea
    1061810638    mov dx, si                                ; 89 f2
    1061910639    in AL, DX                                 ; ec
     
    1062110641    ; sub ah, ah                                ; 2a e4
    1062210642    test AL, strict byte 001h                 ; a8 01
    10623     jne short 07386h                          ; 75 f7
     10643    jne short 073f2h                          ; 75 f7
    1062410644    lea dx, [si+001h]                         ; 8d 54 01
    1062510645    mov cx, word [bp+00eh]                    ; 8b 4e 0e
     
    1063110651    pop si                                    ; 5e
    1063210652    retn 0000ah                               ; c2 0a 00
    10633 scsi_cmd_data_out_:                          ; 0xf73a2 LB 0x89
     10653scsi_cmd_data_out_:                          ; 0xf740e LB 0x89
    1063410654    push si                                   ; 56
    1063510655    push di                                   ; 57
     
    1064410664    ; sub ah, ah                                ; 2a e4
    1064510665    test AL, strict byte 001h                 ; a8 01
    10646     jne short 073b3h                          ; 75 f7
     10666    jne short 0741fh                          ; 75 f7
    1064710667    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1064810668    mov dx, word [bp+010h]                    ; 8b 56 10
     
    1065010670    shr dx, 1                                 ; d1 ea
    1065110671    rcr ax, 1                                 ; d1 d8
    10652     loop 073c5h                               ; e2 fa
     10672    loop 07431h                               ; e2 fa
    1065310673    and ax, 000f0h                            ; 25 f0 00
    1065410674    movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
     
    1066810688    shr dx, 1                                 ; d1 ea
    1066910689    rcr ax, 1                                 ; d1 d8
    10670     loop 073edh                               ; e2 fa
     10690    loop 07459h                               ; e2 fa
    1067110691    mov dx, di                                ; 89 fa
    1067210692    out DX, AL                                ; ee
     
    1067410694    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    1067510695    cmp bx, ax                                ; 39 c3
    10676     jnc short 0740eh                          ; 73 0e
     10696    jnc short 0747ah                          ; 73 0e
    1067710697    les si, [bp-006h]                         ; c4 76 fa
    1067810698    add si, bx                                ; 01 de
     
    1068110701    out DX, AL                                ; ee
    1068210702    inc bx                                    ; 43
    10683     jmp short 073f8h                          ; eb ea
     10703    jmp short 07464h                          ; eb ea
    1068410704    lea dx, [di+001h]                         ; 8d 55 01
    1068510705    mov cx, word [bp+00eh]                    ; 8b 4e 0e
     
    1069210712    ; sub ah, ah                                ; 2a e4
    1069310713    test AL, strict byte 001h                 ; a8 01
    10694     jne short 0741ah                          ; 75 f7
     10714    jne short 07486h                          ; 75 f7
    1069510715    xor ax, ax                                ; 31 c0
    1069610716    leave                                     ; c9
     
    1069810718    pop si                                    ; 5e
    1069910719    retn 0000ah                               ; c2 0a 00
    10700 @scsi_read_sectors:                          ; 0xf742b LB 0xb1
     10720@scsi_read_sectors:                          ; 0xf7497 LB 0xb1
    1070110721    push si                                   ; 56
    1070210722    push di                                   ; 57
     
    1070710727    sub bl, 008h                              ; 80 eb 08
    1070810728    cmp bl, 004h                              ; 80 fb 04
    10709     jbe short 07452h                          ; 76 0f
     10729    jbe short 074beh                          ; 76 0f
    1071010730    movzx ax, bl                              ; 0f b6 c3
    1071110731    push ax                                   ; 50
    1071210732    push 00a9eh                               ; 68 9e 0a
    1071310733    push strict byte 00007h                   ; 6a 07
    10714     call 018e9h                               ; e8 9a a4
     10734    call 018e9h                               ; e8 2e a4
    1071510735    add sp, strict byte 00006h                ; 83 c4 06
    1071610736    mov es, [bp+00ah]                         ; 8e 46 0a
     
    1073910759    sal word [bp-004h], 1                     ; d1 66 fc
    1074010760    rcl word [bp-002h], 1                     ; d1 56 fe
    10741     loop 0749bh                               ; e2 f8
     10761    loop 07507h                               ; e2 f8
    1074210762    push dword [bp-004h]                      ; 66 ff 76 fc
    1074310763    db  066h, 026h, 0ffh, 074h, 004h
     
    1074710767    mov cx, ss                                ; 8c d1
    1074810768    lea bx, [bp-00eh]                         ; 8d 5e f2
    10749     call 0731ah                               ; e8 62 fe
     10769    call 07386h                               ; e8 62 fe
    1075010770    mov ah, al                                ; 88 c4
    1075110771    test al, al                               ; 84 c0
    10752     jne short 074d3h                          ; 75 15
     10772    jne short 0753fh                          ; 75 15
    1075310773    mov es, [bp+00ah]                         ; 8e 46 0a
    1075410774    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1076210782    pop si                                    ; 5e
    1076310783    retn 00004h                               ; c2 04 00
    10764 @scsi_write_sectors:                         ; 0xf74dc LB 0xb1
     10784@scsi_write_sectors:                         ; 0xf7548 LB 0xb1
    1076510785    push si                                   ; 56
    1076610786    push di                                   ; 57
     
    1077110791    sub bl, 008h                              ; 80 eb 08
    1077210792    cmp bl, 004h                              ; 80 fb 04
    10773     jbe short 07503h                          ; 76 0f
     10793    jbe short 0756fh                          ; 76 0f
    1077410794    movzx ax, bl                              ; 0f b6 c3
    1077510795    push ax                                   ; 50
    1077610796    push 00acch                               ; 68 cc 0a
    1077710797    push strict byte 00007h                   ; 6a 07
    10778     call 018e9h                               ; e8 e9 a3
     10798    call 018e9h                               ; e8 7d a3
    1077910799    add sp, strict byte 00006h                ; 83 c4 06
    1078010800    mov es, [bp+00ah]                         ; 8e 46 0a
     
    1080310823    sal word [bp-004h], 1                     ; d1 66 fc
    1080410824    rcl word [bp-002h], 1                     ; d1 56 fe
    10805     loop 0754ch                               ; e2 f8
     10825    loop 075b8h                               ; e2 f8
    1080610826    push dword [bp-004h]                      ; 66 ff 76 fc
    1080710827    db  066h, 026h, 0ffh, 074h, 004h
     
    1081110831    mov cx, ss                                ; 8c d1
    1081210832    lea bx, [bp-00eh]                         ; 8d 5e f2
    10813     call 073a2h                               ; e8 39 fe
     10833    call 0740eh                               ; e8 39 fe
    1081410834    mov ah, al                                ; 88 c4
    1081510835    test al, al                               ; 84 c0
    10816     jne short 07584h                          ; 75 15
     10836    jne short 075f0h                          ; 75 15
    1081710837    mov es, [bp+00ah]                         ; 8e 46 0a
    1081810838    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1082610846    pop si                                    ; 5e
    1082710847    retn 00004h                               ; c2 04 00
    10828 scsi_cmd_packet_:                            ; 0xf758d LB 0x161
     10848scsi_cmd_packet_:                            ; 0xf75f9 LB 0x161
    1082910849    push si                                   ; 56
    1083010850    push di                                   ; 57
     
    1083610856    mov dx, strict word 0000eh                ; ba 0e 00
    1083710857    mov ax, strict word 00040h                ; b8 40 00
    10838     call 0161ch                               ; e8 75 a0
     10858    call 0161ch                               ; e8 09 a0
    1083910859    mov si, 00122h                            ; be 22 01
    1084010860    mov word [bp-00ah], ax                    ; 89 46 f6
    1084110861    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    10842     jne short 075d2h                          ; 75 1f
     10862    jne short 0763eh                          ; 75 1f
    1084310863    mov bx, 00d32h                            ; bb 32 0d
    1084410864    mov cx, ds                                ; 8c d9
    1084510865    mov ax, strict word 00004h                ; b8 04 00
    10846     call 018aeh                               ; e8 f0 a2
     10866    call 018aeh                               ; e8 84 a2
    1084710867    push 00afbh                               ; 68 fb 0a
    1084810868    push 00b0bh                               ; 68 0b 0b
    1084910869    push strict byte 00004h                   ; 6a 04
    10850     call 018e9h                               ; e8 20 a3
     10870    call 018e9h                               ; e8 b4 a2
    1085110871    add sp, strict byte 00006h                ; 83 c4 06
    1085210872    mov dx, strict word 00001h                ; ba 01 00
    10853     jmp near 076e6h                           ; e9 14 01
     10873    jmp near 07752h                           ; e9 14 01
    1085410874    sub di, strict byte 00008h                ; 83 ef 08
    1085510875    sal di, 002h                              ; c1 e7 02
     
    1086510885    ; sub ah, ah                                ; 2a e4
    1086610886    test AL, strict byte 001h                 ; a8 01
    10867     jne short 075eeh                          ; 75 f7
     10887    jne short 0765ah                          ; 75 f7
    1086810888    xor ax, ax                                ; 31 c0
    1086910889    mov dx, word [bp+00ah]                    ; 8b 56 0a
     
    1088110901    shr dx, 1                                 ; d1 ea
    1088210902    rcr ax, 1                                 ; d1 d8
    10883     loop 07619h                               ; e2 fa
     10903    loop 07685h                               ; e2 fa
    1088410904    and ax, 000f0h                            ; 25 f0 00
    1088510905    movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
     
    1089910919    shr dx, 1                                 ; d1 ea
    1090010920    rcr ax, 1                                 ; d1 d8
    10901     loop 07640h                               ; e2 fa
     10921    loop 076ach                               ; e2 fa
    1090210922    mov dx, bx                                ; 89 da
    1090310923    out DX, AL                                ; ee
     
    1090510925    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    1090610926    cmp cx, ax                                ; 39 c1
    10907     jnc short 07661h                          ; 73 0e
     10927    jnc short 076cdh                          ; 73 0e
    1090810928    les di, [bp-008h]                         ; c4 7e f8
    1090910929    add di, cx                                ; 01 cf
     
    1091210932    out DX, AL                                ; ee
    1091310933    inc cx                                    ; 41
    10914     jmp short 0764bh                          ; eb ea
     10934    jmp short 076b7h                          ; eb ea
    1091510935    mov dx, bx                                ; 89 da
    1091610936    in AL, DX                                 ; ec
     
    1091810938    ; sub ah, ah                                ; 2a e4
    1091910939    test AL, strict byte 001h                 ; a8 01
    10920     jne short 07661h                          ; 75 f7
     10940    jne short 076cdh                          ; 75 f7
    1092110941    test AL, strict byte 002h                 ; a8 02
    10922     je short 0767ch                           ; 74 0e
     10942    je short 076e8h                           ; 74 0e
    1092310943    lea dx, [bx+003h]                         ; 8d 57 03
    1092410944    xor al, al                                ; 30 c0
     
    1092810948    ; sub ah, ah                                ; 2a e4
    1092910949    mov dx, strict word 00003h                ; ba 03 00
    10930     jmp short 076e6h                          ; eb 6a
     10950    jmp short 07752h                          ; eb 6a
    1093110951    mov ax, word [bp+008h]                    ; 8b 46 08
    1093210952    test ax, ax                               ; 85 c0
    10933     je short 0768bh                           ; 74 08
     10953    je short 076f7h                           ; 74 08
    1093410954    lea dx, [bx+001h]                         ; 8d 57 01
    1093510955    mov cx, ax                                ; 89 c1
    1093610956    in AL, DX                                 ; ec
    10937     loop 07688h                               ; e2 fd
     10957    loop 076f4h                               ; e2 fd
    1093810958    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1093910959    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1094310963    lea ax, [bx+001h]                         ; 8d 47 01
    1094410964    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10945     jne short 076ach                          ; 75 07
     10965    jne short 07718h                          ; 75 07
    1094610966    cmp word [bp+00ah], 08000h                ; 81 7e 0a 00 80
    10947     jbe short 076c9h                          ; 76 1d
     10967    jbe short 07735h                          ; 76 1d
    1094810968    mov dx, ax                                ; 89 c2
    1094910969    mov cx, 08000h                            ; b9 00 80
     
    1095510975    add ax, 00800h                            ; 05 00 08
    1095610976    mov word [bp+012h], ax                    ; 89 46 12
    10957     jmp short 0769ch                          ; eb d3
     10977    jmp short 07708h                          ; eb d3
    1095810978    mov dx, ax                                ; 89 c2
    1095910979    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     
    1096210982    mov es, [bp-00ah]                         ; 8e 46 f6
    1096310983    cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
    10964     je short 076e4h                           ; 74 07
     10984    je short 07750h                           ; 74 07
    1096510985    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1096610986    in AL, DX                                 ; ec
    10967     loop 076e1h                               ; e2 fd
     10987    loop 0774dh                               ; e2 fd
    1096810988    xor dx, dx                                ; 31 d2
    1096910989    mov ax, dx                                ; 89 d0
     
    1097210992    pop si                                    ; 5e
    1097310993    retn 0000ch                               ; c2 0c 00
    10974 scsi_enumerate_attached_devices_:            ; 0xf76ee LB 0x36d
     10994scsi_enumerate_attached_devices_:            ; 0xf775a LB 0x36d
    1097510995    push bx                                   ; 53
    1097610996    push cx                                   ; 51
     
    1098211002    mov dx, strict word 0000eh                ; ba 0e 00
    1098311003    mov ax, strict word 00040h                ; b8 40 00
    10984     call 0161ch                               ; e8 1b 9f
     11004    call 0161ch                               ; e8 af 9e
    1098511005    mov si, 00122h                            ; be 22 01
    1098611006    mov word [bp-008h], ax                    ; 89 46 f8
    1098711007    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    10988     jmp near 079ech                           ; e9 dd 02
     11008    jmp near 07a58h                           ; e9 dd 02
    1098911009    mov es, [bp-008h]                         ; 8e 46 f8
    1099011010    cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    10991     jnc near 07a54h                           ; 0f 83 38 03
     11011    jnc near 07ac0h                           ; 0f 83 38 03
    1099211012    mov cx, strict word 0000ah                ; b9 0a 00
    1099311013    xor bx, bx                                ; 31 db
    1099411014    mov dx, ss                                ; 8c d2
    1099511015    lea ax, [bp-01eh]                         ; 8d 46 e2
    10996     call 0901ah                               ; e8 f1 18
     11016    call 0907ah                               ; e8 e5 18
    1099711017    mov byte [bp-01eh], 025h                  ; c6 46 e2 25
    1099811018    push dword 000000008h                     ; 66 6a 08
     
    1100511025    lea bx, [bp-01eh]                         ; 8d 5e e2
    1100611026    mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
    11007     call 0731ah                               ; e8 d2 fb
     11027    call 07386h                               ; e8 d2 fb
    1100811028    test al, al                               ; 84 c0
    11009     je short 0775ah                           ; 74 0e
     11029    je short 077c6h                           ; 74 0e
    1101011030    push 00b2bh                               ; 68 2b 0b
    1101111031    push 00b64h                               ; 68 64 0b
    1101211032    push strict byte 00007h                   ; 6a 07
    11013     call 018e9h                               ; e8 92 a1
     11033    call 018e9h                               ; e8 26 a1
    1101411034    add sp, strict byte 00006h                ; 83 c4 06
    1101511035    movzx dx, byte [bp-0021dh]                ; 0f b6 96 e3 fd
     
    1102311043    sal ax, 1                                 ; d1 e0
    1102411044    rcl dx, 1                                 ; d1 d2
    11025     loop 07775h                               ; e2 fa
     11045    loop 077e1h                               ; e2 fa
    1102611046    or ax, bx                                 ; 09 d8
    1102711047    or di, dx                                 ; 09 d7
     
    1103911059    sal ax, 1                                 ; d1 e0
    1104011060    rcl dx, 1                                 ; d1 d2
    11041     loop 077a5h                               ; e2 fa
     11061    loop 07811h                               ; e2 fa
    1104211062    or bx, ax                                 ; 09 c3
    1104311063    or dx, word [bp-014h]                     ; 0b 56 ec
     
    1104611066    mov word [bp-004h], bx                    ; 89 5e fc
    1104711067    test dx, dx                               ; 85 d2
    11048     jne short 077c4h                          ; 75 06
     11068    jne short 07830h                          ; 75 06
    1104911069    cmp bx, 00200h                            ; 81 fb 00 02
    11050     je short 077e4h                           ; 74 20
     11070    je short 07850h                           ; 74 20
    1105111071    mov bx, 00d32h                            ; bb 32 0d
    1105211072    mov cx, ds                                ; 8c d9
    1105311073    mov ax, strict word 00004h                ; b8 04 00
    11054     call 018aeh                               ; e8 df a0
     11074    call 018aeh                               ; e8 73 a0
    1105511075    push dx                                   ; 52
    1105611076    push word [bp-004h]                       ; ff 76 fc
     
    1105811078    push 00b83h                               ; 68 83 0b
    1105911079    push strict byte 00004h                   ; 6a 04
    11060     call 018e9h                               ; e8 0b a1
     11080    call 018e9h                               ; e8 9f a0
    1106111081    add sp, strict byte 0000ah                ; 83 c4 0a
    11062     jmp near 079e3h                           ; e9 ff 01
     11082    jmp near 07a4fh                           ; e9 ff 01
    1106311083    cmp di, strict byte 00040h                ; 83 ff 40
    11064     jnbe short 077ebh                         ; 77 02
    11065     jne short 077f5h                          ; 75 0a
     11084    jnbe short 07857h                         ; 77 02
     11085    jne short 07861h                          ; 75 0a
    1106611086    mov dword [bp-00eh], strict dword 000ff003fh ; 66 c7 46 f2 3f 00 ff 00
    11067     jmp short 0780eh                          ; eb 19
     11087    jmp short 0787ah                          ; eb 19
    1106811088    cmp di, strict byte 00020h                ; 83 ff 20
    11069     jnbe short 077fch                         ; 77 02
    11070     jne short 07806h                          ; 75 0a
     11089    jnbe short 07868h                         ; 77 02
     11090    jne short 07872h                          ; 75 0a
    1107111091    mov dword [bp-00eh], strict dword 000800020h ; 66 c7 46 f2 20 00 80 00
    11072     jmp short 0780eh                          ; eb 08
     11092    jmp short 0787ah                          ; eb 08
    1107311093    mov dword [bp-00eh], strict dword 000400020h ; 66 c7 46 f2 20 00 40 00
    1107411094    mov bx, word [bp-00ch]                    ; 8b 5e f4
     
    1107711097    mov dx, di                                ; 89 fa
    1107811098    xor cx, cx                                ; 31 c9
    11079     call 08fb0h                               ; e8 91 17
     11099    call 09010h                               ; e8 85 17
    1108011100    mov word [bp-012h], ax                    ; 89 46 ee
    1108111101    mov word [bp-010h], dx                    ; 89 56 f0
     
    1110611126    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    1110711127    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    11108     jne short 07888h                          ; 75 07
     11128    jne short 078f4h                          ; 75 07
    1110911129    cmp word [bp-012h], 00400h                ; 81 7e ee 00 04
    11110     jbe short 07890h                          ; 76 08
     11130    jbe short 078fch                          ; 76 08
    1111111131    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11112     jmp short 07897h                          ; eb 07
     11132    jmp short 07903h                          ; eb 07
    1111311133    mov ax, word [bp-012h]                    ; 8b 46 ee
    1111411134    mov word [es:bx+028h], ax                 ; 26 89 47 28
     
    1111611136    mov cx, ds                                ; 8c d9
    1111711137    mov ax, strict word 00004h                ; b8 04 00
    11118     call 018aeh                               ; e8 0c a0
     11138    call 018aeh                               ; e8 a0 9f
    1111911139    push di                                   ; 57
    1112011140    push word [bp-006h]                       ; ff 76 fa
     
    1112711147    push 00bb1h                               ; 68 b1 0b
    1112811148    push strict byte 00004h                   ; 6a 04
    11129     call 018e9h                               ; e8 2a a0
     11149    call 018e9h                               ; e8 be 9f
    1113011150    add sp, strict byte 00012h                ; 83 c4 12
    1113111151    movzx ax, dl                              ; 0f b6 c2
     
    1113911159    mov word [es:bx+030h], ax                 ; 26 89 47 30
    1114011160    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    11141     jne short 078eah                          ; 75 07
     11161    jne short 07956h                          ; 75 07
    1114211162    cmp word [bp-012h], 00400h                ; 81 7e ee 00 04
    11143     jbe short 078f2h                          ; 76 08
     11163    jbe short 0795eh                          ; 76 08
    1114411164    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11145     jmp short 078f9h                          ; eb 07
     11165    jmp short 07965h                          ; eb 07
    1114611166    mov ax, word [bp-012h]                    ; 8b 46 ee
    1114711167    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
     
    1116511185    mov dx, strict word 00075h                ; ba 75 00
    1116611186    mov ax, strict word 00040h                ; b8 40 00
    11167     call 01600h                               ; e8 ca 9c
     11187    call 01600h                               ; e8 5e 9c
    1116811188    db  0feh, 0c0h
    1116911189    ; inc al                                    ; fe c0
     
    1117111191    mov dx, strict word 00075h                ; ba 75 00
    1117211192    mov ax, strict word 00040h                ; b8 40 00
    11173     call 0160eh                               ; e8 ca 9c
     11193    call 0160eh                               ; e8 5e 9c
    1117411194    inc byte [bp-002h]                        ; fe 46 fe
    1117511195    mov al, byte [bp-002h]                    ; 8a 46 fe
    1117611196    mov es, [bp-008h]                         ; 8e 46 f8
    1117711197    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11178     jmp near 079e3h                           ; e9 8e 00
     11198    jmp near 07a4fh                           ; e9 8e 00
    1117911199    mov bx, 00d32h                            ; bb 32 0d
    1118011200    mov cx, ds                                ; 8c d9
    1118111201    mov ax, strict word 00004h                ; b8 04 00
    11182     call 018aeh                               ; e8 4e 9f
     11202    call 018aeh                               ; e8 e2 9e
    1118311203    push word [bp-00ah]                       ; ff 76 f6
    1118411204    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     
    1118611206    push 00bdbh                               ; 68 db 0b
    1118711207    push strict byte 00004h                   ; 6a 04
    11188     call 018e9h                               ; e8 79 9f
     11208    call 018e9h                               ; e8 0d 9f
    1118911209    add sp, strict byte 00008h                ; 83 c4 08
    1119011210    mov dl, byte [bp-002h]                    ; 8a 56 fe
     
    1122411244    inc word [bp-00ah]                        ; ff 46 f6
    1122511245    cmp word [bp-00ah], strict byte 00010h    ; 83 7e f6 10
    11226     jnl short 07a54h                          ; 7d 68
     11246    jnl short 07ac0h                          ; 7d 68
    1122711247    mov byte [bp-01eh], 012h                  ; c6 46 e2 12
    1122811248    xor al, al                                ; 30 c0
     
    1124111261    lea bx, [bp-01eh]                         ; 8d 5e e2
    1124211262    mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
    11243     call 0731ah                               ; e8 fd f8
     11263    call 07386h                               ; e8 fd f8
    1124411264    test al, al                               ; 84 c0
    11245     je short 07a2fh                           ; 74 0e
     11265    je short 07a9bh                           ; 74 0e
    1124611266    push 00b2bh                               ; 68 2b 0b
    1124711267    push 00b4bh                               ; 68 4b 0b
    1124811268    push strict byte 00007h                   ; 6a 07
    11249     call 018e9h                               ; e8 bd 9e
     11269    call 018e9h                               ; e8 51 9e
    1125011270    add sp, strict byte 00006h                ; 83 c4 06
    1125111271    test byte [bp-0021eh], 0e0h               ; f6 86 e2 fd e0
    11252     jne short 07a3fh                          ; 75 09
     11272    jne short 07aabh                          ; 75 09
    1125311273    test byte [bp-0021eh], 01fh               ; f6 86 e2 fd 1f
    11254     je near 0770fh                            ; 0f 84 d0 fc
     11274    je near 0777bh                            ; 0f 84 d0 fc
    1125511275    test byte [bp-0021eh], 0e0h               ; f6 86 e2 fd e0
    11256     jne short 079e3h                          ; 75 9d
     11276    jne short 07a4fh                          ; 75 9d
    1125711277    mov al, byte [bp-0021eh]                  ; 8a 86 e2 fd
    1125811278    and AL, strict byte 01fh                  ; 24 1f
    1125911279    cmp AL, strict byte 005h                  ; 3c 05
    11260     je near 07955h                            ; 0f 84 03 ff
    11261     jmp short 079e3h                          ; eb 8f
     11280    je near 079c1h                            ; 0f 84 03 ff
     11281    jmp short 07a4fh                          ; eb 8f
    1126211282    leave                                     ; c9
    1126311283    pop di                                    ; 5f
     
    1126711287    pop bx                                    ; 5b
    1126811288    retn                                      ; c3
    11269 _scsi_init:                                  ; 0xf7a5b LB 0x64
     11289_scsi_init:                                  ; 0xf7ac7 LB 0x64
    1127011290    push bp                                   ; 55
    1127111291    mov bp, sp                                ; 89 e5
    1127211292    mov dx, strict word 0000eh                ; ba 0e 00
    1127311293    mov ax, strict word 00040h                ; b8 40 00
    11274     call 0161ch                               ; e8 b5 9b
     11294    call 0161ch                               ; e8 49 9b
    1127511295    mov bx, 00122h                            ; bb 22 01
    1127611296    mov es, ax                                ; 8e c0
     
    1128311303    ; sub ah, ah                                ; 2a e4
    1128411304    cmp AL, strict byte 055h                  ; 3c 55
    11285     jne short 07a8bh                          ; 75 0c
     11305    jne short 07af7h                          ; 75 0c
    1128611306    xor al, al                                ; 30 c0
    1128711307    mov dx, 00433h                            ; ba 33 04
    1128811308    out DX, AL                                ; ee
    1128911309    mov ax, 00430h                            ; b8 30 04
    11290     call 076eeh                               ; e8 63 fc
     11310    call 0775ah                               ; e8 63 fc
    1129111311    mov AL, strict byte 055h                  ; b0 55
    1129211312    mov dx, 00436h                            ; ba 36 04
     
    1129611316    ; sub ah, ah                                ; 2a e4
    1129711317    cmp AL, strict byte 055h                  ; 3c 55
    11298     jne short 07aa4h                          ; 75 0c
     11318    jne short 07b10h                          ; 75 0c
    1129911319    xor al, al                                ; 30 c0
    1130011320    mov dx, 00437h                            ; ba 37 04
    1130111321    out DX, AL                                ; ee
    1130211322    mov ax, 00434h                            ; b8 34 04
    11303     call 076eeh                               ; e8 4a fc
     11323    call 0775ah                               ; e8 4a fc
    1130411324    mov AL, strict byte 055h                  ; b0 55
    1130511325    mov dx, 0043ah                            ; ba 3a 04
     
    1130911329    ; sub ah, ah                                ; 2a e4
    1131011330    cmp AL, strict byte 055h                  ; 3c 55
    11311     jne short 07abdh                          ; 75 0c
     11331    jne short 07b29h                          ; 75 0c
    1131211332    xor al, al                                ; 30 c0
    1131311333    mov dx, 0043bh                            ; ba 3b 04
    1131411334    out DX, AL                                ; ee
    1131511335    mov ax, 00438h                            ; b8 38 04
    11316     call 076eeh                               ; e8 31 fc
     11336    call 0775ah                               ; e8 31 fc
    1131711337    pop bp                                    ; 5d
    1131811338    retn                                      ; c3
    11319 high_bits_save_:                             ; 0xf7abf LB 0x14
     11339high_bits_save_:                             ; 0xf7b2b LB 0x14
    1132011340    push bx                                   ; 53
    1132111341    push bp                                   ; 55
     
    1132811348    pop bx                                    ; 5b
    1132911349    retn                                      ; c3
    11330 high_bits_restore_:                          ; 0xf7ad3 LB 0x14
     11350high_bits_restore_:                          ; 0xf7b3f LB 0x14
    1133111351    push bx                                   ; 53
    1133211352    push bp                                   ; 55
     
    1133911359    pop bx                                    ; 5b
    1134011360    retn                                      ; c3
    11341 ahci_ctrl_set_bits_:                         ; 0xf7ae7 LB 0x40
     11361ahci_ctrl_set_bits_:                         ; 0xf7b53 LB 0x40
    1134211362    push si                                   ; 56
    1134311363    push di                                   ; 57
     
    1137411394    pop si                                    ; 5e
    1137511395    retn                                      ; c3
    11376 ahci_ctrl_clear_bits_:                       ; 0xf7b27 LB 0x44
     11396ahci_ctrl_clear_bits_:                       ; 0xf7b93 LB 0x44
    1137711397    push si                                   ; 56
    1137811398    push di                                   ; 57
     
    1141111431    pop si                                    ; 5e
    1141211432    retn                                      ; c3
    11413 ahci_ctrl_is_bit_set_:                       ; 0xf7b6b LB 0x36
     11433ahci_ctrl_is_bit_set_:                       ; 0xf7bd7 LB 0x36
    1141411434    push si                                   ; 56
    1141511435    push di                                   ; 57
     
    1143311453    xchg dx, ax                               ; 92
    1143411454    test dx, di                               ; 85 fa
    11435     jne short 07b97h                          ; 75 04
     11455    jne short 07c03h                          ; 75 04
    1143611456    test ax, bx                               ; 85 d8
    11437     je short 07b9bh                           ; 74 04
     11457    je short 07c07h                           ; 74 04
    1143811458    mov AL, strict byte 001h                  ; b0 01
    11439     jmp short 07b9dh                          ; eb 02
     11459    jmp short 07c09h                          ; eb 02
    1144011460    xor al, al                                ; 30 c0
    1144111461    pop bp                                    ; 5d
     
    1144311463    pop si                                    ; 5e
    1144411464    retn                                      ; c3
    11445 ahci_ctrl_extract_bits_:                     ; 0xf7ba1 LB 0x1b
     11465ahci_ctrl_extract_bits_:                     ; 0xf7c0d LB 0x1b
    1144611466    push si                                   ; 56
    1144711467    push bp                                   ; 55
     
    1145111471    and dx, cx                                ; 21 ca
    1145211472    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    11453     jcxz 07bb7h                               ; e3 06
     11473    jcxz 07c23h                               ; e3 06
    1145411474    shr dx, 1                                 ; d1 ea
    1145511475    rcr ax, 1                                 ; d1 d8
    11456     loop 07bb1h                               ; e2 fa
     11476    loop 07c1dh                               ; e2 fa
    1145711477    pop bp                                    ; 5d
    1145811478    pop si                                    ; 5e
    1145911479    retn 00002h                               ; c2 02 00
    11460 ahci_addr_to_phys_:                          ; 0xf7bbc LB 0x1e
     11480ahci_addr_to_phys_:                          ; 0xf7c28 LB 0x1e
    1146111481    push bx                                   ; 53
    1146211482    push cx                                   ; 51
     
    1146911489    sal ax, 1                                 ; d1 e0
    1147011490    rcl dx, 1                                 ; d1 d2
    11471     loop 07bcah                               ; e2 fa
     11491    loop 07c36h                               ; e2 fa
    1147211492    xor cx, cx                                ; 31 c9
    1147311493    add ax, bx                                ; 01 d8
     
    1147711497    pop bx                                    ; 5b
    1147811498    retn                                      ; c3
    11479 ahci_port_cmd_sync_:                         ; 0xf7bda LB 0xd0
     11499ahci_port_cmd_sync_:                         ; 0xf7c46 LB 0xd0
    1148011500    push cx                                   ; 51
    1148111501    push si                                   ; 56
     
    1148911509    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1149011510    cmp AL, strict byte 0ffh                  ; 3c ff
    11491     je near 07ca5h                            ; 0f 84 aa 00
     11511    je near 07d11h                            ; 0f 84 aa 00
    1149211512    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    1149311513    xor dx, dx                                ; 31 d2
     
    1150111521    lea ax, [si+00080h]                       ; 8d 84 80 00
    1150211522    mov dx, es                                ; 8c c2
    11503     call 07bbch                               ; e8 98 ff
     11523    call 07c28h                               ; e8 98 ff
    1150411524    mov es, [bp-004h]                         ; 8e 46 fc
    1150511525    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1151111531    xor cx, cx                                ; 31 c9
    1151211532    mov ax, di                                ; 89 f8
    11513     call 07ae7h                               ; e8 a3 fe
     11533    call 07b53h                               ; e8 a3 fe
    1151411534    lea ax, [si+00138h]                       ; 8d 84 38 01
    1151511535    cwd                                       ; 99
     
    1153811558    mov dx, si                                ; 89 f2
    1153911559    mov ax, di                                ; 89 f8
    11540     call 07b6bh                               ; e8 e7 fe
     11560    call 07bd7h                               ; e8 e7 fe
    1154111561    test al, al                               ; 84 c0
    11542     je short 07c67h                           ; 74 df
     11562    je short 07cd3h                           ; 74 df
    1154311563    mov bx, strict word 00001h                ; bb 01 00
    1154411564    xor cx, cx                                ; 31 c9
    1154511565    mov dx, si                                ; 89 f2
    1154611566    mov ax, di                                ; 89 f8
    11547     call 07ae7h                               ; e8 53 fe
     11567    call 07b53h                               ; e8 53 fe
    1154811568    mov dx, word [bp-006h]                    ; 8b 56 fa
    1154911569    add dx, 00118h                            ; 81 c2 18 01
     
    1155111571    xor cx, cx                                ; 31 c9
    1155211572    mov ax, di                                ; 89 f8
    11553     call 07b27h                               ; e8 82 fe
     11573    call 07b93h                               ; e8 82 fe
    1155411574    leave                                     ; c9
    1155511575    pop di                                    ; 5f
     
    1155711577    pop cx                                    ; 59
    1155811578    retn                                      ; c3
    11559 ahci_cmd_data_:                              ; 0xf7caa LB 0x1c5
     11579ahci_cmd_data_:                              ; 0xf7d16 LB 0x1c5
    1156011580    push cx                                   ; 51
    1156111581    push si                                   ; 56
     
    1157911599    mov ax, 00080h                            ; b8 80 00
    1158011600    mov dx, word [bp-004h]                    ; 8b 56 fc
    11581     call 0901ah                               ; e8 33 13
     11601    call 0907ah                               ; e8 27 13
    1158211602    mov es, [bp-004h]                         ; 8e 46 fc
    1158311603    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1159511615    shr bx, 1                                 ; d1 eb
    1159611616    rcr ax, 1                                 ; d1 d8
    11597     loop 07d1ah                               ; e2 fa
     11617    loop 07d86h                               ; e2 fa
    1159811618    mov es, [bp-004h]                         ; 8e 46 fc
    1159911619    mov byte [es:si+00085h], al               ; 26 88 84 85 00
     
    1162011640    mov bx, word [bp-010h]                    ; 8b 5e f0
    1162111641    xor cx, cx                                ; 31 c9
    11622     call 08fe9h                               ; e8 66 12
     11642    call 09049h                               ; e8 5a 12
    1162311643    push dx                                   ; 52
    1162411644    push ax                                   ; 50
     
    1162811648    mov ax, 0026ah                            ; b8 6a 02
    1162911649    mov dx, word [bp-004h]                    ; 8b 56 fc
    11630     call 08effh                               ; e8 66 11
     11650    call 08f6bh                               ; e8 66 11
    1163111651    mov es, [bp-004h]                         ; 8e 46 fc
    1163211652    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1164811668    mov es, [bp-00ch]                         ; 8e 46 f4
    1164911669    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    11650     je short 07e12h                           ; 74 2c
     11670    je short 07e7eh                           ; 74 2c
    1165111671    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1165211672    dec dx                                    ; 4a
     
    1166711687    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1166811688    cmp ax, dx                                ; 39 d0
    11669     jnc short 07e2ch                          ; 73 03
     11689    jnc short 07e98h                          ; 73 03
    1167011690    inc ax                                    ; 40
    11671     jmp short 07e1ch                          ; eb f0
     11691    jmp short 07e88h                          ; eb f0
    1167211692    mov al, byte [bp-002h]                    ; 8a 46 fe
    1167311693    cmp AL, strict byte 035h                  ; 3c 35
    11674     jne short 07e39h                          ; 75 06
     11694    jne short 07ea5h                          ; 75 06
    1167511695    mov byte [bp-002h], 040h                  ; c6 46 fe 40
    11676     jmp short 07e4dh                          ; eb 14
     11696    jmp short 07eb9h                          ; eb 14
    1167711697    cmp AL, strict byte 0a0h                  ; 3c a0
    11678     jne short 07e49h                          ; 75 0c
     11698    jne short 07eb5h                          ; 75 0c
    1167911699    or byte [bp-002h], 020h                   ; 80 4e fe 20
    1168011700    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    11681     jmp short 07e4dh                          ; eb 04
     11701    jmp short 07eb9h                          ; eb 04
    1168211702    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    1168311703    or byte [bp-002h], 005h                   ; 80 4e fe 05
     
    1168511705    mov ax, word [bp-008h]                    ; 8b 46 f8
    1168611706    mov dx, word [bp-006h]                    ; 8b 56 fa
    11687     call 07bdah                               ; e8 7c fd
     11707    call 07c46h                               ; e8 7c fd
    1168811708    mov ax, word [bp-008h]                    ; 8b 46 f8
    1168911709    add ax, 0026ah                            ; 05 6a 02
    1169011710    mov dx, word [bp-006h]                    ; 8b 56 fa
    11691     call 08f75h                               ; e8 0b 11
     11711    call 08fe1h                               ; e8 0b 11
    1169211712    leave                                     ; c9
    1169311713    pop di                                    ; 5f
     
    1169511715    pop cx                                    ; 59
    1169611716    retn                                      ; c3
    11697 ahci_port_deinit_current_:                   ; 0xf7e6f LB 0x13f
     11717ahci_port_deinit_current_:                   ; 0xf7edb LB 0x13f
    1169811718    push bx                                   ; 53
    1169911719    push cx                                   ; 51
     
    1170811728    mov byte [bp-002h], al                    ; 88 46 fe
    1170911729    cmp AL, strict byte 0ffh                  ; 3c ff
    11710     je near 07fa8h                            ; 0f 84 17 01
     11730    je near 08014h                            ; 0f 84 17 01
    1171111731    movzx dx, al                              ; 0f b6 d0
    1171211732    sal dx, 007h                              ; c1 e2 07
     
    1171511735    xor cx, cx                                ; 31 c9
    1171611736    mov ax, si                                ; 89 f0
    11717     call 07b27h                               ; e8 82 fc
     11737    call 07b93h                               ; e8 82 fc
    1171811738    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    1171911739    sal ax, 007h                              ; c1 e0 07
     
    1172411744    xor cx, cx                                ; 31 c9
    1172511745    mov ax, si                                ; 89 f0
    11726     call 07b6bh                               ; e8 ac fc
     11746    call 07bd7h                               ; e8 ac fc
    1172711747    cmp AL, strict byte 001h                  ; 3c 01
    11728     je short 07ea5h                           ; 74 e2
     11748    je short 07f11h                           ; 74 e2
    1172911749    mov cx, strict word 00020h                ; b9 20 00
    1173011750    xor bx, bx                                ; 31 db
    1173111751    mov ax, di                                ; 89 f8
    1173211752    mov dx, word [bp-004h]                    ; 8b 56 fc
    11733     call 0901ah                               ; e8 4a 11
     11753    call 0907ah                               ; e8 3e 11
    1173411754    lea ax, [di+00080h]                       ; 8d 85 80 00
    1173511755    mov cx, strict word 00040h                ; b9 40 00
    1173611756    xor bx, bx                                ; 31 db
    1173711757    mov dx, word [bp-004h]                    ; 8b 56 fc
    11738     call 0901ah                               ; e8 3b 11
     11758    call 0907ah                               ; e8 2f 11
    1173911759    lea ax, [di+00200h]                       ; 8d 85 00 02
    1174011760    mov cx, strict word 00060h                ; b9 60 00
    1174111761    xor bx, bx                                ; 31 db
    1174211762    mov dx, word [bp-004h]                    ; 8b 56 fc
    11743     call 0901ah                               ; e8 2c 11
     11763    call 0907ah                               ; e8 20 11
    1174411764    mov ax, word [bp-006h]                    ; 8b 46 fa
    1174511765    add ax, 00108h                            ; 05 08 01
     
    1184211862    pop bx                                    ; 5b
    1184311863    retn                                      ; c3
    11844 ahci_port_init_:                             ; 0xf7fae LB 0x201
     11864ahci_port_init_:                             ; 0xf801a LB 0x201
    1184511865    push cx                                   ; 51
    1184611866    push si                                   ; 56
     
    1185011870    mov word [bp-004h], dx                    ; 89 56 fc
    1185111871    mov byte [bp-002h], bl                    ; 88 5e fe
    11852     call 07e6fh                               ; e8 af fe
     11872    call 07edbh                               ; e8 af fe
    1185311873    movzx dx, bl                              ; 0f b6 d3
    1185411874    sal dx, 007h                              ; c1 e2 07
     
    1185811878    mov bx, strict word 00011h                ; bb 11 00
    1185911879    xor cx, cx                                ; 31 c9
    11860     call 07b27h                               ; e8 4d fb
     11880    call 07b93h                               ; e8 4d fb
    1186111881    movzx di, byte [bp-002h]                  ; 0f b6 7e fe
    1186211882    sal di, 007h                              ; c1 e7 07
     
    1186611886    mov bx, 0c011h                            ; bb 11 c0
    1186711887    xor cx, cx                                ; 31 c9
    11868     call 07b6bh                               ; e8 76 fb
     11888    call 07bd7h                               ; e8 76 fb
    1186911889    cmp AL, strict byte 001h                  ; 3c 01
    11870     je short 07fdah                           ; 74 e1
     11890    je short 08046h                           ; 74 e1
    1187111891    mov cx, strict word 00020h                ; b9 20 00
    1187211892    xor bx, bx                                ; 31 db
    1187311893    mov ax, si                                ; 89 f0
    1187411894    mov dx, word [bp-004h]                    ; 8b 56 fc
    11875     call 0901ah                               ; e8 14 10
     11895    call 0907ah                               ; e8 08 10
    1187611896    lea ax, [si+00080h]                       ; 8d 84 80 00
    1187711897    mov cx, strict word 00040h                ; b9 40 00
    1187811898    xor bx, bx                                ; 31 db
    1187911899    mov dx, word [bp-004h]                    ; 8b 56 fc
    11880     call 0901ah                               ; e8 05 10
     11900    call 0907ah                               ; e8 f9 0f
    1188111901    mov ax, si                                ; 89 f0
    1188211902    add ah, 002h                              ; 80 c4 02
     
    1188511905    xor bx, bx                                ; 31 db
    1188611906    mov dx, word [bp-004h]                    ; 8b 56 fc
    11887     call 0901ah                               ; e8 f2 0f
     11907    call 0907ah                               ; e8 e6 0f
    1188811908    lea ax, [di+00108h]                       ; 8d 85 08 01
    1188911909    cwd                                       ; 99
     
    1189911919    mov ax, word [bp-006h]                    ; 8b 46 fa
    1190011920    mov dx, word [bp-004h]                    ; 8b 56 fc
    11901     call 07bbch                               ; e8 71 fb
     11921    call 07c28h                               ; e8 71 fb
    1190211922    mov es, [bp-004h]                         ; 8e 46 fc
    1190311923    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1194411964    mov ax, si                                ; 89 f0
    1194511965    mov dx, word [bp-004h]                    ; 8b 56 fc
    11946     call 07bbch                               ; e8 05 fb
     11966    call 07c28h                               ; e8 05 fb
    1194711967    mov es, [bp-004h]                         ; 8e 46 fc
    1194811968    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1204812068    pop cx                                    ; 59
    1204912069    retn                                      ; c3
    12050 @ahci_read_sectors:                          ; 0xf81af LB 0x91
     12070@ahci_read_sectors:                          ; 0xf821b LB 0x91
    1205112071    push si                                   ; 56
    1205212072    push di                                   ; 57
     
    1205712077    sub di, strict byte 0000ch                ; 83 ef 0c
    1205812078    cmp di, strict byte 00004h                ; 83 ff 04
    12059     jbe short 081d3h                          ; 76 0f
     12079    jbe short 0823fh                          ; 76 0f
    1206012080    push di                                   ; 57
    1206112081    push 00bf6h                               ; 68 f6 0b
    1206212082    push 00c08h                               ; 68 08 0c
    1206312083    push strict byte 00007h                   ; 6a 07
    12064     call 018e9h                               ; e8 19 97
     12084    call 018e9h                               ; e8 ad 96
    1206512085    add sp, strict byte 00008h                ; 83 c4 08
    1206612086    les bx, [bp+008h]                         ; c4 5e 08
    1206712087    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1206812088    xor ax, ax                                ; 31 c0
    12069     call 07abfh                               ; e8 df f8
     12089    call 07b2bh                               ; e8 df f8
    1207012090    mov es, [bp+00ah]                         ; 8e 46 0a
    1207112091    add di, bx                                ; 01 df
     
    1207412094    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1207512095    xor ax, ax                                ; 31 c0
    12076     call 07faeh                               ; e8 b6 fd
     12096    call 0801ah                               ; e8 b6 fd
    1207712097    mov bx, strict word 00025h                ; bb 25 00
    1207812098    mov ax, di                                ; 89 f8
    1207912099    mov dx, word [bp+00ah]                    ; 8b 56 0a
    12080     call 07caah                               ; e8 a7 fa
     12100    call 07d16h                               ; e8 a7 fa
    1208112101    mov es, [bp+00ah]                         ; 8e 46 0a
    1208212102    mov bx, di                                ; 89 fb
     
    1209812118    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1209912119    xor ax, ax                                ; 31 c0
    12100     call 07ad3h                               ; e8 9b f8
     12120    call 07b3fh                               ; e8 9b f8
    1210112121    xor ax, ax                                ; 31 c0
    1210212122    pop bp                                    ; 5d
     
    1210412124    pop si                                    ; 5e
    1210512125    retn 00004h                               ; c2 04 00
    12106 @ahci_write_sectors:                         ; 0xf8240 LB 0x6d
     12126@ahci_write_sectors:                         ; 0xf82ac LB 0x6d
    1210712127    push si                                   ; 56
    1210812128    push bp                                   ; 55
     
    1211412134    sub bx, strict byte 0000ch                ; 83 eb 0c
    1211512135    cmp bx, strict byte 00004h                ; 83 fb 04
    12116     jbe short 08268h                          ; 76 0f
     12136    jbe short 082d4h                          ; 76 0f
    1211712137    push bx                                   ; 53
    1211812138    push 00c27h                               ; 68 27 0c
    1211912139    push 00c08h                               ; 68 08 0c
    1212012140    push strict byte 00007h                   ; 6a 07
    12121     call 018e9h                               ; e8 84 96
     12141    call 018e9h                               ; e8 18 96
    1212212142    add sp, strict byte 00008h                ; 83 c4 08
    1212312143    mov es, cx                                ; 8e c1
    1212412144    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1212512145    xor ax, ax                                ; 31 c0
    12126     call 07abfh                               ; e8 4b f8
     12146    call 07b2bh                               ; e8 4b f8
    1212712147    mov es, cx                                ; 8e c1
    1212812148    add bx, si                                ; 01 f3
     
    1213012150    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1213112151    xor ax, ax                                ; 31 c0
    12132     call 07faeh                               ; e8 26 fd
     12152    call 0801ah                               ; e8 26 fd
    1213312153    mov bx, strict word 00035h                ; bb 35 00
    1213412154    mov ax, si                                ; 89 f0
    1213512155    mov dx, cx                                ; 89 ca
    12136     call 07caah                               ; e8 18 fa
     12156    call 07d16h                               ; e8 18 fa
    1213712157    mov es, cx                                ; 8e c1
    1213812158    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     
    1214012160    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1214112161    xor ax, ax                                ; 31 c0
    12142     call 07ad3h                               ; e8 2d f8
     12162    call 07b3fh                               ; e8 2d f8
    1214312163    xor ax, ax                                ; 31 c0
    1214412164    pop bp                                    ; 5d
    1214512165    pop si                                    ; 5e
    1214612166    retn 00004h                               ; c2 04 00
    12147 ahci_cmd_packet_:                            ; 0xf82ad LB 0x16e
     12167ahci_cmd_packet_:                            ; 0xf8319 LB 0x16e
    1214812168    push si                                   ; 56
    1214912169    push di                                   ; 57
     
    1215512175    mov dx, strict word 0000eh                ; ba 0e 00
    1215612176    mov ax, strict word 00040h                ; b8 40 00
    12157     call 0161ch                               ; e8 56 93
     12177    call 0161ch                               ; e8 ea 92
    1215812178    mov si, 00122h                            ; be 22 01
    1215912179    mov word [bp-004h], ax                    ; 89 46 fc
    1216012180    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    12161     jne short 082f1h                          ; 75 1f
     12181    jne short 0835dh                          ; 75 1f
    1216212182    mov bx, 00d32h                            ; bb 32 0d
    1216312183    mov cx, ds                                ; 8c d9
    1216412184    mov ax, strict word 00004h                ; b8 04 00
    12165     call 018aeh                               ; e8 d1 95
     12185    call 018aeh                               ; e8 65 95
    1216612186    push 00c3ah                               ; 68 3a 0c
    1216712187    push 00c4ah                               ; 68 4a 0c
    1216812188    push strict byte 00004h                   ; 6a 04
    12169     call 018e9h                               ; e8 01 96
     12189    call 018e9h                               ; e8 95 95
    1217012190    add sp, strict byte 00006h                ; 83 c4 06
    1217112191    mov ax, strict word 00001h                ; b8 01 00
    12172     jmp near 08415h                           ; e9 24 01
     12192    jmp near 08481h                           ; e9 24 01
    1217312193    test byte [bp+008h], 001h                 ; f6 46 08 01
    12174     jne short 082ebh                          ; 75 f4
     12194    jne short 08357h                          ; 75 f4
    1217512195    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1217612196    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1217812198    sal ax, 1                                 ; d1 e0
    1217912199    rcl dx, 1                                 ; d1 d2
    12180     loop 08300h                               ; e2 fa
     12200    loop 0836ch                               ; e2 fa
    1218112201    mov es, [bp-004h]                         ; 8e 46 fc
    1218212202    mov word [es:si], ax                      ; 26 89 04
     
    1219012210    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1219112211    xor cx, cx                                ; 31 c9
    12192     call 08fb0h                               ; e8 83 0c
     12212    call 09010h                               ; e8 77 0c
    1219312213    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1219412214    xor di, di                                ; 31 ff
     
    1220012220    xor ax, ax                                ; 31 c0
    1220112221    mov dx, word [bp-006h]                    ; 8b 56 fa
    12202     call 07abfh                               ; e8 72 f7
     12222    call 07b2bh                               ; e8 72 f7
    1220312223    mov es, [bp-004h]                         ; 8e 46 fc
    1220412224    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1220712227    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1220812228    xor ax, ax                                ; 31 c0
    12209     call 07faeh                               ; e8 49 fc
     12229    call 0801ah                               ; e8 49 fc
    1221012230    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    1221112231    push ax                                   ; 50
     
    1221412234    mov ax, 000c0h                            ; b8 c0 00
    1221512235    mov dx, word [bp-006h]                    ; 8b 56 fa
    12216     call 09027h                               ; e8 ae 0c
     12236    call 09087h                               ; e8 a2 0c
    1221712237    mov es, [bp-004h]                         ; 8e 46 fc
    1221812238    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1222112241    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1222212242    test ax, ax                               ; 85 c0
    12223     je short 083b7h                           ; 74 27
     12243    je short 08423h                           ; 74 27
    1222412244    dec ax                                    ; 48
    1222512245    mov es, [bp-006h]                         ; 8e 46 fa
     
    1223412254    mov ax, si                                ; 89 f0
    1223512255    mov dx, word [bp-004h]                    ; 8b 56 fc
    12236     call 07caah                               ; e8 e8 f8
     12256    call 07d16h                               ; e8 e8 f8
    1223712257    les bx, [bp-00ah]                         ; c4 5e f6
    1223812258    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1225712277    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1225812278    mov dx, word [bp-008h]                    ; 8b 56 f8
    12259     call 07ad3h                               ; e8 d2 f6
     12279    call 07b3fh                               ; e8 d2 f6
    1226012280    les bx, [bp-00ah]                         ; c4 5e f6
    1226112281    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1226212282    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12263     jne short 08413h                          ; 75 05
     12283    jne short 0847fh                          ; 75 05
    1226412284    mov ax, strict word 00004h                ; b8 04 00
    12265     jmp short 08415h                          ; eb 02
     12285    jmp short 08481h                          ; eb 02
    1226612286    xor ax, ax                                ; 31 c0
    1226712287    leave                                     ; c9
     
    1226912289    pop si                                    ; 5e
    1227012290    retn 0000ch                               ; c2 0c 00
    12271 ahci_port_detect_device_:                    ; 0xf841b LB 0x3cb
     12291ahci_port_detect_device_:                    ; 0xf8487 LB 0x3cb
    1227212292    push cx                                   ; 51
    1227312293    push si                                   ; 56
     
    1227912299    movzx cx, bl                              ; 0f b6 cb
    1228012300    mov bx, cx                                ; 89 cb
    12281     call 07faeh                               ; e8 7c fb
     12301    call 0801ah                               ; e8 7c fb
    1228212302    mov dx, strict word 0000eh                ; ba 0e 00
    1228312303    mov ax, strict word 00040h                ; b8 40 00
    12284     call 0161ch                               ; e8 e1 91
     12304    call 0161ch                               ; e8 75 91
    1228512305    mov word [bp-01ah], ax                    ; 89 46 e6
    1228612306    mov si, 00122h                            ; be 22 01
     
    1235512375    mov bx, strict word 0000fh                ; bb 0f 00
    1235612376    xor cx, cx                                ; 31 c9
    12357     call 07ba1h                               ; e8 b2 f6
     12377    call 07c0dh                               ; e8 b2 f6
    1235812378    cmp ax, strict word 00003h                ; 3d 03 00
    12359     jne near 087e1h                           ; 0f 85 eb 02
     12379    jne near 0884dh                           ; 0f 85 eb 02
    1236012380    mov es, [bp-008h]                         ; 8e 46 f8
    1236112381    mov al, byte [es:si+001edh]               ; 26 8a 84 ed 01
    1236212382    mov byte [bp-004h], al                    ; 88 46 fc
    1236312383    cmp AL, strict byte 004h                  ; 3c 04
    12364     jnc near 087e1h                           ; 0f 83 da 02
     12384    jnc near 0884dh                           ; 0f 83 da 02
    1236512385    mov dx, word [bp-016h]                    ; 8b 56 ea
    1236612386    add dx, 00118h                            ; 81 c2 18 01
     
    1236912389    mov bx, strict word 00010h                ; bb 10 00
    1237012390    xor cx, cx                                ; 31 c9
    12371     call 07ae7h                               ; e8 c9 f5
     12391    call 07b53h                               ; e8 c9 f5
    1237212392    mov ax, word [bp-016h]                    ; 8b 46 ea
    1237312393    add ax, 00124h                            ; 05 24 01
     
    1239512415    add cl, 00ch                              ; 80 c1 0c
    1239612416    test dx, dx                               ; 85 d2
    12397     jne near 08733h                           ; 0f 85 d5 01
     12417    jne near 0879fh                           ; 0f 85 d5 01
    1239812418    cmp bx, 00101h                            ; 81 fb 01 01
    12399     jne near 08733h                           ; 0f 85 cd 01
     12419    jne near 0879fh                           ; 0f 85 cd 01
    1240012420    mov es, [bp-008h]                         ; 8e 46 f8
    1240112421    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1240912429    mov ax, si                                ; 89 f0
    1241012430    mov dx, word [bp-01ah]                    ; 8b 56 e6
    12411     call 07caah                               ; e8 19 f7
     12431    call 07d16h                               ; e8 19 f7
    1241212432    mov byte [bp-006h], cl                    ; 88 4e fa
    1241312433    test byte [bp-00222h], 080h               ; f6 86 de fd 80
     
    1242512445    mov word [bp-00eh], dx                    ; 89 56 f2
    1242612446    cmp dx, 00fffh                            ; 81 fa ff 0f
    12427     jne short 085d4h                          ; 75 10
     12447    jne short 08640h                          ; 75 10
    1242812448    cmp di, strict byte 0ffffh                ; 83 ff ff
    12429     jne short 085d4h                          ; 75 0b
     12449    jne short 08640h                          ; 75 0b
    1243012450    mov di, word [bp-0015ah]                  ; 8b be a6 fe
    1243112451    mov dx, word [bp-00158h]                  ; 8b 96 a8 fe
     
    1245612476    mov al, byte [bp-004h]                    ; 8a 46 fc
    1245712477    cmp AL, strict byte 001h                  ; 3c 01
    12458     jc short 0863fh                           ; 72 0c
    12459     jbe short 08647h                          ; 76 12
     12478    jc short 086abh                           ; 72 0c
     12479    jbe short 086b3h                          ; 76 12
    1246012480    cmp AL, strict byte 003h                  ; 3c 03
    12461     je short 0864fh                           ; 74 16
     12481    je short 086bbh                           ; 74 16
    1246212482    cmp AL, strict byte 002h                  ; 3c 02
    12463     je short 0864bh                           ; 74 0e
    12464     jmp short 08698h                          ; eb 59
     12483    je short 086b7h                           ; 74 0e
     12484    jmp short 08704h                          ; eb 59
    1246512485    test al, al                               ; 84 c0
    12466     jne short 08698h                          ; 75 55
     12486    jne short 08704h                          ; 75 55
    1246712487    mov DL, strict byte 040h                  ; b2 40
    12468     jmp short 08651h                          ; eb 0a
     12488    jmp short 086bdh                          ; eb 0a
    1246912489    mov DL, strict byte 048h                  ; b2 48
    12470     jmp short 08651h                          ; eb 06
     12490    jmp short 086bdh                          ; eb 06
    1247112491    mov DL, strict byte 050h                  ; b2 50
    12472     jmp short 08651h                          ; eb 02
     12492    jmp short 086bdh                          ; eb 02
    1247312493    mov DL, strict byte 058h                  ; b2 58
    1247412494    mov al, dl                                ; 88 d0
     
    1247612496    movzx bx, al                              ; 0f b6 d8
    1247712497    mov ax, bx                                ; 89 d8
    12478     call 0165ch                               ; e8 ff 8f
     12498    call 0165ch                               ; e8 93 8f
    1247912499    test al, al                               ; 84 c0
    12480     je short 08698h                           ; 74 37
     12500    je short 08704h                           ; 74 37
    1248112501    mov al, dl                                ; 88 d0
    1248212502    db  0feh, 0c0h
    1248312503    ; inc al                                    ; fe c0
    1248412504    xor ah, ah                                ; 30 e4
    12485     call 0165ch                               ; e8 f2 8f
     12505    call 0165ch                               ; e8 86 8f
    1248612506    xor ah, ah                                ; 30 e4
    1248712507    mov cx, ax                                ; 89 c1
    1248812508    sal cx, 008h                              ; c1 e1 08
    1248912509    movzx ax, dl                              ; 0f b6 c2
    12490     call 0165ch                               ; e8 e5 8f
     12510    call 0165ch                               ; e8 79 8f
    1249112511    xor ah, ah                                ; 30 e4
    1249212512    add ax, cx                                ; 01 c8
     
    1249512515    add AL, strict byte 002h                  ; 04 02
    1249612516    xor ah, ah                                ; 30 e4
    12497     call 0165ch                               ; e8 d5 8f
     12517    call 0165ch                               ; e8 69 8f
    1249812518    xor ah, ah                                ; 30 e4
    1249912519    mov word [bp-022h], ax                    ; 89 46 de
    1250012520    mov ax, bx                                ; 89 d8
    12501     call 0165ch                               ; e8 cb 8f
     12521    call 0165ch                               ; e8 5f 8f
    1250212522    xor ah, ah                                ; 30 e4
    1250312523    mov word [bp-01eh], ax                    ; 89 46 e2
    12504     jmp short 086a5h                          ; eb 0d
     12524    jmp short 08711h                          ; eb 0d
    1250512525    mov bx, di                                ; 89 fb
    1250612526    mov cx, word [bp-00eh]                    ; 8b 4e f2
    1250712527    mov dx, ss                                ; 8c d2
    1250812528    lea ax, [bp-022h]                         ; 8d 46 de
    12509     call 052a4h                               ; e8 ff cb
     12529    call 0529eh                               ; e8 8d cb
    1251012530    mov bx, 00d32h                            ; bb 32 0d
    1251112531    mov cx, ds                                ; 8c d9
    1251212532    mov ax, strict word 00004h                ; b8 04 00
    12513     call 018aeh                               ; e8 fe 91
     12533    call 018aeh                               ; e8 92 91
    1251412534    push word [bp-00eh]                       ; ff 76 f2
    1251512535    push di                                   ; 57
     
    1252812548    push 00c6ah                               ; 68 6a 0c
    1252912549    push strict byte 00004h                   ; 6a 04
    12530     call 018e9h                               ; e8 10 92
     12550    call 018e9h                               ; e8 a4 91
    1253112551    add sp, strict byte 00018h                ; 83 c4 18
    1253212552    movzx di, byte [bp-006h]                  ; 0f b6 7e fa
     
    1255612576    mov dx, strict word 00075h                ; ba 75 00
    1255712577    mov ax, strict word 00040h                ; b8 40 00
    12558     call 01600h                               ; e8 de 8e
     12578    call 01600h                               ; e8 72 8e
    1255912579    db  0feh, 0c0h
    1256012580    ; inc al                                    ; fe c0
     
    1256212582    mov dx, strict word 00075h                ; ba 75 00
    1256312583    mov ax, strict word 00040h                ; b8 40 00
    12564     call 0160eh                               ; e8 de 8e
    12565     jmp near 087d0h                           ; e9 9d 00
     12584    call 0160eh                               ; e8 72 8e
     12585    jmp near 0883ch                           ; e9 9d 00
    1256612586    cmp dx, 0eb14h                            ; 81 fa 14 eb
    12567     jne near 087d0h                           ; 0f 85 95 00
     12587    jne near 0883ch                           ; 0f 85 95 00
    1256812588    cmp bx, 00101h                            ; 81 fb 01 01
    12569     jne near 087d0h                           ; 0f 85 8d 00
     12589    jne near 0883ch                           ; 0f 85 8d 00
    1257012590    mov es, [bp-008h]                         ; 8e 46 f8
    1257112591    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1257912599    mov ax, si                                ; 89 f0
    1258012600    mov dx, word [bp-01ah]                    ; 8b 56 e6
    12581     call 07caah                               ; e8 3c f5
     12601    call 07d16h                               ; e8 3c f5
    1258212602    test byte [bp-00222h], 080h               ; f6 86 de fd 80
    1258312603    db  00fh, 095h, 0c0h
     
    1261912639    pop cx                                    ; 59
    1262012640    retn                                      ; c3
    12621 ahci_mem_alloc_:                             ; 0xf87e6 LB 0x40
     12641ahci_mem_alloc_:                             ; 0xf8852 LB 0x40
    1262212642    push bx                                   ; 53
    1262312643    push cx                                   ; 51
     
    1262912649    mov dx, 00413h                            ; ba 13 04
    1263012650    xor ax, ax                                ; 31 c0
    12631     call 0161ch                               ; e8 26 8e
     12651    call 0161ch                               ; e8 ba 8d
    1263212652    test ax, ax                               ; 85 c0
    12633     je short 0881fh                           ; 74 25
     12653    je short 0888bh                           ; 74 25
    1263412654    dec ax                                    ; 48
    1263512655    mov bx, ax                                ; 89 c3
     
    1263812658    sal ax, 1                                 ; d1 e0
    1263912659    rcl dx, 1                                 ; d1 d2
    12640     loop 08802h                               ; e2 fa
     12660    loop 0886eh                               ; e2 fa
    1264112661    mov si, ax                                ; 89 c6
    1264212662    mov di, dx                                ; 89 d7
     
    1264412664    shr di, 1                                 ; d1 ef
    1264512665    rcr si, 1                                 ; d1 de
    12646     loop 0880fh                               ; e2 fa
     12666    loop 0887bh                               ; e2 fa
    1264712667    mov dx, 00413h                            ; ba 13 04
    1264812668    xor ax, ax                                ; 31 c0
    12649     call 0162ah                               ; e8 0d 8e
     12669    call 0162ah                               ; e8 a1 8d
    1265012670    mov ax, si                                ; 89 f0
    1265112671    pop bp                                    ; 5d
     
    1265612676    pop bx                                    ; 5b
    1265712677    retn                                      ; c3
    12658 ahci_hba_init_:                              ; 0xf8826 LB 0x120
     12678ahci_hba_init_:                              ; 0xf8892 LB 0x120
    1265912679    push bx                                   ; 53
    1266012680    push cx                                   ; 51
     
    1266612686    mov dx, strict word 0000eh                ; ba 0e 00
    1266712687    mov ax, strict word 00040h                ; b8 40 00
    12668     call 0161ch                               ; e8 e2 8d
     12688    call 0161ch                               ; e8 76 8d
    1266912689    mov bx, 00122h                            ; bb 22 01
    1267012690    mov word [bp-006h], ax                    ; 89 46 fa
     
    1268312703    shr eax, 010h                             ; 66 c1 e8 10
    1268412704    xchg dx, ax                               ; 92
    12685     call 087e6h                               ; e8 87 ff
     12705    call 08852h                               ; e8 87 ff
    1268612706    mov di, ax                                ; 89 c7
    1268712707    test ax, ax                               ; 85 c0
    12688     je near 08928h                            ; 0f 84 c1 00
     12708    je near 08994h                            ; 0f 84 c1 00
    1268912709    mov es, [bp-006h]                         ; 8e 46 fa
    1269012710    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1270012720    mov dx, strict word 00004h                ; ba 04 00
    1270112721    mov ax, si                                ; 89 f0
    12702     call 07ae7h                               ; e8 4c f2
     12722    call 07b53h                               ; e8 4c f2
    1270312723    mov ax, strict word 00004h                ; b8 04 00
    1270412724    xor cx, cx                                ; 31 c9
     
    1271712737    xchg dx, ax                               ; 92
    1271812738    test AL, strict byte 001h                 ; a8 01
    12719     jne short 0889bh                          ; 75 de
     12739    jne short 08907h                          ; 75 de
    1272012740    xor ax, ax                                ; 31 c0
    1272112741    xor cx, cx                                ; 31 c9
     
    1273512755    mov bx, strict word 0001fh                ; bb 1f 00
    1273612756    xor cx, cx                                ; 31 c9
    12737     call 07ba1h                               ; e8 c0 f2
     12757    call 07c0dh                               ; e8 c0 f2
    1273812758    db  0feh, 0c0h
    1273912759    ; inc al                                    ; fe c0
    1274012760    mov byte [bp-004h], al                    ; 88 46 fc
    1274112761    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    12742     jmp short 088f5h                          ; eb 09
     12762    jmp short 08961h                          ; eb 09
    1274312763    inc byte [bp-002h]                        ; fe 46 fe
    1274412764    cmp byte [bp-002h], 020h                  ; 80 7e fe 20
    12745     jnc short 08926h                          ; 73 31
     12765    jnc short 08992h                          ; 73 31
    1274612766    movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
    1274712767    mov ax, strict word 00001h                ; b8 01 00
    1274812768    xor dx, dx                                ; 31 d2
    12749     jcxz 08906h                               ; e3 06
     12769    jcxz 08972h                               ; e3 06
    1275012770    sal ax, 1                                 ; d1 e0
    1275112771    rcl dx, 1                                 ; d1 d2
    12752     loop 08900h                               ; e2 fa
     12772    loop 0896ch                               ; e2 fa
    1275312773    mov bx, ax                                ; 89 c3
    1275412774    mov cx, dx                                ; 89 d1
    1275512775    mov dx, strict word 0000ch                ; ba 0c 00
    1275612776    mov ax, si                                ; 89 f0
    12757     call 07b6bh                               ; e8 59 f2
     12777    call 07bd7h                               ; e8 59 f2
    1275812778    test al, al                               ; 84 c0
    12759     je short 088ech                           ; 74 d6
     12779    je short 08958h                           ; 74 d6
    1276012780    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    1276112781    xor ax, ax                                ; 31 c0
    1276212782    mov dx, di                                ; 89 fa
    12763     call 0841bh                               ; e8 fa fa
     12783    call 08487h                               ; e8 fa fa
    1276412784    dec byte [bp-004h]                        ; fe 4e fc
    12765     jne short 088ech                          ; 75 c6
     12785    jne short 08958h                          ; 75 c6
    1276612786    xor ax, ax                                ; 31 c0
    1276712787    leave                                     ; c9
     
    1277212792    pop bx                                    ; 5b
    1277312793    retn                                      ; c3
    12774     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 013h, 08ah, 0f1h, 089h, 0f7h, 089h, 0fdh, 089h, 003h
    12775     db  08ah, 009h, 08ah, 00fh, 08ah, 013h, 08ah
    12776 _ahci_init:                                  ; 0xf8946 LB 0xf9
     12794    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 07fh, 08ah, 05dh, 08ah, 063h, 08ah, 069h, 08ah, 06fh
     12795    db  08ah, 075h, 08ah, 07bh, 08ah, 07fh, 08ah
     12796_ahci_init:                                  ; 0xf89b2 LB 0xf9
    1277712797    push si                                   ; 56
    1277812798    push di                                   ; 57
     
    1278012800    mov ax, 00601h                            ; b8 01 06
    1278112801    mov dx, strict word 00001h                ; ba 01 00
    12782     call 08e38h                               ; e8 e3 04
     12802    call 08ea4h                               ; e8 e3 04
    1278312803    mov dx, ax                                ; 89 c2
    1278412804    cmp ax, strict word 0ffffh                ; 3d ff ff
    12785     je near 08a3bh                            ; 0f 84 dd 00
     12805    je near 08aa7h                            ; 0f 84 dd 00
    1278612806    xor al, al                                ; 30 c0
    1278712807    shr ax, 008h                              ; c1 e8 08
     
    1279112811    xor ah, ah                                ; 30 e4
    1279212812    mov bx, strict word 00034h                ; bb 34 00
    12793     call 08e60h                               ; e8 ed 04
     12813    call 08ecch                               ; e8 ed 04
    1279412814    mov cl, al                                ; 88 c1
    1279512815    test cl, cl                               ; 84 c9
    12796     je short 0899ch                           ; 74 23
     12816    je short 08a08h                           ; 74 23
    1279712817    movzx bx, cl                              ; 0f b6 d9
    1279812818    movzx di, byte [bp-004h]                  ; 0f b6 7e fc
     
    1280012820    mov dx, di                                ; 89 fa
    1280112821    mov ax, si                                ; 89 f0
    12802     call 08e60h                               ; e8 d5 04
     12822    call 08ecch                               ; e8 d5 04
    1280312823    cmp AL, strict byte 012h                  ; 3c 12
    12804     je short 0899ch                           ; 74 0d
     12824    je short 08a08h                           ; 74 0d
    1280512825    mov al, cl                                ; 88 c8
    1280612826    db  0feh, 0c0h
     
    1280912829    mov dx, di                                ; 89 fa
    1281012830    mov ax, si                                ; 89 f0
    12811     jmp short 08970h                          ; eb d4
     12831    jmp short 089dch                          ; eb d4
    1281212832    test cl, cl                               ; 84 c9
    12813     je near 08a3bh                            ; 0f 84 99 00
     12833    je near 08aa7h                            ; 0f 84 99 00
    1281412834    add cl, 002h                              ; 80 c1 02
    1281512835    movzx bx, cl                              ; 0f b6 d9
     
    1281812838    mov dx, di                                ; 89 fa
    1281912839    mov ax, si                                ; 89 f0
    12820     call 08e60h                               ; e8 a9 04
     12840    call 08ecch                               ; e8 a9 04
    1282112841    cmp AL, strict byte 010h                  ; 3c 10
    12822     jne near 08a3bh                           ; 0f 85 7e 00
     12842    jne near 08aa7h                           ; 0f 85 7e 00
    1282312843    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    1282412844    mov al, cl                                ; 88 c8
     
    1282712847    mov dx, di                                ; 89 fa
    1282812848    mov ax, si                                ; 89 f0
    12829     call 08e81h                               ; e8 b2 04
     12849    call 08eedh                               ; e8 b2 04
    1283012850    mov dx, ax                                ; 89 c2
    1283112851    and ax, strict word 0000fh                ; 25 0f 00
    1283212852    sub ax, strict word 00004h                ; 2d 04 00
    1283312853    cmp ax, strict word 0000bh                ; 3d 0b 00
    12834     jnbe short 08a13h                         ; 77 37
     12854    jnbe short 08a7fh                         ; 77 37
    1283512855    push CS                                   ; 0e
    1283612856    pop ES                                    ; 07
    1283712857    mov cx, strict word 00008h                ; b9 08 00
    12838     mov di, 0892fh                            ; bf 2f 89
     12858    mov di, 0899bh                            ; bf 9b 89
    1283912859    repne scasb                               ; f2 ae
    1284012860    sal cx, 1                                 ; d1 e1
    1284112861    mov di, cx                                ; 89 cf
    12842     mov ax, word [cs:di-076cah]               ; 2e 8b 85 36 89
     12862    mov ax, word [cs:di-0765eh]               ; 2e 8b 85 a2 89
    1284312863    jmp ax                                    ; ff e0
    1284412864    mov byte [bp-002h], 010h                  ; c6 46 fe 10
    12845     jmp short 08a13h                          ; eb 1c
     12865    jmp short 08a7fh                          ; eb 1c
    1284612866    mov byte [bp-002h], 014h                  ; c6 46 fe 14
    12847     jmp short 08a13h                          ; eb 16
     12867    jmp short 08a7fh                          ; eb 16
    1284812868    mov byte [bp-002h], 018h                  ; c6 46 fe 18
    12849     jmp short 08a13h                          ; eb 10
     12869    jmp short 08a7fh                          ; eb 10
    1285012870    mov byte [bp-002h], 01ch                  ; c6 46 fe 1c
    12851     jmp short 08a13h                          ; eb 0a
     12871    jmp short 08a7fh                          ; eb 0a
    1285212872    mov byte [bp-002h], 020h                  ; c6 46 fe 20
    12853     jmp short 08a13h                          ; eb 04
     12873    jmp short 08a7fh                          ; eb 04
    1285412874    mov byte [bp-002h], 024h                  ; c6 46 fe 24
    1285512875    mov si, dx                                ; 89 d6
     
    1285812878    mov al, byte [bp-002h]                    ; 8a 46 fe
    1285912879    test al, al                               ; 84 c0
    12860     je short 08a3bh                           ; 74 19
     12880    je short 08aa7h                           ; 74 19
    1286112881    movzx bx, al                              ; 0f b6 d8
    1286212882    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    1286312883    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    12864     call 08ea0h                               ; e8 70 04
     12884    call 08f0ch                               ; e8 70 04
    1286512885    test AL, strict byte 001h                 ; a8 01
    12866     je short 08a3bh                           ; 74 07
     12886    je short 08aa7h                           ; 74 07
    1286712887    and AL, strict byte 0f0h                  ; 24 f0
    1286812888    add ax, si                                ; 01 f0
    12869     call 08826h                               ; e8 eb fd
     12889    call 08892h                               ; e8 eb fd
    1287012890    leave                                     ; c9
    1287112891    pop di                                    ; 5f
    1287212892    pop si                                    ; 5e
    1287312893    retn                                      ; c3
    12874 apm_out_str_:                                ; 0xf8a3f LB 0x36
     12894apm_out_str_:                                ; 0xf8aab LB 0x36
    1287512895    push bx                                   ; 53
    1287612896    push bp                                   ; 55
     
    1287812898    mov bx, ax                                ; 89 c3
    1287912899    cmp byte [bx], 000h                       ; 80 3f 00
    12880     je short 08a54h                           ; 74 0a
     12900    je short 08ac0h                           ; 74 0a
    1288112901    mov al, byte [bx]                         ; 8a 07
    1288212902    out DX, AL                                ; ee
     
    1288512905    db  00ah, 0c0h
    1288612906    ; or al, al                                 ; 0a c0
    12887     jne short 08a4ch                          ; 75 f8
     12907    jne short 08ab8h                          ; 75 f8
    1288812908    pop bp                                    ; 5d
    1288912909    pop bx                                    ; 5b
    1289012910    retn                                      ; c3
    12891     db  098h, 08ah, 067h, 08bh, 0aah, 08ah, 0c5h, 08ah, 067h, 08bh, 0f0h, 08ah, 067h, 08bh, 0f5h, 08ah
    12892     db  03ch, 08bh, 03ch, 08bh, 03ch, 08bh, 037h, 08bh, 03ch, 08bh, 03ch, 08bh, 02fh, 08bh
    12893 _apm_function:                               ; 0xf8a75 LB 0xf5
     12911    add AL, strict byte 08bh                  ; 04 8b
     12912    ror word [bp+di-074eah], CL               ; d3 8b 16 8b
     12913    xor word [bp+di-0742dh], cx               ; 31 8b d3 8b
     12914    pop sp                                    ; 5c
     12915    db  08bh, 0d3h
     12916    ; mov dx, bx                                ; 8b d3
     12917    mov sp, word [bx+di-075h]                 ; 8b 61 8b
     12918    test AL, strict byte 08bh                 ; a8 8b
     12919    test AL, strict byte 08bh                 ; a8 8b
     12920    test AL, strict byte 08bh                 ; a8 8b
     12921    mov word [0a88bh], ax                     ; a3 8b a8
     12922    mov bp, word [bx+si-06475h]               ; 8b a8 8b 9b
     12923    db  08bh
     12924_apm_function:                               ; 0xf8ae1 LB 0xf5
    1289412925    push si                                   ; 56
    1289512926    push bp                                   ; 55
     
    1289912930    xor ah, ah                                ; 30 e4
    1290012931    cmp ax, strict word 0000eh                ; 3d 0e 00
    12901     jnbe near 08b3ch                          ; 0f 87 b3 00
     12932    jnbe near 08ba8h                          ; 0f 87 b3 00
    1290212933    mov bx, ax                                ; 89 c3
    1290312934    add bx, ax                                ; 01 c3
    1290412935    mov dx, word [bp+01ah]                    ; 8b 56 1a
    1290512936    or dl, 001h                               ; 80 ca 01
    12906     jmp word [cs:bx-075a9h]                   ; 2e ff a7 57 8a
     12937    jmp word [cs:bx-0753dh]                   ; 2e ff a7 c3 8a
    1290712938    mov word [bp+014h], 00102h                ; c7 46 14 02 01
    1290812939    mov word [bp+00eh], 0504dh                ; c7 46 0e 4d 50
     
    1291212943    retn                                      ; c3
    1291312944    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    12914     mov word [bp+00eh], 09094h                ; c7 46 0e 94 90
     12945    mov word [bp+00eh], 090f4h                ; c7 46 0e f4 90
    1291512946    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1291612947    mov ax, strict word 0fff0h                ; b8 f0 ff
     
    1294112972    retn                                      ; c3
    1294212973    cmp word [bp+012h], strict byte 00003h    ; 83 7e 12 03
    12943     je short 08b1bh                           ; 74 20
     12974    je short 08b87h                           ; 74 20
    1294412975    cmp word [bp+012h], strict byte 00002h    ; 83 7e 12 02
    12945     je short 08b13h                           ; 74 12
     12976    je short 08b7fh                           ; 74 12
    1294612977    cmp word [bp+012h], strict byte 00001h    ; 83 7e 12 01
    12947     jne short 08b23h                          ; 75 1c
     12978    jne short 08b8fh                          ; 75 1c
    1294812979    mov dx, 08900h                            ; ba 00 89
    1294912980    mov ax, 00ca2h                            ; b8 a2 0c
    12950     call 08a3fh                               ; e8 2f ff
     12981    call 08aabh                               ; e8 2f ff
    1295112982    pop bp                                    ; 5d
    1295212983    pop si                                    ; 5e
     
    1295412985    mov dx, 08900h                            ; ba 00 89
    1295512986    mov ax, 00caah                            ; b8 aa 0c
    12956     jmp short 08b0dh                          ; eb f2
     12987    jmp short 08b79h                          ; eb f2
    1295712988    mov dx, 08900h                            ; ba 00 89
    1295812989    mov ax, 00cb2h                            ; b8 b2 0c
    12959     jmp short 08b0dh                          ; eb ea
     12990    jmp short 08b79h                          ; eb ea
    1296012991    or ah, 00ah                               ; 80 cc 0a
    1296112992    mov word [bp+014h], ax                    ; 89 46 14
     
    1296913000    retn                                      ; c3
    1297013001    or ah, 080h                               ; 80 cc 80
    12971     jmp short 08b26h                          ; eb ea
     13002    jmp short 08b92h                          ; eb ea
    1297213003    mov bx, 00d32h                            ; bb 32 0d
    1297313004    mov cx, ds                                ; 8c d9
    1297413005    mov ax, strict word 00004h                ; b8 04 00
    12975     call 018aeh                               ; e8 67 8d
     13006    call 018aeh                               ; e8 fb 8c
    1297613007    push word [bp+00eh]                       ; ff 76 0e
    1297713008    push word [bp+014h]                       ; ff 76 14
    1297813009    push 00cbbh                               ; 68 bb 0c
    1297913010    push strict byte 00004h                   ; 6a 04
    12980     call 018e9h                               ; e8 94 8d
     13011    call 018e9h                               ; e8 28 8d
    1298113012    add sp, strict byte 00008h                ; 83 c4 08
    1298213013    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1298813019    pop si                                    ; 5e
    1298913020    retn                                      ; c3
    12990 pci16_select_reg_:                           ; 0xf8b6a LB 0x21
     13021pci16_select_reg_:                           ; 0xf8bd6 LB 0x21
    1299113022    push bx                                   ; 53
    1299213023    push bp                                   ; 55
     
    1300413035    pop bx                                    ; 5b
    1300513036    retn                                      ; c3
    13006 pci16_find_device_:                          ; 0xf8b8b LB 0xf2
     13037pci16_find_device_:                          ; 0xf8bf7 LB 0xf2
    1300713038    push si                                   ; 56
    1300813039    push di                                   ; 57
     
    1301613047    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1301713048    test bl, 007h                             ; f6 c3 07
    13018     jne short 08bd1h                          ; 75 2d
     13049    jne short 08c3dh                          ; 75 2d
    1301913050    mov dx, strict word 0000eh                ; ba 0e 00
    1302013051    mov ax, bx                                ; 89 d8
    13021     call 08b6ah                               ; e8 be ff
     13052    call 08bd6h                               ; e8 be ff
    1302213053    mov dx, 00cfeh                            ; ba fe 0c
    1302313054    in AL, DX                                 ; ec
     
    1302613057    mov byte [bp-002h], al                    ; 88 46 fe
    1302713058    cmp AL, strict byte 0ffh                  ; 3c ff
    13028     jne short 08bbfh                          ; 75 06
     13059    jne short 08c2bh                          ; 75 06
    1302913060    add bx, strict byte 00008h                ; 83 c3 08
    13030     jmp near 08c52h                           ; e9 93 00
     13061    jmp near 08cbeh                           ; e9 93 00
    1303113062    test byte [bp-002h], 080h                 ; f6 46 fe 80
    13032     je short 08bcch                           ; 74 07
     13063    je short 08c38h                           ; 74 07
    1303313064    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    13034     jmp short 08bd1h                          ; eb 05
     13065    jmp short 08c3dh                          ; eb 05
    1303513066    mov word [bp-006h], strict word 00008h    ; c7 46 fa 08 00
    1303613067    mov al, byte [bp-002h]                    ; 8a 46 fe
    1303713068    and AL, strict byte 007h                  ; 24 07
    1303813069    cmp AL, strict byte 001h                  ; 3c 01
    13039     jne short 08bf9h                          ; 75 1f
     13070    jne short 08c65h                          ; 75 1f
    1304013071    mov ax, bx                                ; 89 d8
    1304113072    shr ax, 008h                              ; c1 e8 08
    1304213073    test ax, ax                               ; 85 c0
    13043     jne short 08bf9h                          ; 75 16
     13074    jne short 08c65h                          ; 75 16
    1304413075    mov dx, strict word 0001ah                ; ba 1a 00
    1304513076    mov ax, bx                                ; 89 d8
    13046     call 08b6ah                               ; e8 7f ff
     13077    call 08bd6h                               ; e8 7f ff
    1304713078    mov dx, 00cfeh                            ; ba fe 0c
    1304813079    in AL, DX                                 ; ec
     
    1305013081    ; sub ah, ah                                ; 2a e4
    1305113082    cmp al, byte [bp-004h]                    ; 3a 46 fc
    13052     jbe short 08bf9h                          ; 76 03
     13083    jbe short 08c65h                          ; 76 03
    1305313084    mov byte [bp-004h], al                    ; 88 46 fc
    1305413085    test di, di                               ; 85 ff
    13055     je short 08c02h                           ; 74 05
     13086    je short 08c6eh                           ; 74 05
    1305613087    mov dx, strict word 00008h                ; ba 08 00
    13057     jmp short 08c04h                          ; eb 02
     13088    jmp short 08c70h                          ; eb 02
    1305813089    xor dx, dx                                ; 31 d2
    1305913090    mov ax, bx                                ; 89 d8
    13060     call 08b6ah                               ; e8 61 ff
     13091    call 08bd6h                               ; e8 61 ff
    1306113092    mov dx, 00cfch                            ; ba fc 0c
    1306213093    in eax, DX                                ; 66 ed
     
    1306913100    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1307013101    test di, di                               ; 85 ff
    13071     je short 08c33h                           ; 74 0f
     13102    je short 08c9fh                           ; 74 0f
    1307213103    mov cx, strict word 00008h                ; b9 08 00
    1307313104    shr dx, 1                                 ; d1 ea
    1307413105    rcr ax, 1                                 ; d1 d8
    13075     loop 08c27h                               ; e2 fa
     13106    loop 08c93h                               ; e2 fa
    1307613107    mov word [bp-00ah], ax                    ; 89 46 f6
    1307713108    mov word [bp-008h], dx                    ; 89 56 f8
    1307813109    mov ax, word [bp-008h]                    ; 8b 46 f8
    1307913110    cmp ax, word [bp-010h]                    ; 3b 46 f0
    13080     jne short 08c43h                          ; 75 08
     13111    jne short 08cafh                          ; 75 08
    1308113112    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1308213113    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    13083     je short 08c49h                           ; 74 06
     13114    je short 08cb5h                           ; 74 06
    1308413115    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    13085     je short 08c4fh                           ; 74 06
     13116    je short 08cbbh                           ; 74 06
    1308613117    dec si                                    ; 4e
    1308713118    cmp si, strict byte 0ffffh                ; 83 fe ff
    13088     je short 08c61h                           ; 74 12
     13119    je short 08ccdh                           ; 74 12
    1308913120    add bx, word [bp-006h]                    ; 03 5e fa
    1309013121    mov dx, bx                                ; 89 da
     
    1309213123    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1309313124    cmp dx, ax                                ; 39 c2
    13094     jbe near 08b9fh                           ; 0f 86 3e ff
     13125    jbe near 08c0bh                           ; 0f 86 3e ff
    1309513126    cmp si, strict byte 0ffffh                ; 83 fe ff
    13096     jne short 08c6ah                          ; 75 04
     13127    jne short 08cd6h                          ; 75 04
    1309713128    mov ax, bx                                ; 89 d8
    13098     jmp short 08c6dh                          ; eb 03
     13129    jmp short 08cd9h                          ; eb 03
    1309913130    mov ax, strict word 0ffffh                ; b8 ff ff
    1310013131    leave                                     ; c9
     
    1310213133    pop si                                    ; 5e
    1310313134    retn                                      ; c3
    13104     pop bp                                    ; 5d
    13105     lea si, [bx-073h]                         ; 8d 77 8d
    13106     mov cl, byte [di-07261h]                  ; 8a 8d 9f 8d
    13107     mov DL, strict byte 08dh                  ; b2 8d
    13108     db  0c4h
    13109     db  08dh
    13110 _pci16_function:                             ; 0xf8c7d LB 0x1bb
     13135    db  0c9h, 08dh, 0e3h, 08dh, 0f6h, 08dh, 00bh, 08eh, 01eh, 08eh, 030h, 08eh
     13136_pci16_function:                             ; 0xf8ce9 LB 0x1bb
    1311113137    push si                                   ; 56
    1311213138    push di                                   ; 57
     
    1312013146    xor ah, ah                                ; 30 e4
    1312113147    cmp bx, strict byte 00003h                ; 83 fb 03
    13122     jc short 08cb4h                           ; 72 1a
    13123     jbe short 08d0ch                          ; 76 70
     13148    jc short 08d20h                           ; 72 1a
     13149    jbe short 08d78h                          ; 76 70
    1312413150    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13125     je near 08dd8h                            ; 0f 84 35 01
     13151    je near 08e44h                            ; 0f 84 35 01
    1312613152    cmp bx, strict byte 00008h                ; 83 fb 08
    13127     jc near 08e07h                            ; 0f 82 5d 01
     13153    jc near 08e73h                            ; 0f 82 5d 01
    1312813154    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13129     jbe near 08d31h                           ; 0f 86 80 00
    13130     jmp near 08e07h                           ; e9 53 01
     13155    jbe near 08d9dh                           ; 0f 86 80 00
     13156    jmp near 08e73h                           ; e9 53 01
    1313113157    cmp bx, strict byte 00002h                ; 83 fb 02
    13132     je short 08cdch                           ; 74 23
     13158    je short 08d48h                           ; 74 23
    1313313159    cmp bx, strict byte 00001h                ; 83 fb 01
    13134     jne near 08e07h                           ; 0f 85 47 01
     13160    jne near 08e73h                           ; 0f 85 47 01
    1313513161    mov word [bp+024h], strict word 00001h    ; c7 46 24 01 00
    1313613162    mov word [bp+018h], 00210h                ; c7 46 18 10 02
     
    1313813164    mov word [bp+01ch], 04350h                ; c7 46 1c 50 43
    1313913165    mov word [bp+01eh], 02049h                ; c7 46 1e 49 20
    13140     jmp near 08e34h                           ; e9 58 01
     13166    jmp near 08ea0h                           ; e9 58 01
    1314113167    cmp word [bp+01ch], strict byte 0ffffh    ; 83 7e 1c ff
    13142     jne short 08ce8h                          ; 75 06
     13168    jne short 08d54h                          ; 75 06
    1314313169    or ah, 083h                               ; 80 cc 83
    13144     jmp near 08e2dh                           ; e9 45 01
     13170    jmp near 08e99h                           ; e9 45 01
    1314513171    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    1314613172    mov dx, word [bp+020h]                    ; 8b 56 20
    1314713173    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1314813174    xor cx, cx                                ; 31 c9
    13149     call 08b8bh                               ; e8 95 fe
     13175    call 08bf7h                               ; e8 95 fe
    1315013176    cmp ax, strict word 0ffffh                ; 3d ff ff
    13151     jne short 08d06h                          ; 75 0b
     13177    jne short 08d72h                          ; 75 0b
    1315213178    mov ax, word [bp+024h]                    ; 8b 46 24
    1315313179    xor ah, ah                                ; 30 e4
    1315413180    or ah, 086h                               ; 80 cc 86
    13155     jmp near 08e2dh                           ; e9 27 01
     13181    jmp near 08e99h                           ; e9 27 01
    1315613182    mov word [bp+018h], ax                    ; 89 46 18
    13157     jmp near 08e34h                           ; e9 28 01
     13183    jmp near 08ea0h                           ; e9 28 01
    1315813184    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    1315913185    mov ax, word [bp+020h]                    ; 8b 46 20
    1316013186    mov dx, word [bp+022h]                    ; 8b 56 22
    1316113187    mov cx, strict word 00001h                ; b9 01 00
    13162     call 08b8bh                               ; e8 70 fe
     13188    call 08bf7h                               ; e8 70 fe
    1316313189    cmp ax, strict word 0ffffh                ; 3d ff ff
    13164     jne short 08d2bh                          ; 75 0b
     13190    jne short 08d97h                          ; 75 0b
    1316513191    mov ax, word [bp+024h]                    ; 8b 46 24
    1316613192    xor ah, ah                                ; 30 e4
    1316713193    or ah, 086h                               ; 80 cc 86
    13168     jmp near 08e2dh                           ; e9 02 01
     13194    jmp near 08e99h                           ; e9 02 01
    1316913195    mov word [bp+018h], ax                    ; 89 46 18
    13170     jmp near 08e34h                           ; e9 03 01
     13196    jmp near 08ea0h                           ; e9 03 01
    1317113197    cmp word [bp+008h], 00100h                ; 81 7e 08 00 01
    13172     jc short 08d3eh                           ; 72 06
     13198    jc short 08daah                           ; 72 06
    1317313199    or ah, 087h                               ; 80 cc 87
    13174     jmp near 08e2dh                           ; e9 ef 00
     13200    jmp near 08e99h                           ; e9 ef 00
    1317513201    mov dx, word [bp+008h]                    ; 8b 56 08
    1317613202    mov ax, word [bp+018h]                    ; 8b 46 18
    13177     call 08b6ah                               ; e8 23 fe
     13203    call 08bd6h                               ; e8 23 fe
    1317813204    mov bx, word [bp+024h]                    ; 8b 5e 24
    1317913205    xor bh, bh                                ; 30 ff
    1318013206    sub bx, strict byte 00008h                ; 83 eb 08
    1318113207    cmp bx, strict byte 00005h                ; 83 fb 05
    13182     jnbe near 08e34h                          ; 0f 87 de 00
     13208    jnbe near 08ea0h                          ; 0f 87 de 00
    1318313209    add bx, bx                                ; 01 db
    13184     jmp word [cs:bx-0738fh]                   ; 2e ff a7 71 8c
     13210    jmp word [cs:bx-07323h]                   ; 2e ff a7 dd 8c
    1318513211    mov bx, word [bp+020h]                    ; 8b 5e 20
    1318613212    xor bl, bl                                ; 30 db
     
    1319313219    or bx, ax                                 ; 09 c3
    1319413220    mov word [bp+020h], bx                    ; 89 5e 20
    13195     jmp near 08e34h                           ; e9 bd 00
     13221    jmp near 08ea0h                           ; e9 bd 00
    1319613222    mov dx, word [bp+008h]                    ; 8b 56 08
    1319713223    xor dh, dh                                ; 30 f6
     
    1320013226    in ax, DX                                 ; ed
    1320113227    mov word [bp+020h], ax                    ; 89 46 20
    13202     jmp near 08e34h                           ; e9 aa 00
     13228    jmp near 08ea0h                           ; e9 aa 00
    1320313229    mov dx, 00cfch                            ; ba fc 0c
    1320413230    in eax, DX                                ; 66 ed
     
    1320913235    mov word [bp+020h], ax                    ; 89 46 20
    1321013236    mov word [bp+022h], dx                    ; 89 56 22
    13211     jmp near 08e34h                           ; e9 95 00
     13237    jmp near 08ea0h                           ; e9 95 00
    1321213238    mov ax, word [bp+020h]                    ; 8b 46 20
    1321313239    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1321613242    add dx, 00cfch                            ; 81 c2 fc 0c
    1321713243    out DX, AL                                ; ee
    13218     jmp near 08e34h                           ; e9 82 00
     13244    jmp near 08ea0h                           ; e9 82 00
    1321913245    mov ax, word [bp+020h]                    ; 8b 46 20
    1322013246    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1322313249    add dx, 00cfch                            ; 81 c2 fc 0c
    1322413250    out DX, ax                                ; ef
    13225     jmp short 08e34h                          ; eb 70
     13251    jmp short 08ea0h                          ; eb 70
    1322613252    mov ax, word [bp+020h]                    ; 8b 46 20
    1322713253    mov cx, word [bp+022h]                    ; 8b 4e 22
     
    1323213258    ; mov ax, cx                                ; 8b c1
    1323313259    out DX, eax                               ; 66 ef
    13234     jmp short 08e34h                          ; eb 5c
     13260    jmp short 08ea0h                          ; eb 5c
    1323513261    mov bx, word [bp+008h]                    ; 8b 5e 08
    1323613262    mov es, [bp+028h]                         ; 8e 46 28
    1323713263    mov cx, word [word 00000h]                ; 8b 0e 00 00
    1323813264    cmp cx, word [es:bx]                      ; 26 3b 0f
    13239     jbe short 08df1h                          ; 76 0a
     13265    jbe short 08e5dh                          ; 76 0a
    1324013266    mov ax, word [bp+024h]                    ; 8b 46 24
    1324113267    xor ah, ah                                ; 30 e4
    1324213268    or ah, 089h                               ; 80 cc 89
    13243     jmp short 08e2dh                          ; eb 3c
     13269    jmp short 08e99h                          ; eb 3c
    1324413270    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1324513271    mov si, 0f2c0h                            ; be c0 f2
     
    1325013276    pop DS                                    ; 1f
    1325113277    mov word [bp+018h], 00a00h                ; c7 46 18 00 0a
    13252     jmp short 08e34h                          ; eb 2d
     13278    jmp short 08ea0h                          ; eb 2d
    1325313279    mov bx, 00d32h                            ; bb 32 0d
    1325413280    mov cx, ds                                ; 8c d9
    1325513281    mov ax, strict word 00004h                ; b8 04 00
    13256     call 018aeh                               ; e8 9c 8a
     13282    call 018aeh                               ; e8 30 8a
    1325713283    mov ax, word [bp+018h]                    ; 8b 46 18
    1325813284    push ax                                   ; 50
     
    1326113287    push 00ceeh                               ; 68 ee 0c
    1326213288    push strict byte 00004h                   ; 6a 04
    13263     call 018e9h                               ; e8 c7 8a
     13289    call 018e9h                               ; e8 5b 8a
    1326413290    add sp, strict byte 00008h                ; 83 c4 08
    1326513291    mov ax, word [bp+024h]                    ; 8b 46 24
     
    1327213298    pop si                                    ; 5e
    1327313299    retn                                      ; c3
    13274 pci_find_classcode_:                         ; 0xf8e38 LB 0x28
     13300pci_find_classcode_:                         ; 0xf8ea4 LB 0x28
    1327513301    push bx                                   ; 53
    1327613302    push cx                                   ; 51
     
    1328713313    int 01ah                                  ; cd 1a
    1328813314    cmp ah, 000h                              ; 80 fc 00
    13289     je near 08e59h                            ; 0f 84 03 00
     13315    je near 08ec5h                            ; 0f 84 03 00
    1329013316    mov bx, strict word 0ffffh                ; bb ff ff
    1329113317    mov ax, bx                                ; 89 d8
     
    1329513321    pop bx                                    ; 5b
    1329613322    retn                                      ; c3
    13297 pci_read_config_byte_:                       ; 0xf8e60 LB 0x21
     13323pci_read_config_byte_:                       ; 0xf8ecc LB 0x21
    1329813324    push cx                                   ; 51
    1329913325    push di                                   ; 57
     
    1331313339    pop cx                                    ; 59
    1331413340    retn                                      ; c3
    13315 pci_read_config_word_:                       ; 0xf8e81 LB 0x1f
     13341pci_read_config_word_:                       ; 0xf8eed LB 0x1f
    1331613342    push cx                                   ; 51
    1331713343    push di                                   ; 57
     
    1333113357    pop cx                                    ; 59
    1333213358    retn                                      ; c3
    13333 pci_read_config_dword_:                      ; 0xf8ea0 LB 0x24
     13359pci_read_config_dword_:                      ; 0xf8f0c LB 0x24
    1333413360    push cx                                   ; 51
    1333513361    push di                                   ; 57
     
    1335113377    pop cx                                    ; 59
    1335213378    retn                                      ; c3
    13353 vds_is_present_:                             ; 0xf8ec4 LB 0x1d
     13379vds_is_present_:                             ; 0xf8f30 LB 0x1d
    1335413380    push bx                                   ; 53
    1335513381    push bp                                   ; 55
     
    1335913385    mov es, ax                                ; 8e c0
    1336013386    test byte [es:bx], 020h                   ; 26 f6 07 20
    13361     je short 08edch                           ; 74 06
     13387    je short 08f48h                           ; 74 06
    1336213388    mov ax, strict word 00001h                ; b8 01 00
    1336313389    pop bp                                    ; 5d
     
    1336813394    pop bx                                    ; 5b
    1336913395    retn                                      ; c3
    13370 vds_real_to_lin_:                            ; 0xf8ee1 LB 0x1e
     13396vds_real_to_lin_:                            ; 0xf8f4d LB 0x1e
    1337113397    push bx                                   ; 53
    1337213398    push cx                                   ; 51
     
    1337913405    sal ax, 1                                 ; d1 e0
    1338013406    rcl dx, 1                                 ; d1 d2
    13381     loop 08eefh                               ; e2 fa
     13407    loop 08f5bh                               ; e2 fa
    1338213408    xor cx, cx                                ; 31 c9
    1338313409    add ax, bx                                ; 01 d8
     
    1338713413    pop bx                                    ; 5b
    1338813414    retn                                      ; c3
    13389 vds_build_sg_list_:                          ; 0xf8eff LB 0x76
     13415vds_build_sg_list_:                          ; 0xf8f6b LB 0x76
    1339013416    push si                                   ; 56
    1339113417    push di                                   ; 57
     
    1340113427    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1340213428    mov word [es:di+002h], bx                 ; 26 89 5d 02
    13403     call 08ee1h                               ; e8 c3 ff
     13429    call 08f4dh                               ; e8 c3 ff
    1340413430    mov es, si                                ; 8e c6
    1340513431    mov word [es:di+004h], ax                 ; 26 89 45 04
    1340613432    mov word [es:di+006h], dx                 ; 26 89 55 06
    1340713433    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    13408     call 08ec4h                               ; e8 93 ff
     13434    call 08f30h                               ; e8 93 ff
    1340913435    test ax, ax                               ; 85 c0
    13410     je short 08f48h                           ; 74 13
     13436    je short 08fb4h                           ; 74 13
    1341113437    mov es, si                                ; 8e c6
    1341213438    mov ax, 08105h                            ; b8 05 81
    1341313439    mov dx, strict word 00000h                ; ba 00 00
    1341413440    int 04bh                                  ; cd 4b
    13415     jc near 08f45h                            ; 0f 82 02 00
     13441    jc near 08fb1h                            ; 0f 82 02 00
    1341613442    db  032h, 0c0h
    1341713443    ; xor al, al                                ; 32 c0
    1341813444    cbw                                       ; 98
    13419     jmp short 08f6fh                          ; eb 27
     13445    jmp short 08fdbh                          ; eb 27
    1342013446    mov es, si                                ; 8e c6
    1342113447    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1343313459    pop si                                    ; 5e
    1343413460    retn 00004h                               ; c2 04 00
    13435 vds_free_sg_list_:                           ; 0xf8f75 LB 0x3b
     13461vds_free_sg_list_:                           ; 0xf8fe1 LB 0x2f
    1343613462    push bx                                   ; 53
    1343713463    push di                                   ; 57
     
    1343913465    mov bp, sp                                ; 89 e5
    1344013466    mov bx, ax                                ; 89 c3
    13441     call 08ec4h                               ; e8 45 ff
     13467    call 08f30h                               ; e8 45 ff
    1344213468    test ax, ax                               ; 85 c0
    13443     je short 08f96h                           ; 74 13
     13469    je short 09002h                           ; 74 13
    1344413470    mov di, bx                                ; 89 df
    1344513471    mov es, dx                                ; 8e c2
     
    1344713473    mov dx, strict word 00000h                ; ba 00 00
    1344813474    int 04bh                                  ; cd 4b
    13449     jc near 08f95h                            ; 0f 82 02 00
     13475    jc near 09001h                            ; 0f 82 02 00
    1345013476    db  032h, 0c0h
    1345113477    ; xor al, al                                ; 32 c0
     
    1345713483    pop bx                                    ; 5b
    1345813484    retn                                      ; c3
    13459     times 0xe db 0
    13460 __U4D:                                       ; 0xf8fb0 LB 0x39
     13485    times 0x2 db 0
     13486__U4D:                                       ; 0xf9010 LB 0x39
    1346113487    pushfw                                    ; 9c
    1346213488    push eax                                  ; 66 50
     
    1348813514    popfw                                     ; 9d
    1348913515    retn                                      ; c3
    13490 __U4M:                                       ; 0xf8fe9 LB 0x31
     13516__U4M:                                       ; 0xf9049 LB 0x31
    1349113517    pushfw                                    ; 9c
    1349213518    push eax                                  ; 66 50
     
    1351313539    popfw                                     ; 9d
    1351413540    retn                                      ; c3
    13515 _fmemset_:                                   ; 0xf901a LB 0xd
     13541_fmemset_:                                   ; 0xf907a LB 0xd
    1351613542    push di                                   ; 57
    1351713543    mov es, dx                                ; 8e c2
     
    1352313549    pop di                                    ; 5f
    1352413550    retn                                      ; c3
    13525 _fmemcpy_:                                   ; 0xf9027 LB 0x33
     13551_fmemcpy_:                                   ; 0xf9087 LB 0x33
    1352613552    push bp                                   ; 55
    1352713553    db  08bh, 0ech
     
    1354313569    leave                                     ; c9
    1354413570    retn                                      ; c3
    13545     add byte [bx+si-070h], dh                 ; 00 70 90
    13546     jc short 08fd4h                           ; 72 90
    13547     jbe short 08fd6h                          ; 76 90
    13548     jbe short 08fd8h                          ; 76 90
    13549     jbe short 08fdah                          ; 76 90
    13550     js short 08fdch                           ; 78 90
    13551     js short 08fdeh                           ; 78 90
    13552     jp short 08fe0h                           ; 7a 90
    13553     jle short 08fe2h                          ; 7e 90
    13554     jle short 08fe4h                          ; 7e 90
    13555     adc byte [bx+si-06f7bh], 087h             ; 80 90 85 90 87
     13571    add al, dl                                ; 00 d0
    1355613572    nop                                       ; 90
    13557 apm_worker:                                  ; 0xf905a LB 0x3a
     13573    rcl byte [bx+si-06f2ah], CL               ; d2 90 d6 90
     13574    db  0d6h
     13575    nop                                       ; 90
     13576    db  0d6h
     13577    nop                                       ; 90
     13578    fcom dword [bx+si-06f28h]                 ; d8 90 d8 90
     13579    ficom dword [bx+si-06f22h]                ; da 90 de 90
     13580    ficom word [bx+si-06f20h]                 ; de 90 e0 90
     13581    in ax, 090h                               ; e5 90
     13582    out 090h, ax                              ; e7 90
     13583apm_worker:                                  ; 0xf90ba LB 0x3a
    1355813584    sti                                       ; fb
    1355913585    push ax                                   ; 50
     
    1356713593    pop ax                                    ; 58
    1356813594    mov AH, strict byte 053h                  ; b4 53
    13569     jnc short 09090h                          ; 73 25
    13570     jmp word [cs:bp-06fc0h]                   ; 2e ff a6 40 90
    13571     jmp short 0908eh                          ; eb 1c
     13595    jnc short 090f0h                          ; 73 25
     13596    jmp word [cs:bp-06f60h]                   ; 2e ff a6 a0 90
     13597    jmp short 090eeh                          ; eb 1c
    1357213598    sti                                       ; fb
    1357313599    hlt                                       ; f4
    13574     jmp short 0908eh                          ; eb 18
    13575     jmp short 0908eh                          ; eb 16
    13576     jmp short 09090h                          ; eb 16
     13600    jmp short 090eeh                          ; eb 18
     13601    jmp short 090eeh                          ; eb 16
     13602    jmp short 090f0h                          ; eb 16
    1357713603    mov AH, strict byte 080h                  ; b4 80
    13578     jmp short 09092h                          ; eb 14
    13579     jmp short 09090h                          ; eb 10
     13604    jmp short 090f2h                          ; eb 14
     13605    jmp short 090f0h                          ; eb 10
    1358013606    mov ax, 00102h                            ; b8 02 01
    13581     jmp short 0908eh                          ; eb 09
    13582     jmp short 0908eh                          ; eb 07
     13607    jmp short 090eeh                          ; eb 09
     13608    jmp short 090eeh                          ; eb 07
    1358313609    mov BL, strict byte 000h                  ; b3 00
    1358413610    mov cx, strict word 00000h                ; b9 00 00
    13585     jmp short 0908eh                          ; eb 00
     13611    jmp short 090eeh                          ; eb 00
    1358613612    clc                                       ; f8
    1358713613    retn                                      ; c3
     
    1358913615    stc                                       ; f9
    1359013616    retn                                      ; c3
    13591 apm_pm16_entry:                              ; 0xf9094 LB 0x11
     13617apm_pm16_entry:                              ; 0xf90f4 LB 0x11
    1359213618    mov AH, strict byte 002h                  ; b4 02
    1359313619    push DS                                   ; 1e
     
    1359713623    add bp, strict byte 00008h                ; 83 c5 08
    1359813624    mov ds, bp                                ; 8e dd
    13599     call 0905ah                               ; e8 b8 ff
     13625    call 090bah                               ; e8 b8 ff
    1360013626    pop bp                                    ; 5d
    1360113627    pop DS                                    ; 1f
    1360213628    retf                                      ; cb
    1360313629
    13604   ; Padding 0x495b bytes at 0xf90a5
    13605   times 18779 db 0
     13630  ; Padding 0x48fb bytes at 0xf9105
     13631  times 18683 db 0
    1360613632
    1360713633section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3aa class=CODE group=AUTO
     
    1365013676    add bp, strict byte 00008h                ; 83 c5 08
    1365113677    push ebp                                  ; 66 55
    13652     mov bp, 09096h                            ; bd 96 90
     13678    mov bp, 090f6h                            ; bd f6 90
    1365313679    add byte [bx+si], al                      ; 00 00
    1365413680    push ebp                                  ; 66 55
     
    1424314269    pop DS                                    ; 1f
    1424414270    cld                                       ; fc
    14245     call 048d0h                               ; e8 16 67
     14271    call 048cah                               ; e8 10 67
    1424614272    pop DS                                    ; 1f
    1424714273    mov AL, strict byte 014h                  ; b0 14
     
    1431114337    mov word [001c2h], ax                     ; a3 c2 01
    1431214338    call 0edbfh                               ; e8 58 0b
    14313     mov ax, 0f8a4h                            ; b8 a4 f8
     14339    mov ax, 0f8a9h                            ; b8 a9 f8
    1431414340    mov word [001d0h], ax                     ; a3 d0 01
    1431514341    mov ax, 0f000h                            ; b8 00 f0
     
    1433014356    pop DS                                    ; 1f
    1433114357    cld                                       ; fc
    14332     call 01b25h                               ; e8 88 38
    14333     call 01f13h                               ; e8 73 3c
    14334     call 08946h                               ; e8 a3 a6
    14335     call 07a5bh                               ; e8 b5 97
     14358    call 01b1fh                               ; e8 82 38
     14359    call 01f0dh                               ; e8 6d 3c
     14360    call 089b2h                               ; e8 0f a7
     14361    call 07ac7h                               ; e8 21 98
    1433614362    call 0ed2fh                               ; e8 86 0a
    1433714363    call 0e2d2h                               ; e8 26 00
     
    1434014366    cld                                       ; fc
    1434114367    call 01725h                               ; e8 73 34
    14342     call 035e0h                               ; e8 2b 53
     14368    call 035dah                               ; e8 25 53
    1434314369    sti                                       ; fb
    1434414370    int 019h                                  ; cd 19
     
    1437614402    mov ax, 0f000h                            ; b8 00 f0
    1437714403    mov word [0004eh], ax                     ; a3 4e 00
    14378     mov ax, 0f8d2h                            ; b8 d2 f8
     14404    mov ax, 0f8d7h                            ; b8 d7 f8
    1437914405    mov word [001d8h], ax                     ; a3 d8 01
    1438014406    mov ax, 0f000h                            ; b8 00 f0
     
    1446014486    pop DS                                    ; 1f
    1446114487    cld                                       ; fc
    14462     call 05c46h                               ; e8 04 75
     14488    call 05c40h                               ; e8 fe 74
    1446314489    popaw                                     ; 61
    1446414490    pop ES                                    ; 07
     
    1457614602    pop DS                                    ; 1f
    1457714603    cld                                       ; fc
    14578     call 04fc2h                               ; e8 80 67
     14604    call 04fbch                               ; e8 7a 67
    1457914605    popaw                                     ; 61
    1458014606    pop DS                                    ; 1f
     
    1459314619    pop DS                                    ; 1f
    1459414620    cld                                       ; fc
    14595     call 04fc2h                               ; e8 62 67
     14621    call 04fbch                               ; e8 5c 67
    1459614622    popaw                                     ; 61
    1459714623    pop DS                                    ; 1f
     
    1469214718    pop DS                                    ; 1f
    1469314719    cld                                       ; fc
    14694     call 04bdah                               ; e8 0b 62
     14720    call 04bd4h                               ; e8 05 62
    1469514721    pop ES                                    ; 07
    1469614722    popaw                                     ; 61
     
    1471814744    cld                                       ; fc
    1471914745    push 0ece9h                               ; 68 e9 ec
    14720     jmp near 0361eh                           ; e9 ad 49
     14746    jmp near 03618h                           ; e9 a7 49
    1472114747    push ES                                   ; 06
    1472214748    push ax                                   ; 50
     
    1472414750    push cx                                   ; 51
    1472514751    push dx                                   ; 52
    14726     call 035f6h                               ; e8 7d 49
     14752    call 035f0h                               ; e8 77 49
    1472714753    cmp AL, strict byte 000h                  ; 3c 00
    1472814754    je short 0ecabh                           ; 74 2e
    14729     call 0360ah                               ; e8 8a 49
     14755    call 03604h                               ; e8 84 49
    1473014756    pop dx                                    ; 5a
    1473114757    push dx                                   ; 52
     
    1474514771    cld                                       ; fc
    1474614772    push 0ece9h                               ; 68 e9 ec
    14747     jmp near 03be6h                           ; e9 4f 4f
     14773    jmp near 03be0h                           ; e9 49 4f
    1474814774    and dl, 0e0h                              ; 80 e2 e0
    1474914775    db  03ah, 0c2h
     
    1478514811    jne short 0ecc8h                          ; 75 06
    1478614812    push 0ece9h                               ; 68 e9 ec
    14787     jmp near 02e51h                           ; e9 89 41
     14813    jmp near 02e4bh                           ; e9 83 41
    1478814814int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1478914815    cmp dl, 0e0h                              ; 80 fa e0
     
    1479114817    shr ebx, 010h                             ; 66 c1 eb 10
    1479214818    push bx                                   ; 53
    14793     call 04015h                               ; e8 40 53
     14819    call 0400fh                               ; e8 3a 53
    1479414820    pop bx                                    ; 5b
    1479514821    sal ebx, 010h                             ; 66 c1 e3 10
     
    1479814824    cmp ah, 040h                              ; 80 fc 40
    1479914825    jnbe short 0ece6h                         ; 77 05
    14800     call 05342h                               ; e8 5e 66
     14826    call 0533ch                               ; e8 58 66
    1480114827    jmp short 0ece9h                          ; eb 03
    14802     call 0577eh                               ; e8 95 6a
     14828    call 05778h                               ; e8 8f 6a
    1480314829int13_out:                                   ; 0xfece9 LB 0x4
    1480414830    pop DS                                    ; 1f
     
    1501315039    pop DS                                    ; 1f
    1501415040    cld                                       ; fc
    15015     call 06dc4h                               ; e8 e7 7d
     15041    call 06e30h                               ; e8 53 7e
    1501615042    popaw                                     ; 61
    1501715043    pop ES                                    ; 07
     
    1506115087    mov ax, strict word 00001h                ; b8 01 00
    1506215088    push ax                                   ; 50
    15063     call 0466eh                               ; e8 9e 55
     15089    call 04668h                               ; e8 98 55
    1506415090    inc sp                                    ; 44
    1506515091    inc sp                                    ; 44
     
    1506815094    mov ax, strict word 00002h                ; b8 02 00
    1506915095    push ax                                   ; 50
    15070     call 0466eh                               ; e8 91 55
     15096    call 04668h                               ; e8 8b 55
    1507115097    inc sp                                    ; 44
    1507215098    inc sp                                    ; 44
     
    1507515101    mov ax, strict word 00003h                ; b8 03 00
    1507615102    push strict byte 00003h                   ; 6a 03
    15077     call 0466eh                               ; e8 83 55
     15103    call 04668h                               ; e8 7d 55
    1507815104    inc sp                                    ; 44
    1507915105    inc sp                                    ; 44
     
    1508215108    mov ax, strict word 00004h                ; b8 04 00
    1508315109    push ax                                   ; 50
    15084     call 0466eh                               ; e8 76 55
     15110    call 04668h                               ; e8 70 55
    1508515111    inc sp                                    ; 44
    1508615112    inc sp                                    ; 44
     
    1541015436    pop DS                                    ; 1f
    1541115437    iret                                      ; cf
    15412 int15_handler:                               ; 0xff859 LB 0x29
     15438int15_handler:                               ; 0xff859 LB 0x2e
    1541315439    pushfw                                    ; 9c
    1541415440    push DS                                   ; 1e
     
    1541815444    cld                                       ; fc
    1541915445    cmp ah, 086h                              ; 80 fc 86
    15420     je short 0f887h                           ; 74 23
     15446    je short 0f88ch                           ; 74 28
    1542115447    cmp ah, 0e8h                              ; 80 fc e8
    15422     je short 0f887h                           ; 74 1e
     15448    je short 0f88ch                           ; 74 23
     15449    cmp ah, 0d0h                              ; 80 fc d0
     15450    je short 0f88ch                           ; 74 1e
    1542315451    pushaw                                    ; 60
    1542415452    cmp ah, 053h                              ; 80 fc 53
    15425     je short 0f87dh                           ; 74 0e
     15453    je short 0f882h                           ; 74 0e
    1542615454    cmp ah, 0c2h                              ; 80 fc c2
    15427     je short 0f882h                           ; 74 0e
    15428     call 05e4fh                               ; e8 d8 65
     15455    je short 0f887h                           ; 74 0e
     15456    call 05e49h                               ; e8 cd 65
    1542915457    popaw                                     ; 61
    1543015458    pop ES                                    ; 07
    1543115459    pop DS                                    ; 1f
    1543215460    popfw                                     ; 9d
    15433     jmp short 0f890h                          ; eb 13
    15434     call 08a75h                               ; e8 f5 91
    15435     jmp short 0f877h                          ; eb f5
    15436 int15_handler_mouse:                         ; 0xff882 LB 0x5
    15437     call 06a3eh                               ; e8 b9 71
    15438     jmp short 0f877h                          ; eb f0
    15439 int15_handler32:                             ; 0xff887 LB 0x9
     15461    jmp short 0f895h                          ; eb 13
     15462    call 08ae1h                               ; e8 5c 92
     15463    jmp short 0f87ch                          ; eb f5
     15464int15_handler_mouse:                         ; 0xff887 LB 0x5
     15465    call 06aaah                               ; e8 20 72
     15466    jmp short 0f87ch                          ; eb f0
     15467int15_handler32:                             ; 0xff88c LB 0x9
    1544015468    pushad                                    ; 66 60
    15441     call 06318h                               ; e8 8c 6a
     15469    call 06312h                               ; e8 81 6a
    1544215470    popad                                     ; 66 61
    15443     jmp short 0f878h                          ; eb e8
    15444 iret_modify_cf:                              ; 0xff890 LB 0x14
    15445     jc short 0f89bh                           ; 72 09
     15471    jmp short 0f87dh                          ; eb e8
     15472iret_modify_cf:                              ; 0xff895 LB 0x14
     15473    jc short 0f8a0h                           ; 72 09
    1544615474    push bp                                   ; 55
    1544715475    db  08bh, 0ech
     
    1545615484    pop bp                                    ; 5d
    1545715485    iret                                      ; cf
    15458 int74_handler:                               ; 0xff8a4 LB 0x2e
     15486int74_handler:                               ; 0xff8a9 LB 0x2e
    1545915487    sti                                       ; fb
    1546015488    pushaw                                    ; 60
     
    1546915497    pop DS                                    ; 1f
    1547015498    cld                                       ; fc
    15471     call 06978h                               ; e8 c0 70
     15499    call 069e4h                               ; e8 27 71
    1547215500    pop cx                                    ; 59
    15473     jcxz 0f8c7h                               ; e3 0c
     15501    jcxz 0f8cch                               ; e3 0c
    1547415502    push strict byte 00000h                   ; 6a 00
    1547515503    pop DS                                    ; 1f
     
    1547815506    call far [word 00022h]                    ; ff 1e 22 00
    1547915507    cli                                       ; fa
    15480     call 0e03bh                               ; e8 70 e7
     15508    call 0e03bh                               ; e8 6b e7
    1548115509    add sp, strict byte 00008h                ; 83 c4 08
    1548215510    pop DS                                    ; 1f
     
    1548415512    popaw                                     ; 61
    1548515513    iret                                      ; cf
    15486 int76_handler:                               ; 0xff8d2 LB 0x19c
     15514int76_handler:                               ; 0xff8d7 LB 0x197
    1548715515    push ax                                   ; 50
    1548815516    push DS                                   ; 1e
     
    1549015518    mov ds, ax                                ; 8e d8
    1549115519    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    15492     call 0e03bh                               ; e8 5a e7
     15520    call 0e03bh                               ; e8 55 e7
    1549315521    pop DS                                    ; 1f
    1549415522    pop ax                                    ; 58
    1549515523    iret                                      ; cf
    15496     times 0x188 db 0
     15524    times 0x183 db 0
    1549715525    db  'XM'
    1549815526font8x8:                                     ; 0xffa6e LB 0x421
     
    1556115589    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1556215590    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    15563     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 000h, 08eh, 066h
    15564     db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 095h, 068h, 061h, 01fh, 007h
     15591    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 06ch, 08eh, 066h
     15592    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 001h, 069h, 061h, 01fh, 007h
    1556515593    db  0cfh
    1556615594int70_handler:                               ; 0xffe8f LB 0x16
     
    1557115599    pop DS                                    ; 1f
    1557215600    cld                                       ; fc
    15573     call 06665h                               ; e8 cd 67
     15601    call 066d1h                               ; e8 39 68
    1557415602    popaw                                     ; 61
    1557515603    pop DS                                    ; 1f
     
    1565815686    dec cx                                    ; 49
    1565915687    pop di                                    ; 5f
    15660     sbb AL, strict byte 000h                  ; 1c 00
     15688    and ax, strict word 00000h                ; 25 00 00
     15689    add byte [bx+si], dl                      ; 00 10
     15690    push CS                                   ; 0e
    1566115691    add byte [bx+si], al                      ; 00 00
    15662     adc byte [00900h], cl                     ; 10 0e 00 09
    1566315692    add byte [di], ah                         ; 00 25
    1566415693    times 0x6f db 0
     
    1566615695cpu_reset:                                   ; 0xffff0 LB 0x10
    1566715696    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    15668     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 039h
     15697    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 010h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r44751 r45670  
    1 672b75ae8ab89eb41cf55264d313f4c1 *VBoxPcBios.rom
     10067f8599e411e0d5c3226b8f9cd523d *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