VirtualBox

Changeset 69128 in vbox for trunk/src/VBox/Devices/PC/BIOS


Ignore:
Timestamp:
Oct 18, 2017 5:07:13 AM (7 years ago)
Author:
vboxsync
Message:

5.2.0 again.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm

    r68934 r69128  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 080h, 081h, 02bh, 091h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 03fh, 02bh, 0bfh, 081h, 06ah, 091h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992     db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 04dh, 03bh, 04dh, 03bh
     992    db  000h, 000h, 000h, 000h, 000h, 000h, 0c8h, 02dh, 08ch, 03bh, 08ch, 03bh
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
    995     db  0c0h, 07fh, 0a0h, 080h, 0fdh, 08fh, 0a5h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 02ah, 0e4h, 02ah, 000h, 000h, 000h, 000h
     995    db  0ffh, 07fh, 0dfh, 080h, 03ch, 090h, 0e4h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11141114    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    11151115
    1116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fe class=DATA group=DGROUP
    1117 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x16
    1118     db  'VirtualBox 5.2.0_RC1', 000h, 000h
    1119 _bios_prefix_string:                         ; 0xf0da4 LB 0x8
     1116section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
     1117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
     1118    db  'VirtualBox 5.2.0', 000h, 000h
     1119_bios_prefix_string:                         ; 0xf0da0 LB 0x8
    11201120    db  'BIOS: ', 000h, 000h
    1121 _isotag:                                     ; 0xf0dac LB 0x6
     1121_isotag:                                     ; 0xf0da8 LB 0x6
    11221122    db  'CD001', 000h
    1123 _eltorito:                                   ; 0xf0db2 LB 0x18
     1123_eltorito:                                   ; 0xf0dae LB 0x18
    11241124    db  'EL TORITO SPECIFICATION', 000h
    1125 _drivetypes:                                 ; 0xf0dca LB 0x28
     1125_drivetypes:                                 ; 0xf0dc6 LB 0x28
    11261126    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    11271127    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    11281128    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1129 _scan_to_scanascii:                          ; 0xf0df2 LB 0x37a
     1129_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
    11301130    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    11311131    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11841184    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11851185    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1186 _panic_msg_keyb_buffer_full:                 ; 0xf116c LB 0x20
     1186_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
    11871187    db  '%s: keyboard input buffer full', 00ah, 000h
    11881188
    1189   ; Padding 0x474 bytes at 0xf118c
    1190   times 1140 db 0
     1189  ; Padding 0x478 bytes at 0xf1188
     1190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e18 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e58 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x50
    11941194    push bp                                   ; 55
     
    14111411    push bp                                   ; 55
    14121412    mov bp, sp                                ; 89 e5
    1413     mov bx, 00da4h                            ; bb a4 0d
     1413    mov bx, 00da0h                            ; bb a0 0d
    14141414    mov cx, ds                                ; 8c d9
    14151415    mov ax, strict word 00004h                ; b8 04 00
     
    14401440    int 010h                                  ; cd 10
    14411441    jmp short 017b7h                          ; eb 03
    1442     call 07b7ah                               ; e8 c3 63
     1442    call 07bb9h                               ; e8 02 64
    14431443    mov sp, bp                                ; 89 ec
    14441444    pop bp                                    ; 5d
     
    15851585    mov bx, strict word 0000ah                ; bb 0a 00
    15861586    xor cx, cx                                ; 31 c9
    1587     call 0a0b0h                               ; e8 e3 87
     1587    call 0a0f0h                               ; e8 23 88
    15881588    mov word [bp-008h], ax                    ; 89 46 f8
    15891589    mov cx, dx                                ; 89 d1
     
    18151815    mov dx, word [bp-026h]                    ; 8b 56 da
    18161816    mov si, word [bp-01eh]                    ; 8b 76 e2
    1817     call 0a0e0h                               ; e8 e3 85
     1817    call 0a120h                               ; e8 23 86
    18181818    mov ax, dx                                ; 89 d0
    18191819    xor ah, dh                                ; 30 f4
     
    22542254    mov dx, word [es:si]                      ; 26 8b 14
    22552255    mov si, strict word 00018h                ; be 18 00
    2256     call 0a0e0h                               ; e8 90 81
     2256    call 0a120h                               ; e8 d0 81
    22572257    xor dh, dh                                ; 30 f6
    22582258    mov word [bp-014h], dx                    ; 89 56 ec
     
    22642264    mov dx, word [es:si]                      ; 26 8b 14
    22652265    mov si, strict word 00020h                ; be 20 00
    2266     call 0a0e0h                               ; e8 70 81
     2266    call 0a120h                               ; e8 b0 81
    22672267    mov bx, dx                                ; 89 d3
    22682268    mov ax, word [bp-01ch]                    ; 8b 46 e4
     
    22952295    mov dx, word [es:si]                      ; 26 8b 14
    22962296    mov si, strict word 00008h                ; be 08 00
    2297     call 0a0e0h                               ; e8 1f 81
     2297    call 0a120h                               ; e8 5f 81
    22982298    mov word [bp-012h], dx                    ; 89 56 ee
    22992299    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00018h                ; be 18 00
    2306     call 0a0e0h                               ; e8 01 81
     2306    call 0a120h                               ; e8 41 81
    23072307    mov ah, dl                                ; 88 d4
    23082308    and ah, 00fh                              ; 80 e4 0f
     
    24392439    pop bp                                    ; 5d
    24402440    retn                                      ; c3
    2441 _ata_detect:                                 ; 0xf2118 LB 0x64e
     2441_ata_detect:                                 ; 0xf2118 LB 0x68d
    24422442    push bp                                   ; 55
    24432443    mov bp, sp                                ; 89 e5
     
    24482448    mov ax, strict word 00040h                ; b8 40 00
    24492449    call 0166ch                               ; e8 42 f5
    2450     mov word [bp-026h], ax                    ; 89 46 da
     2450    mov word [bp-020h], ax                    ; 89 46 e0
    24512451    mov di, 00122h                            ; bf 22 01
    24522452    mov es, ax                                ; 8e c0
    2453     mov word [bp-022h], di                    ; 89 7e de
    2454     mov word [bp-020h], ax                    ; 89 46 e0
     2453    mov word [bp-01ch], di                    ; 89 7e e4
     2454    mov word [bp-02eh], ax                    ; 89 46 d2
    24552455    mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
    24562456    mov word [es:di+00206h], 001f0h           ; 26 c7 85 06 02 f0 01
     
    24622462    mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
    24632463    xor al, al                                ; 30 c0
     2464    mov byte [bp-010h], al                    ; 88 46 f0
    24642465    mov byte [bp-008h], al                    ; 88 46 f8
    2465     mov byte [bp-012h], al                    ; 88 46 ee
    24662466    mov byte [bp-00ah], al                    ; 88 46 f6
    2467     jmp near 026ech                           ; e9 72 05
     2467    jmp near 02725h                           ; e9 ab 05
    24682468    mov ax, 000a0h                            ; b8 a0 00
    24692469    lea dx, [si+006h]                         ; 8d 54 06
    24702470    out DX, AL                                ; ee
    2471     lea di, [si+002h]                         ; 8d 7c 02
     2471    lea bx, [si+002h]                         ; 8d 5c 02
     2472    mov AL, strict byte 055h                  ; b0 55
     2473    mov dx, bx                                ; 89 da
     2474    out DX, AL                                ; ee
     2475    lea di, [si+003h]                         ; 8d 7c 03
     2476    mov AL, strict byte 0aah                  ; b0 aa
     2477    mov dx, di                                ; 89 fa
     2478    out DX, AL                                ; ee
     2479    mov dx, bx                                ; 89 da
     2480    out DX, AL                                ; ee
    24722481    mov AL, strict byte 055h                  ; b0 55
    24732482    mov dx, di                                ; 89 fa
    24742483    out DX, AL                                ; ee
    2475     lea bx, [si+003h]                         ; 8d 5c 03
     2484    mov dx, bx                                ; 89 da
     2485    out DX, AL                                ; ee
    24762486    mov AL, strict byte 0aah                  ; b0 aa
     2487    mov dx, di                                ; 89 fa
     2488    out DX, AL                                ; ee
    24772489    mov dx, bx                                ; 89 da
    2478     out DX, AL                                ; ee
    2479     mov dx, di                                ; 89 fa
    2480     out DX, AL                                ; ee
    2481     mov AL, strict byte 055h                  ; b0 55
    2482     mov dx, bx                                ; 89 da
    2483     out DX, AL                                ; ee
    2484     mov dx, di                                ; 89 fa
    2485     out DX, AL                                ; ee
    2486     mov AL, strict byte 0aah                  ; b0 aa
    2487     mov dx, bx                                ; 89 da
    2488     out DX, AL                                ; ee
     2490    in AL, DX                                 ; ec
     2491    db  02ah, 0e4h
     2492    ; sub ah, ah                                ; 2a e4
     2493    mov bx, ax                                ; 89 c3
    24892494    mov dx, di                                ; 89 fa
    24902495    in AL, DX                                 ; ec
    24912496    db  02ah, 0e4h
    24922497    ; sub ah, ah                                ; 2a e4
    2493     mov cx, ax                                ; 89 c1
    2494     mov dx, bx                                ; 89 da
    2495     in AL, DX                                 ; ec
    2496     db  02ah, 0e4h
    2497     ; sub ah, ah                                ; 2a e4
    2498     cmp cl, 055h                              ; 80 f9 55
    2499     jne short 021f9h                          ; 75 47
     2498    cmp bl, 055h                              ; 80 fb 55
     2499    jne short 021fch                          ; 75 4a
    25002500    cmp AL, strict byte 0aah                  ; 3c aa
    2501     jne short 021f9h                          ; 75 43
     2501    jne short 021fch                          ; 75 46
    25022502    mov al, byte [bp-00ah]                    ; 8a 46 f6
    25032503    xor ah, ah                                ; 30 e4
    25042504    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2505     les bx, [bp-022h]                         ; c4 5e de
     2505    mov es, [bp-02eh]                         ; 8e 46 d2
     2506    mov bx, word [bp-01ch]                    ; 8b 5e e4
    25062507    add bx, ax                                ; 01 c3
    25072508    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
    25082509    mov al, byte [bp-00ah]                    ; 8a 46 f6
    25092510    xor ah, ah                                ; 30 e4
    2510     call 01d85h                               ; e8 b5 fb
    2511     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2512     je short 021dbh                           ; 74 05
     2511    call 01d85h                               ; e8 b2 fb
     2512    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     2513    je short 021deh                           ; 74 05
    25132514    mov ax, 000b0h                            ; b8 b0 00
    2514     jmp short 021deh                          ; eb 03
     2515    jmp short 021e1h                          ; eb 03
    25152516    mov ax, 000a0h                            ; b8 a0 00
    25162517    lea dx, [si+006h]                         ; 8d 54 06
     
    25262527    ; sub ah, ah                                ; 2a e4
    25272528    cmp bl, 001h                              ; 80 fb 01
    2528     jne short 02232h                          ; 75 3d
     2529    jne short 02238h                          ; 75 40
    25292530    cmp al, bl                                ; 38 d8
    2530     je short 021fbh                           ; 74 02
    2531     jmp short 02232h                          ; eb 37
     2531    je short 021feh                           ; 74 02
     2532    jmp short 02238h                          ; eb 3a
    25322533    lea dx, [si+004h]                         ; 8d 54 04
    25332534    in AL, DX                                 ; ec
    25342535    db  02ah, 0e4h
    25352536    ; sub ah, ah                                ; 2a e4
    2536     mov bx, ax                                ; 89 c3
    2537     mov byte [bp-006h], al                    ; 88 46 fa
     2537    mov cx, ax                                ; 89 c1
     2538    mov ch, al                                ; 88 c5
    25382539    lea dx, [si+005h]                         ; 8d 54 05
    25392540    in AL, DX                                 ; ec
    25402541    db  02ah, 0e4h
    25412542    ; sub ah, ah                                ; 2a e4
    2542     mov cx, ax                                ; 89 c1
    2543     mov bh, al                                ; 88 c7
     2543    mov bx, ax                                ; 89 c3
     2544    mov byte [bp-014h], al                    ; 88 46 ec
    25442545    lea dx, [si+007h]                         ; 8d 54 07
    25452546    in AL, DX                                 ; ec
    25462547    db  02ah, 0e4h
    25472548    ; sub ah, ah                                ; 2a e4
    2548     cmp bl, 014h                              ; 80 fb 14
    2549     jne short 02234h                          ; 75 19
    2550     cmp cl, 0ebh                              ; 80 f9 eb
    2551     jne short 02234h                          ; 75 14
     2549    cmp cl, 014h                              ; 80 f9 14
     2550    jne short 0223ah                          ; 75 1c
     2551    cmp bl, 0ebh                              ; 80 fb eb
     2552    jne short 0223ah                          ; 75 17
    25522553    mov al, byte [bp-00ah]                    ; 8a 46 f6
    25532554    xor ah, ah                                ; 30 e4
    25542555    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2555     les bx, [bp-022h]                         ; c4 5e de
     2556    mov es, [bp-02eh]                         ; 8e 46 d2
     2557    mov bx, word [bp-01ch]                    ; 8b 5e e4
    25562558    add bx, ax                                ; 01 c3
    25572559    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
    2558     jmp short 02273h                          ; eb 3f
    2559     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2560     jne short 02256h                          ; 75 1c
    2561     test bh, bh                               ; 84 ff
    2562     jne short 02256h                          ; 75 18
     2560    jmp short 0227eh                          ; eb 44
     2561    test ch, ch                               ; 84 ed
     2562    jne short 0225fh                          ; 75 21
     2563    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
     2564    jne short 0225fh                          ; 75 1b
    25632565    test al, al                               ; 84 c0
    2564     je short 02256h                           ; 74 14
     2566    je short 0225fh                           ; 74 17
    25652567    mov al, byte [bp-00ah]                    ; 8a 46 f6
    25662568    xor ah, ah                                ; 30 e4
    25672569    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2568     les bx, [bp-022h]                         ; c4 5e de
     2570    mov es, [bp-02eh]                         ; 8e 46 d2
     2571    mov bx, word [bp-01ch]                    ; 8b 5e e4
    25692572    add bx, ax                                ; 01 c3
    25702573    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
    2571     jmp short 02273h                          ; eb 1d
    2572     mov al, byte [bp-006h]                    ; 8a 46 fa
    2573     cmp AL, strict byte 0ffh                  ; 3c ff
    2574     jne short 02273h                          ; 75 16
    2575     cmp bh, al                                ; 38 c7
    2576     jne short 02273h                          ; 75 12
     2574    jmp short 0227eh                          ; eb 1f
     2575    cmp ch, 0ffh                              ; 80 fd ff
     2576    jne short 0227eh                          ; 75 1a
     2577    cmp ch, byte [bp-014h]                    ; 3a 6e ec
     2578    jne short 0227eh                          ; 75 15
    25772579    mov al, byte [bp-00ah]                    ; 8a 46 f6
    25782580    xor ah, ah                                ; 30 e4
    25792581    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2580     les bx, [bp-022h]                         ; c4 5e de
     2582    mov es, [bp-02eh]                         ; 8e 46 d2
     2583    mov bx, word [bp-01ch]                    ; 8b 5e e4
    25812584    add bx, ax                                ; 01 c3
    25822585    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
     
    25882591    xor ah, ah                                ; 30 e4
    25892592    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2590     les si, [bp-022h]                         ; c4 76 de
     2593    mov es, [bp-02eh]                         ; 8e 46 d2
     2594    mov si, word [bp-01ch]                    ; 8b 76 e4
    25912595    add si, ax                                ; 01 c6
    25922596    mov al, byte [es:si+022h]                 ; 26 8a 44 22
    2593     mov byte [bp-00ch], al                    ; 88 46 f4
     2597    mov byte [bp-00eh], al                    ; 88 46 f2
    25942598    cmp AL, strict byte 002h                  ; 3c 02
    2595     jne short 022ddh                          ; 75 49
     2599    jne short 022ebh                          ; 75 49
    25962600    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
    25972601    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
    25982602    lea dx, [bp-00264h]                       ; 8d 96 9c fd
    2599     mov bx, word [bp-022h]                    ; 8b 5e de
     2603    mov bx, word [bp-01ch]                    ; 8b 5e e4
    26002604    mov word [es:bx+008h], dx                 ; 26 89 57 08
    26012605    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
     
    26042608    mov cx, strict word 00001h                ; b9 01 00
    26052609    mov bx, 000ech                            ; bb ec 00
    2606     mov ax, word [bp-022h]                    ; 8b 46 de
     2610    mov ax, word [bp-01ch]                    ; 8b 46 e4
    26072611    mov dx, es                                ; 8c c2
    2608     call 01e63h                               ; e8 a1 fb
     2612    call 01e63h                               ; e8 93 fb
    26092613    test ax, ax                               ; 85 c0
    2610     je short 022d1h                           ; 74 0b
     2614    je short 022dfh                           ; 74 0b
    26112615    push 00124h                               ; 68 24 01
    26122616    push strict byte 00007h                   ; 6a 07
    2613     call 01966h                               ; e8 98 f6
     2617    call 01966h                               ; e8 8a f6
    26142618    add sp, strict byte 00004h                ; 83 c4 04
    26152619    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
    2616     je short 022e0h                           ; 74 08
     2620    je short 022eeh                           ; 74 08
    26172621    mov ax, strict word 00001h                ; b8 01 00
    2618     jmp short 022e2h                          ; eb 05
    2619     jmp near 024bfh                           ; e9 df 01
     2622    jmp short 022f0h                          ; eb 05
     2623    jmp near 024ech                           ; e9 fe 01
    26202624    xor ax, ax                                ; 31 c0
    2621     mov byte [bp-016h], al                    ; 88 46 ea
    2622     mov byte [bp-018h], 000h                  ; c6 46 e8 00
    2623     mov word [bp-034h], 00200h                ; c7 46 cc 00 02
     2625    mov byte [bp-018h], al                    ; 88 46 e8
     2626    mov byte [bp-016h], 000h                  ; c6 46 ea 00
     2627    mov word [bp-030h], 00200h                ; c7 46 d0 00 02
    26242628    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
    2625     mov word [bp-01ch], ax                    ; 89 46 e4
     2629    mov word [bp-026h], ax                    ; 89 46 da
    26262630    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
    2627     mov word [bp-030h], ax                    ; 89 46 d0
     2631    mov word [bp-028h], ax                    ; 89 46 d8
    26282632    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
    2629     mov word [bp-02ah], ax                    ; 89 46 d6
     2633    mov word [bp-02ch], ax                    ; 89 46 d4
    26302634    mov si, word [bp-001ech]                  ; 8b b6 14 fe
    26312635    mov ax, word [bp-001eah]                  ; 8b 86 16 fe
    2632     mov word [bp-028h], ax                    ; 89 46 d8
     2636    mov word [bp-022h], ax                    ; 89 46 de
    26332637    xor ax, ax                                ; 31 c0
    2634     mov word [bp-01eh], ax                    ; 89 46 e2
    2635     mov word [bp-02ch], ax                    ; 89 46 d4
    2636     cmp word [bp-028h], 00fffh                ; 81 7e d8 ff 0f
    2637     jne short 0233bh                          ; 75 1e
     2638    mov word [bp-024h], ax                    ; 89 46 dc
     2639    mov word [bp-02ah], ax                    ; 89 46 d6
     2640    cmp word [bp-022h], 00fffh                ; 81 7e de ff 0f
     2641    jne short 02349h                          ; 75 1e
    26382642    cmp si, strict byte 0ffffh                ; 83 fe ff
    2639     jne short 0233bh                          ; 75 19
     2643    jne short 02349h                          ; 75 19
    26402644    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
    2641     mov word [bp-02ch], ax                    ; 89 46 d4
     2645    mov word [bp-02ah], ax                    ; 89 46 d6
    26422646    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
    2643     mov word [bp-01eh], ax                    ; 89 46 e2
     2647    mov word [bp-024h], ax                    ; 89 46 dc
    26442648    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
    2645     mov word [bp-028h], ax                    ; 89 46 d8
     2649    mov word [bp-022h], ax                    ; 89 46 de
    26462650    mov si, word [bp-0019ch]                  ; 8b b6 64 fe
    26472651    mov al, byte [bp-00ah]                    ; 8a 46 f6
    26482652    cmp AL, strict byte 001h                  ; 3c 01
    2649     jc short 0234eh                           ; 72 0c
    2650     jbe short 02356h                          ; 76 12
     2653    jc short 0235ch                           ; 72 0c
     2654    jbe short 02364h                          ; 76 12
    26512655    cmp AL, strict byte 003h                  ; 3c 03
    2652     je short 0235eh                           ; 74 16
     2656    je short 0236ch                           ; 74 16
    26532657    cmp AL, strict byte 002h                  ; 3c 02
    2654     je short 0235ah                           ; 74 0e
    2655     jmp short 02398h                          ; eb 4a
     2658    je short 02368h                           ; 74 0e
     2659    jmp short 023a6h                          ; eb 4a
    26562660    test al, al                               ; 84 c0
    2657     jne short 02398h                          ; 75 46
     2661    jne short 023a6h                          ; 75 46
    26582662    mov BL, strict byte 01eh                  ; b3 1e
    2659     jmp short 02360h                          ; eb 0a
     2663    jmp short 0236eh                          ; eb 0a
    26602664    mov BL, strict byte 026h                  ; b3 26
    2661     jmp short 02360h                          ; eb 06
     2665    jmp short 0236eh                          ; eb 06
    26622666    mov BL, strict byte 067h                  ; b3 67
    2663     jmp short 02360h                          ; eb 02
     2667    jmp short 0236eh                          ; eb 02
    26642668    mov BL, strict byte 070h                  ; b3 70
    26652669    mov al, bl                                ; 88 d8
     
    26672671    ; inc al                                    ; fe c0
    26682672    xor ah, ah                                ; 30 e4
    2669     call 016ach                               ; e8 43 f3
     2673    call 016ach                               ; e8 35 f3
    26702674    xor ah, ah                                ; 30 e4
    26712675    mov dx, ax                                ; 89 c2
    26722676    sal dx, 008h                              ; c1 e2 08
    26732677    mov al, bl                                ; 88 d8
    2674     call 016ach                               ; e8 37 f3
     2678    call 016ach                               ; e8 29 f3
    26752679    xor ah, ah                                ; 30 e4
    26762680    add ax, dx                                ; 01 d0
     
    26792683    add AL, strict byte 002h                  ; 04 02
    26802684    xor ah, ah                                ; 30 e4
    2681     call 016ach                               ; e8 27 f3
     2685    call 016ach                               ; e8 19 f3
    26822686    xor ah, ah                                ; 30 e4
    26832687    mov word [bp-03ah], ax                    ; 89 46 c6
    26842688    mov al, bl                                ; 88 d8
    26852689    add AL, strict byte 007h                  ; 04 07
    2686     call 016ach                               ; e8 1b f3
     2690    call 016ach                               ; e8 0d f3
    26872691    xor ah, ah                                ; 30 e4
    26882692    mov word [bp-036h], ax                    ; 89 46 ca
    2689     jmp short 023aah                          ; eb 12
    2690     push word [bp-02ch]                       ; ff 76 d4
    2691     push word [bp-01eh]                       ; ff 76 e2
    2692     push word [bp-028h]                       ; ff 76 d8
     2693    jmp short 023b8h                          ; eb 12
     2694    push word [bp-02ah]                       ; ff 76 d6
     2695    push word [bp-024h]                       ; ff 76 dc
     2696    push word [bp-022h]                       ; ff 76 de
    26932697    push si                                   ; 56
    26942698    mov dx, ss                                ; 8c d2
    26952699    lea ax, [bp-03ah]                         ; 8d 46 c6
    2696     call 05a02h                               ; e8 58 36
    2697     mov bx, 00da4h                            ; bb a4 0d
     2700    call 05a41h                               ; e8 89 36
     2701    mov bx, 00da0h                            ; bb a0 0d
    26982702    mov cx, ds                                ; 8c d9
    26992703    mov ax, strict word 00004h                ; b8 04 00
    2700     call 01923h                               ; e8 6e f5
     2704    call 01923h                               ; e8 60 f5
    27012705    mov ax, word [bp-036h]                    ; 8b 46 ca
    27022706    push ax                                   ; 50
     
    27052709    mov ax, word [bp-038h]                    ; 8b 46 c8
    27062710    push ax                                   ; 50
    2707     push word [bp-02ah]                       ; ff 76 d6
    2708     push word [bp-030h]                       ; ff 76 d0
    2709     push word [bp-01ch]                       ; ff 76 e4
    2710     mov al, byte [bp-010h]                    ; 8a 46 f0
     2711    push word [bp-02ch]                       ; ff 76 d4
     2712    push word [bp-028h]                       ; ff 76 d8
     2713    push word [bp-026h]                       ; ff 76 da
     2714    mov al, byte [bp-006h]                    ; 8a 46 fa
    27112715    xor ah, ah                                ; 30 e4
    27122716    push ax                                   ; 50
    2713     mov al, byte [bp-014h]                    ; 8a 46 ec
     2717    mov al, byte [bp-012h]                    ; 8a 46 ee
    27142718    push ax                                   ; 50
    27152719    push 0014dh                               ; 68 4d 01
    27162720    push strict byte 00004h                   ; 6a 04
    2717     call 01966h                               ; e8 8a f5
     2721    call 01966h                               ; e8 7c f5
    27182722    add sp, strict byte 00014h                ; 83 c4 14
    27192723    mov al, byte [bp-00ah]                    ; 8a 46 f6
    27202724    xor ah, ah                                ; 30 e4
    27212725    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2722     les di, [bp-022h]                         ; c4 7e de
     2726    mov es, [bp-02eh]                         ; 8e 46 d2
     2727    mov di, word [bp-01ch]                    ; 8b 7e e4
    27232728    add di, ax                                ; 01 c7
    27242729    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
     2730    mov al, byte [bp-018h]                    ; 8a 46 e8
     2731    mov byte [es:di+024h], al                 ; 26 88 45 24
    27252732    mov al, byte [bp-016h]                    ; 8a 46 ea
    2726     mov byte [es:di+024h], al                 ; 26 88 45 24
    2727     mov al, byte [bp-018h]                    ; 8a 46 e8
    27282733    mov byte [es:di+026h], al                 ; 26 88 45 26
    2729     mov ax, word [bp-034h]                    ; 8b 46 cc
     2734    mov ax, word [bp-030h]                    ; 8b 46 d0
    27302735    mov word [es:di+028h], ax                 ; 26 89 45 28
    2731     mov ax, word [bp-030h]                    ; 8b 46 d0
     2736    mov ax, word [bp-028h]                    ; 8b 46 d8
    27322737    mov word [es:di+030h], ax                 ; 26 89 45 30
    2733     mov ax, word [bp-01ch]                    ; 8b 46 e4
     2738    mov ax, word [bp-026h]                    ; 8b 46 da
    27342739    mov word [es:di+032h], ax                 ; 26 89 45 32
     2740    mov ax, word [bp-02ch]                    ; 8b 46 d4
     2741    mov word [es:di+034h], ax                 ; 26 89 45 34
    27352742    mov ax, word [bp-02ah]                    ; 8b 46 d6
    2736     mov word [es:di+034h], ax                 ; 26 89 45 34
    2737     mov ax, word [bp-02ch]                    ; 8b 46 d4
    27382743    mov word [es:di+03ch], ax                 ; 26 89 45 3c
    2739     mov ax, word [bp-01eh]                    ; 8b 46 e2
     2744    mov ax, word [bp-024h]                    ; 8b 46 dc
    27402745    mov word [es:di+03ah], ax                 ; 26 89 45 3a
    2741     mov ax, word [bp-028h]                    ; 8b 46 d8
     2746    mov ax, word [bp-022h]                    ; 8b 46 de
    27422747    mov word [es:di+038h], ax                 ; 26 89 45 38
    27432748    mov word [es:di+036h], si                 ; 26 89 75 36
     
    27532758    mov al, byte [bp-00ah]                    ; 8a 46 f6
    27542759    cmp AL, strict byte 002h                  ; 3c 02
    2755     jnc short 024a9h                          ; 73 61
     2760    jnc short 024cch                          ; 73 73
    27562761    test al, al                               ; 84 c0
    2757     jne short 02451h                          ; 75 05
     2762    jne short 02462h                          ; 75 05
    27582763    mov di, strict word 0003dh                ; bf 3d 00
    2759     jmp short 02454h                          ; eb 03
     2764    jmp short 02465h                          ; eb 03
    27602765    mov di, strict word 0004dh                ; bf 4d 00
    2761     mov dx, word [bp-026h]                    ; 8b 56 da
     2766    mov dx, word [bp-020h]                    ; 8b 56 e0
     2767    mov al, byte [bp-00ah]                    ; 8a 46 f6
     2768    xor ah, ah                                ; 30 e4
     2769    imul bx, ax, strict byte 00005h           ; 6b d8 05
     2770    sal bx, 002h                              ; c1 e3 02
     2771    add bx, 00104h                            ; 81 c3 04 01
     2772    xor al, al                                ; 30 c0
     2773    mov es, ax                                ; 8e c0
     2774    mov word [es:bx], di                      ; 26 89 3f
     2775    mov word [es:bx+002h], dx                 ; 26 89 57 02
    27622776    mov ax, word [bp-038h]                    ; 8b 46 c8
    27632777    mov es, dx                                ; 8e c2
     
    27662780    mov byte [es:di+002h], al                 ; 26 88 45 02
    27672781    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
    2768     mov al, byte [bp-02ah]                    ; 8a 46 d6
     2782    mov al, byte [bp-02ch]                    ; 8a 46 d4
    27692783    mov byte [es:di+004h], al                 ; 26 88 45 04
    2770     mov ax, word [bp-01ch]                    ; 8b 46 e4
     2784    mov ax, word [bp-026h]                    ; 8b 46 da
    27712785    mov word [es:di+009h], ax                 ; 26 89 45 09
    2772     mov al, byte [bp-030h]                    ; 8a 46 d0
     2786    mov al, byte [bp-028h]                    ; 8a 46 d8
    27732787    mov byte [es:di+00bh], al                 ; 26 88 45 0b
    2774     mov al, byte [bp-02ah]                    ; 8a 46 d6
     2788    mov al, byte [bp-036h]                    ; 8a 46 ca
    27752789    mov byte [es:di+00eh], al                 ; 26 88 45 0e
    27762790    xor al, al                                ; 30 c0
    27772791    xor ah, ah                                ; 30 e4
    2778     jmp short 02492h                          ; eb 05
     2792    jmp short 024bdh                          ; eb 05
    27792793    cmp ah, 00fh                              ; 80 fc 0f
    2780     jnc short 024a1h                          ; 73 0f
     2794    jnc short 024ceh                          ; 73 11
    27812795    mov bl, ah                                ; 88 e3
    27822796    xor bh, bh                                ; 30 ff
     
    27862800    db  0feh, 0c4h
    27872801    ; inc ah                                    ; fe c4
    2788     jmp short 0248dh                          ; eb ec
     2802    jmp short 024b8h                          ; eb ec
     2803    jmp short 024d6h                          ; eb 08
    27892804    neg al                                    ; f6 d8
    27902805    mov es, dx                                ; 8e c2
    27912806    mov byte [es:di+00fh], al                 ; 26 88 45 0f
    2792     mov bl, byte [bp-012h]                    ; 8a 5e ee
     2807    mov bl, byte [bp-008h]                    ; 8a 5e f8
    27932808    xor bh, bh                                ; 30 ff
    2794     mov es, [bp-020h]                         ; 8e 46 e0
    2795     add bx, word [bp-022h]                    ; 03 5e de
     2809    mov es, [bp-02eh]                         ; 8e 46 d2
     2810    add bx, word [bp-01ch]                    ; 03 5e e4
    27962811    mov al, byte [bp-00ah]                    ; 8a 46 f6
    27972812    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
    2798     inc byte [bp-012h]                        ; fe 46 ee
    2799     cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
    2800     jne short 02522h                          ; 75 5d
     2813    inc byte [bp-008h]                        ; fe 46 f8
     2814    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
     2815    jne short 02552h                          ; 75 60
    28012816    mov al, byte [bp-00ah]                    ; 8a 46 f6
    28022817    xor ah, ah                                ; 30 e4
    28032818    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2804     les bx, [bp-022h]                         ; c4 5e de
     2819    mov es, [bp-02eh]                         ; 8e 46 d2
     2820    mov bx, word [bp-01ch]                    ; 8b 5e e4
    28052821    add bx, ax                                ; 01 c3
    28062822    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
    28072823    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    28082824    lea dx, [bp-00264h]                       ; 8d 96 9c fd
    2809     mov bx, word [bp-022h]                    ; 8b 5e de
     2825    mov bx, word [bp-01ch]                    ; 8b 5e e4
    28102826    mov word [es:bx+008h], dx                 ; 26 89 57 08
    28112827    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
     
    28142830    mov cx, strict word 00001h                ; b9 01 00
    28152831    mov bx, 000a1h                            ; bb a1 00
    2816     mov ax, word [bp-022h]                    ; 8b 46 de
     2832    mov ax, word [bp-01ch]                    ; 8b 46 e4
    28172833    mov dx, es                                ; 8c c2
    2818     call 01e63h                               ; e8 63 f9
     2834    call 01e63h                               ; e8 33 f9
    28192835    test ax, ax                               ; 85 c0
    2820     je short 0250fh                           ; 74 0b
     2836    je short 0253fh                           ; 74 0b
    28212837    push 00174h                               ; 68 74 01
    28222838    push strict byte 00007h                   ; 6a 07
    2823     call 01966h                               ; e8 5a f4
     2839    call 01966h                               ; e8 2a f4
    28242840    add sp, strict byte 00004h                ; 83 c4 04
    28252841    mov bl, byte [bp-00263h]                  ; 8a 9e 9d fd
    28262842    and bl, 01fh                              ; 80 e3 1f
    28272843    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
    2828     je short 02524h                           ; 74 07
    2829     mov ax, strict word 00001h                ; b8 01 00
    2830     jmp short 02526h                          ; eb 04
    2831     jmp short 02559h                          ; eb 35
    2832     xor ax, ax                                ; 31 c0
    2833     mov dl, byte [bp-00ah]                    ; 8a 56 f6
    2834     xor dh, dh                                ; 30 f6
    2835     imul dx, dx, strict byte 0001ch           ; 6b d2 1c
    2836     les si, [bp-022h]                         ; c4 76 de
    2837     add si, dx                                ; 01 d6
    2838     mov byte [es:si+023h], bl                 ; 26 88 5c 23
    2839     mov byte [es:si+024h], al                 ; 26 88 44 24
    2840     mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
    2841     mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
    2842     mov bl, byte [bp-008h]                    ; 8a 5e f8
     2844    je short 02554h                           ; 74 07
     2845    mov dx, strict word 00001h                ; ba 01 00
     2846    jmp short 02556h                          ; eb 04
     2847    jmp short 0258ch                          ; eb 38
     2848    xor dx, dx                                ; 31 d2
     2849    mov al, byte [bp-00ah]                    ; 8a 46 f6
     2850    xor ah, ah                                ; 30 e4
     2851    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2852    mov es, [bp-02eh]                         ; 8e 46 d2
     2853    mov di, word [bp-01ch]                    ; 8b 7e e4
     2854    add di, ax                                ; 01 c7
     2855    mov byte [es:di+023h], bl                 ; 26 88 5d 23
     2856    mov byte [es:di+024h], dl                 ; 26 88 55 24
     2857    mov byte [es:di+026h], 000h               ; 26 c6 45 26 00
     2858    mov word [es:di+028h], 00800h             ; 26 c7 45 28 00 08
     2859    mov bl, byte [bp-010h]                    ; 8a 5e f0
    28432860    xor bh, bh                                ; 30 ff
    2844     add bx, word [bp-022h]                    ; 03 5e de
     2861    add bx, word [bp-01ch]                    ; 03 5e e4
    28452862    mov al, byte [bp-00ah]                    ; 8a 46 f6
    28462863    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
    2847     inc byte [bp-008h]                        ; fe 46 f8
    2848     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2864    inc byte [bp-010h]                        ; fe 46 f0
     2865    mov al, byte [bp-00eh]                    ; 8a 46 f2
    28492866    cmp AL, strict byte 003h                  ; 3c 03
    2850     je short 0258dh                           ; 74 2d
     2867    je short 025c3h                           ; 74 30
    28512868    cmp AL, strict byte 002h                  ; 3c 02
    2852     jne short 025bdh                          ; 75 59
     2869    jne short 025f3h                          ; 75 5c
    28532870    mov al, byte [bp-00ah]                    ; 8a 46 f6
    28542871    xor ah, ah                                ; 30 e4
    28552872    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2856     les di, [bp-022h]                         ; c4 7e de
     2873    mov es, [bp-02eh]                         ; 8e 46 d2
     2874    mov di, word [bp-01ch]                    ; 8b 7e e4
    28572875    add di, ax                                ; 01 c7
    28582876    mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
     
    28612879    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    28622880    mov si, strict word 0000bh                ; be 0b 00
    2863     call 0a0e0h                               ; e8 59 7b
    2864     mov word [bp-024h], dx                    ; 89 56 dc
     2881    call 0a120h                               ; e8 63 7b
     2882    mov word [bp-01eh], dx                    ; 89 56 e2
    28652883    mov word [bp-032h], cx                    ; 89 4e ce
    28662884    mov al, byte [bp-001c3h]                  ; 8a 86 3d fe
     
    28692887    sal dx, 008h                              ; c1 e2 08
    28702888    mov al, byte [bp-001c4h]                  ; 8a 86 3c fe
    2871     or dx, ax                                 ; 09 c2
    2872     mov byte [bp-00eh], 00fh                  ; c6 46 f2 0f
    2873     jmp short 025adh                          ; eb 09
    2874     dec byte [bp-00eh]                        ; fe 4e f2
    2875     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2876     jbe short 025b9h                          ; 76 0c
    2877     mov cl, byte [bp-00eh]                    ; 8a 4e f2
    2878     mov ax, strict word 00001h                ; b8 01 00
    2879     sal ax, CL                                ; d3 e0
    2880     test dx, ax                               ; 85 c2
    2881     je short 025a4h                           ; 74 eb
     2889    or ax, dx                                 ; 09 d0
     2890    mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
     2891    jmp short 025e3h                          ; eb 09
     2892    dec byte [bp-00ch]                        ; fe 4e f4
     2893    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     2894    jbe short 025efh                          ; 76 0c
     2895    mov cl, byte [bp-00ch]                    ; 8a 4e f4
     2896    mov dx, strict word 00001h                ; ba 01 00
     2897    sal dx, CL                                ; d3 e2
     2898    test ax, dx                               ; 85 d0
     2899    je short 025dah                           ; 74 eb
    28822900    xor di, di                                ; 31 ff
    2883     jmp short 025c4h                          ; eb 07
    2884     jmp short 025f3h                          ; eb 34
     2901    jmp short 025fah                          ; eb 07
     2902    jmp short 02629h                          ; eb 34
    28852903    cmp di, strict byte 00014h                ; 83 ff 14
    2886     jnl short 025d9h                          ; 7d 15
     2904    jnl short 0260fh                          ; 7d 15
    28872905    mov si, di                                ; 89 fe
    28882906    add si, di                                ; 01 fe
     
    28922910    mov byte [bp+si-063h], al                 ; 88 42 9d
    28932911    inc di                                    ; 47
    2894     jmp short 025bfh                          ; eb e6
     2912    jmp short 025f5h                          ; eb e6
    28952913    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
    28962914    mov di, strict word 00027h                ; bf 27 00
    2897     jmp short 025e7h                          ; eb 05
     2915    jmp short 0261dh                          ; eb 05
    28982916    dec di                                    ; 4f
    28992917    test di, di                               ; 85 ff
    2900     jle short 025f3h                          ; 7e 0c
     2918    jle short 02629h                          ; 7e 0c
    29012919    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
    2902     jne short 025f3h                          ; 75 06
     2920    jne short 02629h                          ; 75 06
    29032921    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
    2904     jmp short 025e2h                          ; eb ef
    2905     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2922    jmp short 02618h                          ; eb ef
     2923    mov al, byte [bp-00eh]                    ; 8a 46 f2
    29062924    cmp AL, strict byte 003h                  ; 3c 03
    2907     je short 02657h                           ; 74 5d
     2925    je short 0268dh                           ; 74 5d
    29082926    cmp AL, strict byte 002h                  ; 3c 02
    2909     je short 02605h                           ; 74 07
     2927    je short 0263bh                           ; 74 07
    29102928    cmp AL, strict byte 001h                  ; 3c 01
    2911     je short 02662h                           ; 74 60
    2912     jmp near 026e3h                           ; e9 de 00
    2913     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2914     je short 02610h                           ; 74 05
     2929    je short 02698h                           ; 74 60
     2930    jmp near 0271ch                           ; e9 e1 00
     2931    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     2932    je short 02646h                           ; 74 05
    29152933    mov ax, 0019fh                            ; b8 9f 01
    2916     jmp short 02613h                          ; eb 03
     2934    jmp short 02649h                          ; eb 03
    29172935    mov ax, 001a6h                            ; b8 a6 01
    29182936    push ax                                   ; 50
    2919     mov al, byte [bp-014h]                    ; 8a 46 ec
     2937    mov al, byte [bp-012h]                    ; 8a 46 ee
    29202938    xor ah, ah                                ; 30 e4
    29212939    push ax                                   ; 50
    29222940    push 001adh                               ; 68 ad 01
    29232941    push strict byte 00002h                   ; 6a 02
    2924     call 01966h                               ; e8 44 f3
     2942    call 01966h                               ; e8 0e f3
    29252943    add sp, strict byte 00008h                ; 83 c4 08
    29262944    xor di, di                                ; 31 ff
     
    29292947    inc di                                    ; 47
    29302948    test ax, ax                               ; 85 c0
    2931     je short 0263fh                           ; 74 0e
     2949    je short 02675h                           ; 74 0e
    29322950    push ax                                   ; 50
    29332951    push 001b8h                               ; 68 b8 01
    29342952    push strict byte 00002h                   ; 6a 02
    2935     call 01966h                               ; e8 2c f3
     2953    call 01966h                               ; e8 f6 f2
    29362954    add sp, strict byte 00006h                ; 83 c4 06
    2937     jmp short 02627h                          ; eb e8
     2955    jmp short 0265dh                          ; eb e8
    29382956    push word [bp-032h]                       ; ff 76 ce
    2939     push word [bp-024h]                       ; ff 76 dc
    2940     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2957    push word [bp-01eh]                       ; ff 76 e2
     2958    mov al, byte [bp-00ch]                    ; 8a 46 f4
    29412959    push ax                                   ; 50
    29422960    push 001bbh                               ; 68 bb 01
    29432961    push strict byte 00002h                   ; 6a 02
    2944     call 01966h                               ; e8 15 f3
     2962    call 01966h                               ; e8 df f2
    29452963    add sp, strict byte 0000ah                ; 83 c4 0a
    2946     jmp near 026e3h                           ; e9 8c 00
    2947     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2948     je short 02664h                           ; 74 07
     2964    jmp near 0271ch                           ; e9 8f 00
     2965    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     2966    je short 0269ah                           ; 74 07
    29492967    mov ax, 0019fh                            ; b8 9f 01
    2950     jmp short 02667h                          ; eb 05
    2951     jmp short 026c3h                          ; eb 5f
     2968    jmp short 0269dh                          ; eb 05
     2969    jmp short 026fch                          ; eb 62
    29522970    mov ax, 001a6h                            ; b8 a6 01
    29532971    push ax                                   ; 50
    2954     mov al, byte [bp-014h]                    ; 8a 46 ec
     2972    mov al, byte [bp-012h]                    ; 8a 46 ee
    29552973    xor ah, ah                                ; 30 e4
    29562974    push ax                                   ; 50
    29572975    push 001adh                               ; 68 ad 01
    29582976    push strict byte 00002h                   ; 6a 02
    2959     call 01966h                               ; e8 f0 f2
     2977    call 01966h                               ; e8 ba f2
    29602978    add sp, strict byte 00008h                ; 83 c4 08
    29612979    xor di, di                                ; 31 ff
     
    29642982    inc di                                    ; 47
    29652983    test ax, ax                               ; 85 c0
    2966     je short 02693h                           ; 74 0e
     2984    je short 026c9h                           ; 74 0e
    29672985    push ax                                   ; 50
    29682986    push 001b8h                               ; 68 b8 01
    29692987    push strict byte 00002h                   ; 6a 02
    2970     call 01966h                               ; e8 d8 f2
     2988    call 01966h                               ; e8 a2 f2
    29712989    add sp, strict byte 00006h                ; 83 c4 06
    2972     jmp short 0267bh                          ; eb e8
     2990    jmp short 026b1h                          ; eb e8
    29732991    mov al, byte [bp-00ah]                    ; 8a 46 f6
    29742992    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2975     les bx, [bp-022h]                         ; c4 5e de
     2993    mov es, [bp-02eh]                         ; 8e 46 d2
     2994    mov bx, word [bp-01ch]                    ; 8b 5e e4
    29762995    add bx, ax                                ; 01 c3
    29772996    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    2978     jne short 026b0h                          ; 75 0b
    2979     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2997    jne short 026e9h                          ; 75 0b
     2998    mov al, byte [bp-00ch]                    ; 8a 46 f4
    29802999    xor ah, ah                                ; 30 e4
    29813000    push ax                                   ; 50
    29823001    push 001dbh                               ; 68 db 01
    2983     jmp short 026b9h                          ; eb 09
    2984     mov al, byte [bp-00eh]                    ; 8a 46 f2
     3002    jmp short 026f2h                          ; eb 09
     3003    mov al, byte [bp-00ch]                    ; 8a 46 f4
    29853004    xor ah, ah                                ; 30 e4
    29863005    push ax                                   ; 50
    29873006    push 001f5h                               ; 68 f5 01
    29883007    push strict byte 00002h                   ; 6a 02
    2989     call 01966h                               ; e8 a8 f2
     3008    call 01966h                               ; e8 6f f2
    29903009    add sp, strict byte 00006h                ; 83 c4 06
    2991     jmp short 026e3h                          ; eb 20
    2992     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2993     je short 026ceh                           ; 74 05
     3010    jmp short 0271ch                          ; eb 20
     3011    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     3012    je short 02707h                           ; 74 05
    29943013    mov ax, 0019fh                            ; b8 9f 01
    2995     jmp short 026d1h                          ; eb 03
     3014    jmp short 0270ah                          ; eb 03
    29963015    mov ax, 001a6h                            ; b8 a6 01
    29973016    push ax                                   ; 50
    2998     mov al, byte [bp-014h]                    ; 8a 46 ec
     3017    mov al, byte [bp-012h]                    ; 8a 46 ee
    29993018    xor ah, ah                                ; 30 e4
    30003019    push ax                                   ; 50
    30013020    push 00207h                               ; 68 07 02
    30023021    push strict byte 00002h                   ; 6a 02
    3003     call 01966h                               ; e8 86 f2
     3022    call 01966h                               ; e8 4d f2
    30043023    add sp, strict byte 00008h                ; 83 c4 08
    30053024    inc byte [bp-00ah]                        ; fe 46 f6
    30063025    cmp byte [bp-00ah], 008h                  ; 80 7e f6 08
    3007     jnc short 0273eh                          ; 73 52
     3026    jnc short 0277ah                          ; 73 55
    30083027    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    30093028    xor bh, bh                                ; 30 ff
     
    30143033    sar ax, 1                                 ; d1 f8
    30153034    mov cx, ax                                ; 89 c1
    3016     mov byte [bp-014h], al                    ; 88 46 ec
     3035    mov byte [bp-012h], al                    ; 88 46 ee
    30173036    mov ax, bx                                ; 89 d8
    30183037    cwd                                       ; 99
    30193038    mov bx, strict word 00002h                ; bb 02 00
    30203039    idiv bx                                   ; f7 fb
    3021     mov word [bp-02eh], dx                    ; 89 56 d2
    3022     mov al, byte [bp-02eh]                    ; 8a 46 d2
    3023     mov byte [bp-010h], al                    ; 88 46 f0
     3040    mov word [bp-034h], dx                    ; 89 56 cc
     3041    mov al, byte [bp-034h]                    ; 8a 46 cc
     3042    mov byte [bp-006h], al                    ; 88 46 fa
    30243043    mov al, cl                                ; 88 c8
    30253044    xor ah, ah                                ; 30 e4
    30263045    imul ax, ax, strict byte 00006h           ; 6b c0 06
    3027     les bx, [bp-022h]                         ; c4 5e de
     3046    mov es, [bp-02eh]                         ; 8e 46 d2
     3047    mov bx, word [bp-01ch]                    ; 8b 5e e4
    30283048    add bx, ax                                ; 01 c3
    30293049    mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
     
    30343054    mov AL, strict byte 00ah                  ; b0 0a
    30353055    out DX, AL                                ; ee
    3036     cmp byte [bp-02eh], 000h                  ; 80 7e d2 00
    3037     jne short 02738h                          ; 75 03
    3038     jmp near 0217ah                           ; e9 42 fa
     3056    cmp byte [bp-034h], 000h                  ; 80 7e cc 00
     3057    jne short 02774h                          ; 75 03
     3058    jmp near 0217ah                           ; e9 06 fa
    30393059    mov ax, 000b0h                            ; b8 b0 00
    3040     jmp near 0217dh                           ; e9 3f fa
    3041     mov al, byte [bp-012h]                    ; 8a 46 ee
    3042     les bx, [bp-022h]                         ; c4 5e de
     3060    jmp near 0217dh                           ; e9 03 fa
     3061    mov al, byte [bp-008h]                    ; 8a 46 f8
     3062    mov es, [bp-02eh]                         ; 8e 46 d2
     3063    mov bx, word [bp-01ch]                    ; 8b 5e e4
    30433064    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
    3044     mov al, byte [bp-008h]                    ; 8a 46 f8
     3065    mov al, byte [bp-010h]                    ; 8a 46 f0
    30453066    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
    3046     mov bl, byte [bp-012h]                    ; 8a 5e ee
     3067    mov bl, byte [bp-008h]                    ; 8a 5e f8
    30473068    xor bh, bh                                ; 30 ff
    30483069    mov dx, strict word 00075h                ; ba 75 00
    30493070    mov ax, strict word 00040h                ; b8 40 00
    3050     call 0165eh                               ; e8 ff ee
     3071    call 0165eh                               ; e8 c0 ee
    30513072    lea sp, [bp-004h]                         ; 8d 66 fc
    30523073    pop di                                    ; 5f
     
    30543075    pop bp                                    ; 5d
    30553076    retn                                      ; c3
    3056 ata_cmd_data_out_:                           ; 0xf2766 LB 0x28a
     3077ata_cmd_data_out_:                           ; 0xf27a5 LB 0x28a
    30573078    push bp                                   ; 55
    30583079    mov bp, sp                                ; 89 e5
     
    30863107    ; sub ah, ah                                ; 2a e4
    30873108    test AL, strict byte 080h                 ; a8 80
    3088     je short 027c5h                           ; 74 0f
     3109    je short 02804h                           ; 74 0f
    30893110    mov dx, word [bp-01ah]                    ; 8b 56 e6
    30903111    add dx, strict byte 00006h                ; 83 c2 06
     
    30923113    out DX, AL                                ; ee
    30933114    mov ax, strict word 00001h                ; b8 01 00
    3094     jmp near 029e9h                           ; e9 24 02
     3115    jmp near 02a28h                           ; e9 24 02
    30953116    mov es, [bp-00ah]                         ; 8e 46 f6
    30963117    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     
    31143135    mov ax, word [bp-014h]                    ; 8b 46 ec
    31153136    test ax, ax                               ; 85 c0
    3116     je short 02810h                           ; 74 03
    3117     jmp near 028d7h                           ; e9 c7 00
     3137    je short 0284fh                           ; 74 03
     3138    jmp near 02916h                           ; e9 c7 00
    31183139    xor bx, bx                                ; 31 db
    31193140    xor dx, dx                                ; 31 d2
     
    31243145    adc dx, word [bp-00ch]                    ; 13 56 f4
    31253146    test dx, dx                               ; 85 d2
    3126     jnbe short 02837h                         ; 77 10
    3127     jne short 0289ah                          ; 75 71
     3147    jnbe short 02876h                         ; 77 10
     3148    jne short 028d9h                          ; 75 71
    31283149    test ax, ax                               ; 85 c0
    3129     jnbe short 02837h                         ; 77 0a
    3130     jne short 0289ah                          ; 75 6b
     3150    jnbe short 02876h                         ; 77 0a
     3151    jne short 028d9h                          ; 75 6b
    31313152    cmp bx, 01000h                            ; 81 fb 00 10
    3132     jnbe short 02837h                         ; 77 02
    3133     jne short 0289ah                          ; 75 63
     3153    jnbe short 02876h                         ; 77 02
     3154    jne short 028d9h                          ; 75 63
    31343155    mov ax, word [bp-00ch]                    ; 8b 46 f4
    31353156    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    31373158    mov dx, word [bp-024h]                    ; 8b 56 dc
    31383159    mov si, strict word 00018h                ; be 18 00
    3139     call 0a0e0h                               ; e8 97 78
     3160    call 0a120h                               ; e8 98 78
    31403161    xor dh, dh                                ; 30 f6
    31413162    mov word [bp-014h], dx                    ; 89 56 ec
     
    31453166    mov dx, word [bp-024h]                    ; 8b 56 dc
    31463167    mov si, strict word 00020h                ; be 20 00
    3147     call 0a0e0h                               ; e8 80 78
     3168    call 0a120h                               ; e8 81 78
    31483169    mov bx, dx                                ; 89 d3
    31493170    mov ax, word [bp-022h]                    ; 8b 46 de
     
    31793200    mov dx, word [bp-024h]                    ; 8b 56 dc
    31803201    mov si, strict word 00008h                ; be 08 00
    3181     call 0a0e0h                               ; e8 2c 78
     3202    call 0a120h                               ; e8 2d 78
    31823203    mov word [bp-00ch], ax                    ; 89 46 f4
    31833204    mov word [bp-00eh], bx                    ; 89 5e f2
     
    31863207    mov word [bp-018h], dx                    ; 89 56 e8
    31873208    mov si, strict word 00010h                ; be 10 00
    3188     call 0a0e0h                               ; e8 17 78
     3209    call 0a120h                               ; e8 18 78
    31893210    mov word [bp-024h], dx                    ; 89 56 dc
    31903211    mov ax, dx                                ; 89 d0
     
    32193240    out DX, AL                                ; ee
    32203241    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3221     je short 02919h                           ; 74 05
     3242    je short 02958h                           ; 74 05
    32223243    mov ax, 000b0h                            ; b8 b0 00
    3223     jmp short 0291ch                          ; eb 03
     3244    jmp short 0295bh                          ; eb 03
    32243245    mov ax, 000a0h                            ; b8 a0 00
    32253246    mov dl, byte [bp-01ch]                    ; 8a 56 e4
     
    32403261    mov bl, al                                ; 88 c3
    32413262    test AL, strict byte 080h                 ; a8 80
    3242     jne short 02934h                          ; 75 f1
     3263    jne short 02973h                          ; 75 f1
    32433264    test AL, strict byte 001h                 ; a8 01
    3244     je short 02956h                           ; 74 0f
     3265    je short 02995h                           ; 74 0f
    32453266    mov dx, word [bp-01ah]                    ; 8b 56 e6
    32463267    add dx, strict byte 00006h                ; 83 c2 06
     
    32483269    out DX, AL                                ; ee
    32493270    mov ax, strict word 00002h                ; b8 02 00
    3250     jmp near 029e9h                           ; e9 93 00
     3271    jmp near 02a28h                           ; e9 93 00
    32513272    test bl, 008h                             ; f6 c3 08
    3252     jne short 0296ah                          ; 75 0f
     3273    jne short 029a9h                          ; 75 0f
    32533274    mov dx, word [bp-01ah]                    ; 8b 56 e6
    32543275    add dx, strict byte 00006h                ; 83 c2 06
     
    32563277    out DX, AL                                ; ee
    32573278    mov ax, strict word 00003h                ; b8 03 00
    3258     jmp near 029e9h                           ; e9 7f 00
     3279    jmp near 02a28h                           ; e9 7f 00
    32593280    sti                                       ; fb
    32603281    mov ax, word [bp-016h]                    ; 8b 46 ea
    32613282    cmp ax, 0f800h                            ; 3d 00 f8
    3262     jc short 02983h                           ; 72 10
     3283    jc short 029c2h                           ; 72 10
    32633284    sub ax, 00800h                            ; 2d 00 08
    32643285    mov dx, word [bp-012h]                    ; 8b 56 ee
     
    32833304    mov bl, al                                ; 88 c3
    32843305    test AL, strict byte 080h                 ; a8 80
    3285     jne short 0299fh                          ; 75 f1
     3306    jne short 029deh                          ; 75 f1
    32863307    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    3287     jne short 029c8h                          ; 75 14
     3308    jne short 02a07h                          ; 75 14
    32883309    and AL, strict byte 0e9h                  ; 24 e9
    32893310    cmp AL, strict byte 040h                  ; 3c 40
    3290     je short 029deh                           ; 74 24
     3311    je short 02a1dh                           ; 74 24
    32913312    mov dx, word [bp-01ah]                    ; 8b 56 e6
    32923313    add dx, strict byte 00006h                ; 83 c2 06
     
    32943315    out DX, AL                                ; ee
    32953316    mov ax, strict word 00006h                ; b8 06 00
    3296     jmp short 029e9h                          ; eb 21
     3317    jmp short 02a28h                          ; eb 21
    32973318    mov al, bl                                ; 88 d8
    32983319    and AL, strict byte 0c9h                  ; 24 c9
    32993320    cmp AL, strict byte 048h                  ; 3c 48
    3300     je short 0296bh                           ; 74 9b
     3321    je short 029aah                           ; 74 9b
    33013322    mov dx, word [bp-01ah]                    ; 8b 56 e6
    33023323    add dx, strict byte 00006h                ; 83 c2 06
     
    33043325    out DX, AL                                ; ee
    33053326    mov ax, strict word 00007h                ; b8 07 00
    3306     jmp short 029e9h                          ; eb 0b
     3327    jmp short 02a28h                          ; eb 0b
    33073328    mov dx, word [bp-01ah]                    ; 8b 56 e6
    33083329    add dx, strict byte 00006h                ; 83 c2 06
     
    33153336    pop bp                                    ; 5d
    33163337    retn                                      ; c3
    3317 @ata_read_sectors:                           ; 0xf29f0 LB 0xb5
     3338@ata_read_sectors:                           ; 0xf2a2f LB 0xb5
    33183339    push bp                                   ; 55
    33193340    mov bp, sp                                ; 89 e5
     
    33283349    sal dx, 009h                              ; c1 e2 09
    33293350    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3330     je short 02a31h                           ; 74 1f
     3351    je short 02a70h                           ; 74 1f
    33313352    xor ah, ah                                ; 30 e4
    33323353    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    33383359    mov ax, si                                ; 89 f0
    33393360    mov dx, es                                ; 8c c2
    3340     call 01e63h                               ; e8 37 f4
     3361    call 01e63h                               ; e8 f8 f3
    33413362    mov es, [bp-00ch]                         ; 8e 46 f4
    3342     jmp short 02a96h                          ; eb 65
     3363    jmp short 02ad5h                          ; eb 65
    33433364    xor bx, bx                                ; 31 db
    33443365    mov word [bp-00ch], bx                    ; 89 5e f4
     
    33553376    adc di, word [bp-006h]                    ; 13 7e fa
    33563377    test di, di                               ; 85 ff
    3357     jnbe short 02a6dh                         ; 77 11
    3358     jne short 02a79h                          ; 75 1b
     3378    jnbe short 02aach                         ; 77 11
     3379    jne short 02ab8h                          ; 75 1b
    33593380    test bx, bx                               ; 85 db
    3360     jnbe short 02a6dh                         ; 77 0b
    3361     jne short 02a79h                          ; 75 15
     3381    jnbe short 02aach                         ; 77 0b
     3382    jne short 02ab8h                          ; 75 15
    33623383    cmp word [bp-008h], 01000h                ; 81 7e f8 00 10
    3363     jnbe short 02a6dh                         ; 77 02
    3364     jne short 02a79h                          ; 75 0c
     3384    jnbe short 02aach                         ; 77 02
     3385    jne short 02ab8h                          ; 75 0c
    33653386    mov bx, strict word 00024h                ; bb 24 00
    33663387    mov ax, si                                ; 89 f0
    33673388    mov dx, es                                ; 8c c2
    3368     call 01e63h                               ; e8 ec f3
    3369     jmp short 02a9ch                          ; eb 23
     3389    call 01e63h                               ; e8 ad f3
     3390    jmp short 02adbh                          ; eb 23
    33703391    xor ah, ah                                ; 30 e4
    33713392    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    33773398    mov ax, si                                ; 89 f0
    33783399    mov dx, es                                ; 8c c2
    3379     call 01e63h                               ; e8 d0 f3
     3400    call 01e63h                               ; e8 91 f3
    33803401    mov es, [bp-006h]                         ; 8e 46 fa
    33813402    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
     
    33853406    pop bp                                    ; 5d
    33863407    retn 00004h                               ; c2 04 00
    3387 @ata_write_sectors:                          ; 0xf2aa5 LB 0x5b
     3408@ata_write_sectors:                          ; 0xf2ae4 LB 0x5b
    33883409    push bp                                   ; 55
    33893410    mov bp, sp                                ; 89 e5
     
    33943415    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
    33953416    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3396     je short 02ac5h                           ; 74 0c
     3417    je short 02b04h                           ; 74 0c
    33973418    mov bx, strict word 00030h                ; bb 30 00
    33983419    mov ax, si                                ; 89 f0
    33993420    mov dx, es                                ; 8c c2
    3400     call 02766h                               ; e8 a3 fc
    3401     jmp short 02af7h                          ; eb 32
     3421    call 027a5h                               ; e8 a3 fc
     3422    jmp short 02b36h                          ; eb 32
    34023423    xor ax, ax                                ; 31 c0
    34033424    xor bx, bx                                ; 31 db
     
    34103431    adc dx, word [es:si+006h]                 ; 26 13 54 06
    34113432    test dx, dx                               ; 85 d2
    3412     jnbe short 02af2h                         ; 77 0f
    3413     jne short 02ab9h                          ; 75 d4
     3433    jnbe short 02b31h                         ; 77 0f
     3434    jne short 02af8h                          ; 75 d4
    34143435    test bx, bx                               ; 85 db
    3415     jnbe short 02af2h                         ; 77 09
    3416     jne short 02ab9h                          ; 75 ce
     3436    jnbe short 02b31h                         ; 77 09
     3437    jne short 02af8h                          ; 75 ce
    34173438    cmp ax, 01000h                            ; 3d 00 10
    3418     jnbe short 02af2h                         ; 77 02
    3419     jne short 02ab9h                          ; 75 c7
     3439    jnbe short 02b31h                         ; 77 02
     3440    jne short 02af8h                          ; 75 c7
    34203441    mov bx, strict word 00034h                ; bb 34 00
    3421     jmp short 02abch                          ; eb c5
     3442    jmp short 02afbh                          ; eb c5
    34223443    lea sp, [bp-004h]                         ; 8d 66 fc
    34233444    pop di                                    ; 5f
     
    34253446    pop bp                                    ; 5d
    34263447    retn 00004h                               ; c2 04 00
    3427 ata_cmd_packet_:                             ; 0xf2b00 LB 0x289
     3448ata_cmd_packet_:                             ; 0xf2b3f LB 0x289
    34283449    push bp                                   ; 55
    34293450    mov bp, sp                                ; 89 e5
     
    34363457    mov dx, strict word 0000eh                ; ba 0e 00
    34373458    mov ax, strict word 00040h                ; b8 40 00
    3438     call 0166ch                               ; e8 55 eb
     3459    call 0166ch                               ; e8 16 eb
    34393460    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    34403461    mov word [bp-012h], ax                    ; 89 46 ee
     
    34453466    mov byte [bp-008h], ah                    ; 88 66 f8
    34463467    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3447     jne short 02b52h                          ; 75 1f
    3448     mov bx, 00da4h                            ; bb a4 0d
     3468    jne short 02b91h                          ; 75 1f
     3469    mov bx, 00da0h                            ; bb a0 0d
    34493470    mov cx, ds                                ; 8c d9
    34503471    mov ax, strict word 00004h                ; b8 04 00
    3451     call 01923h                               ; e8 e5 ed
     3472    call 01923h                               ; e8 a6 ed
    34523473    push 00221h                               ; 68 21 02
    34533474    push 00230h                               ; 68 30 02
    34543475    push strict byte 00004h                   ; 6a 04
    3455     call 01966h                               ; e8 1d ee
     3476    call 01966h                               ; e8 de ed
    34563477    add sp, strict byte 00006h                ; 83 c4 06
    34573478    mov ax, strict word 00001h                ; b8 01 00
    3458     jmp near 02d80h                           ; e9 2e 02
     3479    jmp near 02dbfh                           ; e9 2e 02
    34593480    test byte [bp+004h], 001h                 ; f6 46 04 01
    3460     jne short 02b4ch                          ; 75 f4
     3481    jne short 02b8bh                          ; 75 f4
    34613482    xor ah, ah                                ; 30 e4
    34623483    imul ax, ax, strict byte 00006h           ; 6b c0 06
     
    34733494    mov al, byte [bp-006h]                    ; 8a 46 fa
    34743495    cmp AL, strict byte 00ch                  ; 3c 0c
    3475     jnc short 02b8ah                          ; 73 06
     3496    jnc short 02bc9h                          ; 73 06
    34763497    mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
    3477     jmp short 02b90h                          ; eb 06
    3478     jbe short 02b90h                          ; 76 04
     3498    jmp short 02bcfh                          ; eb 06
     3499    jbe short 02bcfh                          ; 76 04
    34793500    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    34803501    shr byte [bp-006h], 1                     ; d0 6e fa
     
    34903511    ; sub ah, ah                                ; 2a e4
    34913512    test AL, strict byte 080h                 ; a8 80
    3492     je short 02bbeh                           ; 74 06
     3513    je short 02bfdh                           ; 74 06
    34933514    mov ax, strict word 00002h                ; b8 02 00
    3494     jmp near 02d80h                           ; e9 c2 01
     3515    jmp near 02dbfh                           ; e9 c2 01
    34953516    mov dx, word [bp-00eh]                    ; 8b 56 f2
    34963517    add dx, strict byte 00006h                ; 83 c2 06
     
    35063527    out DX, AL                                ; ee
    35073528    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3508     je short 02be4h                           ; 74 05
     3529    je short 02c23h                           ; 74 05
    35093530    mov ax, 000b0h                            ; b8 b0 00
    3510     jmp short 02be7h                          ; eb 03
     3531    jmp short 02c26h                          ; eb 03
    35113532    mov ax, 000a0h                            ; b8 a0 00
    35123533    mov dx, word [bp-00ah]                    ; 8b 56 f6
     
    35243545    mov bx, ax                                ; 89 c3
    35253546    test AL, strict byte 080h                 ; a8 80
    3526     jne short 02bf7h                          ; 75 f1
     3547    jne short 02c36h                          ; 75 f1
    35273548    test AL, strict byte 001h                 ; a8 01
    3528     je short 02c19h                           ; 74 0f
     3549    je short 02c58h                           ; 74 0f
    35293550    mov dx, word [bp-00eh]                    ; 8b 56 f2
    35303551    add dx, strict byte 00006h                ; 83 c2 06
     
    35323553    out DX, AL                                ; ee
    35333554    mov ax, strict word 00003h                ; b8 03 00
    3534     jmp near 02d80h                           ; e9 67 01
     3555    jmp near 02dbfh                           ; e9 67 01
    35353556    test AL, strict byte 008h                 ; a8 08
    3536     jne short 02c2ch                          ; 75 0f
     3557    jne short 02c6bh                          ; 75 0f
    35373558    mov dx, word [bp-00eh]                    ; 8b 56 f2
    35383559    add dx, strict byte 00006h                ; 83 c2 06
     
    35403561    out DX, AL                                ; ee
    35413562    mov ax, strict word 00004h                ; b8 04 00
    3542     jmp near 02d80h                           ; e9 54 01
     3563    jmp near 02dbfh                           ; e9 54 01
    35433564    sti                                       ; fb
    35443565    mov ax, si                                ; 89 f0
     
    35533574    ; rep es outsw                              ; f3 26 6f
    35543575    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3555     jne short 02c53h                          ; 75 09
     3576    jne short 02c92h                          ; 75 09
    35563577    add dx, strict byte 00007h                ; 83 c2 07
    35573578    in AL, DX                                 ; ec
    35583579    db  02ah, 0e4h
    35593580    ; sub ah, ah                                ; 2a e4
    3560     jmp near 02d63h                           ; e9 10 01
     3581    jmp near 02da2h                           ; e9 10 01
    35613582    mov dx, word [bp-00ah]                    ; 8b 56 f6
    35623583    add dx, strict byte 00007h                ; 83 c2 07
     
    35663587    mov bx, ax                                ; 89 c3
    35673588    test AL, strict byte 080h                 ; a8 80
    3568     jne short 02c53h                          ; 75 f1
     3589    jne short 02c92h                          ; 75 f1
    35693590    test AL, strict byte 088h                 ; a8 88
    3570     je short 02cc6h                           ; 74 60
     3591    je short 02d05h                           ; 74 60
    35713592    test AL, strict byte 001h                 ; a8 01
    3572     je short 02c75h                           ; 74 0b
     3593    je short 02cb4h                           ; 74 0b
    35733594    mov dx, word [bp-00eh]                    ; 8b 56 f2
    35743595    add dx, strict byte 00006h                ; 83 c2 06
    35753596    mov AL, strict byte 008h                  ; b0 08
    35763597    out DX, AL                                ; ee
    3577     jmp short 02c13h                          ; eb 9e
     3598    jmp short 02c52h                          ; eb 9e
    35783599    and AL, strict byte 0c9h                  ; 24 c9
    35793600    cmp AL, strict byte 048h                  ; 3c 48
    3580     je short 02c86h                           ; 74 0b
     3601    je short 02cc5h                           ; 74 0b
    35813602    mov dx, word [bp-00eh]                    ; 8b 56 f2
    35823603    add dx, strict byte 00006h                ; 83 c2 06
    35833604    mov AL, strict byte 008h                  ; b0 08
    35843605    out DX, AL                                ; ee
    3585     jmp short 02c26h                          ; eb a0
     3606    jmp short 02c65h                          ; eb a0
    35863607    mov ax, word [bp+00ch]                    ; 8b 46 0c
    35873608    shr ax, 004h                              ; c1 e8 04
     
    36073628    mov ax, word [bp+004h]                    ; 8b 46 04
    36083629    cmp bx, ax                                ; 39 c3
    3609     jnc short 02cc9h                          ; 73 0c
     3630    jnc short 02d08h                          ; 73 0c
    36103631    mov cx, bx                                ; 89 d9
    36113632    sub word [bp+004h], bx                    ; 29 5e 04
    36123633    xor bx, bx                                ; 31 db
    3613     jmp short 02cd2h                          ; eb 0c
    3614     jmp near 02d63h                           ; e9 9a 00
     3634    jmp short 02d11h                          ; eb 0c
     3635    jmp near 02da2h                           ; e9 9a 00
    36153636    mov cx, ax                                ; 89 c1
    36163637    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    36183639    xor ax, ax                                ; 31 c0
    36193640    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3620     jne short 02cf0h                          ; 75 16
     3641    jne short 02d2fh                          ; 75 16
    36213642    cmp bx, word [bp+006h]                    ; 3b 5e 06
    3622     jbe short 02cf0h                          ; 76 11
     3643    jbe short 02d2fh                          ; 76 11
    36233644    sub bx, word [bp+006h]                    ; 2b 5e 06
    36243645    mov word [bp-00ch], bx                    ; 89 5e f4
     
    36263647    mov word [bp+006h], ax                    ; 89 46 06
    36273648    mov word [bp+008h], ax                    ; 89 46 08
    3628     jmp short 02cf9h                          ; eb 09
     3649    jmp short 02d38h                          ; eb 09
    36293650    mov word [bp-00ch], ax                    ; 89 46 f4
    36303651    sub word [bp+006h], bx                    ; 29 5e 06
     
    36353656    test byte [bp-00ch], 003h                 ; f6 46 f4 03
    36363657    test bl, 001h                             ; f6 c3 01
    3637     je short 02d1ah                           ; 74 10
     3658    je short 02d59h                           ; 74 10
    36383659    inc bx                                    ; 43
    36393660    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    3640     jbe short 02d1ah                          ; 76 09
     3661    jbe short 02d59h                          ; 76 09
    36413662    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    3642     je short 02d1ah                           ; 74 03
     3663    je short 02d59h                           ; 74 03
    36433664    dec word [bp-00ch]                        ; ff 4e f4
    36443665    shr bx, 1                                 ; d1 eb
     
    36463667    shr word [bp-00ch], 1                     ; d1 6e f4
    36473668    test cx, cx                               ; 85 c9
    3648     je short 02d2bh                           ; 74 06
     3669    je short 02d6ah                           ; 74 06
    36493670    mov dx, word [bp-00ah]                    ; 8b 56 f6
    36503671    in ax, DX                                 ; ed
    3651     loop 02d28h                               ; e2 fd
     3672    loop 02d67h                               ; e2 fd
    36523673    mov dx, word [bp-00ah]                    ; 8b 56 f6
    36533674    mov cx, bx                                ; 89 d9
     
    36563677    mov ax, word [bp-00ch]                    ; 8b 46 f4
    36573678    test ax, ax                               ; 85 c0
    3658     je short 02d41h                           ; 74 05
     3679    je short 02d80h                           ; 74 05
    36593680    mov cx, ax                                ; 89 c1
    36603681    in ax, DX                                 ; ed
    3661     loop 02d3eh                               ; e2 fd
     3682    loop 02d7dh                               ; e2 fd
    36623683    add word [bp+00ch], si                    ; 01 76 0c
    36633684    xor ax, ax                                ; 31 c0
     
    36703691    mov ax, word [bp-014h]                    ; 8b 46 ec
    36713692    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    3672     jmp near 02c53h                           ; e9 f0 fe
     3693    jmp near 02c92h                           ; e9 f0 fe
    36733694    and AL, strict byte 0e9h                  ; 24 e9
    36743695    cmp AL, strict byte 040h                  ; 3c 40
    3675     je short 02d75h                           ; 74 0c
     3696    je short 02db4h                           ; 74 0c
    36763697    mov dx, word [bp-00eh]                    ; 8b 56 f2
    36773698    add dx, strict byte 00006h                ; 83 c2 06
    36783699    mov AL, strict byte 008h                  ; b0 08
    36793700    out DX, AL                                ; ee
    3680     jmp near 02c26h                           ; e9 b1 fe
     3701    jmp near 02c65h                           ; e9 b1 fe
    36813702    mov dx, word [bp-00eh]                    ; 8b 56 f2
    36823703    add dx, strict byte 00006h                ; 83 c2 06
     
    36893710    pop bp                                    ; 5d
    36903711    retn 0000ch                               ; c2 0c 00
    3691 ata_soft_reset_:                             ; 0xf2d89 LB 0x80
     3712ata_soft_reset_:                             ; 0xf2dc8 LB 0x80
    36923713    push bp                                   ; 55
    36933714    mov bp, sp                                ; 89 e5
     
    36993720    mov dx, strict word 0000eh                ; ba 0e 00
    37003721    mov ax, strict word 00040h                ; b8 40 00
    3701     call 0166ch                               ; e8 d1 e8
     3722    call 0166ch                               ; e8 92 e8
    37023723    mov dx, bx                                ; 89 da
    37033724    shr dx, 1                                 ; d1 ea
     
    37143735    out DX, AL                                ; ee
    37153736    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3716     je short 02dcbh                           ; 74 05
     3737    je short 02e0ah                           ; 74 05
    37173738    mov ax, 000b0h                            ; b8 b0 00
    3718     jmp short 02dceh                          ; eb 03
     3739    jmp short 02e0dh                          ; eb 03
    37193740    mov ax, 000a0h                            ; b8 a0 00
    37203741    mov dx, cx                                ; 89 ca
     
    37313752    ; sub ah, ah                                ; 2a e4
    37323753    test AL, strict byte 080h                 ; a8 80
    3733     jne short 02ddch                          ; 75 f4
     3754    jne short 02e1bh                          ; 75 f4
    37343755    and AL, strict byte 0e9h                  ; 24 e9
    37353756    cmp AL, strict byte 040h                  ; 3c 40
    3736     je short 02df9h                           ; 74 0b
     3757    je short 02e38h                           ; 74 0b
    37373758    lea dx, [bx+006h]                         ; 8d 57 06
    37383759    mov AL, strict byte 008h                  ; b0 08
    37393760    out DX, AL                                ; ee
    37403761    mov ax, strict word 00001h                ; b8 01 00
    3741     jmp short 02e01h                          ; eb 08
     3762    jmp short 02e40h                          ; eb 08
    37423763    lea dx, [bx+006h]                         ; 8d 57 06
    37433764    mov AL, strict byte 008h                  ; b0 08
     
    37503771    pop bp                                    ; 5d
    37513772    retn                                      ; c3
    3752 set_diskette_current_cyl_:                   ; 0xf2e09 LB 0x2b
     3773set_diskette_current_cyl_:                   ; 0xf2e48 LB 0x2b
    37533774    push bp                                   ; 55
    37543775    mov bp, sp                                ; 89 e5
     
    37563777    mov dh, al                                ; 88 c6
    37573778    cmp AL, strict byte 001h                  ; 3c 01
    3758     jbe short 02e1eh                          ; 76 0b
     3779    jbe short 02e5dh                          ; 76 0b
    37593780    push 00250h                               ; 68 50 02
    37603781    push strict byte 00007h                   ; 6a 07
    3761     call 01966h                               ; e8 4b eb
     3782    call 01966h                               ; e8 0c eb
    37623783    add sp, strict byte 00004h                ; 83 c4 04
    37633784    mov bl, dh                                ; 88 f3
     
    37713792    pop bp                                    ; 5d
    37723793    retn                                      ; c3
    3773 floppy_wait_for_interrupt_:                  ; 0xf2e34 LB 0x23
     3794floppy_wait_for_interrupt_:                  ; 0xf2e73 LB 0x23
    37743795    push bp                                   ; 55
    37753796    mov bp, sp                                ; 89 e5
     
    37813802    mov al, byte [es:bx]                      ; 26 8a 07
    37823803    test AL, strict byte 080h                 ; a8 80
    3783     je short 02e4ch                           ; 74 04
     3804    je short 02e8bh                           ; 74 04
    37843805    and AL, strict byte 080h                  ; 24 80
    3785     jmp short 02e51h                          ; eb 05
     3806    jmp short 02e90h                          ; eb 05
    37863807    sti                                       ; fb
    37873808    hlt                                       ; f4
    37883809    cli                                       ; fa
    3789     jmp short 02e39h                          ; eb e8
     3810    jmp short 02e78h                          ; eb e8
    37903811    lea sp, [bp-002h]                         ; 8d 66 fe
    37913812    pop bx                                    ; 5b
    37923813    pop bp                                    ; 5d
    37933814    retn                                      ; c3
    3794 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2e57 LB 0x38
     3815floppy_wait_for_interrupt_or_timeout_:       ; 0xf2e96 LB 0x38
    37953816    push bp                                   ; 55
    37963817    mov bp, sp                                ; 89 e5
     
    38013822    mov al, byte [es:bx]                      ; 26 8a 07
    38023823    test al, al                               ; 84 c0
    3803     jne short 02e6bh                          ; 75 03
     3824    jne short 02eaah                          ; 75 03
    38043825    sti                                       ; fb
    3805     jmp short 02e89h                          ; eb 1e
     3826    jmp short 02ec8h                          ; eb 1e
    38063827    mov bx, strict word 0003eh                ; bb 3e 00
    38073828    mov ax, strict word 00040h                ; b8 40 00
     
    38093830    mov al, byte [es:bx]                      ; 26 8a 07
    38103831    test AL, strict byte 080h                 ; a8 80
    3811     je short 02e84h                           ; 74 0a
     3832    je short 02ec3h                           ; 74 0a
    38123833    mov ah, al                                ; 88 c4
    38133834    and ah, 07fh                              ; 80 e4 7f
    38143835    mov byte [es:bx], ah                      ; 26 88 27
    3815     jmp short 02e89h                          ; eb 05
     3836    jmp short 02ec8h                          ; eb 05
    38163837    sti                                       ; fb
    38173838    hlt                                       ; f4
    38183839    cli                                       ; fa
    3819     jmp short 02e5ch                          ; eb d3
     3840    jmp short 02e9bh                          ; eb d3
    38203841    lea sp, [bp-002h]                         ; 8d 66 fe
    38213842    pop bx                                    ; 5b
    38223843    pop bp                                    ; 5d
    38233844    retn                                      ; c3
    3824 floppy_reset_controller_:                    ; 0xf2e8f LB 0x3f
     3845floppy_reset_controller_:                    ; 0xf2ece LB 0x3f
    38253846    push bp                                   ; 55
    38263847    mov bp, sp                                ; 89 e5
     
    38453866    and AL, strict byte 0c0h                  ; 24 c0
    38463867    cmp AL, strict byte 080h                  ; 3c 80
    3847     jne short 02ea7h                          ; 75 f4
     3868    jne short 02ee6h                          ; 75 f4
    38483869    mov bx, cx                                ; 89 cb
    38493870    add bx, 00090h                            ; 81 c3 90 00
     
    38593880    pop bp                                    ; 5d
    38603881    retn                                      ; c3
    3861 floppy_prepare_controller_:                  ; 0xf2ece LB 0x74
     3882floppy_prepare_controller_:                  ; 0xf2f0d LB 0x74
    38623883    push bp                                   ; 55
    38633884    mov bp, sp                                ; 89 e5
     
    38803901    mov byte [bp-008h], al                    ; 88 46 f8
    38813902    test cx, cx                               ; 85 c9
    3882     je short 02efah                           ; 74 04
     3903    je short 02f39h                           ; 74 04
    38833904    mov AL, strict byte 020h                  ; b0 20
    3884     jmp short 02efch                          ; eb 02
     3905    jmp short 02f3bh                          ; eb 02
    38853906    mov AL, strict byte 010h                  ; b0 10
    38863907    or AL, strict byte 00ch                   ; 0c 0c
     
    39023923    and AL, strict byte 0c0h                  ; 24 c0
    39033924    cmp AL, strict byte 080h                  ; 3c 80
    3904     jne short 02f1ah                          ; 75 f4
     3925    jne short 02f59h                          ; 75 f4
    39053926    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3906     jne short 02f3ah                          ; 75 0e
    3907     call 02e34h                               ; e8 05 ff
     3927    jne short 02f79h                          ; 75 0e
     3928    call 02e73h                               ; e8 05 ff
    39083929    mov bx, strict word 0003eh                ; bb 3e 00
    39093930    mov dx, strict word 00040h                ; ba 40 00
     
    39163937    pop bp                                    ; 5d
    39173938    retn                                      ; c3
    3918 floppy_media_known_:                         ; 0xf2f42 LB 0x49
     3939floppy_media_known_:                         ; 0xf2f81 LB 0x49
    39193940    push bx                                   ; 53
    39203941    push dx                                   ; 52
     
    39273948    mov bl, bh                                ; 88 fb
    39283949    test ax, ax                               ; 85 c0
    3929     je short 02f5ah                           ; 74 02
     3950    je short 02f99h                           ; 74 02
    39303951    shr bl, 1                                 ; d0 eb
    39313952    and bl, 001h                              ; 80 e3 01
    3932     jne short 02f63h                          ; 75 04
     3953    jne short 02fa2h                          ; 75 04
    39333954    xor bh, bh                                ; 30 ff
    3934     jmp short 02f85h                          ; eb 22
     3955    jmp short 02fc4h                          ; eb 22
    39353956    mov bx, 00090h                            ; bb 90 00
    39363957    test ax, ax                               ; 85 c0
    3937     je short 02f6dh                           ; 74 03
     3958    je short 02fach                           ; 74 03
    39383959    mov bx, 00091h                            ; bb 91 00
    39393960    mov ax, strict word 00040h                ; b8 40 00
     
    39433964    sar ax, 004h                              ; c1 f8 04
    39443965    and AL, strict byte 001h                  ; 24 01
    3945     jne short 02f82h                          ; 75 04
     3966    jne short 02fc1h                          ; 75 04
    39463967    xor bx, bx                                ; 31 db
    3947     jmp short 02f85h                          ; eb 03
     3968    jmp short 02fc4h                          ; eb 03
    39483969    mov bx, strict word 00001h                ; bb 01 00
    39493970    mov ax, bx                                ; 89 d8
     
    39523973    pop bx                                    ; 5b
    39533974    retn                                      ; c3
    3954 floppy_read_id_:                             ; 0xf2f8b LB 0x52
     3975floppy_read_id_:                             ; 0xf2fca LB 0x52
    39553976    push bp                                   ; 55
    39563977    mov bp, sp                                ; 89 e5
     
    39593980    push si                                   ; 56
    39603981    mov bx, ax                                ; 89 c3
    3961     call 02eceh                               ; e8 38 ff
     3982    call 02f0dh                               ; e8 38 ff
    39623983    mov AL, strict byte 04ah                  ; b0 4a
    39633984    mov dx, 003f5h                            ; ba f5 03
     
    39653986    mov al, bl                                ; 88 d8
    39663987    out DX, AL                                ; ee
    3967     call 02e34h                               ; e8 92 fe
     3988    call 02e73h                               ; e8 92 fe
    39683989    xor bx, bx                                ; 31 db
    3969     jmp short 02fabh                          ; eb 05
     3990    jmp short 02feah                          ; eb 05
    39703991    cmp bx, strict byte 00007h                ; 83 fb 07
    3971     jnl short 02fbfh                          ; 7d 14
     3992    jnl short 02ffeh                          ; 7d 14
    39723993    mov dx, 003f5h                            ; ba f5 03
    39733994    in AL, DX                                 ; ec
     
    39794000    mov byte [es:si], al                      ; 26 88 04
    39804001    inc bx                                    ; 43
    3981     jmp short 02fa6h                          ; eb e7
     4002    jmp short 02fe5h                          ; eb e7
    39824003    mov bx, strict word 00042h                ; bb 42 00
    39834004    mov ax, strict word 00040h                ; b8 40 00
     
    39854006    mov al, byte [es:bx]                      ; 26 8a 07
    39864007    test AL, strict byte 0c0h                 ; a8 c0
    3987     je short 02fd2h                           ; 74 04
     4008    je short 03011h                           ; 74 04
    39884009    xor ax, ax                                ; 31 c0
    3989     jmp short 02fd5h                          ; eb 03
     4010    jmp short 03014h                          ; eb 03
    39904011    mov ax, strict word 00001h                ; b8 01 00
    39914012    lea sp, [bp-006h]                         ; 8d 66 fa
     
    39954016    pop bp                                    ; 5d
    39964017    retn                                      ; c3
    3997 floppy_drive_recal_:                         ; 0xf2fdd LB 0x41
     4018floppy_drive_recal_:                         ; 0xf301c LB 0x41
    39984019    push bp                                   ; 55
    39994020    mov bp, sp                                ; 89 e5
     
    40024023    push si                                   ; 56
    40034024    mov bx, ax                                ; 89 c3
    4004     call 02eceh                               ; e8 e6 fe
     4025    call 02f0dh                               ; e8 e6 fe
    40054026    mov AL, strict byte 007h                  ; b0 07
    40064027    mov dx, 003f5h                            ; ba f5 03
     
    40084029    mov al, bl                                ; 88 d8
    40094030    out DX, AL                                ; ee
    4010     call 02e34h                               ; e8 40 fe
     4031    call 02e73h                               ; e8 40 fe
    40114032    test bx, bx                               ; 85 db
    4012     je short 02fffh                           ; 74 07
     4033    je short 0303eh                           ; 74 07
    40134034    or AL, strict byte 002h                   ; 0c 02
    40144035    mov bx, 00095h                            ; bb 95 00
    4015     jmp short 03004h                          ; eb 05
     4036    jmp short 03043h                          ; eb 05
    40164037    or AL, strict byte 001h                   ; 0c 01
    40174038    mov bx, 00094h                            ; bb 94 00
     
    40284049    pop bp                                    ; 5d
    40294050    retn                                      ; c3
    4030 floppy_media_sense_:                         ; 0xf301e LB 0xe6
     4051floppy_media_sense_:                         ; 0xf305d LB 0xe6
    40314052    push bp                                   ; 55
    40324053    mov bp, sp                                ; 89 e5
     
    40374058    push di                                   ; 57
    40384059    mov cx, ax                                ; 89 c1
    4039     call 02fddh                               ; e8 b2 ff
     4060    call 0301ch                               ; e8 b2 ff
    40404061    test ax, ax                               ; 85 c0
    4041     jne short 03034h                          ; 75 05
     4062    jne short 03073h                          ; 75 05
    40424063    xor dx, dx                                ; 31 d2
    4043     jmp near 030f8h                           ; e9 c4 00
     4064    jmp near 03137h                           ; e9 c4 00
    40444065    mov ax, strict word 00010h                ; b8 10 00
    4045     call 016ach                               ; e8 72 e6
     4066    call 016ach                               ; e8 33 e6
    40464067    test cx, cx                               ; 85 c9
    4047     jne short 03045h                          ; 75 07
     4068    jne short 03084h                          ; 75 07
    40484069    mov dl, al                                ; 88 c2
    40494070    shr dl, 004h                              ; c0 ea 04
    4050     jmp short 0304ah                          ; eb 05
     4071    jmp short 03089h                          ; eb 05
    40514072    mov dl, al                                ; 88 c2
    40524073    and dl, 00fh                              ; 80 e2 0f
    40534074    cmp dl, 001h                              ; 80 fa 01
    4054     jne short 03058h                          ; 75 09
     4075    jne short 03097h                          ; 75 09
    40554076    xor dl, dl                                ; 30 d2
    40564077    mov DH, strict byte 015h                  ; b6 15
    40574078    mov bx, strict word 00001h                ; bb 01 00
    4058     jmp short 03096h                          ; eb 3e
     4079    jmp short 030d5h                          ; eb 3e
    40594080    cmp dl, 002h                              ; 80 fa 02
    4060     jne short 03063h                          ; 75 06
     4081    jne short 030a2h                          ; 75 06
    40614082    xor dl, dl                                ; 30 d2
    40624083    mov DH, strict byte 035h                  ; b6 35
    4063     jmp short 03053h                          ; eb f0
     4084    jmp short 03092h                          ; eb f0
    40644085    cmp dl, 003h                              ; 80 fa 03
    4065     jne short 0306eh                          ; 75 06
     4086    jne short 030adh                          ; 75 06
    40664087    xor dl, dl                                ; 30 d2
    40674088    mov DH, strict byte 017h                  ; b6 17
    4068     jmp short 03053h                          ; eb e5
     4089    jmp short 03092h                          ; eb e5
    40694090    cmp dl, 004h                              ; 80 fa 04
    4070     jne short 03079h                          ; 75 06
     4091    jne short 030b8h                          ; 75 06
    40714092    xor dl, dl                                ; 30 d2
    40724093    mov DH, strict byte 017h                  ; b6 17
    4073     jmp short 03053h                          ; eb da
     4094    jmp short 03092h                          ; eb da
    40744095    cmp dl, 005h                              ; 80 fa 05
    4075     jne short 03084h                          ; 75 06
     4096    jne short 030c3h                          ; 75 06
    40764097    mov DL, strict byte 0cch                  ; b2 cc
    40774098    mov DH, strict byte 0d7h                  ; b6 d7
    4078     jmp short 03053h                          ; eb cf
     4099    jmp short 03092h                          ; eb cf
    40794100    cmp dl, 00eh                              ; 80 fa 0e
    4080     je short 0308eh                           ; 74 05
     4101    je short 030cdh                           ; 74 05
    40814102    cmp dl, 00fh                              ; 80 fa 0f
    4082     jne short 03090h                          ; 75 02
    4083     jmp short 0307eh                          ; eb ee
     4103    jne short 030cfh                          ; 75 02
     4104    jmp short 030bdh                          ; eb ee
    40844105    xor dl, dl                                ; 30 d2
    40854106    xor dh, dh                                ; 30 f6
     
    40904111    mov byte [es:si], dl                      ; 26 88 14
    40914112    mov ax, cx                                ; 89 c8
    4092     call 02f8bh                               ; e8 e5 fe
     4113    call 02fcah                               ; e8 e5 fe
    40934114    test ax, ax                               ; 85 c0
    4094     jne short 030dch                          ; 75 32
     4115    jne short 0311bh                          ; 75 32
    40954116    mov al, dl                                ; 88 d0
    40964117    and AL, strict byte 0c0h                  ; 24 c0
    40974118    cmp AL, strict byte 080h                  ; 3c 80
    4098     je short 030dch                           ; 74 2a
     4119    je short 0311bh                           ; 74 2a
    40994120    mov al, dl                                ; 88 d0
    41004121    and AL, strict byte 0c0h                  ; 24 c0
    41014122    cmp AL, strict byte 0c0h                  ; 3c c0
    4102     je short 030c9h                           ; 74 0f
     4123    je short 03108h                           ; 74 0f
    41034124    mov ah, dl                                ; 88 d4
    41044125    and ah, 03fh                              ; 80 e4 3f
    41054126    cmp AL, strict byte 040h                  ; 3c 40
    4106     je short 030d5h                           ; 74 12
     4127    je short 03114h                           ; 74 12
    41074128    test al, al                               ; 84 c0
    4108     je short 030ceh                           ; 74 07
    4109     jmp short 03096h                          ; eb cd
     4129    je short 0310dh                           ; 74 07
     4130    jmp short 030d5h                          ; eb cd
    41104131    and dl, 03fh                              ; 80 e2 3f
    4111     jmp short 03096h                          ; eb c8
     4132    jmp short 030d5h                          ; eb c8
    41124133    mov dl, ah                                ; 88 e2
    41134134    or dl, 040h                               ; 80 ca 40
    4114     jmp short 03096h                          ; eb c1
     4135    jmp short 030d5h                          ; eb c1
    41154136    mov dl, ah                                ; 88 e2
    41164137    or dl, 080h                               ; 80 ca 80
    4117     jmp short 03096h                          ; eb ba
     4138    jmp short 030d5h                          ; eb ba
    41184139    test cx, cx                               ; 85 c9
    4119     jne short 030e5h                          ; 75 05
     4140    jne short 03124h                          ; 75 05
    41204141    mov si, 00090h                            ; be 90 00
    4121     jmp short 030e8h                          ; eb 03
     4142    jmp short 03127h                          ; eb 03
    41224143    mov si, 00091h                            ; be 91 00
    41234144    mov di, 0008bh                            ; bf 8b 00
     
    41364157    pop bp                                    ; 5d
    41374158    retn                                      ; c3
    4138 floppy_drive_exists_:                        ; 0xf3104 LB 0x4b
     4159floppy_drive_exists_:                        ; 0xf3143 LB 0x4b
    41394160    push bp                                   ; 55
    41404161    mov bp, sp                                ; 89 e5
     
    41424163    mov dx, ax                                ; 89 c2
    41434164    mov ax, strict word 00010h                ; b8 10 00
    4144     call 016ach                               ; e8 9c e5
     4165    call 016ach                               ; e8 5d e5
    41454166    test dx, dx                               ; 85 d2
    4146     jne short 03119h                          ; 75 05
     4167    jne short 03158h                          ; 75 05
    41474168    shr al, 004h                              ; c0 e8 04
    4148     jmp short 0311bh                          ; eb 02
     4169    jmp short 0315ah                          ; eb 02
    41494170    and AL, strict byte 00fh                  ; 24 0f
    41504171    test al, al                               ; 84 c0
    4151     je short 03124h                           ; 74 05
     4172    je short 03163h                           ; 74 05
    41524173    mov ax, strict word 00001h                ; b8 01 00
    4153     jmp short 03126h                          ; eb 02
     4174    jmp short 03165h                          ; eb 02
    41544175    xor ah, ah                                ; 30 e4
    41554176    lea sp, [bp-002h]                         ; 8d 66 fe
     
    41624183    add AL, strict byte 003h                  ; 04 03
    41634184    add al, byte [bx+di]                      ; 02 01
    4164     add dl, bh                                ; 00 fa
    4165     cmp cl, byte [di+00e31h]                  ; 3a 8d 31 0e
    4166     xor ch, byte [bx]                         ; 32 2f
    4167     xor ch, byte [bx]                         ; 32 2f
    4168     xor ch, byte [bx]                         ; 32 2f
    4169     db  032h, 0e3h
    4170     ; xor ah, bl                                ; 32 e3
    4171     xor ax, 037adh                            ; 35 ad 37
    4172     wait                                      ; 9b
    4173     cmp ch, bl                                ; 38 dd
    4174     cmp byte [bx+di], dl                      ; 38 11
     4185    add byte [bx+di], bh                      ; 00 39
     4186    db  03bh, 0cch
     4187    ; cmp cx, sp                                ; 3b cc
     4188    xor word [di+032h], cx                    ; 31 4d 32
     4189    outsb                                     ; 6e
     4190    xor ch, byte [bp+032h]                    ; 32 6e 32
     4191    outsb                                     ; 6e
     4192    xor ah, byte [bp+si]                      ; 32 22
     4193    db  036h, 0ech
     4194    ; ss in AL, DX                              ; 36 ec
     4195    aaa                                       ; 37
     4196    fidivr dword [bx+si]                      ; da 38
     4197    sbb AL, strict byte 039h                  ; 1c 39
     4198    push ax                                   ; 50
     4199    cmp sp, ax                                ; 39 c4
    41754200    db  039h
    4176     test word [bx+di], di                     ; 85 39
    4177 _int13_diskette_function:                    ; 0xf314f LB 0x9ce
     4201_int13_diskette_function:                    ; 0xf318e LB 0x9ce
    41784202    push bp                                   ; 55
    41794203    mov bp, sp                                ; 89 e5
     
    41834207    shr ax, 008h                              ; c1 e8 08
    41844208    cmp ax, strict word 00018h                ; 3d 18 00
    4185     jnbe short 031c0h                         ; 77 5c
     4209    jnbe short 031ffh                         ; 77 5c
    41864210    push CS                                   ; 0e
    41874211    pop ES                                    ; 07
    41884212    mov cx, strict word 0000ch                ; b9 0c 00
    4189     mov di, 0312ch                            ; bf 2c 31
     4213    mov di, 0316bh                            ; bf 6b 31
    41904214    repne scasb                               ; f2 ae
    41914215    sal cx, 1                                 ; d1 e1
    41924216    mov di, cx                                ; 89 cf
    4193     mov di, word [cs:di+03137h]               ; 2e 8b bd 37 31
     4217    mov di, word [cs:di+03176h]               ; 2e 8b bd 76 31
    41944218    mov dx, word [bp+016h]                    ; 8b 56 16
    41954219    xor dh, dh                                ; 30 f6
     
    42024226    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    42034227    cmp bl, 001h                              ; 80 fb 01
    4204     jbe short 031afh                          ; 76 1a
     4228    jbe short 031eeh                          ; 76 1a
    42054229    mov ax, word [bp+016h]                    ; 8b 46 16
    42064230    xor ah, ah                                ; 30 e4
     
    42114235    mov es, ax                                ; 8e c0
    42124236    mov byte [es:bx], 001h                    ; 26 c6 07 01
    4213     jmp near 039e7h                           ; e9 38 08
     4237    jmp near 03a26h                           ; e9 38 08
    42144238    mov ax, strict word 00010h                ; b8 10 00
    4215     call 016ach                               ; e8 f7 e4
     4239    call 016ach                               ; e8 b8 e4
    42164240    test bl, bl                               ; 84 db
    4217     jne short 031c3h                          ; 75 0a
     4241    jne short 03202h                          ; 75 0a
    42184242    mov dl, al                                ; 88 c2
    42194243    shr dl, 004h                              ; c0 ea 04
    4220     jmp short 031c8h                          ; eb 08
    4221     jmp near 03afah                           ; e9 37 09
     4244    jmp short 03207h                          ; eb 08
     4245    jmp near 03b39h                           ; e9 37 09
    42224246    mov dl, al                                ; 88 c2
    42234247    and dl, 00fh                              ; 80 e2 0f
    42244248    test dl, dl                               ; 84 d2
    4225     jne short 031e6h                          ; 75 1a
     4249    jne short 03225h                          ; 75 1a
    42264250    mov ax, word [bp+016h]                    ; 8b 46 16
    42274251    xor ah, ah                                ; 30 e4
     
    42324256    mov es, ax                                ; 8e c0
    42334257    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4234     jmp near 039e7h                           ; e9 01 08
     4258    jmp near 03a26h                           ; e9 01 08
    42354259    mov si, strict word 0003eh                ; be 3e 00
    42364260    mov ax, strict word 00040h                ; b8 40 00
     
    42454269    xor ah, ah                                ; 30 e4
    42464270    xor dx, dx                                ; 31 d2
    4247     call 02e09h                               ; e8 ff fb
     4271    call 02e48h                               ; e8 ff fb
    42484272    mov sp, bp                                ; 89 ec
    42494273    pop bp                                    ; 5d
     
    42604284    mov word [bp+016h], dx                    ; 89 56 16
    42614285    test bl, bl                               ; 84 db
    4262     je short 0320ah                           ; 74 de
    4263     jmp near 039e7h                           ; e9 b8 07
     4286    je short 03249h                           ; 74 de
     4287    jmp near 03a26h                           ; e9 b8 07
    42644288    mov bh, byte [bp+016h]                    ; 8a 7e 16
    42654289    mov ax, word [bp+014h]                    ; 8b 46 14
     
    42734297    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    42744298    cmp bl, 001h                              ; 80 fb 01
    4275     jnbe short 0325fh                         ; 77 0d
     4299    jnbe short 0329eh                         ; 77 0d
    42764300    cmp AL, strict byte 001h                  ; 3c 01
    4277     jnbe short 0325fh                         ; 77 09
     4301    jnbe short 0329eh                         ; 77 09
    42784302    test bh, bh                               ; 84 ff
    4279     je short 0325fh                           ; 74 05
     4303    je short 0329eh                           ; 74 05
    42804304    cmp bh, 048h                              ; 80 ff 48
    4281     jbe short 03292h                          ; 76 33
    4282     mov bx, 00da4h                            ; bb a4 0d
     4305    jbe short 032d1h                          ; 76 33
     4306    mov bx, 00da0h                            ; bb a0 0d
    42834307    mov cx, ds                                ; 8c d9
    42844308    mov ax, strict word 00004h                ; b8 04 00
    4285     call 01923h                               ; e8 b9 e6
     4309    call 01923h                               ; e8 7a e6
    42864310    push 00275h                               ; 68 75 02
    42874311    push 0028dh                               ; 68 8d 02
    42884312    push strict byte 00004h                   ; 6a 04
    4289     call 01966h                               ; e8 f1 e6
     4313    call 01966h                               ; e8 b2 e6
    42904314    add sp, strict byte 00006h                ; 83 c4 06
    42914315    mov ax, word [bp+016h]                    ; 8b 46 16
     
    42974321    mov es, ax                                ; 8e c0
    42984322    mov byte [es:bx], 001h                    ; 26 c6 07 01
    4299     jmp near 0333ch                           ; e9 aa 00
     4323    jmp near 0337bh                           ; e9 aa 00
    43004324    mov al, bl                                ; 88 d8
    43014325    xor ah, ah                                ; 30 e4
    4302     call 03104h                               ; e8 6b fe
     4326    call 03143h                               ; e8 6b fe
    43034327    test ax, ax                               ; 85 c0
    4304     jne short 032b7h                          ; 75 1a
     4328    jne short 032f6h                          ; 75 1a
    43054329    mov ax, word [bp+016h]                    ; 8b 46 16
    43064330    xor ah, ah                                ; 30 e4
     
    43114335    mov es, ax                                ; 8e c0
    43124336    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4313     jmp near 0333ch                           ; e9 85 00
     4337    jmp near 0337bh                           ; e9 85 00
    43144338    mov cl, bl                                ; 88 d9
    43154339    xor ch, ch                                ; 30 ed
    43164340    mov ax, cx                                ; 89 c8
    4317     call 02f42h                               ; e8 82 fc
     4341    call 02f81h                               ; e8 82 fc
    43184342    test ax, ax                               ; 85 c0
    4319     jne short 032eah                          ; 75 26
     4343    jne short 03329h                          ; 75 26
    43204344    mov ax, cx                                ; 89 c8
    4321     call 0301eh                               ; e8 55 fd
     4345    call 0305dh                               ; e8 55 fd
    43224346    test ax, ax                               ; 85 c0
    4323     jne short 032eah                          ; 75 1d
     4347    jne short 03329h                          ; 75 1d
    43244348    mov ax, word [bp+016h]                    ; 8b 46 16
    43254349    xor ah, ah                                ; 30 e4
     
    43314355    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
    43324356    mov byte [bp+016h], ch                    ; 88 6e 16
    4333     jmp near 039e7h                           ; e9 fd 06
     4357    jmp near 03a26h                           ; e9 fd 06
    43344358    mov ax, word [bp+016h]                    ; 8b 46 16
    43354359    shr ax, 008h                              ; c1 e8 08
    43364360    cmp ax, strict word 00002h                ; 3d 02 00
    4337     jne short 03343h                          ; 75 4e
     4361    jne short 03382h                          ; 75 4e
    43384362    mov dx, word [bp+006h]                    ; 8b 56 06
    43394363    shr dx, 00ch                              ; c1 ea 0c
     
    43454369    mov word [bp-008h], si                    ; 89 76 f8
    43464370    cmp cx, si                                ; 39 f1
    4347     jbe short 03311h                          ; 76 02
     4371    jbe short 03350h                          ; 76 02
    43484372    db  0feh, 0c4h
    43494373    ; inc ah                                    ; fe c4
     
    43564380    add dx, cx                                ; 01 ca
    43574381    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4358     jnc short 03346h                          ; 73 21
     4382    jnc short 03385h                          ; 73 21
    43594383    mov ax, word [bp+016h]                    ; 8b 46 16
    43604384    xor ah, ah                                ; 30 e4
     
    43664390    mov byte [es:bx], 009h                    ; 26 c6 07 09
    43674391    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4368     jmp near 039e7h                           ; e9 a4 06
    4369     jmp near 03493h                           ; e9 4d 01
     4392    jmp near 03a26h                           ; e9 a4 06
     4393    jmp near 034d2h                           ; e9 4d 01
    43704394    mov AL, strict byte 006h                  ; b0 06
    43714395    mov dx, strict word 0000ah                ; ba 0a 00
     
    44034427    xor ch, ch                                ; 30 ed
    44044428    mov ax, cx                                ; 89 c8
    4405     call 02eceh                               ; e8 3c fb
     4429    call 02f0dh                               ; e8 3c fb
    44064430    mov AL, strict byte 0e6h                  ; b0 e6
    44074431    mov dx, 003f5h                            ; ba f5 03
     
    44354459    mov AL, strict byte 0ffh                  ; b0 ff
    44364460    out DX, AL                                ; ee
    4437     call 02e57h                               ; e8 85 fa
     4461    call 02e96h                               ; e8 85 fa
    44384462    test al, al                               ; 84 c0
    4439     jne short 033f5h                          ; 75 1f
     4463    jne short 03434h                          ; 75 1f
    44404464    mov ax, cx                                ; 89 c8
    4441     call 02e8fh                               ; e8 b4 fa
     4465    call 02eceh                               ; e8 b4 fa
    44424466    mov ax, word [bp+016h]                    ; 8b 46 16
    44434467    xor ah, ah                                ; 30 e4
     
    44484472    mov es, ax                                ; 8e c0
    44494473    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4450     jmp near 032e4h                           ; e9 ef fe
     4474    jmp near 03323h                           ; e9 ef fe
    44514475    mov dx, 003f4h                            ; ba f4 03
    44524476    in AL, DX                                 ; ec
     
    44554479    and AL, strict byte 0c0h                  ; 24 c0
    44564480    cmp AL, strict byte 0c0h                  ; 3c c0
    4457     je short 0340fh                           ; 74 0e
     4481    je short 0344eh                           ; 74 0e
    44584482    push 00275h                               ; 68 75 02
    44594483    push 002a8h                               ; 68 a8 02
    44604484    push strict byte 00007h                   ; 6a 07
    4461     call 01966h                               ; e8 5a e5
     4485    call 01966h                               ; e8 1b e5
    44624486    add sp, strict byte 00006h                ; 83 c4 06
    44634487    xor cx, cx                                ; 31 c9
    4464     jmp short 03418h                          ; eb 05
     4488    jmp short 03457h                          ; eb 05
    44654489    cmp cx, strict byte 00007h                ; 83 f9 07
    4466     jnl short 0342eh                          ; 7d 16
     4490    jnl short 0346dh                          ; 7d 16
    44674491    mov dx, 003f5h                            ; ba f5 03
    44684492    in AL, DX                                 ; ec
     
    44754499    mov byte [es:si], al                      ; 26 88 04
    44764500    inc cx                                    ; 41
    4477     jmp short 03413h                          ; eb e5
     4501    jmp short 03452h                          ; eb e5
    44784502    mov si, strict word 00042h                ; be 42 00
    44794503    mov ax, strict word 00040h                ; b8 40 00
     
    44814505    mov al, byte [es:si]                      ; 26 8a 04
    44824506    test AL, strict byte 0c0h                 ; a8 c0
    4483     je short 0345eh                           ; 74 21
     4507    je short 0349dh                           ; 74 21
    44844508    mov al, bl                                ; 88 d8
    44854509    xor ah, ah                                ; 30 e4
    4486     call 02e8fh                               ; e8 4b fa
     4510    call 02eceh                               ; e8 4b fa
    44874511    mov ax, word [bp+016h]                    ; 8b 46 16
    44884512    xor ah, ah                                ; 30 e4
     
    44934517    mov es, ax                                ; 8e c0
    44944518    mov byte [es:bx], 020h                    ; 26 c6 07 20
    4495     jmp near 0333ch                           ; e9 de fe
     4519    jmp near 0337bh                           ; e9 de fe
    44964520    mov al, bh                                ; 88 f8
    44974521    xor ah, ah                                ; 30 e4
     
    45144538    mov al, bl                                ; 88 d8
    45154539    xor ah, ah                                ; 30 e4
    4516     call 02e09h                               ; e8 81 f9
     4540    call 02e48h                               ; e8 81 f9
    45174541    mov byte [bp+017h], 000h                  ; c6 46 17 00
    45184542    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4519     jmp near 0320ah                           ; e9 77 fd
     4543    jmp near 03249h                           ; e9 77 fd
    45204544    mov ax, word [bp+016h]                    ; 8b 46 16
    45214545    shr ax, 008h                              ; c1 e8 08
    45224546    cmp ax, strict word 00003h                ; 3d 03 00
    4523     je short 034a1h                           ; 74 03
    4524     jmp near 035cch                           ; e9 2b 01
     4547    je short 034e0h                           ; 74 03
     4548    jmp near 0360bh                           ; e9 2b 01
    45254549    mov cx, word [bp+006h]                    ; 8b 4e 06
    45264550    shr cx, 00ch                              ; c1 e9 0c
     
    45324556    mov word [bp-008h], si                    ; 89 76 f8
    45334557    cmp dx, si                                ; 39 f2
    4534     jbe short 034bdh                          ; 76 02
     4558    jbe short 034fch                          ; 76 02
    45354559    db  0feh, 0c4h
    45364560    ; inc ah                                    ; fe c4
     
    45434567    add dx, cx                                ; 01 ca
    45444568    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4545     jnc short 034d4h                          ; 73 03
    4546     jmp near 03325h                           ; e9 51 fe
     4569    jnc short 03513h                          ; 73 03
     4570    jmp near 03364h                           ; e9 51 fe
    45474571    mov AL, strict byte 006h                  ; b0 06
    45484572    mov dx, strict word 0000ah                ; ba 0a 00
     
    45804604    xor ch, ch                                ; 30 ed
    45814605    mov ax, cx                                ; 89 c8
    4582     call 02eceh                               ; e8 ae f9
     4606    call 02f0dh                               ; e8 ae f9
    45834607    mov AL, strict byte 0c5h                  ; b0 c5
    45844608    mov dx, 003f5h                            ; ba f5 03
     
    46124636    mov AL, strict byte 0ffh                  ; b0 ff
    46134637    out DX, AL                                ; ee
    4614     call 02e57h                               ; e8 f7 f8
     4638    call 02e96h                               ; e8 f7 f8
    46154639    test al, al                               ; 84 c0
    4616     jne short 03567h                          ; 75 03
    4617     jmp near 033d6h                           ; e9 6f fe
     4640    jne short 035a6h                          ; 75 03
     4641    jmp near 03415h                           ; e9 6f fe
    46184642    mov dx, 003f4h                            ; ba f4 03
    46194643    in AL, DX                                 ; ec
     
    46224646    and AL, strict byte 0c0h                  ; 24 c0
    46234647    cmp AL, strict byte 0c0h                  ; 3c c0
    4624     je short 03581h                           ; 74 0e
     4648    je short 035c0h                           ; 74 0e
    46254649    push 00275h                               ; 68 75 02
    46264650    push 002a8h                               ; 68 a8 02
    46274651    push strict byte 00007h                   ; 6a 07
    4628     call 01966h                               ; e8 e8 e3
     4652    call 01966h                               ; e8 a9 e3
    46294653    add sp, strict byte 00006h                ; 83 c4 06
    46304654    xor cx, cx                                ; 31 c9
    4631     jmp short 0358ah                          ; eb 05
     4655    jmp short 035c9h                          ; eb 05
    46324656    cmp cx, strict byte 00007h                ; 83 f9 07
    4633     jnl short 035a0h                          ; 7d 16
     4657    jnl short 035dfh                          ; 7d 16
    46344658    mov dx, 003f5h                            ; ba f5 03
    46354659    in AL, DX                                 ; ec
     
    46424666    mov byte [es:si], al                      ; 26 88 04
    46434667    inc cx                                    ; 41
    4644     jmp short 03585h                          ; eb e5
     4668    jmp short 035c4h                          ; eb e5
    46454669    mov si, strict word 00042h                ; be 42 00
    46464670    mov ax, strict word 00040h                ; b8 40 00
     
    46484672    mov al, byte [es:si]                      ; 26 8a 04
    46494673    test AL, strict byte 0c0h                 ; a8 c0
    4650     jne short 035b2h                          ; 75 03
    4651     jmp near 0347ch                           ; e9 ca fe
     4674    jne short 035f1h                          ; 75 03
     4675    jmp near 034bbh                           ; e9 ca fe
    46524676    mov bx, strict word 00043h                ; bb 43 00
    46534677    mov al, byte [es:bx]                      ; 26 8a 07
    46544678    test AL, strict byte 002h                 ; a8 02
    4655     je short 035c4h                           ; 74 08
     4679    je short 03603h                           ; 74 08
    46564680    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    4657     jmp near 039e7h                           ; e9 23 04
     4681    jmp near 03a26h                           ; e9 23 04
    46584682    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4659     jmp near 039e7h                           ; e9 1b 04
     4683    jmp near 03a26h                           ; e9 1b 04
    46604684    mov dl, byte [bp-004h]                    ; 8a 56 fc
    46614685    xor dh, dh                                ; 30 f6
    46624686    mov al, bl                                ; 88 d8
    46634687    xor ah, ah                                ; 30 e4
    4664     call 02e09h                               ; e8 31 f8
     4688    call 02e48h                               ; e8 31 f8
    46654689    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    46664690    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4667     jmp near 0320ah                           ; e9 27 fc
     4691    jmp near 03249h                           ; e9 27 fc
    46684692    mov bh, byte [bp+016h]                    ; 8a 7e 16
    46694693    mov ax, word [bp+014h]                    ; 8b 46 14
     
    46754699    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    46764700    cmp bl, 001h                              ; 80 fb 01
    4677     jnbe short 03612h                         ; 77 12
     4701    jnbe short 03651h                         ; 77 12
    46784702    cmp dl, 001h                              ; 80 fa 01
    4679     jnbe short 03612h                         ; 77 0d
     4703    jnbe short 03651h                         ; 77 0d
    46804704    cmp AL, strict byte 04fh                  ; 3c 4f
    4681     jnbe short 03612h                         ; 77 09
     4705    jnbe short 03651h                         ; 77 09
    46824706    test bh, bh                               ; 84 ff
    4683     je short 03612h                           ; 74 05
     4707    je short 03651h                           ; 74 05
    46844708    cmp bh, 012h                              ; 80 ff 12
    4685     jbe short 0362dh                          ; 76 1b
     4709    jbe short 0366ch                          ; 76 1b
    46864710    mov ax, word [bp+016h]                    ; 8b 46 16
    46874711    xor ah, ah                                ; 30 e4
     
    46954719    mov al, bl                                ; 88 d8
    46964720    xor ah, ah                                ; 30 e4
    4697     call 03104h                               ; e8 d0 fa
     4721    call 03143h                               ; e8 d0 fa
    46984722    test ax, ax                               ; 85 c0
    4699     jne short 03652h                          ; 75 1a
     4723    jne short 03691h                          ; 75 1a
    47004724    mov ax, word [bp+016h]                    ; 8b 46 16
    47014725    xor ah, ah                                ; 30 e4
     
    47064730    mov es, ax                                ; 8e c0
    47074731    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4708     jmp near 039e7h                           ; e9 95 03
     4732    jmp near 03a26h                           ; e9 95 03
    47094733    mov cl, bl                                ; 88 d9
    47104734    xor ch, ch                                ; 30 ed
    47114735    mov ax, cx                                ; 89 c8
    4712     call 02f42h                               ; e8 e7 f8
     4736    call 02f81h                               ; e8 e7 f8
    47134737    test ax, ax                               ; 85 c0
    4714     jne short 0366bh                          ; 75 0c
     4738    jne short 036aah                          ; 75 0c
    47154739    mov ax, cx                                ; 89 c8
    4716     call 0301eh                               ; e8 ba f9
     4740    call 0305dh                               ; e8 ba f9
    47174741    test ax, ax                               ; 85 c0
    4718     jne short 0366bh                          ; 75 03
    4719     jmp near 032cdh                           ; e9 62 fc
     4742    jne short 036aah                          ; 75 03
     4743    jmp near 0330ch                           ; e9 62 fc
    47204744    mov cx, word [bp+006h]                    ; 8b 4e 06
    47214745    shr cx, 00ch                              ; c1 e9 0c
     
    47274751    mov word [bp-008h], si                    ; 89 76 f8
    47284752    cmp dx, si                                ; 39 f2
    4729     jbe short 03687h                          ; 76 02
     4753    jbe short 036c6h                          ; 76 02
    47304754    db  0feh, 0c4h
    47314755    ; inc ah                                    ; fe c4
     
    47384762    add dx, cx                                ; 01 ca
    47394763    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4740     jnc short 0369eh                          ; 73 03
    4741     jmp near 03325h                           ; e9 87 fc
     4764    jnc short 036ddh                          ; 73 03
     4765    jmp near 03364h                           ; e9 87 fc
    47424766    mov AL, strict byte 006h                  ; b0 06
    47434767    mov dx, strict word 0000ah                ; ba 0a 00
     
    47754799    xor ch, ch                                ; 30 ed
    47764800    mov ax, cx                                ; 89 c8
    4777     call 02eceh                               ; e8 e4 f7
     4801    call 02f0dh                               ; e8 e4 f7
    47784802    mov AL, strict byte 00fh                  ; b0 0f
    47794803    mov dx, 003f5h                            ; ba f5 03
     
    48034827    mov AL, strict byte 0f6h                  ; b0 f6
    48044828    out DX, AL                                ; ee
    4805     call 02e57h                               ; e8 35 f7
     4829    call 02e96h                               ; e8 35 f7
    48064830    test al, al                               ; 84 c0
    4807     jne short 0372eh                          ; 75 08
     4831    jne short 0376dh                          ; 75 08
    48084832    mov ax, cx                                ; 89 c8
    4809     call 02e8fh                               ; e8 64 f7
    4810     jmp near 03638h                           ; e9 0a ff
     4833    call 02eceh                               ; e8 64 f7
     4834    jmp near 03677h                           ; e9 0a ff
    48114835    mov dx, 003f4h                            ; ba f4 03
    48124836    in AL, DX                                 ; ec
     
    48154839    and AL, strict byte 0c0h                  ; 24 c0
    48164840    cmp AL, strict byte 0c0h                  ; 3c c0
    4817     je short 03748h                           ; 74 0e
     4841    je short 03787h                           ; 74 0e
    48184842    push 00275h                               ; 68 75 02
    48194843    push 002a8h                               ; 68 a8 02
    48204844    push strict byte 00007h                   ; 6a 07
    4821     call 01966h                               ; e8 21 e2
     4845    call 01966h                               ; e8 e2 e1
    48224846    add sp, strict byte 00006h                ; 83 c4 06
    48234847    xor cx, cx                                ; 31 c9
    4824     jmp short 03751h                          ; eb 05
     4848    jmp short 03790h                          ; eb 05
    48254849    cmp cx, strict byte 00007h                ; 83 f9 07
    4826     jnl short 03767h                          ; 7d 16
     4850    jnl short 037a6h                          ; 7d 16
    48274851    mov dx, 003f5h                            ; ba f5 03
    48284852    in AL, DX                                 ; ec
     
    48354859    mov byte [es:si], al                      ; 26 88 04
    48364860    inc cx                                    ; 41
    4837     jmp short 0374ch                          ; eb e5
     4861    jmp short 0378bh                          ; eb e5
    48384862    mov si, strict word 00042h                ; be 42 00
    48394863    mov ax, strict word 00040h                ; b8 40 00
     
    48414865    mov al, byte [es:si]                      ; 26 8a 04
    48424866    test AL, strict byte 0c0h                 ; a8 c0
    4843     je short 03791h                           ; 74 1b
     4867    je short 037d0h                           ; 74 1b
    48444868    mov si, strict word 00043h                ; be 43 00
    48454869    mov al, byte [es:si]                      ; 26 8a 04
    48464870    test AL, strict byte 002h                 ; a8 02
    4847     je short 03783h                           ; 74 03
    4848     jmp near 035bch                           ; e9 39 fe
     4871    je short 037c2h                           ; 74 03
     4872    jmp near 035fbh                           ; e9 39 fe
    48494873    push 00275h                               ; 68 75 02
    48504874    push 002bch                               ; 68 bc 02
    48514875    push strict byte 00007h                   ; 6a 07
    4852     call 01966h                               ; e8 d8 e1
     4876    call 01966h                               ; e8 99 e1
    48534877    add sp, strict byte 00006h                ; 83 c4 06
    48544878    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    48604884    xor ah, ah                                ; 30 e4
    48614885    xor dx, dx                                ; 31 d2
    4862     call 02e09h                               ; e8 5f f6
    4863     jmp near 0348ch                           ; e9 df fc
     4886    call 02e48h                               ; e8 5f f6
     4887    jmp near 034cbh                           ; e9 df fc
    48644888    mov bl, ah                                ; 88 e3
    48654889    cmp ah, 001h                              ; 80 fc 01
    4866     jbe short 037d2h                          ; 76 1e
     4890    jbe short 03811h                          ; 76 1e
    48674891    xor ax, ax                                ; 31 c0
    48684892    mov word [bp+016h], ax                    ; 89 46 16
     
    48754899    xor ah, ah                                ; 30 e4
    48764900    mov word [bp+012h], ax                    ; 89 46 12
    4877     jmp near 038f1h                           ; e9 1f 01
     4901    jmp near 03930h                           ; e9 1f 01
    48784902    mov ax, strict word 00010h                ; b8 10 00
    4879     call 016ach                               ; e8 d4 de
     4903    call 016ach                               ; e8 95 de
    48804904    mov dl, al                                ; 88 c2
    48814905    xor bh, bh                                ; 30 ff
    48824906    test AL, strict byte 0f0h                 ; a8 f0
    4883     je short 037e2h                           ; 74 02
     4907    je short 03821h                           ; 74 02
    48844908    mov BH, strict byte 001h                  ; b7 01
    48854909    test dl, 00fh                             ; f6 c2 0f
    4886     je short 037e9h                           ; 74 02
     4910    je short 03828h                           ; 74 02
    48874911    db  0feh, 0c7h
    48884912    ; inc bh                                    ; fe c7
    48894913    test bl, bl                               ; 84 db
    4890     jne short 037f2h                          ; 75 05
     4914    jne short 03831h                          ; 75 05
    48914915    shr dl, 004h                              ; c0 ea 04
    4892     jmp short 037f5h                          ; eb 03
     4916    jmp short 03834h                          ; eb 03
    48934917    and dl, 00fh                              ; 80 e2 0f
    48944918    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    49064930    mov word [bp+012h], ax                    ; 89 46 12
    49074931    cmp dl, 003h                              ; 80 fa 03
    4908     jc short 03831h                           ; 72 15
    4909     jbe short 03858h                          ; 76 3a
     4932    jc short 03870h                           ; 72 15
     4933    jbe short 03897h                          ; 76 3a
    49104934    cmp dl, 005h                              ; 80 fa 05
    4911     jc short 0385fh                           ; 72 3c
    4912     jbe short 03866h                          ; 76 41
     4935    jc short 0389eh                           ; 72 3c
     4936    jbe short 038a5h                          ; 76 41
    49134937    cmp dl, 00fh                              ; 80 fa 0f
    4914     je short 03874h                           ; 74 4a
     4938    je short 038b3h                           ; 74 4a
    49154939    cmp dl, 00eh                              ; 80 fa 0e
    4916     je short 0386dh                           ; 74 3e
    4917     jmp short 0387bh                          ; eb 4a
     4940    je short 038ach                           ; 74 3e
     4941    jmp short 038bah                          ; eb 4a
    49184942    cmp dl, 002h                              ; 80 fa 02
    4919     je short 03851h                           ; 74 1b
     4943    je short 03890h                           ; 74 1b
    49204944    cmp dl, 001h                              ; 80 fa 01
    4921     je short 0384ah                           ; 74 0f
     4945    je short 03889h                           ; 74 0f
    49224946    test dl, dl                               ; 84 d2
    4923     jne short 0387bh                          ; 75 3c
     4947    jne short 038bah                          ; 75 3c
    49244948    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    49254949    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4926     jmp short 03889h                          ; eb 3f
     4950    jmp short 038c8h                          ; eb 3f
    49274951    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4928     jmp short 03889h                          ; eb 38
     4952    jmp short 038c8h                          ; eb 38
    49294953    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4930     jmp short 03889h                          ; eb 31
     4954    jmp short 038c8h                          ; eb 31
    49314955    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4932     jmp short 03889h                          ; eb 2a
     4956    jmp short 038c8h                          ; eb 2a
    49334957    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4934     jmp short 03889h                          ; eb 23
     4958    jmp short 038c8h                          ; eb 23
    49354959    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4936     jmp short 03889h                          ; eb 1c
     4960    jmp short 038c8h                          ; eb 1c
    49374961    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4938     jmp short 03889h                          ; eb 15
     4962    jmp short 038c8h                          ; eb 15
    49394963    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4940     jmp short 03889h                          ; eb 0e
     4964    jmp short 038c8h                          ; eb 0e
    49414965    push 00275h                               ; 68 75 02
    49424966    push 002cdh                               ; 68 cd 02
    49434967    push strict byte 00007h                   ; 6a 07
    4944     call 01966h                               ; e8 e0 e0
     4968    call 01966h                               ; e8 a1 e0
    49454969    add sp, strict byte 00006h                ; 83 c4 06
    49464970    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    49474971    mov al, dl                                ; 88 d0
    49484972    xor ah, ah                                ; 30 e4
    4949     call 03b1dh                               ; e8 88 02
     4973    call 03b5ch                               ; e8 88 02
    49504974    mov word [bp+008h], ax                    ; 89 46 08
    4951     jmp near 0348ch                           ; e9 f1 fb
     4975    jmp near 034cbh                           ; e9 f1 fb
    49524976    mov bl, ah                                ; 88 e3
    49534977    cmp ah, 001h                              ; 80 fc 01
    4954     jbe short 038a7h                          ; 76 05
     4978    jbe short 038e6h                          ; 76 05
    49554979    mov word [bp+016h], dx                    ; 89 56 16
    4956     jmp short 038f1h                          ; eb 4a
     4980    jmp short 03930h                          ; eb 4a
    49574981    mov ax, strict word 00010h                ; b8 10 00
    4958     call 016ach                               ; e8 ff dd
     4982    call 016ach                               ; e8 c0 dd
    49594983    test bl, bl                               ; 84 db
    4960     jne short 038b8h                          ; 75 07
     4984    jne short 038f7h                          ; 75 07
    49614985    mov dl, al                                ; 88 c2
    49624986    shr dl, 004h                              ; c0 ea 04
    4963     jmp short 038bdh                          ; eb 05
     4987    jmp short 038fch                          ; eb 05
    49644988    mov dl, al                                ; 88 c2
    49654989    and dl, 00fh                              ; 80 e2 0f
     
    49684992    xor ah, ah                                ; 30 e4
    49694993    test dl, dl                               ; 84 d2
    4970     je short 038d7h                           ; 74 0d
     4994    je short 03916h                           ; 74 0d
    49714995    cmp dl, 001h                              ; 80 fa 01
    4972     jbe short 038d4h                          ; 76 05
     4996    jbe short 03913h                          ; 76 05
    49734997    or ah, 002h                               ; 80 cc 02
    4974     jmp short 038d7h                          ; eb 03
     4998    jmp short 03916h                          ; eb 03
    49754999    or ah, 001h                               ; 80 cc 01
    49765000    mov word [bp+016h], ax                    ; 89 46 16
    4977     jmp near 0320ah                           ; e9 2d f9
     5001    jmp near 03249h                           ; e9 2d f9
    49785002    cmp ah, 001h                              ; 80 fc 01
    4979     jbe short 038f7h                          ; 76 15
     5003    jbe short 03936h                          ; 76 15
    49805004    mov word [bp+016h], si                    ; 89 76 16
    49815005    mov bx, strict word 00041h                ; bb 41 00
     
    49845008    mov byte [es:bx], 001h                    ; 26 c6 07 01
    49855009    mov word [bp+01ch], cx                    ; 89 4e 1c
    4986     jmp near 0320ah                           ; e9 13 f9
     5010    jmp near 03249h                           ; e9 13 f9
    49875011    mov ax, word [bp+016h]                    ; 8b 46 16
    49885012    xor ah, ah                                ; 30 e4
     
    49935017    mov es, ax                                ; 8e c0
    49945018    mov byte [es:bx], 006h                    ; 26 c6 07 06
    4995     jmp near 039e7h                           ; e9 d6 00
     5019    jmp near 03a26h                           ; e9 d6 00
    49965020    mov bl, ah                                ; 88 e3
    49975021    mov dl, byte [bp+016h]                    ; 8a 56 16
    49985022    cmp ah, 001h                              ; 80 fc 01
    4999     jnbe short 038e2h                         ; 77 c7
     5023    jnbe short 03921h                         ; 77 c7
    50005024    mov al, bl                                ; 88 d8
    50015025    xor ah, ah                                ; 30 e4
    5002     call 03104h                               ; e8 e2 f7
     5026    call 03143h                               ; e8 e2 f7
    50035027    test ax, ax                               ; 85 c0
    5004     jne short 03929h                          ; 75 03
    5005     jmp near 03638h                           ; e9 0f fd
     5028    jne short 03968h                          ; 75 03
     5029    jmp near 03677h                           ; e9 0f fd
    50065030    test bl, bl                               ; 84 db
    5007     je short 03932h                           ; 74 05
     5031    je short 03971h                           ; 74 05
    50085032    mov bx, 00091h                            ; bb 91 00
    5009     jmp short 03935h                          ; eb 03
     5033    jmp short 03974h                          ; eb 03
    50105034    mov bx, 00090h                            ; bb 90 00
    50115035    mov word [bp-008h], bx                    ; 89 5e f8
     
    50155039    and bl, 00fh                              ; 80 e3 0f
    50165040    cmp dl, 002h                              ; 80 fa 02
    5017     jc short 03957h                           ; 72 0f
    5018     jbe short 03964h                          ; 76 1a
     5041    jc short 03996h                           ; 72 0f
     5042    jbe short 039a3h                          ; 76 1a
    50195043    cmp dl, 004h                              ; 80 fa 04
    5020     je short 0395fh                           ; 74 10
     5044    je short 0399eh                           ; 74 10
    50215045    cmp dl, 003h                              ; 80 fa 03
    5022     je short 03969h                           ; 74 15
    5023     jmp near 03195h                           ; e9 3e f8
     5046    je short 039a8h                           ; 74 15
     5047    jmp near 031d4h                           ; e9 3e f8
    50245048    cmp dl, 001h                              ; 80 fa 01
    5025     je short 0395fh                           ; 74 03
    5026     jmp near 03195h                           ; e9 36 f8
     5049    je short 0399eh                           ; 74 03
     5050    jmp near 031d4h                           ; e9 36 f8
    50275051    or bl, 090h                               ; 80 cb 90
    5028     jmp short 0396ch                          ; eb 08
     5052    jmp short 039abh                          ; eb 08
    50295053    or bl, 070h                               ; 80 cb 70
    5030     jmp short 0396ch                          ; eb 03
     5054    jmp short 039abh                          ; eb 03
    50315055    or bl, 010h                               ; 80 cb 10
    50325056    mov ax, strict word 00040h                ; b8 40 00
     
    50385062    mov bx, strict word 00041h                ; bb 41 00
    50395063    mov byte [es:bx], al                      ; 26 88 07
    5040     jmp near 0348ch                           ; e9 07 fb
     5064    jmp near 034cbh                           ; e9 07 fb
    50415065    mov bl, ah                                ; 88 e3
    50425066    mov dl, byte [bp+014h]                    ; 8a 56 14
     
    50515075    mov byte [bp-004h], dl                    ; 88 56 fc
    50525076    cmp ah, 001h                              ; 80 fc 01
    5053     jbe short 039ach                          ; 76 03
    5054     jmp near 038e2h                           ; e9 36 ff
     5077    jbe short 039ebh                          ; 76 03
     5078    jmp near 03921h                           ; e9 36 ff
    50555079    mov al, bl                                ; 88 d8
    50565080    xor ah, ah                                ; 30 e4
    5057     call 03104h                               ; e8 51 f7
     5081    call 03143h                               ; e8 51 f7
    50585082    test ax, ax                               ; 85 c0
    5059     jne short 039bah                          ; 75 03
    5060     jmp near 03638h                           ; e9 7e fc
     5083    jne short 039f9h                          ; 75 03
     5084    jmp near 03677h                           ; e9 7e fc
    50615085    mov cl, bl                                ; 88 d9
    50625086    xor ch, ch                                ; 30 ed
    50635087    mov ax, cx                                ; 89 c8
    5064     call 02f42h                               ; e8 7f f5
     5088    call 02f81h                               ; e8 7f f5
    50655089    test ax, ax                               ; 85 c0
    5066     jne short 039eeh                          ; 75 27
     5090    jne short 03a2dh                          ; 75 27
    50675091    mov ax, cx                                ; 89 c8
    5068     call 0301eh                               ; e8 52 f6
     5092    call 0305dh                               ; e8 52 f6
    50695093    test ax, ax                               ; 85 c0
    5070     jne short 039eeh                          ; 75 1e
     5094    jne short 03a2dh                          ; 75 1e
    50715095    mov ax, word [bp+016h]                    ; 8b 46 16
    50725096    xor ah, ah                                ; 30 e4
     
    50785102    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
    50795103    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5080     jmp near 0320ah                           ; e9 1c f8
     5104    jmp near 03249h                           ; e9 1c f8
    50815105    mov ax, strict word 00010h                ; b8 10 00
    5082     call 016ach                               ; e8 b8 dc
     5106    call 016ach                               ; e8 79 dc
    50835107    test bl, bl                               ; 84 db
    5084     jne short 039ffh                          ; 75 07
     5108    jne short 03a3eh                          ; 75 07
    50855109    mov dl, al                                ; 88 c2
    50865110    shr dl, 004h                              ; c0 ea 04
    5087     jmp short 03a04h                          ; eb 05
     5111    jmp short 03a43h                          ; eb 05
    50885112    mov dl, al                                ; 88 c2
    50895113    and dl, 00fh                              ; 80 e2 0f
    50905114    test bl, bl                               ; 84 db
    5091     je short 03a0dh                           ; 74 05
     5115    je short 03a4ch                           ; 74 05
    50925116    mov si, 00091h                            ; be 91 00
    5093     jmp short 03a10h                          ; eb 03
     5117    jmp short 03a4fh                          ; eb 03
    50945118    mov si, 00090h                            ; be 90 00
    50955119    mov word [bp-008h], si                    ; 89 76 f8
     
    50995123    and bl, 00fh                              ; 80 e3 0f
    51005124    cmp dl, 003h                              ; 80 fa 03
    5101     jc short 03a3eh                           ; 72 1b
     5125    jc short 03a7dh                           ; 72 1b
    51025126    mov al, bl                                ; 88 d8
    51035127    or AL, strict byte 090h                   ; 0c 90
    51045128    cmp dl, 003h                              ; 80 fa 03
    5105     jbe short 03a7ah                          ; 76 4e
     5129    jbe short 03ab9h                          ; 76 4e
    51065130    mov ah, bl                                ; 88 dc
    51075131    or ah, 010h                               ; 80 cc 10
    51085132    cmp dl, 005h                              ; 80 fa 05
    5109     je short 03a78h                           ; 74 42
     5133    je short 03ab7h                           ; 74 42
    51105134    cmp dl, 004h                              ; 80 fa 04
    5111     je short 03a87h                           ; 74 4c
    5112     jmp near 03abfh                           ; e9 81 00
     5135    je short 03ac6h                           ; 74 4c
     5136    jmp near 03afeh                           ; e9 81 00
    51135137    cmp dl, 002h                              ; 80 fa 02
    5114     je short 03a58h                           ; 74 15
     5138    je short 03a97h                           ; 74 15
    51155139    cmp dl, 001h                              ; 80 fa 01
    5116     jne short 03a8bh                          ; 75 43
     5140    jne short 03acah                          ; 75 43
    51175141    cmp byte [bp-004h], 027h                  ; 80 7e fc 27
    5118     jne short 03a8bh                          ; 75 3d
     5142    jne short 03acah                          ; 75 3d
    51195143    cmp bh, 009h                              ; 80 ff 09
    5120     jne short 03aa1h                          ; 75 4e
     5144    jne short 03ae0h                          ; 75 4e
    51215145    or bl, 090h                               ; 80 cb 90
    5122     jmp short 03aa1h                          ; eb 49
     5146    jmp short 03ae0h                          ; eb 49
    51235147    cmp byte [bp-004h], 027h                  ; 80 7e fc 27
    5124     jne short 03a68h                          ; 75 0a
     5148    jne short 03aa7h                          ; 75 0a
    51255149    cmp bh, 009h                              ; 80 ff 09
    5126     jne short 03a68h                          ; 75 05
     5150    jne short 03aa7h                          ; 75 05
    51275151    or bl, 070h                               ; 80 cb 70
    5128     jmp short 03aa1h                          ; eb 39
     5152    jmp short 03ae0h                          ; eb 39
    51295153    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
    5130     jne short 03abfh                          ; 75 51
     5154    jne short 03afeh                          ; 75 51
    51315155    cmp bh, 00fh                              ; 80 ff 0f
    5132     jne short 03abfh                          ; 75 4c
     5156    jne short 03afeh                          ; 75 4c
    51335157    or bl, 010h                               ; 80 cb 10
    5134     jmp short 03abfh                          ; eb 47
    5135     jmp short 03aa3h                          ; eb 29
     5158    jmp short 03afeh                          ; eb 47
     5159    jmp short 03ae2h                          ; eb 29
    51365160    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
    5137     jne short 03abfh                          ; 75 3f
     5161    jne short 03afeh                          ; 75 3f
    51385162    cmp bh, 009h                              ; 80 ff 09
    5139     je short 03a89h                           ; 74 04
    5140     jmp short 03abfh                          ; eb 38
    5141     jmp short 03a8dh                          ; eb 04
     5163    je short 03ac8h                           ; 74 04
     5164    jmp short 03afeh                          ; eb 38
     5165    jmp short 03acch                          ; eb 04
    51425166    mov bl, al                                ; 88 c3
    5143     jmp short 03abfh                          ; eb 32
     5167    jmp short 03afeh                          ; eb 32
    51445168    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
    5145     jne short 03abfh                          ; 75 2c
     5169    jne short 03afeh                          ; 75 2c
    51465170    cmp bh, 009h                              ; 80 ff 09
    5147     jne short 03a9ah                          ; 75 02
    5148     jmp short 03a89h                          ; eb ef
     5171    jne short 03ad9h                          ; 75 02
     5172    jmp short 03ac8h                          ; eb ef
    51495173    cmp bh, 012h                              ; 80 ff 12
    5150     jne short 03abfh                          ; 75 20
     5174    jne short 03afeh                          ; 75 20
    51515175    mov bl, ah                                ; 88 e3
    5152     jmp short 03abfh                          ; eb 1c
     5176    jmp short 03afeh                          ; eb 1c
    51535177    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
    5154     jne short 03abfh                          ; 75 16
     5178    jne short 03afeh                          ; 75 16
    51555179    cmp bh, 009h                              ; 80 ff 09
    5156     jne short 03ab0h                          ; 75 02
    5157     jmp short 03a89h                          ; eb d9
     5180    jne short 03aefh                          ; 75 02
     5181    jmp short 03ac8h                          ; eb d9
    51585182    cmp bh, 012h                              ; 80 ff 12
    5159     jne short 03ab7h                          ; 75 02
    5160     jmp short 03a9fh                          ; eb e8
     5183    jne short 03af6h                          ; 75 02
     5184    jmp short 03adeh                          ; eb e8
    51615185    cmp bh, 024h                              ; 80 ff 24
    5162     jne short 03abfh                          ; 75 03
     5186    jne short 03afeh                          ; 75 03
    51635187    or bl, 0d0h                               ; 80 cb d0
    51645188    mov al, bl                                ; 88 d8
     
    51665190    sar ax, 004h                              ; c1 f8 04
    51675191    test AL, strict byte 001h                 ; a8 01
    5168     jne short 03acdh                          ; 75 03
    5169     jmp near 039d0h                           ; e9 03 ff
     5192    jne short 03b0ch                          ; 75 03
     5193    jmp near 03a0fh                           ; e9 03 ff
    51705194    mov ax, strict word 00040h                ; b8 40 00
    51715195    mov es, ax                                ; 8e c0
     
    51755199    mov al, dl                                ; 88 d0
    51765200    xor ah, ah                                ; 30 e4
    5177     call 03b1dh                               ; e8 39 00
     5201    call 03b5ch                               ; e8 39 00
    51785202    mov word [bp+008h], ax                    ; 89 46 08
    51795203    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    51825206    mov es, ax                                ; 8e c0
    51835207    mov byte [es:bx], 000h                    ; 26 c6 07 00
    5184     jmp near 0348ch                           ; e9 92 f9
    5185     mov bx, 00da4h                            ; bb a4 0d
     5208    jmp near 034cbh                           ; e9 92 f9
     5209    mov bx, 00da0h                            ; bb a0 0d
    51865210    mov cx, ds                                ; 8c d9
    51875211    mov ax, strict word 00004h                ; b8 04 00
    5188     call 01923h                               ; e8 1e de
     5212    call 01923h                               ; e8 df dd
    51895213    mov ax, word [bp+016h]                    ; 8b 46 16
    51905214    shr ax, 008h                              ; c1 e8 08
     
    51935217    push 002e2h                               ; 68 e2 02
    51945218    push strict byte 00004h                   ; 6a 04
    5195     call 01966h                               ; e8 4f de
     5219    call 01966h                               ; e8 10 de
    51965220    add sp, strict byte 00008h                ; 83 c4 08
    5197     jmp near 03195h                           ; e9 78 f6
    5198 get_floppy_dpt_:                             ; 0xf3b1d LB 0x30
     5221    jmp near 031d4h                           ; e9 78 f6
     5222get_floppy_dpt_:                             ; 0xf3b5c LB 0x30
    51995223    push bx                                   ; 53
    52005224    push dx                                   ; 52
     
    52035227    mov dl, al                                ; 88 c2
    52045228    xor ax, ax                                ; 31 c0
    5205     jmp short 03b2eh                          ; eb 06
     5229    jmp short 03b6dh                          ; eb 06
    52065230    inc ax                                    ; 40
    52075231    cmp ax, strict word 00007h                ; 3d 07 00
    5208     jnc short 03b46h                          ; 73 18
     5232    jnc short 03b85h                          ; 73 18
    52095233    mov bx, ax                                ; 89 c3
    52105234    add bx, ax                                ; 01 c3
    52115235    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5212     jne short 03b28h                          ; 75 f0
     5236    jne short 03b67h                          ; 75 f0
    52135237    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    52145238    xor ah, ah                                ; 30 e4
    52155239    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    52165240    add ax, strict word 00000h                ; 05 00 00
    5217     jmp short 03b49h                          ; eb 03
     5241    jmp short 03b88h                          ; eb 03
    52185242    mov ax, strict word 00041h                ; b8 41 00
    52195243    pop bp                                    ; 5d
     
    52215245    pop bx                                    ; 5b
    52225246    retn                                      ; c3
    5223 dummy_soft_reset_:                           ; 0xf3b4d LB 0x7
     5247dummy_soft_reset_:                           ; 0xf3b8c LB 0x7
    52245248    push bp                                   ; 55
    52255249    mov bp, sp                                ; 89 e5
     
    52275251    pop bp                                    ; 5d
    52285252    retn                                      ; c3
    5229 _cdemu_init:                                 ; 0xf3b54 LB 0x18
     5253_cdemu_init:                                 ; 0xf3b93 LB 0x18
    52305254    push bp                                   ; 55
    52315255    mov bp, sp                                ; 89 e5
    52325256    mov dx, strict word 0000eh                ; ba 0e 00
    52335257    mov ax, strict word 00040h                ; b8 40 00
    5234     call 0166ch                               ; e8 0c db
     5258    call 0166ch                               ; e8 cd da
    52355259    xor bx, bx                                ; 31 db
    52365260    mov dx, 00366h                            ; ba 66 03
    5237     call 0165eh                               ; e8 f6 da
     5261    call 0165eh                               ; e8 b7 da
    52385262    mov sp, bp                                ; 89 ec
    52395263    pop bp                                    ; 5d
    52405264    retn                                      ; c3
    5241 _cdemu_isactive:                             ; 0xf3b6c LB 0x16
     5265_cdemu_isactive:                             ; 0xf3bab LB 0x16
    52425266    push bp                                   ; 55
    52435267    mov bp, sp                                ; 89 e5
    52445268    mov dx, strict word 0000eh                ; ba 0e 00
    52455269    mov ax, strict word 00040h                ; b8 40 00
    5246     call 0166ch                               ; e8 f4 da
     5270    call 0166ch                               ; e8 b5 da
    52475271    mov dx, 00366h                            ; ba 66 03
    5248     call 01650h                               ; e8 d2 da
     5272    call 01650h                               ; e8 93 da
    52495273    mov sp, bp                                ; 89 ec
    52505274    pop bp                                    ; 5d
    52515275    retn                                      ; c3
    5252 _cdemu_emulated_drive:                       ; 0xf3b82 LB 0x16
     5276_cdemu_emulated_drive:                       ; 0xf3bc1 LB 0x16
    52535277    push bp                                   ; 55
    52545278    mov bp, sp                                ; 89 e5
    52555279    mov dx, strict word 0000eh                ; ba 0e 00
    52565280    mov ax, strict word 00040h                ; b8 40 00
    5257     call 0166ch                               ; e8 de da
     5281    call 0166ch                               ; e8 9f da
    52585282    mov dx, 00368h                            ; ba 68 03
    5259     call 01650h                               ; e8 bc da
     5283    call 01650h                               ; e8 7d da
    52605284    mov sp, bp                                ; 89 ec
    52615285    pop bp                                    ; 5d
    52625286    retn                                      ; c3
    5263 _int13_eltorito:                             ; 0xf3b98 LB 0x190
     5287_int13_eltorito:                             ; 0xf3bd7 LB 0x190
    52645288    push bp                                   ; 55
    52655289    mov bp, sp                                ; 89 e5
     
    52685292    mov dx, strict word 0000eh                ; ba 0e 00
    52695293    mov ax, strict word 00040h                ; b8 40 00
    5270     call 0166ch                               ; e8 c6 da
     5294    call 0166ch                               ; e8 87 da
    52715295    mov si, 00366h                            ; be 66 03
    52725296    mov di, ax                                ; 89 c7
     
    52745298    shr ax, 008h                              ; c1 e8 08
    52755299    cmp ax, strict word 0004bh                ; 3d 4b 00
    5276     jc short 03bc0h                           ; 72 0a
    5277     jbe short 03be7h                          ; 76 2f
     5300    jc short 03bffh                           ; 72 0a
     5301    jbe short 03c26h                          ; 76 2f
    52785302    cmp ax, strict word 0004dh                ; 3d 4d 00
    5279     jbe short 03bc5h                          ; 76 08
    5280     jmp near 03cech                           ; e9 2c 01
     5303    jbe short 03c04h                          ; 76 08
     5304    jmp near 03d2bh                           ; e9 2c 01
    52815305    cmp ax, strict word 0004ah                ; 3d 4a 00
    5282     jne short 03be4h                          ; 75 1f
    5283     mov bx, 00da4h                            ; bb a4 0d
     5306    jne short 03c23h                          ; 75 1f
     5307    mov bx, 00da0h                            ; bb a0 0d
    52845308    mov cx, ds                                ; 8c d9
    52855309    mov ax, strict word 00004h                ; b8 04 00
    5286     call 01923h                               ; e8 53 dd
     5310    call 01923h                               ; e8 14 dd
    52875311    push word [bp+016h]                       ; ff 76 16
    52885312    push 002fch                               ; 68 fc 02
    52895313    push 0030bh                               ; 68 0b 03
    52905314    push strict byte 00004h                   ; 6a 04
    5291     call 01966h                               ; e8 88 dd
     5315    call 01966h                               ; e8 49 dd
    52925316    add sp, strict byte 00008h                ; 83 c4 08
    5293     jmp near 03d07h                           ; e9 23 01
    5294     jmp near 03cech                           ; e9 05 01
     5317    jmp near 03d46h                           ; e9 23 01
     5318    jmp near 03d2bh                           ; e9 05 01
    52955319    mov dx, word [bp+00ah]                    ; 8b 56 0a
    52965320    mov ax, word [bp+004h]                    ; 8b 46 04
    52975321    mov bx, strict word 00013h                ; bb 13 00
    5298     call 0165eh                               ; e8 6b da
     5322    call 0165eh                               ; e8 2c da
    52995323    mov es, di                                ; 8e c7
    53005324    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    53035327    inc dx                                    ; 42
    53045328    mov ax, word [bp+004h]                    ; 8b 46 04
    5305     call 0165eh                               ; e8 59 da
     5329    call 0165eh                               ; e8 1a da
    53065330    mov es, di                                ; 8e c7
    53075331    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    53115335    inc dx                                    ; 42
    53125336    mov ax, word [bp+004h]                    ; 8b 46 04
    5313     call 0165eh                               ; e8 46 da
     5337    call 0165eh                               ; e8 07 da
    53145338    mov es, di                                ; 8e c7
    53155339    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    53185342    add dx, strict byte 00003h                ; 83 c2 03
    53195343    mov ax, word [bp+004h]                    ; 8b 46 04
    5320     call 0165eh                               ; e8 32 da
     5344    call 0165eh                               ; e8 f3 d9
    53215345    mov es, di                                ; 8e c7
    53225346    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    53255349    add dx, strict byte 00004h                ; 83 c2 04
    53265350    mov ax, word [bp+004h]                    ; 8b 46 04
    5327     call 0169ah                               ; e8 58 da
     5351    call 0169ah                               ; e8 19 da
    53285352    mov es, di                                ; 8e c7
    53295353    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    53315355    add dx, strict byte 00008h                ; 83 c2 08
    53325356    mov ax, word [bp+004h]                    ; 8b 46 04
    5333     call 0167ah                               ; e8 26 da
     5357    call 0167ah                               ; e8 e7 d9
    53345358    mov es, di                                ; 8e c7
    53355359    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    53375361    add dx, strict byte 0000ah                ; 83 c2 0a
    53385362    mov ax, word [bp+004h]                    ; 8b 46 04
    5339     call 0167ah                               ; e8 14 da
     5363    call 0167ah                               ; e8 d5 d9
    53405364    mov es, di                                ; 8e c7
    53415365    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    53435367    add dx, strict byte 0000ch                ; 83 c2 0c
    53445368    mov ax, word [bp+004h]                    ; 8b 46 04
    5345     call 0167ah                               ; e8 02 da
     5369    call 0167ah                               ; e8 c3 d9
    53465370    mov es, di                                ; 8e c7
    53475371    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    53495373    add dx, strict byte 0000eh                ; 83 c2 0e
    53505374    mov ax, word [bp+004h]                    ; 8b 46 04
    5351     call 0167ah                               ; e8 f0 d9
     5375    call 0167ah                               ; e8 b1 d9
    53525376    mov es, di                                ; 8e c7
    53535377    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    53565380    add dx, strict byte 00010h                ; 83 c2 10
    53575381    mov ax, word [bp+004h]                    ; 8b 46 04
    5358     call 0165eh                               ; e8 c0 d9
     5382    call 0165eh                               ; e8 81 d9
    53595383    mov es, di                                ; 8e c7
    53605384    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    53635387    add dx, strict byte 00011h                ; 83 c2 11
    53645388    mov ax, word [bp+004h]                    ; 8b 46 04
    5365     call 0165eh                               ; e8 ac d9
     5389    call 0165eh                               ; e8 6d d9
    53665390    mov es, di                                ; 8e c7
    53675391    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    53705394    add dx, strict byte 00012h                ; 83 c2 12
    53715395    mov ax, word [bp+004h]                    ; 8b 46 04
    5372     call 0165eh                               ; e8 98 d9
     5396    call 0165eh                               ; e8 59 d9
    53735397    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5374     jne short 03cd2h                          ; 75 06
     5398    jne short 03d11h                          ; 75 06
    53755399    mov es, di                                ; 8e c7
    53765400    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    53795403    mov dx, strict word 00074h                ; ba 74 00
    53805404    mov ax, strict word 00040h                ; b8 40 00
    5381     call 0165eh                               ; e8 7d d9
     5405    call 0165eh                               ; e8 3e d9
    53825406    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    53835407    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53865410    pop bp                                    ; 5d
    53875411    retn                                      ; c3
    5388     mov bx, 00da4h                            ; bb a4 0d
     5412    mov bx, 00da0h                            ; bb a0 0d
    53895413    mov cx, ds                                ; 8c d9
    53905414    mov ax, strict word 00004h                ; b8 04 00
    5391     call 01923h                               ; e8 2c dc
     5415    call 01923h                               ; e8 ed db
    53925416    mov ax, word [bp+016h]                    ; 8b 46 16
    53935417    shr ax, 008h                              ; c1 e8 08
     
    53955419    push 002fch                               ; 68 fc 02
    53965420    push 00333h                               ; 68 33 03
    5397     jmp near 03bd9h                           ; e9 d2 fe
     5421    jmp near 03c18h                           ; e9 d2 fe
    53985422    mov ax, word [bp+016h]                    ; 8b 46 16
    53995423    xor ah, ah                                ; 30 e4
     
    54055429    mov dx, strict word 00074h                ; ba 74 00
    54065430    mov ax, strict word 00040h                ; b8 40 00
    5407     call 0165eh                               ; e8 3c d9
     5431    call 0165eh                               ; e8 fd d8
    54085432    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5409     jmp short 03ce5h                          ; eb bd
    5410 device_is_cdrom_:                            ; 0xf3d28 LB 0x35
     5433    jmp short 03d24h                          ; eb bd
     5434device_is_cdrom_:                            ; 0xf3d67 LB 0x35
    54115435    push bp                                   ; 55
    54125436    mov bp, sp                                ; 89 e5
     
    54165440    mov dx, strict word 0000eh                ; ba 0e 00
    54175441    mov ax, strict word 00040h                ; b8 40 00
    5418     call 0166ch                               ; e8 34 d9
     5442    call 0166ch                               ; e8 f5 d8
    54195443    cmp bl, 010h                              ; 80 fb 10
    5420     jc short 03d41h                           ; 72 04
     5444    jc short 03d80h                           ; 72 04
    54215445    xor ax, ax                                ; 31 c0
    5422     jmp short 03d56h                          ; eb 15
     5446    jmp short 03d95h                          ; eb 15
    54235447    xor bh, bh                                ; 30 ff
    54245448    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    54265450    add bx, 00122h                            ; 81 c3 22 01
    54275451    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5428     jne short 03d3dh                          ; 75 ea
     5452    jne short 03d7ch                          ; 75 ea
    54295453    mov ax, strict word 00001h                ; b8 01 00
    54305454    lea sp, [bp-004h]                         ; 8d 66 fc
     
    54335457    pop bp                                    ; 5d
    54345458    retn                                      ; c3
    5435 cdrom_boot_:                                 ; 0xf3d5d LB 0x435
     5459cdrom_boot_:                                 ; 0xf3d9c LB 0x435
    54365460    push bp                                   ; 55
    54375461    mov bp, sp                                ; 89 e5
     
    54445468    mov dx, strict word 0000eh                ; ba 0e 00
    54455469    mov ax, strict word 00040h                ; b8 40 00
    5446     call 0166ch                               ; e8 fa d8
     5470    call 0166ch                               ; e8 bb d8
    54475471    mov word [bp-012h], ax                    ; 89 46 ee
    54485472    mov si, 00366h                            ; be 66 03
     
    54515475    mov word [bp-010h], ax                    ; 89 46 f0
    54525476    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5453     jmp short 03d92h                          ; eb 09
     5477    jmp short 03dd1h                          ; eb 09
    54545478    inc byte [bp-00ch]                        ; fe 46 f4
    54555479    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5456     jnc short 03d9eh                          ; 73 0c
     5480    jnc short 03dddh                          ; 73 0c
    54575481    mov al, byte [bp-00ch]                    ; 8a 46 f4
    54585482    xor ah, ah                                ; 30 e4
    5459     call 03d28h                               ; e8 8e ff
     5483    call 03d67h                               ; e8 8e ff
    54605484    test ax, ax                               ; 85 c0
    5461     je short 03d89h                           ; 74 eb
     5485    je short 03dc8h                           ; 74 eb
    54625486    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5463     jc short 03daah                           ; 72 06
     5487    jc short 03de9h                           ; 72 06
    54645488    mov ax, strict word 00002h                ; b8 02 00
    5465     jmp near 0412fh                           ; e9 85 03
     5489    jmp near 0416eh                           ; e9 85 03
    54665490    mov cx, strict word 0000ch                ; b9 0c 00
    54675491    xor bx, bx                                ; 31 db
    54685492    mov dx, ss                                ; 8c d2
    54695493    lea ax, [bp-026h]                         ; 8d 46 da
    5470     call 0a100h                               ; e8 49 63
     5494    call 0a140h                               ; e8 4a 63
    54715495    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54725496    mov ax, strict word 00011h                ; b8 11 00
     
    54855509    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    54865510    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5487     jmp short 03df5h                          ; eb 09
     5511    jmp short 03e34h                          ; eb 09
    54885512    inc byte [bp-00eh]                        ; fe 46 f2
    54895513    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5490     jnbe short 03e31h                         ; 77 3c
     5514    jnbe short 03e70h                         ; 77 3c
    54915515    mov al, byte [bp-00ch]                    ; 8a 46 f4
    54925516    xor ah, ah                                ; 30 e4
     
    55125536    call word [word di+0006ah]                ; ff 95 6a 00
    55135537    test ax, ax                               ; 85 c0
    5514     jne short 03dech                          ; 75 bb
     5538    jne short 03e2bh                          ; 75 bb
    55155539    test ax, ax                               ; 85 c0
    5516     je short 03e3bh                           ; 74 06
     5540    je short 03e7ah                           ; 74 06
    55175541    mov ax, strict word 00003h                ; b8 03 00
    5518     jmp near 0412fh                           ; e9 f4 02
     5542    jmp near 0416eh                           ; e9 f4 02
    55195543    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5520     je short 03e48h                           ; 74 06
     5544    je short 03e87h                           ; 74 06
    55215545    mov ax, strict word 00004h                ; b8 04 00
    5522     jmp near 0412fh                           ; e9 e7 02
     5546    jmp near 0416eh                           ; e9 e7 02
    55235547    xor di, di                                ; 31 ff
    5524     jmp short 03e52h                          ; eb 06
     5548    jmp short 03e91h                          ; eb 06
    55255549    inc di                                    ; 47
    55265550    cmp di, strict byte 00005h                ; 83 ff 05
    5527     jnc short 03e62h                          ; 73 10
     5551    jnc short 03ea1h                          ; 73 10
    55285552    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5529     cmp al, byte [di+00dach]                  ; 3a 85 ac 0d
    5530     je short 03e4ch                           ; 74 f0
     5553    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
     5554    je short 03e8bh                           ; 74 f0
    55315555    mov ax, strict word 00005h                ; b8 05 00
    5532     jmp near 0412fh                           ; e9 cd 02
     5556    jmp near 0416eh                           ; e9 cd 02
    55335557    xor di, di                                ; 31 ff
    5534     jmp short 03e6ch                          ; eb 06
     5558    jmp short 03eabh                          ; eb 06
    55355559    inc di                                    ; 47
    55365560    cmp di, strict byte 00017h                ; 83 ff 17
    5537     jnc short 03e7ch                          ; 73 10
     5561    jnc short 03ebbh                          ; 73 10
    55385562    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5539     cmp al, byte [di+00db2h]                  ; 3a 85 b2 0d
    5540     je short 03e66h                           ; 74 f0
     5563    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
     5564    je short 03ea5h                           ; 74 f0
    55415565    mov ax, strict word 00006h                ; b8 06 00
    5542     jmp near 0412fh                           ; e9 b3 02
     5566    jmp near 0416eh                           ; e9 b3 02
    55435567    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    55445568    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    55755599    call word [word di+0006ah]                ; ff 95 6a 00
    55765600    test ax, ax                               ; 85 c0
    5577     je short 03edeh                           ; 74 06
     5601    je short 03f1dh                           ; 74 06
    55785602    mov ax, strict word 00007h                ; b8 07 00
    5579     jmp near 0412fh                           ; e9 51 02
     5603    jmp near 0416eh                           ; e9 51 02
    55805604    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5581     je short 03eebh                           ; 74 06
     5605    je short 03f2ah                           ; 74 06
    55825606    mov ax, strict word 00008h                ; b8 08 00
    5583     jmp near 0412fh                           ; e9 44 02
     5607    jmp near 0416eh                           ; e9 44 02
    55845608    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5585     je short 03ef8h                           ; 74 06
     5609    je short 03f37h                           ; 74 06
    55865610    mov ax, strict word 00009h                ; b8 09 00
    5587     jmp near 0412fh                           ; e9 37 02
     5611    jmp near 0416eh                           ; e9 37 02
    55885612    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5589     je short 03f05h                           ; 74 06
     5613    je short 03f44h                           ; 74 06
    55905614    mov ax, strict word 0000ah                ; b8 0a 00
    5591     jmp near 0412fh                           ; e9 2a 02
     5615    jmp near 0416eh                           ; e9 2a 02
    55925616    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5593     jne short 03effh                          ; 75 f3
     5617    jne short 03f3eh                          ; 75 f3
    55945618    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5595     je short 03f19h                           ; 74 06
     5619    je short 03f58h                           ; 74 06
    55965620    mov ax, strict word 0000bh                ; b8 0b 00
    5597     jmp near 0412fh                           ; e9 16 02
     5621    jmp near 0416eh                           ; e9 16 02
    55985622    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    55995623    mov es, [bp-014h]                         ; 8e 46 ec
    56005624    mov byte [es:si+001h], al                 ; 26 88 44 01
    56015625    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5602     jne short 03f32h                          ; 75 07
     5626    jne short 03f71h                          ; 75 07
    56035627    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5604     jmp short 03f45h                          ; eb 13
     5628    jmp short 03f84h                          ; eb 13
    56055629    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5606     jnc short 03f40h                          ; 73 07
     5630    jnc short 03f7fh                          ; 73 07
    56075631    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5608     jmp short 03f45h                          ; eb 05
     5632    jmp short 03f84h                          ; eb 05
    56095633    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    56105634    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    56255649    mov word [bp-01ah], ax                    ; 89 46 e6
    56265650    test ax, ax                               ; 85 c0
    5627     jne short 03f74h                          ; 75 05
     5651    jne short 03fb3h                          ; 75 05
    56285652    mov word [bp-01ah], 007c0h                ; c7 46 e6 c0 07
    56295653    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    56345658    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    56355659    test di, di                               ; 85 ff
    5636     je short 03f96h                           ; 74 06
     5660    je short 03fd5h                           ; 74 06
    56375661    cmp di, 00400h                            ; 81 ff 00 04
    5638     jbe short 03f9ch                          ; 76 06
     5662    jbe short 03fdbh                          ; 76 06
    56395663    mov ax, strict word 0000ch                ; b8 0c 00
    5640     jmp near 0412fh                           ; e9 93 01
     5664    jmp near 0416eh                           ; e9 93 01
    56415665    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    56425666    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    56825706    sal ax, 1                                 ; d1 e0
    56835707    rcl di, 1                                 ; d1 d7
    5684     loop 04010h                               ; e2 fa
     5708    loop 0404fh                               ; e2 fa
    56855709    push di                                   ; 57
    56865710    push ax                                   ; 50
     
    56975721    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    56985722    test ax, ax                               ; 85 c0
    5699     je short 04044h                           ; 74 06
     5723    je short 04083h                           ; 74 06
    57005724    mov ax, strict word 0000dh                ; b8 0d 00
    5701     jmp near 0412fh                           ; e9 eb 00
     5725    jmp near 0416eh                           ; e9 eb 00
    57025726    mov es, [bp-014h]                         ; 8e 46 ec
    57035727    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    57045728    cmp AL, strict byte 002h                  ; 3c 02
    5705     jc short 0405ch                           ; 72 0d
    5706     jbe short 04077h                          ; 76 26
     5729    jc short 0409bh                           ; 72 0d
     5730    jbe short 040b6h                          ; 76 26
    57075731    cmp AL, strict byte 004h                  ; 3c 04
    5708     je short 04087h                           ; 74 32
     5732    je short 040c6h                           ; 74 32
    57095733    cmp AL, strict byte 003h                  ; 3c 03
    5710     je short 0407fh                           ; 74 26
    5711     jmp near 040d4h                           ; e9 78 00
     5734    je short 040beh                           ; 74 26
     5735    jmp near 04113h                           ; e9 78 00
    57125736    cmp AL, strict byte 001h                  ; 3c 01
    5713     jne short 040d4h                          ; 75 74
     5737    jne short 04113h                          ; 75 74
    57145738    mov es, [bp-014h]                         ; 8e 46 ec
    57155739    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    57165740    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    57175741    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5718     jmp short 040d4h                          ; eb 5d
     5742    jmp short 04113h                          ; eb 5d
    57195743    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5720     jmp short 04069h                          ; eb ea
     5744    jmp short 040a8h                          ; eb ea
    57215745    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5722     jmp short 04069h                          ; eb e2
     5746    jmp short 040a8h                          ; eb e2
    57235747    mov dx, 001c4h                            ; ba c4 01
    57245748    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5725     call 01650h                               ; e8 c0 d5
     5749    call 01650h                               ; e8 81 d5
    57265750    and AL, strict byte 03fh                  ; 24 3f
    57275751    xor ah, ah                                ; 30 e4
     
    57305754    mov dx, 001c4h                            ; ba c4 01
    57315755    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5732     call 01650h                               ; e8 ac d5
     5756    call 01650h                               ; e8 6d d5
    57335757    and ax, 000c0h                            ; 25 c0 00
    57345758    mov bx, ax                                ; 89 c3
     
    57365760    mov dx, 001c5h                            ; ba c5 01
    57375761    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5738     call 01650h                               ; e8 9b d5
     5762    call 01650h                               ; e8 5c d5
    57395763    xor ah, ah                                ; 30 e4
    57405764    add ax, bx                                ; 01 d8
     
    57445768    mov dx, 001c3h                            ; ba c3 01
    57455769    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5746     call 01650h                               ; e8 86 d5
     5770    call 01650h                               ; e8 47 d5
    57475771    xor ah, ah                                ; 30 e4
    57485772    inc ax                                    ; 40
     
    57515775    mov es, [bp-014h]                         ; 8e 46 ec
    57525776    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5753     je short 04115h                           ; 74 37
     5777    je short 04154h                           ; 74 37
    57545778    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5755     jne short 040fdh                          ; 75 18
     5779    jne short 0413ch                          ; 75 18
    57565780    mov dx, strict word 00010h                ; ba 10 00
    57575781    mov ax, strict word 00040h                ; b8 40 00
    5758     call 01650h                               ; e8 62 d5
     5782    call 01650h                               ; e8 23 d5
    57595783    mov bl, al                                ; 88 c3
    57605784    or bl, 041h                               ; 80 cb 41
     
    57625786    mov dx, strict word 00010h                ; ba 10 00
    57635787    mov ax, strict word 00040h                ; b8 40 00
    5764     jmp short 04112h                          ; eb 15
     5788    jmp short 04151h                          ; eb 15
    57655789    mov dx, 00304h                            ; ba 04 03
    57665790    mov ax, word [bp-012h]                    ; 8b 46 ee
    5767     call 01650h                               ; e8 4a d5
     5791    call 01650h                               ; e8 0b d5
    57685792    mov bl, al                                ; 88 c3
    57695793    db  0feh, 0c3h
     
    57725796    mov dx, 00304h                            ; ba 04 03
    57735797    mov ax, word [bp-012h]                    ; 8b 46 ee
    5774     call 0165eh                               ; e8 49 d5
     5798    call 0165eh                               ; e8 0a d5
    57755799    mov es, [bp-014h]                         ; 8e 46 ec
    57765800    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5777     je short 04123h                           ; 74 04
     5801    je short 04162h                           ; 74 04
    57785802    mov byte [es:si], 001h                    ; 26 c6 04 01
    57795803    mov es, [bp-014h]                         ; 8e 46 ec
     
    57905814    retn                                      ; c3
    57915815    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5792     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 038h, 045h, 037h
    5793     db  042h, 06ah, 042h, 094h, 042h, 05fh, 042h, 094h, 042h, 05fh, 042h, 086h, 044h, 06ch, 044h, 038h
    5794     db  045h, 038h, 045h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 02fh, 045h, 06ch
    5795     db  044h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h
    5796     db  045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h
    5797 _int13_cdemu:                                ; 0xf4192 LB 0x442
     5816    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 077h, 045h, 076h
     5817    db  042h, 0a9h, 042h, 0d3h, 042h, 09eh, 042h, 0d3h, 042h, 09eh, 042h, 0c5h, 044h, 0abh, 044h, 077h
     5818    db  045h, 077h, 045h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 06eh, 045h, 0abh
     5819    db  044h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h
     5820    db  045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h
     5821_int13_cdemu:                                ; 0xf41d1 LB 0x442
    57985822    push bp                                   ; 55
    57995823    mov bp, sp                                ; 89 e5
     
    58035827    mov dx, strict word 0000eh                ; ba 0e 00
    58045828    mov ax, strict word 00040h                ; b8 40 00
    5805     call 0166ch                               ; e8 c9 d4
     5829    call 0166ch                               ; e8 8a d4
    58065830    mov di, 00366h                            ; bf 66 03
    58075831    mov cx, ax                                ; 89 c1
     
    58195843    mov dx, strict word 00074h                ; ba 74 00
    58205844    mov ax, strict word 00040h                ; b8 40 00
    5821     call 0165eh                               ; e8 8c d4
     5845    call 0165eh                               ; e8 4d d4
    58225846    mov es, cx                                ; 8e c1
    58235847    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5824     je short 041e9h                           ; 74 0f
     5848    je short 04228h                           ; 74 0f
    58255849    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    58265850    xor ah, ah                                ; 30 e4
     
    58285852    xor dh, dh                                ; 30 f6
    58295853    cmp ax, dx                                ; 39 d0
    5830     je short 04212h                           ; 74 29
    5831     mov bx, 00da4h                            ; bb a4 0d
     5854    je short 04251h                           ; 74 29
     5855    mov bx, 00da0h                            ; bb a0 0d
    58325856    mov cx, ds                                ; 8c d9
    58335857    mov ax, strict word 00004h                ; b8 04 00
    5834     call 01923h                               ; e8 2f d7
     5858    call 01923h                               ; e8 f0 d6
    58355859    mov ax, word [bp+012h]                    ; 8b 46 12
    58365860    xor ah, ah                                ; 30 e4
     
    58425866    push 00358h                               ; 68 58 03
    58435867    push strict byte 00004h                   ; 6a 04
    5844     call 01966h                               ; e8 5a d7
     5868    call 01966h                               ; e8 1b d7
    58455869    add sp, strict byte 0000ah                ; 83 c4 0a
    5846     jmp near 04558h                           ; e9 46 03
     5870    jmp near 04597h                           ; e9 46 03
    58475871    mov ax, word [bp+016h]                    ; 8b 46 16
    58485872    shr ax, 008h                              ; c1 e8 08
    58495873    cmp ax, strict word 00050h                ; 3d 50 00
    5850     jnbe short 04291h                         ; 77 74
     5874    jnbe short 042d0h                         ; 77 74
    58515875    push CS                                   ; 0e
    58525876    pop ES                                    ; 07
    58535877    mov cx, strict word 0001eh                ; b9 1e 00
    5854     mov di, 04139h                            ; bf 39 41
     5878    mov di, 04178h                            ; bf 78 41
    58555879    repne scasb                               ; f2 ae
    58565880    sal cx, 1                                 ; d1 e1
    58575881    mov di, cx                                ; 89 cf
    5858     mov ax, word [cs:di+04156h]               ; 2e 8b 85 56 41
     5882    mov ax, word [cs:di+04195h]               ; 2e 8b 85 95 41
    58595883    mov bx, word [bp+016h]                    ; 8b 5e 16
    58605884    xor bh, bh                                ; 30 ff
     
    58695893    add bx, bx                                ; 01 db
    58705894    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5871     je short 0425ch                           ; 74 09
     5895    je short 0429bh                           ; 74 09
    58725896    mov al, byte [bp-006h]                    ; 8a 46 fa
    58735897    xor ah, ah                                ; 30 e4
    58745898    call word [word bx+00076h]                ; ff 97 76 00
    5875     jmp near 0446ch                           ; e9 0d 02
     5899    jmp near 044abh                           ; e9 0d 02
    58765900    mov ax, word [bp+016h]                    ; 8b 46 16
    58775901    xor ah, ah                                ; 30 e4
    58785902    or ah, 003h                               ; 80 cc 03
    5879     jmp near 04560h                           ; e9 f6 02
     5903    jmp near 0459fh                           ; e9 f6 02
    58805904    mov dx, strict word 00074h                ; ba 74 00
    58815905    mov ax, strict word 00040h                ; b8 40 00
    5882     call 01650h                               ; e8 dd d3
     5906    call 01650h                               ; e8 9e d3
    58835907    mov cl, al                                ; 88 c1
    58845908    xor ah, ah                                ; 30 e4
     
    58895913    mov dx, strict word 00074h                ; ba 74 00
    58905914    mov ax, strict word 00040h                ; b8 40 00
    5891     call 0165eh                               ; e8 d4 d3
     5915    call 0165eh                               ; e8 95 d3
    58925916    test cl, cl                               ; 84 c9
    5893     je short 042eeh                           ; 74 60
    5894     jmp near 04574h                           ; e9 e3 02
    5895     jmp near 04538h                           ; e9 a4 02
     5917    je short 0432dh                           ; 74 60
     5918    jmp near 045b3h                           ; e9 e3 02
     5919    jmp near 04577h                           ; e9 a4 02
    58965920    mov es, [bp-008h]                         ; 8e 46 f8
    58975921    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    59175941    mov word [bp-00ah], cx                    ; 89 4e f6
    59185942    test cx, cx                               ; 85 c9
    5919     je short 042fch                           ; 74 1e
     5943    je short 0433bh                           ; 74 1e
    59205944    cmp di, word [bp-010h]                    ; 3b 7e f0
    5921     jc short 042ebh                           ; 72 08
     5945    jc short 0432ah                           ; 72 08
    59225946    cmp ax, dx                                ; 39 d0
    5923     jnc short 042ebh                          ; 73 04
     5947    jnc short 0432ah                          ; 73 04
    59245948    cmp si, bx                                ; 39 de
    5925     jc short 042f1h                           ; 72 06
    5926     jmp near 04558h                           ; e9 6a 02
    5927     jmp near 04470h                           ; e9 7f 01
     5949    jc short 04330h                           ; 72 06
     5950    jmp near 04597h                           ; e9 6a 02
     5951    jmp near 044afh                           ; e9 7f 01
    59285952    mov dx, word [bp+016h]                    ; 8b 56 16
    59295953    shr dx, 008h                              ; c1 ea 08
    59305954    cmp dx, strict byte 00004h                ; 83 fa 04
    5931     jne short 042ffh                          ; 75 03
    5932     jmp near 0446ch                           ; e9 6d 01
     5955    jne short 0433eh                          ; 75 03
     5956    jmp near 044abh                           ; e9 6d 01
    59335957    mov dx, word [bp+010h]                    ; 8b 56 10
    59345958    shr dx, 004h                              ; c1 ea 04
     
    59415965    xor dl, dl                                ; 30 d2
    59425966    xor cx, cx                                ; 31 c9
    5943     call 0a090h                               ; e8 73 5d
     5967    call 0a0d0h                               ; e8 74 5d
    59445968    xor bx, bx                                ; 31 db
    59455969    add ax, si                                ; 01 f0
     
    59475971    mov bx, di                                ; 89 fb
    59485972    xor cx, cx                                ; 31 c9
    5949     call 0a090h                               ; e8 66 5d
     5973    call 0a0d0h                               ; e8 67 5d
    59505974    mov bx, ax                                ; 89 c3
    59515975    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    59826006    mov dx, ss                                ; 8c d2
    59836007    lea ax, [bp-02eh]                         ; 8d 46 d2
    5984     call 0a100h                               ; e8 7f 5d
     6008    call 0a140h                               ; e8 80 5d
    59856009    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    59866010    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    60326056    sal si, 1                                 ; d1 e6
    60336057    rcl di, 1                                 ; d1 d7
    6034     loop 04403h                               ; e2 fa
     6058    loop 04442h                               ; e2 fa
    60356059    push di                                   ; 57
    60366060    push si                                   ; 56
     
    60486072    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    60496073    test al, al                               ; 84 c0
    6050     je short 0446ch                           ; 74 37
    6051     mov bx, 00da4h                            ; bb a4 0d
     6074    je short 044abh                           ; 74 37
     6075    mov bx, 00da0h                            ; bb a0 0d
    60526076    mov cx, ds                                ; 8c d9
    60536077    mov ax, strict word 00004h                ; b8 04 00
    6054     call 01923h                               ; e8 e3 d4
     6078    call 01923h                               ; e8 a4 d4
    60556079    mov al, dl                                ; 88 d0
    60566080    xor ah, ah                                ; 30 e4
     
    60626086    push 0038eh                               ; 68 8e 03
    60636087    push strict byte 00004h                   ; 6a 04
    6064     call 01966h                               ; e8 0f d5
     6088    call 01966h                               ; e8 d0 d4
    60656089    add sp, strict byte 0000ah                ; 83 c4 0a
    60666090    mov ax, word [bp+016h]                    ; 8b 46 16
     
    60696093    mov word [bp+016h], ax                    ; 89 46 16
    60706094    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6071     jmp near 04563h                           ; e9 f7 00
     6095    jmp near 045a2h                           ; e9 f7 00
    60726096    mov byte [bp+017h], 000h                  ; c6 46 17 00
    60736097    xor bx, bx                                ; 31 db
    60746098    mov dx, strict word 00074h                ; ba 74 00
    60756099    mov ax, strict word 00040h                ; b8 40 00
    6076     call 0165eh                               ; e8 e3 d1
     6100    call 0165eh                               ; e8 a4 d1
    60776101    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    60786102    lea sp, [bp-004h]                         ; 8d 66 fc
     
    61226146    mov word [bp+010h], ax                    ; 89 46 10
    61236147    cmp dl, 003h                              ; 80 fa 03
    6124     je short 04512h                           ; 74 1a
     6148    je short 04551h                           ; 74 1a
    61256149    cmp dl, 002h                              ; 80 fa 02
    6126     je short 0450eh                           ; 74 11
     6150    je short 0454dh                           ; 74 11
    61276151    cmp dl, 001h                              ; 80 fa 01
    6128     jne short 04516h                          ; 75 14
     6152    jne short 04555h                          ; 75 14
    61296153    mov ax, word [bp+010h]                    ; 8b 46 10
    61306154    xor al, al                                ; 30 c0
    61316155    or AL, strict byte 002h                   ; 0c 02
    61326156    mov word [bp+010h], ax                    ; 89 46 10
    6133     jmp short 04516h                          ; eb 08
     6157    jmp short 04555h                          ; eb 08
    61346158    or AL, strict byte 004h                   ; 0c 04
    6135     jmp short 04509h                          ; eb f7
     6159    jmp short 04548h                          ; eb f7
    61366160    or AL, strict byte 005h                   ; 0c 05
    6137     jmp short 04509h                          ; eb f3
     6161    jmp short 04548h                          ; eb f3
    61386162    mov es, [bp-008h]                         ; 8e 46 f8
    61396163    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6140     jc short 04523h                           ; 72 03
    6141     jmp near 0446ch                           ; e9 49 ff
     6164    jc short 04562h                           ; 72 03
     6165    jmp near 044abh                           ; e9 49 ff
    61426166    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    61436167    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6144     jmp short 04520h                          ; eb f1
     6168    jmp short 0455fh                          ; eb f1
    61456169    or bh, 003h                               ; 80 cf 03
    61466170    mov word [bp+016h], bx                    ; 89 5e 16
    6147     jmp near 04470h                           ; e9 38 ff
    6148     mov bx, 00da4h                            ; bb a4 0d
     6171    jmp near 044afh                           ; e9 38 ff
     6172    mov bx, 00da0h                            ; bb a0 0d
    61496173    mov cx, ds                                ; 8c d9
    61506174    mov ax, strict word 00004h                ; b8 04 00
    6151     call 01923h                               ; e8 e0 d3
     6175    call 01923h                               ; e8 a1 d3
    61526176    mov ax, word [bp+016h]                    ; 8b 46 16
    61536177    shr ax, 008h                              ; c1 e8 08
     
    61566180    push 003afh                               ; 68 af 03
    61576181    push strict byte 00004h                   ; 6a 04
    6158     call 01966h                               ; e8 11 d4
     6182    call 01966h                               ; e8 d2 d3
    61596183    add sp, strict byte 00008h                ; 83 c4 08
    61606184    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61676191    mov dx, strict word 00074h                ; ba 74 00
    61686192    mov ax, strict word 00040h                ; b8 40 00
    6169     call 0165eh                               ; e8 ea d0
     6193    call 0165eh                               ; e8 ab d0
    61706194    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6171     jmp near 0447fh                           ; e9 04 ff
     6195    jmp near 044beh                           ; e9 04 ff
    61726196    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6173     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c2h, 046h, 0f7h
    6174     db  04ah, 07fh, 046h, 0c2h, 046h, 074h, 046h, 0c2h, 046h, 074h, 046h, 0c2h, 046h, 0f7h, 04ah, 0c2h
    6175     db  046h, 0c2h, 046h, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0a6h, 046h, 0f7h
    6176     db  04ah, 0c2h, 046h, 0afh, 046h, 0deh, 046h, 074h, 046h, 0deh, 046h, 020h, 048h, 0bbh, 048h, 0deh
    6177     db  046h, 0e3h, 048h, 011h, 04bh, 019h, 04bh, 0c2h, 046h
    6178 _int13_cdrom:                                ; 0xf45d4 LB 0x57d
     6197    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 001h, 047h, 036h
     6198    db  04bh, 0beh, 046h, 001h, 047h, 0b3h, 046h, 001h, 047h, 0b3h, 046h, 001h, 047h, 036h, 04bh, 001h
     6199    db  047h, 001h, 047h, 036h, 04bh, 036h, 04bh, 036h, 04bh, 036h, 04bh, 036h, 04bh, 0e5h, 046h, 036h
     6200    db  04bh, 001h, 047h, 0eeh, 046h, 01dh, 047h, 0b3h, 046h, 01dh, 047h, 05fh, 048h, 0fah, 048h, 01dh
     6201    db  047h, 022h, 049h, 050h, 04bh, 058h, 04bh, 001h, 047h
     6202_int13_cdrom:                                ; 0xf4613 LB 0x57d
    61796203    push bp                                   ; 55
    61806204    mov bp, sp                                ; 89 e5
     
    61846208    mov dx, strict word 0000eh                ; ba 0e 00
    61856209    mov ax, strict word 00040h                ; b8 40 00
    6186     call 0166ch                               ; e8 87 d0
     6210    call 0166ch                               ; e8 48 d0
    61876211    mov word [bp-016h], ax                    ; 89 46 ea
    61886212    mov si, 00122h                            ; be 22 01
     
    61916215    mov dx, strict word 00074h                ; ba 74 00
    61926216    mov ax, strict word 00040h                ; b8 40 00
    6193     call 0165eh                               ; e8 65 d0
     6217    call 0165eh                               ; e8 26 d0
    61946218    mov ax, word [bp+010h]                    ; 8b 46 10
    61956219    xor ah, ah                                ; 30 e4
    61966220    cmp ax, 000e0h                            ; 3d e0 00
    6197     jc short 04608h                           ; 72 05
     6221    jc short 04647h                           ; 72 05
    61986222    cmp ax, 000f0h                            ; 3d f0 00
    6199     jc short 04626h                           ; 72 1e
     6223    jc short 04665h                           ; 72 1e
    62006224    mov ax, word [bp+010h]                    ; 8b 46 10
    62016225    xor ah, ah                                ; 30 e4
     
    62076231    push 003ebh                               ; 68 eb 03
    62086232    push strict byte 00004h                   ; 6a 04
    6209     call 01966h                               ; e8 46 d3
     6233    call 01966h                               ; e8 07 d3
    62106234    add sp, strict byte 0000ah                ; 83 c4 0a
    6211     jmp near 04b2fh                           ; e9 09 05
     6235    jmp near 04b6eh                           ; e9 09 05
    62126236    mov ax, word [bp+010h]                    ; 8b 46 10
    62136237    xor ah, ah                                ; 30 e4
     
    62186242    mov byte [bp-006h], dl                    ; 88 56 fa
    62196243    cmp dl, 010h                              ; 80 fa 10
    6220     jc short 0464fh                           ; 72 10
     6244    jc short 0468eh                           ; 72 10
    62216245    push ax                                   ; 50
    62226246    mov ax, word [bp+018h]                    ; 8b 46 18
     
    62256249    push 003dfh                               ; 68 df 03
    62266250    push 00416h                               ; 68 16 04
    6227     jmp short 0461bh                          ; eb cc
     6251    jmp short 0465ah                          ; eb cc
    62286252    mov ax, word [bp+018h]                    ; 8b 46 18
    62296253    shr ax, 008h                              ; c1 e8 08
    62306254    cmp ax, strict word 00050h                ; 3d 50 00
    6231     jnbe short 046c2h                         ; 77 68
     6255    jnbe short 04701h                         ; 77 68
    62326256    push CS                                   ; 0e
    62336257    pop ES                                    ; 07
    62346258    mov cx, strict word 0001eh                ; b9 1e 00
    6235     mov di, 0457bh                            ; bf 7b 45
     6259    mov di, 045bah                            ; bf ba 45
    62366260    repne scasb                               ; f2 ae
    62376261    sal cx, 1                                 ; d1 e1
    62386262    mov di, cx                                ; 89 cf
    6239     mov ax, word [cs:di+04598h]               ; 2e 8b 85 98 45
     6263    mov ax, word [cs:di+045d7h]               ; 2e 8b 85 d7 45
    62406264    mov bx, word [bp+018h]                    ; 8b 5e 18
    62416265    xor bh, bh                                ; 30 ff
     
    62446268    xor ah, ah                                ; 30 e4
    62456269    or ah, 003h                               ; 80 cc 03
    6246     jmp near 04b37h                           ; e9 b8 04
     6270    jmp near 04b76h                           ; e9 b8 04
    62476271    mov dx, strict word 00074h                ; ba 74 00
    62486272    mov ax, strict word 00040h                ; b8 40 00
    6249     call 01650h                               ; e8 c8 cf
     6273    call 01650h                               ; e8 89 cf
    62506274    mov cl, al                                ; 88 c1
    62516275    xor ah, ah                                ; 30 e4
     
    62566280    mov dx, strict word 00074h                ; ba 74 00
    62576281    mov ax, strict word 00040h                ; b8 40 00
    6258     call 0165eh                               ; e8 bf cf
     6282    call 0165eh                               ; e8 80 cf
    62596283    test cl, cl                               ; 84 c9
    6260     je short 046bfh                           ; 74 1c
    6261     jmp near 04b4bh                           ; e9 a5 04
     6284    je short 046feh                           ; 74 1c
     6285    jmp near 04b8ah                           ; e9 a5 04
    62626286    or bh, 002h                               ; 80 cf 02
    62636287    mov word [bp+018h], bx                    ; 89 5e 18
    6264     jmp near 04b3ah                           ; e9 8b 04
     6288    jmp near 04b79h                           ; e9 8b 04
    62656289    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    62666290    or bh, 030h                               ; 80 cf 30
    62676291    mov word [bp+018h], bx                    ; 89 5e 18
    62686292    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6269     jmp near 04afbh                           ; e9 39 04
    6270     mov bx, 00da4h                            ; bb a4 0d
     6293    jmp near 04b3ah                           ; e9 39 04
     6294    mov bx, 00da0h                            ; bb a0 0d
    62716295    mov cx, ds                                ; 8c d9
    62726296    mov ax, strict word 00004h                ; b8 04 00
    6273     call 01923h                               ; e8 56 d2
     6297    call 01923h                               ; e8 17 d2
    62746298    mov ax, word [bp+018h]                    ; 8b 46 18
    62756299    shr ax, 008h                              ; c1 e8 08
     
    62786302    push 00333h                               ; 68 33 03
    62796303    push strict byte 00004h                   ; 6a 04
    6280     jmp short 0471eh                          ; eb 40
     6304    jmp short 0475dh                          ; eb 40
    62816305    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    62826306    mov es, [bp+006h]                         ; 8e 46 06
     
    62936317    mov word [bp-022h], ax                    ; 89 46 de
    62946318    or ax, word [bp-00eh]                     ; 0b 46 f2
    6295     je short 04727h                           ; 74 18
     6319    je short 04766h                           ; 74 18
    62966320    mov ax, word [bp+018h]                    ; 8b 46 18
    62976321    shr ax, 008h                              ; c1 e8 08
     
    63006324    push 00448h                               ; 68 48 04
    63016325    push strict byte 00007h                   ; 6a 07
    6302     call 01966h                               ; e8 45 d2
     6326    call 01966h                               ; e8 06 d2
    63036327    add sp, strict byte 00008h                ; 83 c4 08
    6304     jmp near 04b2fh                           ; e9 08 04
     6328    jmp near 04b6eh                           ; e9 08 04
    63056329    mov es, [bp-010h]                         ; 8e 46 f0
    63066330    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    63136337    mov word [bp-012h], ax                    ; 89 46 ee
    63146338    cmp ax, strict word 00044h                ; 3d 44 00
    6315     je short 0474eh                           ; 74 05
     6339    je short 0478dh                           ; 74 05
    63166340    cmp ax, strict word 00047h                ; 3d 47 00
    6317     jne short 04751h                          ; 75 03
    6318     jmp near 04af7h                           ; e9 a6 03
     6341    jne short 04790h                          ; 75 03
     6342    jmp near 04b36h                           ; e9 a6 03
    63196343    mov cx, strict word 0000ch                ; b9 0c 00
    63206344    xor bx, bx                                ; 31 db
    63216345    mov dx, ss                                ; 8c d2
    63226346    lea ax, [bp-030h]                         ; 8d 46 d0
    6323     call 0a100h                               ; e8 a2 59
     6347    call 0a140h                               ; e8 a3 59
    63246348    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    63256349    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    63536377    sal ax, 1                                 ; d1 e0
    63546378    rcl dx, 1                                 ; d1 d2
    6355     loop 047aeh                               ; e2 fa
     6379    loop 047edh                               ; e2 fa
    63566380    push dx                                   ; 52
    63576381    push ax                                   ; 50
     
    63716395    shr dx, 1                                 ; d1 ea
    63726396    rcr ax, 1                                 ; d1 d8
    6373     loop 047ddh                               ; e2 fa
     6397    loop 0481ch                               ; e2 fa
    63746398    mov es, [bp-010h]                         ; 8e 46 f0
    63756399    mov bx, word [bp-014h]                    ; 8b 5e ec
    63766400    mov word [es:bx+002h], ax                 ; 26 89 47 02
    63776401    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    6378     je short 04846h                           ; 74 53
    6379     mov bx, 00da4h                            ; bb a4 0d
     6402    je short 04885h                           ; 74 53
     6403    mov bx, 00da0h                            ; bb a0 0d
    63806404    mov cx, ds                                ; 8c d9
    63816405    mov ax, strict word 00004h                ; b8 04 00
    6382     call 01923h                               ; e8 25 d1
     6406    call 01923h                               ; e8 e6 d0
    63836407    mov al, byte [bp-018h]                    ; 8a 46 e8
    63846408    xor ah, ah                                ; 30 e4
     
    63886412    push 00471h                               ; 68 71 04
    63896413    push strict byte 00004h                   ; 6a 04
    6390     call 01966h                               ; e8 54 d1
     6414    call 01966h                               ; e8 15 d1
    63916415    add sp, strict byte 0000ah                ; 83 c4 0a
    63926416    mov ax, word [bp+018h]                    ; 8b 46 18
    63936417    xor ah, ah                                ; 30 e4
    63946418    or ah, 00ch                               ; 80 cc 0c
    6395     jmp near 04b37h                           ; e9 17 03
     6419    jmp near 04b76h                           ; e9 17 03
    63966420    cmp bx, strict byte 00002h                ; 83 fb 02
    6397     jnbe short 0488eh                         ; 77 69
     6421    jnbe short 048cdh                         ; 77 69
    63986422    mov al, byte [bp-006h]                    ; 8a 46 fa
    63996423    xor ah, ah                                ; 30 e4
     
    64046428    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    64056429    cmp bx, strict byte 00002h                ; 83 fb 02
    6406     je short 048a4h                           ; 74 67
     6430    je short 048e3h                           ; 74 67
    64076431    cmp bx, strict byte 00001h                ; 83 fb 01
    6408     je short 0487eh                           ; 74 3c
     6432    je short 048bdh                           ; 74 3c
    64096433    test bx, bx                               ; 85 db
    6410     je short 04849h                           ; 74 03
    6411     jmp near 04af7h                           ; e9 ae 02
     6434    je short 04888h                           ; 74 03
     6435    jmp near 04b36h                           ; e9 ae 02
    64126436    cmp AL, strict byte 0ffh                  ; 3c ff
    6413     jne short 0485fh                          ; 75 12
     6437    jne short 0489eh                          ; 75 12
    64146438    mov ax, word [bp+018h]                    ; 8b 46 18
    64156439    xor ah, ah                                ; 30 e4
     
    64186442    xor al, al                                ; 30 c0
    64196443    or AL, strict byte 001h                   ; 0c 01
    6420     jmp near 04b37h                           ; e9 d8 02
     6444    jmp near 04b76h                           ; e9 d8 02
    64216445    mov dl, byte [bp-006h]                    ; 8a 56 fa
    64226446    xor dh, dh                                ; 30 f6
     
    64316455    or AL, strict byte 001h                   ; 0c 01
    64326456    mov word [bp+018h], ax                    ; 89 46 18
    6433     jmp short 04846h                          ; eb c8
     6457    jmp short 04885h                          ; eb c8
    64346458    test al, al                               ; 84 c0
    6435     jne short 04891h                          ; 75 0f
     6459    jne short 048d0h                          ; 75 0f
    64366460    or bh, 0b0h                               ; 80 cf b0
    64376461    mov word [bp+018h], bx                    ; 89 5e 18
    64386462    mov byte [bp+018h], al                    ; 88 46 18
    6439     jmp near 04b3ah                           ; e9 ac 02
    6440     jmp near 04b2fh                           ; e9 9e 02
     6463    jmp near 04b79h                           ; e9 ac 02
     6464    jmp near 04b6eh                           ; e9 9e 02
    64416465    mov dl, byte [bp-006h]                    ; 8a 56 fa
    64426466    xor dh, dh                                ; 30 f6
     
    64486472    mov byte [es:si+025h], al                 ; 26 88 44 25
    64496473    test al, al                               ; 84 c0
    6450     jne short 048b6h                          ; 75 0e
     6474    jne short 048f5h                          ; 75 0e
    64516475    xor ah, ah                                ; 30 e4
    64526476    mov dx, word [bp+018h]                    ; 8b 56 18
     
    64546478    or dx, ax                                 ; 09 c2
    64556479    mov word [bp+018h], dx                    ; 89 56 18
    6456     jmp short 04846h                          ; eb 90
     6480    jmp short 04885h                          ; eb 90
    64576481    mov ax, strict word 00001h                ; b8 01 00
    6458     jmp short 048aah                          ; eb ef
     6482    jmp short 048e9h                          ; eb ef
    64596483    mov al, byte [bp-006h]                    ; 8a 46 fa
    64606484    xor ah, ah                                ; 30 e4
     
    64646488    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    64656489    test al, al                               ; 84 c0
    6466     je short 048d6h                           ; 74 06
     6490    je short 04915h                           ; 74 06
    64676491    or bh, 0b1h                               ; 80 cf b1
    6468     jmp near 046a9h                           ; e9 d3 fd
    6469     je short 048ffh                           ; 74 27
     6492    jmp near 046e8h                           ; e9 d3 fd
     6493    je short 0493eh                           ; 74 27
    64706494    mov ax, word [bp+018h]                    ; 8b 46 18
    64716495    xor ah, ah                                ; 30 e4
    64726496    or ah, 0b1h                               ; 80 cc b1
    6473     jmp near 04b37h                           ; e9 54 02
     6497    jmp near 04b76h                           ; e9 54 02
    64746498    mov dx, word [bp+00ch]                    ; 8b 56 0c
    64756499    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    64816505    mov word [bp-00ch], ax                    ; 89 46 f4
    64826506    cmp ax, strict word 0001ah                ; 3d 1a 00
    6483     jnc short 04902h                          ; 73 05
    6484     jmp short 0488eh                          ; eb 8f
    6485     jmp near 04af7h                           ; e9 f5 01
    6486     jc short 04966h                           ; 72 62
     6507    jnc short 04941h                          ; 73 05
     6508    jmp short 048cdh                          ; eb 8f
     6509    jmp near 04b36h                           ; e9 f5 01
     6510    jc short 049a5h                           ; 72 62
    64876511    mov al, byte [bp-006h]                    ; 8a 46 fa
    64886512    xor ah, ah                                ; 30 e4
     
    65086532    mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff
    65096533    cmp word [bp-00ch], strict byte 0001eh    ; 83 7e f4 1e
    6510     jnc short 0496fh                          ; 73 03
    6511     jmp near 04a2bh                           ; e9 bc 00
     6534    jnc short 049aeh                          ; 73 03
     6535    jmp near 04a6ah                           ; e9 bc 00
    65126536    mov es, [bp-00ah]                         ; 8e 46 f6
    65136537    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    65526576    xor cl, cl                                ; 30 c9
    65536577    xor ch, ch                                ; 30 ed
    6554     jmp short 04a0bh                          ; eb 05
     6578    jmp short 04a4ah                          ; eb 05
    65556579    cmp ch, 00fh                              ; 80 fd 0f
    6556     jnc short 04a21h                          ; 73 16
     6580    jnc short 04a60h                          ; 73 16
    65576581    mov al, ch                                ; 88 e8
    65586582    xor ah, ah                                ; 30 e4
     
    65606584    add dx, 00356h                            ; 81 c2 56 03
    65616585    mov ax, word [bp-016h]                    ; 8b 46 ea
    6562     call 01650h                               ; e8 35 cc
     6586    call 01650h                               ; e8 f6 cb
    65636587    add cl, al                                ; 00 c1
    65646588    db  0feh, 0c5h
    65656589    ; inc ch                                    ; fe c5
    6566     jmp short 04a06h                          ; eb e5
     6590    jmp short 04a45h                          ; eb e5
    65676591    neg cl                                    ; f6 d9
    65686592    mov es, [bp-01eh]                         ; 8e 46 e2
    65696593    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    65706594    cmp word [bp-00ch], strict byte 00042h    ; 83 7e f4 42
    6571     jnc short 04a34h                          ; 73 03
    6572     jmp near 04af7h                           ; e9 c3 00
     6595    jnc short 04a73h                          ; 73 03
     6596    jmp near 04b36h                           ; e9 c3 00
    65736597    mov al, byte [bp-006h]                    ; 8a 46 fa
    65746598    xor ah, ah                                ; 30 e4
     
    65896613    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    65906614    test al, al                               ; 84 c0
    6591     jne short 04a7ch                          ; 75 0c
     6615    jne short 04abbh                          ; 75 0c
    65926616    mov word [es:bx+024h], 05349h             ; 26 c7 47 24 49 53
    65936617    mov word [es:bx+026h], 02041h             ; 26 c7 47 26 41 20
     
    65986622    mov word [es:bx+02eh], 02020h             ; 26 c7 47 2e 20 20
    65996623    test al, al                               ; 84 c0
    6600     jne short 04ab1h                          ; 75 16
     6624    jne short 04af0h                          ; 75 16
    66016625    mov word [es:bx+030h], dx                 ; 26 89 57 30
    66026626    mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
     
    66136637    xor al, al                                ; 30 c0
    66146638    mov AH, strict byte 01eh                  ; b4 1e
    6615     jmp short 04adch                          ; eb 05
     6639    jmp short 04b1bh                          ; eb 05
    66166640    cmp ah, 040h                              ; 80 fc 40
    6617     jnc short 04aeeh                          ; 73 12
     6641    jnc short 04b2dh                          ; 73 12
    66186642    mov dl, ah                                ; 88 e2
    66196643    xor dh, dh                                ; 30 f6
     
    66246648    db  0feh, 0c4h
    66256649    ; inc ah                                    ; fe c4
    6626     jmp short 04ad7h                          ; eb e9
     6650    jmp short 04b16h                          ; eb e9
    66276651    neg al                                    ; f6 d8
    66286652    mov es, [bp-00ah]                         ; 8e 46 f6
     
    66326656    mov dx, strict word 00074h                ; ba 74 00
    66336657    mov ax, strict word 00040h                ; b8 40 00
    6634     call 0165eh                               ; e8 58 cb
     6658    call 0165eh                               ; e8 19 cb
    66356659    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    66366660    lea sp, [bp-004h]                         ; 8d 66 fc
     
    66416665    or bh, 006h                               ; 80 cf 06
    66426666    mov word [bp+018h], bx                    ; 89 5e 18
    6643     jmp short 04b4bh                          ; eb 32
     6667    jmp short 04b8ah                          ; eb 32
    66446668    cmp bx, strict byte 00006h                ; 83 fb 06
    6645     je short 04af7h                           ; 74 d9
     6669    je short 04b36h                           ; 74 d9
    66466670    cmp bx, strict byte 00001h                ; 83 fb 01
    6647     jc short 04b2fh                           ; 72 0c
    6648     jbe short 04af7h                          ; 76 d2
     6671    jc short 04b6eh                           ; 72 0c
     6672    jbe short 04b36h                          ; 76 d2
    66496673    cmp bx, strict byte 00003h                ; 83 fb 03
    6650     jc short 04b2fh                           ; 72 05
     6674    jc short 04b6eh                           ; 72 05
    66516675    cmp bx, strict byte 00004h                ; 83 fb 04
    6652     jbe short 04af7h                          ; 76 c8
     6676    jbe short 04b36h                          ; 76 c8
    66536677    mov ax, word [bp+018h]                    ; 8b 46 18
    66546678    xor ah, ah                                ; 30 e4
     
    66606684    mov dx, strict word 00074h                ; ba 74 00
    66616685    mov ax, strict word 00040h                ; b8 40 00
    6662     call 0165eh                               ; e8 13 cb
     6686    call 0165eh                               ; e8 d4 ca
    66636687    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6664     jmp short 04b0ah                          ; eb b9
    6665 print_boot_device_:                          ; 0xf4b51 LB 0x4b
     6688    jmp short 04b49h                          ; eb b9
     6689print_boot_device_:                          ; 0xf4b90 LB 0x4b
    66666690    push bp                                   ; 55
    66676691    mov bp, sp                                ; 89 e5
    66686692    push cx                                   ; 51
    66696693    test al, al                               ; 84 c0
    6670     je short 04b5eh                           ; 74 05
     6694    je short 04b9dh                           ; 74 05
    66716695    mov dx, strict word 00002h                ; ba 02 00
    6672     jmp short 04b78h                          ; eb 1a
     6696    jmp short 04bb7h                          ; eb 1a
    66736697    test dl, dl                               ; 84 d2
    6674     je short 04b67h                           ; 74 05
     6698    je short 04ba6h                           ; 74 05
    66756699    mov dx, strict word 00003h                ; ba 03 00
    6676     jmp short 04b78h                          ; eb 11
     6700    jmp short 04bb7h                          ; eb 11
    66776701    test bl, 080h                             ; f6 c3 80
    6678     jne short 04b70h                          ; 75 04
     6702    jne short 04bafh                          ; 75 04
    66796703    xor dh, dh                                ; 30 f6
    6680     jmp short 04b78h                          ; eb 08
     6704    jmp short 04bb7h                          ; eb 08
    66816705    test bl, 080h                             ; f6 c3 80
    6682     je short 04b96h                           ; 74 21
     6706    je short 04bd5h                           ; 74 21
    66836707    mov dx, strict word 00001h                ; ba 01 00
    6684     mov bx, 00da4h                            ; bb a4 0d
     6708    mov bx, 00da0h                            ; bb a0 0d
    66856709    mov cx, ds                                ; 8c d9
    66866710    mov ax, strict word 00004h                ; b8 04 00
    6687     call 01923h                               ; e8 a0 cd
     6711    call 01923h                               ; e8 61 cd
    66886712    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    6689     add dx, 00dcah                            ; 81 c2 ca 0d
     6713    add dx, 00dc6h                            ; 81 c2 c6 0d
    66906714    push dx                                   ; 52
    66916715    push 00494h                               ; 68 94 04
    66926716    push strict byte 00004h                   ; 6a 04
    6693     call 01966h                               ; e8 d3 cd
     6717    call 01966h                               ; e8 94 cd
    66946718    add sp, strict byte 00006h                ; 83 c4 06
    66956719    lea sp, [bp-002h]                         ; 8d 66 fe
     
    66976721    pop bp                                    ; 5d
    66986722    retn                                      ; c3
    6699 print_boot_failure_:                         ; 0xf4b9c LB 0x96
     6723print_boot_failure_:                         ; 0xf4bdb LB 0x96
    67006724    push bp                                   ; 55
    67016725    mov bp, sp                                ; 89 e5
     
    67086732    mov si, cx                                ; 89 ce
    67096733    test al, al                               ; 84 c0
    6710     je short 04bcch                           ; 74 1b
    6711     mov bx, 00da4h                            ; bb a4 0d
     6734    je short 04c0bh                           ; 74 1b
     6735    mov bx, 00da0h                            ; bb a0 0d
    67126736    mov cx, ds                                ; 8c d9
    67136737    mov ax, strict word 00004h                ; b8 04 00
    6714     call 01923h                               ; e8 67 cd
    6715     push 00ddeh                               ; 68 de 0d
     6738    call 01923h                               ; e8 28 cd
     6739    push 00ddah                               ; 68 da 0d
    67166740    push 004a8h                               ; 68 a8 04
    67176741    push strict byte 00004h                   ; 6a 04
    6718     call 01966h                               ; e8 9f cd
     6742    call 01966h                               ; e8 60 cd
    67196743    add sp, strict byte 00006h                ; 83 c4 06
    6720     jmp short 04c10h                          ; eb 44
     6744    jmp short 04c4fh                          ; eb 44
    67216745    test ah, ah                               ; 84 e4
    6722     je short 04be0h                           ; 74 10
    6723     mov bx, 00da4h                            ; bb a4 0d
     6746    je short 04c1fh                           ; 74 10
     6747    mov bx, 00da0h                            ; bb a0 0d
    67246748    mov cx, ds                                ; 8c d9
    67256749    mov ax, strict word 00004h                ; b8 04 00
    6726     call 01923h                               ; e8 48 cd
    6727     push 00de8h                               ; 68 e8 0d
    6728     jmp short 04bbfh                          ; eb df
     6750    call 01923h                               ; e8 09 cd
     6751    push 00de4h                               ; 68 e4 0d
     6752    jmp short 04bfeh                          ; eb df
    67296753    test bl, 080h                             ; f6 c3 80
    6730     je short 04bf6h                           ; 74 11
    6731     mov bx, 00da4h                            ; bb a4 0d
     6754    je short 04c35h                           ; 74 11
     6755    mov bx, 00da0h                            ; bb a0 0d
    67326756    mov cx, ds                                ; 8c d9
    67336757    mov ax, strict word 00004h                ; b8 04 00
    6734     call 01923h                               ; e8 33 cd
     6758    call 01923h                               ; e8 f4 cc
    67356759    push si                                   ; 56
    6736     push 00dd4h                               ; 68 d4 0d
    6737     jmp short 04c05h                          ; eb 0f
    6738     mov bx, 00da4h                            ; bb a4 0d
     6760    push 00dd0h                               ; 68 d0 0d
     6761    jmp short 04c44h                          ; eb 0f
     6762    mov bx, 00da0h                            ; bb a0 0d
    67396763    mov cx, ds                                ; 8c d9
    67406764    mov ax, strict word 00004h                ; b8 04 00
    6741     call 01923h                               ; e8 22 cd
     6765    call 01923h                               ; e8 e3 cc
    67426766    push si                                   ; 56
    6743     push 00dcah                               ; 68 ca 0d
     6767    push 00dc6h                               ; 68 c6 0d
    67446768    push 004bdh                               ; 68 bd 04
    67456769    push strict byte 00004h                   ; 6a 04
    6746     call 01966h                               ; e8 59 cd
     6770    call 01966h                               ; e8 1a cd
    67476771    add sp, strict byte 00008h                ; 83 c4 08
    67486772    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6749     jne short 04c2ah                          ; 75 14
     6773    jne short 04c69h                          ; 75 14
    67506774    test dl, dl                               ; 84 d2
    6751     jne short 04c1fh                          ; 75 05
     6775    jne short 04c5eh                          ; 75 05
    67526776    push 004d5h                               ; 68 d5 04
    6753     jmp short 04c22h                          ; eb 03
     6777    jmp short 04c61h                          ; eb 03
    67546778    push 004ffh                               ; 68 ff 04
    67556779    push strict byte 00007h                   ; 6a 07
    6756     call 01966h                               ; e8 3f cd
     6780    call 01966h                               ; e8 00 cd
    67576781    add sp, strict byte 00004h                ; 83 c4 04
    67586782    lea sp, [bp-002h]                         ; 8d 66 fe
     
    67606784    pop bp                                    ; 5d
    67616785    retn 00002h                               ; c2 02 00
    6762 print_cdromboot_failure_:                    ; 0xf4c32 LB 0x27
     6786print_cdromboot_failure_:                    ; 0xf4c71 LB 0x27
    67636787    push bp                                   ; 55
    67646788    mov bp, sp                                ; 89 e5
     
    67676791    push dx                                   ; 52
    67686792    mov dx, ax                                ; 89 c2
    6769     mov bx, 00da4h                            ; bb a4 0d
     6793    mov bx, 00da0h                            ; bb a0 0d
    67706794    mov cx, ds                                ; 8c d9
    67716795    mov ax, strict word 00004h                ; b8 04 00
    6772     call 01923h                               ; e8 de cc
     6796    call 01923h                               ; e8 9f cc
    67736797    push dx                                   ; 52
    67746798    push 00534h                               ; 68 34 05
    67756799    push strict byte 00004h                   ; 6a 04
    6776     call 01966h                               ; e8 18 cd
     6800    call 01966h                               ; e8 d9 cc
    67776801    add sp, strict byte 00006h                ; 83 c4 06
    67786802    lea sp, [bp-006h]                         ; 8d 66 fa
     
    67826806    pop bp                                    ; 5d
    67836807    retn                                      ; c3
    6784 _int19_function:                             ; 0xf4c59 LB 0x271
     6808_int19_function:                             ; 0xf4c98 LB 0x271
    67856809    push bp                                   ; 55
    67866810    mov bp, sp                                ; 89 e5
     
    67906814    mov dx, strict word 0000eh                ; ba 0e 00
    67916815    mov ax, strict word 00040h                ; b8 40 00
    6792     call 0166ch                               ; e8 02 ca
     6816    call 0166ch                               ; e8 c3 c9
    67936817    mov bx, ax                                ; 89 c3
    67946818    mov word [bp-00eh], ax                    ; 89 46 f2
    67956819    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    67966820    mov ax, strict word 0003dh                ; b8 3d 00
    6797     call 016ach                               ; e8 33 ca
     6821    call 016ach                               ; e8 f4 c9
    67986822    mov dl, al                                ; 88 c2
    67996823    xor dh, dh                                ; 30 f6
    68006824    mov ax, strict word 00038h                ; b8 38 00
    6801     call 016ach                               ; e8 29 ca
     6825    call 016ach                               ; e8 ea c9
    68026826    and AL, strict byte 0f0h                  ; 24 f0
    68036827    xor ah, ah                                ; 30 e4
     
    68066830    or si, ax                                 ; 09 c6
    68076831    mov ax, strict word 0003ch                ; b8 3c 00
    6808     call 016ach                               ; e8 18 ca
     6832    call 016ach                               ; e8 d9 c9
    68096833    and AL, strict byte 00fh                  ; 24 0f
    68106834    xor ah, ah                                ; 30 e4
     
    68136837    mov dx, 0037dh                            ; ba 7d 03
    68146838    mov ax, bx                                ; 89 d8
    6815     call 01650h                               ; e8 ab c9
     6839    call 01650h                               ; e8 6c c9
    68166840    test al, al                               ; 84 c0
    6817     je short 04cb5h                           ; 74 0c
     6841    je short 04cf4h                           ; 74 0c
    68186842    mov dx, 0037dh                            ; ba 7d 03
    68196843    mov ax, bx                                ; 89 d8
    6820     call 01650h                               ; e8 9f c9
     6844    call 01650h                               ; e8 60 c9
    68216845    xor ah, ah                                ; 30 e4
    68226846    mov si, ax                                ; 89 c6
    68236847    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6824     jne short 04ccbh                          ; 75 10
     6848    jne short 04d0ah                          ; 75 10
    68256849    mov ax, strict word 0003ch                ; b8 3c 00
    6826     call 016ach                               ; e8 eb c9
     6850    call 016ach                               ; e8 ac c9
    68276851    and AL, strict byte 0f0h                  ; 24 f0
    68286852    xor ah, ah                                ; 30 e4
    68296853    sar ax, 004h                              ; c1 f8 04
    6830     call 07dabh                               ; e8 e0 30
     6854    call 07deah                               ; e8 e0 30
    68316855    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6832     jne short 04cd4h                          ; 75 03
     6856    jne short 04d13h                          ; 75 03
    68336857    shr si, 004h                              ; c1 ee 04
    68346858    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6835     jne short 04cddh                          ; 75 03
     6859    jne short 04d1ch                          ; 75 03
    68366860    shr si, 008h                              ; c1 ee 08
    68376861    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6838     jne short 04ce6h                          ; 75 03
     6862    jne short 04d25h                          ; 75 03
    68396863    shr si, 00ch                              ; c1 ee 0c
    68406864    cmp si, strict byte 00010h                ; 83 fe 10
    6841     jnc short 04cefh                          ; 73 04
     6865    jnc short 04d2eh                          ; 73 04
    68426866    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    68436867    xor al, al                                ; 30 c0
     
    68456869    mov byte [bp-008h], al                    ; 88 46 f8
    68466870    mov byte [bp-00ah], al                    ; 88 46 f6
    6847     mov bx, 00da4h                            ; bb a4 0d
     6871    mov bx, 00da0h                            ; bb a0 0d
    68486872    mov cx, ds                                ; 8c d9
    68496873    mov ax, strict word 00004h                ; b8 04 00
    6850     call 01923h                               ; e8 1e cc
     6874    call 01923h                               ; e8 df cb
    68516875    push si                                   ; 56
    68526876    mov al, byte [bp+004h]                    ; 8a 46 04
     
    68556879    push 00554h                               ; 68 54 05
    68566880    push strict byte 00004h                   ; 6a 04
    6857     call 01966h                               ; e8 52 cc
     6881    call 01966h                               ; e8 13 cc
    68586882    add sp, strict byte 00008h                ; 83 c4 08
    68596883    and si, strict byte 0000fh                ; 83 e6 0f
    68606884    cmp si, strict byte 00002h                ; 83 fe 02
    6861     jc short 04d2dh                           ; 72 0e
    6862     jbe short 04d3ch                          ; 76 1b
     6885    jc short 04d6ch                           ; 72 0e
     6886    jbe short 04d7bh                          ; 76 1b
    68636887    cmp si, strict byte 00004h                ; 83 fe 04
    6864     je short 04d5ah                           ; 74 34
     6888    je short 04d99h                           ; 74 34
    68656889    cmp si, strict byte 00003h                ; 83 fe 03
    6866     je short 04d50h                           ; 74 25
    6867     jmp short 04d89h                          ; eb 5c
     6890    je short 04d8fh                           ; 74 25
     6891    jmp short 04dc8h                          ; eb 5c
    68686892    cmp si, strict byte 00001h                ; 83 fe 01
    6869     jne short 04d89h                          ; 75 57
     6893    jne short 04dc8h                          ; 75 57
    68706894    xor al, al                                ; 30 c0
    68716895    mov byte [bp-006h], al                    ; 88 46 fa
    68726896    mov byte [bp-008h], al                    ; 88 46 f8
    6873     jmp short 04da1h                          ; eb 65
     6897    jmp short 04de0h                          ; eb 65
    68746898    mov dx, 0037ch                            ; ba 7c 03
    68756899    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6876     call 01650h                               ; e8 0b c9
     6900    call 01650h                               ; e8 cc c8
    68776901    add AL, strict byte 080h                  ; 04 80
    68786902    mov byte [bp-006h], al                    ; 88 46 fa
    68796903    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    6880     jmp short 04da1h                          ; eb 51
     6904    jmp short 04de0h                          ; eb 51
    68816905    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    68826906    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    6883     jmp short 04d64h                          ; eb 0a
     6907    jmp short 04da3h                          ; eb 0a
    68846908    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    68856909    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6886     je short 04da1h                           ; 74 3d
    6887     call 03d5dh                               ; e8 f6 ef
     6910    je short 04de0h                           ; 74 3d
     6911    call 03d9ch                               ; e8 f6 ef
    68886912    mov bx, ax                                ; 89 c3
    68896913    test AL, strict byte 0ffh                 ; a8 ff
    6890     je short 04d90h                           ; 74 23
    6891     call 04c32h                               ; e8 c2 fe
     6914    je short 04dcfh                           ; 74 23
     6915    call 04c71h                               ; e8 c2 fe
    68926916    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68936917    xor ah, ah                                ; 30 e4
     
    68996923    mov al, byte [bp-008h]                    ; 8a 46 f8
    69006924    mov cx, strict word 00001h                ; b9 01 00
    6901     call 04b9ch                               ; e8 13 fe
     6925    call 04bdbh                               ; e8 13 fe
    69026926    xor ax, ax                                ; 31 c0
    69036927    xor dx, dx                                ; 31 d2
    6904     jmp near 04ec3h                           ; e9 33 01
     6928    jmp near 04f02h                           ; e9 33 01
    69056929    mov dx, 00372h                            ; ba 72 03
    69066930    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6907     call 0166ch                               ; e8 d3 c8
     6931    call 0166ch                               ; e8 94 c8
    69086932    mov di, ax                                ; 89 c7
    69096933    shr bx, 008h                              ; c1 eb 08
    69106934    mov byte [bp-006h], bl                    ; 88 5e fa
    69116935    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    6912     jne short 04dfch                          ; 75 55
     6936    jne short 04e3bh                          ; 75 55
    69136937    xor si, si                                ; 31 f6
    69146938    mov ax, 0e200h                            ; b8 00 e2
    69156939    mov es, ax                                ; 8e c0
    69166940    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6917     jne short 04d70h                          ; 75 bb
     6941    jne short 04dafh                          ; 75 bb
    69186942    mov cx, ax                                ; 89 c1
    69196943    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    69206944    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6921     jne short 04d70h                          ; 75 ad
     6945    jne short 04dafh                          ; 75 ad
    69226946    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6923     jne short 04d70h                          ; 75 a6
     6947    jne short 04dafh                          ; 75 a6
    69246948    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    69256949    mov dx, word [es:di]                      ; 26 8b 15
    69266950    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    69276951    cmp ax, 06568h                            ; 3d 68 65
    6928     jne short 04dfeh                          ; 75 24
     6952    jne short 04e3dh                          ; 75 24
    69296953    cmp dx, 07445h                            ; 81 fa 45 74
    6930     jne short 04dfeh                          ; 75 1e
     6954    jne short 04e3dh                          ; 75 1e
    69316955    mov bl, byte [bp-006h]                    ; 8a 5e fa
    69326956    xor bh, bh                                ; 30 ff
     
    69356959    mov al, byte [bp-008h]                    ; 8a 46 f8
    69366960    xor ah, ah                                ; 30 e4
    6937     call 04b51h                               ; e8 5f fd
     6961    call 04b90h                               ; e8 5f fd
    69386962    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    69396963    mov word [bp-010h], cx                    ; 89 4e f0
    6940     jmp short 04e1dh                          ; eb 21
    6941     jmp short 04e23h                          ; eb 25
     6964    jmp short 04e5ch                          ; eb 21
     6965    jmp short 04e62h                          ; eb 25
    69426966    mov bl, byte [bp-006h]                    ; 8a 5e fa
    69436967    xor bh, bh                                ; 30 ff
     
    69466970    mov al, byte [bp-008h]                    ; 8a 46 f8
    69476971    xor ah, ah                                ; 30 e4
    6948     call 04b51h                               ; e8 41 fd
     6972    call 04b90h                               ; e8 41 fd
    69496973    sti                                       ; fb
    69506974    mov word [bp-010h], cx                    ; 89 4e f0
     
    69536977    mov word [bp-012h], ax                    ; 89 46 ee
    69546978    call far [bp-012h]                        ; ff 5e ee
    6955     jmp near 04d70h                           ; e9 4d ff
     6979    jmp near 04dafh                           ; e9 4d ff
    69566980    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6957     jne short 04e50h                          ; 75 27
     6981    jne short 04e8fh                          ; 75 27
    69586982    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6959     jne short 04e50h                          ; 75 21
     6983    jne short 04e8fh                          ; 75 21
    69606984    mov di, 007c0h                            ; bf c0 07
    69616985    mov es, di                                ; 8e c7
     
    69706994    sbb ax, strict byte 00000h                ; 83 d8 00
    69716995    test ax, ax                               ; 85 c0
    6972     je short 04e50h                           ; 74 03
    6973     jmp near 04d70h                           ; e9 20 ff
     6996    je short 04e8fh                           ; 74 03
     6997    jmp near 04dafh                           ; e9 20 ff
    69746998    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6975     je short 04e5ah                           ; 74 04
     6999    je short 04e99h                           ; 74 04
    69767000    xor bl, bl                                ; 30 db
    6977     jmp short 04e5ch                          ; eb 02
     7001    jmp short 04e9bh                          ; eb 02
    69787002    mov BL, strict byte 001h                  ; b3 01
    69797003    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6980     je short 04e64h                           ; 74 02
     7004    je short 04ea3h                           ; 74 02
    69817005    mov BL, strict byte 001h                  ; b3 01
    69827006    xor dx, dx                                ; 31 d2
    69837007    mov ax, di                                ; 89 f8
    6984     call 0166ch                               ; e8 01 c8
     7008    call 0166ch                               ; e8 c2 c7
    69857009    mov si, ax                                ; 89 c6
    69867010    mov dx, strict word 00002h                ; ba 02 00
    69877011    mov ax, di                                ; 89 f8
    6988     call 0166ch                               ; e8 f7 c7
     7012    call 0166ch                               ; e8 b8 c7
    69897013    cmp si, ax                                ; 39 c6
    6990     je short 04e8ah                           ; 74 11
     7014    je short 04ec9h                           ; 74 11
    69917015    test bl, bl                               ; 84 db
    6992     jne short 04ea2h                          ; 75 25
     7016    jne short 04ee1h                          ; 75 25
    69937017    mov dx, 001feh                            ; ba fe 01
    69947018    mov ax, di                                ; 89 f8
    6995     call 0166ch                               ; e8 e7 c7
     7019    call 0166ch                               ; e8 a8 c7
    69967020    cmp ax, 0aa55h                            ; 3d 55 aa
    6997     je short 04ea2h                           ; 74 18
     7021    je short 04ee1h                           ; 74 18
    69987022    mov al, byte [bp-00ch]                    ; 8a 46 f4
    69997023    xor ah, ah                                ; 30 e4
     
    70057029    mov al, byte [bp-008h]                    ; 8a 46 f8
    70067030    xor cx, cx                                ; 31 c9
    7007     jmp near 04d86h                           ; e9 e4 fe
     7031    jmp near 04dc5h                           ; e9 e4 fe
    70087032    mov bl, byte [bp-006h]                    ; 8a 5e fa
    70097033    xor bh, bh                                ; 30 ff
     
    70127036    mov al, byte [bp-008h]                    ; 8a 46 f8
    70137037    xor ah, ah                                ; 30 e4
    7014     call 04b51h                               ; e8 9d fc
     7038    call 04b90h                               ; e8 9d fc
    70157039    mov al, byte [bp-006h]                    ; 8a 46 fa
    70167040    xor ah, ah                                ; 30 e4
     
    70257049    pop bp                                    ; 5d
    70267050    retn                                      ; c3
    7027 keyboard_panic_:                             ; 0xf4eca LB 0x13
     7051keyboard_panic_:                             ; 0xf4f09 LB 0x13
    70287052    push bp                                   ; 55
    70297053    mov bp, sp                                ; 89 e5
     
    70317055    push 00574h                               ; 68 74 05
    70327056    push strict byte 00007h                   ; 6a 07
    7033     call 01966h                               ; e8 90 ca
     7057    call 01966h                               ; e8 51 ca
    70347058    add sp, strict byte 00006h                ; 83 c4 06
    70357059    mov sp, bp                                ; 89 ec
    70367060    pop bp                                    ; 5d
    70377061    retn                                      ; c3
    7038 _keyboard_init:                              ; 0xf4edd LB 0x26a
     7062_keyboard_init:                              ; 0xf4f1c LB 0x26a
    70397063    push bp                                   ; 55
    70407064    mov bp, sp                                ; 89 e5
     
    70487072    ; sub ah, ah                                ; 2a e4
    70497073    test AL, strict byte 002h                 ; a8 02
    7050     je short 04f00h                           ; 74 0d
     7074    je short 04f3fh                           ; 74 0d
    70517075    dec bx                                    ; 4b
    70527076    test bx, bx                               ; 85 db
    7053     jbe short 04f00h                          ; 76 08
     7077    jbe short 04f3fh                          ; 76 08
    70547078    xor al, al                                ; 30 c0
    70557079    mov dx, 00080h                            ; ba 80 00
    70567080    out DX, AL                                ; ee
    7057     jmp short 04ee9h                          ; eb e9
     7081    jmp short 04f28h                          ; eb e9
    70587082    test bx, bx                               ; 85 db
    7059     jne short 04f09h                          ; 75 05
     7083    jne short 04f48h                          ; 75 05
    70607084    xor ax, ax                                ; 31 c0
    7061     call 04ecah                               ; e8 c1 ff
     7085    call 04f09h                               ; e8 c1 ff
    70627086    mov bx, strict word 0ffffh                ; bb ff ff
    70637087    mov dx, strict word 00064h                ; ba 64 00
     
    70667090    ; sub ah, ah                                ; 2a e4
    70677091    test AL, strict byte 001h                 ; a8 01
    7068     jne short 04f23h                          ; 75 0d
     7092    jne short 04f62h                          ; 75 0d
    70697093    dec bx                                    ; 4b
    70707094    test bx, bx                               ; 85 db
    7071     jbe short 04f23h                          ; 76 08
     7095    jbe short 04f62h                          ; 76 08
    70727096    mov AL, strict byte 001h                  ; b0 01
    70737097    mov dx, 00080h                            ; ba 80 00
    70747098    out DX, AL                                ; ee
    7075     jmp short 04f0ch                          ; eb e9
     7099    jmp short 04f4bh                          ; eb e9
    70767100    test bx, bx                               ; 85 db
    7077     jne short 04f2dh                          ; 75 06
     7101    jne short 04f6ch                          ; 75 06
    70787102    mov ax, strict word 00001h                ; b8 01 00
    7079     call 04ecah                               ; e8 9d ff
     7103    call 04f09h                               ; e8 9d ff
    70807104    mov dx, strict word 00060h                ; ba 60 00
    70817105    in AL, DX                                 ; ec
     
    70837107    ; sub ah, ah                                ; 2a e4
    70847108    cmp ax, strict word 00055h                ; 3d 55 00
    7085     je short 04f3eh                           ; 74 06
     7109    je short 04f7dh                           ; 74 06
    70867110    mov ax, 003dfh                            ; b8 df 03
    7087     call 04ecah                               ; e8 8c ff
     7111    call 04f09h                               ; e8 8c ff
    70887112    mov AL, strict byte 0abh                  ; b0 ab
    70897113    mov dx, strict word 00064h                ; ba 64 00
     
    70957119    ; sub ah, ah                                ; 2a e4
    70967120    test AL, strict byte 002h                 ; a8 02
    7097     je short 04f5eh                           ; 74 0d
     7121    je short 04f9dh                           ; 74 0d
    70987122    dec bx                                    ; 4b
    70997123    test bx, bx                               ; 85 db
    7100     jbe short 04f5eh                          ; 76 08
     7124    jbe short 04f9dh                          ; 76 08
    71017125    mov AL, strict byte 010h                  ; b0 10
    71027126    mov dx, 00080h                            ; ba 80 00
    71037127    out DX, AL                                ; ee
    7104     jmp short 04f47h                          ; eb e9
     7128    jmp short 04f86h                          ; eb e9
    71057129    test bx, bx                               ; 85 db
    7106     jne short 04f68h                          ; 75 06
     7130    jne short 04fa7h                          ; 75 06
    71077131    mov ax, strict word 0000ah                ; b8 0a 00
    7108     call 04ecah                               ; e8 62 ff
     7132    call 04f09h                               ; e8 62 ff
    71097133    mov bx, strict word 0ffffh                ; bb ff ff
    71107134    mov dx, strict word 00064h                ; ba 64 00
     
    71137137    ; sub ah, ah                                ; 2a e4
    71147138    test AL, strict byte 001h                 ; a8 01
    7115     jne short 04f82h                          ; 75 0d
     7139    jne short 04fc1h                          ; 75 0d
    71167140    dec bx                                    ; 4b
    71177141    test bx, bx                               ; 85 db
    7118     jbe short 04f82h                          ; 76 08
     7142    jbe short 04fc1h                          ; 76 08
    71197143    mov AL, strict byte 011h                  ; b0 11
    71207144    mov dx, 00080h                            ; ba 80 00
    71217145    out DX, AL                                ; ee
    7122     jmp short 04f6bh                          ; eb e9
     7146    jmp short 04faah                          ; eb e9
    71237147    test bx, bx                               ; 85 db
    7124     jne short 04f8ch                          ; 75 06
     7148    jne short 04fcbh                          ; 75 06
    71257149    mov ax, strict word 0000bh                ; b8 0b 00
    7126     call 04ecah                               ; e8 3e ff
     7150    call 04f09h                               ; e8 3e ff
    71277151    mov dx, strict word 00060h                ; ba 60 00
    71287152    in AL, DX                                 ; ec
     
    71307154    ; sub ah, ah                                ; 2a e4
    71317155    test ax, ax                               ; 85 c0
    7132     je short 04f9ch                           ; 74 06
     7156    je short 04fdbh                           ; 74 06
    71337157    mov ax, 003e0h                            ; b8 e0 03
    7134     call 04ecah                               ; e8 2e ff
     7158    call 04f09h                               ; e8 2e ff
    71357159    mov AL, strict byte 0ffh                  ; b0 ff
    71367160    mov dx, strict word 00060h                ; ba 60 00
     
    71427166    ; sub ah, ah                                ; 2a e4
    71437167    test AL, strict byte 002h                 ; a8 02
    7144     je short 04fbch                           ; 74 0d
     7168    je short 04ffbh                           ; 74 0d
    71457169    dec bx                                    ; 4b
    71467170    test bx, bx                               ; 85 db
    7147     jbe short 04fbch                          ; 76 08
     7171    jbe short 04ffbh                          ; 76 08
    71487172    mov AL, strict byte 020h                  ; b0 20
    71497173    mov dx, 00080h                            ; ba 80 00
    71507174    out DX, AL                                ; ee
    7151     jmp short 04fa5h                          ; eb e9
     7175    jmp short 04fe4h                          ; eb e9
    71527176    test bx, bx                               ; 85 db
    7153     jne short 04fc6h                          ; 75 06
     7177    jne short 05005h                          ; 75 06
    71547178    mov ax, strict word 00014h                ; b8 14 00
    7155     call 04ecah                               ; e8 04 ff
     7179    call 04f09h                               ; e8 04 ff
    71567180    mov bx, strict word 0ffffh                ; bb ff ff
    71577181    mov dx, strict word 00064h                ; ba 64 00
     
    71607184    ; sub ah, ah                                ; 2a e4
    71617185    test AL, strict byte 001h                 ; a8 01
    7162     jne short 04fe0h                          ; 75 0d
     7186    jne short 0501fh                          ; 75 0d
    71637187    dec bx                                    ; 4b
    71647188    test bx, bx                               ; 85 db
    7165     jbe short 04fe0h                          ; 76 08
     7189    jbe short 0501fh                          ; 76 08
    71667190    mov AL, strict byte 021h                  ; b0 21
    71677191    mov dx, 00080h                            ; ba 80 00
    71687192    out DX, AL                                ; ee
    7169     jmp short 04fc9h                          ; eb e9
     7193    jmp short 05008h                          ; eb e9
    71707194    test bx, bx                               ; 85 db
    7171     jne short 04feah                          ; 75 06
     7195    jne short 05029h                          ; 75 06
    71727196    mov ax, strict word 00015h                ; b8 15 00
    7173     call 04ecah                               ; e8 e0 fe
     7197    call 04f09h                               ; e8 e0 fe
    71747198    mov dx, strict word 00060h                ; ba 60 00
    71757199    in AL, DX                                 ; ec
     
    71777201    ; sub ah, ah                                ; 2a e4
    71787202    cmp ax, 000fah                            ; 3d fa 00
    7179     je short 04ffbh                           ; 74 06
     7203    je short 0503ah                           ; 74 06
    71807204    mov ax, 003e1h                            ; b8 e1 03
    7181     call 04ecah                               ; e8 cf fe
     7205    call 04f09h                               ; e8 cf fe
    71827206    mov dx, strict word 00064h                ; ba 64 00
    71837207    in AL, DX                                 ; ec
     
    71857209    ; sub ah, ah                                ; 2a e4
    71867210    test AL, strict byte 001h                 ; a8 01
    7187     jne short 0500dh                          ; 75 08
     7211    jne short 0504ch                          ; 75 08
    71887212    mov AL, strict byte 031h                  ; b0 31
    71897213    mov dx, 00080h                            ; ba 80 00
    71907214    out DX, AL                                ; ee
    7191     jmp short 04ffbh                          ; eb ee
     7215    jmp short 0503ah                          ; eb ee
    71927216    mov dx, strict word 00060h                ; ba 60 00
    71937217    in AL, DX                                 ; ec
     
    71957219    ; sub ah, ah                                ; 2a e4
    71967220    cmp ax, 000aah                            ; 3d aa 00
    7197     je short 05026h                           ; 74 0e
     7221    je short 05065h                           ; 74 0e
    71987222    in AL, DX                                 ; ec
    71997223    db  02ah, 0e4h
    72007224    ; sub ah, ah                                ; 2a e4
    72017225    cmp ax, 000aah                            ; 3d aa 00
    7202     je short 05026h                           ; 74 06
     7226    je short 05065h                           ; 74 06
    72037227    mov ax, 003e2h                            ; b8 e2 03
    7204     call 04ecah                               ; e8 a4 fe
     7228    call 04f09h                               ; e8 a4 fe
    72057229    mov AL, strict byte 0f5h                  ; b0 f5
    72067230    mov dx, strict word 00060h                ; ba 60 00
     
    72127236    ; sub ah, ah                                ; 2a e4
    72137237    test AL, strict byte 002h                 ; a8 02
    7214     je short 05046h                           ; 74 0d
     7238    je short 05085h                           ; 74 0d
    72157239    dec bx                                    ; 4b
    72167240    test bx, bx                               ; 85 db
    7217     jbe short 05046h                          ; 76 08
     7241    jbe short 05085h                          ; 76 08
    72187242    mov AL, strict byte 040h                  ; b0 40
    72197243    mov dx, 00080h                            ; ba 80 00
    72207244    out DX, AL                                ; ee
    7221     jmp short 0502fh                          ; eb e9
     7245    jmp short 0506eh                          ; eb e9
    72227246    test bx, bx                               ; 85 db
    7223     jne short 05050h                          ; 75 06
     7247    jne short 0508fh                          ; 75 06
    72247248    mov ax, strict word 00028h                ; b8 28 00
    7225     call 04ecah                               ; e8 7a fe
     7249    call 04f09h                               ; e8 7a fe
    72267250    mov bx, strict word 0ffffh                ; bb ff ff
    72277251    mov dx, strict word 00064h                ; ba 64 00
     
    72307254    ; sub ah, ah                                ; 2a e4
    72317255    test AL, strict byte 001h                 ; a8 01
    7232     jne short 0506ah                          ; 75 0d
     7256    jne short 050a9h                          ; 75 0d
    72337257    dec bx                                    ; 4b
    72347258    test bx, bx                               ; 85 db
    7235     jbe short 0506ah                          ; 76 08
     7259    jbe short 050a9h                          ; 76 08
    72367260    mov AL, strict byte 041h                  ; b0 41
    72377261    mov dx, 00080h                            ; ba 80 00
    72387262    out DX, AL                                ; ee
    7239     jmp short 05053h                          ; eb e9
     7263    jmp short 05092h                          ; eb e9
    72407264    test bx, bx                               ; 85 db
    7241     jne short 05074h                          ; 75 06
     7265    jne short 050b3h                          ; 75 06
    72427266    mov ax, strict word 00029h                ; b8 29 00
    7243     call 04ecah                               ; e8 56 fe
     7267    call 04f09h                               ; e8 56 fe
    72447268    mov dx, strict word 00060h                ; ba 60 00
    72457269    in AL, DX                                 ; ec
     
    72477271    ; sub ah, ah                                ; 2a e4
    72487272    cmp ax, 000fah                            ; 3d fa 00
    7249     je short 05085h                           ; 74 06
     7273    je short 050c4h                           ; 74 06
    72507274    mov ax, 003e3h                            ; b8 e3 03
    7251     call 04ecah                               ; e8 45 fe
     7275    call 04f09h                               ; e8 45 fe
    72527276    mov AL, strict byte 060h                  ; b0 60
    72537277    mov dx, strict word 00064h                ; ba 64 00
     
    72597283    ; sub ah, ah                                ; 2a e4
    72607284    test AL, strict byte 002h                 ; a8 02
    7261     je short 050a5h                           ; 74 0d
     7285    je short 050e4h                           ; 74 0d
    72627286    dec bx                                    ; 4b
    72637287    test bx, bx                               ; 85 db
    7264     jbe short 050a5h                          ; 76 08
     7288    jbe short 050e4h                          ; 76 08
    72657289    mov AL, strict byte 050h                  ; b0 50
    72667290    mov dx, 00080h                            ; ba 80 00
    72677291    out DX, AL                                ; ee
    7268     jmp short 0508eh                          ; eb e9
     7292    jmp short 050cdh                          ; eb e9
    72697293    test bx, bx                               ; 85 db
    7270     jne short 050afh                          ; 75 06
     7294    jne short 050eeh                          ; 75 06
    72717295    mov ax, strict word 00032h                ; b8 32 00
    7272     call 04ecah                               ; e8 1b fe
     7296    call 04f09h                               ; e8 1b fe
    72737297    mov AL, strict byte 065h                  ; b0 65
    72747298    mov dx, strict word 00060h                ; ba 60 00
     
    72807304    ; sub ah, ah                                ; 2a e4
    72817305    test AL, strict byte 002h                 ; a8 02
    7282     je short 050cfh                           ; 74 0d
     7306    je short 0510eh                           ; 74 0d
    72837307    dec bx                                    ; 4b
    72847308    test bx, bx                               ; 85 db
    7285     jbe short 050cfh                          ; 76 08
     7309    jbe short 0510eh                          ; 76 08
    72867310    mov AL, strict byte 060h                  ; b0 60
    72877311    mov dx, 00080h                            ; ba 80 00
    72887312    out DX, AL                                ; ee
    7289     jmp short 050b8h                          ; eb e9
     7313    jmp short 050f7h                          ; eb e9
    72907314    test bx, bx                               ; 85 db
    7291     jne short 050d9h                          ; 75 06
     7315    jne short 05118h                          ; 75 06
    72927316    mov ax, strict word 0003ch                ; b8 3c 00
    7293     call 04ecah                               ; e8 f1 fd
     7317    call 04f09h                               ; e8 f1 fd
    72947318    mov AL, strict byte 0f4h                  ; b0 f4
    72957319    mov dx, strict word 00060h                ; ba 60 00
     
    73017325    ; sub ah, ah                                ; 2a e4
    73027326    test AL, strict byte 002h                 ; a8 02
    7303     je short 050f9h                           ; 74 0d
     7327    je short 05138h                           ; 74 0d
    73047328    dec bx                                    ; 4b
    73057329    test bx, bx                               ; 85 db
    7306     jbe short 050f9h                          ; 76 08
     7330    jbe short 05138h                          ; 76 08
    73077331    mov AL, strict byte 070h                  ; b0 70
    73087332    mov dx, 00080h                            ; ba 80 00
    73097333    out DX, AL                                ; ee
    7310     jmp short 050e2h                          ; eb e9
     7334    jmp short 05121h                          ; eb e9
    73117335    test bx, bx                               ; 85 db
    7312     jne short 05103h                          ; 75 06
     7336    jne short 05142h                          ; 75 06
    73137337    mov ax, strict word 00046h                ; b8 46 00
    7314     call 04ecah                               ; e8 c7 fd
     7338    call 04f09h                               ; e8 c7 fd
    73157339    mov bx, strict word 0ffffh                ; bb ff ff
    73167340    mov dx, strict word 00064h                ; ba 64 00
     
    73197343    ; sub ah, ah                                ; 2a e4
    73207344    test AL, strict byte 001h                 ; a8 01
    7321     jne short 0511dh                          ; 75 0d
     7345    jne short 0515ch                          ; 75 0d
    73227346    dec bx                                    ; 4b
    73237347    test bx, bx                               ; 85 db
    7324     jbe short 0511dh                          ; 76 08
     7348    jbe short 0515ch                          ; 76 08
    73257349    mov AL, strict byte 071h                  ; b0 71
    73267350    mov dx, 00080h                            ; ba 80 00
    73277351    out DX, AL                                ; ee
    7328     jmp short 05106h                          ; eb e9
     7352    jmp short 05145h                          ; eb e9
    73297353    test bx, bx                               ; 85 db
    7330     jne short 05127h                          ; 75 06
     7354    jne short 05166h                          ; 75 06
    73317355    mov ax, strict word 00046h                ; b8 46 00
    7332     call 04ecah                               ; e8 a3 fd
     7356    call 04f09h                               ; e8 a3 fd
    73337357    mov dx, strict word 00060h                ; ba 60 00
    73347358    in AL, DX                                 ; ec
     
    73367360    ; sub ah, ah                                ; 2a e4
    73377361    cmp ax, 000fah                            ; 3d fa 00
    7338     je short 05138h                           ; 74 06
     7362    je short 05177h                           ; 74 06
    73397363    mov ax, 003e4h                            ; b8 e4 03
    7340     call 04ecah                               ; e8 92 fd
     7364    call 04f09h                               ; e8 92 fd
    73417365    mov AL, strict byte 0a8h                  ; b0 a8
    73427366    mov dx, strict word 00064h                ; ba 64 00
    73437367    out DX, AL                                ; ee
    73447368    xor ax, ax                                ; 31 c0
    7345     call 065eah                               ; e8 a7 14
     7369    call 06629h                               ; e8 a7 14
    73467370    mov sp, bp                                ; 89 ec
    73477371    pop bp                                    ; 5d
    73487372    retn                                      ; c3
    7349 enqueue_key_:                                ; 0xf5147 LB 0x9e
     7373enqueue_key_:                                ; 0xf5186 LB 0x9e
    73507374    push bp                                   ; 55
    73517375    mov bp, sp                                ; 89 e5
     
    73597383    mov dx, strict word 0001ah                ; ba 1a 00
    73607384    mov ax, strict word 00040h                ; b8 40 00
    7361     call 0166ch                               ; e8 0f c5
     7385    call 0166ch                               ; e8 d0 c4
    73627386    mov di, ax                                ; 89 c7
    73637387    mov dx, strict word 0001ch                ; ba 1c 00
    73647388    mov ax, strict word 00040h                ; b8 40 00
    7365     call 0166ch                               ; e8 04 c5
     7389    call 0166ch                               ; e8 c5 c4
    73667390    mov si, ax                                ; 89 c6
    73677391    lea cx, [si+002h]                         ; 8d 4c 02
    73687392    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7369     jc short 05175h                           ; 72 03
     7393    jc short 051b4h                           ; 72 03
    73707394    mov cx, strict word 0001eh                ; b9 1e 00
    73717395    cmp cx, di                                ; 39 f9
    7372     jne short 0517dh                          ; 75 04
     7396    jne short 051bch                          ; 75 04
    73737397    xor ax, ax                                ; 31 c0
    7374     jmp short 051a7h                          ; eb 2a
     7398    jmp short 051e6h                          ; eb 2a
    73757399    mov al, bl                                ; 88 d8
    73767400    xor ah, ah                                ; 30 e4
     
    73787402    mov dx, si                                ; 89 f2
    73797403    mov ax, strict word 00040h                ; b8 40 00
    7380     call 0165eh                               ; e8 d3 c4
     7404    call 0165eh                               ; e8 94 c4
    73817405    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    73827406    xor bh, bh                                ; 30 ff
    73837407    lea dx, [si+001h]                         ; 8d 54 01
    73847408    mov ax, strict word 00040h                ; b8 40 00
    7385     call 0165eh                               ; e8 c5 c4
     7409    call 0165eh                               ; e8 86 c4
    73867410    mov bx, cx                                ; 89 cb
    73877411    mov dx, strict word 0001ch                ; ba 1c 00
    73887412    mov ax, strict word 00040h                ; b8 40 00
    7389     call 0167ah                               ; e8 d6 c4
     7413    call 0167ah                               ; e8 97 c4
    73907414    mov ax, strict word 00001h                ; b8 01 00
    73917415    lea sp, [bp-008h]                         ; 8d 66 f8
     
    73977421    retn                                      ; c3
    73987422    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
    7399     db  01dh, 023h, 055h, 0dbh, 052h, 07dh, 052h, 07dh, 052h, 06ah, 053h, 054h, 052h, 0eeh, 053h, 062h
    7400     db  054h, 009h, 055h, 0e7h, 054h, 022h, 053h, 07dh, 052h, 07dh, 052h, 0ach, 053h, 072h, 052h, 042h
    7401     db  054h, 0c7h, 054h, 002h, 055h
    7402 _int09_function:                             ; 0xf51e5 LB 0x494
     7423    db  01dh, 062h, 055h, 01ah, 053h, 0bch, 052h, 0bch, 052h, 0a9h, 053h, 093h, 052h, 02dh, 054h, 0a1h
     7424    db  054h, 048h, 055h, 026h, 055h, 061h, 053h, 0bch, 052h, 0bch, 052h, 0ebh, 053h, 0b1h, 052h, 081h
     7425    db  054h, 006h, 055h, 041h, 055h
     7426_int09_function:                             ; 0xf5224 LB 0x494
    74037427    push bp                                   ; 55
    74047428    mov bp, sp                                ; 89 e5
     
    74087432    mov byte [bp-00ah], al                    ; 88 46 f6
    74097433    test al, al                               ; 84 c0
    7410     jne short 0520fh                          ; 75 19
    7411     mov bx, 00da4h                            ; bb a4 0d
     7434    jne short 0524eh                          ; 75 19
     7435    mov bx, 00da0h                            ; bb a0 0d
    74127436    mov cx, ds                                ; 8c d9
    74137437    mov ax, strict word 00004h                ; b8 04 00
    7414     call 01923h                               ; e8 22 c7
     7438    call 01923h                               ; e8 e3 c6
    74157439    push 00587h                               ; 68 87 05
    74167440    push strict byte 00004h                   ; 6a 04
    7417     call 01966h                               ; e8 5d c7
     7441    call 01966h                               ; e8 1e c7
    74187442    add sp, strict byte 00004h                ; 83 c4 04
    7419     jmp near 052d5h                           ; e9 c6 00
     7443    jmp near 05314h                           ; e9 c6 00
    74207444    mov dx, strict word 00018h                ; ba 18 00
    74217445    mov ax, strict word 00040h                ; b8 40 00
    7422     call 01650h                               ; e8 38 c4
     7446    call 01650h                               ; e8 f9 c3
    74237447    mov byte [bp-010h], al                    ; 88 46 f0
    74247448    mov byte [bp-008h], al                    ; 88 46 f8
    74257449    mov dx, 00096h                            ; ba 96 00
    74267450    mov ax, strict word 00040h                ; b8 40 00
    7427     call 01650h                               ; e8 29 c4
     7451    call 01650h                               ; e8 ea c3
    74287452    mov byte [bp-004h], al                    ; 88 46 fc
    74297453    mov byte [bp-00ch], al                    ; 88 46 f4
    74307454    mov dx, strict word 00017h                ; ba 17 00
    74317455    mov ax, strict word 00040h                ; b8 40 00
    7432     call 01650h                               ; e8 1a c4
     7456    call 01650h                               ; e8 db c3
    74337457    mov byte [bp-006h], al                    ; 88 46 fa
    74347458    mov byte [bp-00eh], al                    ; 88 46 f2
     
    74377461    pop ES                                    ; 07
    74387462    mov cx, strict word 00012h                ; b9 12 00
    7439     mov di, 051b0h                            ; bf b0 51
     7463    mov di, 051efh                            ; bf ef 51
    74407464    repne scasb                               ; f2 ae
    74417465    sal cx, 1                                 ; d1 e1
    74427466    mov di, cx                                ; 89 cf
    7443     mov ax, word [cs:di+051c1h]               ; 2e 8b 85 c1 51
     7467    mov ax, word [cs:di+05200h]               ; 2e 8b 85 00 52
    74447468    jmp ax                                    ; ff e0
    74457469    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    74497473    mov dx, strict word 00017h                ; ba 17 00
    74507474    mov ax, strict word 00040h                ; b8 40 00
    7451     call 0165eh                               ; e8 f6 c3
     7475    call 0165eh                               ; e8 b7 c3
    74527476    or byte [bp-008h], 040h                   ; 80 4e f8 40
    74537477    mov al, byte [bp-008h]                    ; 8a 46 f8
    7454     jmp near 054f3h                           ; e9 81 02
     7478    jmp near 05532h                           ; e9 81 02
    74557479    mov al, byte [bp-010h]                    ; 8a 46 f0
    74567480    and AL, strict byte 0bfh                  ; 24 bf
    74577481    mov byte [bp-008h], al                    ; 88 46 f8
    7458     jmp near 054f3h                           ; e9 76 02
     7482    jmp near 05532h                           ; e9 76 02
    74597483    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    7460     jne short 052b6h                          ; 75 33
     7484    jne short 052f5h                          ; 75 33
    74617485    mov al, byte [bp-00ah]                    ; 8a 46 f6
    74627486    and AL, strict byte 07fh                  ; 24 7f
    74637487    cmp AL, strict byte 02ah                  ; 3c 2a
    7464     jne short 05291h                          ; 75 05
     7488    jne short 052d0h                          ; 75 05
    74657489    mov dx, strict word 00002h                ; ba 02 00
    7466     jmp short 05294h                          ; eb 03
     7490    jmp short 052d3h                          ; eb 03
    74677491    mov dx, strict word 00001h                ; ba 01 00
    74687492    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    7469     je short 052a3h                           ; 74 09
     7493    je short 052e2h                           ; 74 09
    74707494    mov al, dl                                ; 88 d0
    74717495    not al                                    ; f6 d0
    74727496    and byte [bp-00eh], al                    ; 20 46 f2
    7473     jmp short 052a6h                          ; eb 03
     7497    jmp short 052e5h                          ; eb 03
    74747498    or byte [bp-00eh], dl                     ; 08 56 f2
    74757499    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    74787502    mov dx, strict word 00017h                ; ba 17 00
    74797503    mov ax, strict word 00040h                ; b8 40 00
    7480     call 0165eh                               ; e8 a8 c3
     7504    call 0165eh                               ; e8 69 c3
    74817505    mov al, byte [bp-00ah]                    ; 8a 46 f6
    74827506    and AL, strict byte 07fh                  ; 24 7f
    74837507    cmp AL, strict byte 01dh                  ; 3c 1d
    7484     je short 052c3h                           ; 74 04
     7508    je short 05302h                           ; 74 04
    74857509    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
    74867510    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
     
    74897513    mov dx, 00096h                            ; ba 96 00
    74907514    mov ax, strict word 00040h                ; b8 40 00
    7491     call 0165eh                               ; e8 89 c3
     7515    call 0165eh                               ; e8 4a c3
    74927516    lea sp, [bp-002h]                         ; 8d 66 fe
    74937517    pop di                                    ; 5f
     
    74957519    retn                                      ; c3
    74967520    test byte [bp-004h], 001h                 ; f6 46 fc 01
    7497     jne short 052b6h                          ; 75 d5
     7521    jne short 052f5h                          ; 75 d5
    74987522    mov al, byte [bp-006h]                    ; 8a 46 fa
    74997523    or AL, strict byte 004h                   ; 0c 04
     
    75037527    mov dx, strict word 00017h                ; ba 17 00
    75047528    mov ax, strict word 00040h                ; b8 40 00
    7505     call 0165eh                               ; e8 68 c3
     7529    call 0165eh                               ; e8 29 c3
    75067530    mov al, byte [bp-004h]                    ; 8a 46 fc
    75077531    test AL, strict byte 002h                 ; a8 02
    7508     je short 0530bh                           ; 74 0e
     7532    je short 0534ah                           ; 74 0e
    75097533    or AL, strict byte 004h                   ; 0c 04
    75107534    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75127536    mov bx, ax                                ; 89 c3
    75137537    mov dx, 00096h                            ; ba 96 00
    7514     jmp short 0531ah                          ; eb 0f
     7538    jmp short 05359h                          ; eb 0f
    75157539    mov al, byte [bp-010h]                    ; 8a 46 f0
    75167540    or AL, strict byte 001h                   ; 0c 01
     
    75207544    mov dx, strict word 00018h                ; ba 18 00
    75217545    mov ax, strict word 00040h                ; b8 40 00
    7522     call 0165eh                               ; e8 3e c3
    7523     jmp short 052b6h                          ; eb 94
     7546    call 0165eh                               ; e8 ff c2
     7547    jmp short 052f5h                          ; eb 94
    75247548    test byte [bp-004h], 001h                 ; f6 46 fc 01
    7525     jne short 052b6h                          ; 75 8e
     7549    jne short 052f5h                          ; 75 8e
    75267550    mov al, byte [bp-006h]                    ; 8a 46 fa
    75277551    and AL, strict byte 0fbh                  ; 24 fb
     
    75317555    mov dx, strict word 00017h                ; ba 17 00
    75327556    mov ax, strict word 00040h                ; b8 40 00
    7533     call 0165eh                               ; e8 21 c3
     7557    call 0165eh                               ; e8 e2 c2
    75347558    mov al, byte [bp-004h]                    ; 8a 46 fc
    75357559    test AL, strict byte 002h                 ; a8 02
    7536     je short 05352h                           ; 74 0e
     7560    je short 05391h                           ; 74 0e
    75377561    and AL, strict byte 0fbh                  ; 24 fb
    75387562    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75407564    mov bx, ax                                ; 89 c3
    75417565    mov dx, 00096h                            ; ba 96 00
    7542     jmp short 05361h                          ; eb 0f
     7566    jmp short 053a0h                          ; eb 0f
    75437567    mov al, byte [bp-010h]                    ; 8a 46 f0
    75447568    and AL, strict byte 0feh                  ; 24 fe
     
    75487572    mov dx, strict word 00018h                ; ba 18 00
    75497573    mov ax, strict word 00040h                ; b8 40 00
    7550     call 0165eh                               ; e8 f7 c2
    7551     jmp near 052b6h                           ; e9 4c ff
     7574    call 0165eh                               ; e8 b8 c2
     7575    jmp near 052f5h                           ; e9 4c ff
    75527576    mov al, byte [bp-006h]                    ; 8a 46 fa
    75537577    or AL, strict byte 008h                   ; 0c 08
     
    75577581    mov dx, strict word 00017h                ; ba 17 00
    75587582    mov ax, strict word 00040h                ; b8 40 00
    7559     call 0165eh                               ; e8 df c2
     7583    call 0165eh                               ; e8 a0 c2
    75607584    mov al, byte [bp-004h]                    ; 8a 46 fc
    75617585    test AL, strict byte 002h                 ; a8 02
    7562     je short 05394h                           ; 74 0e
     7586    je short 053d3h                           ; 74 0e
    75637587    or AL, strict byte 008h                   ; 0c 08
    75647588    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75667590    mov bx, ax                                ; 89 c3
    75677591    mov dx, 00096h                            ; ba 96 00
    7568     jmp short 053a3h                          ; eb 0f
     7592    jmp short 053e2h                          ; eb 0f
    75697593    mov al, byte [bp-010h]                    ; 8a 46 f0
    75707594    or AL, strict byte 002h                   ; 0c 02
     
    75747598    mov dx, strict word 00018h                ; ba 18 00
    75757599    mov ax, strict word 00040h                ; b8 40 00
    7576     call 0165eh                               ; e8 b5 c2
    7577     jmp near 052b6h                           ; e9 0a ff
     7600    call 0165eh                               ; e8 76 c2
     7601    jmp near 052f5h                           ; e9 0a ff
    75787602    mov al, byte [bp-006h]                    ; 8a 46 fa
    75797603    and AL, strict byte 0f7h                  ; 24 f7
     
    75837607    mov dx, strict word 00017h                ; ba 17 00
    75847608    mov ax, strict word 00040h                ; b8 40 00
    7585     call 0165eh                               ; e8 9d c2
     7609    call 0165eh                               ; e8 5e c2
    75867610    mov al, byte [bp-004h]                    ; 8a 46 fc
    75877611    test AL, strict byte 002h                 ; a8 02
    7588     je short 053d6h                           ; 74 0e
     7612    je short 05415h                           ; 74 0e
    75897613    and AL, strict byte 0f7h                  ; 24 f7
    75907614    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75927616    mov bx, ax                                ; 89 c3
    75937617    mov dx, 00096h                            ; ba 96 00
    7594     jmp short 053e5h                          ; eb 0f
     7618    jmp short 05424h                          ; eb 0f
    75957619    mov al, byte [bp-010h]                    ; 8a 46 f0
    75967620    and AL, strict byte 0fdh                  ; 24 fd
     
    76007624    mov dx, strict word 00018h                ; ba 18 00
    76017625    mov ax, strict word 00040h                ; b8 40 00
    7602     call 0165eh                               ; e8 73 c2
    7603     jmp near 052b6h                           ; e9 c8 fe
     7626    call 0165eh                               ; e8 34 c2
     7627    jmp near 052f5h                           ; e9 c8 fe
    76047628    test byte [bp-004h], 003h                 ; f6 46 fc 03
    7605     jne short 05414h                          ; 75 20
     7629    jne short 05453h                          ; 75 20
    76067630    mov al, byte [bp-010h]                    ; 8a 46 f0
    76077631    or AL, strict byte 020h                   ; 0c 20
     
    76117635    mov dx, strict word 00018h                ; ba 18 00
    76127636    mov ax, strict word 00040h                ; b8 40 00
    7613     call 0165eh                               ; e8 55 c2
     7637    call 0165eh                               ; e8 16 c2
    76147638    mov al, byte [bp-006h]                    ; 8a 46 fa
    76157639    xor AL, strict byte 020h                  ; 34 20
    76167640    mov byte [bp-00eh], al                    ; 88 46 f2
    7617     jmp near 052a9h                           ; e9 95 fe
     7641    jmp near 052e8h                           ; e9 95 fe
    76187642    mov al, byte [bp-010h]                    ; 8a 46 f0
    76197643    or AL, strict byte 008h                   ; 0c 08
     
    76237647    mov dx, strict word 00018h                ; ba 18 00
    76247648    mov ax, strict word 00040h                ; b8 40 00
    7625     call 0165eh                               ; e8 35 c2
     7649    call 0165eh                               ; e8 f6 c1
    76267650    mov AL, strict byte 0aeh                  ; b0 ae
    76277651    mov dx, strict word 00064h                ; ba 64 00
    76287652    out DX, AL                                ; ee
    7629     call 0e034h                               ; e8 02 8c
     7653    call 0e034h                               ; e8 c3 8b
    76307654    mov dx, strict word 00018h                ; ba 18 00
    76317655    mov ax, strict word 00040h                ; b8 40 00
    7632     call 01650h                               ; e8 15 c2
     7656    call 01650h                               ; e8 d6 c1
    76337657    test AL, strict byte 008h                 ; a8 08
    7634     jne short 05432h                          ; 75 f3
    7635     jmp near 052b6h                           ; e9 74 fe
     7658    jne short 05471h                          ; 75 f3
     7659    jmp near 052f5h                           ; e9 74 fe
    76367660    test byte [bp-004h], 003h                 ; f6 46 fc 03
    7637     je short 0544bh                           ; 74 03
    7638     jmp near 052b6h                           ; e9 6b fe
     7661    je short 0548ah                           ; 74 03
     7662    jmp near 052f5h                           ; e9 6b fe
    76397663    mov al, byte [bp-010h]                    ; 8a 46 f0
    76407664    and AL, strict byte 0dfh                  ; 24 df
     
    76447668    mov dx, strict word 00018h                ; ba 18 00
    76457669    mov ax, strict word 00040h                ; b8 40 00
    7646     call 0165eh                               ; e8 fe c1
    7647     jmp short 05448h                          ; eb e6
     7670    call 0165eh                               ; e8 bf c1
     7671    jmp short 05487h                          ; eb e6
    76487672    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7649     je short 0549bh                           ; 74 33
     7673    je short 054dah                           ; 74 33
    76507674    mov dx, strict word 0001ah                ; ba 1a 00
    76517675    mov ax, strict word 00040h                ; b8 40 00
    7652     call 0166ch                               ; e8 fb c1
     7676    call 0166ch                               ; e8 bc c1
    76537677    mov bx, ax                                ; 89 c3
    76547678    mov dx, strict word 0001ch                ; ba 1c 00
    76557679    mov ax, strict word 00040h                ; b8 40 00
    7656     call 0167ah                               ; e8 fe c1
     7680    call 0167ah                               ; e8 bf c1
    76577681    mov bx, 00080h                            ; bb 80 00
    76587682    mov dx, strict word 00071h                ; ba 71 00
    76597683    mov ax, strict word 00040h                ; b8 40 00
    7660     call 0165eh                               ; e8 d6 c1
     7684    call 0165eh                               ; e8 97 c1
    76617685    mov AL, strict byte 0aeh                  ; b0 ae
    76627686    mov dx, strict word 00064h                ; ba 64 00
     
    76677691    xor dx, dx                                ; 31 d2
    76687692    xor ax, ax                                ; 31 c0
    7669     call 05147h                               ; e8 ae fc
    7670     jmp short 05448h                          ; eb ad
     7693    call 05186h                               ; e8 ae fc
     7694    jmp short 05487h                          ; eb ad
    76717695    mov al, byte [bp-010h]                    ; 8a 46 f0
    76727696    or AL, strict byte 010h                   ; 0c 10
     
    76767700    mov dx, strict word 00018h                ; ba 18 00
    76777701    mov ax, strict word 00040h                ; b8 40 00
    7678     call 0165eh                               ; e8 ae c1
     7702    call 0165eh                               ; e8 6f c1
    76797703    mov al, byte [bp-006h]                    ; 8a 46 fa
    76807704    xor AL, strict byte 010h                  ; 34 10
     
    76847708    mov dx, strict word 00017h                ; ba 17 00
    76857709    mov ax, strict word 00040h                ; b8 40 00
    7686     call 0165eh                               ; e8 99 c1
    7687     jmp short 05448h                          ; eb 81
     7710    call 0165eh                               ; e8 5a c1
     7711    jmp short 05487h                          ; eb 81
    76887712    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7689     je short 054d0h                           ; 74 03
    7690     jmp near 052b6h                           ; e9 e6 fd
     7713    je short 0550fh                           ; 74 03
     7714    jmp near 052f5h                           ; e9 e6 fd
    76917715    mov al, byte [bp-010h]                    ; 8a 46 f0
    76927716    and AL, strict byte 0efh                  ; 24 ef
     
    76967720    mov dx, strict word 00018h                ; ba 18 00
    76977721    mov ax, strict word 00040h                ; b8 40 00
    7698     call 0165eh                               ; e8 79 c1
    7699     jmp short 054cdh                          ; eb e6
     7722    call 0165eh                               ; e8 3a c1
     7723    jmp short 0550ch                          ; eb e6
    77007724    mov al, byte [bp-010h]                    ; 8a 46 f0
    77017725    test AL, strict byte 004h                 ; a8 04
    7702     jne short 054cdh                          ; 75 df
     7726    jne short 0550ch                          ; 75 df
    77037727    or AL, strict byte 004h                   ; 0c 04
    77047728    mov byte [bp-008h], al                    ; 88 46 f8
     
    77077731    mov dx, strict word 00018h                ; ba 18 00
    77087732    mov ax, strict word 00040h                ; b8 40 00
    7709     call 0165eh                               ; e8 5e c1
    7710     jmp short 054cdh                          ; eb cb
     7733    call 0165eh                               ; e8 1f c1
     7734    jmp short 0550ch                          ; eb cb
    77117735    mov al, byte [bp-010h]                    ; 8a 46 f0
    77127736    and AL, strict byte 0fbh                  ; 24 fb
    7713     jmp short 054d5h                          ; eb cc
     7737    jmp short 05514h                          ; eb cc
    77147738    mov al, byte [bp-006h]                    ; 8a 46 fa
    77157739    and AL, strict byte 00ch                  ; 24 0c
    77167740    cmp AL, strict byte 00ch                  ; 3c 0c
    7717     jne short 05523h                          ; 75 11
     7741    jne short 05562h                          ; 75 11
    77187742    mov bx, 01234h                            ; bb 34 12
    77197743    mov dx, strict word 00072h                ; ba 72 00
    77207744    mov ax, strict word 00040h                ; b8 40 00
    7721     call 0167ah                               ; e8 5c c1
     7745    call 0167ah                               ; e8 1d c1
    77227746    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    77237747    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7724     je short 05538h                           ; 74 0f
     7748    je short 05577h                           ; 74 0f
    77257749    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    77267750    mov bl, byte [bp-008h]                    ; 8a 5e f8
    77277751    xor bh, bh                                ; 30 ff
    77287752    mov dx, strict word 00018h                ; ba 18 00
    7729     jmp near 052cfh                           ; e9 97 fd
     7753    jmp near 0530eh                           ; e9 97 fd
    77307754    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77317755    test AL, strict byte 080h                 ; a8 80
    7732     je short 05576h                           ; 74 37
     7756    je short 055b5h                           ; 74 37
    77337757    cmp AL, strict byte 0fah                  ; 3c fa
    7734     jne short 05555h                          ; 75 12
     7758    jne short 05594h                          ; 75 12
    77357759    mov dx, 00097h                            ; ba 97 00
    77367760    mov ax, strict word 00040h                ; b8 40 00
    7737     call 01650h                               ; e8 04 c1
     7761    call 01650h                               ; e8 c5 c0
    77387762    mov bl, al                                ; 88 c3
    77397763    or bl, 010h                               ; 80 cb 10
    77407764    xor bh, bh                                ; 30 ff
    7741     jmp short 0556bh                          ; eb 16
     7765    jmp short 055aah                          ; eb 16
    77427766    cmp AL, strict byte 0feh                  ; 3c fe
    7743     je short 0555ch                           ; 74 03
    7744     jmp near 052b6h                           ; e9 5a fd
     7767    je short 0559bh                           ; 74 03
     7768    jmp near 052f5h                           ; e9 5a fd
    77457769    mov dx, 00097h                            ; ba 97 00
    77467770    mov ax, strict word 00040h                ; b8 40 00
    7747     call 01650h                               ; e8 eb c0
     7771    call 01650h                               ; e8 ac c0
    77487772    or AL, strict byte 020h                   ; 0c 20
    77497773    xor ah, ah                                ; 30 e4
     
    77517775    mov dx, 00097h                            ; ba 97 00
    77527776    mov ax, strict word 00040h                ; b8 40 00
    7753     call 0165eh                               ; e8 ea c0
    7754     jmp short 05559h                          ; eb e3
     7777    call 0165eh                               ; e8 ab c0
     7778    jmp short 05598h                          ; eb e3
    77557779    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    7756     jbe short 0559bh                          ; 76 1f
    7757     mov bx, 00da4h                            ; bb a4 0d
     7780    jbe short 055dah                          ; 76 1f
     7781    mov bx, 00da0h                            ; bb a0 0d
    77587782    mov cx, ds                                ; 8c d9
    77597783    mov ax, strict word 00004h                ; b8 04 00
    7760     call 01923h                               ; e8 9c c3
     7784    call 01923h                               ; e8 5d c3
    77617785    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77627786    xor ah, ah                                ; 30 e4
     
    77647788    push 005a1h                               ; 68 a1 05
    77657789    push strict byte 00004h                   ; 6a 04
    7766     call 01966h                               ; e8 d1 c3
     7790    call 01966h                               ; e8 92 c3
    77677791    add sp, strict byte 00006h                ; 83 c4 06
    7768     jmp near 052d5h                           ; e9 3a fd
     7792    jmp near 05314h                           ; e9 3a fd
    77697793    mov al, byte [bp-00eh]                    ; 8a 46 f2
    77707794    test AL, strict byte 008h                 ; a8 08
    7771     je short 055b5h                           ; 74 13
     7795    je short 055f4h                           ; 74 13
    77727796    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77737797    xor ah, ah                                ; 30 e4
    77747798    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7775     mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
    7776     mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
    7777     jmp near 05645h                           ; e9 90 00
     7799    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
     7800    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
     7801    jmp near 05684h                           ; e9 90 00
    77787802    test AL, strict byte 004h                 ; a8 04
    7779     je short 055cch                           ; 74 13
     7803    je short 0560bh                           ; 74 13
    77807804    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77817805    xor ah, ah                                ; 30 e4
    77827806    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7783     mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
    7784     mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    7785     jmp near 05645h                           ; e9 79 00
     7807    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     7808    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
     7809    jmp near 05684h                           ; e9 79 00
    77867810    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77877811    and AL, strict byte 002h                  ; 24 02
    77887812    test al, al                               ; 84 c0
    7789     jbe short 055e9h                          ; 76 14
     7813    jbe short 05628h                          ; 76 14
    77907814    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77917815    cmp AL, strict byte 047h                  ; 3c 47
    7792     jc short 055e9h                           ; 72 0d
     7816    jc short 05628h                           ; 72 0d
    77937817    cmp AL, strict byte 053h                  ; 3c 53
    7794     jnbe short 055e9h                         ; 77 09
     7818    jnbe short 05628h                         ; 77 09
    77957819    mov DL, strict byte 0e0h                  ; b2 e0
    77967820    xor ah, ah                                ; 30 e4
    77977821    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7798     jmp short 05641h                          ; eb 58
     7822    jmp short 05680h                          ; eb 58
    77997823    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7800     je short 0561eh                           ; 74 2f
     7824    je short 0565dh                           ; 74 2f
    78017825    mov al, byte [bp-00ah]                    ; 8a 46 f6
    78027826    xor ah, ah                                ; 30 e4
    78037827    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7804     mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
     7828    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    78057829    mov dx, ax                                ; 89 c2
    78067830    mov al, byte [bp-00eh]                    ; 8a 46 f2
    78077831    test ax, dx                               ; 85 d0
    7808     je short 0560eh                           ; 74 0a
    7809     mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    7810     mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7811     jmp short 05616h                          ; eb 08
    7812     mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    7813     mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
     7832    je short 0564dh                           ; 74 0a
     7833    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
     7834    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     7835    jmp short 05655h                          ; eb 08
     7836    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
     7837    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    78147838    shr ax, 008h                              ; c1 e8 08
    78157839    mov byte [bp-00ah], al                    ; 88 46 f6
    7816     jmp short 0564bh                          ; eb 2d
     7840    jmp short 0568ah                          ; eb 2d
    78177841    mov al, byte [bp-00ah]                    ; 8a 46 f6
    78187842    xor ah, ah                                ; 30 e4
    78197843    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7820     mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
     7844    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    78217845    mov dx, ax                                ; 89 c2
    78227846    mov al, byte [bp-00eh]                    ; 8a 46 f2
    78237847    test ax, dx                               ; 85 d0
    7824     je short 0563dh                           ; 74 0a
    7825     mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    7826     mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7827     jmp short 05645h                          ; eb 08
    7828     mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    7829     mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
     7848    je short 0567ch                           ; 74 0a
     7849    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
     7850    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
     7851    jmp short 05684h                          ; eb 08
     7852    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
     7853    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
    78307854    shr ax, 008h                              ; c1 e8 08
    78317855    mov byte [bp-00ah], al                    ; 88 46 f6
    78327856    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7833     jne short 0566bh                          ; 75 1a
     7857    jne short 056aah                          ; 75 1a
    78347858    test dl, dl                               ; 84 d2
    7835     jne short 0566bh                          ; 75 16
    7836     mov bx, 00da4h                            ; bb a4 0d
     7859    jne short 056aah                          ; 75 16
     7860    mov bx, 00da0h                            ; bb a0 0d
    78377861    mov cx, ds                                ; 8c d9
    78387862    mov ax, strict word 00004h                ; b8 04 00
    7839     call 01923h                               ; e8 c3 c2
     7863    call 01923h                               ; e8 84 c2
    78407864    push 005d8h                               ; 68 d8 05
    78417865    push strict byte 00004h                   ; 6a 04
    7842     call 01966h                               ; e8 fe c2
     7866    call 01966h                               ; e8 bf c2
    78437867    add sp, strict byte 00004h                ; 83 c4 04
    78447868    mov bl, dl                                ; 88 d3
     
    78477871    xor ah, ah                                ; 30 e4
    78487872    mov dx, bx                                ; 89 da
    7849     jmp near 05496h                           ; e9 1d fe
    7850 dequeue_key_:                                ; 0xf5679 LB 0x94
     7873    jmp near 054d5h                           ; e9 1d fe
     7874dequeue_key_:                                ; 0xf56b8 LB 0x94
    78517875    push bp                                   ; 55
    78527876    mov bp, sp                                ; 89 e5
     
    78617885    mov dx, strict word 0001ah                ; ba 1a 00
    78627886    mov ax, strict word 00040h                ; b8 40 00
    7863     call 0166ch                               ; e8 d9 bf
     7887    call 0166ch                               ; e8 9a bf
    78647888    mov bx, ax                                ; 89 c3
    78657889    mov dx, strict word 0001ch                ; ba 1c 00
    78667890    mov ax, strict word 00040h                ; b8 40 00
    7867     call 0166ch                               ; e8 ce bf
     7891    call 0166ch                               ; e8 8f bf
    78687892    cmp bx, ax                                ; 39 c3
    7869     je short 056dfh                           ; 74 3d
     7893    je short 0571eh                           ; 74 3d
    78707894    mov dx, bx                                ; 89 da
    78717895    mov ax, strict word 00040h                ; b8 40 00
    7872     call 01650h                               ; e8 a6 bf
     7896    call 01650h                               ; e8 67 bf
    78737897    mov cl, al                                ; 88 c1
    78747898    lea dx, [bx+001h]                         ; 8d 57 01
    78757899    mov ax, strict word 00040h                ; b8 40 00
    7876     call 01650h                               ; e8 9b bf
     7900    call 01650h                               ; e8 5c bf
    78777901    mov es, [bp-008h]                         ; 8e 46 f8
    78787902    mov byte [es:si], cl                      ; 26 88 0c
     
    78807904    mov byte [es:di], al                      ; 26 88 05
    78817905    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7882     je short 056dah                           ; 74 13
     7906    je short 05719h                           ; 74 13
    78837907    inc bx                                    ; 43
    78847908    inc bx                                    ; 43
    78857909    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7886     jc short 056d1h                           ; 72 03
     7910    jc short 05710h                           ; 72 03
    78877911    mov bx, strict word 0001eh                ; bb 1e 00
    78887912    mov dx, strict word 0001ah                ; ba 1a 00
    78897913    mov ax, strict word 00040h                ; b8 40 00
    7890     call 0167ah                               ; e8 a0 bf
     7914    call 0167ah                               ; e8 61 bf
    78917915    mov ax, strict word 00001h                ; b8 01 00
    7892     jmp short 056e1h                          ; eb 02
     7916    jmp short 05720h                          ; eb 02
    78937917    xor ax, ax                                ; 31 c0
    78947918    lea sp, [bp-004h]                         ; 8d 66 fc
     
    79017925    or cl, byte [bx+di]                       ; 0a 09
    79027926    add ax, 00102h                            ; 05 02 01
    7903     add byte [bp+si], dl                      ; 00 12
     7927    add byte [bx+di+058h], dl                 ; 00 51 58
     7928    or byte [bx+si-066h], bl                  ; 08 58 9a
    79047929    pop ax                                    ; 58
    7905     leave                                     ; c9
    7906     push di                                   ; 57
    7907     pop bx                                    ; 5b
     7930    out 058h, ax                              ; e7 58
     7931    clc                                       ; f8
    79087932    pop ax                                    ; 58
    7909     test AL, strict byte 058h                 ; a8 58
    7910     mov cx, 0e258h                            ; b9 58 e2
     7933    and word [bx+di+02ah], bx                 ; 21 59 2a
     7934    pop cx                                    ; 59
     7935    wait                                      ; 9b
     7936    pop cx                                    ; 59
     7937    int 059h                                  ; cd 59
     7938    std                                       ; fd
     7939    pop cx                                    ; 59
     7940    db  036h, 05ah
     7941    ; ss pop dx                                 ; 36 5a
     7942    xchg sp, ax                               ; 94
    79117943    pop ax                                    ; 58
    7912     jmp short 0575bh                          ; eb 58
    7913     pop sp                                    ; 5c
    7914     pop cx                                    ; 59
    7915     mov ds, [bx+di-042h]                      ; 8e 59 be
    7916     pop cx                                    ; 59
    7917     neg word [bx+di+055h]                     ; f7 59 55
    7918     pop ax                                    ; 58
    7919 _int16_function:                             ; 0xf570d LB 0x2f5
     7944_int16_function:                             ; 0xf574c LB 0x2f5
    79207945    push bp                                   ; 55
    79217946    mov bp, sp                                ; 89 e5
     
    79247949    mov dx, strict word 00017h                ; ba 17 00
    79257950    mov ax, strict word 00040h                ; b8 40 00
    7926     call 01650h                               ; e8 33 bf
     7951    call 01650h                               ; e8 f4 be
    79277952    mov cl, al                                ; 88 c1
    79287953    mov bl, al                                ; 88 c3
    79297954    mov dx, 00097h                            ; ba 97 00
    79307955    mov ax, strict word 00040h                ; b8 40 00
    7931     call 01650h                               ; e8 26 bf
     7956    call 01650h                               ; e8 e7 be
    79327957    mov bh, al                                ; 88 c7
    79337958    mov dl, cl                                ; 88 ca
     
    79397964    xor al, dl                                ; 30 d0
    79407965    test ax, ax                               ; 85 c0
    7941     je short 057a9h                           ; 74 69
     7966    je short 057e8h                           ; 74 69
    79427967    cli                                       ; fa
    79437968    mov AL, strict byte 0edh                  ; b0 ed
     
    79497974    ; sub ah, ah                                ; 2a e4
    79507975    test AL, strict byte 001h                 ; a8 01
    7951     jne short 05759h                          ; 75 08
     7976    jne short 05798h                          ; 75 08
    79527977    mov AL, strict byte 021h                  ; b0 21
    79537978    mov dx, 00080h                            ; ba 80 00
    79547979    out DX, AL                                ; ee
    7955     jmp short 05747h                          ; eb ee
     7980    jmp short 05786h                          ; eb ee
    79567981    mov dx, strict word 00060h                ; ba 60 00
    79577982    in AL, DX                                 ; ec
     
    79597984    ; sub ah, ah                                ; 2a e4
    79607985    cmp ax, 000fah                            ; 3d fa 00
    7961     jne short 057a8h                          ; 75 44
     7986    jne short 057e7h                          ; 75 44
    79627987    mov dl, bh                                ; 88 fa
    79637988    and dl, 0c8h                              ; 80 e2 c8
     
    79798004    ; sub ah, ah                                ; 2a e4
    79808005    test AL, strict byte 001h                 ; a8 01
    7981     jne short 05795h                          ; 75 08
     8006    jne short 057d4h                          ; 75 08
    79828007    mov AL, strict byte 021h                  ; b0 21
    79838008    mov dx, 00080h                            ; ba 80 00
    79848009    out DX, AL                                ; ee
    7985     jmp short 05783h                          ; eb ee
     8010    jmp short 057c2h                          ; eb ee
    79868011    mov dx, strict word 00060h                ; ba 60 00
    79878012    in AL, DX                                 ; ec
     
    79928017    mov dx, 00097h                            ; ba 97 00
    79938018    mov ax, strict word 00040h                ; b8 40 00
    7994     call 0165eh                               ; e8 b6 be
     8019    call 0165eh                               ; e8 77 be
    79958020    sti                                       ; fb
    79968021    mov ax, word [bp+012h]                    ; 8b 46 12
    79978022    shr ax, 008h                              ; c1 e8 08
    79988023    cmp ax, 000a2h                            ; 3d a2 00
    7999     jnbe short 05812h                         ; 77 5e
     8024    jnbe short 05851h                         ; 77 5e
    80008025    push CS                                   ; 0e
    80018026    pop ES                                    ; 07
    80028027    mov cx, strict word 0000ch                ; b9 0c 00
    8003     mov di, 056eah                            ; bf ea 56
     8028    mov di, 05729h                            ; bf 29 57
    80048029    repne scasb                               ; f2 ae
    80058030    sal cx, 1                                 ; d1 e1
    80068031    mov di, cx                                ; 89 cf
    8007     mov ax, word [cs:di+056f5h]               ; 2e 8b 85 f5 56
     8032    mov ax, word [cs:di+05734h]               ; 2e 8b 85 34 57
    80088033    jmp ax                                    ; ff e0
    80098034    push strict byte 00001h                   ; 6a 01
     
    80128037    mov dx, ss                                ; 8c d2
    80138038    lea ax, [bp-006h]                         ; 8d 46 fa
    8014     call 05679h                               ; e8 a1 fe
     8039    call 056b8h                               ; e8 a1 fe
    80158040    test ax, ax                               ; 85 c0
    8016     jne short 057e7h                          ; 75 0b
     8041    jne short 05826h                          ; 75 0b
    80178042    push 0060fh                               ; 68 0f 06
    80188043    push strict byte 00007h                   ; 6a 07
    8019     call 01966h                               ; e8 82 c1
     8044    call 01966h                               ; e8 43 c1
    80208045    add sp, strict byte 00004h                ; 83 c4 04
    80218046    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8022     je short 057f3h                           ; 74 06
     8047    je short 05832h                           ; 74 06
    80238048    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8024     je short 057f9h                           ; 74 06
     8049    je short 05838h                           ; 74 06
    80258050    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    8026     jne short 057fdh                          ; 75 04
     8051    jne short 0583ch                          ; 75 04
    80278052    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    80288053    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    80338058    or dx, ax                                 ; 09 c2
    80348059    mov word [bp+012h], dx                    ; 89 56 12
    8035     jmp near 05855h                           ; e9 43 00
    8036     mov bx, 00da4h                            ; bb a4 0d
     8060    jmp near 05894h                           ; e9 43 00
     8061    mov bx, 00da0h                            ; bb a0 0d
    80378062    mov cx, ds                                ; 8c d9
    80388063    mov ax, strict word 00004h                ; b8 04 00
    8039     call 01923h                               ; e8 06 c1
     8064    call 01923h                               ; e8 c7 c0
    80408065    mov ax, word [bp+012h]                    ; 8b 46 12
    80418066    shr ax, 008h                              ; c1 e8 08
     
    80438068    push 00633h                               ; 68 33 06
    80448069    push strict byte 00004h                   ; 6a 04
    8045     call 01966h                               ; e8 3a c1
     8070    call 01966h                               ; e8 fb c0
    80468071    add sp, strict byte 00006h                ; 83 c4 06
    8047     mov bx, 00da4h                            ; bb a4 0d
     8072    mov bx, 00da0h                            ; bb a0 0d
    80488073    mov cx, ds                                ; 8c d9
    80498074    mov ax, strict word 00004h                ; b8 04 00
    8050     call 01923h                               ; e8 e9 c0
     8075    call 01923h                               ; e8 aa c0
    80518076    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80528077    push ax                                   ; 50
     
    80598084    push 0065bh                               ; 68 5b 06
    80608085    push strict byte 00004h                   ; 6a 04
    8061     call 01966h                               ; e8 14 c1
     8086    call 01966h                               ; e8 d5 c0
    80628087    add sp, strict byte 0000ch                ; 83 c4 0c
    80638088    lea sp, [bp-002h]                         ; 8d 66 fe
     
    80728097    mov dx, ss                                ; 8c d2
    80738098    lea ax, [bp-006h]                         ; 8d 46 fa
    8074     call 05679h                               ; e8 09 fe
     8099    call 056b8h                               ; e8 09 fe
    80758100    test ax, ax                               ; 85 c0
    8076     jne short 0587ah                          ; 75 06
     8101    jne short 058b9h                          ; 75 06
    80778102    or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
    8078     jmp short 05855h                          ; eb db
     8103    jmp short 05894h                          ; eb db
    80798104    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8080     je short 05886h                           ; 74 06
     8105    je short 058c5h                           ; 74 06
    80818106    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8082     je short 0588ch                           ; 74 06
     8107    je short 058cbh                           ; 74 06
    80838108    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    8084     jne short 05890h                          ; 75 04
     8109    jne short 058cfh                          ; 75 04
    80858110    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    80868111    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    80928117    mov word [bp+012h], dx                    ; 89 56 12
    80938118    and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
    8094     jmp short 05855h                          ; eb ad
     8119    jmp short 05894h                          ; eb ad
    80958120    mov dx, strict word 00017h                ; ba 17 00
    80968121    mov ax, strict word 00040h                ; b8 40 00
    8097     call 01650h                               ; e8 9f bd
     8122    call 01650h                               ; e8 60 bd
    80988123    mov dx, word [bp+012h]                    ; 8b 56 12
    80998124    mov dl, al                                ; 88 c2
    8100     jmp near 0580ch                           ; e9 53 ff
     8125    jmp near 0584bh                           ; e9 53 ff
    81018126    mov dl, byte [bp+010h]                    ; 8a 56 10
    81028127    xor dh, dh                                ; 30 f6
     
    81048129    shr ax, 008h                              ; c1 e8 08
    81058130    xor ah, ah                                ; 30 e4
    8106     call 05147h                               ; e8 7e f8
     8131    call 05186h                               ; e8 7e f8
    81078132    test ax, ax                               ; 85 c0
    8108     jne short 058dah                          ; 75 0d
     8133    jne short 05919h                          ; 75 0d
    81098134    mov ax, word [bp+012h]                    ; 8b 46 12
    81108135    xor al, al                                ; 30 c0
    81118136    or AL, strict byte 001h                   ; 0c 01
    81128137    mov word [bp+012h], ax                    ; 89 46 12
    8113     jmp near 05855h                           ; e9 7b ff
     8138    jmp near 05894h                           ; e9 7b ff
    81148139    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8115     jmp near 05855h                           ; e9 73 ff
     8140    jmp near 05894h                           ; e9 73 ff
    81168141    mov ax, word [bp+012h]                    ; 8b 46 12
    81178142    xor al, al                                ; 30 c0
    81188143    or AL, strict byte 030h                   ; 0c 30
    8119     jmp short 058d4h                          ; eb e9
     8144    jmp short 05913h                          ; eb e9
    81208145    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    81218146    xor cx, cx                                ; 31 c9
     
    81308155    ; sub ah, ah                                ; 2a e4
    81318156    test AL, strict byte 001h                 ; a8 01
    8132     jne short 05912h                          ; 75 0d
     8157    jne short 05951h                          ; 75 0d
    81338158    dec bx                                    ; 4b
    81348159    test bx, bx                               ; 85 db
    8135     jbe short 05912h                          ; 76 08
     8160    jbe short 05951h                          ; 76 08
    81368161    mov dx, 00080h                            ; ba 80 00
    81378162    in AL, DX                                 ; ec
    81388163    db  02ah, 0e4h
    81398164    ; sub ah, ah                                ; 2a e4
    8140     jmp short 058fbh                          ; eb e9
     8165    jmp short 0593ah                          ; eb e9
    81418166    test bx, bx                               ; 85 db
    8142     jbe short 05956h                          ; 76 40
     8167    jbe short 05995h                          ; 76 40
    81438168    mov dx, strict word 00060h                ; ba 60 00
    81448169    in AL, DX                                 ; ec
     
    81468171    ; sub ah, ah                                ; 2a e4
    81478172    cmp ax, 000fah                            ; 3d fa 00
    8148     jne short 05956h                          ; 75 35
     8173    jne short 05995h                          ; 75 35
    81498174    mov bx, strict word 0ffffh                ; bb ff ff
    81508175    mov dx, strict word 00064h                ; ba 64 00
     
    81538178    ; sub ah, ah                                ; 2a e4
    81548179    test AL, strict byte 001h                 ; a8 01
    8155     jne short 0593bh                          ; 75 0d
     8180    jne short 0597ah                          ; 75 0d
    81568181    dec bx                                    ; 4b
    81578182    test bx, bx                               ; 85 db
    8158     jbe short 0593bh                          ; 76 08
     8183    jbe short 0597ah                          ; 76 08
    81598184    mov dx, 00080h                            ; ba 80 00
    81608185    in AL, DX                                 ; ec
    81618186    db  02ah, 0e4h
    81628187    ; sub ah, ah                                ; 2a e4
    8163     jmp short 05924h                          ; eb e9
     8188    jmp short 05963h                          ; eb e9
    81648189    test bx, bx                               ; 85 db
    8165     jbe short 0594dh                          ; 76 0e
     8190    jbe short 0598ch                          ; 76 0e
    81668191    shr cx, 008h                              ; c1 e9 08
    81678192    mov dx, strict word 00060h                ; ba 60 00
     
    81738198    dec byte [bp-004h]                        ; fe 4e fc
    81748199    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8175     jnbe short 05921h                         ; 77 cb
     8200    jnbe short 05960h                         ; 77 cb
    81768201    mov word [bp+00ch], cx                    ; 89 4e 0c
    8177     jmp near 05855h                           ; e9 f9 fe
     8202    jmp near 05894h                           ; e9 f9 fe
    81788203    push strict byte 00001h                   ; 6a 01
    81798204    mov cx, ss                                ; 8c d1
     
    81818206    mov dx, ss                                ; 8c d2
    81828207    lea ax, [bp-006h]                         ; 8d 46 fa
    8183     call 05679h                               ; e8 0e fd
     8208    call 056b8h                               ; e8 0e fd
    81848209    test ax, ax                               ; 85 c0
    8185     jne short 0597ah                          ; 75 0b
     8210    jne short 059b9h                          ; 75 0b
    81868211    push 0060fh                               ; 68 0f 06
    81878212    push strict byte 00007h                   ; 6a 07
    8188     call 01966h                               ; e8 ef bf
     8213    call 01966h                               ; e8 b0 bf
    81898214    add sp, strict byte 00004h                ; 83 c4 04
    81908215    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8191     jne short 05983h                          ; 75 03
    8192     jmp near 057fdh                           ; e9 7a fe
     8216    jne short 059c2h                          ; 75 03
     8217    jmp near 0583ch                           ; e9 7a fe
    81938218    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8194     jne short 0598ch                          ; 75 03
    8195     jmp near 057f9h                           ; e9 6d fe
    8196     jmp short 05980h                          ; eb f2
     8219    jne short 059cbh                          ; 75 03
     8220    jmp near 05838h                           ; e9 6d fe
     8221    jmp short 059bfh                          ; eb f2
    81978222    mov ax, word [bp+018h]                    ; 8b 46 18
    81988223    mov word [bp+01eh], ax                    ; 89 46 1e
     
    82028227    mov dx, ss                                ; 8c d2
    82038228    lea ax, [bp-006h]                         ; 8d 46 fa
    8204     call 05679h                               ; e8 d6 fc
     8229    call 056b8h                               ; e8 d6 fc
    82058230    test ax, ax                               ; 85 c0
    8206     jne short 059aah                          ; 75 03
    8207     jmp near 05874h                           ; e9 ca fe
     8231    jne short 059e9h                          ; 75 03
     8232    jmp near 058b3h                           ; e9 ca fe
    82088233    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8209     jne short 059b3h                          ; 75 03
    8210     jmp near 05890h                           ; e9 dd fe
     8234    jne short 059f2h                          ; 75 03
     8235    jmp near 058cfh                           ; e9 dd fe
    82118236    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8212     jne short 059bch                          ; 75 03
    8213     jmp near 0588ch                           ; e9 d0 fe
    8214     jmp short 059b0h                          ; eb f2
     8237    jne short 059fbh                          ; 75 03
     8238    jmp near 058cbh                           ; e9 d0 fe
     8239    jmp short 059efh                          ; eb f2
    82158240    mov dx, strict word 00017h                ; ba 17 00
    82168241    mov ax, strict word 00040h                ; b8 40 00
    8217     call 01650h                               ; e8 89 bc
     8242    call 01650h                               ; e8 4a bc
    82188243    mov dx, word [bp+012h]                    ; 8b 56 12
    82198244    mov dl, al                                ; 88 c2
     
    82218246    mov dx, strict word 00018h                ; ba 18 00
    82228247    mov ax, strict word 00040h                ; b8 40 00
    8223     call 01650h                               ; e8 78 bc
     8248    call 01650h                               ; e8 39 bc
    82248249    mov bl, al                                ; 88 c3
    82258250    and bl, 073h                              ; 80 e3 73
    82268251    mov dx, 00096h                            ; ba 96 00
    82278252    mov ax, strict word 00040h                ; b8 40 00
    8228     call 01650h                               ; e8 6a bc
     8253    call 01650h                               ; e8 2b bc
    82298254    and AL, strict byte 00ch                  ; 24 0c
    82308255    or al, bl                                 ; 08 d8
     
    82338258    xor ah, ah                                ; 30 e4
    82348259    sal ax, 008h                              ; c1 e0 08
    8235     jmp near 0580ah                           ; e9 13 fe
     8260    jmp near 05849h                           ; e9 13 fe
    82368261    mov ax, word [bp+012h]                    ; 8b 46 12
    82378262    xor ah, ah                                ; 30 e4
    82388263    or ah, 080h                               ; 80 cc 80
    8239     jmp near 058d4h                           ; e9 d2 fe
    8240 set_geom_lba_:                               ; 0xf5a02 LB 0xe7
     8264    jmp near 05913h                           ; e9 d2 fe
     8265set_geom_lba_:                               ; 0xf5a41 LB 0xe7
    82418266    push bx                                   ; 53
    82428267    push cx                                   ; 51
     
    82548279    mov dx, word [bp+00ch]                    ; 8b 56 0c
    82558280    mov si, strict word 00020h                ; be 20 00
    8256     call 0a0e0h                               ; e8 b1 46
     8281    call 0a120h                               ; e8 b2 46
    82578282    test ax, ax                               ; 85 c0
    8258     jne short 05a3fh                          ; 75 0c
     8283    jne short 05a7eh                          ; 75 0c
    82598284    test bx, bx                               ; 85 db
    8260     jne short 05a3fh                          ; 75 08
     8285    jne short 05a7eh                          ; 75 08
    82618286    test cx, cx                               ; 85 c9
    8262     jne short 05a3fh                          ; 75 04
     8287    jne short 05a7eh                          ; 75 04
    82638288    test dx, dx                               ; 85 d2
    8264     je short 05a46h                           ; 74 07
     8289    je short 05a85h                           ; 74 07
    82658290    mov bx, strict word 0ffffh                ; bb ff ff
    82668291    mov si, bx                                ; 89 de
    8267     jmp short 05a4ch                          ; eb 06
     8292    jmp short 05a8bh                          ; eb 06
    82688293    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    82698294    mov si, word [bp+00eh]                    ; 8b 76 0e
    82708295    mov word [bp-004h], bx                    ; 89 5e fc
    82718296    xor bx, bx                                ; 31 db
    8272     jmp short 05a58h                          ; eb 05
     8297    jmp short 05a97h                          ; eb 05
    82738298    cmp bx, strict byte 00004h                ; 83 fb 04
    8274     jnl short 05a7bh                          ; 7d 23
     8299    jnl short 05abah                          ; 7d 23
    82758300    mov ax, word [bp-006h]                    ; 8b 46 fa
    82768301    cmp si, ax                                ; 39 c6
    8277     jc short 05a69h                           ; 72 0a
    8278     jne short 05a72h                          ; 75 11
     8302    jc short 05aa8h                           ; 72 0a
     8303    jne short 05ab1h                          ; 75 11
    82798304    mov ax, word [bp-004h]                    ; 8b 46 fc
    82808305    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8281     jnbe short 05a72h                         ; 77 09
     8306    jnbe short 05ab1h                         ; 77 09
    82828307    mov ax, word [bp-002h]                    ; 8b 46 fe
    82838308    inc ax                                    ; 40
     
    82878312    rcr word [bp-008h], 1                     ; d1 5e f8
    82888313    inc bx                                    ; 43
    8289     jmp short 05a53h                          ; eb d8
     8314    jmp short 05a92h                          ; eb d8
    82908315    mov ax, word [bp-002h]                    ; 8b 46 fe
    82918316    xor dx, dx                                ; 31 d2
    82928317    mov bx, strict word 0003fh                ; bb 3f 00
    82938318    xor cx, cx                                ; 31 c9
    8294     call 0a090h                               ; e8 08 46
     8319    call 0a0d0h                               ; e8 09 46
    82958320    mov bx, ax                                ; 89 c3
    82968321    mov cx, dx                                ; 89 d1
    82978322    mov ax, word [bp-004h]                    ; 8b 46 fc
    82988323    mov dx, si                                ; 89 f2
    8299     call 0a0b0h                               ; e8 1c 46
     8324    call 0a0f0h                               ; e8 1d 46
    83008325    mov word [es:di+002h], ax                 ; 26 89 45 02
    83018326    cmp ax, 00400h                            ; 3d 00 04
    8302     jbe short 05aa3h                          ; 76 06
     8327    jbe short 05ae2h                          ; 76 06
    83038328    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    83048329    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    83118336    pop bx                                    ; 5b
    83128337    retn 00008h                               ; c2 08 00
    8313     jne short 05b14h                          ; 75 5b
    8314     xchg byte [bp+di-04bh], bl                ; 86 5b b5
     8338    mov AH, strict byte 05bh                  ; b4 5b
     8339    lds bx, [bp+di-00ch]                      ; c5 5b f4
    83158340    pop bx                                    ; 5b
    8316     mov CH, strict byte 05bh                  ; b5 5b
    8317     mov CH, strict byte 05bh                  ; b5 5b
    8318     movsw                                     ; a5
    8319     pop bp                                    ; 5d
    8320     ficomp word [bp-022h]                     ; de 5e de
     8341    hlt                                       ; f4
     8342    pop bx                                    ; 5b
     8343    hlt                                       ; f4
     8344    pop bx                                    ; 5b
     8345    in AL, strict byte 05dh                   ; e4 5d
     8346    sbb ax, 01d5fh                            ; 1d 5f 1d
     8347    pop di                                    ; 5f
     8348    adc word [bp-006h], bx                    ; 11 5e fa
    83218349    pop si                                    ; 5e
    8322     rcr byte [di-045h], CL                    ; d2 5d bb
     8350    sbb ax, 01d5fh                            ; 1d 5f 1d
     8351    pop di                                    ; 5f
     8352    cli                                       ; fa
    83238353    pop si                                    ; 5e
    8324     ficomp word [bp-022h]                     ; de 5e de
     8354    cli                                       ; fa
    83258355    pop si                                    ; 5e
    8326     mov bx, 0bb5eh                            ; bb 5e bb
     8356    sbb ax, 01d5fh                            ; 1d 5f 1d
     8357    pop di                                    ; 5f
     8358    jl short 05b76h                           ; 7c 5e
     8359    cli                                       ; fa
    83278360    pop si                                    ; 5e
    8328     ficomp word [bp-022h]                     ; de 5e de
     8361    sbb ax, 01d5fh                            ; 1d 5f 1d
     8362    pop di                                    ; 5f
     8363    cli                                       ; fa
    83298364    pop si                                    ; 5e
    8330     cmp ax, 0bb5eh                            ; 3d 5e bb
     8365    lodsw                                     ; ad
    83318366    pop si                                    ; 5e
    8332     ficomp word [bp-022h]                     ; de 5e de
    8333     pop si                                    ; 5e
    8334     mov bx, 06e5eh                            ; bb 5e 6e
    8335     pop si                                    ; 5e
    8336     ficomp word [bp-022h]                     ; de 5e de
    8337     pop si                                    ; 5e
    8338     db  0deh
    8339     pop si                                    ; 5e
    8340 _int13_harddisk:                             ; 0xf5ae9 LB 0x453
     8367    sbb ax, 01d5fh                            ; 1d 5f 1d
     8368    pop di                                    ; 5f
     8369    db  01dh
     8370    pop di                                    ; 5f
     8371_int13_harddisk:                             ; 0xf5b28 LB 0x453
    83418372    push bp                                   ; 55
    83428373    mov bp, sp                                ; 89 e5
     
    83458376    mov dx, strict word 0000eh                ; ba 0e 00
    83468377    mov ax, strict word 00040h                ; b8 40 00
    8347     call 0166ch                               ; e8 70 bb
     8378    call 0166ch                               ; e8 31 bb
    83488379    mov si, 00122h                            ; be 22 01
    83498380    mov word [bp-010h], ax                    ; 89 46 f0
     
    83518382    mov dx, 0008eh                            ; ba 8e 00
    83528383    mov ax, strict word 00040h                ; b8 40 00
    8353     call 0165eh                               ; e8 51 bb
     8384    call 0165eh                               ; e8 12 bb
    83548385    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83558386    xor ah, ah                                ; 30 e4
    83568387    cmp ax, 00080h                            ; 3d 80 00
    8357     jc short 05b1ch                           ; 72 05
     8388    jc short 05b5bh                           ; 72 05
    83588389    cmp ax, 00090h                            ; 3d 90 00
    8359     jc short 05b3ah                           ; 72 1e
     8390    jc short 05b79h                           ; 72 1e
    83608391    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83618392    xor ah, ah                                ; 30 e4
     
    83678398    push 0068dh                               ; 68 8d 06
    83688399    push strict byte 00004h                   ; 6a 04
    8369     call 01966h                               ; e8 32 be
     8400    call 01966h                               ; e8 f3 bd
    83708401    add sp, strict byte 0000ah                ; 83 c4 0a
    8371     jmp near 05ef9h                           ; e9 bf 03
     8402    jmp near 05f38h                           ; e9 bf 03
    83728403    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83738404    xor ah, ah                                ; 30 e4
     
    83788409    mov byte [bp-002h], dl                    ; 88 56 fe
    83798410    cmp dl, 010h                              ; 80 fa 10
    8380     jc short 05b63h                           ; 72 10
     8411    jc short 05ba2h                           ; 72 10
    83818412    push ax                                   ; 50
    83828413    mov ax, word [bp+016h]                    ; 8b 46 16
     
    83858416    push 0067eh                               ; 68 7e 06
    83868417    push 006b8h                               ; 68 b8 06
    8387     jmp short 05b2fh                          ; eb cc
     8418    jmp short 05b6eh                          ; eb cc
    83888419    mov bx, word [bp+016h]                    ; 8b 5e 16
    83898420    shr bx, 008h                              ; c1 eb 08
    83908421    cmp bx, strict byte 00018h                ; 83 fb 18
    8391     jnbe short 05bb2h                         ; 77 44
     8422    jnbe short 05bf1h                         ; 77 44
    83928423    add bx, bx                                ; 01 db
    8393     jmp word [cs:bx+05ab7h]                   ; 2e ff a7 b7 5a
     8424    jmp word [cs:bx+05af6h]                   ; 2e ff a7 f6 5a
    83948425    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8395     jnc short 05b83h                          ; 73 08
     8426    jnc short 05bc2h                          ; 73 08
    83968427    mov al, byte [bp-002h]                    ; 8a 46 fe
    83978428    xor ah, ah                                ; 30 e4
    8398     call 01d85h                               ; e8 02 c2
    8399     jmp near 05dbbh                           ; e9 35 02
     8429    call 01d85h                               ; e8 c3 c1
     8430    jmp near 05dfah                           ; e9 35 02
    84008431    mov dx, strict word 00074h                ; ba 74 00
    84018432    mov ax, strict word 00040h                ; b8 40 00
    8402     call 01650h                               ; e8 c1 ba
     8433    call 01650h                               ; e8 82 ba
    84038434    mov cl, al                                ; 88 c1
    84048435    mov dx, word [bp+016h]                    ; 8b 56 16
     
    84118442    mov dx, strict word 00074h                ; ba 74 00
    84128443    mov ax, strict word 00040h                ; b8 40 00
    8413     call 0165eh                               ; e8 b3 ba
     8444    call 0165eh                               ; e8 74 ba
    84148445    test cl, cl                               ; 84 c9
    8415     je short 05c13h                           ; 74 64
    8416     jmp near 05f15h                           ; e9 63 03
    8417     jmp near 05edeh                           ; e9 29 03
     8446    je short 05c52h                           ; 74 64
     8447    jmp near 05f54h                           ; e9 63 03
     8448    jmp near 05f1dh                           ; e9 29 03
    84188449    mov ax, word [bp+016h]                    ; 8b 46 16
    84198450    xor ah, ah                                ; 30 e4
     
    84358466    mov ax, word [bp-00ch]                    ; 8b 46 f4
    84368467    cmp ax, 00080h                            ; 3d 80 00
    8437     jnbe short 05bf0h                         ; 77 04
     8468    jnbe short 05c2fh                         ; 77 04
    84388469    test ax, ax                               ; 85 c0
    8439     jne short 05c16h                          ; 75 26
    8440     mov bx, 00da4h                            ; bb a4 0d
     8470    jne short 05c55h                          ; 75 26
     8471    mov bx, 00da0h                            ; bb a0 0d
    84418472    mov cx, ds                                ; 8c d9
    84428473    mov ax, strict word 00004h                ; b8 04 00
    8443     call 01923h                               ; e8 28 bd
     8474    call 01923h                               ; e8 e9 bc
    84448475    mov ax, word [bp+016h]                    ; 8b 46 16
    84458476    shr ax, 008h                              ; c1 e8 08
     
    84488479    push 006eah                               ; 68 ea 06
    84498480    push strict byte 00004h                   ; 6a 04
    8450     call 01966h                               ; e8 59 bd
     8481    call 01966h                               ; e8 1a bd
    84518482    add sp, strict byte 00008h                ; 83 c4 08
    8452     jmp near 05ef9h                           ; e9 e6 02
    8453     jmp near 05dbfh                           ; e9 a9 01
     8483    jmp near 05f38h                           ; e9 e6 02
     8484    jmp near 05dfeh                           ; e9 a9 01
    84548485    mov al, byte [bp-002h]                    ; 8a 46 fe
    84558486    xor ah, ah                                ; 30 e4
     
    84638494    mov word [bp-008h], dx                    ; 89 56 f8
    84648495    cmp di, ax                                ; 39 c7
    8465     jnc short 05c44h                          ; 73 0c
     8496    jnc short 05c83h                          ; 73 0c
    84668497    cmp cx, word [bp-006h]                    ; 3b 4e fa
    8467     jbe short 05c44h                          ; 76 07
     8498    jbe short 05c83h                          ; 76 07
    84688499    mov ax, word [bp-004h]                    ; 8b 46 fc
    84698500    cmp ax, dx                                ; 39 d0
    8470     jbe short 05c74h                          ; 76 30
    8471     mov bx, 00da4h                            ; bb a4 0d
     8501    jbe short 05cb3h                          ; 76 30
     8502    mov bx, 00da0h                            ; bb a0 0d
    84728503    mov cx, ds                                ; 8c d9
    84738504    mov ax, strict word 00004h                ; b8 04 00
    8474     call 01923h                               ; e8 d4 bc
     8505    call 01923h                               ; e8 95 bc
    84758506    push word [bp-004h]                       ; ff 76 fc
    84768507    push word [bp-006h]                       ; ff 76 fa
     
    84858516    push 00712h                               ; 68 12 07
    84868517    push strict byte 00004h                   ; 6a 04
    8487     call 01966h                               ; e8 f8 bc
     8518    call 01966h                               ; e8 b9 bc
    84888519    add sp, strict byte 00010h                ; 83 c4 10
    8489     jmp near 05ef9h                           ; e9 85 02
     8520    jmp near 05f38h                           ; e9 85 02
    84908521    mov ax, word [bp+016h]                    ; 8b 46 16
    84918522    shr ax, 008h                              ; c1 e8 08
    84928523    cmp ax, strict word 00004h                ; 3d 04 00
    8493     je short 05c9fh                           ; 74 20
     8524    je short 05cdeh                           ; 74 20
    84948525    mov al, byte [bp-002h]                    ; 8a 46 fe
    84958526    xor ah, ah                                ; 30 e4
     
    84998530    add bx, ax                                ; 01 c3
    85008531    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8501     jne short 05ca8h                          ; 75 14
     8532    jne short 05ce7h                          ; 75 14
    85028533    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    85038534    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8504     je short 05ca2h                           ; 74 05
    8505     jmp short 05ca8h                          ; eb 09
    8506     jmp near 05dbbh                           ; e9 19 01
     8535    je short 05ce1h                           ; 74 05
     8536    jmp short 05ce7h                          ; eb 09
     8537    jmp near 05dfah                           ; e9 19 01
    85078538    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8508     jc short 05cd8h                           ; 72 30
     8539    jc short 05d17h                           ; 72 30
    85098540    mov ax, di                                ; 89 f8
    85108541    xor dx, dx                                ; 31 d2
    85118542    mov bx, cx                                ; 89 cb
    85128543    xor cx, cx                                ; 31 c9
    8513     call 0a090h                               ; e8 dd 43
     8544    call 0a0d0h                               ; e8 de 43
    85148545    xor bx, bx                                ; 31 db
    85158546    add ax, word [bp-006h]                    ; 03 46 fa
     
    85178548    mov bx, word [bp-008h]                    ; 8b 5e f8
    85188549    xor cx, cx                                ; 31 c9
    8519     call 0a090h                               ; e8 ce 43
     8550    call 0a0d0h                               ; e8 cf 43
    85208551    xor bx, bx                                ; 31 db
    85218552    add ax, word [bp-004h]                    ; 03 46 fc
     
    85738604    mov word [bp+016h], bx                    ; 89 5e 16
    85748605    test dl, dl                               ; 84 d2
    8575     je short 05dbbh                           ; 74 46
    8576     mov bx, 00da4h                            ; bb a4 0d
     8606    je short 05dfah                           ; 74 46
     8607    mov bx, 00da0h                            ; bb a0 0d
    85778608    mov cx, ds                                ; 8c d9
    85788609    mov ax, strict word 00004h                ; b8 04 00
    8579     call 01923h                               ; e8 a3 bb
     8610    call 01923h                               ; e8 64 bb
    85808611    mov al, dl                                ; 88 d0
    85818612    xor ah, ah                                ; 30 e4
     
    85878618    push 00759h                               ; 68 59 07
    85888619    push strict byte 00004h                   ; 6a 04
    8589     call 01966h                               ; e8 cf bb
     8620    call 01966h                               ; e8 90 bb
    85908621    add sp, strict byte 0000ah                ; 83 c4 0a
    85918622    mov ax, word [bp+016h]                    ; 8b 46 16
    85928623    xor ah, ah                                ; 30 e4
    85938624    or ah, 00ch                               ; 80 cc 0c
    8594     jmp near 05f01h                           ; e9 5c 01
    8595     mov bx, 00da4h                            ; bb a4 0d
     8625    jmp near 05f40h                           ; e9 5c 01
     8626    mov bx, 00da0h                            ; bb a0 0d
    85968627    mov cx, ds                                ; 8c d9
    85978628    mov ax, strict word 00004h                ; b8 04 00
    8598     call 01923h                               ; e8 73 bb
     8629    call 01923h                               ; e8 34 bb
    85998630    push 0077ah                               ; 68 7a 07
    86008631    push strict byte 00004h                   ; 6a 04
    8601     call 01966h                               ; e8 ae bb
     8632    call 01966h                               ; e8 6f bb
    86028633    add sp, strict byte 00004h                ; 83 c4 04
    86038634    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    86058636    mov dx, strict word 00074h                ; ba 74 00
    86068637    mov ax, strict word 00040h                ; b8 40 00
    8607     call 0165eh                               ; e8 94 b8
     8638    call 0165eh                               ; e8 55 b8
    86088639    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    86098640    mov sp, bp                                ; 89 ec
     
    86488679    mov dl, al                                ; 88 c2
    86498680    mov word [bp+012h], dx                    ; 89 56 12
    8650     jmp near 05dbbh                           ; e9 7e ff
     8681    jmp near 05dfah                           ; e9 7e ff
    86518682    mov al, byte [bp-002h]                    ; 8a 46 fe
    86528683    xor ah, ah                                ; 30 e4
     
    86658696    and AL, strict byte 0c0h                  ; 24 c0
    86668697    cmp AL, strict byte 040h                  ; 3c 40
    8667     jne short 05e63h                          ; 75 03
    8668     jmp near 05dbbh                           ; e9 58 ff
     8698    jne short 05ea2h                          ; 75 03
     8699    jmp near 05dfah                           ; e9 58 ff
    86698700    mov ax, word [bp+016h]                    ; 8b 46 16
    86708701    xor ah, ah                                ; 30 e4
    86718702    or ah, 0aah                               ; 80 cc aa
    8672     jmp near 05f01h                           ; e9 93 00
     8703    jmp near 05f40h                           ; e9 93 00
    86738704    mov al, byte [bp-002h]                    ; 8a 46 fe
    86748705    xor ah, ah                                ; 30 e4
     
    86858716    mov bx, word [bp-006h]                    ; 8b 5e fa
    86868717    xor cx, cx                                ; 31 c9
    8687     call 0a090h                               ; e8 f7 41
     8718    call 0a0d0h                               ; e8 f8 41
    86888719    mov bx, word [bp-004h]                    ; 8b 5e fc
    86898720    xor cx, cx                                ; 31 c9
    8690     call 0a090h                               ; e8 ef 41
     8721    call 0a0d0h                               ; e8 f0 41
    86918722    mov word [bp-00eh], ax                    ; 89 46 f2
    86928723    mov word [bp-00ah], dx                    ; 89 56 f6
     
    86978728    or ah, 003h                               ; 80 cc 03
    86988729    mov word [bp+016h], ax                    ; 89 46 16
    8699     jmp near 05dbfh                           ; e9 04 ff
    8700     mov bx, 00da4h                            ; bb a4 0d
     8730    jmp near 05dfeh                           ; e9 04 ff
     8731    mov bx, 00da0h                            ; bb a0 0d
    87018732    mov cx, ds                                ; 8c d9
    87028733    mov ax, strict word 00004h                ; b8 04 00
    8703     call 01923h                               ; e8 5d ba
     8734    call 01923h                               ; e8 1e ba
    87048735    mov ax, word [bp+016h]                    ; 8b 46 16
    87058736    shr ax, 008h                              ; c1 e8 08
     
    87088739    push 00794h                               ; 68 94 07
    87098740    push strict byte 00004h                   ; 6a 04
    8710     call 01966h                               ; e8 8e ba
     8741    call 01966h                               ; e8 4f ba
    87118742    add sp, strict byte 00008h                ; 83 c4 08
    8712     jmp near 05dbbh                           ; e9 dd fe
    8713     mov bx, 00da4h                            ; bb a4 0d
     8743    jmp near 05dfah                           ; e9 dd fe
     8744    mov bx, 00da0h                            ; bb a0 0d
    87148745    mov cx, ds                                ; 8c d9
    87158746    mov ax, strict word 00004h                ; b8 04 00
    8716     call 01923h                               ; e8 3a ba
     8747    call 01923h                               ; e8 fb b9
    87178748    mov ax, word [bp+016h]                    ; 8b 46 16
    87188749    shr ax, 008h                              ; c1 e8 08
     
    87208751    push 0067eh                               ; 68 7e 06
    87218752    push 007c7h                               ; 68 c7 07
    8722     jmp near 05c08h                           ; e9 0f fd
     8753    jmp near 05c47h                           ; e9 0f fd
    87238754    mov ax, word [bp+016h]                    ; 8b 46 16
    87248755    xor ah, ah                                ; 30 e4
     
    87308761    mov dx, strict word 00074h                ; ba 74 00
    87318762    mov ax, strict word 00040h                ; b8 40 00
    8732     call 0165eh                               ; e8 49 b7
     8763    call 0165eh                               ; e8 0a b7
    87338764    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8734     jmp near 05dceh                           ; e9 b2 fe
    8735     db  0d8h, 05fh, 00bh, 060h, 00bh, 060h, 00bh, 060h, 0fch, 063h, 066h, 061h, 00bh, 060h, 06fh, 061h
    8736     db  0fch, 063h, 0f0h, 05fh, 0f0h, 05fh, 0f0h, 05fh, 0f0h, 05fh, 013h, 064h, 0f0h, 05fh, 0f0h, 05fh
    8737 _int13_harddisk_ext:                         ; 0xf5f3c LB 0x50f
     8765    jmp near 05e0dh                           ; e9 b2 fe
     8766    pop SS                                    ; 17
     8767    pushaw                                    ; 60
     8768    dec dx                                    ; 4a
     8769    pushaw                                    ; 60
     8770    dec dx                                    ; 4a
     8771    pushaw                                    ; 60
     8772    dec dx                                    ; 4a
     8773    pushaw                                    ; 60
     8774    cmp sp, word [si-05bh]                    ; 3b 64 a5
     8775    popaw                                     ; 61
     8776    dec dx                                    ; 4a
     8777    pushaw                                    ; 60
     8778    scasb                                     ; ae
     8779    popaw                                     ; 61
     8780    cmp sp, word [si+02fh]                    ; 3b 64 2f
     8781    pushaw                                    ; 60
     8782    das                                       ; 2f
     8783    pushaw                                    ; 60
     8784    das                                       ; 2f
     8785    pushaw                                    ; 60
     8786    das                                       ; 2f
     8787    pushaw                                    ; 60
     8788    push dx                                   ; 52
     8789    db  064h, 02fh
     8790    ; fs das                                    ; 64 2f
     8791    pushaw                                    ; 60
     8792    das                                       ; 2f
     8793    pushaw                                    ; 60
     8794_int13_harddisk_ext:                         ; 0xf5f7b LB 0x50f
    87388795    push bp                                   ; 55
    87398796    mov bp, sp                                ; 89 e5
     
    87418798    mov dx, strict word 0000eh                ; ba 0e 00
    87428799    mov ax, strict word 00040h                ; b8 40 00
    8743     call 0166ch                               ; e8 21 b7
     8800    call 0166ch                               ; e8 e2 b6
    87448801    mov word [bp-012h], ax                    ; 89 46 ee
    87458802    mov dx, strict word 0000eh                ; ba 0e 00
    87468803    mov ax, strict word 00040h                ; b8 40 00
    8747     call 0166ch                               ; e8 15 b7
     8804    call 0166ch                               ; e8 d6 b6
    87488805    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    87498806    mov word [bp-006h], ax                    ; 89 46 fa
     
    87518808    mov dx, 0008eh                            ; ba 8e 00
    87528809    mov ax, strict word 00040h                ; b8 40 00
    8753     call 0165eh                               ; e8 f4 b6
     8810    call 0165eh                               ; e8 b5 b6
    87548811    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87558812    xor ah, ah                                ; 30 e4
    87568813    cmp ax, 00080h                            ; 3d 80 00
    8757     jc short 05f79h                           ; 72 05
     8814    jc short 05fb8h                           ; 72 05
    87588815    cmp ax, 00090h                            ; 3d 90 00
    8759     jc short 05f97h                           ; 72 1e
     8816    jc short 05fd6h                           ; 72 1e
    87608817    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87618818    xor ah, ah                                ; 30 e4
     
    87678824    push 0068dh                               ; 68 8d 06
    87688825    push strict byte 00004h                   ; 6a 04
    8769     call 01966h                               ; e8 d5 b9
     8826    call 01966h                               ; e8 96 b9
    87708827    add sp, strict byte 0000ah                ; 83 c4 0a
    8771     jmp near 06429h                           ; e9 92 04
     8828    jmp near 06468h                           ; e9 92 04
    87728829    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87738830    xor ah, ah                                ; 30 e4
     
    87778834    mov byte [bp-004h], dl                    ; 88 56 fc
    87788835    cmp dl, 010h                              ; 80 fa 10
    8779     jc short 05fbeh                           ; 72 10
     8836    jc short 05ffdh                           ; 72 10
    87808837    push ax                                   ; 50
    87818838    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87848841    push 007f5h                               ; 68 f5 07
    87858842    push 006b8h                               ; 68 b8 06
    8786     jmp short 05f8ch                          ; eb ce
     8843    jmp short 05fcbh                          ; eb ce
    87878844    mov bx, word [bp+016h]                    ; 8b 5e 16
    87888845    shr bx, 008h                              ; c1 eb 08
    87898846    sub bx, strict byte 00041h                ; 83 eb 41
    87908847    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8791     jnbe short 05ff0h                         ; 77 24
     8848    jnbe short 0602fh                         ; 77 24
    87928849    add bx, bx                                ; 01 db
    87938850    mov dx, word [bp+016h]                    ; 8b 56 16
    87948851    xor dh, dh                                ; 30 f6
    8795     jmp word [cs:bx+05f1ch]                   ; 2e ff a7 1c 5f
     8852    jmp word [cs:bx+05f5bh]                   ; 2e ff a7 5b 5f
    87968853    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    87978854    mov ax, word [bp+016h]                    ; 8b 46 16
     
    88008857    mov word [bp+016h], ax                    ; 89 46 16
    88018858    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8802     jmp near 06400h                           ; e9 10 04
    8803     mov bx, 00da4h                            ; bb a4 0d
     8859    jmp near 0643fh                           ; e9 10 04
     8860    mov bx, 00da0h                            ; bb a0 0d
    88048861    mov cx, ds                                ; 8c d9
    88058862    mov ax, strict word 00004h                ; b8 04 00
    8806     call 01923h                               ; e8 28 b9
     8863    call 01923h                               ; e8 e9 b8
    88078864    mov ax, word [bp+016h]                    ; 8b 46 16
    88088865    shr ax, 008h                              ; c1 e8 08
     
    88108867    push 007f5h                               ; 68 f5 07
    88118868    push 007c7h                               ; 68 c7 07
    8812     jmp near 060a0h                           ; e9 95 00
     8869    jmp near 060dfh                           ; e9 95 00
    88138870    mov di, word [bp+00ah]                    ; 8b 7e 0a
    88148871    mov es, [bp+004h]                         ; 8e 46 04
     
    88268883    xor bx, bx                                ; 31 db
    88278884    mov si, strict word 00020h                ; be 20 00
    8828     call 0a0f0h                               ; e8 b2 40
     8885    call 0a130h                               ; e8 b3 40
    88298886    mov si, ax                                ; 89 c6
    88308887    mov word [bp-00ch], bx                    ; 89 5e f4
     
    88408897    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
    88418898    cmp si, word [es:bx+03ch]                 ; 26 3b 77 3c
    8842     jnbe short 06088h                         ; 77 22
    8843     jne short 060abh                          ; 75 43
     8899    jnbe short 060c7h                         ; 77 22
     8900    jne short 060eah                          ; 75 43
    88448901    mov di, word [bp-00ch]                    ; 8b 7e f4
    88458902    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
    8846     jnbe short 06088h                         ; 77 17
     8903    jnbe short 060c7h                         ; 77 17
    88478904    mov di, word [bp-00ch]                    ; 8b 7e f4
    88488905    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
    8849     jne short 060abh                          ; 75 31
     8906    jne short 060eah                          ; 75 31
    88508907    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
    8851     jnbe short 06088h                         ; 77 08
    8852     jne short 060abh                          ; 75 29
     8908    jnbe short 060c7h                         ; 77 08
     8909    jne short 060eah                          ; 75 29
    88538910    cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
    8854     jc short 060abh                           ; 72 23
    8855     mov bx, 00da4h                            ; bb a4 0d
     8911    jc short 060eah                           ; 72 23
     8912    mov bx, 00da0h                            ; bb a0 0d
    88568913    mov cx, ds                                ; 8c d9
    88578914    mov ax, strict word 00004h                ; b8 04 00
    8858     call 01923h                               ; e8 90 b8
     8915    call 01923h                               ; e8 51 b8
    88598916    mov ax, word [bp+016h]                    ; 8b 46 16
    88608917    shr ax, 008h                              ; c1 e8 08
     
    88638920    push 00808h                               ; 68 08 08
    88648921    push strict byte 00004h                   ; 6a 04
    8865     call 01966h                               ; e8 c1 b8
     8922    call 01966h                               ; e8 82 b8
    88668923    add sp, strict byte 00008h                ; 83 c4 08
    8867     jmp near 06429h                           ; e9 7e 03
     8924    jmp near 06468h                           ; e9 7e 03
    88688925    mov di, word [bp+016h]                    ; 8b 7e 16
    88698926    shr di, 008h                              ; c1 ef 08
    88708927    cmp di, strict byte 00044h                ; 83 ff 44
    8871     je short 060bbh                           ; 74 05
     8928    je short 060fah                           ; 74 05
    88728929    cmp di, strict byte 00047h                ; 83 ff 47
    8873     jne short 060beh                          ; 75 03
    8874     jmp near 063fch                           ; e9 3e 03
     8930    jne short 060fdh                          ; 75 03
     8931    jmp near 0643bh                           ; e9 3e 03
    88758932    les bx, [bp-008h]                         ; c4 5e f8
    88768933    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     
    89108967    mov word [es:bx+002h], ax                 ; 26 89 47 02
    89118968    test dl, dl                               ; 84 d2
    8912     je short 0618dh                           ; 74 51
    8913     mov bx, 00da4h                            ; bb a4 0d
     8969    je short 061cch                           ; 74 51
     8970    mov bx, 00da0h                            ; bb a0 0d
    89148971    mov cx, ds                                ; 8c d9
    89158972    mov ax, strict word 00004h                ; b8 04 00
    8916     call 01923h                               ; e8 dc b7
     8973    call 01923h                               ; e8 9d b7
    89178974    mov al, dl                                ; 88 d0
    89188975    xor ah, ah                                ; 30 e4
     
    89228979    push 00759h                               ; 68 59 07
    89238980    push strict byte 00004h                   ; 6a 04
    8924     call 01966h                               ; e8 0e b8
     8981    call 01966h                               ; e8 cf b7
    89258982    add sp, strict byte 0000ah                ; 83 c4 0a
    89268983    mov ax, word [bp+016h]                    ; 8b 46 16
    89278984    xor ah, ah                                ; 30 e4
    89288985    or ah, 00ch                               ; 80 cc 0c
    8929     jmp near 06431h                           ; e9 cb 02
     8986    jmp near 06470h                           ; e9 cb 02
    89308987    or dh, 0b2h                               ; 80 ce b2
    89318988    mov word [bp+016h], dx                    ; 89 56 16
    8932     jmp near 06434h                           ; e9 c5 02
     8989    jmp near 06473h                           ; e9 c5 02
    89338990    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    89348991    mov ax, word [bp+004h]                    ; 8b 46 04
     
    89408997    mov word [bp-00eh], ax                    ; 89 46 f2
    89418998    cmp ax, strict word 0001ah                ; 3d 1a 00
    8942     jnc short 06190h                          ; 73 06
    8943     jmp near 06429h                           ; e9 9c 02
    8944     jmp near 063fch                           ; e9 6c 02
    8945     jnc short 06195h                          ; 73 03
    8946     jmp near 0622ch                           ; e9 97 00
     8999    jnc short 061cfh                          ; 73 06
     9000    jmp near 06468h                           ; e9 9c 02
     9001    jmp near 0643bh                           ; e9 6c 02
     9002    jnc short 061d4h                          ; 73 03
     9003    jmp near 0626bh                           ; e9 97 00
    89479004    mov al, byte [bp-004h]                    ; 8a 46 fc
    89489005    xor ah, ah                                ; 30 e4
     
    89839040    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89849041    mov si, strict word 00020h                ; be 20 00
    8985     call 0a0e0h                               ; e8 be 3e
     9042    call 0a120h                               ; e8 bf 3e
    89869043    mov bx, di                                ; 89 fb
    89879044    mov word [es:bx+014h], dx                 ; 26 89 57 14
    89889045    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    89899046    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    8990     jc short 06297h                           ; 72 65
     9047    jc short 062d6h                           ; 72 65
    89919048    mov es, [bp-00ah]                         ; 8e 46 f6
    89929049    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    90159072    mov dl, byte [es:bx+027h]                 ; 26 8a 57 27
    90169073    test dl, dl                               ; 84 d2
    9017     jne short 06287h                          ; 75 04
     9074    jne short 062c6h                          ; 75 04
    90189075    xor bx, bx                                ; 31 db
    9019     jmp short 0628ah                          ; eb 03
     9076    jmp short 062c9h                          ; eb 03
    90209077    mov bx, strict word 00008h                ; bb 08 00
    90219078    or bl, 010h                               ; 80 cb 10
    90229079    cmp dl, 001h                              ; 80 fa 01
    9023     jne short 0629ah                          ; 75 08
     9080    jne short 062d9h                          ; 75 08
    90249081    mov ax, strict word 00001h                ; b8 01 00
    9025     jmp short 0629ch                          ; eb 05
    9026     jmp near 0632dh                           ; e9 93 00
     9082    jmp short 062dbh                          ; eb 05
     9083    jmp near 0636ch                           ; e9 93 00
    90279084    xor ax, ax                                ; 31 c0
    90289085    or bx, ax                                 ; 09 c3
    90299086    cmp dl, 003h                              ; 80 fa 03
    9030     jne short 062a8h                          ; 75 05
     9087    jne short 062e7h                          ; 75 05
    90319088    mov ax, strict word 00003h                ; b8 03 00
    9032     jmp short 062aah                          ; eb 02
     9089    jmp short 062e9h                          ; eb 02
    90339090    xor ax, ax                                ; 31 c0
    90349091    or bx, ax                                 ; 09 c3
     
    90579114    xor bl, bl                                ; 30 db
    90589115    xor bh, bh                                ; 30 ff
    9059     jmp short 0630fh                          ; eb 05
     9116    jmp short 0634eh                          ; eb 05
    90609117    cmp bh, 00fh                              ; 80 ff 0f
    9061     jnc short 06323h                          ; 73 14
     9118    jnc short 06362h                          ; 73 14
    90629119    mov dl, bh                                ; 88 fa
    90639120    xor dh, dh                                ; 30 f6
    90649121    add dx, 00356h                            ; 81 c2 56 03
    90659122    mov ax, word [bp-012h]                    ; 8b 46 ee
    9066     call 01650h                               ; e8 33 b3
     9123    call 01650h                               ; e8 f4 b2
    90679124    add bl, al                                ; 00 c3
    90689125    db  0feh, 0c7h
    90699126    ; inc bh                                    ; fe c7
    9070     jmp short 0630ah                          ; eb e7
     9127    jmp short 06349h                          ; eb e7
    90719128    neg bl                                    ; f6 db
    90729129    les si, [bp-008h]                         ; c4 76 f8
    90739130    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    90749131    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    9075     jnc short 06336h                          ; 73 03
    9076     jmp near 063fch                           ; e9 c6 00
     9132    jnc short 06375h                          ; 73 03
     9133    jmp near 0643bh                           ; e9 c6 00
    90779134    mov al, byte [bp-004h]                    ; 8a 46 fc
    90789135    xor ah, ah                                ; 30 e4
     
    90939150    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    90949151    test al, al                               ; 84 c0
    9095     jne short 0637eh                          ; 75 0c
     9152    jne short 063bdh                          ; 75 0c
    90969153    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    90979154    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    91029159    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    91039160    test al, al                               ; 84 c0
    9104     jne short 063b3h                          ; 75 16
     9161    jne short 063f2h                          ; 75 16
    91059162    mov word [es:di+030h], dx                 ; 26 89 55 30
    91069163    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    91179174    xor bl, bl                                ; 30 db
    91189175    mov BH, strict byte 01eh                  ; b7 1e
    9119     jmp short 063deh                          ; eb 05
     9176    jmp short 0641dh                          ; eb 05
    91209177    cmp bh, 040h                              ; 80 ff 40
    9121     jnc short 063f3h                          ; 73 15
     9178    jnc short 06432h                          ; 73 15
    91229179    mov al, bh                                ; 88 f8
    91239180    xor ah, ah                                ; 30 e4
     
    91259182    add dx, ax                                ; 01 c2
    91269183    mov ax, word [bp+004h]                    ; 8b 46 04
    9127     call 01650h                               ; e8 63 b2
     9184    call 01650h                               ; e8 24 b2
    91289185    add bl, al                                ; 00 c3
    91299186    db  0feh, 0c7h
    91309187    ; inc bh                                    ; fe c7
    9131     jmp short 063d9h                          ; eb e6
     9188    jmp short 06418h                          ; eb e6
    91329189    neg bl                                    ; f6 db
    91339190    mov es, [bp-00ah]                         ; 8e 46 f6
     
    91379194    mov dx, strict word 00074h                ; ba 74 00
    91389195    mov ax, strict word 00040h                ; b8 40 00
    9139     call 0165eh                               ; e8 53 b2
     9196    call 0165eh                               ; e8 14 b2
    91409197    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    91419198    mov sp, bp                                ; 89 ec
     
    91439200    retn                                      ; c3
    91449201    cmp dx, strict byte 00006h                ; 83 fa 06
    9145     je short 063fch                           ; 74 e4
     9202    je short 0643bh                           ; 74 e4
    91469203    cmp dx, strict byte 00001h                ; 83 fa 01
    9147     jc short 06429h                           ; 72 0c
    9148     jbe short 063fch                          ; 76 dd
     9204    jc short 06468h                           ; 72 0c
     9205    jbe short 0643bh                          ; 76 dd
    91499206    cmp dx, strict byte 00003h                ; 83 fa 03
    9150     jc short 06429h                           ; 72 05
     9207    jc short 06468h                           ; 72 05
    91519208    cmp dx, strict byte 00004h                ; 83 fa 04
    9152     jbe short 063fch                          ; 76 d3
     9209    jbe short 0643bh                          ; 76 d3
    91539210    mov ax, word [bp+016h]                    ; 8b 46 16
    91549211    xor ah, ah                                ; 30 e4
     
    91609217    mov dx, strict word 00074h                ; ba 74 00
    91619218    mov ax, strict word 00040h                ; b8 40 00
    9162     call 0165eh                               ; e8 19 b2
     9219    call 0165eh                               ; e8 da b1
    91639220    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9164     jmp short 0640fh                          ; eb c4
    9165 _int14_function:                             ; 0xf644b LB 0x15c
     9221    jmp short 0644eh                          ; eb c4
     9222_int14_function:                             ; 0xf648a LB 0x15c
    91669223    push bp                                   ; 55
    91679224    mov bp, sp                                ; 89 e5
     
    91719228    add dx, dx                                ; 01 d2
    91729229    mov ax, strict word 00040h                ; b8 40 00
    9173     call 0166ch                               ; e8 11 b2
     9230    call 0166ch                               ; e8 d2 b1
    91749231    mov si, ax                                ; 89 c6
    91759232    mov bx, ax                                ; 89 c3
     
    91779234    add dx, strict byte 0007ch                ; 83 c2 7c
    91789235    mov ax, strict word 00040h                ; b8 40 00
    9179     call 01650h                               ; e8 e5 b1
     9236    call 01650h                               ; e8 a6 b1
    91809237    mov cl, al                                ; 88 c1
    91819238    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9182     jnc short 06477h                          ; 73 04
     9239    jnc short 064b6h                          ; 73 04
    91839240    test si, si                               ; 85 f6
    9184     jnbe short 0647ah                         ; 77 03
    9185     jmp near 0659dh                           ; e9 23 01
     9241    jnbe short 064b9h                         ; 77 03
     9242    jmp near 065dch                           ; e9 23 01
    91869243    mov al, byte [bp+013h]                    ; 8a 46 13
    91879244    cmp AL, strict byte 001h                  ; 3c 01
    9188     jc short 0648eh                           ; 72 0d
    9189     jbe short 064eeh                          ; 76 6b
     9245    jc short 064cdh                           ; 72 0d
     9246    jbe short 0652dh                          ; 76 6b
    91909247    cmp AL, strict byte 003h                  ; 3c 03
    9191     je short 064e6h                           ; 74 5f
     9248    je short 06525h                           ; 74 5f
    91929249    cmp AL, strict byte 002h                  ; 3c 02
    9193     je short 064e9h                           ; 74 5e
    9194     jmp near 06597h                           ; e9 09 01
     9250    je short 06528h                           ; 74 5e
     9251    jmp near 065d6h                           ; e9 09 01
    91959252    test al, al                               ; 84 c0
    9196     jne short 064ebh                          ; 75 59
     9253    jne short 0652ah                          ; 75 59
    91979254    lea dx, [bx+003h]                         ; 8d 57 03
    91989255    in AL, DX                                 ; ec
     
    92049261    mov al, byte [bp+012h]                    ; 8a 46 12
    92059262    test AL, strict byte 0e0h                 ; a8 e0
    9206     jne short 064b1h                          ; 75 0c
     9263    jne short 064f0h                          ; 75 0c
    92079264    mov AL, strict byte 017h                  ; b0 17
    92089265    mov dx, bx                                ; 89 da
     
    92119268    mov dx, si                                ; 89 f2
    92129269    out DX, AL                                ; ee
    9213     jmp short 064c8h                          ; eb 17
     9270    jmp short 06507h                          ; eb 17
    92149271    and AL, strict byte 0e0h                  ; 24 e0
    92159272    xor ah, ah                                ; 30 e4
     
    92379294    ; sub ah, ah                                ; 2a e4
    92389295    mov byte [bp+012h], al                    ; 88 46 12
    9239     jmp near 06578h                           ; e9 92 00
    9240     jmp near 06586h                           ; e9 9d 00
    9241     jmp short 0653ch                          ; eb 51
    9242     jmp near 06597h                           ; e9 a9 00
     9296    jmp near 065b7h                           ; e9 92 00
     9297    jmp near 065c5h                           ; e9 9d 00
     9298    jmp short 0657bh                          ; eb 51
     9299    jmp near 065d6h                           ; e9 a9 00
    92439300    mov dx, strict word 0006ch                ; ba 6c 00
    92449301    mov ax, strict word 00040h                ; b8 40 00
    9245     call 0166ch                               ; e8 75 b1
     9302    call 0166ch                               ; e8 36 b1
    92469303    mov si, ax                                ; 89 c6
    92479304    lea dx, [bx+005h]                         ; 8d 57 05
     
    92519308    and ax, strict word 00060h                ; 25 60 00
    92529309    cmp ax, strict word 00060h                ; 3d 60 00
    9253     je short 0651eh                           ; 74 17
     9310    je short 0655dh                           ; 74 17
    92549311    test cl, cl                               ; 84 c9
    9255     je short 0651eh                           ; 74 13
     9312    je short 0655dh                           ; 74 13
    92569313    mov dx, strict word 0006ch                ; ba 6c 00
    92579314    mov ax, strict word 00040h                ; b8 40 00
    9258     call 0166ch                               ; e8 58 b1
     9315    call 0166ch                               ; e8 19 b1
    92599316    cmp ax, si                                ; 39 f0
    9260     je short 064f9h                           ; 74 e1
     9317    je short 06538h                           ; 74 e1
    92619318    mov si, ax                                ; 89 c6
    92629319    db  0feh, 0c9h
    92639320    ; dec cl                                    ; fe c9
    9264     jmp short 064f9h                          ; eb db
     9321    jmp short 06538h                          ; eb db
    92659322    test cl, cl                               ; 84 c9
    9266     je short 06528h                           ; 74 06
     9323    je short 06567h                           ; 74 06
    92679324    mov al, byte [bp+012h]                    ; 8a 46 12
    92689325    mov dx, bx                                ; 89 da
     
    92749331    mov byte [bp+013h], al                    ; 88 46 13
    92759332    test cl, cl                               ; 84 c9
    9276     jne short 06578h                          ; 75 43
     9333    jne short 065b7h                          ; 75 43
    92779334    or AL, strict byte 080h                   ; 0c 80
    92789335    mov byte [bp+013h], al                    ; 88 46 13
    9279     jmp short 06578h                          ; eb 3c
     9336    jmp short 065b7h                          ; eb 3c
    92809337    mov dx, strict word 0006ch                ; ba 6c 00
    92819338    mov ax, strict word 00040h                ; b8 40 00
    9282     call 0166ch                               ; e8 27 b1
     9339    call 0166ch                               ; e8 e8 b0
    92839340    mov si, ax                                ; 89 c6
    92849341    lea dx, [bx+005h]                         ; 8d 57 05
     
    92879344    ; sub ah, ah                                ; 2a e4
    92889345    test AL, strict byte 001h                 ; a8 01
    9289     jne short 06568h                          ; 75 17
     9346    jne short 065a7h                          ; 75 17
    92909347    test cl, cl                               ; 84 c9
    9291     je short 06568h                           ; 74 13
     9348    je short 065a7h                           ; 74 13
    92929349    mov dx, strict word 0006ch                ; ba 6c 00
    92939350    mov ax, strict word 00040h                ; b8 40 00
    9294     call 0166ch                               ; e8 0e b1
     9351    call 0166ch                               ; e8 cf b0
    92959352    cmp ax, si                                ; 39 f0
    9296     je short 06547h                           ; 74 e5
     9353    je short 06586h                           ; 74 e5
    92979354    mov si, ax                                ; 89 c6
    92989355    db  0feh, 0c9h
    92999356    ; dec cl                                    ; fe c9
    9300     jmp short 06547h                          ; eb df
     9357    jmp short 06586h                          ; eb df
    93019358    test cl, cl                               ; 84 c9
    9302     je short 0657eh                           ; 74 12
     9359    je short 065bdh                           ; 74 12
    93039360    mov byte [bp+013h], 000h                  ; c6 46 13 00
    93049361    mov dx, bx                                ; 89 da
     
    93089365    mov byte [bp+012h], al                    ; 88 46 12
    93099366    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9310     jmp short 065a1h                          ; eb 23
     9367    jmp short 065e0h                          ; eb 23
    93119368    lea dx, [bx+005h]                         ; 8d 57 05
    93129369    in AL, DX                                 ; ec
    93139370    db  02ah, 0e4h
    93149371    ; sub ah, ah                                ; 2a e4
    9315     jmp short 06537h                          ; eb b1
     9372    jmp short 06576h                          ; eb b1
    93169373    lea dx, [si+005h]                         ; 8d 54 05
    93179374    in AL, DX                                 ; ec
     
    93239380    db  02ah, 0e4h
    93249381    ; sub ah, ah                                ; 2a e4
    9325     jmp short 06575h                          ; eb de
     9382    jmp short 065b4h                          ; eb de
    93269383    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9327     jmp short 065a1h                          ; eb 04
     9384    jmp short 065e0h                          ; eb 04
    93289385    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    93299386    lea sp, [bp-002h]                         ; 8d 66 fe
     
    93319388    pop bp                                    ; 5d
    93329389    retn                                      ; c3
    9333 timer_wait_:                                 ; 0xf65a7 LB 0x43
     9390timer_wait_:                                 ; 0xf65e6 LB 0x43
    93349391    push bp                                   ; 55
    93359392    mov bp, sp                                ; 89 e5
     
    93399396    mov bx, strict word 0000fh                ; bb 0f 00
    93409397    xor cx, cx                                ; 31 c9
    9341     call 0a0b0h                               ; e8 fb 3a
     9398    call 0a0f0h                               ; e8 fc 3a
    93429399    mov cx, ax                                ; 89 c1
    93439400    mov bx, dx                                ; 89 d3
     
    93519408    adc bx, strict byte 0ffffh                ; 83 d3 ff
    93529409    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9353     jne short 065d4h                          ; 75 05
     9410    jne short 06613h                          ; 75 05
    93549411    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9355     je short 065e3h                           ; 74 0f
     9412    je short 06622h                           ; 74 0f
    93569413    mov dx, strict word 00061h                ; ba 61 00
    93579414    in AL, DX                                 ; ec
     
    93609417    and AL, strict byte 010h                  ; 24 10
    93619418    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9362     jne short 065d4h                          ; 75 f3
    9363     jmp short 065c4h                          ; eb e1
     9419    jne short 06613h                          ; 75 f3
     9420    jmp short 06603h                          ; eb e1
    93649421    lea sp, [bp-004h]                         ; 8d 66 fc
    93659422    pop cx                                    ; 59
     
    93679424    pop bp                                    ; 5d
    93689425    retn                                      ; c3
    9369 set_enable_a20_:                             ; 0xf65ea LB 0x30
     9426set_enable_a20_:                             ; 0xf6629 LB 0x30
    93709427    push bp                                   ; 55
    93719428    mov bp, sp                                ; 89 e5
     
    93809437    mov cl, al                                ; 88 c1
    93819438    test bx, bx                               ; 85 db
    9382     je short 06603h                           ; 74 05
     9439    je short 06642h                           ; 74 05
    93839440    or AL, strict byte 002h                   ; 0c 02
    93849441    out DX, AL                                ; ee
    9385     jmp short 06606h                          ; eb 03
     9442    jmp short 06645h                          ; eb 03
    93869443    and AL, strict byte 0fdh                  ; 24 fd
    93879444    out DX, AL                                ; ee
    93889445    test cl, 002h                             ; f6 c1 02
    9389     je short 06610h                           ; 74 05
     9446    je short 0664fh                           ; 74 05
    93909447    mov ax, strict word 00001h                ; b8 01 00
    9391     jmp short 06612h                          ; eb 02
     9448    jmp short 06651h                          ; eb 02
    93929449    xor ax, ax                                ; 31 c0
    93939450    lea sp, [bp-006h]                         ; 8d 66 fa
     
    93979454    pop bp                                    ; 5d
    93989455    retn                                      ; c3
    9399 set_e820_range_:                             ; 0xf661a LB 0x88
     9456set_e820_range_:                             ; 0xf6659 LB 0x88
    94009457    push si                                   ; 56
    94019458    push bp                                   ; 55
     
    94279484    retn 0000ah                               ; c2 0a 00
    94289485    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9429     db  0ach, 069h, 0ddh, 066h, 0f1h, 066h, 086h, 067h, 08ch, 067h, 091h, 067h, 096h, 067h, 03eh, 068h
    9430     db  069h, 068h, 07fh, 067h, 07fh, 067h, 036h, 069h, 05eh, 069h, 071h, 069h, 080h, 069h, 086h, 067h
    9431     db  087h, 069h
    9432 _int15_function:                             ; 0xf66a2 LB 0x33c
     9486    db  0ebh, 069h, 01ch, 067h, 030h, 067h, 0c5h, 067h, 0cbh, 067h, 0d0h, 067h, 0d5h, 067h, 07dh, 068h
     9487    db  0a8h, 068h, 0beh, 067h, 0beh, 067h, 075h, 069h, 09dh, 069h, 0b0h, 069h, 0bfh, 069h, 0c5h, 067h
     9488    db  0c6h, 069h
     9489_int15_function:                             ; 0xf66e1 LB 0x33c
    94339490    push bp                                   ; 55
    94349491    mov bp, sp                                ; 89 e5
     
    94389495    shr ax, 008h                              ; c1 e8 08
    94399496    cmp ax, 000ech                            ; 3d ec 00
    9440     jnbe short 066e7h                         ; 77 35
     9497    jnbe short 06726h                         ; 77 35
    94419498    push CS                                   ; 0e
    94429499    pop ES                                    ; 07
    94439500    mov cx, strict word 00011h                ; b9 11 00
    9444     mov di, 06670h                            ; bf 70 66
     9501    mov di, 066afh                            ; bf af 66
    94459502    repne scasb                               ; f2 ae
    94469503    sal cx, 1                                 ; d1 e1
    94479504    mov di, cx                                ; 89 cf
    9448     mov si, word [cs:di+06680h]               ; 2e 8b b5 80 66
     9505    mov si, word [cs:di+066bfh]               ; 2e 8b b5 bf 66
    94499506    mov ax, word [bp+012h]                    ; 8b 46 12
    94509507    xor ah, ah                                ; 30 e4
     
    94599516    xor ah, ah                                ; 30 e4
    94609517    cmp ax, 000c0h                            ; 3d c0 00
    9461     je short 066eah                           ; 74 03
    9462     jmp near 069ach                           ; e9 c2 02
     9518    je short 06729h                           ; 74 03
     9519    jmp near 069ebh                           ; e9 c2 02
    94639520    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9464     jmp near 06955h                           ; e9 64 02
     9521    jmp near 06994h                           ; e9 64 02
    94659522    mov dx, ax                                ; 89 c2
    94669523    cmp ax, strict word 00001h                ; 3d 01 00
    9467     jc short 06706h                           ; 72 0e
    9468     jbe short 0671ah                          ; 76 20
     9524    jc short 06745h                           ; 72 0e
     9525    jbe short 06759h                          ; 76 20
    94699526    cmp ax, strict word 00003h                ; 3d 03 00
    9470     je short 06747h                           ; 74 48
     9527    je short 06786h                           ; 74 48
    94719528    cmp ax, strict word 00002h                ; 3d 02 00
    9472     je short 0672ah                           ; 74 26
    9473     jmp short 06754h                          ; eb 4e
     9529    je short 06769h                           ; 74 26
     9530    jmp short 06793h                          ; eb 4e
    94749531    test ax, ax                               ; 85 c0
    9475     jne short 06754h                          ; 75 4a
     9532    jne short 06793h                          ; 75 4a
    94769533    xor ax, ax                                ; 31 c0
    9477     call 065eah                               ; e8 db fe
     9534    call 06629h                               ; e8 db fe
    94789535    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94799536    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9480     jmp near 0677fh                           ; e9 65 00
     9537    jmp near 067beh                           ; e9 65 00
    94819538    mov ax, strict word 00001h                ; b8 01 00
    9482     call 065eah                               ; e8 ca fe
     9539    call 06629h                               ; e8 ca fe
    94839540    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94849541    mov byte [bp+013h], dh                    ; 88 76 13
    9485     jmp near 0677fh                           ; e9 55 00
     9542    jmp near 067beh                           ; e9 55 00
    94869543    mov dx, 00092h                            ; ba 92 00
    94879544    in AL, DX                                 ; ec
     
    94959552    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94969553    mov byte [bp+013h], ah                    ; 88 66 13
    9497     jmp near 0677fh                           ; e9 38 00
     9554    jmp near 067beh                           ; e9 38 00
    94989555    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94999556    mov byte [bp+013h], ah                    ; 88 66 13
    95009557    mov word [bp+00ch], ax                    ; 89 46 0c
    9501     jmp near 0677fh                           ; e9 2b 00
    9502     mov bx, 00da4h                            ; bb a4 0d
     9558    jmp near 067beh                           ; e9 2b 00
     9559    mov bx, 00da0h                            ; bb a0 0d
    95039560    mov cx, ds                                ; 8c d9
    95049561    mov ax, strict word 00004h                ; b8 04 00
    9505     call 01923h                               ; e8 c4 b1
     9562    call 01923h                               ; e8 85 b1
    95069563    mov ax, word [bp+012h]                    ; 8b 46 12
    95079564    xor ah, ah                                ; 30 e4
     
    95099566    push 0082eh                               ; 68 2e 08
    95109567    push strict byte 00004h                   ; 6a 04
    9511     call 01966h                               ; e8 f9 b1
     9568    call 01966h                               ; e8 ba b1
    95129569    add sp, strict byte 00006h                ; 83 c4 06
    95139570    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    95229579    retn                                      ; c3
    95239580    mov word [bp+018h], dx                    ; 89 56 18
    9524     jmp near 06838h                           ; e9 ac 00
     9581    jmp near 06877h                           ; e9 ac 00
    95259582    mov word [bp+018h], dx                    ; 89 56 18
    9526     jmp short 0677fh                          ; eb ee
     9583    jmp short 067beh                          ; eb ee
    95279584    mov word [bp+018h], cx                    ; 89 4e 18
    9528     jmp short 0677ch                          ; eb e6
     9585    jmp short 067bbh                          ; eb e6
    95299586    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9530     jne short 0680bh                          ; 75 6f
     9587    jne short 0684ah                          ; 75 6f
    95319588    mov dx, 000a0h                            ; ba a0 00
    95329589    mov ax, strict word 00040h                ; b8 40 00
    9533     call 01650h                               ; e8 ab ae
     9590    call 01650h                               ; e8 6c ae
    95349591    test AL, strict byte 001h                 ; a8 01
    9535     jne short 06808h                          ; 75 5f
     9592    jne short 06847h                          ; 75 5f
    95369593    mov bx, strict word 00001h                ; bb 01 00
    95379594    mov dx, 000a0h                            ; ba a0 00
    95389595    mov ax, strict word 00040h                ; b8 40 00
    9539     call 0165eh                               ; e8 a9 ae
     9596    call 0165eh                               ; e8 6a ae
    95409597    mov bx, word [bp+014h]                    ; 8b 5e 14
    95419598    mov dx, 00098h                            ; ba 98 00
    95429599    mov ax, strict word 00040h                ; b8 40 00
    9543     call 0167ah                               ; e8 b9 ae
     9600    call 0167ah                               ; e8 7a ae
    95449601    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    95459602    mov dx, 0009ah                            ; ba 9a 00
    95469603    mov ax, strict word 00040h                ; b8 40 00
    9547     call 0167ah                               ; e8 ad ae
     9604    call 0167ah                               ; e8 6e ae
    95489605    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    95499606    mov dx, 0009ch                            ; ba 9c 00
    95509607    mov ax, strict word 00040h                ; b8 40 00
    9551     call 0167ah                               ; e8 a1 ae
     9608    call 0167ah                               ; e8 62 ae
    95529609    mov bx, word [bp+010h]                    ; 8b 5e 10
    95539610    mov dx, 0009eh                            ; ba 9e 00
    95549611    mov ax, strict word 00040h                ; b8 40 00
    9555     call 0167ah                               ; e8 95 ae
     9612    call 0167ah                               ; e8 56 ae
    95569613    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95579614    mov dx, 000a1h                            ; ba a1 00
     
    95629619    out DX, AL                                ; ee
    95639620    mov ax, strict word 0000bh                ; b8 0b 00
    9564     call 016ach                               ; e8 b4 ae
     9621    call 016ach                               ; e8 75 ae
    95659622    mov dl, al                                ; 88 c2
    95669623    or dl, 040h                               ; 80 ca 40
    95679624    xor dh, dh                                ; 30 f6
    95689625    mov ax, strict word 0000bh                ; b8 0b 00
    9569     call 016c7h                               ; e8 c2 ae
    9570     jmp near 0677fh                           ; e9 77 ff
    9571     jmp near 0694ch                           ; e9 41 01
     9626    call 016c7h                               ; e8 83 ae
     9627    jmp near 067beh                           ; e9 77 ff
     9628    jmp near 0698bh                           ; e9 41 01
    95729629    cmp ax, strict word 00001h                ; 3d 01 00
    9573     jne short 0682ch                          ; 75 1c
     9630    jne short 0686bh                          ; 75 1c
    95749631    xor bx, bx                                ; 31 db
    95759632    mov dx, 000a0h                            ; ba a0 00
    95769633    mov ax, strict word 00040h                ; b8 40 00
    9577     call 0165eh                               ; e8 43 ae
     9634    call 0165eh                               ; e8 04 ae
    95789635    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95799636    mov ax, strict word 0000bh                ; b8 0b 00
    9580     call 016ach                               ; e8 87 ae
     9637    call 016ach                               ; e8 48 ae
    95819638    mov dl, al                                ; 88 c2
    95829639    and dl, 0bfh                              ; 80 e2 bf
    9583     jmp short 067fdh                          ; eb d1
     9640    jmp short 0683ch                          ; eb d1
    95849641    mov word [bp+018h], dx                    ; 89 56 18
    95859642    mov ax, bx                                ; 89 d8
     
    95899646    or bx, ax                                 ; 09 c3
    95909647    mov word [bp+012h], bx                    ; 89 5e 12
    9591     jmp near 0677fh                           ; e9 41 ff
     9648    jmp near 067beh                           ; e9 41 ff
    95929649    mov ax, strict word 00031h                ; b8 31 00
    9593     call 016ach                               ; e8 68 ae
     9650    call 016ach                               ; e8 29 ae
    95949651    xor ah, ah                                ; 30 e4
    95959652    mov dx, ax                                ; 89 c2
    95969653    sal dx, 008h                              ; c1 e2 08
    95979654    mov ax, strict word 00030h                ; b8 30 00
    9598     call 016ach                               ; e8 5b ae
     9655    call 016ach                               ; e8 1c ae
    95999656    xor ah, ah                                ; 30 e4
    96009657    or dx, ax                                 ; 09 c2
    96019658    mov word [bp+012h], dx                    ; 89 56 12
    96029659    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9603     jbe short 06862h                          ; 76 05
     9660    jbe short 068a1h                          ; 76 05
    96049661    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    96059662    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9606     jmp near 0677fh                           ; e9 16 ff
     9663    jmp near 067beh                           ; e9 16 ff
    96079664    cli                                       ; fa
    96089665    mov ax, strict word 00001h                ; b8 01 00
    9609     call 065eah                               ; e8 7a fd
     9666    call 06629h                               ; e8 7a fd
    96109667    mov dx, word [bp+006h]                    ; 8b 56 06
    96119668    add dx, strict byte 00038h                ; 83 c2 38
    96129669    mov ax, word [bp+014h]                    ; 8b 46 14
    96139670    mov bx, strict word 0ffffh                ; bb ff ff
    9614     call 0167ah                               ; e8 fb ad
     9671    call 0167ah                               ; e8 bc ad
    96159672    mov dx, word [bp+006h]                    ; 8b 56 06
    96169673    add dx, strict byte 0003ah                ; 83 c2 3a
    96179674    mov ax, word [bp+014h]                    ; 8b 46 14
    96189675    xor bx, bx                                ; 31 db
    9619     call 0167ah                               ; e8 ed ad
     9676    call 0167ah                               ; e8 ae ad
    96209677    mov dx, word [bp+006h]                    ; 8b 56 06
    96219678    add dx, strict byte 0003ch                ; 83 c2 3c
    96229679    mov ax, word [bp+014h]                    ; 8b 46 14
    96239680    mov bx, strict word 0000fh                ; bb 0f 00
    9624     call 0165eh                               ; e8 c2 ad
     9681    call 0165eh                               ; e8 83 ad
    96259682    mov dx, word [bp+006h]                    ; 8b 56 06
    96269683    add dx, strict byte 0003dh                ; 83 c2 3d
    96279684    mov ax, word [bp+014h]                    ; 8b 46 14
    96289685    mov bx, 0009bh                            ; bb 9b 00
    9629     call 0165eh                               ; e8 b3 ad
     9686    call 0165eh                               ; e8 74 ad
    96309687    mov dx, word [bp+006h]                    ; 8b 56 06
    96319688    add dx, strict byte 0003eh                ; 83 c2 3e
    96329689    mov ax, word [bp+014h]                    ; 8b 46 14
    96339690    xor bx, bx                                ; 31 db
    9634     call 0167ah                               ; e8 c1 ad
     9691    call 0167ah                               ; e8 82 ad
    96359692    mov AL, strict byte 011h                  ; b0 11
    96369693    mov dx, strict word 00020h                ; ba 20 00
     
    96629719    out DX, AL                                ; ee
    96639720    mov si, word [bp+006h]                    ; 8b 76 06
    9664     call 068fah                               ; e8 00 00
     9721    call 06939h                               ; e8 00 00
    96659722    pop di                                    ; 5f
    96669723    add di, strict byte 00018h                ; 83 c7 18
     
    96909747    push cx                                   ; 51
    96919748    retf                                      ; cb
    9692     jmp near 0677fh                           ; e9 49 fe
    9693     mov bx, 00da4h                            ; bb a4 0d
     9749    jmp near 067beh                           ; e9 49 fe
     9750    mov bx, 00da0h                            ; bb a0 0d
    96949751    mov cx, ds                                ; 8c d9
    96959752    mov ax, strict word 00004h                ; b8 04 00
    9696     call 01923h                               ; e8 e2 af
     9753    call 01923h                               ; e8 a3 af
    96979754    push 0086eh                               ; 68 6e 08
    96989755    push strict byte 00004h                   ; 6a 04
    9699     call 01966h                               ; e8 1d b0
     9756    call 01966h                               ; e8 de af
    97009757    add sp, strict byte 00004h                ; 83 c4 04
    97019758    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    97049761    or ah, 086h                               ; 80 cc 86
    97059762    mov word [bp+012h], ax                    ; 89 46 12
    9706     jmp near 0677fh                           ; e9 21 fe
     9763    jmp near 067beh                           ; e9 21 fe
    97079764    mov word [bp+018h], cx                    ; 89 4e 18
    97089765    mov word [bp+012h], ax                    ; 89 46 12
    97099766    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    97109767    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9711     jmp near 0677fh                           ; e9 0e fe
     9768    jmp near 067beh                           ; e9 0e fe
    97129769    mov dx, strict word 0000eh                ; ba 0e 00
    97139770    mov ax, strict word 00040h                ; b8 40 00
    9714     call 0166ch                               ; e8 f2 ac
     9771    call 0166ch                               ; e8 b3 ac
    97159772    mov word [bp+014h], ax                    ; 89 46 14
    9716     jmp near 06862h                           ; e9 e2 fe
     9773    jmp near 068a1h                           ; e9 e2 fe
    97179774    push 0089dh                               ; 68 9d 08
    97189775    push strict byte 00008h                   ; 6a 08
    9719     jmp short 06946h                          ; eb bf
     9776    jmp short 06985h                          ; eb bf
    97209777    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9721     jne short 069ach                          ; 75 1f
     9778    jne short 069ebh                          ; 75 1f
    97229779    mov word [bp+012h], ax                    ; 89 46 12
    97239780    mov ax, word [bp+00ch]                    ; 8b 46 0c
    97249781    xor ah, ah                                ; 30 e4
    97259782    cmp ax, strict word 00001h                ; 3d 01 00
    9726     jc short 069a5h                           ; 72 0b
     9783    jc short 069e4h                           ; 72 0b
    97279784    cmp ax, strict word 00003h                ; 3d 03 00
    9728     jnbe short 069a5h                         ; 77 06
     9785    jnbe short 069e4h                         ; 77 06
    97299786    mov word [bp+018h], cx                    ; 89 4e 18
    9730     jmp near 0677fh                           ; e9 da fd
     9787    jmp near 067beh                           ; e9 da fd
    97319788    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9732     jmp near 0677fh                           ; e9 d3 fd
    9733     mov bx, 00da4h                            ; bb a4 0d
     9789    jmp near 067beh                           ; e9 d3 fd
     9790    mov bx, 00da0h                            ; bb a0 0d
    97349791    mov cx, ds                                ; 8c d9
    97359792    mov ax, strict word 00004h                ; b8 04 00
    9736     call 01923h                               ; e8 6c af
     9793    call 01923h                               ; e8 2d af
    97379794    push word [bp+00ch]                       ; ff 76 0c
    97389795    push word [bp+012h]                       ; ff 76 12
    97399796    push 008b4h                               ; 68 b4 08
    97409797    push strict byte 00004h                   ; 6a 04
    9741     call 01966h                               ; e8 a1 af
     9798    call 01966h                               ; e8 62 af
    97429799    add sp, strict byte 00008h                ; 83 c4 08
    9743     jmp short 0694ch                          ; eb 82
    9744     dec ax                                    ; 48
    9745     imul bp, word [di+06bh], strict byte 0ff8dh ; 6b 6d 6b 8d
    9746     imul bx, sp, strict byte 0006bh           ; 6b dc 6b
    9747     cli                                       ; fa
    9748     imul dx, word [bx], strict byte 0006ch    ; 6b 17 6c
    9749     cmp word [si+05bh], bp                    ; 39 6c 5b
     9800    jmp short 0698bh                          ; eb 82
     9801    xchg word [bp+di-054h], bp                ; 87 6b ac
     9802    imul cx, sp, strict byte 0006bh           ; 6b cc 6b
     9803    sbb bp, word [si+039h]                    ; 1b 6c 39
    97509804    insb                                      ; 6c
    9751     cbw                                       ; 98
     9805    push si                                   ; 56
    97529806    insb                                      ; 6c
    9753     int3                                      ; cc
    9754     insb                                      ; 6c
    9755 _int15_function32:                           ; 0xf69de LB 0x38a
     9807    js short 06a83h                           ; 78 6c
     9808    call far 00b6ch:0d76ch                    ; 9a 6c d7 6c 0b
     9809    insw                                      ; 6d
     9810_int15_function32:                           ; 0xf6a1d LB 0x38a
    97569811    push bp                                   ; 55
    97579812    mov bp, sp                                ; 89 e5
     
    97659820    xor dh, dh                                ; 30 f6
    97669821    cmp ax, 000e8h                            ; 3d e8 00
    9767     je short 06a45h                           ; 74 4a
     9822    je short 06a84h                           ; 74 4a
    97689823    cmp ax, 000d0h                            ; 3d d0 00
    9769     je short 06a12h                           ; 74 12
     9824    je short 06a51h                           ; 74 12
    97709825    cmp ax, 00086h                            ; 3d 86 00
    9771     jne short 06a43h                          ; 75 3e
     9826    jne short 06a82h                          ; 75 3e
    97729827    sti                                       ; fb
    97739828    mov dx, word [bp+01ch]                    ; 8b 56 1c
    97749829    mov ax, word [bp+018h]                    ; 8b 46 18
    9775     call 065a7h                               ; e8 98 fb
    9776     jmp near 06bd6h                           ; e9 c4 01
     9830    call 065e6h                               ; e8 98 fb
     9831    jmp near 06c15h                           ; e9 c4 01
    97779832    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9778     jne short 06a43h                          ; 75 2c
     9833    jne short 06a82h                          ; 75 2c
    97799834    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9780     jne short 06a79h                          ; 75 5b
     9835    jne short 06ab8h                          ; 75 5b
    97819836    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9782     jne short 06a79h                          ; 75 54
     9837    jne short 06ab8h                          ; 75 54
    97839838    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9784     jne short 06a79h                          ; 75 4d
     9839    jne short 06ab8h                          ; 75 4d
    97859840    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9786     jne short 06a79h                          ; 75 46
     9841    jne short 06ab8h                          ; 75 46
    97879842    mov ax, word [bp+00ah]                    ; 8b 46 0a
    97889843    or ax, word [bp+008h]                     ; 0b 46 08
    9789     jne short 06a79h                          ; 75 3e
     9844    jne short 06ab8h                          ; 75 3e
    97909845    mov ax, word [bp+006h]                    ; 8b 46 06
    97919846    or ax, word [bp+004h]                     ; 0b 46 04
    9792     je short 06a47h                           ; 74 04
    9793     jmp short 06a79h                          ; eb 34
    9794     jmp short 06a6fh                          ; eb 28
     9847    je short 06a86h                           ; 74 04
     9848    jmp short 06ab8h                          ; eb 34
     9849    jmp short 06aaeh                          ; eb 28
    97959850    mov word [bp+028h], bx                    ; 89 5e 28
    97969851    mov ax, word [bp+014h]                    ; 8b 46 14
     
    98049859    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    98059860    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    9806     jmp near 06bd6h                           ; e9 67 01
     9861    jmp near 06c15h                           ; e9 67 01
    98079862    cmp dx, strict byte 00020h                ; 83 fa 20
    9808     je short 06a7fh                           ; 74 0b
     9863    je short 06abeh                           ; 74 0b
    98099864    cmp dx, strict byte 00001h                ; 83 fa 01
    9810     je short 06a7ch                           ; 74 03
    9811     jmp near 06bach                           ; e9 30 01
    9812     jmp near 06d1ah                           ; e9 9b 02
     9865    je short 06abbh                           ; 74 03
     9866    jmp near 06bebh                           ; e9 30 01
     9867    jmp near 06d59h                           ; e9 9b 02
    98139868    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9814     jne short 06a79h                          ; 75 f3
     9869    jne short 06ab8h                          ; 75 f3
    98159870    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9816     jne short 06a79h                          ; 75 ec
     9871    jne short 06ab8h                          ; 75 ec
    98179872    mov ax, strict word 00035h                ; b8 35 00
    9818     call 016ach                               ; e8 19 ac
     9873    call 016ach                               ; e8 da ab
    98199874    mov bl, al                                ; 88 c3
    98209875    xor bh, bh                                ; 30 ff
     
    98239878    sal bx, 1                                 ; d1 e3
    98249879    rcl dx, 1                                 ; d1 d2
    9825     loop 06a9ch                               ; e2 fa
     9880    loop 06adbh                               ; e2 fa
    98269881    mov ax, strict word 00034h                ; b8 34 00
    9827     call 016ach                               ; e8 04 ac
     9882    call 016ach                               ; e8 c5 ab
    98289883    xor ah, ah                                ; 30 e4
    98299884    mov dx, bx                                ; 89 da
     
    98339888    adc dx, 00100h                            ; 81 d2 00 01
    98349889    cmp dx, 00100h                            ; 81 fa 00 01
    9835     jc short 06ac2h                           ; 72 06
    9836     jne short 06af0h                          ; 75 32
     9890    jc short 06b01h                           ; 72 06
     9891    jne short 06b2fh                          ; 75 32
    98379892    test bx, bx                               ; 85 db
    9838     jnbe short 06af0h                         ; 77 2e
     9893    jnbe short 06b2fh                         ; 77 2e
    98399894    mov ax, strict word 00031h                ; b8 31 00
    9840     call 016ach                               ; e8 e4 ab
     9895    call 016ach                               ; e8 a5 ab
    98419896    mov bl, al                                ; 88 c3
    98429897    xor bh, bh                                ; 30 ff
     
    98459900    sal bx, 1                                 ; d1 e3
    98469901    rcl dx, 1                                 ; d1 d2
    9847     loop 06ad1h                               ; e2 fa
     9902    loop 06b10h                               ; e2 fa
    98489903    mov ax, strict word 00030h                ; b8 30 00
    9849     call 016ach                               ; e8 cf ab
     9904    call 016ach                               ; e8 90 ab
    98509905    xor ah, ah                                ; 30 e4
    98519906    or bx, ax                                 ; 09 c3
     
    98539908    sal bx, 1                                 ; d1 e3
    98549909    rcl dx, 1                                 ; d1 d2
    9855     loop 06ae4h                               ; e2 fa
     9910    loop 06b23h                               ; e2 fa
    98569911    add bx, strict byte 00000h                ; 83 c3 00
    98579912    adc dx, strict byte 00010h                ; 83 d2 10
    98589913    mov ax, strict word 00062h                ; b8 62 00
    9859     call 016ach                               ; e8 b6 ab
     9914    call 016ach                               ; e8 77 ab
    98609915    xor ah, ah                                ; 30 e4
    98619916    mov word [bp-00ah], ax                    ; 89 46 f6
     
    98659920    sal word [bp-00ah], 1                     ; d1 66 f6
    98669921    rcl word [bp-008h], 1                     ; d1 56 f8
    9867     loop 06b03h                               ; e2 f8
     9922    loop 06b42h                               ; e2 f8
    98689923    mov ax, strict word 00061h                ; b8 61 00
    9869     call 016ach                               ; e8 9b ab
     9924    call 016ach                               ; e8 5c ab
    98709925    xor ah, ah                                ; 30 e4
    98719926    or word [bp-00ah], ax                     ; 09 46 f6
     
    98749929    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    98759930    mov ax, strict word 00063h                ; b8 63 00
    9876     call 016ach                               ; e8 85 ab
     9931    call 016ach                               ; e8 46 ab
    98779932    mov byte [bp-004h], al                    ; 88 46 fc
    98789933    mov byte [bp-006h], al                    ; 88 46 fa
    98799934    mov ax, word [bp+014h]                    ; 8b 46 14
    98809935    cmp ax, strict word 00009h                ; 3d 09 00
    9881     jnbe short 06bach                         ; 77 77
     9936    jnbe short 06bebh                         ; 77 77
    98829937    mov si, ax                                ; 89 c6
    98839938    add si, ax                                ; 01 c6
     
    98869941    mov cx, dx                                ; 89 d1
    98879942    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9888     jmp word [cs:si+069cah]                   ; 2e ff a4 ca 69
     9943    jmp word [cs:si+06a09h]                   ; 2e ff a4 09 6a
    98899944    push strict byte 00001h                   ; 6a 01
    98909945    push strict byte 00000h                   ; 6a 00
     
    98969951    xor bx, bx                                ; 31 db
    98979952    xor cx, cx                                ; 31 c9
    9898     call 0661ah                               ; e8 ba fa
     9953    call 06659h                               ; e8 ba fa
    98999954    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    99009955    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    9901     jmp near 06cffh                           ; e9 92 01
     9956    jmp near 06d3eh                           ; e9 92 01
    99029957    push strict byte 00002h                   ; 6a 02
    99039958    push strict byte 00000h                   ; 6a 00
     
    99099964    mov bx, 0fc00h                            ; bb 00 fc
    99109965    mov cx, strict word 00009h                ; b9 09 00
    9911     call 0661ah                               ; e8 94 fa
     9966    call 06659h                               ; e8 94 fa
    99129967    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    9913     jmp short 06b65h                          ; eb d8
     9968    jmp short 06ba4h                          ; eb d8
    99149969    push strict byte 00002h                   ; 6a 02
    99159970    push strict byte 00000h                   ; 6a 00
     
    99219976    xor bx, bx                                ; 31 db
    99229977    mov cx, strict word 0000fh                ; b9 0f 00
    9923     call 0661ah                               ; e8 75 fa
     9978    call 06659h                               ; e8 75 fa
    99249979    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    9925     jmp short 06b65h                          ; eb b9
    9926     mov bx, 00da4h                            ; bb a4 0d
     9980    jmp short 06ba4h                          ; eb b9
     9981    mov bx, 00da0h                            ; bb a0 0d
    99279982    mov cx, ds                                ; 8c d9
    99289983    mov ax, strict word 00004h                ; b8 04 00
    9929     call 01923h                               ; e8 6c ad
     9984    call 01923h                               ; e8 2d ad
    99309985    push word [bp+014h]                       ; ff 76 14
    99319986    push word [bp+020h]                       ; ff 76 20
    99329987    push 008b4h                               ; 68 b4 08
    99339988    push strict byte 00004h                   ; 6a 04
    9934     call 01966h                               ; e8 a1 ad
     9989    call 01966h                               ; e8 62 ad
    99359990    add sp, strict byte 00008h                ; 83 c4 08
    99369991    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    995210007    xor bx, bx                                ; 31 db
    995310008    mov cx, strict word 00010h                ; b9 10 00
    9954     call 0661ah                               ; e8 28 fa
     10009    call 06659h                               ; e8 28 fa
    995510010    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    9956     jmp near 06b65h                           ; e9 6b ff
     10011    jmp near 06ba4h                           ; e9 6b ff
    995710012    push strict byte 00003h                   ; 6a 03
    995810013    push strict byte 00000h                   ; 6a 00
     
    996410019    mov bx, ax                                ; 89 c3
    996510020    mov ax, si                                ; 89 f0
    9966     call 0661ah                               ; e8 0b fa
     10021    call 06659h                               ; e8 0b fa
    996710022    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    9968     jmp near 06b65h                           ; e9 4e ff
     10023    jmp near 06ba4h                           ; e9 4e ff
    996910024    push strict byte 00002h                   ; 6a 02
    997010025    push strict byte 00000h                   ; 6a 00
     
    997610031    xor bx, bx                                ; 31 db
    997710032    mov cx, 0fec0h                            ; b9 c0 fe
    9978     call 0661ah                               ; e8 e9 f9
     10033    call 06659h                               ; e8 e9 f9
    997910034    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    9980     jmp near 06b65h                           ; e9 2c ff
     10035    jmp near 06ba4h                           ; e9 2c ff
    998110036    push strict byte 00002h                   ; 6a 02
    998210037    push strict byte 00000h                   ; 6a 00
     
    998810043    xor bx, bx                                ; 31 db
    998910044    mov cx, 0fee0h                            ; b9 e0 fe
    9990     call 0661ah                               ; e8 c7 f9
     10045    call 06659h                               ; e8 c7 f9
    999110046    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    9992     jmp near 06b65h                           ; e9 0a ff
     10047    jmp near 06ba4h                           ; e9 0a ff
    999310048    push strict byte 00002h                   ; 6a 02
    999410049    push strict byte 00000h                   ; 6a 00
     
    1000010055    xor bx, bx                                ; 31 db
    1000110056    mov cx, strict word 0fffch                ; b9 fc ff
    10002     call 0661ah                               ; e8 a7 f9
     10057    call 06659h                               ; e8 a7 f9
    1000310058    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10004     jne short 06c80h                          ; 75 07
     10059    jne short 06cbfh                          ; 75 07
    1000510060    mov ax, word [bp-008h]                    ; 8b 46 f8
    1000610061    test ax, ax                               ; 85 c0
    10007     je short 06c90h                           ; 74 10
     10062    je short 06ccfh                           ; 74 10
    1000810063    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10009     jmp near 06b65h                           ; e9 dd fe
     10064    jmp near 06ba4h                           ; e9 dd fe
    1001010065    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10011     jmp near 06b65h                           ; e9 d5 fe
     10066    jmp near 06ba4h                           ; e9 d5 fe
    1001210067    mov word [bp+014h], ax                    ; 89 46 14
    1001310068    mov word [bp+016h], ax                    ; 89 46 16
    10014     jmp short 06cffh                          ; eb 67
     10069    jmp short 06d3eh                          ; eb 67
    1001510070    push strict byte 00002h                   ; 6a 02
    1001610071    push strict byte 00000h                   ; 6a 00
     
    1002210077    xor bx, bx                                ; 31 db
    1002310078    xor cx, cx                                ; 31 c9
    10024     call 0661ah                               ; e8 6b f9
     10079    call 06659h                               ; e8 6b f9
    1002510080    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10026     jne short 06cbch                          ; 75 07
     10081    jne short 06cfbh                          ; 75 07
    1002710082    mov ax, word [bp-008h]                    ; 8b 46 f8
    1002810083    test ax, ax                               ; 85 c0
    10029     je short 06cc4h                           ; 74 08
     10084    je short 06d03h                           ; 74 08
    1003010085    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10031     jmp near 06b65h                           ; e9 a1 fe
     10086    jmp near 06ba4h                           ; e9 a1 fe
    1003210087    mov word [bp+014h], ax                    ; 89 46 14
    1003310088    mov word [bp+016h], ax                    ; 89 46 16
    10034     jmp short 06cffh                          ; eb 33
     10089    jmp short 06d3eh                          ; eb 33
    1003510090    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10036     jne short 06cd8h                          ; 75 06
     10091    jne short 06d17h                          ; 75 06
    1003710092    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10038     je short 06cffh                           ; 74 27
     10093    je short 06d3eh                           ; 74 27
    1003910094    push strict byte 00001h                   ; 6a 01
    1004010095    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    1005010105    xor bx, bx                                ; 31 db
    1005110106    xor cx, cx                                ; 31 c9
    10052     call 0661ah                               ; e8 23 f9
     10107    call 06659h                               ; e8 23 f9
    1005310108    xor ax, ax                                ; 31 c0
    1005410109    mov word [bp+014h], ax                    ; 89 46 14
     
    1005910114    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1006010115    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10061     jmp near 06bd6h                           ; e9 bc fe
     10116    jmp near 06c15h                           ; e9 bc fe
    1006210117    mov word [bp+028h], bx                    ; 89 5e 28
    1006310118    mov ax, strict word 00031h                ; b8 31 00
    10064     call 016ach                               ; e8 89 a9
     10119    call 016ach                               ; e8 4a a9
    1006510120    xor ah, ah                                ; 30 e4
    1006610121    mov dx, ax                                ; 89 c2
    1006710122    sal dx, 008h                              ; c1 e2 08
    1006810123    mov ax, strict word 00030h                ; b8 30 00
    10069     call 016ach                               ; e8 7c a9
     10124    call 016ach                               ; e8 3d a9
    1007010125    xor ah, ah                                ; 30 e4
    1007110126    or dx, ax                                 ; 09 c2
    1007210127    mov word [bp+01ch], dx                    ; 89 56 1c
    1007310128    cmp dx, 03c00h                            ; 81 fa 00 3c
    10074     jbe short 06d42h                          ; 76 05
     10129    jbe short 06d81h                          ; 76 05
    1007510130    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1007610131    mov ax, strict word 00035h                ; b8 35 00
    10077     call 016ach                               ; e8 64 a9
     10132    call 016ach                               ; e8 25 a9
    1007810133    xor ah, ah                                ; 30 e4
    1007910134    mov dx, ax                                ; 89 c2
    1008010135    sal dx, 008h                              ; c1 e2 08
    1008110136    mov ax, strict word 00034h                ; b8 34 00
    10082     call 016ach                               ; e8 57 a9
     10137    call 016ach                               ; e8 18 a9
    1008310138    xor ah, ah                                ; 30 e4
    1008410139    or dx, ax                                 ; 09 c2
     
    1008710142    mov word [bp+020h], ax                    ; 89 46 20
    1008810143    mov word [bp+014h], dx                    ; 89 56 14
    10089     jmp near 06bd6h                           ; e9 6e fe
    10090 _int15_blkmove:                              ; 0xf6d68 LB 0x18a
     10144    jmp near 06c15h                           ; e9 6e fe
     10145_int15_blkmove:                              ; 0xf6da7 LB 0x18a
    1009110146    push bp                                   ; 55
    1009210147    mov bp, sp                                ; 89 e5
     
    1009710152    cli                                       ; fa
    1009810153    mov ax, strict word 00001h                ; b8 01 00
    10099     call 065eah                               ; e8 74 f8
     10154    call 06629h                               ; e8 74 f8
    1010010155    mov di, ax                                ; 89 c7
    1010110156    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1010710162    mov byte [bp-006h], dl                    ; 88 56 fa
    1010810163    cmp cx, ax                                ; 39 c1
    10109     jnc short 06d95h                          ; 73 05
     10164    jnc short 06dd4h                          ; 73 05
    1011010165    db  0feh, 0c2h
    1011110166    ; inc dl                                    ; fe c2
     
    1011510170    mov ax, word [bp+006h]                    ; 8b 46 06
    1011610171    mov bx, strict word 0002fh                ; bb 2f 00
    10117     call 0167ah                               ; e8 d6 a8
     10172    call 0167ah                               ; e8 97 a8
    1011810173    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1011910174    add dx, strict byte 0000ah                ; 83 c2 0a
    1012010175    mov ax, word [bp+006h]                    ; 8b 46 06
    1012110176    mov bx, cx                                ; 89 cb
    10122     call 0167ah                               ; e8 c8 a8
     10177    call 0167ah                               ; e8 89 a8
    1012310178    mov bl, byte [bp-006h]                    ; 8a 5e fa
    1012410179    xor bh, bh                                ; 30 ff
     
    1012610181    add dx, strict byte 0000ch                ; 83 c2 0c
    1012710182    mov ax, word [bp+006h]                    ; 8b 46 06
    10128     call 0165eh                               ; e8 9b a8
     10183    call 0165eh                               ; e8 5c a8
    1012910184    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1013010185    add dx, strict byte 0000dh                ; 83 c2 0d
    1013110186    mov ax, word [bp+006h]                    ; 8b 46 06
    1013210187    mov bx, 00093h                            ; bb 93 00
    10133     call 0165eh                               ; e8 8c a8
     10188    call 0165eh                               ; e8 4d a8
    1013410189    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1013510190    add dx, strict byte 0000eh                ; 83 c2 0e
    1013610191    mov ax, word [bp+006h]                    ; 8b 46 06
    1013710192    xor bx, bx                                ; 31 db
    10138     call 0167ah                               ; e8 9a a8
     10193    call 0167ah                               ; e8 5b a8
    1013910194    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1014010195    add dx, strict byte 00020h                ; 83 c2 20
    1014110196    mov ax, word [bp+006h]                    ; 8b 46 06
    1014210197    mov bx, strict word 0ffffh                ; bb ff ff
    10143     call 0167ah                               ; e8 8b a8
     10198    call 0167ah                               ; e8 4c a8
    1014410199    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1014510200    add dx, strict byte 00022h                ; 83 c2 22
    1014610201    mov ax, word [bp+006h]                    ; 8b 46 06
    1014710202    xor bx, bx                                ; 31 db
    10148     call 0167ah                               ; e8 7d a8
     10203    call 0167ah                               ; e8 3e a8
    1014910204    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1015010205    add dx, strict byte 00024h                ; 83 c2 24
    1015110206    mov ax, word [bp+006h]                    ; 8b 46 06
    1015210207    mov bx, strict word 0000fh                ; bb 0f 00
    10153     call 0165eh                               ; e8 52 a8
     10208    call 0165eh                               ; e8 13 a8
    1015410209    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1015510210    add dx, strict byte 00025h                ; 83 c2 25
    1015610211    mov ax, word [bp+006h]                    ; 8b 46 06
    1015710212    mov bx, 0009bh                            ; bb 9b 00
    10158     call 0165eh                               ; e8 43 a8
     10213    call 0165eh                               ; e8 04 a8
    1015910214    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1016010215    add dx, strict byte 00026h                ; 83 c2 26
    1016110216    mov ax, word [bp+006h]                    ; 8b 46 06
    1016210217    xor bx, bx                                ; 31 db
    10163     call 0167ah                               ; e8 51 a8
     10218    call 0167ah                               ; e8 12 a8
    1016410219    mov ax, ss                                ; 8c d0
    1016510220    mov cx, ax                                ; 89 c1
     
    1017110226    mov ax, word [bp+006h]                    ; 8b 46 06
    1017210227    mov bx, strict word 0ffffh                ; bb ff ff
    10173     call 0167ah                               ; e8 35 a8
     10228    call 0167ah                               ; e8 f6 a7
    1017410229    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1017510230    add dx, strict byte 0002ah                ; 83 c2 2a
    1017610231    mov ax, word [bp+006h]                    ; 8b 46 06
    1017710232    mov bx, cx                                ; 89 cb
    10178     call 0167ah                               ; e8 27 a8
     10233    call 0167ah                               ; e8 e8 a7
    1017910234    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1018010235    xor bh, bh                                ; 30 ff
     
    1018210237    add dx, strict byte 0002ch                ; 83 c2 2c
    1018310238    mov ax, word [bp+006h]                    ; 8b 46 06
    10184     call 0165eh                               ; e8 fa a7
     10239    call 0165eh                               ; e8 bb a7
    1018510240    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1018610241    add dx, strict byte 0002dh                ; 83 c2 2d
    1018710242    mov ax, word [bp+006h]                    ; 8b 46 06
    1018810243    mov bx, 00093h                            ; bb 93 00
    10189     call 0165eh                               ; e8 eb a7
     10244    call 0165eh                               ; e8 ac a7
    1019010245    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1019110246    add dx, strict byte 0002eh                ; 83 c2 2e
    1019210247    mov ax, word [bp+006h]                    ; 8b 46 06
    1019310248    xor bx, bx                                ; 31 db
    10194     call 0167ah                               ; e8 f9 a7
     10249    call 0167ah                               ; e8 ba a7
    1019510250    lea bx, [bp+004h]                         ; 8d 5e 04
    1019610251    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    1020210257    mov word [00467h], bx                     ; 89 1e 67 04
    1020310258    mov [00469h], ss                          ; 8c 16 69 04
    10204     call 06e9ch                               ; e8 00 00
     10259    call 06edbh                               ; e8 00 00
    1020510260    pop di                                    ; 5f
    1020610261    add di, strict byte 00018h                ; 83 c7 18
     
    1023410289    int3                                      ; cc
    1023510290    mov ax, di                                ; 89 f8
    10236     call 065eah                               ; e8 08 f7
     10291    call 06629h                               ; e8 08 f7
    1023710292    sti                                       ; fb
    1023810293    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1024310298    pop bp                                    ; 5d
    1024410299    retn                                      ; c3
    10245 _inv_op_handler:                             ; 0xf6ef2 LB 0x19b
     10300_inv_op_handler:                             ; 0xf6f31 LB 0x19b
    1024610301    push bp                                   ; 55
    1024710302    mov bp, sp                                ; 89 e5
     
    1025210307    les bx, [bp+018h]                         ; c4 5e 18
    1025310308    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10254     jne short 06f08h                          ; 75 06
     10309    jne short 06f47h                          ; 75 06
    1025510310    inc word [bp+018h]                        ; ff 46 18
    10256     jmp near 07086h                           ; e9 7e 01
     10311    jmp near 070c5h                           ; e9 7e 01
    1025710312    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10258     je short 06f12h                           ; 74 03
    10259     jmp near 07082h                           ; e9 70 01
     10313    je short 06f51h                           ; 74 03
     10314    jmp near 070c1h                           ; e9 70 01
    1026010315    mov si, 00800h                            ; be 00 08
    1026110316    xor ax, ax                                ; 31 c0
     
    1028610341    sal ax, 1                                 ; d1 e0
    1028710342    rcl dx, 1                                 ; d1 d2
    10288     loop 06f63h                               ; e2 fa
     10343    loop 06fa2h                               ; e2 fa
    1028910344    cmp bx, dx                                ; 39 d3
    10290     jne short 06f71h                          ; 75 04
     10345    jne short 06fb0h                          ; 75 04
    1029110346    cmp di, ax                                ; 39 c7
    10292     je short 06f76h                           ; 74 05
     10347    je short 06fb5h                           ; 74 05
    1029310348    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1029410349    mov es, [bp-006h]                         ; 8e 46 fa
     
    1030110356    sal ax, 1                                 ; d1 e0
    1030210357    rcl dx, 1                                 ; d1 d2
    10303     loop 06f8ch                               ; e2 fa
     10358    loop 06fcbh                               ; e2 fa
    1030410359    cmp bx, dx                                ; 39 d3
    10305     jne short 06f9ah                          ; 75 04
     10360    jne short 06fd9h                          ; 75 04
    1030610361    cmp di, ax                                ; 39 c7
    10307     je short 06f9eh                           ; 74 04
     10362    je short 06fddh                           ; 74 04
    1030810363    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1030910364    push strict byte 00000h                   ; 6a 00
     
    1035910414    mov ax, strict word 00008h                ; b8 08 00
    1036010415    test cx, strict word 00001h               ; f7 c1 01 00
    10361     je near 0703fh                            ; 0f 84 02 00
     10416    je near 0707eh                            ; 0f 84 02 00
    1036210417    mov es, ax                                ; 8e c0
    1036310418    test cx, strict word 00002h               ; f7 c1 02 00
    10364     je near 07067h                            ; 0f 84 20 00
     10419    je near 070a6h                            ; 0f 84 20 00
    1036510420    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1036610421    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1037910434    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1038010435    iret                                      ; cf
    10381     jmp short 07086h                          ; eb 04
     10436    jmp short 070c5h                          ; eb 04
    1038210437    sti                                       ; fb
    1038310438    hlt                                       ; f4
    10384     jmp short 07083h                          ; eb fd
     10439    jmp short 070c2h                          ; eb fd
    1038510440    lea sp, [bp-004h]                         ; 8d 66 fc
    1038610441    pop di                                    ; 5f
     
    1038810443    pop bp                                    ; 5d
    1038910444    retn                                      ; c3
    10390 init_rtc_:                                   ; 0xf708d LB 0x28
     10445init_rtc_:                                   ; 0xf70cc LB 0x28
    1039110446    push bp                                   ; 55
    1039210447    mov bp, sp                                ; 89 e5
     
    1039410449    mov dx, strict word 00026h                ; ba 26 00
    1039510450    mov ax, strict word 0000ah                ; b8 0a 00
    10396     call 016c7h                               ; e8 2d a6
     10451    call 016c7h                               ; e8 ee a5
    1039710452    mov dx, strict word 00002h                ; ba 02 00
    1039810453    mov ax, strict word 0000bh                ; b8 0b 00
    10399     call 016c7h                               ; e8 24 a6
     10454    call 016c7h                               ; e8 e5 a5
    1040010455    mov ax, strict word 0000ch                ; b8 0c 00
    10401     call 016ach                               ; e8 03 a6
     10456    call 016ach                               ; e8 c4 a5
    1040210457    mov ax, strict word 0000dh                ; b8 0d 00
    10403     call 016ach                               ; e8 fd a5
     10458    call 016ach                               ; e8 be a5
    1040410459    lea sp, [bp-002h]                         ; 8d 66 fe
    1040510460    pop dx                                    ; 5a
    1040610461    pop bp                                    ; 5d
    1040710462    retn                                      ; c3
    10408 rtc_updating_:                               ; 0xf70b5 LB 0x21
     10463rtc_updating_:                               ; 0xf70f4 LB 0x21
    1040910464    push bp                                   ; 55
    1041010465    mov bp, sp                                ; 89 e5
     
    1041210467    mov dx, 061a8h                            ; ba a8 61
    1041310468    dec dx                                    ; 4a
    10414     je short 070cdh                           ; 74 0e
     10469    je short 0710ch                           ; 74 0e
    1041510470    mov ax, strict word 0000ah                ; b8 0a 00
    10416     call 016ach                               ; e8 e7 a5
     10471    call 016ach                               ; e8 a8 a5
    1041710472    test AL, strict byte 080h                 ; a8 80
    10418     jne short 070bch                          ; 75 f3
     10473    jne short 070fbh                          ; 75 f3
    1041910474    xor ax, ax                                ; 31 c0
    10420     jmp short 070d0h                          ; eb 03
     10475    jmp short 0710fh                          ; eb 03
    1042110476    mov ax, strict word 00001h                ; b8 01 00
    1042210477    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1042410479    pop bp                                    ; 5d
    1042510480    retn                                      ; c3
    10426 _int70_function:                             ; 0xf70d6 LB 0xbf
     10481_int70_function:                             ; 0xf7115 LB 0xbf
    1042710482    push bp                                   ; 55
    1042810483    mov bp, sp                                ; 89 e5
     
    1043010485    push ax                                   ; 50
    1043110486    mov ax, strict word 0000bh                ; b8 0b 00
    10432     call 016ach                               ; e8 cb a5
     10487    call 016ach                               ; e8 8c a5
    1043310488    mov bl, al                                ; 88 c3
    1043410489    mov byte [bp-004h], al                    ; 88 46 fc
    1043510490    mov ax, strict word 0000ch                ; b8 0c 00
    10436     call 016ach                               ; e8 c0 a5
     10491    call 016ach                               ; e8 81 a5
    1043710492    mov dl, al                                ; 88 c2
    1043810493    test bl, 060h                             ; f6 c3 60
    10439     jne short 070f6h                          ; 75 03
    10440     jmp near 0717ch                           ; e9 86 00
     10494    jne short 07135h                          ; 75 03
     10495    jmp near 071bbh                           ; e9 86 00
    1044110496    test AL, strict byte 020h                 ; a8 20
    10442     je short 070feh                           ; 74 04
     10497    je short 0713dh                           ; 74 04
    1044310498    sti                                       ; fb
    1044410499    int 04ah                                  ; cd 4a
    1044510500    cli                                       ; fa
    1044610501    test dl, 040h                             ; f6 c2 40
    10447     je short 07166h                           ; 74 63
     10502    je short 071a5h                           ; 74 63
    1044810503    mov dx, 000a0h                            ; ba a0 00
    1044910504    mov ax, strict word 00040h                ; b8 40 00
    10450     call 01650h                               ; e8 44 a5
     10505    call 01650h                               ; e8 05 a5
    1045110506    test al, al                               ; 84 c0
    10452     je short 0717ch                           ; 74 6c
     10507    je short 071bbh                           ; 74 6c
    1045310508    mov dx, 0009ch                            ; ba 9c 00
    1045410509    mov ax, strict word 00040h                ; b8 40 00
    10455     call 01688h                               ; e8 6f a5
     10510    call 01688h                               ; e8 30 a5
    1045610511    test dx, dx                               ; 85 d2
    10457     jne short 07168h                          ; 75 4b
     10512    jne short 071a7h                          ; 75 4b
    1045810513    cmp ax, 003d1h                            ; 3d d1 03
    10459     jnc short 07168h                          ; 73 46
     10514    jnc short 071a7h                          ; 73 46
    1046010515    mov dx, 00098h                            ; ba 98 00
    1046110516    mov ax, strict word 00040h                ; b8 40 00
    10462     call 0166ch                               ; e8 41 a5
     10517    call 0166ch                               ; e8 02 a5
    1046310518    mov si, ax                                ; 89 c6
    1046410519    mov dx, 0009ah                            ; ba 9a 00
    1046510520    mov ax, strict word 00040h                ; b8 40 00
    10466     call 0166ch                               ; e8 36 a5
     10521    call 0166ch                               ; e8 f7 a4
    1046710522    mov cx, ax                                ; 89 c1
    1046810523    xor bx, bx                                ; 31 db
    1046910524    mov dx, 000a0h                            ; ba a0 00
    1047010525    mov ax, strict word 00040h                ; b8 40 00
    10471     call 0165eh                               ; e8 1b a5
     10526    call 0165eh                               ; e8 dc a4
    1047210527    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1047310528    and dl, 037h                              ; 80 e2 37
    1047410529    xor dh, dh                                ; 30 f6
    1047510530    mov ax, strict word 0000bh                ; b8 0b 00
    10476     call 016c7h                               ; e8 76 a5
     10531    call 016c7h                               ; e8 37 a5
    1047710532    mov dx, cx                                ; 89 ca
    1047810533    mov ax, si                                ; 89 f0
    10479     call 01650h                               ; e8 f8 a4
     10534    call 01650h                               ; e8 b9 a4
    1048010535    mov bl, al                                ; 88 c3
    1048110536    or bl, 080h                               ; 80 cb 80
     
    1048310538    mov dx, cx                                ; 89 ca
    1048410539    mov ax, si                                ; 89 f0
    10485     call 0165eh                               ; e8 f8 a4
    10486     jmp short 0717ch                          ; eb 14
     10540    call 0165eh                               ; e8 b9 a4
     10541    jmp short 071bbh                          ; eb 14
    1048710542    mov bx, ax                                ; 89 c3
    1048810543    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1049110546    mov dx, 0009ch                            ; ba 9c 00
    1049210547    mov ax, strict word 00040h                ; b8 40 00
    10493     call 0169ah                               ; e8 1e a5
    10494     call 0e030h                               ; e8 b1 6e
     10548    call 0169ah                               ; e8 df a4
     10549    call 0e030h                               ; e8 72 6e
    1049510550    lea sp, [bp-002h]                         ; 8d 66 fe
    1049610551    pop si                                    ; 5e
    1049710552    pop bp                                    ; 5d
    1049810553    retn                                      ; c3
    10499     stosw                                     ; ab
    10500     jno short 0715ah                          ; 71 d2
    10501     jno short 07181h                          ; 71 f7
    10502     jno short 071bfh                          ; 71 33
    10503     jc short 07113h                           ; 72 85
    10504     jc short 0714ch                           ; 72 bc
    10505     jc short 07195h                           ; 72 03
    10506     jnc short 071f2h                          ; 73 5e
     10554    jmp far 03672h:01171h                     ; ea 71 11 72 36
     10555    jc short 0723dh                           ; 72 72
     10556    jc short 07191h                           ; 72 c4
     10557    jc short 071cah                           ; 72 fb
     10558    jc short 07213h                           ; 72 42
     10559    jnc short 07170h                          ; 73 9d
    1050710560    db  073h
    10508 _int1a_function:                             ; 0xf7195 LB 0x1d9
     10561_int1a_function:                             ; 0xf71d4 LB 0x1d9
    1050910562    push bp                                   ; 55
    1051010563    mov bp, sp                                ; 89 e5
     
    1051210565    mov al, byte [bp+013h]                    ; 8a 46 13
    1051310566    cmp AL, strict byte 007h                  ; 3c 07
    10514     jnbe short 071feh                         ; 77 5e
     10567    jnbe short 0723dh                         ; 77 5e
    1051510568    mov bl, al                                ; 88 c3
    1051610569    xor bh, bh                                ; 30 ff
    1051710570    add bx, bx                                ; 01 db
    10518     jmp word [cs:bx+07185h]                   ; 2e ff a7 85 71
     10571    jmp word [cs:bx+071c4h]                   ; 2e ff a7 c4 71
    1051910572    cli                                       ; fa
    1052010573    mov bx, 0046eh                            ; bb 6e 04
     
    1053110584    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1053210585    sti                                       ; fb
    10533     jmp short 071feh                          ; eb 2c
     10586    jmp short 0723dh                          ; eb 2c
    1053410587    cli                                       ; fa
    1053510588    mov bx, 0046eh                            ; bb 6e 04
     
    1054510598    sti                                       ; fb
    1054610599    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10547     jmp short 071feh                          ; eb 07
    10548     call 070b5h                               ; e8 bb fe
     10600    jmp short 0723dh                          ; eb 07
     10601    call 070f4h                               ; e8 bb fe
    1054910602    test ax, ax                               ; 85 c0
    10550     je short 07201h                           ; 74 03
    10551     jmp near 0722fh                           ; e9 2e 00
     10603    je short 07240h                           ; 74 03
     10604    jmp near 0726eh                           ; e9 2e 00
    1055210605    xor ax, ax                                ; 31 c0
    10553     call 016ach                               ; e8 a6 a4
     10606    call 016ach                               ; e8 67 a4
    1055410607    mov byte [bp+00fh], al                    ; 88 46 0f
    1055510608    mov ax, strict word 00002h                ; b8 02 00
    10556     call 016ach                               ; e8 9d a4
     10609    call 016ach                               ; e8 5e a4
    1055710610    mov byte [bp+010h], al                    ; 88 46 10
    1055810611    mov ax, strict word 00004h                ; b8 04 00
    10559     call 016ach                               ; e8 94 a4
     10612    call 016ach                               ; e8 55 a4
    1056010613    mov dl, al                                ; 88 c2
    1056110614    mov byte [bp+011h], al                    ; 88 46 11
    1056210615    mov ax, strict word 0000bh                ; b8 0b 00
    10563     call 016ach                               ; e8 89 a4
     10616    call 016ach                               ; e8 4a a4
    1056410617    and AL, strict byte 001h                  ; 24 01
    1056510618    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1056910622    pop bp                                    ; 5d
    1057010623    retn                                      ; c3
    10571     call 070b5h                               ; e8 7f fe
     10624    call 070f4h                               ; e8 7f fe
    1057210625    test ax, ax                               ; 85 c0
    10573     je short 0723dh                           ; 74 03
    10574     call 0708dh                               ; e8 50 fe
     10626    je short 0727ch                           ; 74 03
     10627    call 070cch                               ; e8 50 fe
    1057510628    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1057610629    xor dh, dh                                ; 30 f6
    1057710630    xor ax, ax                                ; 31 c0
    10578     call 016c7h                               ; e8 80 a4
     10631    call 016c7h                               ; e8 41 a4
    1057910632    mov dl, byte [bp+010h]                    ; 8a 56 10
    1058010633    xor dh, dh                                ; 30 f6
    1058110634    mov ax, strict word 00002h                ; b8 02 00
    10582     call 016c7h                               ; e8 75 a4
     10635    call 016c7h                               ; e8 36 a4
    1058310636    mov dl, byte [bp+011h]                    ; 8a 56 11
    1058410637    xor dh, dh                                ; 30 f6
    1058510638    mov ax, strict word 00004h                ; b8 04 00
    10586     call 016c7h                               ; e8 6a a4
     10639    call 016c7h                               ; e8 2b a4
    1058710640    mov ax, strict word 0000bh                ; b8 0b 00
    10588     call 016ach                               ; e8 49 a4
     10641    call 016ach                               ; e8 0a a4
    1058910642    mov bl, al                                ; 88 c3
    1059010643    and bl, 060h                              ; 80 e3 60
     
    1059610649    xor dh, dh                                ; 30 f6
    1059710650    mov ax, strict word 0000bh                ; b8 0b 00
    10598     call 016c7h                               ; e8 4b a4
     10651    call 016c7h                               ; e8 0c a4
    1059910652    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1060010653    mov byte [bp+012h], bl                    ; 88 5e 12
    10601     jmp short 0722fh                          ; eb aa
     10654    jmp short 0726eh                          ; eb aa
    1060210655    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10603     call 070b5h                               ; e8 29 fe
     10656    call 070f4h                               ; e8 29 fe
    1060410657    test ax, ax                               ; 85 c0
    10605     je short 07292h                           ; 74 02
    10606     jmp short 0722fh                          ; eb 9d
     10658    je short 072d1h                           ; 74 02
     10659    jmp short 0726eh                          ; eb 9d
    1060710660    mov ax, strict word 00009h                ; b8 09 00
    10608     call 016ach                               ; e8 14 a4
     10661    call 016ach                               ; e8 d5 a3
    1060910662    mov byte [bp+010h], al                    ; 88 46 10
    1061010663    mov ax, strict word 00008h                ; b8 08 00
    10611     call 016ach                               ; e8 0b a4
     10664    call 016ach                               ; e8 cc a3
    1061210665    mov byte [bp+00fh], al                    ; 88 46 0f
    1061310666    mov ax, strict word 00007h                ; b8 07 00
    10614     call 016ach                               ; e8 02 a4
     10667    call 016ach                               ; e8 c3 a3
    1061510668    mov byte [bp+00eh], al                    ; 88 46 0e
    1061610669    mov ax, strict word 00032h                ; b8 32 00
    10617     call 016ach                               ; e8 f9 a3
     10670    call 016ach                               ; e8 ba a3
    1061810671    mov byte [bp+011h], al                    ; 88 46 11
    1061910672    mov byte [bp+012h], al                    ; 88 46 12
    10620     jmp near 0722fh                           ; e9 73 ff
    10621     call 070b5h                               ; e8 f6 fd
     10673    jmp near 0726eh                           ; e9 73 ff
     10674    call 070f4h                               ; e8 f6 fd
    1062210675    test ax, ax                               ; 85 c0
    10623     je short 072c9h                           ; 74 06
    10624     call 0708dh                               ; e8 c7 fd
    10625     jmp near 0722fh                           ; e9 66 ff
     10676    je short 07308h                           ; 74 06
     10677    call 070cch                               ; e8 c7 fd
     10678    jmp near 0726eh                           ; e9 66 ff
    1062610679    mov dl, byte [bp+010h]                    ; 8a 56 10
    1062710680    xor dh, dh                                ; 30 f6
    1062810681    mov ax, strict word 00009h                ; b8 09 00
    10629     call 016c7h                               ; e8 f3 a3
     10682    call 016c7h                               ; e8 b4 a3
    1063010683    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1063110684    xor dh, dh                                ; 30 f6
    1063210685    mov ax, strict word 00008h                ; b8 08 00
    10633     call 016c7h                               ; e8 e8 a3
     10686    call 016c7h                               ; e8 a9 a3
    1063410687    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1063510688    xor dh, dh                                ; 30 f6
    1063610689    mov ax, strict word 00007h                ; b8 07 00
    10637     call 016c7h                               ; e8 dd a3
     10690    call 016c7h                               ; e8 9e a3
    1063810691    mov dl, byte [bp+011h]                    ; 8a 56 11
    1063910692    xor dh, dh                                ; 30 f6
    1064010693    mov ax, strict word 00032h                ; b8 32 00
    10641     call 016c7h                               ; e8 d2 a3
     10694    call 016c7h                               ; e8 93 a3
    1064210695    mov ax, strict word 0000bh                ; b8 0b 00
    10643     call 016ach                               ; e8 b1 a3
     10696    call 016ach                               ; e8 72 a3
    1064410697    mov bl, al                                ; 88 c3
    1064510698    and bl, 07fh                              ; 80 e3 7f
    10646     jmp near 07272h                           ; e9 6f ff
     10699    jmp near 072b1h                           ; e9 6f ff
    1064710700    mov ax, strict word 0000bh                ; b8 0b 00
    10648     call 016ach                               ; e8 a3 a3
     10701    call 016ach                               ; e8 64 a3
    1064910702    mov bl, al                                ; 88 c3
    1065010703    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1065110704    test AL, strict byte 020h                 ; a8 20
    10652     je short 07317h                           ; 74 03
    10653     jmp near 0722fh                           ; e9 18 ff
    10654     call 070b5h                               ; e8 9b fd
     10705    je short 07356h                           ; 74 03
     10706    jmp near 0726eh                           ; e9 18 ff
     10707    call 070f4h                               ; e8 9b fd
    1065510708    test ax, ax                               ; 85 c0
    10656     je short 07321h                           ; 74 03
    10657     call 0708dh                               ; e8 6c fd
     10709    je short 07360h                           ; 74 03
     10710    call 070cch                               ; e8 6c fd
    1065810711    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1065910712    xor dh, dh                                ; 30 f6
    1066010713    mov ax, strict word 00001h                ; b8 01 00
    10661     call 016c7h                               ; e8 9b a3
     10714    call 016c7h                               ; e8 5c a3
    1066210715    mov dl, byte [bp+010h]                    ; 8a 56 10
    1066310716    xor dh, dh                                ; 30 f6
    1066410717    mov ax, strict word 00003h                ; b8 03 00
    10665     call 016c7h                               ; e8 90 a3
     10718    call 016c7h                               ; e8 51 a3
    1066610719    mov dl, byte [bp+011h]                    ; 8a 56 11
    1066710720    xor dh, dh                                ; 30 f6
    1066810721    mov ax, strict word 00005h                ; b8 05 00
    10669     call 016c7h                               ; e8 85 a3
     10722    call 016c7h                               ; e8 46 a3
    1067010723    mov dx, 000a1h                            ; ba a1 00
    1067110724    in AL, DX                                 ; ec
     
    1067910732    xor dh, dh                                ; 30 f6
    1068010733    mov ax, strict word 0000bh                ; b8 0b 00
    10681     call 016c7h                               ; e8 6c a3
    10682     jmp near 0722fh                           ; e9 d1 fe
     10734    call 016c7h                               ; e8 2d a3
     10735    jmp near 0726eh                           ; e9 d1 fe
    1068310736    mov ax, strict word 0000bh                ; b8 0b 00
    10684     call 016ach                               ; e8 48 a3
     10737    call 016ach                               ; e8 09 a3
    1068510738    mov bl, al                                ; 88 c3
    1068610739    mov dl, al                                ; 88 c2
    1068710740    and dl, 057h                              ; 80 e2 57
    10688     jmp near 07274h                           ; e9 06 ff
    10689 send_to_mouse_ctrl_:                         ; 0xf736e LB 0x34
     10741    jmp near 072b3h                           ; e9 06 ff
     10742send_to_mouse_ctrl_:                         ; 0xf73ad LB 0x34
    1069010743    push bp                                   ; 55
    1069110744    mov bp, sp                                ; 89 e5
     
    1069810751    ; sub ah, ah                                ; 2a e4
    1069910752    test AL, strict byte 002h                 ; a8 02
    10700     je short 0738dh                           ; 74 0e
     10753    je short 073cch                           ; 74 0e
    1070110754    push 008eeh                               ; 68 ee 08
    10702     push 0116ch                               ; 68 6c 11
     10755    push 01168h                               ; 68 68 11
    1070310756    push strict byte 00007h                   ; 6a 07
    10704     call 01966h                               ; e8 dc a5
     10757    call 01966h                               ; e8 9d a5
    1070510758    add sp, strict byte 00006h                ; 83 c4 06
    1070610759    mov AL, strict byte 0d4h                  ; b0 d4
     
    1071610769    pop bp                                    ; 5d
    1071710770    retn                                      ; c3
    10718 get_mouse_data_:                             ; 0xf73a2 LB 0x5d
     10771get_mouse_data_:                             ; 0xf73e1 LB 0x5d
    1071910772    push bp                                   ; 55
    1072010773    mov bp, sp                                ; 89 e5
     
    1073110784    and ax, strict word 00021h                ; 25 21 00
    1073210785    cmp ax, strict word 00021h                ; 3d 21 00
    10733     je short 073e5h                           ; 74 28
     10786    je short 07424h                           ; 74 28
    1073410787    test cx, cx                               ; 85 c9
    10735     je short 073e5h                           ; 74 24
     10788    je short 07424h                           ; 74 24
    1073610789    mov dx, strict word 00061h                ; ba 61 00
    1073710790    in AL, DX                                 ; ec
     
    1075010803    xor ah, ah                                ; 30 e4
    1075110804    cmp dx, ax                                ; 39 c2
    10752     je short 073cch                           ; 74 ea
     10805    je short 0740bh                           ; 74 ea
    1075310806    dec cx                                    ; 49
    10754     jmp short 073afh                          ; eb ca
     10807    jmp short 073eeh                          ; eb ca
    1075510808    test cx, cx                               ; 85 c9
    10756     jne short 073edh                          ; 75 04
     10809    jne short 0742ch                          ; 75 04
    1075710810    mov AL, strict byte 001h                  ; b0 01
    10758     jmp short 073f8h                          ; eb 0b
     10811    jmp short 07437h                          ; eb 0b
    1075910812    mov dx, strict word 00060h                ; ba 60 00
    1076010813    in AL, DX                                 ; ec
     
    1076810821    pop bp                                    ; 5d
    1076910822    retn                                      ; c3
    10770 set_kbd_command_byte_:                       ; 0xf73ff LB 0x32
     10823set_kbd_command_byte_:                       ; 0xf743e LB 0x32
    1077110824    push bp                                   ; 55
    1077210825    mov bp, sp                                ; 89 e5
     
    1077910832    ; sub ah, ah                                ; 2a e4
    1078010833    test AL, strict byte 002h                 ; a8 02
    10781     je short 0741eh                           ; 74 0e
     10834    je short 0745dh                           ; 74 0e
    1078210835    push 008f8h                               ; 68 f8 08
    10783     push 0116ch                               ; 68 6c 11
     10836    push 01168h                               ; 68 68 11
    1078410837    push strict byte 00007h                   ; 6a 07
    10785     call 01966h                               ; e8 4b a5
     10838    call 01966h                               ; e8 0c a5
    1078610839    add sp, strict byte 00006h                ; 83 c4 06
    1078710840    mov AL, strict byte 060h                  ; b0 60
     
    1079610849    pop bp                                    ; 5d
    1079710850    retn                                      ; c3
    10798 _int74_function:                             ; 0xf7431 LB 0xd2
     10851_int74_function:                             ; 0xf7470 LB 0xd2
    1079910852    push bp                                   ; 55
    1080010853    mov bp, sp                                ; 89 e5
     
    1080210855    mov dx, strict word 0000eh                ; ba 0e 00
    1080310856    mov ax, strict word 00040h                ; b8 40 00
    10804     call 0166ch                               ; e8 2c a2
     10857    call 0166ch                               ; e8 ed a1
    1080510858    mov cx, ax                                ; 89 c1
    1080610859    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1081110864    and AL, strict byte 021h                  ; 24 21
    1081210865    cmp AL, strict byte 021h                  ; 3c 21
    10813     jne short 07475h                          ; 75 22
     10866    jne short 074b4h                          ; 75 22
    1081410867    mov dx, strict word 00060h                ; ba 60 00
    1081510868    in AL, DX                                 ; ec
     
    1081910872    mov dx, strict word 00026h                ; ba 26 00
    1082010873    mov ax, cx                                ; 89 c8
    10821     call 01650h                               ; e8 ed a1
     10874    call 01650h                               ; e8 ae a1
    1082210875    mov byte [bp-002h], al                    ; 88 46 fe
    1082310876    mov dx, strict word 00027h                ; ba 27 00
    1082410877    mov ax, cx                                ; 89 c8
    10825     call 01650h                               ; e8 e2 a1
     10878    call 01650h                               ; e8 a3 a1
    1082610879    mov byte [bp-006h], al                    ; 88 46 fa
    1082710880    test AL, strict byte 080h                 ; a8 80
    10828     jne short 07478h                          ; 75 03
    10829     jmp near 074efh                           ; e9 77 00
     10881    jne short 074b7h                          ; 75 03
     10882    jmp near 0752eh                           ; e9 77 00
    1083010883    mov al, byte [bp-006h]                    ; 8a 46 fa
    1083110884    and AL, strict byte 007h                  ; 24 07
     
    1084110894    add dx, strict byte 00028h                ; 83 c2 28
    1084210895    mov ax, cx                                ; 89 c8
    10843     call 0165eh                               ; e8 c3 a1
     10896    call 0165eh                               ; e8 84 a1
    1084410897    mov al, byte [bp-008h]                    ; 8a 46 f8
    1084510898    cmp al, byte [bp-004h]                    ; 3a 46 fc
    10846     jc short 074dfh                           ; 72 3c
     10899    jc short 0751eh                           ; 72 3c
    1084710900    mov dx, strict word 00028h                ; ba 28 00
    1084810901    mov ax, cx                                ; 89 c8
    10849     call 01650h                               ; e8 a5 a1
     10902    call 01650h                               ; e8 66 a1
    1085010903    xor ah, ah                                ; 30 e4
    1085110904    mov word [bp+00ch], ax                    ; 89 46 0c
    1085210905    mov dx, strict word 00029h                ; ba 29 00
    1085310906    mov ax, cx                                ; 89 c8
    10854     call 01650h                               ; e8 98 a1
     10907    call 01650h                               ; e8 59 a1
    1085510908    xor ah, ah                                ; 30 e4
    1085610909    mov word [bp+00ah], ax                    ; 89 46 0a
    1085710910    mov dx, strict word 0002ah                ; ba 2a 00
    1085810911    mov ax, cx                                ; 89 c8
    10859     call 01650h                               ; e8 8b a1
     10912    call 01650h                               ; e8 4c a1
    1086010913    xor ah, ah                                ; 30 e4
    1086110914    mov word [bp+008h], ax                    ; 89 46 08
     
    1086410917    mov byte [bp-002h], ah                    ; 88 66 fe
    1086510918    test byte [bp-006h], 080h                 ; f6 46 fa 80
    10866     je short 074e2h                           ; 74 0a
     10919    je short 07521h                           ; 74 0a
    1086710920    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10868     jmp short 074e2h                          ; eb 03
     10921    jmp short 07521h                          ; eb 03
    1086910922    inc byte [bp-002h]                        ; fe 46 fe
    1087010923    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1087210925    mov dx, strict word 00026h                ; ba 26 00
    1087310926    mov ax, cx                                ; 89 c8
    10874     call 0165eh                               ; e8 6f a1
     10927    call 0165eh                               ; e8 30 a1
    1087510928    mov sp, bp                                ; 89 ec
    1087610929    pop bp                                    ; 5d
    1087710930    retn                                      ; c3
    10878     inc si                                    ; 46
    10879     jne short 074b8h                          ; 75 c2
    10880     jne short 07537h                          ; 75 3f
    10881     jbe short 074ceh                          ; 76 d4
    10882     jbe short 0753ch                          ; 76 40
    10883     jnbe short 0748bh                         ; 77 8d
    10884     jne short 07568h                          ; 75 68
    10885     jnbe short 0752fh                         ; 77 2d
     10931    test word [di+001h], si                   ; 85 75 01
     10932    jbe short 075b5h                          ; 76 7e
     10933    jbe short 0754ch                          ; 76 13
     10934    jnbe short 075bah                         ; 77 7f
     10935    jnbe short 07509h                         ; 77 cc
     10936    jne short 074e6h                          ; 75 a7
     10937    jnbe short 075adh                         ; 77 6c
    1088610938    db  078h
    10887 _int15_function_mouse:                       ; 0xf7503 LB 0x38d
     10939_int15_function_mouse:                       ; 0xf7542 LB 0x38d
    1088810940    push bp                                   ; 55
    1088910941    mov bp, sp                                ; 89 e5
     
    1089210944    mov dx, strict word 0000eh                ; ba 0e 00
    1089310945    mov ax, strict word 00040h                ; b8 40 00
    10894     call 0166ch                               ; e8 59 a1
     10946    call 0166ch                               ; e8 1a a1
    1089510947    mov cx, ax                                ; 89 c1
    1089610948    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10897     jbe short 07526h                          ; 76 0b
     10949    jbe short 07565h                          ; 76 0b
    1089810950    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1089910951    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10900     jmp near 0788ah                           ; e9 64 03
     10952    jmp near 078c9h                           ; e9 64 03
    1090110953    mov ax, strict word 00065h                ; b8 65 00
    10902     call 073ffh                               ; e8 d3 fe
     10954    call 0743eh                               ; e8 d3 fe
    1090310955    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1090410956    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1090510957    mov al, byte [bp+012h]                    ; 8a 46 12
    1090610958    cmp AL, strict byte 007h                  ; 3c 07
    10907     jnbe short 0759bh                         ; 77 60
     10959    jnbe short 075dah                         ; 77 60
    1090810960    xor ah, ah                                ; 30 e4
    1090910961    mov si, ax                                ; 89 c6
    1091010962    add si, ax                                ; 01 c6
    10911     jmp word [cs:si+074f3h]                   ; 2e ff a4 f3 74
     10963    jmp word [cs:si+07532h]                   ; 2e ff a4 32 75
    1091210964    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10913     jnbe short 0759eh                         ; 77 52
     10965    jnbe short 075ddh                         ; 77 52
    1091410966    mov dx, strict word 00027h                ; ba 27 00
    1091510967    mov ax, cx                                ; 89 c8
    10916     call 01650h                               ; e8 fc a0
     10968    call 01650h                               ; e8 bd a0
    1091710969    test AL, strict byte 080h                 ; a8 80
    10918     jne short 07563h                          ; 75 0b
     10970    jne short 075a2h                          ; 75 0b
    1091910971    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1092010972    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10921     jmp near 07884h                           ; e9 21 03
     10973    jmp near 078c3h                           ; e9 21 03
    1092210974    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    10923     jne short 0756dh                          ; 75 04
     10975    jne short 075ach                          ; 75 04
    1092410976    mov AL, strict byte 0f5h                  ; b0 f5
    10925     jmp short 0756fh                          ; eb 02
     10977    jmp short 075aeh                          ; eb 02
    1092610978    mov AL, strict byte 0f4h                  ; b0 f4
    1092710979    xor ah, ah                                ; 30 e4
    10928     call 0736eh                               ; e8 fa fd
     10980    call 073adh                               ; e8 fa fd
    1092910981    test al, al                               ; 84 c0
    10930     jne short 075a1h                          ; 75 29
     10982    jne short 075e0h                          ; 75 29
    1093110983    mov dx, ss                                ; 8c d2
    1093210984    lea ax, [bp-008h]                         ; 8d 46 f8
    10933     call 073a2h                               ; e8 22 fe
     10985    call 073e1h                               ; e8 22 fe
    1093410986    test al, al                               ; 84 c0
    10935     je short 0758ah                           ; 74 06
     10987    je short 075c9h                           ; 74 06
    1093610988    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10937     jne short 075a1h                          ; 75 17
    10938     jmp near 07884h                           ; e9 f7 02
     10989    jne short 075e0h                          ; 75 17
     10990    jmp near 078c3h                           ; e9 f7 02
    1093910991    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1094010992    cmp AL, strict byte 001h                  ; 3c 01
    10941     jc short 07598h                           ; 72 04
     10993    jc short 075d7h                           ; 72 04
    1094210994    cmp AL, strict byte 008h                  ; 3c 08
    10943     jbe short 075a4h                          ; 76 0c
    10944     jmp near 07736h                           ; e9 9b 01
    10945     jmp near 07871h                           ; e9 d3 02
    10946     jmp near 0787ch                           ; e9 db 02
    10947     jmp near 07808h                           ; e9 64 02
     10995    jbe short 075e3h                          ; 76 0c
     10996    jmp near 07775h                           ; e9 9b 01
     10997    jmp near 078b0h                           ; e9 d3 02
     10998    jmp near 078bbh                           ; e9 db 02
     10999    jmp near 07847h                           ; e9 64 02
    1094811000    mov dx, strict word 00027h                ; ba 27 00
    1094911001    mov ax, cx                                ; 89 c8
    10950     call 01650h                               ; e8 a4 a0
     11002    call 01650h                               ; e8 65 a0
    1095111003    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1095211004    db  0feh, 0cch
     
    1095811010    mov dx, strict word 00027h                ; ba 27 00
    1095911011    mov ax, cx                                ; 89 c8
    10960     call 0165eh                               ; e8 9c a0
     11012    call 0165eh                               ; e8 5d a0
    1096111013    mov dx, strict word 00026h                ; ba 26 00
    1096211014    mov ax, cx                                ; 89 c8
    10963     call 01650h                               ; e8 86 a0
     11015    call 01650h                               ; e8 47 a0
    1096411016    mov bl, al                                ; 88 c3
    1096511017    and bl, 0f8h                              ; 80 e3 f8
     
    1096711019    mov dx, strict word 00026h                ; ba 26 00
    1096811020    mov ax, cx                                ; 89 c8
    10969     call 0165eh                               ; e8 85 a0
     11021    call 0165eh                               ; e8 46 a0
    1097011022    mov ax, 000ffh                            ; b8 ff 00
    10971     call 0736eh                               ; e8 8f fd
     11023    call 073adh                               ; e8 8f fd
    1097211024    test al, al                               ; 84 c0
    10973     jne short 075a1h                          ; 75 be
     11025    jne short 075e0h                          ; 75 be
    1097411026    mov dx, ss                                ; 8c d2
    1097511027    lea ax, [bp-004h]                         ; 8d 46 fc
    10976     call 073a2h                               ; e8 b7 fd
     11028    call 073e1h                               ; e8 b7 fd
    1097711029    mov cl, al                                ; 88 c1
    1097811030    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10979     jne short 075fdh                          ; 75 0a
     11031    jne short 0763ch                          ; 75 0a
    1098011032    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1098111033    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10982     jmp short 0758ah                          ; eb 8d
     11034    jmp short 075c9h                          ; eb 8d
    1098311035    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10984     je short 07614h                           ; 74 11
     11036    je short 07653h                           ; 74 11
    1098511037    mov al, byte [bp-004h]                    ; 8a 46 fc
    1098611038    xor ah, ah                                ; 30 e4
     
    1098811040    push 00903h                               ; 68 03 09
    1098911041    push strict byte 00007h                   ; 6a 07
    10990     call 01966h                               ; e8 55 a3
     11042    call 01966h                               ; e8 16 a3
    1099111043    add sp, strict byte 00006h                ; 83 c4 06
    1099211044    test cl, cl                               ; 84 c9
    10993     jne short 075a1h                          ; 75 89
     11045    jne short 075e0h                          ; 75 89
    1099411046    mov dx, ss                                ; 8c d2
    1099511047    lea ax, [bp-008h]                         ; 8d 46 f8
    10996     call 073a2h                               ; e8 82 fd
     11048    call 073e1h                               ; e8 82 fd
    1099711049    test al, al                               ; 84 c0
    10998     jne short 0767ah                          ; 75 56
     11050    jne short 076b9h                          ; 75 56
    1099911051    mov dx, ss                                ; 8c d2
    1100011052    lea ax, [bp-006h]                         ; 8d 46 fa
    11001     call 073a2h                               ; e8 76 fd
     11053    call 073e1h                               ; e8 76 fd
    1100211054    test al, al                               ; 84 c0
    11003     jne short 0767ah                          ; 75 4a
     11055    jne short 076b9h                          ; 75 4a
    1100411056    mov al, byte [bp-008h]                    ; 8a 46 f8
    1100511057    mov byte [bp+00ch], al                    ; 88 46 0c
    1100611058    mov al, byte [bp-006h]                    ; 8a 46 fa
    1100711059    mov byte [bp+00dh], al                    ; 88 46 0d
    11008     jmp near 07884h                           ; e9 45 02
     11060    jmp near 078c3h                           ; e9 45 02
    1100911061    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1101011062    cmp AL, strict byte 003h                  ; 3c 03
    11011     jc short 07656h                           ; 72 10
    11012     jbe short 07674h                          ; 76 2c
     11063    jc short 07695h                           ; 72 10
     11064    jbe short 076b3h                          ; 76 2c
    1101311065    cmp AL, strict byte 006h                  ; 3c 06
    11014     je short 07689h                           ; 74 3d
     11066    je short 076c8h                           ; 74 3d
    1101511067    cmp AL, strict byte 005h                  ; 3c 05
    11016     je short 07683h                           ; 74 33
     11068    je short 076c2h                           ; 74 33
    1101711069    cmp AL, strict byte 004h                  ; 3c 04
    11018     je short 0767dh                           ; 74 29
    11019     jmp short 0768fh                          ; eb 39
     11070    je short 076bch                           ; 74 29
     11071    jmp short 076ceh                          ; eb 39
    1102011072    cmp AL, strict byte 002h                  ; 3c 02
    11021     je short 0766eh                           ; 74 14
     11073    je short 076adh                           ; 74 14
    1102211074    cmp AL, strict byte 001h                  ; 3c 01
    11023     je short 07668h                           ; 74 0a
     11075    je short 076a7h                           ; 74 0a
    1102411076    test al, al                               ; 84 c0
    11025     jne short 0768fh                          ; 75 2d
     11077    jne short 076ceh                          ; 75 2d
    1102611078    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    11027     jmp short 07693h                          ; eb 2b
     11079    jmp short 076d2h                          ; eb 2b
    1102811080    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    11029     jmp short 07693h                          ; eb 25
     11081    jmp short 076d2h                          ; eb 25
    1103011082    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    11031     jmp short 07693h                          ; eb 1f
     11083    jmp short 076d2h                          ; eb 1f
    1103211084    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    11033     jmp short 07693h                          ; eb 19
    11034     jmp near 07808h                           ; e9 8b 01
     11085    jmp short 076d2h                          ; eb 19
     11086    jmp near 07847h                           ; e9 8b 01
    1103511087    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    11036     jmp short 07693h                          ; eb 10
     11088    jmp short 076d2h                          ; eb 10
    1103711089    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    11038     jmp short 07693h                          ; eb 0a
     11090    jmp short 076d2h                          ; eb 0a
    1103911091    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    11040     jmp short 07693h                          ; eb 04
     11092    jmp short 076d2h                          ; eb 04
    1104111093    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1104211094    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    11043     jbe short 076c9h                          ; 76 30
     11095    jbe short 07708h                          ; 76 30
    1104411096    mov ax, 000f3h                            ; b8 f3 00
    11045     call 0736eh                               ; e8 cf fc
     11097    call 073adh                               ; e8 cf fc
    1104611098    test al, al                               ; 84 c0
    11047     jne short 076beh                          ; 75 1b
     11099    jne short 076fdh                          ; 75 1b
    1104811100    mov dx, ss                                ; 8c d2
    1104911101    lea ax, [bp-006h]                         ; 8d 46 fa
    11050     call 073a2h                               ; e8 f7 fc
     11102    call 073e1h                               ; e8 f7 fc
    1105111103    mov al, byte [bp-008h]                    ; 8a 46 f8
    1105211104    xor ah, ah                                ; 30 e4
    11053     call 0736eh                               ; e8 bb fc
     11105    call 073adh                               ; e8 bb fc
    1105411106    mov dx, ss                                ; 8c d2
    1105511107    lea ax, [bp-006h]                         ; 8d 46 fa
    11056     call 073a2h                               ; e8 e7 fc
    11057     jmp near 07884h                           ; e9 c6 01
     11108    call 073e1h                               ; e8 e7 fc
     11109    jmp near 078c3h                           ; e9 c6 01
    1105811110    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1105911111    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11060     jmp near 07884h                           ; e9 bb 01
     11112    jmp near 078c3h                           ; e9 bb 01
    1106111113    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1106211114    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11063     jmp near 07884h                           ; e9 b0 01
     11115    jmp near 078c3h                           ; e9 b0 01
    1106411116    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11065     jnc short 07736h                          ; 73 5c
     11117    jnc short 07775h                          ; 73 5c
    1106611118    mov ax, 000e8h                            ; b8 e8 00
    11067     call 0736eh                               ; e8 8e fc
     11119    call 073adh                               ; e8 8e fc
    1106811120    test al, al                               ; 84 c0
    11069     jne short 0772ch                          ; 75 48
     11121    jne short 0776bh                          ; 75 48
    1107011122    mov dx, ss                                ; 8c d2
    1107111123    lea ax, [bp-008h]                         ; 8d 46 f8
    11072     call 073a2h                               ; e8 b6 fc
     11124    call 073e1h                               ; e8 b6 fc
    1107311125    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11074     je short 07703h                           ; 74 11
     11126    je short 07742h                           ; 74 11
    1107511127    mov al, byte [bp-008h]                    ; 8a 46 f8
    1107611128    xor ah, ah                                ; 30 e4
     
    1107811130    push 0092eh                               ; 68 2e 09
    1107911131    push strict byte 00007h                   ; 6a 07
    11080     call 01966h                               ; e8 66 a2
     11132    call 01966h                               ; e8 27 a2
    1108111133    add sp, strict byte 00006h                ; 83 c4 06
    1108211134    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1108311135    xor ah, ah                                ; 30 e4
    11084     call 0736eh                               ; e8 63 fc
     11136    call 073adh                               ; e8 63 fc
    1108511137    mov dx, ss                                ; 8c d2
    1108611138    lea ax, [bp-008h]                         ; 8d 46 f8
    11087     call 073a2h                               ; e8 8f fc
     11139    call 073e1h                               ; e8 8f fc
    1108811140    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11089     je short 07765h                           ; 74 4c
     11141    je short 077a4h                           ; 74 4c
    1109011142    mov al, byte [bp-008h]                    ; 8a 46 f8
    1109111143    xor ah, ah                                ; 30 e4
     
    1109311145    push 0092eh                               ; 68 2e 09
    1109411146    push strict byte 00007h                   ; 6a 07
    11095     call 01966h                               ; e8 3f a2
     11147    call 01966h                               ; e8 00 a2
    1109611148    add sp, strict byte 00006h                ; 83 c4 06
    11097     jmp short 07765h                          ; eb 39
     11149    jmp short 077a4h                          ; eb 39
    1109811150    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109911151    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11100     jmp short 07765h                          ; eb 2f
     11152    jmp short 077a4h                          ; eb 2f
    1110111153    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110211154    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11103     jmp short 07765h                          ; eb 25
     11155    jmp short 077a4h                          ; eb 25
    1110411156    mov ax, 000f2h                            ; b8 f2 00
    11105     call 0736eh                               ; e8 28 fc
     11157    call 073adh                               ; e8 28 fc
    1110611158    test al, al                               ; 84 c0
    11107     jne short 0775dh                          ; 75 13
     11159    jne short 0779ch                          ; 75 13
    1110811160    mov dx, ss                                ; 8c d2
    1110911161    lea ax, [bp-008h]                         ; 8d 46 f8
    11110     call 073a2h                               ; e8 50 fc
     11162    call 073e1h                               ; e8 50 fc
    1111111163    mov dx, ss                                ; 8c d2
    1111211164    lea ax, [bp-006h]                         ; 8d 46 fa
    11113     call 073a2h                               ; e8 48 fc
    11114     jmp near 07636h                           ; e9 d9 fe
     11165    call 073e1h                               ; e8 48 fc
     11166    jmp near 07675h                           ; e9 d9 fe
    1111511167    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1111611168    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11117     jmp near 07884h                           ; e9 1c 01
     11169    jmp near 078c3h                           ; e9 1c 01
    1111811170    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1111911171    test al, al                               ; 84 c0
    11120     jbe short 07776h                          ; 76 07
     11172    jbe short 077b5h                          ; 76 07
    1112111173    cmp AL, strict byte 002h                  ; 3c 02
    11122     jbe short 077ddh                          ; 76 6a
    11123     jmp near 07812h                           ; e9 9c 00
     11174    jbe short 0781ch                          ; 76 6a
     11175    jmp near 07851h                           ; e9 9c 00
    1112411176    mov ax, 000e9h                            ; b8 e9 00
    11125     call 0736eh                               ; e8 f2 fb
     11177    call 073adh                               ; e8 f2 fb
    1112611178    test al, al                               ; 84 c0
    11127     jne short 077e6h                          ; 75 66
     11179    jne short 07825h                          ; 75 66
    1112811180    mov dx, ss                                ; 8c d2
    1112911181    lea ax, [bp-008h]                         ; 8d 46 f8
    11130     call 073a2h                               ; e8 1a fc
     11182    call 073e1h                               ; e8 1a fc
    1113111183    mov cl, al                                ; 88 c1
    1113211184    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11133     je short 077a1h                           ; 74 11
     11185    je short 077e0h                           ; 74 11
    1113411186    mov al, byte [bp-008h]                    ; 8a 46 f8
    1113511187    xor ah, ah                                ; 30 e4
     
    1113711189    push 0092eh                               ; 68 2e 09
    1113811190    push strict byte 00007h                   ; 6a 07
    11139     call 01966h                               ; e8 c8 a1
     11191    call 01966h                               ; e8 89 a1
    1114011192    add sp, strict byte 00006h                ; 83 c4 06
    1114111193    test cl, cl                               ; 84 c9
    11142     jne short 07808h                          ; 75 63
     11194    jne short 07847h                          ; 75 63
    1114311195    mov dx, ss                                ; 8c d2
    1114411196    lea ax, [bp-008h]                         ; 8d 46 f8
    11145     call 073a2h                               ; e8 f5 fb
     11197    call 073e1h                               ; e8 f5 fb
    1114611198    test al, al                               ; 84 c0
    11147     jne short 07808h                          ; 75 57
     11199    jne short 07847h                          ; 75 57
    1114811200    mov dx, ss                                ; 8c d2
    1114911201    lea ax, [bp-006h]                         ; 8d 46 fa
    11150     call 073a2h                               ; e8 e9 fb
     11202    call 073e1h                               ; e8 e9 fb
    1115111203    test al, al                               ; 84 c0
    11152     jne short 07808h                          ; 75 4b
     11204    jne short 07847h                          ; 75 4b
    1115311205    mov dx, ss                                ; 8c d2
    1115411206    lea ax, [bp-004h]                         ; 8d 46 fc
    11155     call 073a2h                               ; e8 dd fb
     11207    call 073e1h                               ; e8 dd fb
    1115611208    test al, al                               ; 84 c0
    11157     jne short 07808h                          ; 75 3f
     11209    jne short 07847h                          ; 75 3f
    1115811210    mov al, byte [bp-008h]                    ; 8a 46 f8
    1115911211    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1116211214    mov al, byte [bp-004h]                    ; 8a 46 fc
    1116311215    mov byte [bp+00eh], al                    ; 88 46 0e
    11164     jmp short 07765h                          ; eb 88
     11216    jmp short 077a4h                          ; eb 88
    1116511217    cmp AL, strict byte 001h                  ; 3c 01
    11166     jne short 077e8h                          ; 75 07
     11218    jne short 07827h                          ; 75 07
    1116711219    mov ax, 000e6h                            ; b8 e6 00
    11168     jmp short 077ebh                          ; eb 05
    11169     jmp short 07808h                          ; eb 20
     11220    jmp short 0782ah                          ; eb 05
     11221    jmp short 07847h                          ; eb 20
    1117011222    mov ax, 000e7h                            ; b8 e7 00
    11171     call 0736eh                               ; e8 80 fb
     11223    call 073adh                               ; e8 80 fb
    1117211224    mov cl, al                                ; 88 c1
    1117311225    test cl, cl                               ; 84 c9
    11174     jne short 07804h                          ; 75 10
     11226    jne short 07843h                          ; 75 10
    1117511227    mov dx, ss                                ; 8c d2
    1117611228    lea ax, [bp-008h]                         ; 8d 46 f8
    11177     call 073a2h                               ; e8 a6 fb
     11229    call 073e1h                               ; e8 a6 fb
    1117811230    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11179     je short 07804h                           ; 74 02
     11231    je short 07843h                           ; 74 02
    1118011232    mov CL, strict byte 001h                  ; b1 01
    1118111233    test cl, cl                               ; 84 c9
    11182     je short 0786fh                           ; 74 67
     11234    je short 078aeh                           ; 74 67
    1118311235    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1118411236    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11185     jmp short 0786fh                          ; eb 5d
     11237    jmp short 078aeh                          ; eb 5d
    1118611238    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1118711239    xor ah, ah                                ; 30 e4
     
    1118911241    push 0095ah                               ; 68 5a 09
    1119011242    push strict byte 00007h                   ; 6a 07
    11191     call 01966h                               ; e8 46 a1
     11243    call 01966h                               ; e8 07 a1
    1119211244    add sp, strict byte 00006h                ; 83 c4 06
    1119311245    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1119411246    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11195     jmp short 07884h                          ; eb 57
     11247    jmp short 078c3h                          ; eb 57
    1119611248    mov si, word [bp+00ch]                    ; 8b 76 0c
    1119711249    mov bx, si                                ; 89 f3
    1119811250    mov dx, strict word 00022h                ; ba 22 00
    1119911251    mov ax, cx                                ; 89 c8
    11200     call 0167ah                               ; e8 40 9e
     11252    call 0167ah                               ; e8 01 9e
    1120111253    mov bx, word [bp+014h]                    ; 8b 5e 14
    1120211254    mov dx, strict word 00024h                ; ba 24 00
    1120311255    mov ax, cx                                ; 89 c8
    11204     call 0167ah                               ; e8 35 9e
     11256    call 0167ah                               ; e8 f6 9d
    1120511257    mov dx, strict word 00027h                ; ba 27 00
    1120611258    mov ax, cx                                ; 89 c8
    11207     call 01650h                               ; e8 03 9e
     11259    call 01650h                               ; e8 c4 9d
    1120811260    mov ah, al                                ; 88 c4
    1120911261    test si, si                               ; 85 f6
    11210     jne short 07861h                          ; 75 0e
     11262    jne short 078a0h                          ; 75 0e
    1121111263    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11212     jne short 07861h                          ; 75 08
     11264    jne short 078a0h                          ; 75 08
    1121311265    test AL, strict byte 080h                 ; a8 80
    11214     je short 07863h                           ; 74 06
     11266    je short 078a2h                           ; 74 06
    1121511267    and AL, strict byte 07fh                  ; 24 7f
    11216     jmp short 07863h                          ; eb 02
     11268    jmp short 078a2h                          ; eb 02
    1121711269    or AL, strict byte 080h                   ; 0c 80
    1121811270    mov bl, al                                ; 88 c3
     
    1122011272    mov dx, strict word 00027h                ; ba 27 00
    1122111273    mov ax, cx                                ; 89 c8
    11222     call 0165eh                               ; e8 ef 9d
    11223     jmp short 07884h                          ; eb 13
     11274    call 0165eh                               ; e8 b0 9d
     11275    jmp short 078c3h                          ; eb 13
    1122411276    push 00974h                               ; 68 74 09
    1122511277    push strict byte 00007h                   ; 6a 07
    11226     call 01966h                               ; e8 ed a0
     11278    call 01966h                               ; e8 ae a0
    1122711279    add sp, strict byte 00004h                ; 83 c4 04
    1122811280    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1122911281    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1123011282    mov ax, strict word 00047h                ; b8 47 00
    11231     call 073ffh                               ; e8 75 fb
     11283    call 0743eh                               ; e8 75 fb
    1123211284    lea sp, [bp-002h]                         ; 8d 66 fe
    1123311285    pop si                                    ; 5e
    1123411286    pop bp                                    ; 5d
    1123511287    retn                                      ; c3
    11236 _int17_function:                             ; 0xf7890 LB 0xaf
     11288_int17_function:                             ; 0xf78cf LB 0xaf
    1123711289    push bp                                   ; 55
    1123811290    mov bp, sp                                ; 89 e5
     
    1124411296    add dx, strict byte 00008h                ; 83 c2 08
    1124511297    mov ax, strict word 00040h                ; b8 40 00
    11246     call 0166ch                               ; e8 c8 9d
     11298    call 0166ch                               ; e8 89 9d
    1124711299    mov bx, ax                                ; 89 c3
    1124811300    mov si, ax                                ; 89 c6
    1124911301    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11250     jnc short 078bah                          ; 73 0c
     11302    jnc short 078f9h                          ; 73 0c
    1125111303    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1125211304    cmp ax, strict word 00003h                ; 3d 03 00
    11253     jnc short 078bah                          ; 73 04
     11305    jnc short 078f9h                          ; 73 04
    1125411306    test bx, bx                               ; 85 db
    11255     jnbe short 078bdh                         ; 77 03
    11256     jmp near 07935h                           ; e9 78 00
     11307    jnbe short 078fch                         ; 77 03
     11308    jmp near 07974h                           ; e9 78 00
    1125711309    mov dx, ax                                ; 89 c2
    1125811310    add dx, strict byte 00078h                ; 83 c2 78
    1125911311    mov ax, strict word 00040h                ; b8 40 00
    11260     call 01650h                               ; e8 88 9d
     11312    call 01650h                               ; e8 49 9d
    1126111313    xor ah, ah                                ; 30 e4
    1126211314    mov cx, ax                                ; 89 c1
    1126311315    sal cx, 008h                              ; c1 e1 08
    1126411316    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11265     jne short 07901h                          ; 75 2c
     11317    jne short 07940h                          ; 75 2c
    1126611318    mov al, byte [bp+012h]                    ; 8a 46 12
    1126711319    mov dx, bx                                ; 89 da
     
    1128311335    ; sub ah, ah                                ; 2a e4
    1128411336    test AL, strict byte 040h                 ; a8 40
    11285     je short 07901h                           ; 74 07
     11337    je short 07940h                           ; 74 07
    1128611338    test cx, cx                               ; 85 c9
    11287     je short 07901h                           ; 74 03
     11339    je short 07940h                           ; 74 03
    1128811340    dec cx                                    ; 49
    11289     jmp short 078f0h                          ; eb ef
     11341    jmp short 0792fh                          ; eb ef
    1129011342    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11291     jne short 0791ch                          ; 75 15
     11343    jne short 0795bh                          ; 75 15
    1129211344    lea dx, [si+002h]                         ; 8d 54 02
    1129311345    in AL, DX                                 ; ec
     
    1130811360    mov byte [bp+013h], al                    ; 88 46 13
    1130911361    test cx, cx                               ; 85 c9
    11310     jne short 0792fh                          ; 75 04
     11362    jne short 0796eh                          ; 75 04
    1131111363    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1131211364    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11313     jmp short 07939h                          ; eb 04
     11365    jmp short 07978h                          ; eb 04
    1131411366    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1131511367    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1131711369    pop bp                                    ; 5d
    1131811370    retn                                      ; c3
    11319 wait_:                                       ; 0xf793f LB 0xaf
     11371wait_:                                       ; 0xf797e LB 0xaf
    1132011372    push bp                                   ; 55
    1132111373    mov bp, sp                                ; 89 e5
     
    1133511387    mov dx, 0046ch                            ; ba 6c 04
    1133611388    xor ax, ax                                ; 31 c0
    11337     call 01688h                               ; e8 26 9d
     11389    call 01688h                               ; e8 e7 9c
    1133811390    mov word [bp-010h], ax                    ; 89 46 f0
    1133911391    mov bx, dx                                ; 89 d3
     
    1134111393    mov dx, 0046ch                            ; ba 6c 04
    1134211394    xor ax, ax                                ; 31 c0
    11343     call 01688h                               ; e8 18 9d
     11395    call 01688h                               ; e8 d9 9c
    1134411396    mov word [bp-012h], ax                    ; 89 46 ee
    1134511397    mov di, dx                                ; 89 d7
    1134611398    cmp dx, bx                                ; 39 da
    11347     jnbe short 07980h                         ; 77 07
    11348     jne short 07987h                          ; 75 0c
     11399    jnbe short 079bfh                         ; 77 07
     11400    jne short 079c6h                          ; 75 0c
    1134911401    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11350     jbe short 07987h                          ; 76 07
     11402    jbe short 079c6h                          ; 76 07
    1135111403    sub ax, word [bp-010h]                    ; 2b 46 f0
    1135211404    sbb dx, bx                                ; 19 da
    11353     jmp short 07992h                          ; eb 0b
     11405    jmp short 079d1h                          ; eb 0b
    1135411406    cmp dx, bx                                ; 39 da
    11355     jc short 07992h                           ; 72 07
    11356     jne short 07996h                          ; 75 09
     11407    jc short 079d1h                           ; 72 07
     11408    jne short 079d5h                          ; 75 09
    1135711409    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11358     jnc short 07996h                          ; 73 04
     11410    jnc short 079d5h                          ; 73 04
    1135911411    sub si, ax                                ; 29 c6
    1136011412    sbb cx, dx                                ; 19 d1
     
    1136411416    mov ax, 00100h                            ; b8 00 01
    1136511417    int 016h                                  ; cd 16
    11366     je short 079aah                           ; 74 05
     11418    je short 079e9h                           ; 74 05
    1136711419    mov AL, strict byte 001h                  ; b0 01
    11368     jmp near 079ach                           ; e9 02 00
     11420    jmp near 079ebh                           ; e9 02 00
    1136911421    db  032h, 0c0h
    1137011422    ; xor al, al                                ; 32 c0
    1137111423    test al, al                               ; 84 c0
    11372     je short 079d3h                           ; 74 23
     11424    je short 07a12h                           ; 74 23
    1137311425    db  033h, 0c0h
    1137411426    ; xor ax, ax                                ; 33 c0
     
    1138111433    push 00996h                               ; 68 96 09
    1138211434    push strict byte 00004h                   ; 6a 04
    11383     call 01966h                               ; e8 a0 9f
     11435    call 01966h                               ; e8 61 9f
    1138411436    add sp, strict byte 00006h                ; 83 c4 06
    1138511437    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11386     je short 079d3h                           ; 74 04
     11438    je short 07a12h                           ; 74 04
    1138711439    mov al, dl                                ; 88 d0
    11388     jmp short 079e5h                          ; eb 12
     11440    jmp short 07a24h                          ; eb 12
    1138911441    test cx, cx                               ; 85 c9
    11390     jnle short 07967h                         ; 7f 90
    11391     jne short 079ddh                          ; 75 04
     11442    jnle short 079a6h                         ; 7f 90
     11443    jne short 07a1ch                          ; 75 04
    1139211444    test si, si                               ; 85 f6
    11393     jnbe short 07967h                         ; 77 8a
     11445    jnbe short 079a6h                         ; 77 8a
    1139411446    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1139511447    push ax                                   ; 50
     
    1140311455    pop bp                                    ; 5d
    1140411456    retn                                      ; c3
    11405 read_logo_byte_:                             ; 0xf79ee LB 0x16
     11457read_logo_byte_:                             ; 0xf7a2d LB 0x16
    1140611458    push bp                                   ; 55
    1140711459    mov bp, sp                                ; 89 e5
     
    1141811470    pop bp                                    ; 5d
    1141911471    retn                                      ; c3
    11420 read_logo_word_:                             ; 0xf7a04 LB 0x14
     11472read_logo_word_:                             ; 0xf7a43 LB 0x14
    1142111473    push bp                                   ; 55
    1142211474    mov bp, sp                                ; 89 e5
     
    1143111483    pop bp                                    ; 5d
    1143211484    retn                                      ; c3
    11433 print_detected_harddisks_:                   ; 0xf7a18 LB 0x13a
     11485print_detected_harddisks_:                   ; 0xf7a57 LB 0x13a
    1143411486    push bp                                   ; 55
    1143511487    mov bp, sp                                ; 89 e5
     
    1144311495    mov dx, strict word 0000eh                ; ba 0e 00
    1144411496    mov ax, strict word 00040h                ; b8 40 00
    11445     call 0166ch                               ; e8 41 9c
     11497    call 0166ch                               ; e8 02 9c
    1144611498    mov si, ax                                ; 89 c6
    1144711499    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1144911501    xor ch, ch                                ; 30 ed
    1145011502    mov dx, 00304h                            ; ba 04 03
    11451     call 01650h                               ; e8 15 9c
     11503    call 01650h                               ; e8 d6 9b
    1145211504    mov byte [bp-00ch], al                    ; 88 46 f4
    1145311505    xor bl, bl                                ; 30 db
    1145411506    cmp bl, byte [bp-00ch]                    ; 3a 5e f4
    11455     jnc short 07aa2h                          ; 73 5d
     11507    jnc short 07ae1h                          ; 73 5d
    1145611508    mov al, bl                                ; 88 d8
    1145711509    xor ah, ah                                ; 30 e4
     
    1145911511    add dx, 00305h                            ; 81 c2 05 03
    1146011512    mov ax, si                                ; 89 f0
    11461     call 01650h                               ; e8 fc 9b
     11513    call 01650h                               ; e8 bd 9b
    1146211514    mov bh, al                                ; 88 c7
    1146311515    cmp AL, strict byte 00ch                  ; 3c 0c
    11464     jc short 07a7fh                           ; 72 25
     11516    jc short 07abeh                           ; 72 25
    1146511517    test cl, cl                               ; 84 c9
    11466     jne short 07a6bh                          ; 75 0d
     11518    jne short 07aaah                          ; 75 0d
    1146711519    push 009a7h                               ; 68 a7 09
    1146811520    push strict byte 00002h                   ; 6a 02
    11469     call 01966h                               ; e8 00 9f
     11521    call 01966h                               ; e8 c1 9e
    1147011522    add sp, strict byte 00004h                ; 83 c4 04
    1147111523    mov CL, strict byte 001h                  ; b1 01
     
    1147611528    push 009bch                               ; 68 bc 09
    1147711529    push strict byte 00002h                   ; 6a 02
    11478     call 01966h                               ; e8 ed 9e
     11530    call 01966h                               ; e8 ae 9e
    1147911531    add sp, strict byte 00006h                ; 83 c4 06
    11480     jmp near 07b1fh                           ; e9 a0 00
     11532    jmp near 07b5eh                           ; e9 a0 00
    1148111533    cmp AL, strict byte 008h                  ; 3c 08
    11482     jc short 07a96h                           ; 72 13
     11534    jc short 07ad5h                           ; 72 13
    1148311535    test ch, ch                               ; 84 ed
    11484     jne short 07a94h                          ; 75 0d
     11536    jne short 07ad3h                          ; 75 0d
    1148511537    push 009cfh                               ; 68 cf 09
    1148611538    push strict byte 00002h                   ; 6a 02
    11487     call 01966h                               ; e8 d7 9e
     11539    call 01966h                               ; e8 98 9e
    1148811540    add sp, strict byte 00004h                ; 83 c4 04
    1148911541    mov CH, strict byte 001h                  ; b5 01
    11490     jmp short 07a6bh                          ; eb d5
     11542    jmp short 07aaah                          ; eb d5
    1149111543    cmp AL, strict byte 004h                  ; 3c 04
    11492     jnc short 07ab6h                          ; 73 1c
     11544    jnc short 07af5h                          ; 73 1c
    1149311545    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11494     je short 07aa5h                           ; 74 05
    11495     jmp short 07ab6h                          ; eb 14
    11496     jmp near 07b24h                           ; e9 7f 00
     11546    je short 07ae4h                           ; 74 05
     11547    jmp short 07af5h                          ; eb 14
     11548    jmp near 07b63h                           ; e9 7f 00
    1149711549    push 009e4h                               ; 68 e4 09
    1149811550    push strict byte 00002h                   ; 6a 02
    11499     call 01966h                               ; e8 b9 9e
     11551    call 01966h                               ; e8 7a 9e
    1150011552    add sp, strict byte 00004h                ; 83 c4 04
    1150111553    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11502     jmp short 07acch                          ; eb 16
     11554    jmp short 07b0bh                          ; eb 16
    1150311555    cmp bh, 004h                              ; 80 ff 04
    11504     jc short 07acch                           ; 72 11
     11556    jc short 07b0bh                           ; 72 11
    1150511557    test cl, cl                               ; 84 c9
    11506     jne short 07acch                          ; 75 0d
     11558    jne short 07b0bh                          ; 75 0d
    1150711559    push 009f6h                               ; 68 f6 09
    1150811560    push strict byte 00002h                   ; 6a 02
    11509     call 01966h                               ; e8 9f 9e
     11561    call 01966h                               ; e8 60 9e
    1151011562    add sp, strict byte 00004h                ; 83 c4 04
    1151111563    mov CL, strict byte 001h                  ; b1 01
     
    1151611568    push 00a0ah                               ; 68 0a 0a
    1151711569    push strict byte 00002h                   ; 6a 02
    11518     call 01966h                               ; e8 8c 9e
     11570    call 01966h                               ; e8 4d 9e
    1151911571    add sp, strict byte 00006h                ; 83 c4 06
    1152011572    cmp bh, 004h                              ; 80 ff 04
    11521     jc short 07ae5h                           ; 72 03
     11573    jc short 07b24h                           ; 72 03
    1152211574    sub bh, 004h                              ; 80 ef 04
    1152311575    mov al, bh                                ; 88 f8
     
    1152811580    sar ax, 1                                 ; d1 f8
    1152911581    test ax, ax                               ; 85 c0
    11530     je short 07af7h                           ; 74 05
     11582    je short 07b36h                           ; 74 05
    1153111583    push 00a14h                               ; 68 14 0a
    11532     jmp short 07afah                          ; eb 03
     11584    jmp short 07b39h                          ; eb 03
    1153311585    push 00a1fh                               ; 68 1f 0a
    1153411586    push strict byte 00002h                   ; 6a 02
    11535     call 01966h                               ; e8 67 9e
     11587    call 01966h                               ; e8 28 9e
    1153611588    add sp, strict byte 00004h                ; 83 c4 04
    1153711589    mov al, bh                                ; 88 f8
     
    1154111593    idiv di                                   ; f7 ff
    1154211594    test dx, dx                               ; 85 d2
    11543     je short 07b15h                           ; 74 05
     11595    je short 07b54h                           ; 74 05
    1154411596    push 00a28h                               ; 68 28 0a
    11545     jmp short 07b18h                          ; eb 03
     11597    jmp short 07b57h                          ; eb 03
    1154611598    push 00a2eh                               ; 68 2e 0a
    1154711599    push di                                   ; 57
    11548     call 01966h                               ; e8 4a 9e
     11600    call 01966h                               ; e8 0b 9e
    1154911601    add sp, strict byte 00004h                ; 83 c4 04
    1155011602    db  0feh, 0c3h
    1155111603    ; inc bl                                    ; fe c3
    11552     jmp near 07a40h                           ; e9 1c ff
     11604    jmp near 07a7fh                           ; e9 1c ff
    1155311605    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11554     jne short 07b3dh                          ; 75 13
     11606    jne short 07b7ch                          ; 75 13
    1155511607    test cl, cl                               ; 84 c9
    11556     jne short 07b3dh                          ; 75 0f
     11608    jne short 07b7ch                          ; 75 0f
    1155711609    test ch, ch                               ; 84 ed
    11558     jne short 07b3dh                          ; 75 0b
     11610    jne short 07b7ch                          ; 75 0b
    1155911611    push 00a35h                               ; 68 35 0a
    1156011612    push strict byte 00002h                   ; 6a 02
    11561     call 01966h                               ; e8 2c 9e
     11613    call 01966h                               ; e8 ed 9d
    1156211614    add sp, strict byte 00004h                ; 83 c4 04
    1156311615    push 00a49h                               ; 68 49 0a
    1156411616    push strict byte 00002h                   ; 6a 02
    11565     call 01966h                               ; e8 21 9e
     11617    call 01966h                               ; e8 e2 9d
    1156611618    add sp, strict byte 00004h                ; 83 c4 04
    1156711619    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1157311625    pop bp                                    ; 5d
    1157411626    retn                                      ; c3
    11575 get_boot_drive_:                             ; 0xf7b52 LB 0x28
     11627get_boot_drive_:                             ; 0xf7b91 LB 0x28
    1157611628    push bp                                   ; 55
    1157711629    mov bp, sp                                ; 89 e5
     
    1158111633    mov dx, strict word 0000eh                ; ba 0e 00
    1158211634    mov ax, strict word 00040h                ; b8 40 00
    11583     call 0166ch                               ; e8 0a 9b
     11635    call 0166ch                               ; e8 cb 9a
    1158411636    mov dx, 00304h                            ; ba 04 03
    11585     call 01650h                               ; e8 e8 9a
     11637    call 01650h                               ; e8 a9 9a
    1158611638    sub bl, 002h                              ; 80 eb 02
    1158711639    cmp bl, al                                ; 38 c3
    11588     jc short 07b71h                           ; 72 02
     11640    jc short 07bb0h                           ; 72 02
    1158911641    mov BL, strict byte 0ffh                  ; b3 ff
    1159011642    mov al, bl                                ; 88 d8
     
    1159411646    pop bp                                    ; 5d
    1159511647    retn                                      ; c3
    11596 show_logo_:                                  ; 0xf7b7a LB 0x231
     11648show_logo_:                                  ; 0xf7bb9 LB 0x231
    1159711649    push bp                                   ; 55
    1159811650    mov bp, sp                                ; 89 e5
     
    1160511657    mov dx, strict word 0000eh                ; ba 0e 00
    1160611658    mov ax, strict word 00040h                ; b8 40 00
    11607     call 0166ch                               ; e8 de 9a
     11659    call 0166ch                               ; e8 9f 9a
    1160811660    mov si, ax                                ; 89 c6
    1160911661    xor cl, cl                                ; 30 c9
     
    1161711669    mov al, dl                                ; 88 d0
    1161811670    xor ah, ah                                ; 30 e4
    11619     call 07a04h                               ; e8 5d fe
     11671    call 07a43h                               ; e8 5d fe
    1162011672    cmp ax, 066bbh                            ; 3d bb 66
    11621     jne short 07bbeh                          ; 75 12
     11673    jne short 07bfdh                          ; 75 12
    1162211674    push SS                                   ; 16
    1162311675    pop ES                                    ; 07
     
    1162711679    mov word [es:di], bx                      ; 26 89 1d
    1162811680    cmp ax, strict word 0004fh                ; 3d 4f 00
    11629     je short 07bc1h                           ; 74 03
    11630     jmp near 07c89h                           ; e9 c8 00
     11681    je short 07c00h                           ; 74 03
     11682    jmp near 07cc8h                           ; e9 c8 00
    1163111683    mov al, dl                                ; 88 d0
    1163211684    add AL, strict byte 004h                  ; 04 04
    1163311685    xor ah, ah                                ; 30 e4
    11634     call 079eeh                               ; e8 24 fe
     11686    call 07a2dh                               ; e8 24 fe
    1163511687    mov ch, al                                ; 88 c5
    1163611688    mov byte [bp-012h], al                    ; 88 46 ee
     
    1163811690    add AL, strict byte 005h                  ; 04 05
    1163911691    xor ah, ah                                ; 30 e4
    11640     call 079eeh                               ; e8 16 fe
     11692    call 07a2dh                               ; e8 16 fe
    1164111693    mov dh, al                                ; 88 c6
    1164211694    mov byte [bp-010h], al                    ; 88 46 f0
     
    1164411696    add AL, strict byte 002h                  ; 04 02
    1164511697    xor ah, ah                                ; 30 e4
    11646     call 07a04h                               ; e8 1e fe
     11698    call 07a43h                               ; e8 1e fe
    1164711699    mov bx, ax                                ; 89 c3
    1164811700    mov word [bp-014h], ax                    ; 89 46 ec
     
    1165011702    add AL, strict byte 006h                  ; 04 06
    1165111703    xor ah, ah                                ; 30 e4
    11652     call 079eeh                               ; e8 fa fd
     11704    call 07a2dh                               ; e8 fa fd
    1165311705    mov byte [bp-00eh], al                    ; 88 46 f2
    1165411706    test ch, ch                               ; 84 ed
    11655     jne short 07c03h                          ; 75 08
     11707    jne short 07c42h                          ; 75 08
    1165611708    test dh, dh                               ; 84 f6
    11657     jne short 07c03h                          ; 75 04
     11709    jne short 07c42h                          ; 75 04
    1165811710    test bx, bx                               ; 85 db
    11659     je short 07bbeh                           ; 74 bb
     11711    je short 07bfdh                           ; 74 bb
    1166011712    mov bx, 00142h                            ; bb 42 01
    1166111713    mov ax, 04f02h                            ; b8 02 4f
    1166211714    int 010h                                  ; cd 10
    1166311715    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11664     je short 07c34h                           ; 74 23
     11716    je short 07c73h                           ; 74 23
    1166511717    xor bx, bx                                ; 31 db
    11666     jmp short 07c1bh                          ; eb 06
     11718    jmp short 07c5ah                          ; eb 06
    1166711719    inc bx                                    ; 43
    1166811720    cmp bx, strict byte 00010h                ; 83 fb 10
    11669     jnbe short 07c3bh                         ; 77 20
     11721    jnbe short 07c7ah                         ; 77 20
    1167011722    mov ax, bx                                ; 89 d8
    1167111723    or ah, 002h                               ; 80 cc 02
     
    1167411726    xor dx, dx                                ; 31 d2
    1167511727    mov ax, strict word 00001h                ; b8 01 00
    11676     call 0793fh                               ; e8 13 fd
     11728    call 0797eh                               ; e8 13 fd
    1167711729    cmp AL, strict byte 086h                  ; 3c 86
    11678     jne short 07c15h                          ; 75 e5
     11730    jne short 07c54h                          ; 75 e5
    1167911731    mov CL, strict byte 001h                  ; b1 01
    11680     jmp short 07c3bh                          ; eb 07
     11732    jmp short 07c7ah                          ; eb 07
    1168111733    mov ax, 00210h                            ; b8 10 02
    1168211734    mov dx, 003b8h                            ; ba b8 03
    1168311735    out DX, ax                                ; ef
    1168411736    test cl, cl                               ; 84 c9
    11685     jne short 07c51h                          ; 75 12
     11737    jne short 07c90h                          ; 75 12
    1168611738    mov ax, word [bp-014h]                    ; 8b 46 ec
    1168711739    shr ax, 004h                              ; c1 e8 04
    1168811740    mov dx, strict word 00001h                ; ba 01 00
    11689     call 0793fh                               ; e8 f4 fc
     11741    call 0797eh                               ; e8 f4 fc
    1169011742    cmp AL, strict byte 086h                  ; 3c 86
    11691     jne short 07c51h                          ; 75 02
     11743    jne short 07c90h                          ; 75 02
    1169211744    mov CL, strict byte 001h                  ; b1 01
    1169311745    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11694     je short 07c7eh                           ; 74 27
     11746    je short 07cbdh                           ; 74 27
    1169511747    test cl, cl                               ; 84 c9
    11696     jne short 07c7eh                          ; 75 23
     11748    jne short 07cbdh                          ; 75 23
    1169711749    mov bx, strict word 00010h                ; bb 10 00
    11698     jmp short 07c65h                          ; eb 05
     11750    jmp short 07ca4h                          ; eb 05
    1169911751    dec bx                                    ; 4b
    1170011752    test bx, bx                               ; 85 db
    11701     jbe short 07c89h                          ; 76 24
     11753    jbe short 07cc8h                          ; 76 24
    1170211754    mov ax, bx                                ; 89 d8
    1170311755    or ah, 002h                               ; 80 cc 02
     
    1170611758    xor dx, dx                                ; 31 d2
    1170711759    mov ax, strict word 00001h                ; b8 01 00
    11708     call 0793fh                               ; e8 c9 fc
     11760    call 0797eh                               ; e8 c9 fc
    1170911761    cmp AL, strict byte 086h                  ; 3c 86
    11710     jne short 07c60h                          ; 75 e6
     11762    jne short 07c9fh                          ; 75 e6
    1171111763    mov CL, strict byte 001h                  ; b1 01
    11712     jmp short 07c89h                          ; eb 0b
     11764    jmp short 07cc8h                          ; eb 0b
    1171311765    test cl, cl                               ; 84 c9
    11714     jne short 07c89h                          ; 75 07
     11766    jne short 07cc8h                          ; 75 07
    1171511767    mov ax, 00200h                            ; b8 00 02
    1171611768    mov dx, 003b8h                            ; ba b8 03
     
    1171911771    mov dx, 0037dh                            ; ba 7d 03
    1172011772    mov ax, si                                ; 89 f0
    11721     call 0165eh                               ; e8 cb 99
     11773    call 0165eh                               ; e8 8c 99
    1172211774    mov AL, strict byte 003h                  ; b0 03
    1172311775    mov AH, strict byte 000h                  ; b4 00
    1172411776    int 010h                                  ; cd 10
    1172511777    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11726     je short 07cb3h                           ; 74 14
     11778    je short 07cf2h                           ; 74 14
    1172711779    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11728     jne short 07cdah                          ; 75 35
     11780    jne short 07d19h                          ; 75 35
    1172911781    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11730     jne short 07cdah                          ; 75 2f
     11782    jne short 07d19h                          ; 75 2f
    1173111783    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11732     je short 07cb6h                           ; 74 05
    11733     jmp short 07cdah                          ; eb 27
    11734     jmp near 07d8eh                           ; e9 d8 00
     11784    je short 07cf5h                           ; 74 05
     11785    jmp short 07d19h                          ; eb 27
     11786    jmp near 07dcdh                           ; e9 d8 00
    1173511787    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    11736     jne short 07cc7h                          ; 75 0b
     11788    jne short 07d06h                          ; 75 0b
    1173711789    push 00a4bh                               ; 68 4b 0a
    1173811790    push strict byte 00002h                   ; 6a 02
    11739     call 01966h                               ; e8 a2 9c
     11791    call 01966h                               ; e8 63 9c
    1174011792    add sp, strict byte 00004h                ; 83 c4 04
    1174111793    test cl, cl                               ; 84 c9
    11742     jne short 07cdah                          ; 75 0f
     11794    jne short 07d19h                          ; 75 0f
    1174311795    mov dx, strict word 00001h                ; ba 01 00
    1174411796    mov ax, 000c0h                            ; b8 c0 00
    11745     call 0793fh                               ; e8 6b fc
     11797    call 0797eh                               ; e8 6b fc
    1174611798    cmp AL, strict byte 086h                  ; 3c 86
    11747     jne short 07cdah                          ; 75 02
     11799    jne short 07d19h                          ; 75 02
    1174811800    mov CL, strict byte 001h                  ; b1 01
    1174911801    test cl, cl                               ; 84 c9
    11750     je short 07cb3h                           ; 74 d5
     11802    je short 07cf2h                           ; 74 d5
    1175111803    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1175211804    mov ax, 00100h                            ; b8 00 01
     
    1176711819    push 00a6dh                               ; 68 6d 0a
    1176811820    push strict byte 00002h                   ; 6a 02
    11769     call 01966h                               ; e8 5f 9c
     11821    call 01966h                               ; e8 20 9c
    1177011822    add sp, strict byte 00004h                ; 83 c4 04
    11771     call 07a18h                               ; e8 0b fd
     11823    call 07a57h                               ; e8 0b fd
    1177211824    push 00ab1h                               ; 68 b1 0a
    1177311825    push strict byte 00002h                   ; 6a 02
    11774     call 01966h                               ; e8 51 9c
     11826    call 01966h                               ; e8 12 9c
    1177511827    add sp, strict byte 00004h                ; 83 c4 04
    1177611828    mov dx, strict word 00001h                ; ba 01 00
    1177711829    mov ax, strict word 00040h                ; b8 40 00
    11778     call 0793fh                               ; e8 1e fc
     11830    call 0797eh                               ; e8 1e fc
    1177911831    mov bl, al                                ; 88 c3
    1178011832    test al, al                               ; 84 c0
    11781     je short 07d18h                           ; 74 f1
     11833    je short 07d57h                           ; 74 f1
    1178211834    cmp AL, strict byte 030h                  ; 3c 30
    11783     je short 07d7bh                           ; 74 50
     11835    je short 07dbah                           ; 74 50
    1178411836    cmp bl, 002h                              ; 80 fb 02
    11785     jc short 07d54h                           ; 72 24
     11837    jc short 07d93h                           ; 72 24
    1178611838    cmp bl, 009h                              ; 80 fb 09
    11787     jnbe short 07d54h                         ; 77 1f
     11839    jnbe short 07d93h                         ; 77 1f
    1178811840    mov al, bl                                ; 88 d8
    1178911841    xor ah, ah                                ; 30 e4
    11790     call 07b52h                               ; e8 16 fe
     11842    call 07b91h                               ; e8 16 fe
    1179111843    cmp AL, strict byte 0ffh                  ; 3c ff
    11792     jne short 07d42h                          ; 75 02
    11793     jmp short 07d18h                          ; eb d6
     11844    jne short 07d81h                          ; 75 02
     11845    jmp short 07d57h                          ; eb d6
    1179411846    mov bl, al                                ; 88 c3
    1179511847    xor bh, bh                                ; 30 ff
    1179611848    mov dx, 0037ch                            ; ba 7c 03
    1179711849    mov ax, si                                ; 89 f0
    11798     call 0165eh                               ; e8 10 99
     11850    call 0165eh                               ; e8 d1 98
    1179911851    mov byte [bp-00ch], 002h                  ; c6 46 f4 02
    11800     jmp short 07d7bh                          ; eb 27
     11852    jmp short 07dbah                          ; eb 27
    1180111853    cmp bl, 02eh                              ; 80 fb 2e
    11802     je short 07d69h                           ; 74 10
     11854    je short 07da8h                           ; 74 10
    1180311855    cmp bl, 026h                              ; 80 fb 26
    11804     je short 07d6fh                           ; 74 11
     11856    je short 07daeh                           ; 74 11
    1180511857    cmp bl, 021h                              ; 80 fb 21
    11806     jne short 07d75h                          ; 75 12
     11858    jne short 07db4h                          ; 75 12
    1180711859    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11808     jmp short 07d7bh                          ; eb 12
     11860    jmp short 07dbah                          ; eb 12
    1180911861    mov byte [bp-00ch], 003h                  ; c6 46 f4 03
    11810     jmp short 07d7bh                          ; eb 0c
     11862    jmp short 07dbah                          ; eb 0c
    1181111863    mov byte [bp-00ch], 004h                  ; c6 46 f4 04
    11812     jmp short 07d7bh                          ; eb 06
     11864    jmp short 07dbah                          ; eb 06
    1181311865    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11814     je short 07d18h                           ; 74 9d
     11866    je short 07d57h                           ; 74 9d
    1181511867    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1181611868    xor bh, bh                                ; 30 ff
    1181711869    mov dx, 0037dh                            ; ba 7d 03
    1181811870    mov ax, si                                ; 89 f0
    11819     call 0165eh                               ; e8 d6 98
     11871    call 0165eh                               ; e8 97 98
    1182011872    mov AL, strict byte 003h                  ; b0 03
    1182111873    mov AH, strict byte 000h                  ; b4 00
     
    1183011882    push DS                                   ; 1e
    1183111883    mov ds, ax                                ; 8e d8
    11832     call 0edbfh                               ; e8 20 70
     11884    call 0edbfh                               ; e8 e1 6f
    1183311885    pop DS                                    ; 1f
    1183411886    pop bp                                    ; 5d
     
    1184111893    pop bp                                    ; 5d
    1184211894    retn                                      ; c3
    11843 delay_boot_:                                 ; 0xf7dab LB 0x6b
     11895delay_boot_:                                 ; 0xf7dea LB 0x6b
    1184411896    push bp                                   ; 55
    1184511897    mov bp, sp                                ; 89 e5
     
    1185111903    mov dx, ax                                ; 89 c2
    1185211904    test ax, ax                               ; 85 c0
    11853     je short 07e0ch                           ; 74 53
     11905    je short 07e4bh                           ; 74 53
    1185411906    mov AL, strict byte 034h                  ; b0 34
    1185511907    out strict byte 043h, AL                  ; e6 43
     
    1186111913    push 00afbh                               ; 68 fb 0a
    1186211914    push strict byte 00002h                   ; 6a 02
    11863     call 01966h                               ; e8 98 9b
     11915    call 01966h                               ; e8 59 9b
    1186411916    add sp, strict byte 00006h                ; 83 c4 06
    1186511917    mov bx, dx                                ; 89 d3
    1186611918    test bx, bx                               ; 85 db
    11867     jbe short 07deeh                          ; 76 17
     11919    jbe short 07e2dh                          ; 76 17
    1186811920    push bx                                   ; 53
    1186911921    push 00b19h                               ; 68 19 0b
    1187011922    push strict byte 00002h                   ; 6a 02
    11871     call 01966h                               ; e8 86 9b
     11923    call 01966h                               ; e8 47 9b
    1187211924    add sp, strict byte 00006h                ; 83 c4 06
    1187311925    xor dx, dx                                ; 31 d2
    1187411926    mov ax, strict word 00040h                ; b8 40 00
    11875     call 0793fh                               ; e8 54 fb
     11927    call 0797eh                               ; e8 54 fb
    1187611928    dec bx                                    ; 4b
    11877     jmp short 07dd3h                          ; eb e5
     11929    jmp short 07e12h                          ; eb e5
    1187811930    push 00a49h                               ; 68 49 0a
    1187911931    push strict byte 00002h                   ; 6a 02
    11880     call 01966h                               ; e8 70 9b
     11932    call 01966h                               ; e8 31 9b
    1188111933    add sp, strict byte 00004h                ; 83 c4 04
    1188211934    mov AL, strict byte 034h                  ; b0 34
     
    1188911941    push DS                                   ; 1e
    1189011942    mov ds, ax                                ; 8e d8
    11891     call 0edbfh                               ; e8 b5 6f
     11943    call 0edbfh                               ; e8 76 6f
    1189211944    pop DS                                    ; 1f
    1189311945    pop bp                                    ; 5d
     
    1190011952    pop bp                                    ; 5d
    1190111953    retn                                      ; c3
    11902 scsi_cmd_data_in_:                           ; 0xf7e16 LB 0xd5
     11954scsi_cmd_data_in_:                           ; 0xf7e55 LB 0xd5
    1190311955    push bp                                   ; 55
    1190411956    mov bp, sp                                ; 89 e5
     
    1191611968    ; sub ah, ah                                ; 2a e4
    1191711969    test AL, strict byte 001h                 ; a8 01
    11918     jne short 07e2ch                          ; 75 f7
     11970    jne short 07e6bh                          ; 75 f7
    1191911971    mov al, byte [bp+004h]                    ; 8a 46 04
    1192011972    cmp AL, strict byte 010h                  ; 3c 10
    11921     jne short 07e40h                          ; 75 04
     11973    jne short 07e7fh                          ; 75 04
    1192211974    xor ax, ax                                ; 31 c0
    11923     jmp short 07e42h                          ; eb 02
     11975    jmp short 07e81h                          ; eb 02
    1192411976    xor ah, ah                                ; 30 e4
    1192511977    mov di, ax                                ; 89 c7
     
    1192911981    shr dx, 1                                 ; d1 ea
    1193011982    rcr ax, 1                                 ; d1 d8
    11931     loop 07e4ch                               ; e2 fa
     11983    loop 07e8bh                               ; e2 fa
    1193211984    mov cx, ax                                ; 89 c1
    1193311985    and cx, 000f0h                            ; 81 e1 f0 00
     
    1194711999    shr dx, 1                                 ; d1 ea
    1194812000    rcr ax, 1                                 ; d1 d8
    11949     loop 07e71h                               ; e2 fa
     12001    loop 07eb0h                               ; e2 fa
    1195012002    mov dx, si                                ; 89 f2
    1195112003    out DX, AL                                ; ee
     
    1195412006    xor ah, ah                                ; 30 e4
    1195512007    cmp cx, ax                                ; 39 c1
    11956     jnc short 07e93h                          ; 73 0e
     12008    jnc short 07ed2h                          ; 73 0e
    1195712009    les di, [bp-00ah]                         ; c4 7e f6
    1195812010    add di, cx                                ; 01 cf
     
    1196112013    out DX, AL                                ; ee
    1196212014    inc cx                                    ; 41
    11963     jmp short 07e7ch                          ; eb e9
     12015    jmp short 07ebbh                          ; eb e9
    1196412016    mov dx, si                                ; 89 f2
    1196512017    in AL, DX                                 ; ec
     
    1196712019    ; sub ah, ah                                ; 2a e4
    1196812020    test AL, strict byte 001h                 ; a8 01
    11969     jne short 07e93h                          ; 75 f7
     12021    jne short 07ed2h                          ; 75 f7
    1197012022    test AL, strict byte 002h                 ; a8 02
    11971     je short 07eaeh                           ; 74 0e
     12023    je short 07eedh                           ; 74 0e
    1197212024    lea dx, [si+003h]                         ; 8d 54 03
    1197312025    xor al, al                                ; 30 c0
     
    1197712029    ; sub ah, ah                                ; 2a e4
    1197812030    mov di, strict word 00004h                ; bf 04 00
    11979     jmp short 07ee0h                          ; eb 32
     12031    jmp short 07f1fh                          ; eb 32
    1198012032    lea dx, [si+001h]                         ; 8d 54 01
    1198112033    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11982     jne short 07ebdh                          ; 75 06
     12034    jne short 07efch                          ; 75 06
    1198312035    cmp bx, 08000h                            ; 81 fb 00 80
    11984     jbe short 07ed7h                          ; 76 1a
     12036    jbe short 07f16h                          ; 76 1a
    1198512037    mov cx, 08000h                            ; b9 00 80
    1198612038    les di, [bp+006h]                         ; c4 7e 06
     
    1199112043    add ax, 00800h                            ; 05 00 08
    1199212044    mov word [bp+008h], ax                    ; 89 46 08
    11993     jmp short 07eaeh                          ; eb d7
     12045    jmp short 07eedh                          ; eb d7
    1199412046    mov cx, bx                                ; 89 d9
    1199512047    les di, [bp+006h]                         ; c4 7e 06
     
    1200212054    pop bp                                    ; 5d
    1200312055    retn 0000ah                               ; c2 0a 00
    12004 scsi_cmd_data_out_:                          ; 0xf7eeb LB 0xd5
     12056scsi_cmd_data_out_:                          ; 0xf7f2a LB 0xd5
    1200512057    push bp                                   ; 55
    1200612058    mov bp, sp                                ; 89 e5
     
    1201812070    ; sub ah, ah                                ; 2a e4
    1201912071    test AL, strict byte 001h                 ; a8 01
    12020     jne short 07f01h                          ; 75 f7
     12072    jne short 07f40h                          ; 75 f7
    1202112073    mov al, byte [bp+004h]                    ; 8a 46 04
    1202212074    cmp AL, strict byte 010h                  ; 3c 10
    12023     jne short 07f15h                          ; 75 04
     12075    jne short 07f54h                          ; 75 04
    1202412076    xor ax, ax                                ; 31 c0
    12025     jmp short 07f17h                          ; eb 02
     12077    jmp short 07f56h                          ; eb 02
    1202612078    xor ah, ah                                ; 30 e4
    1202712079    mov si, ax                                ; 89 c6
     
    1203112083    shr dx, 1                                 ; d1 ea
    1203212084    rcr ax, 1                                 ; d1 d8
    12033     loop 07f21h                               ; e2 fa
     12085    loop 07f60h                               ; e2 fa
    1203412086    mov cx, ax                                ; 89 c1
    1203512087    and cx, 000f0h                            ; 81 e1 f0 00
     
    1204912101    shr dx, 1                                 ; d1 ea
    1205012102    rcr ax, 1                                 ; d1 d8
    12051     loop 07f46h                               ; e2 fa
     12103    loop 07f85h                               ; e2 fa
    1205212104    mov dx, di                                ; 89 fa
    1205312105    out DX, AL                                ; ee
     
    1205612108    xor ah, ah                                ; 30 e4
    1205712109    cmp cx, ax                                ; 39 c1
    12058     jnc short 07f68h                          ; 73 0e
     12110    jnc short 07fa7h                          ; 73 0e
    1205912111    les si, [bp-00ah]                         ; c4 76 f6
    1206012112    add si, cx                                ; 01 ce
     
    1206312115    out DX, AL                                ; ee
    1206412116    inc cx                                    ; 41
    12065     jmp short 07f51h                          ; eb e9
     12117    jmp short 07f90h                          ; eb e9
    1206612118    lea dx, [di+001h]                         ; 8d 55 01
    1206712119    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12068     jne short 07f77h                          ; 75 06
     12120    jne short 07fb6h                          ; 75 06
    1206912121    cmp bx, 08000h                            ; 81 fb 00 80
    12070     jbe short 07f92h                          ; 76 1b
     12122    jbe short 07fd1h                          ; 76 1b
    1207112123    mov cx, 08000h                            ; b9 00 80
    1207212124    les si, [bp+006h]                         ; c4 76 06
     
    1207812130    add ax, 00800h                            ; 05 00 08
    1207912131    mov word [bp+008h], ax                    ; 89 46 08
    12080     jmp short 07f68h                          ; eb d6
     12132    jmp short 07fa7h                          ; eb d6
    1208112133    mov cx, bx                                ; 89 d9
    1208212134    les si, [bp+006h]                         ; c4 76 06
     
    1208812140    ; sub ah, ah                                ; 2a e4
    1208912141    test AL, strict byte 001h                 ; a8 01
    12090     jne short 07f9ah                          ; 75 f7
     12142    jne short 07fd9h                          ; 75 f7
    1209112143    test AL, strict byte 002h                 ; a8 02
    12092     je short 07fb5h                           ; 74 0e
     12144    je short 07ff4h                           ; 74 0e
    1209312145    lea dx, [di+003h]                         ; 8d 55 03
    1209412146    xor al, al                                ; 30 c0
     
    1209812150    ; sub ah, ah                                ; 2a e4
    1209912151    mov ax, strict word 00004h                ; b8 04 00
    12100     jmp short 07fb7h                          ; eb 02
     12152    jmp short 07ff6h                          ; eb 02
    1210112153    xor ax, ax                                ; 31 c0
    1210212154    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1210512157    pop bp                                    ; 5d
    1210612158    retn 0000ah                               ; c2 0a 00
    12107 @scsi_read_sectors:                          ; 0xf7fc0 LB 0xe0
     12159@scsi_read_sectors:                          ; 0xf7fff LB 0xe0
    1210812160    push bp                                   ; 55
    1210912161    mov bp, sp                                ; 89 e5
     
    1211712169    mov byte [bp-006h], al                    ; 88 46 fa
    1211812170    cmp AL, strict byte 004h                  ; 3c 04
    12119     jbe short 07fech                          ; 76 11
     12171    jbe short 0802bh                          ; 76 11
    1212012172    xor ah, ah                                ; 30 e4
    1212112173    push ax                                   ; 50
     
    1212312175    push 00b30h                               ; 68 30 0b
    1212412176    push strict byte 00007h                   ; 6a 07
    12125     call 01966h                               ; e8 7d 99
     12177    call 01966h                               ; e8 3e 99
    1212612178    add sp, strict byte 00008h                ; 83 c4 08
    1212712179    mov es, [bp+006h]                         ; 8e 46 06
     
    1216312215    sal word [bp-00ah], 1                     ; d1 66 f6
    1216412216    rcl word [bp-008h], 1                     ; d1 56 f8
    12165     loop 08056h                               ; e2 f8
     12217    loop 08095h                               ; e2 f8
    1216612218    push word [bp-008h]                       ; ff 76 f8
    1216712219    push word [bp-00ah]                       ; ff 76 f6
     
    1217212224    mov cx, ss                                ; 8c d1
    1217312225    lea bx, [bp-01ah]                         ; 8d 5e e6
    12174     call 07e16h                               ; e8 9e fd
     12226    call 07e55h                               ; e8 9e fd
    1217512227    mov ah, al                                ; 88 c4
    1217612228    test al, al                               ; 84 c0
    12177     jne short 08093h                          ; 75 15
     12229    jne short 080d2h                          ; 75 15
    1217812230    mov es, [bp+006h]                         ; 8e 46 06
    1217912231    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1218912241    pop bp                                    ; 5d
    1219012242    retn 00004h                               ; c2 04 00
    12191 @scsi_write_sectors:                         ; 0xf80a0 LB 0xe0
     12243@scsi_write_sectors:                         ; 0xf80df LB 0xe0
    1219212244    push bp                                   ; 55
    1219312245    mov bp, sp                                ; 89 e5
     
    1220112253    mov byte [bp-006h], al                    ; 88 46 fa
    1220212254    cmp AL, strict byte 004h                  ; 3c 04
    12203     jbe short 080cch                          ; 76 11
     12255    jbe short 0810bh                          ; 76 11
    1220412256    xor ah, ah                                ; 30 e4
    1220512257    push ax                                   ; 50
     
    1220712259    push 00b30h                               ; 68 30 0b
    1220812260    push strict byte 00007h                   ; 6a 07
    12209     call 01966h                               ; e8 9d 98
     12261    call 01966h                               ; e8 5e 98
    1221012262    add sp, strict byte 00008h                ; 83 c4 08
    1221112263    mov es, [bp+006h]                         ; 8e 46 06
     
    1224712299    sal word [bp-00ah], 1                     ; d1 66 f6
    1224812300    rcl word [bp-008h], 1                     ; d1 56 f8
    12249     loop 08136h                               ; e2 f8
     12301    loop 08175h                               ; e2 f8
    1225012302    push word [bp-008h]                       ; ff 76 f8
    1225112303    push word [bp-00ah]                       ; ff 76 f6
     
    1225612308    mov cx, ss                                ; 8c d1
    1225712309    lea bx, [bp-01ah]                         ; 8d 5e e6
    12258     call 07eebh                               ; e8 93 fd
     12310    call 07f2ah                               ; e8 93 fd
    1225912311    mov ah, al                                ; 88 c4
    1226012312    test al, al                               ; 84 c0
    12261     jne short 08173h                          ; 75 15
     12313    jne short 081b2h                          ; 75 15
    1226212314    mov es, [bp+006h]                         ; 8e 46 06
    1226312315    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1227312325    pop bp                                    ; 5d
    1227412326    retn 00004h                               ; c2 04 00
    12275 scsi_cmd_packet_:                            ; 0xf8180 LB 0x168
     12327scsi_cmd_packet_:                            ; 0xf81bf LB 0x168
    1227612328    push bp                                   ; 55
    1227712329    mov bp, sp                                ; 89 e5
     
    1228512337    mov dx, strict word 0000eh                ; ba 0e 00
    1228612338    mov ax, strict word 00040h                ; b8 40 00
    12287     call 0166ch                               ; e8 d0 94
     12339    call 0166ch                               ; e8 91 94
    1228812340    mov si, 00122h                            ; be 22 01
    1228912341    mov word [bp-00ah], ax                    ; 89 46 f6
    1229012342    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12291     jne short 081c7h                          ; 75 1f
    12292     mov bx, 00da4h                            ; bb a4 0d
     12343    jne short 08206h                          ; 75 1f
     12344    mov bx, 00da0h                            ; bb a0 0d
    1229312345    mov cx, ds                                ; 8c d9
    1229412346    mov ax, strict word 00004h                ; b8 04 00
    12295     call 01923h                               ; e8 70 97
     12347    call 01923h                               ; e8 31 97
    1229612348    push 00b62h                               ; 68 62 0b
    1229712349    push 00b72h                               ; 68 72 0b
    1229812350    push strict byte 00004h                   ; 6a 04
    12299     call 01966h                               ; e8 a8 97
     12351    call 01966h                               ; e8 69 97
    1230012352    add sp, strict byte 00006h                ; 83 c4 06
    1230112353    mov dx, strict word 00001h                ; ba 01 00
    12302     jmp near 082ddh                           ; e9 16 01
     12354    jmp near 0831ch                           ; e9 16 01
    1230312355    sub di, strict byte 00008h                ; 83 ef 08
    1230412356    sal di, 002h                              ; c1 e7 02
     
    1231412366    ; sub ah, ah                                ; 2a e4
    1231512367    test AL, strict byte 001h                 ; a8 01
    12316     jne short 081e3h                          ; 75 f7
     12368    jne short 08222h                          ; 75 f7
    1231712369    xor ax, ax                                ; 31 c0
    1231812370    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1233012382    shr dx, 1                                 ; d1 ea
    1233112383    rcr ax, 1                                 ; d1 d8
    12332     loop 0820eh                               ; e2 fa
     12384    loop 0824dh                               ; e2 fa
    1233312385    and ax, 000f0h                            ; 25 f0 00
    1233412386    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1234912401    shr dx, 1                                 ; d1 ea
    1235012402    rcr ax, 1                                 ; d1 d8
    12351     loop 08236h                               ; e2 fa
     12403    loop 08275h                               ; e2 fa
    1235212404    mov dx, bx                                ; 89 da
    1235312405    out DX, AL                                ; ee
     
    1235612408    xor ah, ah                                ; 30 e4
    1235712409    cmp cx, ax                                ; 39 c1
    12358     jnc short 08258h                          ; 73 0e
     12410    jnc short 08297h                          ; 73 0e
    1235912411    les di, [bp-00eh]                         ; c4 7e f2
    1236012412    add di, cx                                ; 01 cf
     
    1236312415    out DX, AL                                ; ee
    1236412416    inc cx                                    ; 41
    12365     jmp short 08241h                          ; eb e9
     12417    jmp short 08280h                          ; eb e9
    1236612418    mov dx, bx                                ; 89 da
    1236712419    in AL, DX                                 ; ec
     
    1236912421    ; sub ah, ah                                ; 2a e4
    1237012422    test AL, strict byte 001h                 ; a8 01
    12371     jne short 08258h                          ; 75 f7
     12423    jne short 08297h                          ; 75 f7
    1237212424    test AL, strict byte 002h                 ; a8 02
    12373     je short 08273h                           ; 74 0e
     12425    je short 082b2h                           ; 74 0e
    1237412426    lea dx, [bx+003h]                         ; 8d 57 03
    1237512427    xor al, al                                ; 30 c0
     
    1237912431    ; sub ah, ah                                ; 2a e4
    1238012432    mov dx, strict word 00003h                ; ba 03 00
    12381     jmp short 082ddh                          ; eb 6a
     12433    jmp short 0831ch                          ; eb 6a
    1238212434    mov ax, word [bp+004h]                    ; 8b 46 04
    1238312435    test ax, ax                               ; 85 c0
    12384     je short 08282h                           ; 74 08
     12436    je short 082c1h                           ; 74 08
    1238512437    lea dx, [bx+001h]                         ; 8d 57 01
    1238612438    mov cx, ax                                ; 89 c1
    1238712439    in AL, DX                                 ; ec
    12388     loop 0827fh                               ; e2 fd
     12440    loop 082beh                               ; e2 fd
    1238912441    mov ax, word [bp+006h]                    ; 8b 46 06
    1239012442    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1239412446    lea ax, [bx+001h]                         ; 8d 47 01
    1239512447    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12396     jne short 082a3h                          ; 75 07
     12448    jne short 082e2h                          ; 75 07
    1239712449    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12398     jbe short 082c0h                          ; 76 1d
     12450    jbe short 082ffh                          ; 76 1d
    1239912451    mov dx, ax                                ; 89 c2
    1240012452    mov cx, 08000h                            ; b9 00 80
     
    1240612458    add ax, 00800h                            ; 05 00 08
    1240712459    mov word [bp+00eh], ax                    ; 89 46 0e
    12408     jmp short 08293h                          ; eb d3
     12460    jmp short 082d2h                          ; eb d3
    1240912461    mov dx, ax                                ; 89 c2
    1241012462    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1241312465    mov es, [bp-00ah]                         ; 8e 46 f6
    1241412466    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12415     je short 082dbh                           ; 74 07
     12467    je short 0831ah                           ; 74 07
    1241612468    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1241712469    in AL, DX                                 ; ec
    12418     loop 082d8h                               ; e2 fd
     12470    loop 08317h                               ; e2 fd
    1241912471    xor dx, dx                                ; 31 d2
    1242012472    mov ax, dx                                ; 89 d0
     
    1242412476    pop bp                                    ; 5d
    1242512477    retn 0000ch                               ; c2 0c 00
    12426 scsi_enumerate_attached_devices_:            ; 0xf82e8 LB 0x4a6
     12478scsi_enumerate_attached_devices_:            ; 0xf8327 LB 0x4a6
    1242712479    push bp                                   ; 55
    1242812480    mov bp, sp                                ; 89 e5
     
    1243612488    mov dx, strict word 0000eh                ; ba 0e 00
    1243712489    mov ax, strict word 00040h                ; b8 40 00
    12438     call 0166ch                               ; e8 6e 93
     12490    call 0166ch                               ; e8 2f 93
    1243912491    mov di, 00122h                            ; bf 22 01
    1244012492    mov word [bp-020h], ax                    ; 89 46 e0
    1244112493    mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
    12442     jmp near 0870ch                           ; e9 00 04
     12494    jmp near 0874bh                           ; e9 00 04
    1244312495    cmp AL, strict byte 004h                  ; 3c 04
    12444     jc short 08313h                           ; 72 03
    12445     jmp near 08784h                           ; e9 71 04
     12496    jc short 08352h                           ; 72 03
     12497    jmp near 087c3h                           ; e9 71 04
    1244612498    mov cx, strict word 00010h                ; b9 10 00
    1244712499    xor bx, bx                                ; 31 db
    1244812500    mov dx, ss                                ; 8c d2
    1244912501    lea ax, [bp-046h]                         ; 8d 46 ba
    12450     call 0a100h                               ; e8 e0 1d
     12502    call 0a140h                               ; e8 e1 1d
    1245112503    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1245212504    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1246312515    lea bx, [bp-046h]                         ; 8d 5e ba
    1246412516    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12465     call 07e16h                               ; e8 cd fa
     12517    call 07e55h                               ; e8 cd fa
    1246612518    test al, al                               ; 84 c0
    12467     je short 0835bh                           ; 74 0e
     12519    je short 0839ah                           ; 74 0e
    1246812520    push 00b92h                               ; 68 92 0b
    1246912521    push 00bcbh                               ; 68 cb 0b
    1247012522    push strict byte 00007h                   ; 6a 07
    12471     call 01966h                               ; e8 0e 96
     12523    call 01966h                               ; e8 cf 95
    1247212524    add sp, strict byte 00006h                ; 83 c4 06
    1247312525    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1250112553    sal ax, 1                                 ; d1 e0
    1250212554    rcl dx, 1                                 ; d1 d2
    12503     loop 083aah                               ; e2 fa
     12555    loop 083e9h                               ; e2 fa
    1250412556    or bx, ax                                 ; 09 c3
    1250512557    or dx, si                                 ; 09 f2
     
    1250912561    mov word [bp-028h], bx                    ; 89 5e d8
    1251012562    test dx, dx                               ; 85 d2
    12511     jne short 083c9h                          ; 75 06
     12563    jne short 08408h                          ; 75 06
    1251212564    cmp bx, 00200h                            ; 81 fb 00 02
    12513     je short 083e9h                           ; 74 20
    12514     mov bx, 00da4h                            ; bb a4 0d
     12565    je short 08428h                           ; 74 20
     12566    mov bx, 00da0h                            ; bb a0 0d
    1251512567    mov cx, ds                                ; 8c d9
    1251612568    mov ax, strict word 00004h                ; b8 04 00
    12517     call 01923h                               ; e8 4f 95
     12569    call 01923h                               ; e8 10 95
    1251812570    push dx                                   ; 52
    1251912571    push word [bp-028h]                       ; ff 76 d8
     
    1252112573    push 00beah                               ; 68 ea 0b
    1252212574    push strict byte 00004h                   ; 6a 04
    12523     call 01966h                               ; e8 83 95
     12575    call 01966h                               ; e8 44 95
    1252412576    add sp, strict byte 0000ah                ; 83 c4 0a
    12525     jmp near 08700h                           ; e9 17 03
     12577    jmp near 0873fh                           ; e9 17 03
    1252612578    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1252712579    cmp AL, strict byte 001h                  ; 3c 01
    12528     jc short 083fch                           ; 72 0c
    12529     jbe short 08404h                          ; 76 12
     12580    jc short 0843bh                           ; 72 0c
     12581    jbe short 08443h                          ; 76 12
    1253012582    cmp AL, strict byte 003h                  ; 3c 03
    12531     je short 0840ch                           ; 74 16
     12583    je short 0844bh                           ; 74 16
    1253212584    cmp AL, strict byte 002h                  ; 3c 02
    12533     je short 08408h                           ; 74 0e
    12534     jmp short 08455h                          ; eb 59
     12585    je short 08447h                           ; 74 0e
     12586    jmp short 08494h                          ; eb 59
    1253512587    test al, al                               ; 84 c0
    12536     jne short 08455h                          ; 75 55
     12588    jne short 08494h                          ; 75 55
    1253712589    mov BL, strict byte 090h                  ; b3 90
    12538     jmp short 0840eh                          ; eb 0a
     12590    jmp short 0844dh                          ; eb 0a
    1253912591    mov BL, strict byte 098h                  ; b3 98
    12540     jmp short 0840eh                          ; eb 06
     12592    jmp short 0844dh                          ; eb 06
    1254112593    mov BL, strict byte 0a0h                  ; b3 a0
    12542     jmp short 0840eh                          ; eb 02
     12594    jmp short 0844dh                          ; eb 02
    1254312595    mov BL, strict byte 0a8h                  ; b3 a8
    1254412596    mov cl, bl                                ; 88 d9
     
    1254612598    xor ch, ch                                ; 30 ed
    1254712599    mov ax, cx                                ; 89 c8
    12548     call 016ach                               ; e8 92 92
     12600    call 016ach                               ; e8 53 92
    1254912601    test al, al                               ; 84 c0
    12550     je short 08455h                           ; 74 37
     12602    je short 08494h                           ; 74 37
    1255112603    mov al, bl                                ; 88 d8
    1255212604    db  0feh, 0c0h
    1255312605    ; inc al                                    ; fe c0
    1255412606    xor ah, ah                                ; 30 e4
    12555     call 016ach                               ; e8 85 92
     12607    call 016ach                               ; e8 46 92
    1255612608    xor ah, ah                                ; 30 e4
    1255712609    mov dx, ax                                ; 89 c2
    1255812610    sal dx, 008h                              ; c1 e2 08
    1255912611    mov al, bl                                ; 88 d8
    12560     call 016ach                               ; e8 79 92
     12612    call 016ach                               ; e8 3a 92
    1256112613    xor ah, ah                                ; 30 e4
    1256212614    add ax, dx                                ; 01 d0
     
    1256612618    add AL, strict byte 002h                  ; 04 02
    1256712619    xor ah, ah                                ; 30 e4
    12568     call 016ach                               ; e8 69 92
     12620    call 016ach                               ; e8 2a 92
    1256912621    xor ah, ah                                ; 30 e4
    1257012622    mov word [bp-018h], ax                    ; 89 46 e8
    1257112623    mov ax, cx                                ; 89 c8
    12572     call 016ach                               ; e8 5f 92
     12624    call 016ach                               ; e8 20 92
    1257312625    xor ah, ah                                ; 30 e4
    1257412626    mov word [bp-026h], ax                    ; 89 46 da
    12575     jmp near 08543h                           ; e9 ee 00
     12627    jmp near 08582h                           ; e9 ee 00
    1257612628    mov ax, word [bp-012h]                    ; 8b 46 ee
    1257712629    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1257912631    mov dx, word [bp-014h]                    ; 8b 56 ec
    1258012632    mov si, strict word 0000ch                ; be 0c 00
    12581     call 0a0e0h                               ; e8 79 1c
     12633    call 0a120h                               ; e8 7a 1c
    1258212634    mov word [bp-02ah], ax                    ; 89 46 d6
    1258312635    mov word [bp-016h], bx                    ; 89 5e ea
     
    1258612638    mov ax, word [bp-012h]                    ; 8b 46 ee
    1258712639    test ax, ax                               ; 85 c0
    12588     jnbe short 0848fh                         ; 77 15
    12589     je short 0847fh                           ; 74 03
    12590     jmp near 08504h                           ; e9 85 00
     12640    jnbe short 084ceh                         ; 77 15
     12641    je short 084beh                           ; 74 03
     12642    jmp near 08543h                           ; e9 85 00
    1259112643    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12592     jnbe short 0848fh                         ; 77 0a
    12593     jne short 0847ch                          ; 75 f5
     12644    jnbe short 084ceh                         ; 77 0a
     12645    jne short 084bbh                          ; 75 f5
    1259412646    cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
    12595     jnbe short 0848fh                         ; 77 02
    12596     jne short 08504h                          ; 75 75
     12647    jnbe short 084ceh                         ; 77 02
     12648    jne short 08543h                          ; 75 75
    1259712649    mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
    1259812650    mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
     
    1260112653    mov dx, word [bp-014h]                    ; 8b 56 ec
    1260212654    mov si, strict word 00006h                ; be 06 00
    12603     call 0a0e0h                               ; e8 38 1c
     12655    call 0a120h                               ; e8 39 1c
    1260412656    mov si, word [bp-01eh]                    ; 8b 76 e2
    1260512657    add si, dx                                ; 01 d6
     
    1261912671    mov dx, si                                ; 89 f2
    1262012672    mov si, strict word 00008h                ; be 08 00
    12621     call 0a0e0h                               ; e8 08 1c
     12673    call 0a120h                               ; e8 09 1c
    1262212674    mov word [bp-02eh], bx                    ; 89 5e d2
    1262312675    mov word [bp-030h], cx                    ; 89 4e d0
     
    1262812680    mov dx, word [bp-036h]                    ; 8b 56 ca
    1262912681    mov si, strict word 00010h                ; be 10 00
    12630     call 0a0e0h                               ; e8 ed 1b
     12682    call 0a120h                               ; e8 ee 1b
    1263112683    mov si, word [bp-032h]                    ; 8b 76 ce
    1263212684    add si, dx                                ; 01 d6
     
    1263512687    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1263612688    adc ax, bx                                ; 11 d8
    12637     jmp short 08543h                          ; eb 3f
     12689    jmp short 08582h                          ; eb 3f
    1263812690    test ax, ax                               ; 85 c0
    12639     jnbe short 0851ah                         ; 77 12
    12640     jne short 08526h                          ; 75 1c
     12691    jnbe short 08559h                         ; 77 12
     12692    jne short 08565h                          ; 75 1c
    1264112693    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12642     jnbe short 0851ah                         ; 77 0a
    12643     jne short 08526h                          ; 75 14
     12694    jnbe short 08559h                         ; 77 0a
     12695    jne short 08565h                          ; 75 14
    1264412696    cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
    12645     jnbe short 0851ah                         ; 77 02
    12646     jne short 08526h                          ; 75 0c
     12697    jnbe short 08559h                         ; 77 02
     12698    jne short 08565h                          ; 75 0c
    1264712699    mov word [bp-018h], 00080h                ; c7 46 e8 80 00
    1264812700    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
    12649     jmp short 0853fh                          ; eb 19
     12701    jmp short 0857eh                          ; eb 19
    1265012702    mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
    1265112703    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
     
    1265412706    mov dx, word [bp-014h]                    ; 8b 56 ec
    1265512707    mov si, strict word 0000bh                ; be 0b 00
    12656     call 0a0e0h                               ; e8 a1 1b
     12708    call 0a120h                               ; e8 a2 1b
    1265712709    mov si, dx                                ; 89 d6
    1265812710    mov dx, cx                                ; 89 ca
     
    1268912741    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1269012742    test dx, dx                               ; 85 d2
    12691     jne short 085b5h                          ; 75 06
     12743    jne short 085f4h                          ; 75 06
    1269212744    cmp si, 00400h                            ; 81 fe 00 04
    12693     jbe short 085c3h                          ; 76 0e
     12745    jbe short 08602h                          ; 76 0e
    1269412746    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1269512747    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12696     jmp short 085cbh                          ; eb 08
     12748    jmp short 0860ah                          ; eb 08
    1269712749    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1269812750    mov word [es:bx+032h], si                 ; 26 89 77 32
    12699     mov bx, 00da4h                            ; bb a4 0d
     12751    mov bx, 00da0h                            ; bb a0 0d
    1270012752    mov cx, ds                                ; 8c d9
    1270112753    mov ax, strict word 00004h                ; b8 04 00
    12702     call 01923h                               ; e8 4d 93
     12754    call 01923h                               ; e8 0e 93
    1270312755    push word [bp-012h]                       ; ff 76 ee
    1270412756    push word [bp-010h]                       ; ff 76 f0
     
    1271512767    push 00c18h                               ; 68 18 0c
    1271612768    push strict byte 00004h                   ; 6a 04
    12717     call 01966h                               ; e8 6b 93
     12769    call 01966h                               ; e8 2c 93
    1271812770    add sp, strict byte 00018h                ; 83 c4 18
    1271912771    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1274312795    mov dx, strict word 00075h                ; ba 75 00
    1274412796    mov ax, strict word 00040h                ; b8 40 00
    12745     call 01650h                               ; e8 01 90
     12797    call 01650h                               ; e8 c2 8f
    1274612798    mov bl, al                                ; 88 c3
    1274712799    db  0feh, 0c3h
     
    1275012802    mov dx, strict word 00075h                ; ba 75 00
    1275112803    mov ax, strict word 00040h                ; b8 40 00
    12752     call 0165eh                               ; e8 00 90
     12804    call 0165eh                               ; e8 c1 8f
    1275312805    inc byte [bp-00ch]                        ; fe 46 f4
    12754     jmp near 086f5h                           ; e9 91 00
    12755     mov bx, 00da4h                            ; bb a4 0d
     12806    jmp near 08734h                           ; e9 91 00
     12807    mov bx, 00da0h                            ; bb a0 0d
    1275612808    mov cx, ds                                ; 8c d9
    1275712809    mov ax, strict word 00004h                ; b8 04 00
    12758     call 01923h                               ; e8 b4 92
     12810    call 01923h                               ; e8 75 92
    1275912811    push word [bp-022h]                       ; ff 76 de
    1276012812    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1276312815    push 00c46h                               ; 68 46 0c
    1276412816    push strict byte 00004h                   ; 6a 04
    12765     call 01966h                               ; e8 e6 92
     12817    call 01966h                               ; e8 a7 92
    1276612818    add sp, strict byte 00008h                ; 83 c4 08
    1276712819    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1276912821    mov byte [bp-00eh], al                    ; 88 46 f2
    1277012822    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
    12771     je short 08697h                           ; 74 05
     12823    je short 086d6h                           ; 74 05
    1277212824    mov dx, strict word 00001h                ; ba 01 00
    12773     jmp short 08699h                          ; eb 02
     12825    jmp short 086d8h                          ; eb 02
    1277412826    xor dx, dx                                ; 31 d2
    1277512827    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1280712859    inc word [bp-022h]                        ; ff 46 de
    1280812860    cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
    12809     jl short 0870ch                           ; 7c 03
    12810     jmp near 08784h                           ; e9 78 00
     12861    jl short 0874bh                           ; 7c 03
     12862    jmp near 087c3h                           ; e9 78 00
    1281112863    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1281212864    xor al, al                                ; 30 c0
     
    1282712879    lea bx, [bp-046h]                         ; 8d 5e ba
    1282812880    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12829     call 07e16h                               ; e8 d7 f6
     12881    call 07e55h                               ; e8 d7 f6
    1283012882    test al, al                               ; 84 c0
    12831     je short 08751h                           ; 74 0e
     12883    je short 08790h                           ; 74 0e
    1283212884    push 00b92h                               ; 68 92 0b
    1283312885    push 00bb2h                               ; 68 b2 0b
    1283412886    push strict byte 00007h                   ; 6a 07
    12835     call 01966h                               ; e8 18 92
     12887    call 01966h                               ; e8 d9 91
    1283612888    add sp, strict byte 00006h                ; 83 c4 06
    1283712889    mov es, [bp-020h]                         ; 8e 46 e0
     
    1283912891    mov byte [bp-00ch], al                    ; 88 46 f4
    1284012892    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12841     jne short 0876dh                          ; 75 0a
     12893    jne short 087ach                          ; 75 0a
    1284212894    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12843     jne short 0876dh                          ; 75 03
    12844     jmp near 0830ch                           ; e9 9f fb
     12895    jne short 087ach                          ; 75 03
     12896    jmp near 0834bh                           ; e9 9f fb
    1284512897    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12846     jne short 086f5h                          ; 75 81
     12898    jne short 08734h                          ; 75 81
    1284712899    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1284812900    and AL, strict byte 01fh                  ; 24 1f
    1284912901    cmp AL, strict byte 005h                  ; 3c 05
    12850     jne short 08781h                          ; 75 03
    12851     jmp near 08664h                           ; e9 e3 fe
    12852     jmp near 086f5h                           ; e9 71 ff
     12902    jne short 087c0h                          ; 75 03
     12903    jmp near 086a3h                           ; e9 e3 fe
     12904    jmp near 08734h                           ; e9 71 ff
    1285312905    lea sp, [bp-00ah]                         ; 8d 66 f6
    1285412906    pop di                                    ; 5f
     
    1285912911    pop bp                                    ; 5d
    1286012912    retn                                      ; c3
    12861 scsi_pci_init_:                              ; 0xf878e LB 0x2a
     12913scsi_pci_init_:                              ; 0xf87cd LB 0x2a
    1286212914    push bp                                   ; 55
    1286312915    mov bp, sp                                ; 89 e5
    1286412916    push bx                                   ; 53
    1286512917    push cx                                   ; 51
    12866     call 09eb5h                               ; e8 1f 17
     12918    call 09ef4h                               ; e8 1f 17
    1286712919    mov bx, ax                                ; 89 c3
    1286812920    cmp ax, strict word 0ffffh                ; 3d ff ff
    12869     je short 087b1h                           ; 74 14
     12921    je short 087f0h                           ; 74 14
    1287012922    mov dl, bl                                ; 88 da
    1287112923    xor dh, dh                                ; 30 f6
     
    1287512927    mov cx, strict word 00007h                ; b9 07 00
    1287612928    mov bx, strict word 00004h                ; bb 04 00
    12877     call 09f7eh                               ; e8 cd 17
     12929    call 09fbdh                               ; e8 cd 17
    1287812930    lea sp, [bp-004h]                         ; 8d 66 fc
    1287912931    pop cx                                    ; 59
     
    1288112933    pop bp                                    ; 5d
    1288212934    retn                                      ; c3
    12883 _scsi_init:                                  ; 0xf87b8 LB 0x81
     12935_scsi_init:                                  ; 0xf87f7 LB 0x81
    1288412936    push bp                                   ; 55
    1288512937    mov bp, sp                                ; 89 e5
    1288612938    mov dx, strict word 0000eh                ; ba 0e 00
    1288712939    mov ax, strict word 00040h                ; b8 40 00
    12888     call 0166ch                               ; e8 a8 8e
     12940    call 0166ch                               ; e8 69 8e
    1288912941    mov bx, 00122h                            ; bb 22 01
    1289012942    mov es, ax                                ; 8e c0
     
    1289712949    ; sub ah, ah                                ; 2a e4
    1289812950    cmp AL, strict byte 055h                  ; 3c 55
    12899     jne short 087f1h                          ; 75 15
     12951    jne short 08830h                          ; 75 15
    1290012952    xor al, al                                ; 30 c0
    1290112953    mov dx, 00433h                            ; ba 33 04
    1290212954    out DX, AL                                ; ee
    1290312955    mov ax, 00430h                            ; b8 30 04
    12904     call 082e8h                               ; e8 00 fb
     12956    call 08327h                               ; e8 00 fb
    1290512957    mov dx, 01040h                            ; ba 40 10
    1290612958    mov ax, 0104bh                            ; b8 4b 10
    12907     call 0878eh                               ; e8 9d ff
     12959    call 087cdh                               ; e8 9d ff
    1290812960    mov AL, strict byte 055h                  ; b0 55
    1290912961    mov dx, 00436h                            ; ba 36 04
     
    1291312965    ; sub ah, ah                                ; 2a e4
    1291412966    cmp AL, strict byte 055h                  ; 3c 55
    12915     jne short 08813h                          ; 75 15
     12967    jne short 08852h                          ; 75 15
    1291612968    xor al, al                                ; 30 c0
    1291712969    mov dx, 00437h                            ; ba 37 04
    1291812970    out DX, AL                                ; ee
    1291912971    mov ax, 00434h                            ; b8 34 04
    12920     call 082e8h                               ; e8 de fa
     12972    call 08327h                               ; e8 de fa
    1292112973    mov dx, strict word 00030h                ; ba 30 00
    1292212974    mov ax, 01000h                            ; b8 00 10
    12923     call 0878eh                               ; e8 7b ff
     12975    call 087cdh                               ; e8 7b ff
    1292412976    mov AL, strict byte 055h                  ; b0 55
    1292512977    mov dx, 0043ah                            ; ba 3a 04
     
    1292912981    ; sub ah, ah                                ; 2a e4
    1293012982    cmp AL, strict byte 055h                  ; 3c 55
    12931     jne short 08835h                          ; 75 15
     12983    jne short 08874h                          ; 75 15
    1293212984    xor al, al                                ; 30 c0
    1293312985    mov dx, 0043bh                            ; ba 3b 04
    1293412986    out DX, AL                                ; ee
    1293512987    mov ax, 00438h                            ; b8 38 04
    12936     call 082e8h                               ; e8 bc fa
     12988    call 08327h                               ; e8 bc fa
    1293712989    mov dx, strict word 00054h                ; ba 54 00
    1293812990    mov ax, 01000h                            ; b8 00 10
    12939     call 0878eh                               ; e8 59 ff
     12991    call 087cdh                               ; e8 59 ff
    1294012992    mov sp, bp                                ; 89 ec
    1294112993    pop bp                                    ; 5d
    1294212994    retn                                      ; c3
    12943 ahci_ctrl_extract_bits_:                     ; 0xf8839 LB 0x1c
     12995ahci_ctrl_extract_bits_:                     ; 0xf8878 LB 0x1c
    1294412996    push si                                   ; 56
    1294512997    push bp                                   ; 55
     
    1295013002    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1295113003    xor ch, ch                                ; 30 ed
    12952     jcxz 08850h                               ; e3 06
     13004    jcxz 0888fh                               ; e3 06
    1295313005    shr dx, 1                                 ; d1 ea
    1295413006    rcr ax, 1                                 ; d1 d8
    12955     loop 0884ah                               ; e2 fa
     13007    loop 08889h                               ; e2 fa
    1295613008    pop bp                                    ; 5d
    1295713009    pop si                                    ; 5e
    1295813010    retn 00002h                               ; c2 02 00
    12959 ahci_addr_to_phys_:                          ; 0xf8855 LB 0x1e
     13011ahci_addr_to_phys_:                          ; 0xf8894 LB 0x1e
    1296013012    push bx                                   ; 53
    1296113013    push cx                                   ; 51
     
    1296813020    sal ax, 1                                 ; d1 e0
    1296913021    rcl dx, 1                                 ; d1 d2
    12970     loop 08863h                               ; e2 fa
     13022    loop 088a2h                               ; e2 fa
    1297113023    xor cx, cx                                ; 31 c9
    1297213024    add ax, bx                                ; 01 d8
     
    1297613028    pop bx                                    ; 5b
    1297713029    retn                                      ; c3
    12978 ahci_port_cmd_sync_:                         ; 0xf8873 LB 0x156
     13030ahci_port_cmd_sync_:                         ; 0xf88b2 LB 0x156
    1297913031    push bp                                   ; 55
    1298013032    mov bp, sp                                ; 89 e5
     
    1299113043    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1299213044    cmp AL, strict byte 0ffh                  ; 3c ff
    12993     jne short 08896h                          ; 75 03
    12994     jmp near 089c1h                           ; e9 2b 01
     13045    jne short 088d5h                          ; 75 03
     13046    jmp near 08a00h                           ; e9 2b 01
    1299513047    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1299613048    xor ah, ah                                ; 30 e4
     
    1300513057    lea ax, [si+00080h]                       ; 8d 84 80 00
    1300613058    mov dx, cx                                ; 89 ca
    13007     call 08855h                               ; e8 92 ff
     13059    call 08894h                               ; e8 92 ff
    1300813060    mov es, cx                                ; 8e c1
    1300913061    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1307113123    xchg dx, ax                               ; 92
    1307213124    test dh, 040h                             ; f6 c6 40
    13073     jne short 08954h                          ; 75 04
     13125    jne short 08993h                          ; 75 04
    1307413126    test AL, strict byte 001h                 ; a8 01
    13075     je short 08958h                           ; 74 04
     13127    je short 08997h                           ; 74 04
    1307613128    mov AL, strict byte 001h                  ; b0 01
    13077     jmp short 0895ah                          ; eb 02
     13129    jmp short 08999h                          ; eb 02
    1307813130    xor al, al                                ; 30 c0
    1307913131    test al, al                               ; 84 c0
    13080     je short 08927h                           ; 74 c9
     13132    je short 08966h                           ; 74 c9
    1308113133    mov al, byte [bp-008h]                    ; 8a 46 f8
    1308213134    xor ah, ah                                ; 30 e4
     
    1313413186    pop bp                                    ; 5d
    1313513187    retn                                      ; c3
    13136 ahci_cmd_data_:                              ; 0xf89c9 LB 0x267
     13188ahci_cmd_data_:                              ; 0xf8a08 LB 0x267
    1313713189    push bp                                   ; 55
    1313813190    mov bp, sp                                ; 89 e5
     
    1315913211    mov ax, 00080h                            ; b8 80 00
    1316013212    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13161     call 0a100h                               ; e8 f9 16
     13213    call 0a140h                               ; e8 fa 16
    1316213214    mov es, [bp-00ah]                         ; 8e 46 f6
    1316313215    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1317713229    mov dx, word [es:si]                      ; 26 8b 14
    1317813230    mov si, strict word 00008h                ; be 08 00
    13179     call 0a0e0h                               ; e8 95 16
     13231    call 0a120h                               ; e8 96 16
    1318013232    mov es, [bp-00ah]                         ; 8e 46 f6
    1318113233    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1318813240    mov dx, word [es:si]                      ; 26 8b 14
    1318913241    mov si, strict word 00010h                ; be 10 00
    13190     call 0a0e0h                               ; e8 6f 16
     13242    call 0a120h                               ; e8 70 16
    1319113243    mov es, [bp-00ah]                         ; 8e 46 f6
    1319213244    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1320013252    mov dx, word [es:si]                      ; 26 8b 14
    1320113253    mov si, strict word 00018h                ; be 18 00
    13202     call 0a0e0h                               ; e8 43 16
     13254    call 0a120h                               ; e8 44 16
    1320313255    mov es, [bp-00ah]                         ; 8e 46 f6
    1320413256    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1321113263    mov dx, word [es:si]                      ; 26 8b 14
    1321213264    mov si, strict word 00020h                ; be 20 00
    13213     call 0a0e0h                               ; e8 1d 16
     13265    call 0a120h                               ; e8 1e 16
    1321413266    mov es, [bp-00ah]                         ; 8e 46 f6
    1321513267    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1322213274    mov dx, word [es:si]                      ; 26 8b 14
    1322313275    mov si, strict word 00028h                ; be 28 00
    13224     call 0a0e0h                               ; e8 f7 15
     13276    call 0a120h                               ; e8 f8 15
    1322513277    mov es, [bp-00ah]                         ; 8e 46 f6
    1322613278    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1323613288    mov bx, word [bp-010h]                    ; 8b 5e f0
    1323713289    xor cx, cx                                ; 31 c9
    13238     call 0a090h                               ; e8 72 15
     13290    call 0a0d0h                               ; e8 73 15
    1323913291    push dx                                   ; 52
    1324013292    push ax                                   ; 50
     
    1324613298    mov ax, 0026ah                            ; b8 6a 02
    1324713299    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13248     call 09fdeh                               ; e8 a4 14
     13300    call 0a01dh                               ; e8 a4 14
    1324913301    mov es, [bp-00ah]                         ; 8e 46 f6
    1325013302    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1326913321    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1327013322    test ax, ax                               ; 85 c0
    13271     je short 08bcch                           ; 74 3b
     13323    je short 08c0bh                           ; 74 3b
    1327213324    dec ax                                    ; 48
    1327313325    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1328713339    mov al, byte [bp-008h]                    ; 8a 46 f8
    1328813340    cmp AL, strict byte 035h                  ; 3c 35
    13289     jne short 08bd9h                          ; 75 06
     13341    jne short 08c18h                          ; 75 06
    1329013342    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13291     jmp short 08bf0h                          ; eb 17
     13343    jmp short 08c2fh                          ; eb 17
    1329213344    cmp AL, strict byte 0a0h                  ; 3c a0
    13293     jne short 08bech                          ; 75 0f
     13345    jne short 08c2bh                          ; 75 0f
    1329413346    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1329513347    les bx, [bp-00eh]                         ; c4 5e f2
    1329613348    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13297     jmp short 08bf0h                          ; eb 04
     13349    jmp short 08c2fh                          ; eb 04
    1329813350    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1329913351    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1330213354    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1330313355    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13304     call 08873h                               ; e8 71 fc
     13356    call 088b2h                               ; e8 71 fc
    1330513357    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1330613358    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1330913361    add ax, 0026ah                            ; 05 6a 02
    1331013362    mov dx, cx                                ; 89 ca
    13311     call 0a055h                               ; e8 3e 14
     13363    call 0a094h                               ; e8 3e 14
    1331213364    mov es, cx                                ; 8e c1
    1331313365    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1331413366    test al, al                               ; 84 c0
    13315     je short 08c26h                           ; 74 05
     13367    je short 08c65h                           ; 74 05
    1331613368    mov ax, strict word 00004h                ; b8 04 00
    13317     jmp short 08c28h                          ; eb 02
     13369    jmp short 08c67h                          ; eb 02
    1331813370    xor ah, ah                                ; 30 e4
    1331913371    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1332313375    pop bp                                    ; 5d
    1332413376    retn                                      ; c3
    13325 ahci_port_deinit_current_:                   ; 0xf8c30 LB 0x180
     13377ahci_port_deinit_current_:                   ; 0xf8c6f LB 0x180
    1332613378    push bp                                   ; 55
    1332713379    mov bp, sp                                ; 89 e5
     
    1333813390    mov byte [bp-00ah], al                    ; 88 46 f6
    1333913391    cmp AL, strict byte 0ffh                  ; 3c ff
    13340     je short 08cb1h                           ; 74 5f
     13392    je short 08cf0h                           ; 74 5f
    1334113393    xor ah, ah                                ; 30 e4
    1334213394    sal ax, 007h                              ; c1 e0 07
     
    1338213434    xchg dx, ax                               ; 92
    1338313435    test ax, 0c011h                           ; a9 11 c0
    13384     je short 08cb4h                           ; 74 07
     13436    je short 08cf3h                           ; 74 07
    1338513437    mov AL, strict byte 001h                  ; b0 01
    13386     jmp short 08cb6h                          ; eb 05
    13387     jmp near 08da7h                           ; e9 f3 00
     13438    jmp short 08cf5h                          ; eb 05
     13439    jmp near 08de6h                           ; e9 f3 00
    1338813440    xor al, al                                ; 30 c0
    1338913441    cmp AL, strict byte 001h                  ; 3c 01
    13390     je short 08c84h                           ; 74 ca
     13442    je short 08cc3h                           ; 74 ca
    1339113443    mov cx, strict word 00020h                ; b9 20 00
    1339213444    xor bx, bx                                ; 31 db
    1339313445    mov ax, di                                ; 89 f8
    1339413446    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13395     call 0a100h                               ; e8 39 14
     13447    call 0a140h                               ; e8 3a 14
    1339613448    lea ax, [di+00080h]                       ; 8d 85 80 00
    1339713449    mov cx, strict word 00040h                ; b9 40 00
    1339813450    xor bx, bx                                ; 31 db
    1339913451    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13400     call 0a100h                               ; e8 2a 14
     13452    call 0a140h                               ; e8 2b 14
    1340113453    lea ax, [di+00200h]                       ; 8d 85 00 02
    1340213454    mov cx, strict word 00060h                ; b9 60 00
    1340313455    xor bx, bx                                ; 31 db
    1340413456    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13405     call 0a100h                               ; e8 1b 14
     13457    call 0a140h                               ; e8 1c 14
    1340613458    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1340713459    xor ah, ah                                ; 30 e4
     
    1350813560    pop bp                                    ; 5d
    1350913561    retn                                      ; c3
    13510 ahci_port_init_:                             ; 0xf8db0 LB 0x24d
     13562ahci_port_init_:                             ; 0xf8def LB 0x24d
    1351113563    push bp                                   ; 55
    1351213564    mov bp, sp                                ; 89 e5
     
    1351813570    mov word [bp-00ah], dx                    ; 89 56 f6
    1351913571    mov byte [bp-008h], bl                    ; 88 5e f8
    13520     call 08c30h                               ; e8 6c fe
     13572    call 08c6fh                               ; e8 6c fe
    1352113573    mov al, bl                                ; 88 d8
    1352213574    xor ah, ah                                ; 30 e4
     
    1356713619    xchg dx, ax                               ; 92
    1356813620    test ax, 0c011h                           ; a9 11 c0
    13569     je short 08e35h                           ; 74 04
     13621    je short 08e74h                           ; 74 04
    1357013622    mov AL, strict byte 001h                  ; b0 01
    13571     jmp short 08e37h                          ; eb 02
     13623    jmp short 08e76h                          ; eb 02
    1357213624    xor al, al                                ; 30 c0
    1357313625    cmp AL, strict byte 001h                  ; 3c 01
    13574     je short 08e00h                           ; 74 c5
     13626    je short 08e3fh                           ; 74 c5
    1357513627    mov cx, strict word 00020h                ; b9 20 00
    1357613628    xor bx, bx                                ; 31 db
    1357713629    mov ax, si                                ; 89 f0
    1357813630    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13579     call 0a100h                               ; e8 b8 12
     13631    call 0a140h                               ; e8 b9 12
    1358013632    lea ax, [si+00080h]                       ; 8d 84 80 00
    1358113633    mov cx, strict word 00040h                ; b9 40 00
    1358213634    xor bx, bx                                ; 31 db
    1358313635    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13584     call 0a100h                               ; e8 a9 12
     13636    call 0a140h                               ; e8 aa 12
    1358513637    lea di, [si+00200h]                       ; 8d bc 00 02
    1358613638    mov cx, strict word 00060h                ; b9 60 00
     
    1358813640    mov ax, di                                ; 89 f8
    1358913641    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13590     call 0a100h                               ; e8 98 12
     13642    call 0a140h                               ; e8 99 12
    1359113643    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1359213644    xor bh, bh                                ; 30 ff
     
    1360613658    mov ax, di                                ; 89 f8
    1360713659    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13608     call 08855h                               ; e8 bf f9
     13660    call 08894h                               ; e8 bf f9
    1360913661    mov es, [bp-00ah]                         ; 8e 46 f6
    1361013662    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1365113703    mov ax, si                                ; 89 f0
    1365213704    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13653     call 08855h                               ; e8 53 f9
     13705    call 08894h                               ; e8 53 f9
    1365413706    mov es, [bp-00ah]                         ; 8e 46 f6
    1365513707    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1375613808    pop bp                                    ; 5d
    1375713809    retn                                      ; c3
    13758 @ahci_read_sectors:                          ; 0xf8ffd LB 0xa8
     13810@ahci_read_sectors:                          ; 0xf903c LB 0xa8
    1375913811    push bp                                   ; 55
    1376013812    mov bp, sp                                ; 89 e5
     
    1376713819    sub bx, strict byte 0000ch                ; 83 eb 0c
    1376813820    cmp bx, strict byte 00004h                ; 83 fb 04
    13769     jbe short 09023h                          ; 76 0f
     13821    jbe short 09062h                          ; 76 0f
    1377013822    push bx                                   ; 53
    1377113823    push 00c62h                               ; 68 62 0c
    1377213824    push 00c74h                               ; 68 74 0c
    1377313825    push strict byte 00007h                   ; 6a 07
    13774     call 01966h                               ; e8 46 89
     13826    call 01966h                               ; e8 07 89
    1377513827    add sp, strict byte 00008h                ; 83 c4 08
    1377613828    xor di, di                                ; 31 ff
     
    1378713839    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1378813840    xor ax, ax                                ; 31 c0
    13789     call 08db0h                               ; e8 60 fd
     13841    call 08defh                               ; e8 60 fd
    1379013842    mov bx, strict word 00025h                ; bb 25 00
    1379113843    mov ax, si                                ; 89 f0
    1379213844    mov dx, word [bp+006h]                    ; 8b 56 06
    13793     call 089c9h                               ; e8 6e f9
     13845    call 08a08h                               ; e8 6e f9
    1379413846    mov word [bp-006h], ax                    ; 89 46 fa
    1379513847    mov es, [bp+006h]                         ; 8e 46 06
     
    1382013872    pop bp                                    ; 5d
    1382113873    retn 00004h                               ; c2 04 00
    13822 @ahci_write_sectors:                         ; 0xf90a5 LB 0x86
     13874@ahci_write_sectors:                         ; 0xf90e4 LB 0x86
    1382313875    push bp                                   ; 55
    1382413876    mov bp, sp                                ; 89 e5
     
    1383213884    sub dx, strict byte 0000ch                ; 83 ea 0c
    1383313885    cmp dx, strict byte 00004h                ; 83 fa 04
    13834     jbe short 090cfh                          ; 76 0f
     13886    jbe short 0910eh                          ; 76 0f
    1383513887    push dx                                   ; 52
    1383613888    push 00c93h                               ; 68 93 0c
    1383713889    push 00c74h                               ; 68 74 0c
    1383813890    push strict byte 00007h                   ; 6a 07
    13839     call 01966h                               ; e8 9a 88
     13891    call 01966h                               ; e8 5b 88
    1384013892    add sp, strict byte 00008h                ; 83 c4 08
    1384113893    xor bx, bx                                ; 31 db
     
    1385213904    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1385313905    xor ax, ax                                ; 31 c0
    13854     call 08db0h                               ; e8 b6 fc
     13906    call 08defh                               ; e8 b6 fc
    1385513907    mov bx, strict word 00035h                ; bb 35 00
    1385613908    mov ax, si                                ; 89 f0
    1385713909    mov dx, cx                                ; 89 ca
    13858     call 089c9h                               ; e8 c5 f8
     13910    call 08a08h                               ; e8 c5 f8
    1385913911    mov dx, ax                                ; 89 c2
    1386013912    mov es, cx                                ; 8e c1
     
    1387113923    pop bp                                    ; 5d
    1387213924    retn 00004h                               ; c2 04 00
    13873 ahci_cmd_packet_:                            ; 0xf912b LB 0x18a
     13925ahci_cmd_packet_:                            ; 0xf916a LB 0x18a
    1387413926    push bp                                   ; 55
    1387513927    mov bp, sp                                ; 89 e5
     
    1388313935    mov dx, strict word 0000eh                ; ba 0e 00
    1388413936    mov ax, strict word 00040h                ; b8 40 00
    13885     call 0166ch                               ; e8 26 85
     13937    call 0166ch                               ; e8 e7 84
    1388613938    mov si, 00122h                            ; be 22 01
    1388713939    mov word [bp-008h], ax                    ; 89 46 f8
    1388813940    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13889     jne short 09171h                          ; 75 1f
    13890     mov bx, 00da4h                            ; bb a4 0d
     13941    jne short 091b0h                          ; 75 1f
     13942    mov bx, 00da0h                            ; bb a0 0d
    1389113943    mov cx, ds                                ; 8c d9
    1389213944    mov ax, strict word 00004h                ; b8 04 00
    13893     call 01923h                               ; e8 c6 87
     13945    call 01923h                               ; e8 87 87
    1389413946    push 00ca6h                               ; 68 a6 0c
    1389513947    push 00cb6h                               ; 68 b6 0c
    1389613948    push strict byte 00004h                   ; 6a 04
    13897     call 01966h                               ; e8 fe 87
     13949    call 01966h                               ; e8 bf 87
    1389813950    add sp, strict byte 00006h                ; 83 c4 06
    1389913951    mov ax, strict word 00001h                ; b8 01 00
    13900     jmp near 092ach                           ; e9 3b 01
     13952    jmp near 092ebh                           ; e9 3b 01
    1390113953    test byte [bp+004h], 001h                 ; f6 46 04 01
    13902     jne short 0916bh                          ; 75 f4
     13954    jne short 091aah                          ; 75 f4
    1390313955    mov ax, word [bp+006h]                    ; 8b 46 06
    1390413956    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1390613958    sal ax, 1                                 ; d1 e0
    1390713959    rcl dx, 1                                 ; d1 d2
    13908     loop 09180h                               ; e2 fa
     13960    loop 091bfh                               ; e2 fa
    1390913961    mov es, [bp-008h]                         ; 8e 46 f8
    1391013962    mov word [es:si], ax                      ; 26 89 04
     
    1392013972    mov dx, word [bp+008h]                    ; 8b 56 08
    1392113973    xor cx, cx                                ; 31 c9
    13922     call 0a0b0h                               ; e8 f7 0e
     13974    call 0a0f0h                               ; e8 f8 0e
    1392313975    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1392413976    xor di, di                                ; 31 ff
     
    1393913991    mov bx, ax                                ; 89 c3
    1394013992    xor al, al                                ; 30 c0
    13941     call 08db0h                               ; e8 b8 fb
     13993    call 08defh                               ; e8 b8 fb
    1394213994    mov al, byte [bp-006h]                    ; 8a 46 fa
    1394313995    xor ah, ah                                ; 30 e4
     
    1394713999    mov ax, 000c0h                            ; b8 c0 00
    1394814000    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13949     call 0a110h                               ; e8 03 0f
     14001    call 0a150h                               ; e8 04 0f
    1395014002    mov es, [bp-008h]                         ; 8e 46 f8
    1395114003    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1395414006    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1395514007    test ax, ax                               ; 85 c0
    13956     je short 0924bh                           ; 74 27
     14008    je short 0928ah                           ; 74 27
    1395714009    dec ax                                    ; 48
    1395814010    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1396714019    mov ax, si                                ; 89 f0
    1396814020    mov dx, word [bp-008h]                    ; 8b 56 f8
    13969     call 089c9h                               ; e8 73 f7
     14021    call 08a08h                               ; e8 73 f7
    1397014022    les bx, [bp-00eh]                         ; c4 5e f2
    1397114023    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1399414046    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1399514047    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13996     jne short 092aah                          ; 75 05
     14048    jne short 092e9h                          ; 75 05
    1399714049    mov ax, strict word 00004h                ; b8 04 00
    13998     jmp short 092ach                          ; eb 02
     14050    jmp short 092ebh                          ; eb 02
    1399914051    xor ax, ax                                ; 31 c0
    1400014052    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1400314055    pop bp                                    ; 5d
    1400414056    retn 0000ch                               ; c2 0c 00
    14005 wait_ticks_device_init_:                     ; 0xf92b5 LB 0x5
     14057wait_ticks_device_init_:                     ; 0xf92f4 LB 0x5
    1400614058    push bp                                   ; 55
    1400714059    mov bp, sp                                ; 89 e5
    1400814060    pop bp                                    ; 5d
    1400914061    retn                                      ; c3
    14010 ahci_port_detect_device_:                    ; 0xf92ba LB 0x4ee
     14062ahci_port_detect_device_:                    ; 0xf92f9 LB 0x4ee
    1401114063    push bp                                   ; 55
    1401214064    mov bp, sp                                ; 89 e5
     
    1402214074    xor ch, ch                                ; 30 ed
    1402314075    mov bx, cx                                ; 89 cb
    14024     call 08db0h                               ; e8 d6 fa
     14076    call 08defh                               ; e8 d6 fa
    1402514077    mov dx, strict word 0000eh                ; ba 0e 00
    1402614078    mov ax, strict word 00040h                ; b8 40 00
    14027     call 0166ch                               ; e8 89 83
     14079    call 0166ch                               ; e8 4a 83
    1402814080    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1402914081    mov word [bp-016h], ax                    ; 89 46 ea
     
    1408414136    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1408514137    cmp ax, word [bp-024h]                    ; 3b 46 dc
    14086     jc short 0938ch                           ; 72 11
     14138    jc short 093cbh                           ; 72 11
    1408714139    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1408814140    cmp ax, word [bp-024h]                    ; 3b 46 dc
    14089     jne short 093d8h                          ; 75 54
     14141    jne short 09417h                          ; 75 54
    1409014142    mov ax, word [es:di]                      ; 26 8b 05
    1409114143    cmp ax, word [bp-01ah]                    ; 3b 46 e6
    14092     jnc short 093d8h                          ; 73 4c
     14144    jnc short 09417h                          ; 73 4c
    1409314145    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1409414146    xor ah, ah                                ; 30 e4
     
    1411814170    mov bx, strict word 0000fh                ; bb 0f 00
    1411914171    xor cx, cx                                ; 31 c9
    14120     call 08839h                               ; e8 68 f4
     14172    call 08878h                               ; e8 68 f4
    1412114173    cmp ax, strict word 00003h                ; 3d 03 00
    14122     jne short 0936fh                          ; 75 99
    14123     jmp short 093e1h                          ; eb 09
     14174    jne short 093aeh                          ; 75 99
     14175    jmp short 09420h                          ; eb 09
    1412414176    cmp word [bp-01ch], strict byte 00000h    ; 83 7e e4 00
    14125     jne short 093e1h                          ; 75 03
    14126     jmp near 097a0h                           ; e9 bf 03
     14177    jne short 09420h                          ; 75 03
     14178    jmp near 097dfh                           ; e9 bf 03
    1412714179    push strict byte 00000h                   ; 6a 00
    1412814180    mov bx, strict word 0000fh                ; bb 0f 00
     
    1413014182    mov ax, word [bp-020h]                    ; 8b 46 e0
    1413114183    mov dx, word [bp-01eh]                    ; 8b 56 e2
    14132     call 08839h                               ; e8 48 f4
     14184    call 08878h                               ; e8 48 f4
    1413314185    cmp ax, strict word 00003h                ; 3d 03 00
    14134     jne short 093deh                          ; 75 e8
     14186    jne short 0941dh                          ; 75 e8
    1413514187    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1413614188    xor ah, ah                                ; 30 e4
     
    1416314215    mov byte [bp-008h], al                    ; 88 46 f8
    1416414216    cmp AL, strict byte 004h                  ; 3c 04
    14165     jnc short 093deh                          ; 73 99
     14217    jnc short 0941dh                          ; 73 99
    1416614218    lea ax, [di+00118h]                       ; 8d 85 18 01
    1416714219    mov es, [bp-018h]                         ; 8e 46 e8
     
    1421314265    mov byte [bp-00eh], dl                    ; 88 56 f2
    1421414266    test bx, bx                               ; 85 db
    14215     jne short 0950fh                          ; 75 57
     14267    jne short 0954eh                          ; 75 57
    1421614268    cmp ax, 00101h                            ; 3d 01 01
    14217     jne short 0950fh                          ; 75 52
     14269    jne short 0954eh                          ; 75 52
    1421814270    mov es, [bp-016h]                         ; 8e 46 ea
    1421914271    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1423014282    mov ax, word [bp-010h]                    ; 8b 46 f0
    1423114283    mov dx, es                                ; 8c c2
    14232     call 089c9h                               ; e8 cc f4
     14284    call 08a08h                               ; e8 cc f4
    1423314285    mov al, byte [bp-00eh]                    ; 8a 46 f2
    1423414286    mov byte [bp-00ch], al                    ; 88 46 f4
    1423514287    test byte [bp-00232h], 080h               ; f6 86 ce fd 80
    14236     je short 09512h                           ; 74 08
     14288    je short 09551h                           ; 74 08
    1423714289    mov ax, strict word 00001h                ; b8 01 00
    14238     jmp short 09514h                          ; eb 05
    14239     jmp near 096dbh                           ; e9 c9 01
     14290    jmp short 09553h                          ; eb 05
     14291    jmp near 0971ah                           ; e9 c9 01
    1424014292    xor ax, ax                                ; 31 c0
    1424114293    mov dl, al                                ; 88 c2
     
    1425214304    mov word [bp-022h], ax                    ; 89 46 de
    1425314305    cmp di, 00fffh                            ; 81 ff ff 0f
    14254     jne short 0955ch                          ; 75 1b
     14306    jne short 0959bh                          ; 75 1b
    1425514307    cmp si, strict byte 0ffffh                ; 83 fe ff
    14256     jne short 0955ch                          ; 75 16
     14308    jne short 0959bh                          ; 75 16
    1425714309    mov ax, word [bp-00164h]                  ; 8b 86 9c fe
    1425814310    mov word [bp-022h], ax                    ; 89 46 de
     
    1429114343    mov al, byte [bp-008h]                    ; 8a 46 f8
    1429214344    cmp AL, strict byte 001h                  ; 3c 01
    14293     jc short 095d4h                           ; 72 0c
    14294     jbe short 095dch                          ; 76 12
     14345    jc short 09613h                           ; 72 0c
     14346    jbe short 0961bh                          ; 76 12
    1429514347    cmp AL, strict byte 003h                  ; 3c 03
    14296     je short 095e4h                           ; 74 16
     14348    je short 09623h                           ; 74 16
    1429714349    cmp AL, strict byte 002h                  ; 3c 02
    14298     je short 095e0h                           ; 74 0e
    14299     jmp short 09630h                          ; eb 5c
     14350    je short 0961fh                           ; 74 0e
     14351    jmp short 0966fh                          ; eb 5c
    1430014352    test al, al                               ; 84 c0
    14301     jne short 09630h                          ; 75 58
     14353    jne short 0966fh                          ; 75 58
    1430214354    mov BL, strict byte 040h                  ; b3 40
    14303     jmp short 095e6h                          ; eb 0a
     14355    jmp short 09625h                          ; eb 0a
    1430414356    mov BL, strict byte 048h                  ; b3 48
    14305     jmp short 095e6h                          ; eb 06
     14357    jmp short 09625h                          ; eb 06
    1430614358    mov BL, strict byte 050h                  ; b3 50
    14307     jmp short 095e6h                          ; eb 02
     14359    jmp short 09625h                          ; eb 02
    1430814360    mov BL, strict byte 058h                  ; b3 58
    1430914361    mov dl, bl                                ; 88 da
     
    1431114363    xor dh, dh                                ; 30 f6
    1431214364    mov ax, dx                                ; 89 d0
    14313     call 016ach                               ; e8 ba 80
     14365    call 016ach                               ; e8 7b 80
    1431414366    test al, al                               ; 84 c0
    14315     je short 09630h                           ; 74 3a
     14367    je short 0966fh                           ; 74 3a
    1431614368    mov al, bl                                ; 88 d8
    1431714369    db  0feh, 0c0h
    1431814370    ; inc al                                    ; fe c0
    1431914371    xor ah, ah                                ; 30 e4
    14320     call 016ach                               ; e8 ad 80
     14372    call 016ach                               ; e8 6e 80
    1432114373    xor ah, ah                                ; 30 e4
    1432214374    sal ax, 008h                              ; c1 e0 08
     
    1432414376    mov al, bl                                ; 88 d8
    1432514377    xor ah, ah                                ; 30 e4
    14326     call 016ach                               ; e8 9e 80
     14378    call 016ach                               ; e8 5f 80
    1432714379    xor ah, ah                                ; 30 e4
    1432814380    mov cx, word [bp-02ah]                    ; 8b 4e d6
     
    1433114383    mov al, bl                                ; 88 d8
    1433214384    add AL, strict byte 002h                  ; 04 02
    14333     call 016ach                               ; e8 8d 80
     14385    call 016ach                               ; e8 4e 80
    1433414386    xor ah, ah                                ; 30 e4
    1433514387    mov word [bp-032h], ax                    ; 89 46 ce
    1433614388    mov ax, dx                                ; 89 d0
    14337     call 016ach                               ; e8 83 80
     14389    call 016ach                               ; e8 44 80
    1433814390    xor ah, ah                                ; 30 e4
    1433914391    mov word [bp-02eh], ax                    ; 89 46 d2
    14340     jmp short 09640h                          ; eb 10
     14392    jmp short 0967fh                          ; eb 10
    1434114393    push word [bp-022h]                       ; ff 76 de
    1434214394    push word [bp-014h]                       ; ff 76 ec
     
    1434514397    mov dx, ss                                ; 8c d2
    1434614398    lea ax, [bp-032h]                         ; 8d 46 ce
    14347     call 05a02h                               ; e8 c2 c3
    14348     mov bx, 00da4h                            ; bb a4 0d
     14399    call 05a41h                               ; e8 c2 c3
     14400    mov bx, 00da0h                            ; bb a0 0d
    1434914401    mov cx, ds                                ; 8c d9
    1435014402    mov ax, strict word 00004h                ; b8 04 00
    14351     call 01923h                               ; e8 d8 82
     14403    call 01923h                               ; e8 99 82
    1435214404    push word [bp-022h]                       ; ff 76 de
    1435314405    push word [bp-014h]                       ; ff 76 ec
     
    1437014422    push 00cd6h                               ; 68 d6 0c
    1437114423    push strict byte 00004h                   ; 6a 04
    14372     call 01966h                               ; e8 ec 82
     14424    call 01966h                               ; e8 ad 82
    1437314425    add sp, strict byte 0001ch                ; 83 c4 1c
    1437414426    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1440214454    mov dx, strict word 00075h                ; ba 75 00
    1440314455    mov ax, strict word 00040h                ; b8 40 00
    14404     call 01650h                               ; e8 87 7f
     14456    call 01650h                               ; e8 48 7f
    1440514457    mov bl, al                                ; 88 c3
    1440614458    db  0feh, 0c3h
     
    1440914461    mov dx, strict word 00075h                ; ba 75 00
    1441014462    mov ax, strict word 00040h                ; b8 40 00
    14411     call 0165eh                               ; e8 86 7f
    14412     jmp near 0978fh                           ; e9 b4 00
     14463    call 0165eh                               ; e8 47 7f
     14464    jmp near 097ceh                           ; e9 b4 00
    1441314465    cmp bx, 0eb14h                            ; 81 fb 14 eb
    14414     jne short 09738h                          ; 75 57
     14466    jne short 09777h                          ; 75 57
    1441514467    cmp ax, 00101h                            ; 3d 01 01
    14416     jne short 09738h                          ; 75 52
     14468    jne short 09777h                          ; 75 52
    1441714469    mov es, [bp-016h]                         ; 8e 46 ea
    1441814470    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1442914481    mov ax, word [bp-010h]                    ; 8b 46 f0
    1443014482    mov dx, es                                ; 8c c2
    14431     call 089c9h                               ; e8 a3 f2
     14483    call 08a08h                               ; e8 a3 f2
    1443214484    mov al, byte [bp-00eh]                    ; 8a 46 f2
    1443314485    mov byte [bp-00ch], al                    ; 88 46 f4
    1443414486    test byte [bp-00232h], 080h               ; f6 86 ce fd 80
    14435     je short 0973ah                           ; 74 07
     14487    je short 09779h                           ; 74 07
    1443614488    mov dx, strict word 00001h                ; ba 01 00
    14437     jmp short 0973ch                          ; eb 04
    14438     jmp short 0978fh                          ; eb 55
     14489    jmp short 0977bh                          ; eb 04
     14490    jmp short 097ceh                          ; eb 55
    1443914491    xor dx, dx                                ; 31 d2
    1444014492    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    1447514527    pop bp                                    ; 5d
    1447614528    retn                                      ; c3
    14477 ahci_mem_alloc_:                             ; 0xf97a8 LB 0x43
     14529ahci_mem_alloc_:                             ; 0xf97e7 LB 0x43
    1447814530    push bp                                   ; 55
    1447914531    mov bp, sp                                ; 89 e5
     
    1448514537    mov dx, 00413h                            ; ba 13 04
    1448614538    xor ax, ax                                ; 31 c0
    14487     call 0166ch                               ; e8 b4 7e
     14539    call 0166ch                               ; e8 75 7e
    1448814540    test ax, ax                               ; 85 c0
    14489     je short 097e1h                           ; 74 25
     14541    je short 09820h                           ; 74 25
    1449014542    dec ax                                    ; 48
    1449114543    mov bx, ax                                ; 89 c3
     
    1449414546    sal ax, 1                                 ; d1 e0
    1449514547    rcl dx, 1                                 ; d1 d2
    14496     loop 097c4h                               ; e2 fa
     14548    loop 09803h                               ; e2 fa
    1449714549    mov si, ax                                ; 89 c6
    1449814550    mov di, dx                                ; 89 d7
     
    1450014552    shr di, 1                                 ; d1 ef
    1450114553    rcr si, 1                                 ; d1 de
    14502     loop 097d1h                               ; e2 fa
     14554    loop 09810h                               ; e2 fa
    1450314555    mov dx, 00413h                            ; ba 13 04
    1450414556    xor ax, ax                                ; 31 c0
    14505     call 0167ah                               ; e8 9b 7e
     14557    call 0167ah                               ; e8 5c 7e
    1450614558    mov ax, si                                ; 89 f0
    1450714559    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1451314565    pop bp                                    ; 5d
    1451414566    retn                                      ; c3
    14515 ahci_hba_init_:                              ; 0xf97eb LB 0x16d
     14567ahci_hba_init_:                              ; 0xf982a LB 0x16d
    1451614568    push bp                                   ; 55
    1451714569    mov bp, sp                                ; 89 e5
     
    1452514577    mov dx, strict word 0000eh                ; ba 0e 00
    1452614578    mov ax, strict word 00040h                ; b8 40 00
    14527     call 0166ch                               ; e8 6b 7e
     14579    call 0166ch                               ; e8 2c 7e
    1452814580    mov bx, 00122h                            ; bb 22 01
    1452914581    mov di, ax                                ; 89 c7
     
    1454214594    shr eax, 010h                             ; 66 c1 e8 10
    1454314595    xchg dx, ax                               ; 92
    14544     call 097a8h                               ; e8 83 ff
     14596    call 097e7h                               ; e8 83 ff
    1454514597    mov word [bp-010h], ax                    ; 89 46 f0
    1454614598    test ax, ax                               ; 85 c0
    14547     jne short 0982fh                          ; 75 03
    14548     jmp near 09937h                           ; e9 08 01
     14599    jne short 0986eh                          ; 75 03
     14600    jmp near 09976h                           ; e9 08 01
    1454914601    mov ax, word [bp-010h]                    ; 8b 46 f0
    1455014602    mov es, di                                ; 8e c7
     
    1459614648    xchg dx, ax                               ; 92
    1459714649    test AL, strict byte 001h                 ; a8 01
    14598     jne short 09889h                          ; 75 de
     14650    jne short 098c8h                          ; 75 de
    1459914651    xor ax, ax                                ; 31 c0
    1460014652    xor cx, cx                                ; 31 c9
     
    1461414666    mov bx, strict word 0001fh                ; bb 1f 00
    1461514667    xor cx, cx                                ; 31 c9
    14616     call 08839h                               ; e8 6a ef
     14668    call 08878h                               ; e8 6a ef
    1461714669    db  0feh, 0c0h
    1461814670    ; inc al                                    ; fe c0
    1461914671    mov byte [bp-00ch], al                    ; 88 46 f4
    1462014672    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    14621     jmp short 098fbh                          ; eb 21
     14673    jmp short 0993ah                          ; eb 21
    1462214674    xor al, al                                ; 30 c0
    1462314675    test al, al                               ; 84 c0
    14624     je short 098f2h                           ; 74 12
     14676    je short 09931h                           ; 74 12
    1462514677    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1462614678    xor bh, bh                                ; 30 ff
    1462714679    xor ax, ax                                ; 31 c0
    1462814680    mov dx, word [bp-010h]                    ; 8b 56 f0
    14629     call 092bah                               ; e8 cd f9
     14681    call 092f9h                               ; e8 cd f9
    1463014682    dec byte [bp-00ch]                        ; fe 4e f4
    14631     je short 09935h                           ; 74 43
     14683    je short 09974h                           ; 74 43
    1463214684    inc byte [bp-00eh]                        ; fe 46 f2
    1463314685    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
    14634     jnc short 09935h                          ; 73 3a
     14686    jnc short 09974h                          ; 73 3a
    1463514687    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    1463614688    xor ch, ch                                ; 30 ed
    1463714689    mov bx, strict word 00001h                ; bb 01 00
    1463814690    xor di, di                                ; 31 ff
    14639     jcxz 0990dh                               ; e3 06
     14691    jcxz 0994ch                               ; e3 06
    1464014692    sal bx, 1                                 ; d1 e3
    1464114693    rcl di, 1                                 ; d1 d7
    14642     loop 09907h                               ; e2 fa
     14694    loop 09946h                               ; e2 fa
    1464314695    mov ax, strict word 0000ch                ; b8 0c 00
    1464414696    xor cx, cx                                ; 31 c9
     
    1465614708    xchg dx, ax                               ; 92
    1465714709    test dx, di                               ; 85 fa
    14658     jne short 09931h                          ; 75 04
     14710    jne short 09970h                          ; 75 04
    1465914711    test ax, bx                               ; 85 d8
    14660     je short 098dah                           ; 74 a9
     14712    je short 09919h                           ; 74 a9
    1466114713    mov AL, strict byte 001h                  ; b0 01
    14662     jmp short 098dch                          ; eb a7
     14714    jmp short 0991bh                          ; eb a7
    1466314715    xor ax, ax                                ; 31 c0
    1466414716    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1467014722    pop bp                                    ; 5d
    1467114723    retn                                      ; c3
    14672     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 041h, 09ah, 01fh, 09ah, 025h, 09ah, 02bh, 09ah, 031h
    14673     db  09ah, 037h, 09ah, 03dh, 09ah, 041h, 09ah
    14674 _ahci_init:                                  ; 0xf9958 LB 0x13a
     14724    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 080h, 09ah, 05eh, 09ah, 064h, 09ah, 06ah, 09ah, 070h
     14725    db  09ah, 076h, 09ah, 07ch, 09ah, 080h, 09ah
     14726_ahci_init:                                  ; 0xf9997 LB 0x13a
    1467514727    push bp                                   ; 55
    1467614728    mov bp, sp                                ; 89 e5
     
    1468014732    mov ax, 00601h                            ; b8 01 06
    1468114733    mov dx, strict word 00001h                ; ba 01 00
    14682     call 09eadh                               ; e8 44 05
     14734    call 09eech                               ; e8 44 05
    1468314735    mov dx, ax                                ; 89 c2
    1468414736    cmp ax, strict word 0ffffh                ; 3d ff ff
    14685     je short 099bch                           ; 74 4c
     14737    je short 099fbh                           ; 74 4c
    1468614738    xor al, al                                ; 30 c0
    1468714739    shr ax, 008h                              ; c1 e8 08
     
    1469114743    xor ah, ah                                ; 30 e4
    1469214744    mov bx, strict word 00034h                ; bb 34 00
    14693     call 09ed8h                               ; e8 53 05
     14745    call 09f17h                               ; e8 53 05
    1469414746    mov cl, al                                ; 88 c1
    1469514747    test cl, cl                               ; 84 c9
    14696     je short 099bfh                           ; 74 34
     14748    je short 099feh                           ; 74 34
    1469714749    mov bl, cl                                ; 88 cb
    1469814750    xor bh, bh                                ; 30 ff
     
    1470514757    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1470614758    mov ax, word [bp-014h]                    ; 8b 46 ec
    14707     call 09ed8h                               ; e8 2e 05
     14759    call 09f17h                               ; e8 2e 05
    1470814760    cmp AL, strict byte 012h                  ; 3c 12
    14709     je short 099bfh                           ; 74 11
     14761    je short 099feh                           ; 74 11
    1471014762    mov bl, cl                                ; 88 cb
    1471114763    db  0feh, 0c3h
     
    1471414766    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1471514767    mov ax, word [bp-014h]                    ; 8b 46 ec
    14716     jmp short 09982h                          ; eb c6
    14717     jmp near 09a8bh                           ; e9 cc 00
     14768    jmp short 099c1h                          ; eb c6
     14769    jmp near 09acah                           ; e9 cc 00
    1471814770    test cl, cl                               ; 84 c9
    14719     je short 099bch                           ; 74 f9
     14771    je short 099fbh                           ; 74 f9
    1472014772    add cl, 002h                              ; 80 c1 02
    1472114773    mov bl, cl                                ; 88 cb
     
    1472914781    mov dx, word [bp-012h]                    ; 8b 56 ee
    1473014782    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14731     call 09ed8h                               ; e8 f3 04
     14783    call 09f17h                               ; e8 f3 04
    1473214784    cmp AL, strict byte 010h                  ; 3c 10
    14733     jne short 099bch                          ; 75 d3
     14785    jne short 099fbh                          ; 75 d3
    1473414786    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1473514787    mov bl, cl                                ; 88 cb
     
    1473814790    mov dx, word [bp-012h]                    ; 8b 56 ee
    1473914791    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14740     call 09f06h                               ; e8 09 05
     14792    call 09f45h                               ; e8 09 05
    1474114793    mov dx, ax                                ; 89 c2
    1474214794    and ax, strict word 0000fh                ; 25 0f 00
    1474314795    sub ax, strict word 00004h                ; 2d 04 00
    1474414796    cmp ax, strict word 0000bh                ; 3d 0b 00
    14745     jnbe short 09a41h                         ; 77 37
     14797    jnbe short 09a80h                         ; 77 37
    1474614798    push CS                                   ; 0e
    1474714799    pop ES                                    ; 07
    1474814800    mov cx, strict word 00008h                ; b9 08 00
    14749     mov di, 09941h                            ; bf 41 99
     14801    mov di, 09980h                            ; bf 80 99
    1475014802    repne scasb                               ; f2 ae
    1475114803    sal cx, 1                                 ; d1 e1
    1475214804    mov di, cx                                ; 89 cf
    14753     mov ax, word [cs:di-066b8h]               ; 2e 8b 85 48 99
     14805    mov ax, word [cs:di-06679h]               ; 2e 8b 85 87 99
    1475414806    jmp ax                                    ; ff e0
    1475514807    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    14756     jmp short 09a41h                          ; eb 1c
     14808    jmp short 09a80h                          ; eb 1c
    1475714809    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    14758     jmp short 09a41h                          ; eb 16
     14810    jmp short 09a80h                          ; eb 16
    1475914811    mov byte [bp-008h], 018h                  ; c6 46 f8 18
    14760     jmp short 09a41h                          ; eb 10
     14812    jmp short 09a80h                          ; eb 10
    1476114813    mov byte [bp-008h], 01ch                  ; c6 46 f8 1c
    14762     jmp short 09a41h                          ; eb 0a
     14814    jmp short 09a80h                          ; eb 0a
    1476314815    mov byte [bp-008h], 020h                  ; c6 46 f8 20
    14764     jmp short 09a41h                          ; eb 04
     14816    jmp short 09a80h                          ; eb 04
    1476514817    mov byte [bp-008h], 024h                  ; c6 46 f8 24
    1476614818    mov si, dx                                ; 89 d6
     
    1476914821    mov al, byte [bp-008h]                    ; 8a 46 f8
    1477014822    test al, al                               ; 84 c0
    14771     je short 09a8bh                           ; 74 3b
     14823    je short 09acah                           ; 74 3b
    1477214824    mov bl, al                                ; 88 c3
    1477314825    xor bh, bh                                ; 30 ff
     
    1478014832    mov dx, word [bp-010h]                    ; 8b 56 f0
    1478114833    mov ax, word [bp-016h]                    ; 8b 46 ea
    14782     call 09f30h                               ; e8 c1 04
     14834    call 09f6fh                               ; e8 c1 04
    1478314835    test AL, strict byte 001h                 ; a8 01
    14784     je short 09a8bh                           ; 74 18
     14836    je short 09acah                           ; 74 18
    1478514837    and AL, strict byte 0f0h                  ; 24 f0
    1478614838    add si, ax                                ; 01 c6
     
    1478914841    mov dx, word [bp-010h]                    ; 8b 56 f0
    1479014842    mov ax, word [bp-016h]                    ; 8b 46 ea
    14791     call 09f7eh                               ; e8 f8 04
     14843    call 09fbdh                               ; e8 f8 04
    1479214844    mov ax, si                                ; 89 f0
    14793     call 097ebh                               ; e8 60 fd
     14845    call 0982ah                               ; e8 60 fd
    1479414846    lea sp, [bp-004h]                         ; 8d 66 fc
    1479514847    pop di                                    ; 5f
     
    1479714849    pop bp                                    ; 5d
    1479814850    retn                                      ; c3
    14799 apm_out_str_:                                ; 0xf9a92 LB 0x39
     14851apm_out_str_:                                ; 0xf9ad1 LB 0x39
    1480014852    push bp                                   ; 55
    1480114853    mov bp, sp                                ; 89 e5
     
    1480314855    mov bx, ax                                ; 89 c3
    1480414856    cmp byte [bx], 000h                       ; 80 3f 00
    14805     je short 09aa7h                           ; 74 0a
     14857    je short 09ae6h                           ; 74 0a
    1480614858    mov al, byte [bx]                         ; 8a 07
    1480714859    out DX, AL                                ; ee
     
    1481014862    db  00ah, 0c0h
    1481114863    ; or al, al                                 ; 0a c0
    14812     jne short 09a9fh                          ; 75 f8
     14864    jne short 09adeh                          ; 75 f8
    1481314865    lea sp, [bp-002h]                         ; 8d 66 fe
    1481414866    pop bx                                    ; 5b
    1481514867    pop bp                                    ; 5d
    1481614868    retn                                      ; c3
    14817     in AL, DX                                 ; ec
    14818     call far 09afeh:09b74h                    ; 9a 74 9b fe 9a
    14819     sbb word [bp+di-0648ch], bx               ; 19 9b 74 9b
    14820     inc sp                                    ; 44
     14869    sub bx, word [bp+di-0644dh]               ; 2b 9b b3 9b
     14870    cmp ax, 0589bh                            ; 3d 9b 58
    1482114871    wait                                      ; 9b
    14822     je short 09a56h                           ; 74 9b
    14823     jp short 09a58h                           ; 7a 9b
    14824     dec cx                                    ; 49
     14872    mov BL, strict byte 09bh                  ; b3 9b
     14873    sbb word [bp+di-0644dh], strict byte 0ffb9h ; 83 9b b3 9b b9
    1482514874    wait                                      ; 9b
    14826     dec cx                                    ; 49
     14875    mov byte [bp+di-06478h], bl               ; 88 9b 88 9b
     14876    mov byte [bp+di-06408h], bl               ; 88 9b f8 9b
     14877    mov byte [bp+di-06478h], bl               ; 88 9b 88 9b
     14878    db  0f1h
    1482714879    wait                                      ; 9b
    14828     dec cx                                    ; 49
    14829     wait                                      ; 9b
    14830     mov cx, 0499bh                            ; b9 9b 49
    14831     wait                                      ; 9b
    14832     dec cx                                    ; 49
    14833     wait                                      ; 9b
    14834     mov DL, strict byte 09bh                  ; b2 9b
    14835 _apm_function:                               ; 0xf9acb LB 0xf3
     14880_apm_function:                               ; 0xf9b0a LB 0xf3
    1483614881    push bp                                   ; 55
    1483714882    mov bp, sp                                ; 89 e5
     
    1484114886    xor ah, ah                                ; 30 e4
    1484214887    cmp ax, strict word 0000eh                ; 3d 0e 00
    14843     jnbe short 09b49h                         ; 77 6c
     14888    jnbe short 09b88h                         ; 77 6c
    1484414889    mov bx, ax                                ; 89 c3
    1484514890    add bx, ax                                ; 01 c3
    1484614891    mov dx, word [bp+018h]                    ; 8b 56 18
    1484714892    or dl, 001h                               ; 80 ca 01
    14848     jmp word [cs:bx-06553h]                   ; 2e ff a7 ad 9a
     14893    jmp word [cs:bx-06514h]                   ; 2e ff a7 ec 9a
    1484914894    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1485014895    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1485114896    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14852     jmp near 09b74h                           ; e9 76 00
     14897    jmp near 09bb3h                           ; e9 76 00
    1485314898    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14854     mov word [bp+00ch], 0a184h                ; c7 46 0c 84 a1
     14899    mov word [bp+00ch], 0a1c4h                ; c7 46 0c c4 a1
    1485514900    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1485614901    mov ax, strict word 0fff0h                ; b8 f0 ff
    1485714902    mov word [bp+006h], ax                    ; 89 46 06
    1485814903    mov word [bp+004h], ax                    ; 89 46 04
    14859     jmp near 09b74h                           ; e9 5b 00
     14904    jmp near 09bb3h                           ; e9 5b 00
    1486014905    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1486114906    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1487014915    mov si, ax                                ; 89 c6
    1487114916    sal esi, 010h                             ; 66 c1 e6 10
    14872     jmp near 09b74h                           ; e9 30 00
     14917    jmp near 09bb3h                           ; e9 30 00
    1487314918    sti                                       ; fb
    1487414919    hlt                                       ; f4
    14875     jmp near 09b74h                           ; e9 2b 00
    14876     mov bx, 00da4h                            ; bb a4 0d
     14920    jmp near 09bb3h                           ; e9 2b 00
     14921    mov bx, 00da0h                            ; bb a0 0d
    1487714922    mov cx, ds                                ; 8c d9
    1487814923    mov ax, strict word 00004h                ; b8 04 00
    14879     call 01923h                               ; e8 cf 7d
     14924    call 01923h                               ; e8 90 7d
    1488014925    push word [bp+00ch]                       ; ff 76 0c
    1488114926    push word [bp+012h]                       ; ff 76 12
    1488214927    push 00d29h                               ; 68 29 0d
    1488314928    push strict byte 00004h                   ; 6a 04
    14884     call 01966h                               ; e8 04 7e
     14929    call 01966h                               ; e8 c5 7d
    1488514930    add sp, strict byte 00008h                ; 83 c4 08
    1488614931    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1489414939    retn                                      ; c3
    1489514940    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14896     je short 09b9fh                           ; 74 1f
     14941    je short 09bdeh                           ; 74 1f
    1489714942    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14898     je short 09b97h                           ; 74 11
     14943    je short 09bd6h                           ; 74 11
    1489914944    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14900     jne short 09ba7h                          ; 75 1b
     14945    jne short 09be6h                          ; 75 1b
    1490114946    mov dx, 0040fh                            ; ba 0f 04
    1490214947    mov ax, 00d10h                            ; b8 10 0d
    14903     call 09a92h                               ; e8 fd fe
    14904     jmp short 09b74h                          ; eb dd
     14948    call 09ad1h                               ; e8 fd fe
     14949    jmp short 09bb3h                          ; eb dd
    1490514950    mov dx, 0040fh                            ; ba 0f 04
    1490614951    mov ax, 00d18h                            ; b8 18 0d
    14907     jmp short 09b92h                          ; eb f3
     14952    jmp short 09bd1h                          ; eb f3
    1490814953    mov dx, 0040fh                            ; ba 0f 04
    1490914954    mov ax, 00d20h                            ; b8 20 0d
    14910     jmp short 09b92h                          ; eb eb
     14955    jmp short 09bd1h                          ; eb eb
    1491114956    or ah, 00ah                               ; 80 cc 0a
    1491214957    mov word [bp+012h], ax                    ; 89 46 12
    1491314958    mov word [bp+018h], dx                    ; 89 56 18
    14914     jmp short 09b74h                          ; eb c2
     14959    jmp short 09bb3h                          ; eb c2
    1491514960    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14916     jmp short 09b74h                          ; eb bb
     14961    jmp short 09bb3h                          ; eb bb
    1491714962    or ah, 080h                               ; 80 cc 80
    14918     jmp short 09baah                          ; eb ec
    14919 pci16_select_reg_:                           ; 0xf9bbe LB 0x24
     14963    jmp short 09be9h                          ; eb ec
     14964pci16_select_reg_:                           ; 0xf9bfd LB 0x24
    1492014965    push bp                                   ; 55
    1492114966    mov bp, sp                                ; 89 e5
     
    1493414979    pop bp                                    ; 5d
    1493514980    retn                                      ; c3
    14936 pci16_find_device_:                          ; 0xf9be2 LB 0xf9
     14981pci16_find_device_:                          ; 0xf9c21 LB 0xf9
    1493714982    push bp                                   ; 55
    1493814983    mov bp, sp                                ; 89 e5
     
    1494814993    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1494914994    test bl, 007h                             ; f6 c3 07
    14950     jne short 09c2ah                          ; 75 2d
     14995    jne short 09c69h                          ; 75 2d
    1495114996    mov dx, strict word 0000eh                ; ba 0e 00
    1495214997    mov ax, bx                                ; 89 d8
    14953     call 09bbeh                               ; e8 b9 ff
     14998    call 09bfdh                               ; e8 b9 ff
    1495414999    mov dx, 00cfeh                            ; ba fe 0c
    1495515000    in AL, DX                                 ; ec
     
    1495815003    mov byte [bp-006h], al                    ; 88 46 fa
    1495915004    cmp AL, strict byte 0ffh                  ; 3c ff
    14960     jne short 09c18h                          ; 75 06
     15005    jne short 09c57h                          ; 75 06
    1496115006    add bx, strict byte 00008h                ; 83 c3 08
    14962     jmp near 09cabh                           ; e9 93 00
     15007    jmp near 09ceah                           ; e9 93 00
    1496315008    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14964     je short 09c25h                           ; 74 07
     15009    je short 09c64h                           ; 74 07
    1496515010    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14966     jmp short 09c2ah                          ; eb 05
     15011    jmp short 09c69h                          ; eb 05
    1496715012    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1496815013    mov al, byte [bp-006h]                    ; 8a 46 fa
    1496915014    and AL, strict byte 007h                  ; 24 07
    1497015015    cmp AL, strict byte 001h                  ; 3c 01
    14971     jne short 09c52h                          ; 75 1f
     15016    jne short 09c91h                          ; 75 1f
    1497215017    mov ax, bx                                ; 89 d8
    1497315018    shr ax, 008h                              ; c1 e8 08
    1497415019    test ax, ax                               ; 85 c0
    14975     jne short 09c52h                          ; 75 16
     15020    jne short 09c91h                          ; 75 16
    1497615021    mov dx, strict word 0001ah                ; ba 1a 00
    1497715022    mov ax, bx                                ; 89 d8
    14978     call 09bbeh                               ; e8 7a ff
     15023    call 09bfdh                               ; e8 7a ff
    1497915024    mov dx, 00cfeh                            ; ba fe 0c
    1498015025    in AL, DX                                 ; ec
     
    1498215027    ; sub ah, ah                                ; 2a e4
    1498315028    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14984     jbe short 09c52h                          ; 76 03
     15029    jbe short 09c91h                          ; 76 03
    1498515030    mov byte [bp-008h], al                    ; 88 46 f8
    1498615031    test di, di                               ; 85 ff
    14987     je short 09c5bh                           ; 74 05
     15032    je short 09c9ah                           ; 74 05
    1498815033    mov dx, strict word 00008h                ; ba 08 00
    14989     jmp short 09c5dh                          ; eb 02
     15034    jmp short 09c9ch                          ; eb 02
    1499015035    xor dx, dx                                ; 31 d2
    1499115036    mov ax, bx                                ; 89 d8
    14992     call 09bbeh                               ; e8 5c ff
     15037    call 09bfdh                               ; e8 5c ff
    1499315038    mov dx, 00cfch                            ; ba fc 0c
    1499415039    in eax, DX                                ; 66 ed
     
    1500115046    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1500215047    test di, di                               ; 85 ff
    15003     je short 09c8ch                           ; 74 0f
     15048    je short 09ccbh                           ; 74 0f
    1500415049    mov cx, strict word 00008h                ; b9 08 00
    1500515050    shr dx, 1                                 ; d1 ea
    1500615051    rcr ax, 1                                 ; d1 d8
    15007     loop 09c80h                               ; e2 fa
     15052    loop 09cbfh                               ; e2 fa
    1500815053    mov word [bp-00ah], ax                    ; 89 46 f6
    1500915054    mov word [bp-00ch], dx                    ; 89 56 f4
    1501015055    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1501115056    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15012     jne short 09c9ch                          ; 75 08
     15057    jne short 09cdbh                          ; 75 08
    1501315058    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1501415059    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15015     je short 09ca2h                           ; 74 06
     15060    je short 09ce1h                           ; 74 06
    1501615061    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    15017     je short 09ca8h                           ; 74 06
     15062    je short 09ce7h                           ; 74 06
    1501815063    dec si                                    ; 4e
    1501915064    cmp si, strict byte 0ffffh                ; 83 fe ff
    15020     je short 09cbch                           ; 74 14
     15065    je short 09cfbh                           ; 74 14
    1502115066    add bx, word [bp-010h]                    ; 03 5e f0
    1502215067    mov dx, bx                                ; 89 da
     
    1502515070    xor ah, ah                                ; 30 e4
    1502615071    cmp dx, ax                                ; 39 c2
    15027     jnbe short 09cbch                         ; 77 03
    15028     jmp near 09bf8h                           ; e9 3c ff
     15072    jnbe short 09cfbh                         ; 77 03
     15073    jmp near 09c37h                           ; e9 3c ff
    1502915074    cmp si, strict byte 0ffffh                ; 83 fe ff
    15030     jne short 09cc5h                          ; 75 04
     15075    jne short 09d04h                          ; 75 04
    1503115076    mov ax, bx                                ; 89 d8
    15032     jmp short 09cc8h                          ; eb 03
     15077    jmp short 09d07h                          ; eb 03
    1503315078    mov ax, strict word 0ffffh                ; b8 ff ff
    1503415079    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1503715082    pop bp                                    ; 5d
    1503815083    retn                                      ; c3
    15039     mov sp, 0d59dh                            ; bc 9d d5
    15040     popfw                                     ; 9d
    15041     out 09dh, ax                              ; e7 9d
    1504215084    sti                                       ; fb
    1504315085    popfw                                     ; 9d
    15044     or ax, 0209eh                             ; 0d 9e 20
     15086    adc AL, strict byte 09eh                  ; 14 9e
     15087    db  026h, 09eh
     15088    ; es sahf                                   ; 26 9e
     15089    cmp bl, byte [bp-061b4h]                  ; 3a 9e 4c 9e
     15090    pop di                                    ; 5f
    1504515091    sahf                                      ; 9e
    15046 _pci16_function:                             ; 0xf9cdb LB 0x1d2
     15092_pci16_function:                             ; 0xf9d1a LB 0x1d2
    1504715093    push bp                                   ; 55
    1504815094    mov bp, sp                                ; 89 e5
     
    1505815104    xor ah, ah                                ; 30 e4
    1505915105    cmp bx, strict byte 00003h                ; 83 fb 03
    15060     jc short 09d0dh                           ; 72 13
    15061     jbe short 09d60h                          ; 76 64
     15106    jc short 09d4ch                           ; 72 13
     15107    jbe short 09d9fh                          ; 76 64
    1506215108    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15063     je short 09d68h                           ; 74 67
     15109    je short 09da7h                           ; 74 67
    1506415110    cmp bx, strict byte 00008h                ; 83 fb 08
    15065     jc short 09d17h                           ; 72 11
     15111    jc short 09d56h                           ; 72 11
    1506615112    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15067     jbe short 09d6bh                          ; 76 60
    15068     jmp short 09d17h                          ; eb 0a
     15113    jbe short 09daah                          ; 76 60
     15114    jmp short 09d56h                          ; eb 0a
    1506915115    cmp bx, strict byte 00002h                ; 83 fb 02
    15070     je short 09d36h                           ; 74 24
     15116    je short 09d75h                           ; 74 24
    1507115117    cmp bx, strict byte 00001h                ; 83 fb 01
    15072     je short 09d1ah                           ; 74 03
    15073     jmp near 09e79h                           ; e9 5f 01
     15118    je short 09d59h                           ; 74 03
     15119    jmp near 09eb8h                           ; e9 5f 01
    1507415120    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1507515121    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1507715123    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1507815124    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15079     jmp near 09ea6h                           ; e9 70 01
     15125    jmp near 09ee5h                           ; e9 70 01
    1508015126    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15081     jne short 09d42h                          ; 75 06
     15127    jne short 09d81h                          ; 75 06
    1508215128    or ah, 083h                               ; 80 cc 83
    15083     jmp near 09e9fh                           ; e9 5d 01
     15129    jmp near 09edeh                           ; e9 5d 01
    1508415130    mov bx, word [bp+008h]                    ; 8b 5e 08
    1508515131    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1508615132    mov ax, word [bp+018h]                    ; 8b 46 18
    1508715133    xor cx, cx                                ; 31 c9
    15088     call 09be2h                               ; e8 92 fe
     15134    call 09c21h                               ; e8 92 fe
    1508915135    cmp ax, strict word 0ffffh                ; 3d ff ff
    15090     jne short 09d62h                          ; 75 0d
     15136    jne short 09da1h                          ; 75 0d
    1509115137    mov ax, word [bp+020h]                    ; 8b 46 20
    1509215138    xor ah, ah                                ; 30 e4
    1509315139    or ah, 086h                               ; 80 cc 86
    15094     jmp near 09e9fh                           ; e9 3f 01
    15095     jmp short 09d6dh                          ; eb 0b
     15140    jmp near 09edeh                           ; e9 3f 01
     15141    jmp short 09dach                          ; eb 0b
    1509615142    mov word [bp+014h], ax                    ; 89 46 14
    15097     jmp near 09ea6h                           ; e9 3e 01
    15098     jmp near 09e34h                           ; e9 c9 00
    15099     jmp short 09d92h                          ; eb 25
     15143    jmp near 09ee5h                           ; e9 3e 01
     15144    jmp near 09e73h                           ; e9 c9 00
     15145    jmp short 09dd1h                          ; eb 25
    1510015146    mov bx, word [bp+008h]                    ; 8b 5e 08
    1510115147    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1510215148    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1510315149    mov cx, strict word 00001h                ; b9 01 00
    15104     call 09be2h                               ; e8 66 fe
     15150    call 09c21h                               ; e8 66 fe
    1510515151    cmp ax, strict word 0ffffh                ; 3d ff ff
    15106     jne short 09d8ch                          ; 75 0b
     15152    jne short 09dcbh                          ; 75 0b
    1510715153    mov ax, word [bp+020h]                    ; 8b 46 20
    1510815154    xor ah, ah                                ; 30 e4
    1510915155    or ah, 086h                               ; 80 cc 86
    15110     jmp near 09e9fh                           ; e9 13 01
     15156    jmp near 09edeh                           ; e9 13 01
    1511115157    mov word [bp+014h], ax                    ; 89 46 14
    15112     jmp near 09ea6h                           ; e9 14 01
     15158    jmp near 09ee5h                           ; e9 14 01
    1511315159    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15114     jc short 09d9fh                           ; 72 06
     15160    jc short 09ddeh                           ; 72 06
    1511515161    or ah, 087h                               ; 80 cc 87
    15116     jmp near 09e9fh                           ; e9 00 01
     15162    jmp near 09edeh                           ; e9 00 01
    1511715163    mov dx, word [bp+004h]                    ; 8b 56 04
    1511815164    mov ax, word [bp+014h]                    ; 8b 46 14
    15119     call 09bbeh                               ; e8 16 fe
     15165    call 09bfdh                               ; e8 16 fe
    1512015166    mov bx, word [bp+020h]                    ; 8b 5e 20
    1512115167    xor bh, bh                                ; 30 ff
    1512215168    sub bx, strict byte 00008h                ; 83 eb 08
    1512315169    cmp bx, strict byte 00005h                ; 83 fb 05
    15124     jnbe short 09e1dh                         ; 77 68
     15170    jnbe short 09e5ch                         ; 77 68
    1512515171    add bx, bx                                ; 01 db
    15126     jmp word [cs:bx-06331h]                   ; 2e ff a7 cf 9c
     15172    jmp word [cs:bx-062f2h]                   ; 2e ff a7 0e 9d
    1512715173    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1512815174    xor bl, bl                                ; 30 db
     
    1513515181    or bx, ax                                 ; 09 c3
    1513615182    mov word [bp+01ch], bx                    ; 89 5e 1c
    15137     jmp short 09e1dh                          ; eb 48
     15183    jmp short 09e5ch                          ; eb 48
    1513815184    mov dx, word [bp+004h]                    ; 8b 56 04
    1513915185    xor dh, dh                                ; 30 f6
     
    1514215188    in ax, DX                                 ; ed
    1514315189    mov word [bp+01ch], ax                    ; 89 46 1c
    15144     jmp short 09e1dh                          ; eb 36
     15190    jmp short 09e5ch                          ; eb 36
    1514515191    mov dx, 00cfch                            ; ba fc 0c
    1514615192    in eax, DX                                ; 66 ed
     
    1515115197    mov word [bp+01ch], ax                    ; 89 46 1c
    1515215198    mov word [bp+01eh], dx                    ; 89 56 1e
    15153     jmp short 09e1dh                          ; eb 22
     15199    jmp short 09e5ch                          ; eb 22
    1515415200    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1515515201    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1515815204    add dx, 00cfch                            ; 81 c2 fc 0c
    1515915205    out DX, AL                                ; ee
    15160     jmp short 09e1dh                          ; eb 10
     15206    jmp short 09e5ch                          ; eb 10
    1516115207    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1516215208    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1516515211    add dx, 00cfch                            ; 81 c2 fc 0c
    1516615212    out DX, ax                                ; ef
    15167     jmp near 09ea6h                           ; e9 86 00
     15213    jmp near 09ee5h                           ; e9 86 00
    1516815214    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1516915215    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1517415220    ; mov ax, cx                                ; 8b c1
    1517515221    out DX, eax                               ; 66 ef
    15176     jmp short 09ea6h                          ; eb 72
     15222    jmp short 09ee5h                          ; eb 72
    1517715223    mov bx, word [bp+004h]                    ; 8b 5e 04
    1517815224    mov es, [bp+026h]                         ; 8e 46 26
     
    1518115227    mov cx, word [0f380h]                     ; 8b 0e 80 f3
    1518215228    cmp cx, word [es:bx]                      ; 26 3b 0f
    15183     jbe short 09e5ah                          ; 76 11
     15229    jbe short 09e99h                          ; 76 11
    1518415230    mov ax, word [bp+020h]                    ; 8b 46 20
    1518515231    xor ah, ah                                ; 30 e4
     
    1518715233    mov word [bp+020h], ax                    ; 89 46 20
    1518815234    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15189     jmp short 09e6eh                          ; eb 14
     15235    jmp short 09eadh                          ; eb 14
    1519015236    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1519115237    mov si, 0f1a0h                            ; be a0 f1
     
    1519915245    les bx, [bp-008h]                         ; c4 5e f8
    1520015246    mov word [es:bx], ax                      ; 26 89 07
    15201     jmp short 09ea6h                          ; eb 2d
    15202     mov bx, 00da4h                            ; bb a4 0d
     15247    jmp short 09ee5h                          ; eb 2d
     15248    mov bx, 00da0h                            ; bb a0 0d
    1520315249    mov cx, ds                                ; 8c d9
    1520415250    mov ax, strict word 00004h                ; b8 04 00
    15205     call 01923h                               ; e8 9f 7a
     15251    call 01923h                               ; e8 60 7a
    1520615252    mov ax, word [bp+014h]                    ; 8b 46 14
    1520715253    push ax                                   ; 50
     
    1521015256    push 00d5ch                               ; 68 5c 0d
    1521115257    push strict byte 00004h                   ; 6a 04
    15212     call 01966h                               ; e8 d2 7a
     15258    call 01966h                               ; e8 93 7a
    1521315259    add sp, strict byte 00008h                ; 83 c4 08
    1521415260    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1522215268    pop bp                                    ; 5d
    1522315269    retn                                      ; c3
    15224 pci_find_classcode_:                         ; 0xf9ead LB 0x8
     15270pci_find_classcode_:                         ; 0xf9eec LB 0x8
    1522515271    push bp                                   ; 55
    1522615272    mov bp, sp                                ; 89 e5
     
    1522815274    pop bp                                    ; 5d
    1522915275    retn                                      ; c3
    15230 pci_find_device_:                            ; 0xf9eb5 LB 0x23
     15276pci_find_device_:                            ; 0xf9ef4 LB 0x23
    1523115277    push bp                                   ; 55
    1523215278    mov bp, sp                                ; 89 e5
     
    1524015286    int 01ah                                  ; cd 1a
    1524115287    cmp ah, 000h                              ; 80 fc 00
    15242     je short 09eceh                           ; 74 03
     15288    je short 09f0dh                           ; 74 03
    1524315289    mov bx, strict word 0ffffh                ; bb ff ff
    1524415290    mov ax, bx                                ; 89 d8
     
    1524915295    pop bp                                    ; 5d
    1525015296    retn                                      ; c3
    15251 pci_read_config_byte_:                       ; 0xf9ed8 LB 0x2e
     15297pci_read_config_byte_:                       ; 0xf9f17 LB 0x2e
    1525215298    push bp                                   ; 55
    1525315299    mov bp, sp                                ; 89 e5
     
    1527515321    pop bp                                    ; 5d
    1527615322    retn                                      ; c3
    15277 pci_read_config_word_:                       ; 0xf9f06 LB 0x2a
     15323pci_read_config_word_:                       ; 0xf9f45 LB 0x2a
    1527815324    push bp                                   ; 55
    1527915325    mov bp, sp                                ; 89 e5
     
    1529915345    pop bp                                    ; 5d
    1530015346    retn                                      ; c3
    15301 pci_read_config_dword_:                      ; 0xf9f30 LB 0x4e
     15347pci_read_config_dword_:                      ; 0xf9f6f LB 0x4e
    1530215348    push bp                                   ; 55
    1530315349    mov bp, sp                                ; 89 e5
     
    1532115367    int 01ah                                  ; cd 1a
    1532215368    test cx, cx                               ; 85 c9
    15323     jne short 09f6fh                          ; 75 14
     15369    jne short 09faeh                          ; 75 14
    1532415370    mov al, byte [bp-006h]                    ; 8a 46 fa
    1532515371    xor ah, ah                                ; 30 e4
     
    1533115377    int 01ah                                  ; cd 1a
    1533215378    test cx, cx                               ; 85 c9
    15333     je short 09f74h                           ; 74 05
     15379    je short 09fb3h                           ; 74 05
    1533415380    mov ax, strict word 00001h                ; b8 01 00
    15335     jmp short 09f76h                          ; eb 02
     15381    jmp short 09fb5h                          ; eb 02
    1533615382    xor ax, ax                                ; 31 c0
    1533715383    cwd                                       ; 99
     
    1534115387    pop bp                                    ; 5d
    1534215388    retn                                      ; c3
    15343 pci_write_config_word_:                      ; 0xf9f7e LB 0x25
     15389pci_write_config_word_:                      ; 0xf9fbd LB 0x25
    1534415390    push bp                                   ; 55
    1534515391    mov bp, sp                                ; 89 e5
     
    1536115407    pop bp                                    ; 5d
    1536215408    retn                                      ; c3
    15363 vds_is_present_:                             ; 0xf9fa3 LB 0x1d
     15409vds_is_present_:                             ; 0xf9fe2 LB 0x1d
    1536415410    push bx                                   ; 53
    1536515411    push bp                                   ; 55
     
    1536915415    mov es, ax                                ; 8e c0
    1537015416    test byte [es:bx], 020h                   ; 26 f6 07 20
    15371     je short 09fbbh                           ; 74 06
     15417    je short 09ffah                           ; 74 06
    1537215418    mov ax, strict word 00001h                ; b8 01 00
    1537315419    pop bp                                    ; 5d
     
    1537815424    pop bx                                    ; 5b
    1537915425    retn                                      ; c3
    15380 vds_real_to_lin_:                            ; 0xf9fc0 LB 0x1e
     15426vds_real_to_lin_:                            ; 0xf9fff LB 0x1e
    1538115427    push bx                                   ; 53
    1538215428    push cx                                   ; 51
     
    1538915435    sal ax, 1                                 ; d1 e0
    1539015436    rcl dx, 1                                 ; d1 d2
    15391     loop 09fceh                               ; e2 fa
     15437    loop 0a00dh                               ; e2 fa
    1539215438    xor cx, cx                                ; 31 c9
    1539315439    add ax, bx                                ; 01 d8
     
    1539715443    pop bx                                    ; 5b
    1539815444    retn                                      ; c3
    15399 vds_build_sg_list_:                          ; 0xf9fde LB 0x77
     15445vds_build_sg_list_:                          ; 0xfa01d LB 0x77
    1540015446    push bp                                   ; 55
    1540115447    mov bp, sp                                ; 89 e5
     
    1541115457    mov bx, word [bp+006h]                    ; 8b 5e 06
    1541215458    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15413     call 09fc0h                               ; e8 c3 ff
     15459    call 09fffh                               ; e8 c3 ff
    1541415460    mov es, si                                ; 8e c6
    1541515461    mov word [es:di+004h], ax                 ; 26 89 45 04
    1541615462    mov word [es:di+006h], dx                 ; 26 89 55 06
    1541715463    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15418     call 09fa3h                               ; e8 93 ff
     15464    call 09fe2h                               ; e8 93 ff
    1541915465    test ax, ax                               ; 85 c0
    15420     je short 0a025h                           ; 74 11
     15466    je short 0a064h                           ; 74 11
    1542115467    mov es, si                                ; 8e c6
    1542215468    mov ax, 08105h                            ; b8 05 81
    1542315469    mov dx, strict word 00000h                ; ba 00 00
    1542415470    int 04bh                                  ; cd 4b
    15425     jc short 0a022h                           ; 72 02
     15471    jc short 0a061h                           ; 72 02
    1542615472    db  032h, 0c0h
    1542715473    ; xor al, al                                ; 32 c0
    1542815474    cbw                                       ; 98
    15429     jmp short 0a04ch                          ; eb 27
     15475    jmp short 0a08bh                          ; eb 27
    1543015476    mov es, si                                ; 8e c6
    1543115477    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1544415490    pop bp                                    ; 5d
    1544515491    retn 00004h                               ; c2 04 00
    15446 vds_free_sg_list_:                           ; 0xfa055 LB 0x3b
     15492vds_free_sg_list_:                           ; 0xfa094 LB 0x3c
    1544715493    push bp                                   ; 55
    1544815494    mov bp, sp                                ; 89 e5
     
    1545015496    push di                                   ; 57
    1545115497    mov bx, ax                                ; 89 c3
    15452     call 09fa3h                               ; e8 44 ff
     15498    call 09fe2h                               ; e8 44 ff
    1545315499    test ax, ax                               ; 85 c0
    15454     je short 0a074h                           ; 74 11
     15500    je short 0a0b3h                           ; 74 11
    1545515501    mov di, bx                                ; 89 df
    1545615502    mov es, dx                                ; 8e c2
     
    1545815504    mov dx, strict word 00000h                ; ba 00 00
    1545915505    int 04bh                                  ; cd 4b
    15460     jc short 0a073h                           ; 72 02
     15506    jc short 0a0b2h                           ; 72 02
    1546115507    db  032h, 0c0h
    1546215508    ; xor al, al                                ; 32 c0
     
    1546915515    pop bp                                    ; 5d
    1547015516    retn                                      ; c3
    15471     times 0xd db 0
    15472 __U4M:                                       ; 0xfa090 LB 0x20
     15517    times 0xe db 0
     15518__U4M:                                       ; 0xfa0d0 LB 0x20
    1547315519    pushfw                                    ; 9c
    1547415520    push si                                   ; 56
     
    1549715543    retn                                      ; c3
    1549815544    times 0x4 db 0
    15499 __U4D:                                       ; 0xfa0b0 LB 0x30
     15545__U4D:                                       ; 0xfa0f0 LB 0x30
    1550015546    pushfw                                    ; 9c
    1550115547    push DS                                   ; 1e
     
    1551215558    push dx                                   ; 52
    1551315559    push ax                                   ; 50
    15514     call 0a195h                               ; e8 d0 00
     15560    call 0a1d5h                               ; e8 d0 00
    1551515561    mov cx, word [bp-002h]                    ; 8b 4e fe
    1551615562    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1552315569    retn                                      ; c3
    1552415570    times 0xe db 0
    15525 __U8RS:                                      ; 0xfa0e0 LB 0x10
     15571__U8RS:                                      ; 0xfa120 LB 0x10
    1552615572    test si, si                               ; 85 f6
    15527     je short 0a0efh                           ; 74 0b
     15573    je short 0a12fh                           ; 74 0b
    1552815574    shr ax, 1                                 ; d1 e8
    1552915575    rcr bx, 1                                 ; d1 db
     
    1553115577    rcr dx, 1                                 ; d1 da
    1553215578    dec si                                    ; 4e
    15533     jne short 0a0e4h                          ; 75 f5
     15579    jne short 0a124h                          ; 75 f5
    1553415580    retn                                      ; c3
    15535 __U8LS:                                      ; 0xfa0f0 LB 0x10
     15581__U8LS:                                      ; 0xfa130 LB 0x10
    1553615582    test si, si                               ; 85 f6
    15537     je short 0a0ffh                           ; 74 0b
     15583    je short 0a13fh                           ; 74 0b
    1553815584    sal dx, 1                                 ; d1 e2
    1553915585    rcl cx, 1                                 ; d1 d1
     
    1554115587    rcl ax, 1                                 ; d1 d0
    1554215588    dec si                                    ; 4e
    15543     jne short 0a0f4h                          ; 75 f5
     15589    jne short 0a134h                          ; 75 f5
    1554415590    retn                                      ; c3
    15545 _fmemset_:                                   ; 0xfa100 LB 0x10
     15591_fmemset_:                                   ; 0xfa140 LB 0x10
    1554615592    push di                                   ; 57
    1554715593    mov es, dx                                ; 8e c2
     
    1555415600    retn                                      ; c3
    1555515601    times 0x3 db 0
    15556 _fmemcpy_:                                   ; 0xfa110 LB 0x3a
     15602_fmemcpy_:                                   ; 0xfa150 LB 0x3a
    1555715603    push bp                                   ; 55
    1555815604    db  08bh, 0ech
     
    1557915625    add byte [bx+si], al                      ; 00 00
    1558015626    add byte [bx+si], al                      ; 00 00
    15581     pushaw                                    ; 60
    15582     mov ax, word [0a162h]                     ; a1 62 a1
    15583     mov eax, dword [0a166h]                   ; 66 a1 66 a1
    15584     mov eax, dword [0a168h]                   ; 66 a1 68 a1
    15585     push 06aa1h                               ; 68 a1 6a
    15586     mov ax, word [0a16eh]                     ; a1 6e a1
    15587     outsb                                     ; 6e
    15588     mov ax, word [0a170h]                     ; a1 70 a1
    15589     jne short 0a0e9h                          ; 75 a1
    15590     jnbe short 0a0ebh                         ; 77 a1
    15591 apm_worker:                                  ; 0xfa14a LB 0x3a
     15627    mov AL, byte [0a2a1h]                     ; a0 a1 a2
     15628    mov ax, word [0a1a6h]                     ; a1 a6 a1
     15629    cmpsb                                     ; a6
     15630    mov ax, word [0a1a6h]                     ; a1 a6 a1
     15631    test AL, strict byte 0a1h                 ; a8 a1
     15632    test AL, strict byte 0a1h                 ; a8 a1
     15633    stosb                                     ; aa
     15634    mov ax, word [0a1aeh]                     ; a1 ae a1
     15635    scasb                                     ; ae
     15636    mov ax, word [0a1b0h]                     ; a1 b0 a1
     15637    mov CH, strict byte 0a1h                  ; b5 a1
     15638    mov BH, strict byte 0a1h                  ; b7 a1
     15639apm_worker:                                  ; 0xfa18a LB 0x3a
    1559215640    sti                                       ; fb
    1559315641    push ax                                   ; 50
     
    1560115649    pop ax                                    ; 58
    1560215650    mov AH, strict byte 053h                  ; b4 53
    15603     jnc short 0a180h                          ; 73 25
    15604     jmp word [cs:bp-05ed0h]                   ; 2e ff a6 30 a1
    15605     jmp short 0a17eh                          ; eb 1c
     15651    jnc short 0a1c0h                          ; 73 25
     15652    jmp word [cs:bp-05e90h]                   ; 2e ff a6 70 a1
     15653    jmp short 0a1beh                          ; eb 1c
    1560615654    sti                                       ; fb
    1560715655    hlt                                       ; f4
    15608     jmp short 0a17eh                          ; eb 18
    15609     jmp short 0a17eh                          ; eb 16
    15610     jmp short 0a180h                          ; eb 16
     15656    jmp short 0a1beh                          ; eb 18
     15657    jmp short 0a1beh                          ; eb 16
     15658    jmp short 0a1c0h                          ; eb 16
    1561115659    mov AH, strict byte 080h                  ; b4 80
    15612     jmp short 0a182h                          ; eb 14
    15613     jmp short 0a180h                          ; eb 10
     15660    jmp short 0a1c2h                          ; eb 14
     15661    jmp short 0a1c0h                          ; eb 10
    1561415662    mov ax, 00102h                            ; b8 02 01
    15615     jmp short 0a17eh                          ; eb 09
    15616     jmp short 0a17eh                          ; eb 07
     15663    jmp short 0a1beh                          ; eb 09
     15664    jmp short 0a1beh                          ; eb 07
    1561715665    mov BL, strict byte 000h                  ; b3 00
    1561815666    mov cx, strict word 00000h                ; b9 00 00
    15619     jmp short 0a17eh                          ; eb 00
     15667    jmp short 0a1beh                          ; eb 00
    1562015668    clc                                       ; f8
    1562115669    retn                                      ; c3
     
    1562315671    stc                                       ; f9
    1562415672    retn                                      ; c3
    15625 apm_pm16_entry:                              ; 0xfa184 LB 0x11
     15673apm_pm16_entry:                              ; 0xfa1c4 LB 0x11
    1562615674    mov AH, strict byte 002h                  ; b4 02
    1562715675    push DS                                   ; 1e
     
    1563115679    add bp, strict byte 00008h                ; 83 c5 08
    1563215680    mov ds, bp                                ; 8e dd
    15633     call 0a14ah                               ; e8 b8 ff
     15681    call 0a18ah                               ; e8 b8 ff
    1563415682    pop bp                                    ; 5d
    1563515683    pop DS                                    ; 1f
    1563615684    retf                                      ; cb
    15637 _DoUInt32Div:                                ; 0xfa195 LB 0x26b
     15685_DoUInt32Div:                                ; 0xfa1d5 LB 0x26b
    1563815686    push bp                                   ; 55
    1563915687    mov bp, sp                                ; 89 e5
     
    1565315701    mov [bp-006h], ds                         ; 8c 5e fa
    1565415702    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15655     jne short 0a1e5h                          ; 75 22
     15703    jne short 0a225h                          ; 75 22
    1565615704    mov ax, word [bx]                         ; 8b 07
    1565715705    test ax, ax                               ; 85 c0
    15658     je short 0a1e2h                           ; 74 19
     15706    je short 0a222h                           ; 74 19
    1565915707    cmp ax, strict word 00001h                ; 3d 01 00
    15660     jne short 0a1e5h                          ; 75 17
     15708    jne short 0a225h                          ; 75 17
    1566115709    xor ax, ax                                ; 31 c0
    1566215710    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1566615714    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1566715715    mov word [bp+006h], ax                    ; 89 46 06
    15668     jmp near 0a3edh                           ; e9 08 02
     15716    jmp near 0a42dh                           ; e9 08 02
    1566915717    lds bx, [bp-00ch]                         ; c5 5e f4
    1567015718    mov ax, word [bx+002h]                    ; 8b 47 02
    1567115719    mov ds, [bp-006h]                         ; 8e 5e fa
    1567215720    cmp ax, word [si+002h]                    ; 3b 44 02
    15673     je short 0a20bh                           ; 74 18
     15721    je short 0a24bh                           ; 74 18
    1567415722    mov ds, [bp-00ah]                         ; 8e 5e f6
    1567515723    mov ax, word [bx+002h]                    ; 8b 47 02
    1567615724    mov ds, [bp-006h]                         ; 8e 5e fa
    1567715725    cmp ax, word [si+002h]                    ; 3b 44 02
    15678     jbe short 0a206h                          ; 76 05
     15726    jbe short 0a246h                          ; 76 05
    1567915727    mov ax, strict word 00001h                ; b8 01 00
    15680     jmp short 0a22ch                          ; eb 26
     15728    jmp short 0a26ch                          ; eb 26
    1568115729    mov ax, strict word 0ffffh                ; b8 ff ff
    15682     jmp short 0a22ch                          ; eb 21
     15730    jmp short 0a26ch                          ; eb 21
    1568315731    mov ds, [bp-00ah]                         ; 8e 5e f6
    1568415732    mov ax, word [bx]                         ; 8b 07
    1568515733    mov ds, [bp-006h]                         ; 8e 5e fa
    1568615734    cmp ax, word [si]                         ; 3b 04
    15687     je short 0a22ah                           ; 74 13
     15735    je short 0a26ah                           ; 74 13
    1568815736    mov ds, [bp-00ah]                         ; 8e 5e f6
    1568915737    mov ax, word [bx]                         ; 8b 07
    1569015738    mov ds, [bp-006h]                         ; 8e 5e fa
    1569115739    cmp ax, word [si]                         ; 3b 04
    15692     jbe short 0a225h                          ; 76 02
    15693     jmp short 0a201h                          ; eb dc
     15740    jbe short 0a265h                          ; 76 02
     15741    jmp short 0a241h                          ; eb dc
    1569415742    mov ax, strict word 0ffffh                ; b8 ff ff
    15695     jmp short 0a22ch                          ; eb 02
     15743    jmp short 0a26ch                          ; eb 02
    1569615744    xor ax, ax                                ; 31 c0
    1569715745    test ax, ax                               ; 85 c0
    15698     jnl short 0a24eh                          ; 7d 1e
     15746    jnl short 0a28eh                          ; 7d 1e
    1569915747    lds bx, [bp-00ch]                         ; c5 5e f4
    1570015748    mov ax, word [bx]                         ; 8b 07
     
    1570615754    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1570715755    mov word [bx], strict word 00000h         ; c7 07 00 00
    15708     jmp short 0a1e2h                          ; eb 94
    15709     jne short 0a265h                          ; 75 15
     15756    jmp short 0a222h                          ; eb 94
     15757    jne short 0a2a5h                          ; 75 15
    1571015758    mov ds, [bp-008h]                         ; 8e 5e f8
    1571115759    mov word [di+002h], ax                    ; 89 45 02
     
    1571415762    mov word [bx], strict word 00001h         ; c7 07 01 00
    1571515763    mov word [bx+002h], ax                    ; 89 47 02
    15716     jmp near 0a3edh                           ; e9 88 01
     15764    jmp near 0a42dh                           ; e9 88 01
    1571715765    lds bx, [bp-00ch]                         ; c5 5e f4
    1571815766    mov ax, word [bx+002h]                    ; 8b 47 02
    1571915767    test ax, ax                               ; 85 c0
    15720     je short 0a280h                           ; 74 11
     15768    je short 0a2c0h                           ; 74 11
    1572115769    push ax                                   ; 50
    1572215770    mov ax, 0f000h                            ; b8 00 f0
    1572315771    mov ds, ax                                ; 8e d8
    15724     call 0a400h                               ; e8 88 01
     15772    call 0a440h                               ; e8 88 01
    1572515773    add sp, strict byte 00002h                ; 83 c4 02
    1572615774    add ax, strict word 00010h                ; 05 10 00
    15727     jmp short 0a28dh                          ; eb 0d
     15775    jmp short 0a2cdh                          ; eb 0d
    1572815776    push word [bx]                            ; ff 37
    1572915777    mov ax, 0f000h                            ; b8 00 f0
    1573015778    mov ds, ax                                ; 8e d8
    15731     call 0a400h                               ; e8 76 01
     15779    call 0a440h                               ; e8 76 01
    1573215780    add sp, strict byte 00002h                ; 83 c4 02
    1573315781    mov word [bp-014h], ax                    ; 89 46 ec
     
    1573515783    mov ax, word [si+002h]                    ; 8b 44 02
    1573615784    test ax, ax                               ; 85 c0
    15737     je short 0a2abh                           ; 74 11
     15785    je short 0a2ebh                           ; 74 11
    1573815786    push ax                                   ; 50
    1573915787    mov ax, 0f000h                            ; b8 00 f0
    1574015788    mov ds, ax                                ; 8e d8
    15741     call 0a400h                               ; e8 5d 01
     15789    call 0a440h                               ; e8 5d 01
    1574215790    add sp, strict byte 00002h                ; 83 c4 02
    1574315791    add ax, strict word 00010h                ; 05 10 00
    15744     jmp short 0a2b8h                          ; eb 0d
     15792    jmp short 0a2f8h                          ; eb 0d
    1574515793    push word [si]                            ; ff 34
    1574615794    mov ax, 0f000h                            ; b8 00 f0
    1574715795    mov ds, ax                                ; 8e d8
    15748     call 0a400h                               ; e8 4b 01
     15796    call 0a440h                               ; e8 4b 01
    1574915797    add sp, strict byte 00002h                ; 83 c4 02
    1575015798    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1575715805    mov word [bp-016h], ax                    ; 89 46 ea
    1575815806    test dx, dx                               ; 85 d2
    15759     je short 0a328h                           ; 74 56
     15807    je short 0a368h                           ; 74 56
    1576015808    mov cx, dx                                ; 89 d1
    1576115809    xor ch, dh                                ; 30 f5
     
    1576315811    mov ax, word [si]                         ; 8b 04
    1576415812    mov dx, word [si+002h]                    ; 8b 54 02
    15765     jcxz 0a2e6h                               ; e3 06
     15813    jcxz 0a326h                               ; e3 06
    1576615814    sal ax, 1                                 ; d1 e0
    1576715815    rcl dx, 1                                 ; d1 d2
    15768     loop 0a2e0h                               ; e2 fa
     15816    loop 0a320h                               ; e2 fa
    1576915817    mov word [bp-018h], ax                    ; 89 46 e8
    1577015818    mov word [bp-016h], dx                    ; 89 56 ea
     
    1577215820    lds bx, [bp-00ch]                         ; c5 5e f4
    1577315821    cmp ax, word [bx+002h]                    ; 3b 47 02
    15774     jnbe short 0a306h                         ; 77 0f
     15822    jnbe short 0a346h                         ; 77 0f
    1577515823    mov ax, word [bp-016h]                    ; 8b 46 ea
    1577615824    cmp ax, word [bx+002h]                    ; 3b 47 02
    15777     jne short 0a30ah                          ; 75 0b
     15825    jne short 0a34ah                          ; 75 0b
    1577815826    mov ax, word [bp-018h]                    ; 8b 46 e8
    1577915827    cmp ax, word [bx]                         ; 3b 07
    15780     jbe short 0a30ah                          ; 76 04
     15828    jbe short 0a34ah                          ; 76 04
    1578115829    mov AL, strict byte 001h                  ; b0 01
    15782     jmp short 0a30ch                          ; eb 02
     15830    jmp short 0a34ch                          ; eb 02
    1578315831    xor al, al                                ; 30 c0
    1578415832    test al, al                               ; 84 c0
    15785     je short 0a333h                           ; 74 23
     15833    je short 0a373h                           ; 74 23
    1578615834    shr word [bp-016h], 1                     ; d1 6e ea
    1578715835    rcr word [bp-018h], 1                     ; d1 5e e8
    1578815836    dec word [bp-012h]                        ; ff 4e ee
    15789     jmp short 0a333h                          ; eb 18
     15837    jmp short 0a373h                          ; eb 18
    1579015838    mov cx, strict word 0001fh                ; b9 1f 00
    1579115839    sal word [bp-018h], 1                     ; d1 66 e8
    1579215840    rcl word [bp-016h], 1                     ; d1 56 ea
    15793     loop 0a31eh                               ; e2 f8
    15794     jmp short 0a316h                          ; eb ee
     15841    loop 0a35eh                               ; e2 f8
     15842    jmp short 0a356h                          ; eb ee
    1579515843    mov ax, word [si]                         ; 8b 04
    1579615844    mov word [bp-018h], ax                    ; 89 46 e8
     
    1580915857    mov ds, [bp-006h]                         ; 8e 5e fa
    1581015858    cmp ax, word [si+002h]                    ; 3b 44 02
    15811     jnbe short 0a35fh                         ; 77 06
    15812     jne short 0a363h                          ; 75 08
     15859    jnbe short 0a39fh                         ; 77 06
     15860    jne short 0a3a3h                          ; 75 08
    1581315861    cmp dx, word [si]                         ; 3b 14
    15814     jc short 0a363h                           ; 72 04
     15862    jc short 0a3a3h                           ; 72 04
    1581515863    mov AL, strict byte 001h                  ; b0 01
    15816     jmp short 0a365h                          ; eb 02
     15864    jmp short 0a3a5h                          ; eb 02
    1581715865    xor al, al                                ; 30 c0
    1581815866    test al, al                               ; 84 c0
    15819     je short 0a3cah                           ; 74 61
     15867    je short 0a40ah                           ; 74 61
    1582015868    mov ds, [bp-008h]                         ; 8e 5e f8
    1582115869    mov ax, word [di+002h]                    ; 8b 45 02
    1582215870    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15823     jnbe short 0a380h                         ; 77 0c
     15871    jnbe short 0a3c0h                         ; 77 0c
    1582415872    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15825     jne short 0a384h                          ; 75 0b
     15873    jne short 0a3c4h                          ; 75 0b
    1582615874    mov ax, word [di]                         ; 8b 05
    1582715875    cmp ax, word [bp-018h]                    ; 3b 46 e8
    15828     jc short 0a384h                           ; 72 04
     15876    jc short 0a3c4h                           ; 72 04
    1582915877    mov AL, strict byte 001h                  ; b0 01
    15830     jmp short 0a386h                          ; eb 02
     15878    jmp short 0a3c6h                          ; eb 02
    1583115879    xor al, al                                ; 30 c0
    1583215880    test al, al                               ; 84 c0
    15833     je short 0a3b0h                           ; 74 26
     15881    je short 0a3f0h                           ; 74 26
    1583415882    mov ax, word [bp-018h]                    ; 8b 46 e8
    1583515883    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1584015888    xor dx, dx                                ; 31 d2
    1584115889    mov cx, word [bp-012h]                    ; 8b 4e ee
    15842     jcxz 0a3a8h                               ; e3 06
     15890    jcxz 0a3e8h                               ; e3 06
    1584315891    sal ax, 1                                 ; d1 e0
    1584415892    rcl dx, 1                                 ; d1 d2
    15845     loop 0a3a2h                               ; e2 fa
     15893    loop 0a3e2h                               ; e2 fa
    1584615894    lds bx, [bp-010h]                         ; c5 5e f0
    1584715895    or word [bx], ax                          ; 09 07
     
    1585215900    mov ds, [bp-006h]                         ; 8e 5e fa
    1585315901    cmp ax, word [si+002h]                    ; 3b 44 02
    15854     jc short 0a3c6h                           ; 72 06
    15855     jne short 0a3cch                          ; 75 0a
     15902    jc short 0a406h                           ; 72 06
     15903    jne short 0a40ch                          ; 75 0a
    1585615904    cmp dx, word [si]                         ; 3b 14
    15857     jnc short 0a3cch                          ; 73 06
     15905    jnc short 0a40ch                          ; 73 06
    1585815906    mov AL, strict byte 001h                  ; b0 01
    15859     jmp short 0a3ceh                          ; eb 04
    15860     jmp short 0a3edh                          ; eb 21
     15907    jmp short 0a40eh                          ; eb 04
     15908    jmp short 0a42dh                          ; eb 21
    1586115909    xor al, al                                ; 30 c0
    1586215910    test al, al                               ; 84 c0
    15863     je short 0a3e1h                           ; 74 0f
    15864     jmp short 0a3edh                          ; eb 19
     15911    je short 0a421h                           ; 74 0f
     15912    jmp short 0a42dh                          ; eb 19
    1586515913    mov cx, strict word 0001fh                ; b9 1f 00
    1586615914    sal word [bp-018h], 1                     ; d1 66 e8
    1586715915    rcl word [bp-016h], 1                     ; d1 56 ea
    15868     loop 0a3d7h                               ; e2 f8
    15869     jmp short 0a3e7h                          ; eb 06
     15916    loop 0a417h                               ; e2 f8
     15917    jmp short 0a427h                          ; eb 06
    1587015918    shr word [bp-016h], 1                     ; d1 6e ea
    1587115919    rcr word [bp-018h], 1                     ; d1 5e e8
    1587215920    dec word [bp-012h]                        ; ff 4e ee
    15873     jmp near 0a369h                           ; e9 7c ff
     15921    jmp near 0a3a9h                           ; e9 7c ff
    1587415922    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1587515923    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1588015928    retn                                      ; c3
    1588115929    times 0x6 db 0
    15882 _ASMBitLastSetU16:                           ; 0xfa400 LB 0x18
     15930_ASMBitLastSetU16:                           ; 0xfa440 LB 0x18
    1588315931    push bp                                   ; 55
    1588415932    db  08bh, 0ech
     
    1588615934    mov cx, word [bp+004h]                    ; 8b 4e 04
    1588715935    test cx, cx                               ; 85 c9
    15888     je short 0a414h                           ; 74 0a
     15936    je short 0a454h                           ; 74 0a
    1588915937    mov ax, strict word 00010h                ; b8 10 00
    1589015938    sal cx, 1                                 ; d1 e1
    15891     jc short 0a416h                           ; 72 05
     15939    jc short 0a456h                           ; 72 05
    1589215940    dec ax                                    ; 48
    15893     jmp short 0a40dh                          ; eb f9
     15941    jmp short 0a44dh                          ; eb f9
    1589415942    db  033h, 0c0h
    1589515943    ; xor ax, ax                                ; 33 c0
     
    1589715945    retn                                      ; c3
    1589815946
    15899   ; Padding 0x35e8 bytes at 0xfa418
    15900   times 13800 db 0
     15947  ; Padding 0x35a8 bytes at 0xfa458
     15948  times 13736 db 0
    1590115949
    1590215950section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1594515993    add bp, strict byte 00008h                ; 83 c5 08
    1594615994    push ebp                                  ; 66 55
    15947     mov bp, 0a186h                            ; bd 86 a1
     15995    mov bp, 0a1c6h                            ; bd c6 a1
    1594815996    add byte [bx+si], al                      ; 00 00
    1594915997    push ebp                                  ; 66 55
     
    1641116459    cmp AL, strict byte 009h                  ; 3c 09
    1641216460    jne short 0e0bch                          ; 75 03
    16413     jmp near 0e368h                           ; e9 ac 02
     16461    jmp near 0e350h                           ; e9 94 02
    1641416462    cmp AL, strict byte 005h                  ; 3c 05
    1641516463    je short 0e044h                           ; 74 84
     
    1655416602    mov dx, 0c800h                            ; ba 00 c8
    1655516603    call 01600h                               ; e8 ea 33
    16556     call 04eddh                               ; e8 c4 6c
     16604    call 04f1ch                               ; e8 03 6d
    1655716605    pop DS                                    ; 1f
    1655816606    mov ax, 0ff53h                            ; b8 53 ff
     
    1661416662    mov word [001c2h], ax                     ; a3 c2 01
    1661516663    call 0edbfh                               ; e8 0e 0b
    16616     jmp short 0e31bh                          ; eb 68
     16664    jmp short 0e303h                          ; eb 50
    1661716665biosorg_check_before_or_at_0E2C1h:           ; 0xfe2b3 LB 0x10
    1661816666    times 0xe db 0
     
    1662916677    int 002h                                  ; cd 02
    1663016678    iret                                      ; cf
    16631 hard_drive_post:                             ; 0xfe2d2 LB 0xbf
     16679hard_drive_post:                             ; 0xfe2d2 LB 0xa7
    1663216680    db  033h, 0c0h
    1663316681    ; xor ax, ax                                ; 33 c0
     
    1664816696    mov ax, 0f000h                            ; b8 00 f0
    1664916697    mov word [001dah], ax                     ; a3 da 01
    16650     mov ax, strict word 0003dh                ; b8 3d 00
    16651     mov word [00104h], ax                     ; a3 04 01
    16652     mov ax, 09fc0h                            ; b8 c0 9f
    16653     mov word [00106h], ax                     ; a3 06 01
    16654     mov ax, strict word 0004dh                ; b8 4d 00
    16655     mov word [00118h], ax                     ; a3 18 01
    16656     mov ax, 09fc0h                            ; b8 c0 9f
    16657     mov word [0011ah], ax                     ; a3 1a 01
    1665816698    retn                                      ; c3
    1665916699    mov ax, 0f8bfh                            ; b8 bf f8
     
    1666516705    mov ax, 0f000h                            ; b8 00 f0
    1666616706    mov word [001d6h], ax                     ; a3 d6 01
    16667     call 0e753h                               ; e8 1d 04
     16707    call 0e753h                               ; e8 35 04
    1666816708    push CS                                   ; 0e
    1666916709    pop DS                                    ; 1f
    1667016710    cld                                       ; fc
    16671     call 01c9fh                               ; e8 63 39
    16672     call 02118h                               ; e8 d9 3d
     16711    call 01c9fh                               ; e8 7b 39
     16712    call 02118h                               ; e8 f1 3d
    1667316713    sti                                       ; fb
    16674     call 09958h                               ; e8 15 b6
     16714    call 09997h                               ; e8 6c b6
    1667516715    cli                                       ; fa
    16676     call 087b8h                               ; e8 71 a4
    16677     call 0ed2fh                               ; e8 e5 09
    16678     call 0e2d2h                               ; e8 85 ff
     16716    call 087f7h                               ; e8 c8 a4
     16717    call 0ed2fh                               ; e8 fd 09
     16718    call 0e2d2h                               ; e8 9d ff
    1667916719    push CS                                   ; 0e
    1668016720    pop DS                                    ; 1f
     
    1668216722    mov ax, 0c800h                            ; b8 00 c8
    1668316723    mov dx, 0f000h                            ; ba 00 f0
    16684     call 01600h                               ; e8 a7 32
    16685     call 0178dh                               ; e8 31 34
    16686     call 03b54h                               ; e8 f5 57
     16724    call 01600h                               ; e8 bf 32
     16725    call 0178dh                               ; e8 49 34
     16726    call 03b93h                               ; e8 4c 58
    1668716727    sti                                       ; fb
    1668816728    int 019h                                  ; cd 19
    1668916729    sti                                       ; fb
    1669016730    hlt                                       ; f4
    16691     jmp short 0e363h                          ; eb fd
     16731    jmp short 0e34bh                          ; eb fd
    1669216732    cli                                       ; fa
    1669316733    hlt                                       ; f4
     
    1671116751    sti                                       ; fb
    1671216752    retf 00002h                               ; ca 02 00
    16713 biosorg_check_before_or_at_0E3FCh:           ; 0xfe391 LB 0x6d
    16714     times 0x6b db 0
     16753biosorg_check_before_or_at_0E3FCh:           ; 0xfe379 LB 0x85
     16754    times 0x83 db 0
    1671516755    db  'XM'
    1671616756int13_handler:                               ; 0xfe3fe LB 0x3
     
    1678616826    pop DS                                    ; 1f
    1678716827    cld                                       ; fc
    16788     call 0644bh                               ; e8 09 7d
     16828    call 0648ah                               ; e8 48 7d
    1678916829    popaw                                     ; 61
    1679016830    pop ES                                    ; 07
     
    1686716907    pop DS                                    ; 1f
    1686816908    cld                                       ; fc
    16869     call 0570dh                               ; e8 ca 6e
     16909    call 0574ch                               ; e8 09 6f
    1687016910    popaw                                     ; 61
    1687116911    pop DS                                    ; 1f
     
    1688516925    pop DS                                    ; 1f
    1688616926    cld                                       ; fc
    16887     call 0570dh                               ; e8 a9 6e
     16927    call 0574ch                               ; e8 e8 6e
    1688816928    popaw                                     ; 61
    1688916929    pop DS                                    ; 1f
     
    1692616966    pop DS                                    ; 1f
    1692716967    cld                                       ; fc
    16928     call 051e5h                               ; e8 26 68
     16968    call 05224h                               ; e8 65 68
    1692916969    pop ES                                    ; 07
    1693016970    popaw                                     ; 61
     
    1694216982    pop DS                                    ; 1f
    1694316983    cld                                       ; fc
    16944     call 06ef2h                               ; e8 1d 85
     16984    call 06f31h                               ; e8 5c 85
    1694516985    pop DS                                    ; 1f
    1694616986    pop ES                                    ; 07
     
    1696417004    cld                                       ; fc
    1696517005    push 0ece9h                               ; 68 e9 ec
    16966     jmp near 03b98h                           ; e9 27 4f
     17006    jmp near 03bd7h                           ; e9 66 4f
    1696717007    push ES                                   ; 06
    1696817008    push ax                                   ; 50
     
    1697017010    push cx                                   ; 51
    1697117011    push dx                                   ; 52
    16972     call 03b6ch                               ; e8 f3 4e
     17012    call 03babh                               ; e8 32 4f
    1697317013    cmp AL, strict byte 000h                  ; 3c 00
    1697417014    je short 0ecabh                           ; 74 2e
    16975     call 03b82h                               ; e8 02 4f
     17015    call 03bc1h                               ; e8 41 4f
    1697617016    pop dx                                    ; 5a
    1697717017    push dx                                   ; 52
     
    1699117031    cld                                       ; fc
    1699217032    push 0ece9h                               ; 68 e9 ec
    16993     jmp near 04192h                           ; e9 fb 54
     17033    jmp near 041d1h                           ; e9 3a 55
    1699417034    and dl, 0e0h                              ; 80 e2 e0
    1699517035    db  03ah, 0c2h
     
    1703117071    jne short 0ecc8h                          ; 75 06
    1703217072    push 0ece9h                               ; 68 e9 ec
    17033     jmp near 0314fh                           ; e9 87 44
     17073    jmp near 0318eh                           ; e9 c6 44
    1703417074int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1703517075    cmp dl, 0e0h                              ; 80 fa e0
     
    1703717077    shr ebx, 010h                             ; 66 c1 eb 10
    1703817078    push bx                                   ; 53
    17039     call 045d4h                               ; e8 ff 58
     17079    call 04613h                               ; e8 3e 59
    1704017080    pop bx                                    ; 5b
    1704117081    sal ebx, 010h                             ; 66 c1 e3 10
     
    1704417084    cmp ah, 040h                              ; 80 fc 40
    1704517085    jnbe short 0ece6h                         ; 77 05
    17046     call 05ae9h                               ; e8 05 6e
     17086    call 05b28h                               ; e8 44 6e
    1704717087    jmp short 0ece9h                          ; eb 03
    17048     call 05f3ch                               ; e8 53 72
     17088    call 05f7bh                               ; e8 92 72
    1704917089int13_out:                                   ; 0xfece9 LB 0x4
    1705017090    pop DS                                    ; 1f
     
    1726017300    pop DS                                    ; 1f
    1726117301    cld                                       ; fc
    17262     call 07890h                               ; e8 b3 88
     17302    call 078cfh                               ; e8 f2 88
    1726317303    popaw                                     ; 61
    1726417304    pop ES                                    ; 07
     
    1731117351    mov ax, strict word 00001h                ; b8 01 00
    1731217352    push ax                                   ; 50
    17313     call 04c59h                               ; e8 89 5b
     17353    call 04c98h                               ; e8 c8 5b
    1731417354    inc sp                                    ; 44
    1731517355    inc sp                                    ; 44
     
    1731817358    mov ax, strict word 00002h                ; b8 02 00
    1731917359    push ax                                   ; 50
    17320     call 04c59h                               ; e8 7c 5b
     17360    call 04c98h                               ; e8 bb 5b
    1732117361    inc sp                                    ; 44
    1732217362    inc sp                                    ; 44
     
    1732517365    mov ax, strict word 00003h                ; b8 03 00
    1732617366    push ax                                   ; 50
    17327     call 04c59h                               ; e8 6f 5b
     17367    call 04c98h                               ; e8 ae 5b
    1732817368    inc sp                                    ; 44
    1732917369    inc sp                                    ; 44
     
    1733217372    mov ax, strict word 00004h                ; b8 04 00
    1733317373    push ax                                   ; 50
    17334     call 04c59h                               ; e8 62 5b
     17374    call 04c98h                               ; e8 a1 5b
    1733517375    inc sp                                    ; 44
    1733617376    inc sp                                    ; 44
     
    1748317523    pop DS                                    ; 1f
    1748417524    cld                                       ; fc
    17485     call 06d68h                               ; e8 01 75
     17525    call 06da7h                               ; e8 40 75
    1748617526    pop DS                                    ; 1f
    1748717527    pop ES                                    ; 07
     
    1750517545    cmp ah, 0c2h                              ; 80 fc c2
    1750617546    je short 0f899h                           ; 74 0e
    17507     call 066a2h                               ; e8 14 6e
     17547    call 066e1h                               ; e8 53 6e
    1750817548    popaw                                     ; 61
    1750917549    pop ES                                    ; 07
     
    1751117551    popfw                                     ; 9d
    1751217552    jmp short 0f8a5h                          ; eb 11
    17513     call 09acbh                               ; e8 34 a2
     17553    call 09b0ah                               ; e8 73 a2
    1751417554    jmp short 0f88eh                          ; eb f5
    1751517555int15_handler_mouse:                         ; 0xff899 LB 0x5
    17516     call 07503h                               ; e8 67 7c
     17556    call 07542h                               ; e8 a6 7c
    1751717557    jmp short 0f88eh                          ; eb f0
    1751817558int15_handler32:                             ; 0xff89e LB 0x7
    1751917559    pushaw                                    ; 60
    17520     call 069deh                               ; e8 3c 71
     17560    call 06a1dh                               ; e8 7b 71
    1752117561    popaw                                     ; 61
    1752217562    jmp short 0f88fh                          ; eb ea
     
    1755117591    pop DS                                    ; 1f
    1755217592    cld                                       ; fc
    17553     call 07431h                               ; e8 61 7b
     17593    call 07470h                               ; e8 a0 7b
    1755417594    pop cx                                    ; 59
    1755517595    jcxz 0f8dfh                               ; e3 0c
     
    1758317623    pop DS                                    ; 1f
    1758417624    cld                                       ; fc
    17585     call 070d6h                               ; e8 d1 77
     17625    call 07115h                               ; e8 10 78
    1758617626    popaw                                     ; 61
    1758717627    pop DS                                    ; 1f
     
    1767217712    pop DS                                    ; 1f
    1767317713    cld                                       ; fc
    17674     call 07195h                               ; e8 1e 73
     17714    call 071d4h                               ; e8 5d 73
    1767517715    popaw                                     ; 61
    1767617716    pop DS                                    ; 1f
     
    1777717817cpu_reset:                                   ; 0xffff0 LB 0x10
    1777817818    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17779     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0a8h
     17819    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0e5h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum

    r68934 r69128  
    1 d155ba841f31c1a57eaef68a9f7f28f6 *VBoxPcBios286.rom
     1fce56fd1ede722bb71537af5a0525b14 *VBoxPcBios286.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm

    r68934 r69128  
    951951    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    952952_pktacc:                                     ; 0xf006a LB 0xc
    953     db  000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 01ah, 082h, 089h, 091h
     953    db  000h, 000h, 000h, 000h, 000h, 000h, 07bh, 02ch, 038h, 082h, 0a7h, 091h
    954954_softrst:                                    ; 0xf0076 LB 0xc
    955     db  000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0b6h, 03ch, 0b6h, 03ch
     955    db  000h, 000h, 000h, 000h, 000h, 000h, 063h, 02fh, 0d4h, 03ch, 0d4h, 03ch
    956956_dskacc:                                     ; 0xf0082 LB 0x2e
    957     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h
    958     db  064h, 080h, 03fh, 081h, 05fh, 090h, 005h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     957    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 06bh, 02bh, 020h, 02ch, 000h, 000h, 000h, 000h
     958    db  082h, 080h, 05dh, 081h, 07dh, 090h, 023h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    959959    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    960960
     
    10781078    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    10791079
    1080 section CONST2 progbits vstart=0xda0 align=1 ; size=0x3fe class=DATA group=DGROUP
    1081 _bios_cvs_version_string:                    ; 0xf0da0 LB 0x16
    1082     db  'VirtualBox 5.2.0_RC1', 000h, 000h
    1083 _bios_prefix_string:                         ; 0xf0db6 LB 0x8
     1080section CONST2 progbits vstart=0xda0 align=1 ; size=0x3fa class=DATA group=DGROUP
     1081_bios_cvs_version_string:                    ; 0xf0da0 LB 0x12
     1082    db  'VirtualBox 5.2.0', 000h, 000h
     1083_bios_prefix_string:                         ; 0xf0db2 LB 0x8
    10841084    db  'BIOS: ', 000h, 000h
    1085 _isotag:                                     ; 0xf0dbe LB 0x6
     1085_isotag:                                     ; 0xf0dba LB 0x6
    10861086    db  'CD001', 000h
    1087 _eltorito:                                   ; 0xf0dc4 LB 0x18
     1087_eltorito:                                   ; 0xf0dc0 LB 0x18
    10881088    db  'EL TORITO SPECIFICATION', 000h
    1089 _drivetypes:                                 ; 0xf0ddc LB 0x28
     1089_drivetypes:                                 ; 0xf0dd8 LB 0x28
    10901090    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    10911091    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    10921092    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1093 _scan_to_scanascii:                          ; 0xf0e04 LB 0x37a
     1093_scan_to_scanascii:                          ; 0xf0e00 LB 0x37a
    10941094    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    10951095    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11481148    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11491149    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1150 _panic_msg_keyb_buffer_full:                 ; 0xf117e LB 0x20
     1150_panic_msg_keyb_buffer_full:                 ; 0xf117a LB 0x20
    11511151    db  '%s: keyboard input buffer full', 00ah, 000h
    11521152
    1153   ; Padding 0x462 bytes at 0xf119e
    1154   times 1122 db 0
     1153  ; Padding 0x466 bytes at 0xf119a
     1154  times 1126 db 0
    11551155
    1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ba5 class=CODE group=AUTO
     1156section _TEXT progbits vstart=0x1600 align=1 ; size=0x8bc5 class=CODE group=AUTO
    11571157rom_scan_:                                   ; 0xf1600 LB 0x50
    11581158    push bp                                   ; 55
     
    15011501    push bp                                   ; 55
    15021502    mov bp, sp                                ; 89 e5
    1503     mov bx, 00db6h                            ; bb b6 0d
     1503    mov bx, 00db2h                            ; bb b2 0d
    15041504    mov cx, ds                                ; 8c d9
    15051505    mov ax, strict word 00004h                ; b8 04 00
     
    15301530    int 010h                                  ; cd 10
    15311531    jmp short 018bah                          ; eb 03
    1532     call 07c22h                               ; e8 68 63
     1532    call 07c40h                               ; e8 86 63
    15331533    mov sp, bp                                ; 89 ec
    15341534    pop bp                                    ; 5d
     
    16761676    mov bx, strict word 0000ah                ; bb 0a 00
    16771677    xor cx, cx                                ; 31 c9
    1678     call 0a0b0h                               ; e8 de 86
     1678    call 0a0d0h                               ; e8 fe 86
    16791679    mov word [bp-008h], ax                    ; 89 46 f8
    16801680    mov cx, dx                                ; 89 d1
     
    19021902    mov dx, word [bp-026h]                    ; 8b 56 da
    19031903    mov si, word [bp-01eh]                    ; 8b 76 e2
    1904     call 0a0f0h                               ; e8 ec 84
     1904    call 0a110h                               ; e8 0c 85
    19051905    mov ax, dx                                ; 89 d0
    19061906    xor ah, dh                                ; 30 f4
     
    23442344    mov dx, word [es:si]                      ; 26 8b 14
    23452345    mov si, strict word 00018h                ; be 18 00
    2346     call 0a0f0h                               ; e8 90 80
     2346    call 0a110h                               ; e8 b0 80
    23472347    xor dh, dh                                ; 30 f6
    23482348    mov word [bp-016h], dx                    ; 89 56 ea
     
    23542354    mov dx, word [es:si]                      ; 26 8b 14
    23552355    mov si, strict word 00020h                ; be 20 00
    2356     call 0a0f0h                               ; e8 70 80
     2356    call 0a110h                               ; e8 90 80
    23572357    mov bx, dx                                ; 89 d3
    23582358    mov ax, word [bp-01eh]                    ; 8b 46 e2
     
    23852385    mov dx, word [es:si]                      ; 26 8b 14
    23862386    mov si, strict word 00008h                ; be 08 00
    2387     call 0a0f0h                               ; e8 1f 80
     2387    call 0a110h                               ; e8 3f 80
    23882388    mov word [bp-014h], dx                    ; 89 56 ec
    23892389    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    23942394    mov dx, word [es:si]                      ; 26 8b 14
    23952395    mov si, strict word 00018h                ; be 18 00
    2396     call 0a0f0h                               ; e8 01 80
     2396    call 0a110h                               ; e8 21 80
    23972397    and dx, strict byte 0000fh                ; 83 e2 0f
    23982398    or dl, 040h                               ; 80 ca 40
     
    25332533    pop bp                                    ; 5d
    25342534    retn                                      ; c3
    2535 _ata_detect:                                 ; 0xf2235 LB 0x65c
     2535_ata_detect:                                 ; 0xf2235 LB 0x67a
    25362536    push bp                                   ; 55
    25372537    mov bp, sp                                ; 89 e5
     
    25422542    mov ax, strict word 00040h                ; b8 40 00
    25432543    call 01765h                               ; e8 1e f5
    2544     mov word [bp-020h], ax                    ; 89 46 e0
     2544    mov word [bp-024h], ax                    ; 89 46 dc
    25452545    mov di, 00122h                            ; bf 22 01
    25462546    mov es, ax                                ; 8e c0
    2547     mov word [bp-022h], di                    ; 89 7e de
    2548     mov word [bp-034h], ax                    ; 89 46 cc
     2547    mov word [bp-028h], di                    ; 89 7e d8
     2548    mov word [bp-01ah], ax                    ; 89 46 e6
    25492549    mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
    25502550    db  066h, 026h, 0c7h, 085h, 006h, 002h, 0f0h, 001h, 0f0h, 003h
     
    25562556    mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
    25572557    xor al, al                                ; 30 c0
    2558     mov byte [bp-006h], al                    ; 88 46 fa
     2558    mov byte [bp-008h], al                    ; 88 46 f8
     2559    mov byte [bp-012h], al                    ; 88 46 ee
    25592560    mov byte [bp-010h], al                    ; 88 46 f0
    2560     mov byte [bp-016h], al                    ; 88 46 ea
    2561     jmp near 02815h                           ; e9 86 05
     2561    jmp near 02835h                           ; e9 a6 05
    25622562    mov ax, 000a0h                            ; b8 a0 00
    25632563    lea dx, [si+006h]                         ; 8d 54 06
    25642564    out DX, AL                                ; ee
    2565     lea di, [si+002h]                         ; 8d 7c 02
     2565    lea bx, [si+002h]                         ; 8d 5c 02
     2566    mov AL, strict byte 055h                  ; b0 55
     2567    mov dx, bx                                ; 89 da
     2568    out DX, AL                                ; ee
     2569    lea di, [si+003h]                         ; 8d 7c 03
     2570    mov AL, strict byte 0aah                  ; b0 aa
     2571    mov dx, di                                ; 89 fa
     2572    out DX, AL                                ; ee
     2573    mov dx, bx                                ; 89 da
     2574    out DX, AL                                ; ee
    25662575    mov AL, strict byte 055h                  ; b0 55
    25672576    mov dx, di                                ; 89 fa
    25682577    out DX, AL                                ; ee
    2569     lea bx, [si+003h]                         ; 8d 5c 03
     2578    mov dx, bx                                ; 89 da
     2579    out DX, AL                                ; ee
    25702580    mov AL, strict byte 0aah                  ; b0 aa
     2581    mov dx, di                                ; 89 fa
     2582    out DX, AL                                ; ee
    25712583    mov dx, bx                                ; 89 da
    2572     out DX, AL                                ; ee
    2573     mov dx, di                                ; 89 fa
    2574     out DX, AL                                ; ee
    2575     mov AL, strict byte 055h                  ; b0 55
    2576     mov dx, bx                                ; 89 da
    2577     out DX, AL                                ; ee
    2578     mov dx, di                                ; 89 fa
    2579     out DX, AL                                ; ee
    2580     mov AL, strict byte 0aah                  ; b0 aa
    2581     mov dx, bx                                ; 89 da
    2582     out DX, AL                                ; ee
     2584    in AL, DX                                 ; ec
     2585    db  02ah, 0e4h
     2586    ; sub ah, ah                                ; 2a e4
     2587    mov bx, ax                                ; 89 c3
    25832588    mov dx, di                                ; 89 fa
    25842589    in AL, DX                                 ; ec
    25852590    db  02ah, 0e4h
    25862591    ; sub ah, ah                                ; 2a e4
    2587     mov cx, ax                                ; 89 c1
    2588     mov dx, bx                                ; 89 da
    2589     in AL, DX                                 ; ec
    2590     db  02ah, 0e4h
    2591     ; sub ah, ah                                ; 2a e4
    2592     cmp cl, 055h                              ; 80 f9 55
    2593     jne near 02393h                           ; 0f 85 ca 00
     2592    cmp bl, 055h                              ; 80 fb 55
     2593    jne near 02391h                           ; 0f 85 c8 00
    25942594    cmp AL, strict byte 0aah                  ; 3c aa
    2595     jne near 02393h                           ; 0f 85 c4 00
    2596     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    2597     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2598     mov es, [bp-034h]                         ; 8e 46 cc
    2599     mov bx, word [bp-022h]                    ; 8b 5e de
    2600     add bx, ax                                ; 01 c3
     2595    jne near 02391h                           ; 0f 85 c2 00
     2596    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
     2597    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     2598    mov es, [bp-01ah]                         ; 8e 46 e6
     2599    add bx, word [bp-028h]                    ; 03 5e d8
    26012600    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
    2602     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    2603     call 01e75h                               ; e8 8b fb
    2604     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2605     je short 022f5h                           ; 74 05
     2601    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     2602    call 01e75h                               ; e8 8d fb
     2603    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
     2604    je short 022f3h                           ; 74 05
    26062605    mov ax, 000b0h                            ; b8 b0 00
    2607     jmp short 022f8h                          ; eb 03
     2606    jmp short 022f6h                          ; eb 03
    26082607    mov ax, 000a0h                            ; b8 a0 00
    26092608    lea dx, [si+006h]                         ; 8d 54 06
     
    26192618    ; sub ah, ah                                ; 2a e4
    26202619    cmp bl, 001h                              ; 80 fb 01
    2621     jne near 02393h                           ; 0f 85 82 00
     2620    jne near 02391h                           ; 0f 85 82 00
    26222621    cmp al, bl                                ; 38 d8
    2623     jne near 02393h                           ; 0f 85 7c 00
     2622    jne near 02391h                           ; 0f 85 7c 00
    26242623    lea dx, [si+004h]                         ; 8d 54 04
    26252624    in AL, DX                                 ; ec
     
    26272626    ; sub ah, ah                                ; 2a e4
    26282627    mov bx, ax                                ; 89 c3
    2629     mov byte [bp-018h], al                    ; 88 46 e8
     2628    mov byte [bp-00ah], al                    ; 88 46 f6
    26302629    lea dx, [si+005h]                         ; 8d 54 05
    26312630    in AL, DX                                 ; ec
     
    26392638    ; sub ah, ah                                ; 2a e4
    26402639    cmp bl, 014h                              ; 80 fb 14
    2641     jne short 02352h                          ; 75 1b
     2640    jne short 02350h                          ; 75 1b
    26422641    cmp cl, 0ebh                              ; 80 f9 eb
    2643     jne short 02352h                          ; 75 16
    2644     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2642    jne short 02350h                          ; 75 16
     2643    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    26452644    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2646     mov es, [bp-034h]                         ; 8e 46 cc
    2647     mov bx, word [bp-022h]                    ; 8b 5e de
     2645    mov es, [bp-01ah]                         ; 8e 46 e6
     2646    mov bx, word [bp-028h]                    ; 8b 5e d8
    26482647    add bx, ax                                ; 01 c3
    26492648    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
    2650     jmp short 02393h                          ; eb 41
    2651     cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    2652     jne short 02374h                          ; 75 1c
     2649    jmp short 02391h                          ; eb 41
     2650    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     2651    jne short 02372h                          ; 75 1c
    26532652    test bh, bh                               ; 84 ff
    2654     jne short 02374h                          ; 75 18
     2653    jne short 02372h                          ; 75 18
    26552654    test al, al                               ; 84 c0
    2656     je short 02374h                           ; 74 14
    2657     movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
     2655    je short 02372h                           ; 74 14
     2656    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    26582657    imul bx, bx, strict byte 0001ch           ; 6b db 1c
    2659     mov es, [bp-034h]                         ; 8e 46 cc
    2660     add bx, word [bp-022h]                    ; 03 5e de
     2658    mov es, [bp-01ah]                         ; 8e 46 e6
     2659    add bx, word [bp-028h]                    ; 03 5e d8
    26612660    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
    2662     jmp short 02393h                          ; eb 1f
    2663     mov al, byte [bp-018h]                    ; 8a 46 e8
     2661    jmp short 02391h                          ; eb 1f
     2662    mov al, byte [bp-00ah]                    ; 8a 46 f6
    26642663    cmp AL, strict byte 0ffh                  ; 3c ff
    2665     jne short 02393h                          ; 75 18
     2664    jne short 02391h                          ; 75 18
    26662665    cmp bh, al                                ; 38 c7
    2667     jne short 02393h                          ; 75 14
    2668     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2666    jne short 02391h                          ; 75 14
     2667    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    26692668    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2670     mov es, [bp-034h]                         ; 8e 46 cc
    2671     mov bx, word [bp-022h]                    ; 8b 5e de
     2669    mov es, [bp-01ah]                         ; 8e 46 e6
     2670    mov bx, word [bp-028h]                    ; 8b 5e d8
    26722671    add bx, ax                                ; 01 c3
    26732672    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    2674     mov dx, word [bp-024h]                    ; 8b 56 dc
     2673    mov dx, word [bp-020h]                    ; 8b 56 e0
    26752674    add dx, strict byte 00006h                ; 83 c2 06
    26762675    mov AL, strict byte 008h                  ; b0 08
    26772676    out DX, AL                                ; ee
    2678     movzx si, byte [bp-016h]                  ; 0f b6 76 ea
    2679     imul si, si, strict byte 0001ch           ; 6b f6 1c
    2680     mov es, [bp-034h]                         ; 8e 46 cc
    2681     add si, word [bp-022h]                    ; 03 76 de
     2677    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     2678    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2679    mov es, [bp-01ah]                         ; 8e 46 e6
     2680    mov si, word [bp-028h]                    ; 8b 76 d8
     2681    add si, ax                                ; 01 c6
    26822682    mov al, byte [es:si+022h]                 ; 26 8a 44 22
    2683     mov byte [bp-00ah], al                    ; 88 46 f6
     2683    mov byte [bp-00ch], al                    ; 88 46 f4
    26842684    cmp AL, strict byte 002h                  ; 3c 02
    2685     jne near 025e2h                           ; 0f 85 2c 02
     2685    jne near 02601h                           ; 0f 85 4b 02
    26862686    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
    26872687    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
    26882688    lea dx, [bp-00264h]                       ; 8d 96 9c fd
    2689     mov bx, word [bp-022h]                    ; 8b 5e de
     2689    mov bx, word [bp-028h]                    ; 8b 5e d8
    26902690    mov word [es:bx+008h], dx                 ; 26 89 57 08
    26912691    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
    2692     mov al, byte [bp-016h]                    ; 8a 46 ea
     2692    mov al, byte [bp-010h]                    ; 8a 46 f0
    26932693    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    26942694    mov cx, strict word 00001h                ; b9 01 00
    26952695    mov bx, 000ech                            ; bb ec 00
    2696     mov ax, word [bp-022h]                    ; 8b 46 de
     2696    mov ax, word [bp-028h]                    ; 8b 46 d8
    26972697    mov dx, es                                ; 8c c2
    26982698    call 01f53h                               ; e8 6f fb
     
    27072707    ; setne al                                  ; 0f 95 c0
    27082708    xor ah, ah                                ; 30 e4
    2709     mov byte [bp-014h], al                    ; 88 46 ec
     2709    mov byte [bp-018h], al                    ; 88 46 e8
    27102710    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
    27112711    db  00fh, 095h, 0c0h
    27122712    ; setne al                                  ; 0f 95 c0
    27132713    xor ah, ah                                ; 30 e4
    2714     mov byte [bp-012h], al                    ; 88 46 ee
     2714    mov byte [bp-00eh], al                    ; 88 46 f2
    27152715    mov word [bp-02ah], 00200h                ; c7 46 d6 00 02
    27162716    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
    2717     mov word [bp-026h], ax                    ; 89 46 da
     2717    mov word [bp-01eh], ax                    ; 89 46 e2
    27182718    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
     2719    mov word [bp-034h], ax                    ; 89 46 cc
     2720    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
    27192721    mov word [bp-01ch], ax                    ; 89 46 e4
    2720     mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
    2721     mov word [bp-01ah], ax                    ; 89 46 e6
    2722     mov si, word [bp-001ech]                  ; 8b b6 14 fe
    2723     mov ax, word [bp-001eah]                  ; 8b 86 16 fe
    2724     mov word [bp-02ch], ax                    ; 89 46 d4
     2722    mov ax, word [bp-001ech]                  ; 8b 86 14 fe
     2723    mov word [bp-030h], ax                    ; 89 46 d0
     2724    mov si, word [bp-001eah]                  ; 8b b6 16 fe
    27252725    xor ax, ax                                ; 31 c0
    2726     mov word [bp-028h], ax                    ; 89 46 d8
    2727     mov word [bp-01eh], ax                    ; 89 46 e2
    2728     cmp word [bp-02ch], 00fffh                ; 81 7e d4 ff 0f
    2729     jne short 0245fh                          ; 75 1e
    2730     cmp si, strict byte 0ffffh                ; 83 fe ff
     2726    mov word [bp-032h], ax                    ; 89 46 ce
     2727    mov word [bp-022h], ax                    ; 89 46 de
     2728    cmp si, 00fffh                            ; 81 fe ff 0f
     2729    jne short 0245fh                          ; 75 1f
     2730    cmp word [bp-030h], strict byte 0ffffh    ; 83 7e d0 ff
    27312731    jne short 0245fh                          ; 75 19
    27322732    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
    2733     mov word [bp-01eh], ax                    ; 89 46 e2
     2733    mov word [bp-022h], ax                    ; 89 46 de
    27342734    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
    2735     mov word [bp-028h], ax                    ; 89 46 d8
    2736     mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
    2737     mov word [bp-02ch], ax                    ; 89 46 d4
    2738     mov si, word [bp-0019ch]                  ; 8b b6 64 fe
    2739     mov al, byte [bp-016h]                    ; 8a 46 ea
     2735    mov word [bp-032h], ax                    ; 89 46 ce
     2736    mov si, word [bp-0019ah]                  ; 8b b6 66 fe
     2737    mov ax, word [bp-0019ch]                  ; 8b 86 64 fe
     2738    mov word [bp-030h], ax                    ; 89 46 d0
     2739    mov al, byte [bp-010h]                    ; 8a 46 f0
    27402740    cmp AL, strict byte 001h                  ; 3c 01
    27412741    jc short 02472h                           ; 72 0c
     
    27812781    mov word [bp-036h], ax                    ; 89 46 ca
    27822782    jmp short 024d1h                          ; eb 12
    2783     push word [bp-01eh]                       ; ff 76 e2
    2784     push word [bp-028h]                       ; ff 76 d8
    2785     push word [bp-02ch]                       ; ff 76 d4
     2783    push word [bp-022h]                       ; ff 76 de
     2784    push word [bp-032h]                       ; ff 76 ce
    27862785    push si                                   ; 56
     2786    push word [bp-030h]                       ; ff 76 d0
    27872787    mov dx, ss                                ; 8c d2
    27882788    lea ax, [bp-03ah]                         ; 8d 46 c6
    2789     call 05ad0h                               ; e8 ff 35
    2790     mov bx, 00db6h                            ; bb b6 0d
     2789    call 05aeeh                               ; e8 1d 36
     2790    mov bx, 00db2h                            ; bb b2 0d
    27912791    mov cx, ds                                ; 8c d9
    27922792    mov ax, strict word 00004h                ; b8 04 00
     
    27982798    mov ax, word [bp-038h]                    ; 8b 46 c8
    27992799    push ax                                   ; 50
    2800     push dword [bp-01ch]                      ; 66 ff 76 e4
    2801     push word [bp-026h]                       ; ff 76 da
    2802     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     2800    push word [bp-01ch]                       ; ff 76 e4
     2801    push word [bp-034h]                       ; ff 76 cc
     2802    push word [bp-01eh]                       ; ff 76 e2
     2803    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    28032804    push ax                                   ; 50
    2804     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     2805    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    28052806    push ax                                   ; 50
    28062807    push 0015fh                               ; 68 5f 01
    28072808    push strict byte 00004h                   ; 6a 04
    2808     call 01a6bh                               ; e8 6a f5
     2809    call 01a6bh                               ; e8 68 f5
    28092810    add sp, strict byte 00014h                ; 83 c4 14
    2810     movzx di, byte [bp-016h]                  ; 0f b6 7e ea
    2811     imul di, di, strict byte 0001ch           ; 6b ff 1c
    2812     mov es, [bp-034h]                         ; 8e 46 cc
    2813     add di, word [bp-022h]                    ; 03 7e de
     2811    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     2812    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2813    mov es, [bp-01ah]                         ; 8e 46 e6
     2814    mov di, word [bp-028h]                    ; 8b 7e d8
     2815    add di, ax                                ; 01 c7
    28142816    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
    2815     mov al, byte [bp-014h]                    ; 8a 46 ec
     2817    mov al, byte [bp-018h]                    ; 8a 46 e8
    28162818    mov byte [es:di+024h], al                 ; 26 88 45 24
    2817     mov al, byte [bp-012h]                    ; 8a 46 ee
     2819    mov al, byte [bp-00eh]                    ; 8a 46 f2
    28182820    mov byte [es:di+026h], al                 ; 26 88 45 26
    28192821    mov ax, word [bp-02ah]                    ; 8b 46 d6
    28202822    mov word [es:di+028h], ax                 ; 26 89 45 28
     2823    mov ax, word [bp-034h]                    ; 8b 46 cc
     2824    mov word [es:di+030h], ax                 ; 26 89 45 30
     2825    mov ax, word [bp-01eh]                    ; 8b 46 e2
     2826    mov word [es:di+032h], ax                 ; 26 89 45 32
    28212827    mov ax, word [bp-01ch]                    ; 8b 46 e4
    2822     mov word [es:di+030h], ax                 ; 26 89 45 30
    2823     mov ax, word [bp-026h]                    ; 8b 46 da
    2824     mov word [es:di+032h], ax                 ; 26 89 45 32
    2825     mov ax, word [bp-01ah]                    ; 8b 46 e6
    28262828    mov word [es:di+034h], ax                 ; 26 89 45 34
    2827     mov ax, word [bp-01eh]                    ; 8b 46 e2
     2829    mov ax, word [bp-022h]                    ; 8b 46 de
    28282830    mov word [es:di+03ch], ax                 ; 26 89 45 3c
    2829     mov ax, word [bp-028h]                    ; 8b 46 d8
     2831    mov ax, word [bp-032h]                    ; 8b 46 ce
    28302832    mov word [es:di+03ah], ax                 ; 26 89 45 3a
    2831     mov ax, word [bp-02ch]                    ; 8b 46 d4
    2832     mov word [es:di+038h], ax                 ; 26 89 45 38
    2833     mov word [es:di+036h], si                 ; 26 89 75 36
     2833    mov word [es:di+038h], si                 ; 26 89 75 38
     2834    mov ax, word [bp-030h]                    ; 8b 46 d0
     2835    mov word [es:di+036h], ax                 ; 26 89 45 36
    28342836    lea di, [di+02ah]                         ; 8d 7d 2a
    28352837    push DS                                   ; 1e
     
    28412843    movsw                                     ; a5
    28422844    pop DS                                    ; 1f
    2843     mov al, byte [bp-016h]                    ; 8a 46 ea
     2845    mov al, byte [bp-010h]                    ; 8a 46 f0
    28442846    cmp AL, strict byte 002h                  ; 3c 02
    2845     jnc short 025cdh                          ; 73 60
     2847    jnc near 025ech                           ; 0f 83 79 00
    28462848    test al, al                               ; 84 c0
    2847     jne short 02576h                          ; 75 05
     2849    jne short 0257ch                          ; 75 05
    28482850    mov di, strict word 0003dh                ; bf 3d 00
    2849     jmp short 02579h                          ; eb 03
     2851    jmp short 0257fh                          ; eb 03
    28502852    mov di, strict word 0004dh                ; bf 4d 00
    2851     mov dx, word [bp-020h]                    ; 8b 56 e0
     2853    mov dx, word [bp-024h]                    ; 8b 56 dc
     2854    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
     2855    imul bx, bx, strict byte 00005h           ; 6b db 05
     2856    sal bx, 002h                              ; c1 e3 02
     2857    add bx, 00104h                            ; 81 c3 04 01
     2858    xor ax, ax                                ; 31 c0
     2859    mov es, ax                                ; 8e c0
     2860    mov word [es:bx], di                      ; 26 89 3f
     2861    mov word [es:bx+002h], dx                 ; 26 89 57 02
    28522862    mov ax, word [bp-038h]                    ; 8b 46 c8
    28532863    mov es, dx                                ; 8e c2
     
    28562866    mov byte [es:di+002h], al                 ; 26 88 45 02
    28572867    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
    2858     mov al, byte [bp-01ah]                    ; 8a 46 e6
     2868    mov al, byte [bp-01ch]                    ; 8a 46 e4
    28592869    mov byte [es:di+004h], al                 ; 26 88 45 04
    2860     mov ax, word [bp-026h]                    ; 8b 46 da
     2870    mov ax, word [bp-01eh]                    ; 8b 46 e2
    28612871    mov word [es:di+009h], ax                 ; 26 89 45 09
    2862     mov al, byte [bp-01ch]                    ; 8a 46 e4
     2872    mov al, byte [bp-034h]                    ; 8a 46 cc
    28632873    mov byte [es:di+00bh], al                 ; 26 88 45 0b
    2864     mov al, byte [bp-01ah]                    ; 8a 46 e6
     2874    mov al, byte [bp-036h]                    ; 8a 46 ca
    28652875    mov byte [es:di+00eh], al                 ; 26 88 45 0e
    28662876    xor al, al                                ; 30 c0
    28672877    xor ah, ah                                ; 30 e4
    2868     jmp short 025b7h                          ; eb 05
     2878    jmp short 025d6h                          ; eb 05
    28692879    cmp ah, 00fh                              ; 80 fc 0f
    2870     jnc short 025c5h                          ; 73 0e
     2880    jnc short 025e4h                          ; 73 0e
    28712881    movzx bx, ah                              ; 0f b6 dc
    28722882    mov es, dx                                ; 8e c2
     
    28752885    db  0feh, 0c4h
    28762886    ; inc ah                                    ; fe c4
    2877     jmp short 025b2h                          ; eb ed
     2887    jmp short 025d1h                          ; eb ed
    28782888    neg al                                    ; f6 d8
    28792889    mov es, dx                                ; 8e c2
    28802890    mov byte [es:di+00fh], al                 ; 26 88 45 0f
    2881     movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    2882     mov es, [bp-034h]                         ; 8e 46 cc
    2883     add bx, word [bp-022h]                    ; 03 5e de
    2884     mov al, byte [bp-016h]                    ; 8a 46 ea
     2891    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
     2892    mov es, [bp-01ah]                         ; 8e 46 e6
     2893    add bx, word [bp-028h]                    ; 03 5e d8
     2894    mov al, byte [bp-010h]                    ; 8a 46 f0
    28852895    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
    2886     inc byte [bp-010h]                        ; fe 46 f0
    2887     cmp byte [bp-00ah], 003h                  ; 80 7e f6 03
    2888     jne near 02685h                           ; 0f 85 9b 00
    2889     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2896    inc byte [bp-012h]                        ; fe 46 ee
     2897    cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
     2898    jne near 026a7h                           ; 0f 85 9e 00
     2899    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
    28902900    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2891     mov es, [bp-034h]                         ; 8e 46 cc
    2892     mov bx, word [bp-022h]                    ; 8b 5e de
     2901    mov es, [bp-01ah]                         ; 8e 46 e6
     2902    mov bx, word [bp-028h]                    ; 8b 5e d8
    28932903    add bx, ax                                ; 01 c3
    28942904    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
    28952905    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    28962906    lea dx, [bp-00264h]                       ; 8d 96 9c fd
    2897     mov bx, word [bp-022h]                    ; 8b 5e de
     2907    mov bx, word [bp-028h]                    ; 8b 5e d8
    28982908    mov word [es:bx+008h], dx                 ; 26 89 57 08
    28992909    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
    2900     mov al, byte [bp-016h]                    ; 8a 46 ea
     2910    mov al, byte [bp-010h]                    ; 8a 46 f0
    29012911    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    29022912    mov cx, strict word 00001h                ; b9 01 00
    29032913    mov bx, 000a1h                            ; bb a1 00
    2904     mov ax, word [bp-022h]                    ; 8b 46 de
     2914    mov ax, word [bp-028h]                    ; 8b 46 d8
    29052915    mov dx, es                                ; 8c c2
    2906     call 01f53h                               ; e8 2c f9
     2916    call 01f53h                               ; e8 0d f9
    29072917    test ax, ax                               ; 85 c0
    2908     je short 02636h                           ; 74 0b
     2918    je short 02655h                           ; 74 0b
    29092919    push 00186h                               ; 68 86 01
    29102920    push strict byte 00007h                   ; 6a 07
    2911     call 01a6bh                               ; e8 38 f4
     2921    call 01a6bh                               ; e8 19 f4
    29122922    add sp, strict byte 00004h                ; 83 c4 04
    29132923    mov dl, byte [bp-00263h]                  ; 8a 96 9d fd
     
    29162926    db  00fh, 095h, 0c0h
    29172927    ; setne al                                  ; 0f 95 c0
    2918     movzx bx, al                              ; 0f b6 d8
     2928    xor ah, ah                                ; 30 e4
     2929    mov cx, ax                                ; 89 c1
    29192930    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
    29202931    db  00fh, 095h, 0c0h
    29212932    ; setne al                                  ; 0f 95 c0
    29222933    xor ah, ah                                ; 30 e4
    2923     movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
    2924     imul cx, cx, strict byte 0001ch           ; 6b c9 1c
    2925     mov es, [bp-034h]                         ; 8e 46 cc
    2926     mov si, word [bp-022h]                    ; 8b 76 de
    2927     add si, cx                                ; 01 ce
     2934    mov bx, ax                                ; 89 c3
     2935    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     2936    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2937    mov es, [bp-01ah]                         ; 8e 46 e6
     2938    mov si, word [bp-028h]                    ; 8b 76 d8
     2939    add si, ax                                ; 01 c6
    29282940    mov byte [es:si+023h], dl                 ; 26 88 54 23
    2929     mov byte [es:si+024h], bl                 ; 26 88 5c 24
    2930     mov byte [es:si+026h], al                 ; 26 88 44 26
     2941    mov byte [es:si+024h], cl                 ; 26 88 4c 24
     2942    mov byte [es:si+026h], bl                 ; 26 88 5c 26
    29312943    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
    2932     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    2933     add bx, word [bp-022h]                    ; 03 5e de
    2934     mov al, byte [bp-016h]                    ; 8a 46 ea
     2944    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     2945    add bx, word [bp-028h]                    ; 03 5e d8
     2946    mov al, byte [bp-010h]                    ; 8a 46 f0
    29352947    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
    2936     inc byte [bp-006h]                        ; fe 46 fa
    2937     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2948    inc byte [bp-008h]                        ; fe 46 f8
     2949    mov al, byte [bp-00ch]                    ; 8a 46 f4
    29382950    cmp AL, strict byte 003h                  ; 3c 03
    2939     je short 026bdh                           ; 74 31
     2951    je short 026ddh                           ; 74 2f
    29402952    cmp AL, strict byte 002h                  ; 3c 02
    2941     jne near 02720h                           ; 0f 85 8e 00
    2942     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    2943     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2944     mov es, [bp-034h]                         ; 8e 46 cc
    2945     mov si, word [bp-022h]                    ; 8b 76 de
    2946     add si, ax                                ; 01 c6
    2947     mov ax, word [es:si+03ch]                 ; 26 8b 44 3c
    2948     mov bx, word [es:si+03ah]                 ; 26 8b 5c 3a
    2949     mov cx, word [es:si+038h]                 ; 26 8b 4c 38
    2950     mov dx, word [es:si+036h]                 ; 26 8b 54 36
     2953    jne near 02740h                           ; 0f 85 8c 00
     2954    movzx di, byte [bp-010h]                  ; 0f b6 7e f0
     2955    imul di, di, strict byte 0001ch           ; 6b ff 1c
     2956    mov es, [bp-01ah]                         ; 8e 46 e6
     2957    add di, word [bp-028h]                    ; 03 7e d8
     2958    mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
     2959    mov bx, word [es:di+03ah]                 ; 26 8b 5d 3a
     2960    mov cx, word [es:di+038h]                 ; 26 8b 4d 38
     2961    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    29512962    mov si, strict word 0000bh                ; be 0b 00
    2952     call 0a0f0h                               ; e8 39 7a
    2953     mov word [bp-030h], dx                    ; 89 56 d0
    2954     mov word [bp-02eh], cx                    ; 89 4e d2
     2963    call 0a110h                               ; e8 39 7a
     2964    mov word [bp-02ch], dx                    ; 89 56 d4
     2965    mov word [bp-026h], cx                    ; 89 4e da
    29552966    movzx ax, byte [bp-001c3h]                ; 0f b6 86 3d fe
    29562967    sal ax, 008h                              ; c1 e0 08
    29572968    movzx dx, byte [bp-001c4h]                ; 0f b6 96 3c fe
    29582969    or dx, ax                                 ; 09 c2
    2959     mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
    2960     jmp short 026dbh                          ; eb 09
    2961     dec byte [bp-00ch]                        ; fe 4e f4
    2962     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2963     jbe short 026e8h                          ; 76 0d
    2964     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
     2970    mov byte [bp-014h], 00fh                  ; c6 46 ec 0f
     2971    jmp short 026fbh                          ; eb 09
     2972    dec byte [bp-014h]                        ; fe 4e ec
     2973    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
     2974    jbe short 02708h                          ; 76 0d
     2975    movzx cx, byte [bp-014h]                  ; 0f b6 4e ec
    29652976    mov ax, strict word 00001h                ; b8 01 00
    29662977    sal ax, CL                                ; d3 e0
    29672978    test dx, ax                               ; 85 c2
    2968     je short 026d2h                           ; 74 ea
     2979    je short 026f2h                           ; 74 ea
    29692980    xor di, di                                ; 31 ff
    2970     jmp short 026f1h                          ; eb 05
     2981    jmp short 02711h                          ; eb 05
    29712982    cmp di, strict byte 00014h                ; 83 ff 14
    2972     jnl short 02706h                          ; 7d 15
     2983    jnl short 02726h                          ; 7d 15
    29732984    mov si, di                                ; 89 fe
    29742985    add si, di                                ; 01 fe
     
    29782989    mov byte [bp+si-063h], al                 ; 88 42 9d
    29792990    inc di                                    ; 47
    2980     jmp short 026ech                          ; eb e6
     2991    jmp short 0270ch                          ; eb e6
    29812992    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
    29822993    mov di, strict word 00027h                ; bf 27 00
    2983     jmp short 02714h                          ; eb 05
     2994    jmp short 02734h                          ; eb 05
    29842995    dec di                                    ; 4f
    29852996    test di, di                               ; 85 ff
    2986     jle short 02720h                          ; 7e 0c
     2997    jle short 02740h                          ; 7e 0c
    29872998    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
    2988     jne short 02720h                          ; 75 06
     2999    jne short 02740h                          ; 75 06
    29893000    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
    2990     jmp short 0270fh                          ; eb ef
    2991     mov al, byte [bp-00ah]                    ; 8a 46 f6
     3001    jmp short 0272fh                          ; eb ef
     3002    mov al, byte [bp-00ch]                    ; 8a 46 f4
    29923003    cmp AL, strict byte 003h                  ; 3c 03
    2993     je short 02783h                           ; 74 5c
     3004    je short 027a5h                           ; 74 5e
    29943005    cmp AL, strict byte 002h                  ; 3c 02
    2995     je short 02734h                           ; 74 09
     3006    je short 02754h                           ; 74 09
    29963007    cmp AL, strict byte 001h                  ; 3c 01
    2997     je near 027edh                            ; 0f 84 bc 00
    2998     jmp near 0280ch                           ; e9 d8 00
    2999     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3000     je short 0273fh                           ; 74 05
     3008    je near 0280dh                            ; 0f 84 bc 00
     3009    jmp near 0282ch                           ; e9 d8 00
     3010    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
     3011    je short 0275fh                           ; 74 05
    30013012    mov ax, 001b1h                            ; b8 b1 01
    3002     jmp short 02742h                          ; eb 03
     3013    jmp short 02762h                          ; eb 03
    30033014    mov ax, 001b8h                            ; b8 b8 01
    30043015    push ax                                   ; 50
    3005     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3016    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    30063017    push ax                                   ; 50
    30073018    push 001bfh                               ; 68 bf 01
    30083019    push strict byte 00002h                   ; 6a 02
    3009     call 01a6bh                               ; e8 1b f3
     3020    call 01a6bh                               ; e8 fb f2
    30103021    add sp, strict byte 00008h                ; 83 c4 08
    30113022    xor di, di                                ; 31 ff
     
    30133024    inc di                                    ; 47
    30143025    test ax, ax                               ; 85 c0
    3015     je short 0276ch                           ; 74 0e
     3026    je short 0278ch                           ; 74 0e
    30163027    push ax                                   ; 50
    30173028    push 001cah                               ; 68 ca 01
    30183029    push strict byte 00002h                   ; 6a 02
    3019     call 01a6bh                               ; e8 04 f3
     3030    call 01a6bh                               ; e8 e4 f2
    30203031    add sp, strict byte 00006h                ; 83 c4 06
    3021     jmp short 02755h                          ; eb e9
    3022     push dword [bp-030h]                      ; 66 ff 76 d0
    3023     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3032    jmp short 02775h                          ; eb e9
     3033    push word [bp-026h]                       ; ff 76 da
     3034    push word [bp-02ch]                       ; ff 76 d4
     3035    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    30243036    push ax                                   ; 50
    30253037    push 001cdh                               ; 68 cd 01
    30263038    push strict byte 00002h                   ; 6a 02
    3027     call 01a6bh                               ; e8 ee f2
     3039    call 01a6bh                               ; e8 cc f2
    30283040    add sp, strict byte 0000ah                ; 83 c4 0a
    3029     jmp near 0280ch                           ; e9 89 00
    3030     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3031     je short 0278eh                           ; 74 05
     3041    jmp near 0282ch                           ; e9 87 00
     3042    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
     3043    je short 027b0h                           ; 74 05
    30323044    mov ax, 001b1h                            ; b8 b1 01
    3033     jmp short 02791h                          ; eb 03
     3045    jmp short 027b3h                          ; eb 03
    30343046    mov ax, 001b8h                            ; b8 b8 01
    30353047    push ax                                   ; 50
    3036     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3048    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    30373049    push ax                                   ; 50
    30383050    push 001bfh                               ; 68 bf 01
    30393051    push strict byte 00002h                   ; 6a 02
    3040     call 01a6bh                               ; e8 cc f2
     3052    call 01a6bh                               ; e8 aa f2
    30413053    add sp, strict byte 00008h                ; 83 c4 08
    30423054    xor di, di                                ; 31 ff
     
    30443056    inc di                                    ; 47
    30453057    test ax, ax                               ; 85 c0
    3046     je short 027bbh                           ; 74 0e
     3058    je short 027ddh                           ; 74 0e
    30473059    push ax                                   ; 50
    30483060    push 001cah                               ; 68 ca 01
    30493061    push strict byte 00002h                   ; 6a 02
    3050     call 01a6bh                               ; e8 b5 f2
     3062    call 01a6bh                               ; e8 93 f2
    30513063    add sp, strict byte 00006h                ; 83 c4 06
    3052     jmp short 027a4h                          ; eb e9
    3053     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
    3054     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    3055     mov es, [bp-034h]                         ; 8e 46 cc
    3056     mov bx, word [bp-022h]                    ; 8b 5e de
    3057     add bx, ax                                ; 01 c3
     3064    jmp short 027c6h                          ; eb e9
     3065    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
     3066    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     3067    mov es, [bp-01ah]                         ; 8e 46 e6
     3068    add bx, word [bp-028h]                    ; 03 5e d8
    30583069    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    3059     jne short 027dbh                          ; 75 0a
    3060     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3070    jne short 027fbh                          ; 75 0a
     3071    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    30613072    push ax                                   ; 50
    30623073    push 001edh                               ; 68 ed 01
    3063     jmp short 027e3h                          ; eb 08
    3064     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3074    jmp short 02803h                          ; eb 08
     3075    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    30653076    push ax                                   ; 50
    30663077    push 00207h                               ; 68 07 02
    30673078    push strict byte 00002h                   ; 6a 02
    3068     call 01a6bh                               ; e8 83 f2
     3079    call 01a6bh                               ; e8 63 f2
    30693080    add sp, strict byte 00006h                ; 83 c4 06
    3070     jmp short 0280ch                          ; eb 1f
    3071     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    3072     je short 027f8h                           ; 74 05
     3081    jmp short 0282ch                          ; eb 1f
     3082    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
     3083    je short 02818h                           ; 74 05
    30733084    mov ax, 001b1h                            ; b8 b1 01
    3074     jmp short 027fbh                          ; eb 03
     3085    jmp short 0281bh                          ; eb 03
    30753086    mov ax, 001b8h                            ; b8 b8 01
    30763087    push ax                                   ; 50
    3077     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     3088    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    30783089    push ax                                   ; 50
    30793090    push 00219h                               ; 68 19 02
    30803091    push strict byte 00002h                   ; 6a 02
    3081     call 01a6bh                               ; e8 62 f2
     3092    call 01a6bh                               ; e8 42 f2
    30823093    add sp, strict byte 00008h                ; 83 c4 08
    3083     inc byte [bp-016h]                        ; fe 46 ea
    3084     cmp byte [bp-016h], 008h                  ; 80 7e ea 08
    3085     jnc short 02867h                          ; 73 52
    3086     movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
     3094    inc byte [bp-010h]                        ; fe 46 f0
     3095    cmp byte [bp-010h], 008h                  ; 80 7e f0 08
     3096    jnc short 02885h                          ; 73 50
     3097    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    30873098    mov ax, bx                                ; 89 d8
    30883099    cwd                                       ; 99
     
    30913102    sar ax, 1                                 ; d1 f8
    30923103    mov cx, ax                                ; 89 c1
    3093     mov byte [bp-008h], al                    ; 88 46 f8
     3104    mov byte [bp-006h], al                    ; 88 46 fa
    30943105    mov ax, bx                                ; 89 d8
    30953106    cwd                                       ; 99
    30963107    mov bx, strict word 00002h                ; bb 02 00
    30973108    idiv bx                                   ; f7 fb
    3098     mov word [bp-032h], dx                    ; 89 56 ce
    3099     mov al, byte [bp-032h]                    ; 8a 46 ce
    3100     mov byte [bp-00eh], al                    ; 88 46 f2
    3101     movzx ax, cl                              ; 0f b6 c1
    3102     imul ax, ax, strict byte 00006h           ; 6b c0 06
    3103     mov es, [bp-034h]                         ; 8e 46 cc
    3104     mov bx, word [bp-022h]                    ; 8b 5e de
    3105     add bx, ax                                ; 01 c3
     3109    mov word [bp-02eh], dx                    ; 89 56 d2
     3110    mov al, byte [bp-02eh]                    ; 8a 46 d2
     3111    mov byte [bp-016h], al                    ; 88 46 ea
     3112    movzx bx, cl                              ; 0f b6 d9
     3113    imul bx, bx, strict byte 00006h           ; 6b db 06
     3114    mov es, [bp-01ah]                         ; 8e 46 e6
     3115    add bx, word [bp-028h]                    ; 03 5e d8
    31063116    mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
    31073117    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
    3108     mov word [bp-024h], ax                    ; 89 46 dc
     3118    mov word [bp-020h], ax                    ; 89 46 e0
    31093119    mov dx, ax                                ; 89 c2
    31103120    add dx, strict byte 00006h                ; 83 c2 06
    31113121    mov AL, strict byte 00ah                  ; b0 0a
    31123122    out DX, AL                                ; ee
    3113     cmp byte [bp-032h], 000h                  ; 80 7e ce 00
    3114     je near 0228fh                            ; 0f 84 2e fa
     3123    cmp byte [bp-02eh], 000h                  ; 80 7e d2 00
     3124    je near 0228fh                            ; 0f 84 10 fa
    31153125    mov ax, 000b0h                            ; b8 b0 00
    3116     jmp near 02292h                           ; e9 2b fa
    3117     mov al, byte [bp-010h]                    ; 8a 46 f0
    3118     mov es, [bp-034h]                         ; 8e 46 cc
    3119     mov bx, word [bp-022h]                    ; 8b 5e de
     3126    jmp near 02292h                           ; e9 0d fa
     3127    mov al, byte [bp-012h]                    ; 8a 46 ee
     3128    mov es, [bp-01ah]                         ; 8e 46 e6
     3129    mov bx, word [bp-028h]                    ; 8b 5e d8
    31203130    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
    3121     mov al, byte [bp-006h]                    ; 8a 46 fa
     3131    mov al, byte [bp-008h]                    ; 8a 46 f8
    31223132    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
    3123     movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
     3133    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
    31243134    mov dx, strict word 00075h                ; ba 75 00
    31253135    mov ax, strict word 00040h                ; b8 40 00
    3126     call 01757h                               ; e8 cd ee
     3136    call 01757h                               ; e8 af ee
    31273137    lea sp, [bp-004h]                         ; 8d 66 fc
    31283138    pop di                                    ; 5f
     
    31303140    pop bp                                    ; 5d
    31313141    retn                                      ; c3
    3132 ata_cmd_data_out_:                           ; 0xf2891 LB 0x2bc
     3142ata_cmd_data_out_:                           ; 0xf28af LB 0x2bc
    31333143    push bp                                   ; 55
    31343144    mov bp, sp                                ; 89 e5
     
    31613171    mov byte [bp-008h], al                    ; 88 46 f8
    31623172    cmp AL, strict byte 001h                  ; 3c 01
    3163     jne short 028e9h                          ; 75 07
     3173    jne short 02907h                          ; 75 07
    31643174    mov word [bp-020h], 00080h                ; c7 46 e0 80 00
    3165     jmp short 028eeh                          ; eb 05
     3175    jmp short 0290ch                          ; eb 05
    31663176    mov word [bp-020h], 00100h                ; c7 46 e0 00 01
    31673177    mov dx, word [bp-00ah]                    ; 8b 56 f6
     
    31713181    ; sub ah, ah                                ; 2a e4
    31723182    test AL, strict byte 080h                 ; a8 80
    3173     je short 0290ah                           ; 74 0f
     3183    je short 02928h                           ; 74 0f
    31743184    mov dx, word [bp-012h]                    ; 8b 56 ee
    31753185    add dx, strict byte 00006h                ; 83 c2 06
     
    31773187    out DX, AL                                ; ee
    31783188    mov dx, strict word 00001h                ; ba 01 00
    3179     jmp near 02b44h                           ; e9 3a 02
     3189    jmp near 02b62h                           ; e9 3a 02
    31803190    mov es, [bp-00ch]                         ; 8e 46 f4
    31813191    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     
    31993209    mov ax, word [bp-01ch]                    ; 8b 46 e4
    32003210    test ax, ax                               ; 85 c0
    3201     jne near 02a1bh                           ; 0f 85 c7 00
     3211    jne near 02a39h                           ; 0f 85 c7 00
    32023212    xor dx, dx                                ; 31 d2
    32033213    xor bx, bx                                ; 31 db
     
    32083218    adc ax, word [bp-010h]                    ; 13 46 f0
    32093219    test ax, ax                               ; 85 c0
    3210     jnbe short 0297bh                         ; 77 10
    3211     jne short 029deh                          ; 75 71
     3220    jnbe short 02999h                         ; 77 10
     3221    jne short 029fch                          ; 75 71
    32123222    test bx, bx                               ; 85 db
    3213     jnbe short 0297bh                         ; 77 0a
    3214     jne short 029deh                          ; 75 6b
     3223    jnbe short 02999h                         ; 77 0a
     3224    jne short 029fch                          ; 75 6b
    32153225    cmp dx, 01000h                            ; 81 fa 00 10
    3216     jnbe short 0297bh                         ; 77 02
    3217     jne short 029deh                          ; 75 63
     3226    jnbe short 02999h                         ; 77 02
     3227    jne short 029fch                          ; 75 63
    32183228    mov ax, word [bp-010h]                    ; 8b 46 f0
    32193229    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    32213231    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32223232    mov si, strict word 00018h                ; be 18 00
    3223     call 0a0f0h                               ; e8 63 77
     3233    call 0a110h                               ; e8 65 77
    32243234    xor dh, dh                                ; 30 f6
    32253235    mov word [bp-01ch], dx                    ; 89 56 e4
     
    32293239    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32303240    mov si, strict word 00020h                ; be 20 00
    3231     call 0a0f0h                               ; e8 4c 77
     3241    call 0a110h                               ; e8 4e 77
    32323242    mov bx, dx                                ; 89 d3
    32333243    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    32633273    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32643274    mov si, strict word 00008h                ; be 08 00
    3265     call 0a0f0h                               ; e8 f8 76
     3275    call 0a110h                               ; e8 fa 76
    32663276    mov word [bp-010h], ax                    ; 89 46 f0
    32673277    mov word [bp-014h], bx                    ; 89 5e ec
     
    32703280    mov word [bp-026h], dx                    ; 89 56 da
    32713281    mov si, strict word 00010h                ; be 10 00
    3272     call 0a0f0h                               ; e8 e3 76
     3282    call 0a110h                               ; e8 e5 76
    32733283    mov word [bp-01eh], dx                    ; 89 56 e2
    32743284    mov ax, dx                                ; 89 d0
     
    33033313    out DX, AL                                ; ee
    33043314    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3305     je short 02a5dh                           ; 74 05
     3315    je short 02a7bh                           ; 74 05
    33063316    mov ax, 000b0h                            ; b8 b0 00
    3307     jmp short 02a60h                          ; eb 03
     3317    jmp short 02a7eh                          ; eb 03
    33083318    mov ax, 000a0h                            ; b8 a0 00
    33093319    movzx dx, byte [bp-022h]                  ; 0f b6 56 de
     
    33233333    mov dl, al                                ; 88 c2
    33243334    test AL, strict byte 080h                 ; a8 80
    3325     jne short 02a77h                          ; 75 f1
     3335    jne short 02a95h                          ; 75 f1
    33263336    test AL, strict byte 001h                 ; a8 01
    3327     je short 02a99h                           ; 74 0f
     3337    je short 02ab7h                           ; 74 0f
    33283338    mov dx, word [bp-012h]                    ; 8b 56 ee
    33293339    add dx, strict byte 00006h                ; 83 c2 06
     
    33313341    out DX, AL                                ; ee
    33323342    mov dx, strict word 00002h                ; ba 02 00
    3333     jmp near 02b44h                           ; e9 ab 00
     3343    jmp near 02b62h                           ; e9 ab 00
    33343344    test dl, 008h                             ; f6 c2 08
    3335     jne short 02aadh                          ; 75 0f
     3345    jne short 02acbh                          ; 75 0f
    33363346    mov dx, word [bp-012h]                    ; 8b 56 ee
    33373347    add dx, strict byte 00006h                ; 83 c2 06
     
    33393349    out DX, AL                                ; ee
    33403350    mov dx, strict word 00003h                ; ba 03 00
    3341     jmp near 02b44h                           ; e9 97 00
     3351    jmp near 02b62h                           ; e9 97 00
    33423352    sti                                       ; fb
    33433353    mov ax, word [bp-00eh]                    ; 8b 46 f2
    33443354    cmp ax, 0f800h                            ; 3d 00 f8
    3345     jc short 02ac6h                           ; 72 10
     3355    jc short 02ae4h                           ; 72 10
    33463356    sub ax, 00800h                            ; 2d 00 08
    33473357    mov dx, word [bp-018h]                    ; 8b 56 e8
     
    33503360    mov word [bp-018h], dx                    ; 89 56 e8
    33513361    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    3352     jne short 02adeh                          ; 75 12
     3362    jne short 02afch                          ; 75 12
    33533363    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33543364    mov cx, word [bp-020h]                    ; 8b 4e e0
     
    33573367    db  0f3h, 066h, 026h, 06fh
    33583368    ; rep es outsd                              ; f3 66 26 6f
    3359     jmp short 02aedh                          ; eb 0f
     3369    jmp short 02b0bh                          ; eb 0f
    33603370    mov dx, word [bp-00ah]                    ; 8b 56 f6
    33613371    mov cx, word [bp-020h]                    ; 8b 4e e0
     
    33753385    mov dl, al                                ; 88 c2
    33763386    test AL, strict byte 080h                 ; a8 80
    3377     jne short 02afah                          ; 75 f1
     3387    jne short 02b18h                          ; 75 f1
    33783388    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
    3379     jne short 02b23h                          ; 75 14
     3389    jne short 02b41h                          ; 75 14
    33803390    and AL, strict byte 0e9h                  ; 24 e9
    33813391    cmp AL, strict byte 040h                  ; 3c 40
    3382     je short 02b39h                           ; 74 24
     3392    je short 02b57h                           ; 74 24
    33833393    mov dx, word [bp-012h]                    ; 8b 56 ee
    33843394    add dx, strict byte 00006h                ; 83 c2 06
     
    33863396    out DX, AL                                ; ee
    33873397    mov dx, strict word 00006h                ; ba 06 00
    3388     jmp short 02b44h                          ; eb 21
     3398    jmp short 02b62h                          ; eb 21
    33893399    mov al, dl                                ; 88 d0
    33903400    and AL, strict byte 0c9h                  ; 24 c9
    33913401    cmp AL, strict byte 048h                  ; 3c 48
    3392     je short 02aaeh                           ; 74 83
     3402    je short 02acch                           ; 74 83
    33933403    mov dx, word [bp-012h]                    ; 8b 56 ee
    33943404    add dx, strict byte 00006h                ; 83 c2 06
     
    33963406    out DX, AL                                ; ee
    33973407    mov dx, strict word 00007h                ; ba 07 00
    3398     jmp short 02b44h                          ; eb 0b
     3408    jmp short 02b62h                          ; eb 0b
    33993409    mov dx, word [bp-012h]                    ; 8b 56 ee
    34003410    add dx, strict byte 00006h                ; 83 c2 06
     
    34083418    pop bp                                    ; 5d
    34093419    retn                                      ; c3
    3410 @ata_read_sectors:                           ; 0xf2b4d LB 0xb5
     3420@ata_read_sectors:                           ; 0xf2b6b LB 0xb5
    34113421    push bp                                   ; 55
    34123422    mov bp, sp                                ; 89 e5
     
    34213431    sal dx, 009h                              ; c1 e2 09
    34223432    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3423     je short 02b8eh                           ; 74 1f
     3433    je short 02bach                           ; 74 1f
    34243434    xor ah, ah                                ; 30 e4
    34253435    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    34313441    mov ax, si                                ; 89 f0
    34323442    mov dx, es                                ; 8c c2
    3433     call 01f53h                               ; e8 ca f3
     3443    call 01f53h                               ; e8 ac f3
    34343444    mov es, [bp-00ah]                         ; 8e 46 f6
    3435     jmp short 02bf3h                          ; eb 65
     3445    jmp short 02c11h                          ; eb 65
    34363446    xor bx, bx                                ; 31 db
    34373447    mov word [bp-00ah], bx                    ; 89 5e f6
     
    34483458    adc di, word [bp-00ch]                    ; 13 7e f4
    34493459    test di, di                               ; 85 ff
    3450     jnbe short 02bcah                         ; 77 11
    3451     jne short 02bd6h                          ; 75 1b
     3460    jnbe short 02be8h                         ; 77 11
     3461    jne short 02bf4h                          ; 75 1b
    34523462    test bx, bx                               ; 85 db
    3453     jnbe short 02bcah                         ; 77 0b
    3454     jne short 02bd6h                          ; 75 15
     3463    jnbe short 02be8h                         ; 77 0b
     3464    jne short 02bf4h                          ; 75 15
    34553465    cmp word [bp-006h], 01000h                ; 81 7e fa 00 10
    3456     jnbe short 02bcah                         ; 77 02
    3457     jne short 02bd6h                          ; 75 0c
     3466    jnbe short 02be8h                         ; 77 02
     3467    jne short 02bf4h                          ; 75 0c
    34583468    mov bx, strict word 00024h                ; bb 24 00
    34593469    mov ax, si                                ; 89 f0
    34603470    mov dx, es                                ; 8c c2
    3461     call 01f53h                               ; e8 7f f3
    3462     jmp short 02bf9h                          ; eb 23
     3471    call 01f53h                               ; e8 61 f3
     3472    jmp short 02c17h                          ; eb 23
    34633473    xor ah, ah                                ; 30 e4
    34643474    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    34703480    mov ax, si                                ; 89 f0
    34713481    mov dx, es                                ; 8c c2
    3472     call 01f53h                               ; e8 63 f3
     3482    call 01f53h                               ; e8 45 f3
    34733483    mov es, [bp-006h]                         ; 8e 46 fa
    34743484    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
     
    34783488    pop bp                                    ; 5d
    34793489    retn 00004h                               ; c2 04 00
    3480 @ata_write_sectors:                          ; 0xf2c02 LB 0x5b
     3490@ata_write_sectors:                          ; 0xf2c20 LB 0x5b
    34813491    push bp                                   ; 55
    34823492    mov bp, sp                                ; 89 e5
     
    34873497    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
    34883498    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3489     je short 02c22h                           ; 74 0c
     3499    je short 02c40h                           ; 74 0c
    34903500    mov bx, strict word 00030h                ; bb 30 00
    34913501    mov ax, si                                ; 89 f0
    34923502    mov dx, es                                ; 8c c2
    3493     call 02891h                               ; e8 71 fc
    3494     jmp short 02c54h                          ; eb 32
     3503    call 028afh                               ; e8 71 fc
     3504    jmp short 02c72h                          ; eb 32
    34953505    xor ax, ax                                ; 31 c0
    34963506    xor bx, bx                                ; 31 db
     
    35033513    adc dx, word [es:si+006h]                 ; 26 13 54 06
    35043514    test dx, dx                               ; 85 d2
    3505     jnbe short 02c4fh                         ; 77 0f
    3506     jne short 02c16h                          ; 75 d4
     3515    jnbe short 02c6dh                         ; 77 0f
     3516    jne short 02c34h                          ; 75 d4
    35073517    test bx, bx                               ; 85 db
    3508     jnbe short 02c4fh                         ; 77 09
    3509     jne short 02c16h                          ; 75 ce
     3518    jnbe short 02c6dh                         ; 77 09
     3519    jne short 02c34h                          ; 75 ce
    35103520    cmp ax, 01000h                            ; 3d 00 10
    3511     jnbe short 02c4fh                         ; 77 02
    3512     jne short 02c16h                          ; 75 c7
     3521    jnbe short 02c6dh                         ; 77 02
     3522    jne short 02c34h                          ; 75 c7
    35133523    mov bx, strict word 00034h                ; bb 34 00
    3514     jmp short 02c19h                          ; eb c5
     3524    jmp short 02c37h                          ; eb c5
    35153525    lea sp, [bp-004h]                         ; 8d 66 fc
    35163526    pop di                                    ; 5f
     
    35183528    pop bp                                    ; 5d
    35193529    retn 00004h                               ; c2 04 00
    3520 ata_cmd_packet_:                             ; 0xf2c5d LB 0x2e8
     3530ata_cmd_packet_:                             ; 0xf2c7b LB 0x2e8
    35213531    push bp                                   ; 55
    35223532    mov bp, sp                                ; 89 e5
     
    35293539    mov dx, strict word 0000eh                ; ba 0e 00
    35303540    mov ax, strict word 00040h                ; b8 40 00
    3531     call 01765h                               ; e8 f1 ea
     3541    call 01765h                               ; e8 d3 ea
    35323542    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
    35333543    mov word [bp-00eh], ax                    ; 89 46 f2
     
    35383548    mov byte [bp-006h], ah                    ; 88 66 fa
    35393549    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3540     jne short 02cafh                          ; 75 1f
    3541     mov bx, 00db6h                            ; bb b6 0d
     3550    jne short 02ccdh                          ; 75 1f
     3551    mov bx, 00db2h                            ; bb b2 0d
    35423552    mov cx, ds                                ; 8c d9
    35433553    mov ax, strict word 00004h                ; b8 04 00
    3544     call 01a2ah                               ; e8 8f ed
     3554    call 01a2ah                               ; e8 71 ed
    35453555    push 00233h                               ; 68 33 02
    35463556    push 00242h                               ; 68 42 02
    35473557    push strict byte 00004h                   ; 6a 04
    3548     call 01a6bh                               ; e8 c5 ed
     3558    call 01a6bh                               ; e8 a7 ed
    35493559    add sp, strict byte 00006h                ; 83 c4 06
    35503560    mov dx, strict word 00001h                ; ba 01 00
    3551     jmp near 02f3ah                           ; e9 8b 02
     3561    jmp near 02f58h                           ; e9 8b 02
    35523562    test byte [bp+004h], 001h                 ; f6 46 04 01
    3553     jne short 02ca9h                          ; 75 f4
     3563    jne short 02cc7h                          ; 75 f4
    35543564    xor ah, ah                                ; 30 e4
    35553565    imul ax, ax, strict byte 00006h           ; 6b c0 06
     
    35693579    mov al, byte [bp-008h]                    ; 8a 46 f8
    35703580    cmp AL, strict byte 00ch                  ; 3c 0c
    3571     jnc short 02cf2h                          ; 73 06
     3581    jnc short 02d10h                          ; 73 06
    35723582    mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
    3573     jmp short 02cf8h                          ; eb 06
    3574     jbe short 02cf8h                          ; 76 04
     3583    jmp short 02d16h                          ; eb 06
     3584    jbe short 02d16h                          ; 76 04
    35753585    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    35763586    shr byte [bp-008h], 1                     ; d0 6e f8
     
    35853595    ; sub ah, ah                                ; 2a e4
    35863596    test AL, strict byte 080h                 ; a8 80
    3587     je short 02d20h                           ; 74 06
     3597    je short 02d3eh                           ; 74 06
    35883598    mov dx, strict word 00002h                ; ba 02 00
    3589     jmp near 02f3ah                           ; e9 1a 02
     3599    jmp near 02f58h                           ; e9 1a 02
    35903600    mov dx, word [bp-010h]                    ; 8b 56 f0
    35913601    add dx, strict byte 00006h                ; 83 c2 06
     
    35993609    out DX, AL                                ; ee
    36003610    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3601     je short 02d40h                           ; 74 05
     3611    je short 02d5eh                           ; 74 05
    36023612    mov ax, 000b0h                            ; b8 b0 00
    3603     jmp short 02d43h                          ; eb 03
     3613    jmp short 02d61h                          ; eb 03
    36043614    mov ax, 000a0h                            ; b8 a0 00
    36053615    lea dx, [bx+006h]                         ; 8d 57 06
     
    36143624    mov dl, al                                ; 88 c2
    36153625    test AL, strict byte 080h                 ; a8 80
    3616     jne short 02d4dh                          ; 75 f4
     3626    jne short 02d6bh                          ; 75 f4
    36173627    test AL, strict byte 001h                 ; a8 01
    3618     je short 02d6ch                           ; 74 0f
     3628    je short 02d8ah                           ; 74 0f
    36193629    mov dx, word [bp-010h]                    ; 8b 56 f0
    36203630    add dx, strict byte 00006h                ; 83 c2 06
     
    36223632    out DX, AL                                ; ee
    36233633    mov dx, strict word 00003h                ; ba 03 00
    3624     jmp near 02f3ah                           ; e9 ce 01
     3634    jmp near 02f58h                           ; e9 ce 01
    36253635    test dl, 008h                             ; f6 c2 08
    3626     jne short 02d80h                          ; 75 0f
     3636    jne short 02d9eh                          ; 75 0f
    36273637    mov dx, word [bp-010h]                    ; 8b 56 f0
    36283638    add dx, strict byte 00006h                ; 83 c2 06
     
    36303640    out DX, AL                                ; ee
    36313641    mov dx, strict word 00004h                ; ba 04 00
    3632     jmp near 02f3ah                           ; e9 ba 01
     3642    jmp near 02f58h                           ; e9 ba 01
    36333643    sti                                       ; fb
    36343644    mov ax, di                                ; 89 f8
     
    36433653    ; rep es outsw                              ; f3 26 6f
    36443654    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3645     jne short 02da9h                          ; 75 0b
     3655    jne short 02dc7h                          ; 75 0b
    36463656    lea dx, [bx+007h]                         ; 8d 57 07
    36473657    in AL, DX                                 ; ec
     
    36493659    ; sub ah, ah                                ; 2a e4
    36503660    mov dl, al                                ; 88 c2
    3651     jmp near 02f1bh                           ; e9 72 01
     3661    jmp near 02f39h                           ; e9 72 01
    36523662    lea dx, [bx+007h]                         ; 8d 57 07
    36533663    in AL, DX                                 ; ec
     
    36563666    mov dl, al                                ; 88 c2
    36573667    test AL, strict byte 080h                 ; a8 80
    3658     jne short 02da9h                          ; 75 f4
     3668    jne short 02dc7h                          ; 75 f4
    36593669    test AL, strict byte 088h                 ; a8 88
    3660     je near 02f1bh                            ; 0f 84 60 01
     3670    je near 02f39h                            ; 0f 84 60 01
    36613671    test AL, strict byte 001h                 ; a8 01
    3662     je short 02dcah                           ; 74 0b
     3672    je short 02de8h                           ; 74 0b
    36633673    mov dx, word [bp-010h]                    ; 8b 56 f0
    36643674    add dx, strict byte 00006h                ; 83 c2 06
    36653675    mov AL, strict byte 008h                  ; b0 08
    36663676    out DX, AL                                ; ee
    3667     jmp short 02d66h                          ; eb 9c
     3677    jmp short 02d84h                          ; eb 9c
    36683678    mov al, dl                                ; 88 d0
    36693679    and AL, strict byte 0c9h                  ; 24 c9
    36703680    cmp AL, strict byte 048h                  ; 3c 48
    3671     je short 02dddh                           ; 74 0b
     3681    je short 02dfbh                           ; 74 0b
    36723682    mov dx, word [bp-010h]                    ; 8b 56 f0
    36733683    add dx, strict byte 00006h                ; 83 c2 06
    36743684    mov AL, strict byte 008h                  ; b0 08
    36753685    out DX, AL                                ; ee
    3676     jmp short 02d7ah                          ; eb 9d
     3686    jmp short 02d98h                          ; eb 9d
    36773687    mov ax, word [bp+00ch]                    ; 8b 46 0c
    36783688    shr ax, 004h                              ; c1 e8 04
     
    36973707    mov ax, word [bp+004h]                    ; 8b 46 04
    36983708    cmp ax, cx                                ; 39 c8
    3699     jbe short 02e1dh                          ; 76 0c
     3709    jbe short 02e3bh                          ; 76 0c
    37003710    mov ax, cx                                ; 89 c8
    37013711    sub word [bp+004h], cx                    ; 29 4e 04
    37023712    xor ax, cx                                ; 31 c8
    37033713    mov word [bp-014h], ax                    ; 89 46 ec
    3704     jmp short 02e27h                          ; eb 0a
     3714    jmp short 02e45h                          ; eb 0a
    37053715    mov cx, ax                                ; 89 c1
    37063716    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    37083718    xor ax, ax                                ; 31 c0
    37093719    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3710     jne short 02e50h                          ; 75 21
     3720    jne short 02e6eh                          ; 75 21
    37113721    mov dx, word [bp-014h]                    ; 8b 56 ec
    37123722    cmp dx, word [bp+006h]                    ; 3b 56 06
    3713     jbe short 02e50h                          ; 76 19
     3723    jbe short 02e6eh                          ; 76 19
    37143724    mov ax, word [bp-014h]                    ; 8b 46 ec
    37153725    sub ax, word [bp+006h]                    ; 2b 46 06
     
    37203730    mov word [bp+006h], ax                    ; 89 46 06
    37213731    mov word [bp+008h], ax                    ; 89 46 08
    3722     jmp short 02e5ch                          ; eb 0c
     3732    jmp short 02e7ah                          ; eb 0c
    37233733    mov word [bp-00ch], ax                    ; 89 46 f4
    37243734    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    37283738    mov al, byte [bp-00ah]                    ; 8a 46 f6
    37293739    test cl, 003h                             ; f6 c1 03
    3730     je short 02e69h                           ; 74 02
     3740    je short 02e87h                           ; 74 02
    37313741    xor al, al                                ; 30 c0
    37323742    test byte [bp-014h], 003h                 ; f6 46 ec 03
    3733     je short 02e71h                           ; 74 02
     3743    je short 02e8fh                           ; 74 02
    37343744    xor al, al                                ; 30 c0
    37353745    test byte [bp-00ch], 003h                 ; f6 46 f4 03
    3736     je short 02e79h                           ; 74 02
     3746    je short 02e97h                           ; 74 02
    37373747    xor al, al                                ; 30 c0
    37383748    test byte [bp-014h], 001h                 ; f6 46 ec 01
    3739     je short 02e91h                           ; 74 12
     3749    je short 02eafh                           ; 74 12
    37403750    inc word [bp-014h]                        ; ff 46 ec
    37413751    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    3742     jbe short 02e91h                          ; 76 09
     3752    jbe short 02eafh                          ; 76 09
    37433753    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    3744     je short 02e91h                           ; 74 03
     3754    je short 02eafh                           ; 74 03
    37453755    dec word [bp-00ch]                        ; ff 4e f4
    37463756    cmp AL, strict byte 001h                  ; 3c 01
    3747     jne short 02ea2h                          ; 75 0d
     3757    jne short 02ec0h                          ; 75 0d
    37483758    shr word [bp-014h], 002h                  ; c1 6e ec 02
    37493759    shr cx, 002h                              ; c1 e9 02
    37503760    shr word [bp-00ch], 002h                  ; c1 6e f4 02
    3751     jmp short 02eaah                          ; eb 08
     3761    jmp short 02ec8h                          ; eb 08
    37523762    shr word [bp-014h], 1                     ; d1 6e ec
    37533763    shr cx, 1                                 ; d1 e9
    37543764    shr word [bp-00ch], 1                     ; d1 6e f4
    37553765    cmp AL, strict byte 001h                  ; 3c 01
    3756     jne short 02edah                          ; 75 2c
     3766    jne short 02ef8h                          ; 75 2c
    37573767    test cx, cx                               ; 85 c9
    3758     je short 02ebch                           ; 74 0a
     3768    je short 02edah                           ; 74 0a
    37593769    mov dx, bx                                ; 89 da
    37603770    push eax                                  ; 66 50
    37613771    in eax, DX                                ; 66 ed
    3762     loop 02eb6h                               ; e2 fc
     3772    loop 02ed4h                               ; e2 fc
    37633773    pop eax                                   ; 66 58
    37643774    mov dx, bx                                ; 89 da
     
    37693779    mov ax, word [bp-00ch]                    ; 8b 46 f4
    37703780    test ax, ax                               ; 85 c0
    3771     je short 02ef9h                           ; 74 2b
     3781    je short 02f17h                           ; 74 2b
    37723782    mov cx, ax                                ; 89 c1
    37733783    push eax                                  ; 66 50
    37743784    in eax, DX                                ; 66 ed
    3775     loop 02ed2h                               ; e2 fc
     3785    loop 02ef0h                               ; e2 fc
    37763786    pop eax                                   ; 66 58
    3777     jmp short 02ef9h                          ; eb 1f
     3787    jmp short 02f17h                          ; eb 1f
    37783788    test cx, cx                               ; 85 c9
    3779     je short 02ee3h                           ; 74 05
     3789    je short 02f01h                           ; 74 05
    37803790    mov dx, bx                                ; 89 da
    37813791    in ax, DX                                 ; ed
    3782     loop 02ee0h                               ; e2 fd
     3792    loop 02efeh                               ; e2 fd
    37833793    mov dx, bx                                ; 89 da
    37843794    mov cx, word [bp-014h]                    ; 8b 4e ec
     
    37873797    mov ax, word [bp-00ch]                    ; 8b 46 f4
    37883798    test ax, ax                               ; 85 c0
    3789     je short 02ef9h                           ; 74 05
     3799    je short 02f17h                           ; 74 05
    37903800    mov cx, ax                                ; 89 c1
    37913801    in ax, DX                                 ; ed
    3792     loop 02ef6h                               ; e2 fd
     3802    loop 02f14h                               ; e2 fd
    37933803    add word [bp+00ch], si                    ; 01 76 0c
    37943804    xor ax, ax                                ; 31 c0
     
    38013811    mov ax, word [bp-016h]                    ; 8b 46 ea
    38023812    mov word [es:si+01ch], ax                 ; 26 89 44 1c
    3803     jmp near 02da9h                           ; e9 8e fe
     3813    jmp near 02dc7h                           ; e9 8e fe
    38043814    mov al, dl                                ; 88 d0
    38053815    and AL, strict byte 0e9h                  ; 24 e9
    38063816    cmp AL, strict byte 040h                  ; 3c 40
    3807     je short 02f2fh                           ; 74 0c
     3817    je short 02f4dh                           ; 74 0c
    38083818    mov dx, word [bp-010h]                    ; 8b 56 f0
    38093819    add dx, strict byte 00006h                ; 83 c2 06
    38103820    mov AL, strict byte 008h                  ; b0 08
    38113821    out DX, AL                                ; ee
    3812     jmp near 02d7ah                           ; e9 4b fe
     3822    jmp near 02d98h                           ; e9 4b fe
    38133823    mov dx, word [bp-010h]                    ; 8b 56 f0
    38143824    add dx, strict byte 00006h                ; 83 c2 06
     
    38223832    pop bp                                    ; 5d
    38233833    retn 0000ch                               ; c2 0c 00
    3824 ata_soft_reset_:                             ; 0xf2f45 LB 0x80
     3834ata_soft_reset_:                             ; 0xf2f63 LB 0x80
    38253835    push bp                                   ; 55
    38263836    mov bp, sp                                ; 89 e5
     
    38323842    mov dx, strict word 0000eh                ; ba 0e 00
    38333843    mov ax, strict word 00040h                ; b8 40 00
    3834     call 01765h                               ; e8 0e e8
     3844    call 01765h                               ; e8 f0 e7
    38353845    mov dx, bx                                ; 89 da
    38363846    shr dx, 1                                 ; d1 ea
     
    38473857    out DX, AL                                ; ee
    38483858    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3849     je short 02f87h                           ; 74 05
     3859    je short 02fa5h                           ; 74 05
    38503860    mov ax, 000b0h                            ; b8 b0 00
    3851     jmp short 02f8ah                          ; eb 03
     3861    jmp short 02fa8h                          ; eb 03
    38523862    mov ax, 000a0h                            ; b8 a0 00
    38533863    mov dx, cx                                ; 89 ca
     
    38643874    ; sub ah, ah                                ; 2a e4
    38653875    test AL, strict byte 080h                 ; a8 80
    3866     jne short 02f98h                          ; 75 f4
     3876    jne short 02fb6h                          ; 75 f4
    38673877    and AL, strict byte 0e9h                  ; 24 e9
    38683878    cmp AL, strict byte 040h                  ; 3c 40
    3869     je short 02fb5h                           ; 74 0b
     3879    je short 02fd3h                           ; 74 0b
    38703880    lea dx, [bx+006h]                         ; 8d 57 06
    38713881    mov AL, strict byte 008h                  ; b0 08
    38723882    out DX, AL                                ; ee
    38733883    mov ax, strict word 00001h                ; b8 01 00
    3874     jmp short 02fbdh                          ; eb 08
     3884    jmp short 02fdbh                          ; eb 08
    38753885    lea dx, [bx+006h]                         ; 8d 57 06
    38763886    mov AL, strict byte 008h                  ; b0 08
     
    38833893    pop bp                                    ; 5d
    38843894    retn                                      ; c3
    3885 set_diskette_current_cyl_:                   ; 0xf2fc5 LB 0x2a
     3895set_diskette_current_cyl_:                   ; 0xf2fe3 LB 0x2a
    38863896    push bp                                   ; 55
    38873897    mov bp, sp                                ; 89 e5
     
    38893899    mov dh, al                                ; 88 c6
    38903900    cmp AL, strict byte 001h                  ; 3c 01
    3891     jbe short 02fdah                          ; 76 0b
     3901    jbe short 02ff8h                          ; 76 0b
    38923902    push 00262h                               ; 68 62 02
    38933903    push strict byte 00007h                   ; 6a 07
    3894     call 01a6bh                               ; e8 94 ea
     3904    call 01a6bh                               ; e8 76 ea
    38953905    add sp, strict byte 00004h                ; 83 c4 04
    38963906    movzx bx, dh                              ; 0f b6 de
     
    39033913    pop bp                                    ; 5d
    39043914    retn                                      ; c3
    3905 floppy_wait_for_interrupt_:                  ; 0xf2fef LB 0x23
     3915floppy_wait_for_interrupt_:                  ; 0xf300d LB 0x23
    39063916    push bp                                   ; 55
    39073917    mov bp, sp                                ; 89 e5
     
    39133923    mov al, byte [es:bx]                      ; 26 8a 07
    39143924    test AL, strict byte 080h                 ; a8 80
    3915     je short 03007h                           ; 74 04
     3925    je short 03025h                           ; 74 04
    39163926    and AL, strict byte 080h                  ; 24 80
    3917     jmp short 0300ch                          ; eb 05
     3927    jmp short 0302ah                          ; eb 05
    39183928    sti                                       ; fb
    39193929    hlt                                       ; f4
    39203930    cli                                       ; fa
    3921     jmp short 02ff4h                          ; eb e8
     3931    jmp short 03012h                          ; eb e8
    39223932    lea sp, [bp-002h]                         ; 8d 66 fe
    39233933    pop bx                                    ; 5b
    39243934    pop bp                                    ; 5d
    39253935    retn                                      ; c3
    3926 floppy_wait_for_interrupt_or_timeout_:       ; 0xf3012 LB 0x38
     3936floppy_wait_for_interrupt_or_timeout_:       ; 0xf3030 LB 0x38
    39273937    push bp                                   ; 55
    39283938    mov bp, sp                                ; 89 e5
     
    39333943    mov al, byte [es:bx]                      ; 26 8a 07
    39343944    test al, al                               ; 84 c0
    3935     jne short 03026h                          ; 75 03
     3945    jne short 03044h                          ; 75 03
    39363946    sti                                       ; fb
    3937     jmp short 03044h                          ; eb 1e
     3947    jmp short 03062h                          ; eb 1e
    39383948    mov bx, strict word 0003eh                ; bb 3e 00
    39393949    mov ax, strict word 00040h                ; b8 40 00
     
    39413951    mov al, byte [es:bx]                      ; 26 8a 07
    39423952    test AL, strict byte 080h                 ; a8 80
    3943     je short 0303fh                           ; 74 0a
     3953    je short 0305dh                           ; 74 0a
    39443954    mov ah, al                                ; 88 c4
    39453955    and ah, 07fh                              ; 80 e4 7f
    39463956    mov byte [es:bx], ah                      ; 26 88 27
    3947     jmp short 03044h                          ; eb 05
     3957    jmp short 03062h                          ; eb 05
    39483958    sti                                       ; fb
    39493959    hlt                                       ; f4
    39503960    cli                                       ; fa
    3951     jmp short 03017h                          ; eb d3
     3961    jmp short 03035h                          ; eb d3
    39523962    lea sp, [bp-002h]                         ; 8d 66 fe
    39533963    pop bx                                    ; 5b
    39543964    pop bp                                    ; 5d
    39553965    retn                                      ; c3
    3956 floppy_reset_controller_:                    ; 0xf304a LB 0x42
     3966floppy_reset_controller_:                    ; 0xf3068 LB 0x42
    39573967    push bp                                   ; 55
    39583968    mov bp, sp                                ; 89 e5
     
    39783988    and AL, strict byte 0c0h                  ; 24 c0
    39793989    cmp AL, strict byte 080h                  ; 3c 80
    3980     jne short 03065h                          ; 75 f4
     3990    jne short 03083h                          ; 75 f4
    39813991    mov bx, cx                                ; 89 cb
    39823992    add bx, 00090h                            ; 81 c3 90 00
     
    39924002    pop bp                                    ; 5d
    39934003    retn                                      ; c3
    3994 floppy_prepare_controller_:                  ; 0xf308c LB 0x74
     4004floppy_prepare_controller_:                  ; 0xf30aa LB 0x74
    39954005    push bp                                   ; 55
    39964006    mov bp, sp                                ; 89 e5
     
    40134023    mov byte [bp-008h], al                    ; 88 46 f8
    40144024    test cx, cx                               ; 85 c9
    4015     je short 030b8h                           ; 74 04
     4025    je short 030d6h                           ; 74 04
    40164026    mov AL, strict byte 020h                  ; b0 20
    4017     jmp short 030bah                          ; eb 02
     4027    jmp short 030d8h                          ; eb 02
    40184028    mov AL, strict byte 010h                  ; b0 10
    40194029    or AL, strict byte 00ch                   ; 0c 0c
     
    40354045    and AL, strict byte 0c0h                  ; 24 c0
    40364046    cmp AL, strict byte 080h                  ; 3c 80
    4037     jne short 030d8h                          ; 75 f4
     4047    jne short 030f6h                          ; 75 f4
    40384048    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4039     jne short 030f8h                          ; 75 0e
    4040     call 02fefh                               ; e8 02 ff
     4049    jne short 03116h                          ; 75 0e
     4050    call 0300dh                               ; e8 02 ff
    40414051    mov bx, strict word 0003eh                ; bb 3e 00
    40424052    mov dx, strict word 00040h                ; ba 40 00
     
    40494059    pop bp                                    ; 5d
    40504060    retn                                      ; c3
    4051 floppy_media_known_:                         ; 0xf3100 LB 0x49
     4061floppy_media_known_:                         ; 0xf311e LB 0x49
    40524062    push bx                                   ; 53
    40534063    push dx                                   ; 52
     
    40604070    mov bl, bh                                ; 88 fb
    40614071    test ax, ax                               ; 85 c0
    4062     je short 03118h                           ; 74 02
     4072    je short 03136h                           ; 74 02
    40634073    shr bl, 1                                 ; d0 eb
    40644074    and bl, 001h                              ; 80 e3 01
    4065     jne short 03121h                          ; 75 04
     4075    jne short 0313fh                          ; 75 04
    40664076    xor bh, bh                                ; 30 ff
    4067     jmp short 03143h                          ; eb 22
     4077    jmp short 03161h                          ; eb 22
    40684078    mov bx, 00090h                            ; bb 90 00
    40694079    test ax, ax                               ; 85 c0
    4070     je short 0312bh                           ; 74 03
     4080    je short 03149h                           ; 74 03
    40714081    mov bx, 00091h                            ; bb 91 00
    40724082    mov ax, strict word 00040h                ; b8 40 00
     
    40764086    sar ax, 004h                              ; c1 f8 04
    40774087    and AL, strict byte 001h                  ; 24 01
    4078     jne short 03140h                          ; 75 04
     4088    jne short 0315eh                          ; 75 04
    40794089    xor bx, bx                                ; 31 db
    4080     jmp short 03143h                          ; eb 03
     4090    jmp short 03161h                          ; eb 03
    40814091    mov bx, strict word 00001h                ; bb 01 00
    40824092    mov ax, bx                                ; 89 d8
     
    40854095    pop bx                                    ; 5b
    40864096    retn                                      ; c3
    4087 floppy_read_id_:                             ; 0xf3149 LB 0x4e
     4097floppy_read_id_:                             ; 0xf3167 LB 0x4e
    40884098    push bp                                   ; 55
    40894099    mov bp, sp                                ; 89 e5
     
    40924102    push si                                   ; 56
    40934103    mov bx, ax                                ; 89 c3
    4094     call 0308ch                               ; e8 38 ff
     4104    call 030aah                               ; e8 38 ff
    40954105    mov AL, strict byte 04ah                  ; b0 4a
    40964106    mov dx, 003f5h                            ; ba f5 03
     
    40984108    mov al, bl                                ; 88 d8
    40994109    out DX, AL                                ; ee
    4100     call 02fefh                               ; e8 8f fe
     4110    call 0300dh                               ; e8 8f fe
    41014111    xor bx, bx                                ; 31 db
    4102     jmp short 03169h                          ; eb 05
     4112    jmp short 03187h                          ; eb 05
    41034113    cmp bx, strict byte 00007h                ; 83 fb 07
    4104     jnl short 0317dh                          ; 7d 14
     4114    jnl short 0319bh                          ; 7d 14
    41054115    mov dx, 003f5h                            ; ba f5 03
    41064116    in AL, DX                                 ; ec
     
    41124122    mov byte [es:si], al                      ; 26 88 04
    41134123    inc bx                                    ; 43
    4114     jmp short 03164h                          ; eb e7
     4124    jmp short 03182h                          ; eb e7
    41154125    mov bx, strict word 00042h                ; bb 42 00
    41164126    mov ax, strict word 00040h                ; b8 40 00
     
    41274137    pop bp                                    ; 5d
    41284138    retn                                      ; c3
    4129 floppy_drive_recal_:                         ; 0xf3197 LB 0x41
     4139floppy_drive_recal_:                         ; 0xf31b5 LB 0x41
    41304140    push bp                                   ; 55
    41314141    mov bp, sp                                ; 89 e5
     
    41344144    push si                                   ; 56
    41354145    mov bx, ax                                ; 89 c3
    4136     call 0308ch                               ; e8 ea fe
     4146    call 030aah                               ; e8 ea fe
    41374147    mov AL, strict byte 007h                  ; b0 07
    41384148    mov dx, 003f5h                            ; ba f5 03
     
    41404150    mov al, bl                                ; 88 d8
    41414151    out DX, AL                                ; ee
    4142     call 02fefh                               ; e8 41 fe
     4152    call 0300dh                               ; e8 41 fe
    41434153    test bx, bx                               ; 85 db
    4144     je short 031b9h                           ; 74 07
     4154    je short 031d7h                           ; 74 07
    41454155    or AL, strict byte 002h                   ; 0c 02
    41464156    mov bx, 00095h                            ; bb 95 00
    4147     jmp short 031beh                          ; eb 05
     4157    jmp short 031dch                          ; eb 05
    41484158    or AL, strict byte 001h                   ; 0c 01
    41494159    mov bx, 00094h                            ; bb 94 00
     
    41604170    pop bp                                    ; 5d
    41614171    retn                                      ; c3
    4162 floppy_media_sense_:                         ; 0xf31d8 LB 0xe4
     4172floppy_media_sense_:                         ; 0xf31f6 LB 0xe4
    41634173    push bp                                   ; 55
    41644174    mov bp, sp                                ; 89 e5
     
    41684178    push si                                   ; 56
    41694179    mov bx, ax                                ; 89 c3
    4170     call 03197h                               ; e8 b3 ff
     4180    call 031b5h                               ; e8 b3 ff
    41714181    test ax, ax                               ; 85 c0
    4172     jne short 031edh                          ; 75 05
     4182    jne short 0320bh                          ; 75 05
    41734183    xor dx, dx                                ; 31 d2
    4174     jmp near 032b1h                           ; e9 c4 00
     4184    jmp near 032cfh                           ; e9 c4 00
    41754185    mov ax, strict word 00010h                ; b8 10 00
    4176     call 017a5h                               ; e8 b2 e5
     4186    call 017a5h                               ; e8 94 e5
    41774187    test bx, bx                               ; 85 db
    4178     jne short 031feh                          ; 75 07
     4188    jne short 0321ch                          ; 75 07
    41794189    mov dl, al                                ; 88 c2
    41804190    shr dl, 004h                              ; c0 ea 04
    4181     jmp short 03203h                          ; eb 05
     4191    jmp short 03221h                          ; eb 05
    41824192    mov dl, al                                ; 88 c2
    41834193    and dl, 00fh                              ; 80 e2 0f
    41844194    cmp dl, 001h                              ; 80 fa 01
    4185     jne short 03211h                          ; 75 09
     4195    jne short 0322fh                          ; 75 09
    41864196    xor dl, dl                                ; 30 d2
    41874197    mov DH, strict byte 015h                  ; b6 15
    41884198    mov cx, strict word 00001h                ; b9 01 00
    4189     jmp short 0324fh                          ; eb 3e
     4199    jmp short 0326dh                          ; eb 3e
    41904200    cmp dl, 002h                              ; 80 fa 02
    4191     jne short 0321ch                          ; 75 06
     4201    jne short 0323ah                          ; 75 06
    41924202    xor dl, dl                                ; 30 d2
    41934203    mov DH, strict byte 035h                  ; b6 35
    4194     jmp short 0320ch                          ; eb f0
     4204    jmp short 0322ah                          ; eb f0
    41954205    cmp dl, 003h                              ; 80 fa 03
    4196     jne short 03227h                          ; 75 06
     4206    jne short 03245h                          ; 75 06
    41974207    xor dl, dl                                ; 30 d2
    41984208    mov DH, strict byte 017h                  ; b6 17
    4199     jmp short 0320ch                          ; eb e5
     4209    jmp short 0322ah                          ; eb e5
    42004210    cmp dl, 004h                              ; 80 fa 04
    4201     jne short 03232h                          ; 75 06
     4211    jne short 03250h                          ; 75 06
    42024212    xor dl, dl                                ; 30 d2
    42034213    mov DH, strict byte 017h                  ; b6 17
    4204     jmp short 0320ch                          ; eb da
     4214    jmp short 0322ah                          ; eb da
    42054215    cmp dl, 005h                              ; 80 fa 05
    4206     jne short 0323dh                          ; 75 06
     4216    jne short 0325bh                          ; 75 06
    42074217    mov DL, strict byte 0cch                  ; b2 cc
    42084218    mov DH, strict byte 0d7h                  ; b6 d7
    4209     jmp short 0320ch                          ; eb cf
     4219    jmp short 0322ah                          ; eb cf
    42104220    cmp dl, 00eh                              ; 80 fa 0e
    4211     je short 03247h                           ; 74 05
     4221    je short 03265h                           ; 74 05
    42124222    cmp dl, 00fh                              ; 80 fa 0f
    4213     jne short 03249h                          ; 75 02
    4214     jmp short 03237h                          ; eb ee
     4223    jne short 03267h                          ; 75 02
     4224    jmp short 03255h                          ; eb ee
    42154225    xor dl, dl                                ; 30 d2
    42164226    xor dh, dh                                ; 30 f6
     
    42214231    mov byte [es:si], dl                      ; 26 88 14
    42224232    mov ax, bx                                ; 89 d8
    4223     call 03149h                               ; e8 ea fe
     4233    call 03167h                               ; e8 ea fe
    42244234    test ax, ax                               ; 85 c0
    4225     jne short 03295h                          ; 75 32
     4235    jne short 032b3h                          ; 75 32
    42264236    mov al, dl                                ; 88 d0
    42274237    and AL, strict byte 0c0h                  ; 24 c0
    42284238    cmp AL, strict byte 080h                  ; 3c 80
    4229     je short 03295h                           ; 74 2a
     4239    je short 032b3h                           ; 74 2a
    42304240    mov al, dl                                ; 88 d0
    42314241    and AL, strict byte 0c0h                  ; 24 c0
    42324242    cmp AL, strict byte 0c0h                  ; 3c c0
    4233     je short 03282h                           ; 74 0f
     4243    je short 032a0h                           ; 74 0f
    42344244    mov ah, dl                                ; 88 d4
    42354245    and ah, 03fh                              ; 80 e4 3f
    42364246    cmp AL, strict byte 040h                  ; 3c 40
    4237     je short 0328eh                           ; 74 12
     4247    je short 032ach                           ; 74 12
    42384248    test al, al                               ; 84 c0
    4239     je short 03287h                           ; 74 07
    4240     jmp short 0324fh                          ; eb cd
     4249    je short 032a5h                           ; 74 07
     4250    jmp short 0326dh                          ; eb cd
    42414251    and dl, 03fh                              ; 80 e2 3f
    4242     jmp short 0324fh                          ; eb c8
     4252    jmp short 0326dh                          ; eb c8
    42434253    mov dl, ah                                ; 88 e2
    42444254    or dl, 040h                               ; 80 ca 40
    4245     jmp short 0324fh                          ; eb c1
     4255    jmp short 0326dh                          ; eb c1
    42464256    mov dl, ah                                ; 88 e2
    42474257    or dl, 080h                               ; 80 ca 80
    4248     jmp short 0324fh                          ; eb ba
     4258    jmp short 0326dh                          ; eb ba
    42494259    test bx, bx                               ; 85 db
    42504260    db  00fh, 095h, 0c0h
     
    42664276    pop bp                                    ; 5d
    42674277    retn                                      ; c3
    4268 floppy_drive_exists_:                        ; 0xf32bc LB 0x47
     4278floppy_drive_exists_:                        ; 0xf32da LB 0x47
    42694279    push bp                                   ; 55
    42704280    mov bp, sp                                ; 89 e5
     
    42724282    mov dx, ax                                ; 89 c2
    42734283    mov ax, strict word 00010h                ; b8 10 00
    4274     call 017a5h                               ; e8 dd e4
     4284    call 017a5h                               ; e8 bf e4
    42754285    test dx, dx                               ; 85 d2
    4276     jne short 032d1h                          ; 75 05
     4286    jne short 032efh                          ; 75 05
    42774287    shr al, 004h                              ; c0 e8 04
    4278     jmp short 032d3h                          ; eb 02
     4288    jmp short 032f1h                          ; eb 02
    42794289    and AL, strict byte 00fh                  ; 24 0f
    42804290    test al, al                               ; 84 c0
     
    42914301    add AL, strict byte 003h                  ; 04 03
    42924302    add al, byte [bx+di]                      ; 02 01
    4293     add byte [si+03ch], ah                    ; 00 64 3c
    4294     inc bx                                    ; 43
    4295     db  033h, 0c0h
    4296     ; xor ax, ax                                ; 33 c0
    4297     db  033h, 0e0h
    4298     ; xor sp, ax                                ; 33 e0
    4299     db  033h, 0e0h
    4300     ; xor sp, ax                                ; 33 e0
    4301     db  033h, 0e0h
    4302     ; xor sp, ax                                ; 33 e0
    4303     xor bx, word [bp+di+037h]                 ; 33 5b 37
    4304     sbb word [bx+di], di                      ; 19 39
    4305     or word [bp+si], di                       ; 09 3a
    4306     dec bx                                    ; 4b
    4307     cmp bh, byte [bx+03ah]                    ; 3a 7f 3a
    4308     db  0f1h
    4309     db  03ah
    4310 _int13_diskette_function:                    ; 0xf3303 LB 0x984
     4303    add byte [bp+si+0613ch], al               ; 00 82 3c 61
     4304    db  033h, 0deh
     4305    ; xor bx, si                                ; 33 de
     4306    db  033h, 0feh
     4307    ; xor di, si                                ; 33 fe
     4308    db  033h, 0feh
     4309    ; xor di, si                                ; 33 fe
     4310    db  033h, 0feh
     4311    ; xor di, si                                ; 33 fe
     4312    xor di, word [bx+di+037h]                 ; 33 79 37
     4313    aaa                                       ; 37
     4314    cmp word [bx], sp                         ; 39 27
     4315    cmp ch, byte [bx+di+03ah]                 ; 3a 69 3a
     4316    popfw                                     ; 9d
     4317    cmp cl, byte [bx]                         ; 3a 0f
     4318    db  03bh
     4319_int13_diskette_function:                    ; 0xf3321 LB 0x984
    43114320    push bp                                   ; 55
    43124321    mov bp, sp                                ; 89 e5
     
    43164325    shr ax, 008h                              ; c1 e8 08
    43174326    cmp ax, strict word 00018h                ; 3d 18 00
    4318     jnbe near 03c64h                          ; 0f 87 4a 09
     4327    jnbe near 03c82h                          ; 0f 87 4a 09
    43194328    push CS                                   ; 0e
    43204329    pop ES                                    ; 07
    43214330    mov cx, strict word 0000ch                ; b9 0c 00
    4322     mov di, 032e0h                            ; bf e0 32
     4331    mov di, 032feh                            ; bf fe 32
    43234332    repne scasb                               ; f2 ae
    43244333    sal cx, 1                                 ; d1 e1
    43254334    mov di, cx                                ; 89 cf
    4326     mov di, word [cs:di+032ebh]               ; 2e 8b bd eb 32
     4335    mov di, word [cs:di+03309h]               ; 2e 8b bd 09 33
    43274336    mov dx, word [bp+016h]                    ; 8b 56 16
    43284337    xor dh, dh                                ; 30 f6
     
    43354344    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    43364345    cmp bl, 001h                              ; 80 fb 01
    4337     jbe short 03365h                          ; 76 1a
     4346    jbe short 03383h                          ; 76 1a
    43384347    mov ax, word [bp+016h]                    ; 8b 46 16
    43394348    xor ah, ah                                ; 30 e4
     
    43444353    mov es, ax                                ; 8e c0
    43454354    mov byte [es:bx], 001h                    ; 26 c6 07 01
    4346     jmp near 03b51h                           ; e9 ec 07
     4355    jmp near 03b6fh                           ; e9 ec 07
    43474356    mov ax, strict word 00010h                ; b8 10 00
    4348     call 017a5h                               ; e8 3a e4
     4357    call 017a5h                               ; e8 1c e4
    43494358    test bl, bl                               ; 84 db
    4350     jne short 03376h                          ; 75 07
     4359    jne short 03394h                          ; 75 07
    43514360    mov dl, al                                ; 88 c2
    43524361    shr dl, 004h                              ; c0 ea 04
    4353     jmp short 0337bh                          ; eb 05
     4362    jmp short 03399h                          ; eb 05
    43544363    mov dl, al                                ; 88 c2
    43554364    and dl, 00fh                              ; 80 e2 0f
    43564365    test dl, dl                               ; 84 d2
    4357     jne short 03399h                          ; 75 1a
     4366    jne short 033b7h                          ; 75 1a
    43584367    mov ax, word [bp+016h]                    ; 8b 46 16
    43594368    xor ah, ah                                ; 30 e4
     
    43644373    mov es, ax                                ; 8e c0
    43654374    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4366     jmp near 03b51h                           ; e9 b8 07
     4375    jmp near 03b6fh                           ; e9 b8 07
    43674376    mov si, strict word 0003eh                ; be 3e 00
    43684377    mov ax, strict word 00040h                ; b8 40 00
     
    43764385    movzx ax, bl                              ; 0f b6 c3
    43774386    xor dx, dx                                ; 31 d2
    4378     call 02fc5h                               ; e8 09 fc
     4387    call 02fe3h                               ; e8 09 fc
    43794388    mov sp, bp                                ; 89 ec
    43804389    pop bp                                    ; 5d
     
    43904399    mov word [bp+016h], dx                    ; 89 56 16
    43914400    test al, al                               ; 84 c0
    4392     je short 033bch                           ; 74 df
    4393     jmp near 03b51h                           ; e9 71 07
     4401    je short 033dah                           ; 74 df
     4402    jmp near 03b6fh                           ; e9 71 07
    43944403    mov bh, byte [bp+016h]                    ; 8a 7e 16
    43954404    mov ax, word [bp+014h]                    ; 8b 46 14
     
    44034412    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    44044413    cmp bl, 001h                              ; 80 fb 01
    4405     jnbe short 03410h                         ; 77 0d
     4414    jnbe short 0342eh                         ; 77 0d
    44064415    cmp AL, strict byte 001h                  ; 3c 01
    4407     jnbe short 03410h                         ; 77 09
     4416    jnbe short 0342eh                         ; 77 09
    44084417    test bh, bh                               ; 84 ff
    4409     je short 03410h                           ; 74 05
     4418    je short 0342eh                           ; 74 05
    44104419    cmp bh, 048h                              ; 80 ff 48
    4411     jbe short 03443h                          ; 76 33
    4412     mov bx, 00db6h                            ; bb b6 0d
     4420    jbe short 03461h                          ; 76 33
     4421    mov bx, 00db2h                            ; bb b2 0d
    44134422    mov cx, ds                                ; 8c d9
    44144423    mov ax, strict word 00004h                ; b8 04 00
    4415     call 01a2ah                               ; e8 0f e6
     4424    call 01a2ah                               ; e8 f1 e5
    44164425    push 00287h                               ; 68 87 02
    44174426    push 0029fh                               ; 68 9f 02
    44184427    push strict byte 00004h                   ; 6a 04
    4419     call 01a6bh                               ; e8 45 e6
     4428    call 01a6bh                               ; e8 27 e6
    44204429    add sp, strict byte 00006h                ; 83 c4 06
    44214430    mov ax, word [bp+016h]                    ; 8b 46 16
     
    44274436    mov es, ax                                ; 8e c0
    44284437    mov byte [es:bx], 001h                    ; 26 c6 07 01
    4429     jmp near 034ceh                           ; e9 8b 00
     4438    jmp near 034ech                           ; e9 8b 00
    44304439    movzx ax, bl                              ; 0f b6 c3
    4431     call 032bch                               ; e8 73 fe
     4440    call 032dah                               ; e8 73 fe
    44324441    test ax, ax                               ; 85 c0
    4433     je near 03565h                            ; 0f 84 16 01
     4442    je near 03583h                            ; 0f 84 16 01
    44344443    movzx cx, bl                              ; 0f b6 cb
    44354444    mov ax, cx                                ; 89 c8
    4436     call 03100h                               ; e8 a9 fc
     4445    call 0311eh                               ; e8 a9 fc
    44374446    test ax, ax                               ; 85 c0
    4438     jne short 0347dh                          ; 75 22
     4447    jne short 0349bh                          ; 75 22
    44394448    mov ax, cx                                ; 89 c8
    4440     call 031d8h                               ; e8 78 fd
     4449    call 031f6h                               ; e8 78 fd
    44414450    test ax, ax                               ; 85 c0
    4442     jne short 0347dh                          ; 75 19
     4451    jne short 0349bh                          ; 75 19
    44434452    mov ax, word [bp+016h]                    ; 8b 46 16
    44444453    xor ah, ah                                ; 30 e4
     
    44494458    mov es, ax                                ; 8e c0
    44504459    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
    4451     jmp short 034ceh                          ; eb 51
     4460    jmp short 034ech                          ; eb 51
    44524461    mov ax, word [bp+016h]                    ; 8b 46 16
    44534462    shr ax, 008h                              ; c1 e8 08
    44544463    cmp ax, strict word 00002h                ; 3d 02 00
    4455     jne near 03619h                           ; 0f 85 8f 01
     4464    jne near 03637h                           ; 0f 85 8f 01
    44564465    mov dx, word [bp+006h]                    ; 8b 56 06
    44574466    shr dx, 00ch                              ; c1 ea 0c
     
    44634472    mov word [bp-008h], si                    ; 89 76 f8
    44644473    cmp cx, si                                ; 39 f1
    4465     jbe short 034a6h                          ; 76 02
     4474    jbe short 034c4h                          ; 76 02
    44664475    db  0feh, 0c4h
    44674476    ; inc ah                                    ; fe c4
     
    44724481    add dx, cx                                ; 01 ca
    44734482    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4474     jnc short 034d5h                          ; 73 1e
     4483    jnc short 034f3h                          ; 73 1e
    44754484    mov ax, word [bp+016h]                    ; 8b 46 16
    44764485    xor ah, ah                                ; 30 e4
     
    44824491    mov byte [es:bx], 009h                    ; 26 c6 07 09
    44834492    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4484     jmp near 03b51h                           ; e9 7c 06
     4493    jmp near 03b6fh                           ; e9 7c 06
    44854494    mov AL, strict byte 006h                  ; b0 06
    44864495    mov dx, strict word 0000ah                ; ba 0a 00
     
    45174526    movzx cx, bl                              ; 0f b6 cb
    45184527    mov ax, cx                                ; 89 c8
    4519     call 0308ch                               ; e8 6c fb
     4528    call 030aah                               ; e8 6c fb
    45204529    mov AL, strict byte 0e6h                  ; b0 e6
    45214530    mov dx, 003f5h                            ; ba f5 03
     
    45454554    mov AL, strict byte 0ffh                  ; b0 ff
    45464555    out DX, AL                                ; ee
    4547     call 03012h                               ; e8 b6 fa
     4556    call 03030h                               ; e8 b6 fa
    45484557    test al, al                               ; 84 c0
    4549     jne short 0357fh                          ; 75 1f
     4558    jne short 0359dh                          ; 75 1f
    45504559    mov ax, cx                                ; 89 c8
    4551     call 0304ah                               ; e8 e5 fa
     4560    call 03068h                               ; e8 e5 fa
    45524561    mov ax, word [bp+016h]                    ; 8b 46 16
    45534562    xor ah, ah                                ; 30 e4
     
    45584567    mov es, ax                                ; 8e c0
    45594568    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4560     jmp near 034ceh                           ; e9 4f ff
     4569    jmp near 034ech                           ; e9 4f ff
    45614570    mov dx, 003f4h                            ; ba f4 03
    45624571    in AL, DX                                 ; ec
     
    45654574    and AL, strict byte 0c0h                  ; 24 c0
    45664575    cmp AL, strict byte 0c0h                  ; 3c c0
    4567     je short 03599h                           ; 74 0e
     4576    je short 035b7h                           ; 74 0e
    45684577    push 00287h                               ; 68 87 02
    45694578    push 002bah                               ; 68 ba 02
    45704579    push strict byte 00007h                   ; 6a 07
    4571     call 01a6bh                               ; e8 d5 e4
     4580    call 01a6bh                               ; e8 b7 e4
    45724581    add sp, strict byte 00006h                ; 83 c4 06
    45734582    xor cx, cx                                ; 31 c9
    4574     jmp short 035a2h                          ; eb 05
     4583    jmp short 035c0h                          ; eb 05
    45754584    cmp cx, strict byte 00007h                ; 83 f9 07
    4576     jnl short 035b8h                          ; 7d 16
     4585    jnl short 035d6h                          ; 7d 16
    45774586    mov dx, 003f5h                            ; ba f5 03
    45784587    in AL, DX                                 ; ec
     
    45854594    mov byte [es:si], al                      ; 26 88 04
    45864595    inc cx                                    ; 41
    4587     jmp short 0359dh                          ; eb e5
     4596    jmp short 035bbh                          ; eb e5
    45884597    mov si, strict word 00042h                ; be 42 00
    45894598    mov ax, strict word 00040h                ; b8 40 00
     
    45914600    mov al, byte [es:si]                      ; 26 8a 04
    45924601    test AL, strict byte 0c0h                 ; a8 c0
    4593     je short 035e7h                           ; 74 20
     4602    je short 03605h                           ; 74 20
    45944603    movzx ax, bl                              ; 0f b6 c3
    4595     call 0304ah                               ; e8 7d fa
     4604    call 03068h                               ; e8 7d fa
    45964605    mov ax, word [bp+016h]                    ; 8b 46 16
    45974606    xor ah, ah                                ; 30 e4
     
    46024611    mov es, ax                                ; 8e c0
    46034612    mov byte [es:bx], 020h                    ; 26 c6 07 20
    4604     jmp near 034ceh                           ; e9 e7 fe
     4613    jmp near 034ech                           ; e9 e7 fe
    46054614    movzx ax, bh                              ; 0f b6 c7
    46064615    sal ax, 009h                              ; c1 e0 09
     
    46204629    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    46214630    movzx ax, bl                              ; 0f b6 c3
    4622     call 02fc5h                               ; e8 b7 f9
     4631    call 02fe3h                               ; e8 b7 f9
    46234632    mov byte [bp+017h], 000h                  ; c6 46 17 00
    46244633    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4625     jmp near 033bch                           ; e9 a3 fd
     4634    jmp near 033dah                           ; e9 a3 fd
    46264635    mov ax, word [bp+016h]                    ; 8b 46 16
    46274636    shr ax, 008h                              ; c1 e8 08
    46284637    cmp ax, strict word 00003h                ; 3d 03 00
    4629     jne near 03746h                           ; 0f 85 20 01
     4638    jne near 03764h                           ; 0f 85 20 01
    46304639    mov cx, word [bp+006h]                    ; 8b 4e 06
    46314640    shr cx, 00ch                              ; c1 e9 0c
     
    46374646    mov word [bp-008h], si                    ; 89 76 f8
    46384647    cmp dx, si                                ; 39 f2
    4639     jbe short 03642h                          ; 76 02
     4648    jbe short 03660h                          ; 76 02
    46404649    db  0feh, 0c4h
    46414650    ; inc ah                                    ; fe c4
     
    46464655    add dx, cx                                ; 01 ca
    46474656    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4648     jc near 034b7h                            ; 0f 82 62 fe
     4657    jc near 034d5h                            ; 0f 82 62 fe
    46494658    mov AL, strict byte 006h                  ; b0 06
    46504659    mov dx, strict word 0000ah                ; ba 0a 00
     
    46814690    movzx cx, bl                              ; 0f b6 cb
    46824691    mov ax, cx                                ; 89 c8
    4683     call 0308ch                               ; e8 ec f9
     4692    call 030aah                               ; e8 ec f9
    46844693    mov AL, strict byte 0c5h                  ; b0 c5
    46854694    mov dx, 003f5h                            ; ba f5 03
     
    47094718    mov AL, strict byte 0ffh                  ; b0 ff
    47104719    out DX, AL                                ; ee
    4711     call 03012h                               ; e8 36 f9
     4720    call 03030h                               ; e8 36 f9
    47124721    test al, al                               ; 84 c0
    4713     je near 03560h                            ; 0f 84 7e fe
     4722    je near 0357eh                            ; 0f 84 7e fe
    47144723    mov dx, 003f4h                            ; ba f4 03
    47154724    in AL, DX                                 ; ec
     
    47184727    and AL, strict byte 0c0h                  ; 24 c0
    47194728    cmp AL, strict byte 0c0h                  ; 3c c0
    4720     je short 036fch                           ; 74 0e
     4729    je short 0371ah                           ; 74 0e
    47214730    push 00287h                               ; 68 87 02
    47224731    push 002bah                               ; 68 ba 02
    47234732    push strict byte 00007h                   ; 6a 07
    4724     call 01a6bh                               ; e8 72 e3
     4733    call 01a6bh                               ; e8 54 e3
    47254734    add sp, strict byte 00006h                ; 83 c4 06
    47264735    xor cx, cx                                ; 31 c9
    4727     jmp short 03705h                          ; eb 05
     4736    jmp short 03723h                          ; eb 05
    47284737    cmp cx, strict byte 00007h                ; 83 f9 07
    4729     jnl short 0371bh                          ; 7d 16
     4738    jnl short 03739h                          ; 7d 16
    47304739    mov dx, 003f5h                            ; ba f5 03
    47314740    in AL, DX                                 ; ec
     
    47384747    mov byte [es:si], al                      ; 26 88 04
    47394748    inc cx                                    ; 41
    4740     jmp short 03700h                          ; eb e5
     4749    jmp short 0371eh                          ; eb e5
    47414750    mov si, strict word 00042h                ; be 42 00
    47424751    mov ax, strict word 00040h                ; b8 40 00
     
    47444753    mov al, byte [es:si]                      ; 26 8a 04
    47454754    test AL, strict byte 0c0h                 ; a8 c0
    4746     je near 03604h                            ; 0f 84 d8 fe
     4755    je near 03622h                            ; 0f 84 d8 fe
    47474756    mov bx, strict word 00043h                ; bb 43 00
    47484757    mov al, byte [es:bx]                      ; 26 8a 07
    47494758    test AL, strict byte 002h                 ; a8 02
    4750     je short 0373eh                           ; 74 08
     4759    je short 0375ch                           ; 74 08
    47514760    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    4752     jmp near 03b51h                           ; e9 13 04
     4761    jmp near 03b6fh                           ; e9 13 04
    47534762    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4754     jmp near 03b51h                           ; e9 0b 04
     4763    jmp near 03b6fh                           ; e9 0b 04
    47554764    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    47564765    movzx ax, bl                              ; 0f b6 c3
    4757     call 02fc5h                               ; e8 75 f8
     4766    call 02fe3h                               ; e8 75 f8
    47584767    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    47594768    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4760     jmp near 033bch                           ; e9 61 fc
     4769    jmp near 033dah                           ; e9 61 fc
    47614770    mov bh, byte [bp+016h]                    ; 8a 7e 16
    47624771    mov ax, word [bp+014h]                    ; 8b 46 14
     
    47684777    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    47694778    cmp bl, 001h                              ; 80 fb 01
    4770     jnbe short 0378ah                         ; 77 12
     4779    jnbe short 037a8h                         ; 77 12
    47714780    cmp dl, 001h                              ; 80 fa 01
    4772     jnbe short 0378ah                         ; 77 0d
     4781    jnbe short 037a8h                         ; 77 0d
    47734782    cmp AL, strict byte 04fh                  ; 3c 4f
    4774     jnbe short 0378ah                         ; 77 09
     4783    jnbe short 037a8h                         ; 77 09
    47754784    test bh, bh                               ; 84 ff
    4776     je short 0378ah                           ; 74 05
     4785    je short 037a8h                           ; 74 05
    47774786    cmp bh, 012h                              ; 80 ff 12
    4778     jbe short 037a5h                          ; 76 1b
     4787    jbe short 037c3h                          ; 76 1b
    47794788    mov ax, word [bp+016h]                    ; 8b 46 16
    47804789    xor ah, ah                                ; 30 e4
     
    47874796    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    47884797    movzx ax, bl                              ; 0f b6 c3
    4789     call 032bch                               ; e8 11 fb
     4798    call 032dah                               ; e8 11 fb
    47904799    test ax, ax                               ; 85 c0
    4791     jne short 037c9h                          ; 75 1a
     4800    jne short 037e7h                          ; 75 1a
    47924801    mov ax, word [bp+016h]                    ; 8b 46 16
    47934802    xor ah, ah                                ; 30 e4
     
    47984807    mov es, ax                                ; 8e c0
    47994808    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4800     jmp near 03b51h                           ; e9 88 03
     4809    jmp near 03b6fh                           ; e9 88 03
    48014810    movzx cx, bl                              ; 0f b6 cb
    48024811    mov ax, cx                                ; 89 c8
    4803     call 03100h                               ; e8 2f f9
     4812    call 0311eh                               ; e8 2f f9
    48044813    test ax, ax                               ; 85 c0
    4805     jne short 037e0h                          ; 75 0b
     4814    jne short 037feh                          ; 75 0b
    48064815    mov ax, cx                                ; 89 c8
    4807     call 031d8h                               ; e8 fe f9
     4816    call 031f6h                               ; e8 fe f9
    48084817    test ax, ax                               ; 85 c0
    4809     je near 03464h                            ; 0f 84 84 fc
     4818    je near 03482h                            ; 0f 84 84 fc
    48104819    mov dx, word [bp+006h]                    ; 8b 56 06
    48114820    shr dx, 00ch                              ; c1 ea 0c
     
    48174826    mov word [bp-008h], si                    ; 89 76 f8
    48184827    cmp cx, si                                ; 39 f1
    4819     jbe short 037fch                          ; 76 02
     4828    jbe short 0381ah                          ; 76 02
    48204829    db  0feh, 0c4h
    48214830    ; inc ah                                    ; fe c4
     
    48264835    add dx, cx                                ; 01 ca
    48274836    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4828     jc near 034b7h                            ; 0f 82 a8 fc
     4837    jc near 034d5h                            ; 0f 82 a8 fc
    48294838    mov AL, strict byte 006h                  ; b0 06
    48304839    mov dx, strict word 0000ah                ; ba 0a 00
     
    48614870    movzx cx, bl                              ; 0f b6 cb
    48624871    mov ax, cx                                ; 89 c8
    4863     call 0308ch                               ; e8 32 f8
     4872    call 030aah                               ; e8 32 f8
    48644873    mov AL, strict byte 00fh                  ; b0 0f
    48654874    mov dx, 003f5h                            ; ba f5 03
     
    48874896    mov AL, strict byte 0f6h                  ; b0 f6
    48884897    out DX, AL                                ; ee
    4889     call 03012h                               ; e8 82 f7
     4898    call 03030h                               ; e8 82 f7
    48904899    test al, al                               ; 84 c0
    4891     jne short 0389ch                          ; 75 08
     4900    jne short 038bah                          ; 75 08
    48924901    mov ax, cx                                ; 89 c8
    4893     call 0304ah                               ; e8 b1 f7
    4894     jmp near 037afh                           ; e9 13 ff
     4902    call 03068h                               ; e8 b1 f7
     4903    jmp near 037cdh                           ; e9 13 ff
    48954904    mov dx, 003f4h                            ; ba f4 03
    48964905    in AL, DX                                 ; ec
     
    48994908    and AL, strict byte 0c0h                  ; 24 c0
    49004909    cmp AL, strict byte 0c0h                  ; 3c c0
    4901     je short 038b6h                           ; 74 0e
     4910    je short 038d4h                           ; 74 0e
    49024911    push 00287h                               ; 68 87 02
    49034912    push 002bah                               ; 68 ba 02
    49044913    push strict byte 00007h                   ; 6a 07
    4905     call 01a6bh                               ; e8 b8 e1
     4914    call 01a6bh                               ; e8 9a e1
    49064915    add sp, strict byte 00006h                ; 83 c4 06
    49074916    xor cx, cx                                ; 31 c9
    4908     jmp short 038bfh                          ; eb 05
     4917    jmp short 038ddh                          ; eb 05
    49094918    cmp cx, strict byte 00007h                ; 83 f9 07
    4910     jnl short 038d5h                          ; 7d 16
     4919    jnl short 038f3h                          ; 7d 16
    49114920    mov dx, 003f5h                            ; ba f5 03
    49124921    in AL, DX                                 ; ec
     
    49194928    mov byte [es:si], al                      ; 26 88 04
    49204929    inc cx                                    ; 41
    4921     jmp short 038bah                          ; eb e5
     4930    jmp short 038d8h                          ; eb e5
    49224931    mov si, strict word 00042h                ; be 42 00
    49234932    mov ax, strict word 00040h                ; b8 40 00
     
    49254934    mov al, byte [es:si]                      ; 26 8a 04
    49264935    test AL, strict byte 0c0h                 ; a8 c0
    4927     je short 038feh                           ; 74 1a
     4936    je short 0391ch                           ; 74 1a
    49284937    mov si, strict word 00043h                ; be 43 00
    49294938    mov al, byte [es:si]                      ; 26 8a 04
    49304939    test AL, strict byte 002h                 ; a8 02
    4931     jne near 03736h                           ; 0f 85 46 fe
     4940    jne near 03754h                           ; 0f 85 46 fe
    49324941    push 00287h                               ; 68 87 02
    49334942    push 002ceh                               ; 68 ce 02
    49344943    push strict byte 00007h                   ; 6a 07
    4935     call 01a6bh                               ; e8 70 e1
     4944    call 01a6bh                               ; e8 52 e1
    49364945    add sp, strict byte 00006h                ; 83 c4 06
    49374946    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    49424951    movzx ax, bl                              ; 0f b6 c3
    49434952    xor dx, dx                                ; 31 d2
    4944     call 02fc5h                               ; e8 af f6
    4945     jmp near 03612h                           ; e9 f9 fc
     4953    call 02fe3h                               ; e8 af f6
     4954    jmp near 03630h                           ; e9 f9 fc
    49464955    mov bl, ah                                ; 88 e3
    49474956    cmp ah, 001h                              ; 80 fc 01
    4948     jbe short 0393dh                          ; 76 1d
     4957    jbe short 0395bh                          ; 76 1d
    49494958    xor ax, ax                                ; 31 c0
    49504959    mov word [bp+016h], ax                    ; 89 46 16
     
    49564965    movzx ax, bh                              ; 0f b6 c7
    49574966    mov word [bp+012h], ax                    ; 89 46 12
    4958     jmp near 03a5fh                           ; e9 22 01
     4967    jmp near 03a7dh                           ; e9 22 01
    49594968    mov ax, strict word 00010h                ; b8 10 00
    4960     call 017a5h                               ; e8 62 de
     4969    call 017a5h                               ; e8 44 de
    49614970    mov dl, al                                ; 88 c2
    49624971    xor bh, bh                                ; 30 ff
    49634972    test AL, strict byte 0f0h                 ; a8 f0
    4964     je short 0394dh                           ; 74 02
     4973    je short 0396bh                           ; 74 02
    49654974    mov BH, strict byte 001h                  ; b7 01
    49664975    test dl, 00fh                             ; f6 c2 0f
    4967     je short 03954h                           ; 74 02
     4976    je short 03972h                           ; 74 02
    49684977    db  0feh, 0c7h
    49694978    ; inc bh                                    ; fe c7
    49704979    test bl, bl                               ; 84 db
    4971     jne short 0395dh                          ; 75 05
     4980    jne short 0397bh                          ; 75 05
    49724981    shr dl, 004h                              ; c0 ea 04
    4973     jmp short 03960h                          ; eb 03
     4982    jmp short 0397eh                          ; eb 03
    49744983    and dl, 00fh                              ; 80 e2 0f
    49754984    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    49874996    mov word [bp+012h], ax                    ; 89 46 12
    49884997    cmp dl, 003h                              ; 80 fa 03
    4989     jc short 039a0h                           ; 72 15
    4990     jbe short 039c7h                          ; 76 3a
     4998    jc short 039beh                           ; 72 15
     4999    jbe short 039e5h                          ; 76 3a
    49915000    cmp dl, 005h                              ; 80 fa 05
    4992     jc short 039ceh                           ; 72 3c
    4993     jbe short 039d5h                          ; 76 41
     5001    jc short 039ech                           ; 72 3c
     5002    jbe short 039f3h                          ; 76 41
    49945003    cmp dl, 00fh                              ; 80 fa 0f
    4995     je short 039e3h                           ; 74 4a
     5004    je short 03a01h                           ; 74 4a
    49965005    cmp dl, 00eh                              ; 80 fa 0e
    4997     je short 039dch                           ; 74 3e
    4998     jmp short 039eah                          ; eb 4a
     5006    je short 039fah                           ; 74 3e
     5007    jmp short 03a08h                          ; eb 4a
    49995008    cmp dl, 002h                              ; 80 fa 02
    5000     je short 039c0h                           ; 74 1b
     5009    je short 039deh                           ; 74 1b
    50015010    cmp dl, 001h                              ; 80 fa 01
    5002     je short 039b9h                           ; 74 0f
     5011    je short 039d7h                           ; 74 0f
    50035012    test dl, dl                               ; 84 d2
    5004     jne short 039eah                          ; 75 3c
     5013    jne short 03a08h                          ; 75 3c
    50055014    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    50065015    mov byte [bp+013h], 000h                  ; c6 46 13 00
    5007     jmp short 039f8h                          ; eb 3f
     5016    jmp short 03a16h                          ; eb 3f
    50085017    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    5009     jmp short 039f8h                          ; eb 38
     5018    jmp short 03a16h                          ; eb 38
    50105019    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    5011     jmp short 039f8h                          ; eb 31
     5020    jmp short 03a16h                          ; eb 31
    50125021    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    5013     jmp short 039f8h                          ; eb 2a
     5022    jmp short 03a16h                          ; eb 2a
    50145023    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    5015     jmp short 039f8h                          ; eb 23
     5024    jmp short 03a16h                          ; eb 23
    50165025    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    5017     jmp short 039f8h                          ; eb 1c
     5026    jmp short 03a16h                          ; eb 1c
    50185027    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    5019     jmp short 039f8h                          ; eb 15
     5028    jmp short 03a16h                          ; eb 15
    50205029    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    5021     jmp short 039f8h                          ; eb 0e
     5030    jmp short 03a16h                          ; eb 0e
    50225031    push 00287h                               ; 68 87 02
    50235032    push 002dfh                               ; 68 df 02
    50245033    push strict byte 00007h                   ; 6a 07
    5025     call 01a6bh                               ; e8 76 e0
     5034    call 01a6bh                               ; e8 58 e0
    50265035    add sp, strict byte 00006h                ; 83 c4 06
    50275036    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    50285037    movzx ax, dl                              ; 0f b6 c2
    5029     call 03c87h                               ; e8 84 02
     5038    call 03ca5h                               ; e8 84 02
    50305039    mov word [bp+008h], ax                    ; 89 46 08
    5031     jmp near 03612h                           ; e9 09 fc
     5040    jmp near 03630h                           ; e9 09 fc
    50325041    mov bl, ah                                ; 88 e3
    50335042    cmp ah, 001h                              ; 80 fc 01
    5034     jbe short 03a15h                          ; 76 05
     5043    jbe short 03a33h                          ; 76 05
    50355044    mov word [bp+016h], dx                    ; 89 56 16
    5036     jmp short 03a5fh                          ; eb 4a
     5045    jmp short 03a7dh                          ; eb 4a
    50375046    mov ax, strict word 00010h                ; b8 10 00
    5038     call 017a5h                               ; e8 8a dd
     5047    call 017a5h                               ; e8 6c dd
    50395048    test bl, bl                               ; 84 db
    5040     jne short 03a26h                          ; 75 07
     5049    jne short 03a44h                          ; 75 07
    50415050    mov dl, al                                ; 88 c2
    50425051    shr dl, 004h                              ; c0 ea 04
    5043     jmp short 03a2bh                          ; eb 05
     5052    jmp short 03a49h                          ; eb 05
    50445053    mov dl, al                                ; 88 c2
    50455054    and dl, 00fh                              ; 80 e2 0f
     
    50485057    xor ah, ah                                ; 30 e4
    50495058    test dl, dl                               ; 84 d2
    5050     je short 03a45h                           ; 74 0d
     5059    je short 03a63h                           ; 74 0d
    50515060    cmp dl, 001h                              ; 80 fa 01
    5052     jbe short 03a42h                          ; 76 05
     5061    jbe short 03a60h                          ; 76 05
    50535062    or ah, 002h                               ; 80 cc 02
    5054     jmp short 03a45h                          ; eb 03
     5063    jmp short 03a63h                          ; eb 03
    50555064    or ah, 001h                               ; 80 cc 01
    50565065    mov word [bp+016h], ax                    ; 89 46 16
    5057     jmp near 033bch                           ; e9 71 f9
     5066    jmp near 033dah                           ; e9 71 f9
    50585067    cmp ah, 001h                              ; 80 fc 01
    5059     jbe short 03a65h                          ; 76 15
     5068    jbe short 03a83h                          ; 76 15
    50605069    mov word [bp+016h], si                    ; 89 76 16
    50615070    mov bx, strict word 00041h                ; bb 41 00
     
    50645073    mov byte [es:bx], 001h                    ; 26 c6 07 01
    50655074    mov word [bp+01ch], cx                    ; 89 4e 1c
    5066     jmp near 033bch                           ; e9 57 f9
     5075    jmp near 033dah                           ; e9 57 f9
    50675076    mov ax, word [bp+016h]                    ; 8b 46 16
    50685077    xor ah, ah                                ; 30 e4
     
    50735082    mov es, ax                                ; 8e c0
    50745083    mov byte [es:bx], 006h                    ; 26 c6 07 06
    5075     jmp near 03b51h                           ; e9 d2 00
     5084    jmp near 03b6fh                           ; e9 d2 00
    50765085    mov bl, ah                                ; 88 e3
    50775086    mov dl, byte [bp+016h]                    ; 8a 56 16
    50785087    cmp ah, 001h                              ; 80 fc 01
    5079     jnbe short 03a50h                         ; 77 c7
     5088    jnbe short 03a6eh                         ; 77 c7
    50805089    movzx ax, bl                              ; 0f b6 c3
    5081     call 032bch                               ; e8 2d f8
     5090    call 032dah                               ; e8 2d f8
    50825091    test ax, ax                               ; 85 c0
    5083     je near 037afh                            ; 0f 84 1a fd
     5092    je near 037cdh                            ; 0f 84 1a fd
    50845093    test bl, bl                               ; 84 db
    50855094    db  00fh, 095h, 0c0h
     
    50935102    and bl, 00fh                              ; 80 e3 0f
    50945103    cmp dl, 002h                              ; 80 fa 02
    5095     jc short 03ac3h                           ; 72 0f
    5096     jbe short 03ad0h                          ; 76 1a
     5104    jc short 03ae1h                           ; 72 0f
     5105    jbe short 03aeeh                          ; 76 1a
    50975106    cmp dl, 004h                              ; 80 fa 04
    5098     je short 03acbh                           ; 74 10
     5107    je short 03ae9h                           ; 74 10
    50995108    cmp dl, 003h                              ; 80 fa 03
    5100     je short 03ad5h                           ; 74 15
    5101     jmp near 0334bh                           ; e9 88 f8
     5109    je short 03af3h                           ; 74 15
     5110    jmp near 03369h                           ; e9 88 f8
    51025111    cmp dl, 001h                              ; 80 fa 01
    5103     je short 03acbh                           ; 74 03
    5104     jmp near 0334bh                           ; e9 80 f8
     5112    je short 03ae9h                           ; 74 03
     5113    jmp near 03369h                           ; e9 80 f8
    51055114    or bl, 090h                               ; 80 cb 90
    5106     jmp short 03ad8h                          ; eb 08
     5115    jmp short 03af6h                          ; eb 08
    51075116    or bl, 070h                               ; 80 cb 70
    5108     jmp short 03ad8h                          ; eb 03
     5117    jmp short 03af6h                          ; eb 03
    51095118    or bl, 010h                               ; 80 cb 10
    51105119    mov ax, strict word 00040h                ; b8 40 00
     
    51165125    mov bx, strict word 00041h                ; bb 41 00
    51175126    mov byte [es:bx], al                      ; 26 88 07
    5118     jmp near 03612h                           ; e9 21 fb
     5127    jmp near 03630h                           ; e9 21 fb
    51195128    mov bl, ah                                ; 88 e3
    51205129    mov dl, byte [bp+014h]                    ; 8a 56 14
     
    51305139    mov byte [bp-002h], dl                    ; 88 56 fe
    51315140    cmp ah, 001h                              ; 80 fc 01
    5132     jnbe near 03a50h                          ; 0f 87 37 ff
     5141    jnbe near 03a6eh                          ; 0f 87 37 ff
    51335142    movzx ax, bl                              ; 0f b6 c3
    5134     call 032bch                               ; e8 9d f7
     5143    call 032dah                               ; e8 9d f7
    51355144    test ax, ax                               ; 85 c0
    5136     je near 037afh                            ; 0f 84 8a fc
     5145    je near 037cdh                            ; 0f 84 8a fc
    51375146    movzx cx, bl                              ; 0f b6 cb
    51385147    mov ax, cx                                ; 89 c8
    5139     call 03100h                               ; e8 d3 f5
     5148    call 0311eh                               ; e8 d3 f5
    51405149    test ax, ax                               ; 85 c0
    5141     jne short 03b58h                          ; 75 27
     5150    jne short 03b76h                          ; 75 27
    51425151    mov ax, cx                                ; 89 c8
    5143     call 031d8h                               ; e8 a2 f6
     5152    call 031f6h                               ; e8 a2 f6
    51445153    test ax, ax                               ; 85 c0
    5145     jne short 03b58h                          ; 75 1e
     5154    jne short 03b76h                          ; 75 1e
    51465155    mov ax, word [bp+016h]                    ; 8b 46 16
    51475156    xor ah, ah                                ; 30 e4
     
    51535162    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
    51545163    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5155     jmp near 033bch                           ; e9 64 f8
     5164    jmp near 033dah                           ; e9 64 f8
    51565165    mov ax, strict word 00010h                ; b8 10 00
    5157     call 017a5h                               ; e8 47 dc
     5166    call 017a5h                               ; e8 29 dc
    51585167    test bl, bl                               ; 84 db
    5159     jne short 03b69h                          ; 75 07
     5168    jne short 03b87h                          ; 75 07
    51605169    mov dl, al                                ; 88 c2
    51615170    shr dl, 004h                              ; c0 ea 04
    5162     jmp short 03b6eh                          ; eb 05
     5171    jmp short 03b8ch                          ; eb 05
    51635172    mov dl, al                                ; 88 c2
    51645173    and dl, 00fh                              ; 80 e2 0f
     
    51745183    and bl, 00fh                              ; 80 e3 0f
    51755184    cmp dl, 003h                              ; 80 fa 03
    5176     jc short 03baah                           ; 72 1d
     5185    jc short 03bc8h                           ; 72 1d
    51775186    mov al, bl                                ; 88 d8
    51785187    or AL, strict byte 090h                   ; 0c 90
    51795188    cmp dl, 003h                              ; 80 fa 03
    5180     jbe short 03bebh                          ; 76 55
     5189    jbe short 03c09h                          ; 76 55
    51815190    mov ah, bl                                ; 88 dc
    51825191    or ah, 010h                               ; 80 cc 10
    51835192    cmp dl, 005h                              ; 80 fa 05
    5184     je near 03c10h                            ; 0f 84 6e 00
     5193    je near 03c2eh                            ; 0f 84 6e 00
    51855194    cmp dl, 004h                              ; 80 fa 04
    5186     je short 03bfah                           ; 74 53
    5187     jmp near 03c2ch                           ; e9 82 00
     5195    je short 03c18h                           ; 74 53
     5196    jmp near 03c4ah                           ; e9 82 00
    51885197    cmp dl, 002h                              ; 80 fa 02
    5189     je short 03bcbh                           ; 74 1c
     5198    je short 03be9h                           ; 74 1c
    51905199    cmp dl, 001h                              ; 80 fa 01
    5191     jne near 03c2ch                           ; 0f 85 76 00
     5200    jne near 03c4ah                           ; 0f 85 76 00
    51925201    cmp byte [bp-002h], 027h                  ; 80 7e fe 27
    5193     jne near 03c2ch                           ; 0f 85 6e 00
     5202    jne near 03c4ah                           ; 0f 85 6e 00
    51945203    cmp bh, 009h                              ; 80 ff 09
    5195     jne near 03c2ch                           ; 0f 85 67 00
     5204    jne near 03c4ah                           ; 0f 85 67 00
    51965205    or bl, 090h                               ; 80 cb 90
    5197     jmp near 03c2ch                           ; e9 61 00
     5206    jmp near 03c4ah                           ; e9 61 00
    51985207    cmp byte [bp-002h], 027h                  ; 80 7e fe 27
    5199     jne short 03bdbh                          ; 75 0a
     5208    jne short 03bf9h                          ; 75 0a
    52005209    cmp bh, 009h                              ; 80 ff 09
    5201     jne short 03bdbh                          ; 75 05
     5210    jne short 03bf9h                          ; 75 05
    52025211    or bl, 070h                               ; 80 cb 70
    5203     jmp short 03c2ch                          ; eb 51
     5212    jmp short 03c4ah                          ; eb 51
    52045213    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
    5205     jne short 03c2ch                          ; 75 4b
     5214    jne short 03c4ah                          ; 75 4b
    52065215    cmp bh, 00fh                              ; 80 ff 0f
    5207     jne short 03c2ch                          ; 75 46
     5216    jne short 03c4ah                          ; 75 46
    52085217    or bl, 010h                               ; 80 cb 10
    5209     jmp short 03c2ch                          ; eb 41
     5218    jmp short 03c4ah                          ; eb 41
    52105219    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
    5211     jne short 03c2ch                          ; 75 3b
     5220    jne short 03c4ah                          ; 75 3b
    52125221    cmp bh, 009h                              ; 80 ff 09
    5213     jne short 03c2ch                          ; 75 36
     5222    jne short 03c4ah                          ; 75 36
    52145223    mov bl, al                                ; 88 c3
    5215     jmp short 03c2ch                          ; eb 32
     5224    jmp short 03c4ah                          ; eb 32
    52165225    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
    5217     jne short 03c2ch                          ; 75 2c
     5226    jne short 03c4ah                          ; 75 2c
    52185227    cmp bh, 009h                              ; 80 ff 09
    5219     jne short 03c07h                          ; 75 02
    5220     jmp short 03bf6h                          ; eb ef
     5228    jne short 03c25h                          ; 75 02
     5229    jmp short 03c14h                          ; eb ef
    52215230    cmp bh, 012h                              ; 80 ff 12
    5222     jne short 03c2ch                          ; 75 20
     5231    jne short 03c4ah                          ; 75 20
    52235232    mov bl, ah                                ; 88 e3
    5224     jmp short 03c2ch                          ; eb 1c
     5233    jmp short 03c4ah                          ; eb 1c
    52255234    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
    5226     jne short 03c2ch                          ; 75 16
     5235    jne short 03c4ah                          ; 75 16
    52275236    cmp bh, 009h                              ; 80 ff 09
    5228     jne short 03c1dh                          ; 75 02
    5229     jmp short 03bf6h                          ; eb d9
     5237    jne short 03c3bh                          ; 75 02
     5238    jmp short 03c14h                          ; eb d9
    52305239    cmp bh, 012h                              ; 80 ff 12
    5231     jne short 03c24h                          ; 75 02
    5232     jmp short 03c0ch                          ; eb e8
     5240    jne short 03c42h                          ; 75 02
     5241    jmp short 03c2ah                          ; eb e8
    52335242    cmp bh, 024h                              ; 80 ff 24
    5234     jne short 03c2ch                          ; 75 03
     5243    jne short 03c4ah                          ; 75 03
    52355244    or bl, 0d0h                               ; 80 cb d0
    52365245    movzx ax, bl                              ; 0f b6 c3
    52375246    sar ax, 004h                              ; c1 f8 04
    52385247    test AL, strict byte 001h                 ; a8 01
    5239     je near 03b3ah                            ; 0f 84 02 ff
     5248    je near 03b58h                            ; 0f 84 02 ff
    52405249    mov ax, strict word 00040h                ; b8 40 00
    52415250    mov es, ax                                ; 8e c0
     
    52445253    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    52455254    movzx ax, dl                              ; 0f b6 c2
    5246     call 03c87h                               ; e8 39 00
     5255    call 03ca5h                               ; e8 39 00
    52475256    mov word [bp+008h], ax                    ; 89 46 08
    52485257    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    52515260    mov es, ax                                ; 8e c0
    52525261    mov byte [es:bx], 000h                    ; 26 c6 07 00
    5253     jmp near 03612h                           ; e9 ae f9
    5254     mov bx, 00db6h                            ; bb b6 0d
     5262    jmp near 03630h                           ; e9 ae f9
     5263    mov bx, 00db2h                            ; bb b2 0d
    52555264    mov cx, ds                                ; 8c d9
    52565265    mov ax, strict word 00004h                ; b8 04 00
    5257     call 01a2ah                               ; e8 bb dd
     5266    call 01a2ah                               ; e8 9d dd
    52585267    mov ax, word [bp+016h]                    ; 8b 46 16
    52595268    shr ax, 008h                              ; c1 e8 08
     
    52625271    push 002f4h                               ; 68 f4 02
    52635272    push strict byte 00004h                   ; 6a 04
    5264     call 01a6bh                               ; e8 ea dd
     5273    call 01a6bh                               ; e8 cc dd
    52655274    add sp, strict byte 00008h                ; 83 c4 08
    5266     jmp near 0334bh                           ; e9 c4 f6
    5267 get_floppy_dpt_:                             ; 0xf3c87 LB 0x2f
     5275    jmp near 03369h                           ; e9 c4 f6
     5276get_floppy_dpt_:                             ; 0xf3ca5 LB 0x2f
    52685277    push bx                                   ; 53
    52695278    push dx                                   ; 52
     
    52725281    mov dl, al                                ; 88 c2
    52735282    xor ax, ax                                ; 31 c0
    5274     jmp short 03c98h                          ; eb 06
     5283    jmp short 03cb6h                          ; eb 06
    52755284    inc ax                                    ; 40
    52765285    cmp ax, strict word 00007h                ; 3d 07 00
    5277     jnc short 03cafh                          ; 73 17
     5286    jnc short 03ccdh                          ; 73 17
    52785287    mov bx, ax                                ; 89 c3
    52795288    add bx, ax                                ; 01 c3
    52805289    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5281     jne short 03c92h                          ; 75 f0
     5290    jne short 03cb0h                          ; 75 f0
    52825291    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
    52835292    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    52845293    add ax, strict word 00000h                ; 05 00 00
    5285     jmp short 03cb2h                          ; eb 03
     5294    jmp short 03cd0h                          ; eb 03
    52865295    mov ax, strict word 00041h                ; b8 41 00
    52875296    pop bp                                    ; 5d
     
    52895298    pop bx                                    ; 5b
    52905299    retn                                      ; c3
    5291 dummy_soft_reset_:                           ; 0xf3cb6 LB 0x7
     5300dummy_soft_reset_:                           ; 0xf3cd4 LB 0x7
    52925301    push bp                                   ; 55
    52935302    mov bp, sp                                ; 89 e5
     
    52955304    pop bp                                    ; 5d
    52965305    retn                                      ; c3
    5297 _cdemu_init:                                 ; 0xf3cbd LB 0x18
     5306_cdemu_init:                                 ; 0xf3cdb LB 0x18
    52985307    push bp                                   ; 55
    52995308    mov bp, sp                                ; 89 e5
    53005309    mov dx, strict word 0000eh                ; ba 0e 00
    53015310    mov ax, strict word 00040h                ; b8 40 00
    5302     call 01765h                               ; e8 9c da
     5311    call 01765h                               ; e8 7e da
    53035312    xor bx, bx                                ; 31 db
    53045313    mov dx, 00366h                            ; ba 66 03
    5305     call 01757h                               ; e8 86 da
     5314    call 01757h                               ; e8 68 da
    53065315    mov sp, bp                                ; 89 ec
    53075316    pop bp                                    ; 5d
    53085317    retn                                      ; c3
    5309 _cdemu_isactive:                             ; 0xf3cd5 LB 0x16
     5318_cdemu_isactive:                             ; 0xf3cf3 LB 0x16
    53105319    push bp                                   ; 55
    53115320    mov bp, sp                                ; 89 e5
    53125321    mov dx, strict word 0000eh                ; ba 0e 00
    53135322    mov ax, strict word 00040h                ; b8 40 00
    5314     call 01765h                               ; e8 84 da
     5323    call 01765h                               ; e8 66 da
    53155324    mov dx, 00366h                            ; ba 66 03
    5316     call 01749h                               ; e8 62 da
     5325    call 01749h                               ; e8 44 da
    53175326    mov sp, bp                                ; 89 ec
    53185327    pop bp                                    ; 5d
    53195328    retn                                      ; c3
    5320 _cdemu_emulated_drive:                       ; 0xf3ceb LB 0x16
     5329_cdemu_emulated_drive:                       ; 0xf3d09 LB 0x16
    53215330    push bp                                   ; 55
    53225331    mov bp, sp                                ; 89 e5
    53235332    mov dx, strict word 0000eh                ; ba 0e 00
    53245333    mov ax, strict word 00040h                ; b8 40 00
    5325     call 01765h                               ; e8 6e da
     5334    call 01765h                               ; e8 50 da
    53265335    mov dx, 00368h                            ; ba 68 03
    5327     call 01749h                               ; e8 4c da
     5336    call 01749h                               ; e8 2e da
    53285337    mov sp, bp                                ; 89 ec
    53295338    pop bp                                    ; 5d
    53305339    retn                                      ; c3
    5331 _int13_eltorito:                             ; 0xf3d01 LB 0x189
     5340_int13_eltorito:                             ; 0xf3d1f LB 0x189
    53325341    push bp                                   ; 55
    53335342    mov bp, sp                                ; 89 e5
     
    53365345    mov dx, strict word 0000eh                ; ba 0e 00
    53375346    mov ax, strict word 00040h                ; b8 40 00
    5338     call 01765h                               ; e8 56 da
     5347    call 01765h                               ; e8 38 da
    53395348    mov si, 00366h                            ; be 66 03
    53405349    mov di, ax                                ; 89 c7
     
    53425351    shr ax, 008h                              ; c1 e8 08
    53435352    cmp ax, strict word 0004bh                ; 3d 4b 00
    5344     jc short 03d29h                           ; 72 0a
    5345     jbe short 03d4fh                          ; 76 2e
     5353    jc short 03d47h                           ; 72 0a
     5354    jbe short 03d6dh                          ; 76 2e
    53465355    cmp ax, strict word 0004dh                ; 3d 4d 00
    5347     jbe short 03d30h                          ; 76 0a
    5348     jmp near 03e4eh                           ; e9 25 01
     5356    jbe short 03d4eh                          ; 76 0a
     5357    jmp near 03e6ch                           ; e9 25 01
    53495358    cmp ax, strict word 0004ah                ; 3d 4a 00
    5350     jne near 03e4eh                           ; 0f 85 1e 01
    5351     mov bx, 00db6h                            ; bb b6 0d
     5359    jne near 03e6ch                           ; 0f 85 1e 01
     5360    mov bx, 00db2h                            ; bb b2 0d
    53525361    mov cx, ds                                ; 8c d9
    53535362    mov ax, strict word 00004h                ; b8 04 00
    5354     call 01a2ah                               ; e8 ef dc
     5363    call 01a2ah                               ; e8 d1 dc
    53555364    push word [bp+016h]                       ; ff 76 16
    53565365    push 0030eh                               ; 68 0e 03
    53575366    push 0031dh                               ; 68 1d 03
    53585367    push strict byte 00004h                   ; 6a 04
    5359     call 01a6bh                               ; e8 22 dd
     5368    call 01a6bh                               ; e8 04 dd
    53605369    add sp, strict byte 00008h                ; 83 c4 08
    5361     jmp near 03e69h                           ; e9 1a 01
     5370    jmp near 03e87h                           ; e9 1a 01
    53625371    mov dx, word [bp+00ah]                    ; 8b 56 0a
    53635372    mov ax, word [bp+004h]                    ; 8b 46 04
    53645373    mov bx, strict word 00013h                ; bb 13 00
    5365     call 01757h                               ; e8 fc d9
     5374    call 01757h                               ; e8 de d9
    53665375    mov es, di                                ; 8e c7
    53675376    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    53695378    inc dx                                    ; 42
    53705379    mov ax, word [bp+004h]                    ; 8b 46 04
    5371     call 01757h                               ; e8 eb d9
     5380    call 01757h                               ; e8 cd d9
    53725381    mov es, di                                ; 8e c7
    53735382    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    53765385    inc dx                                    ; 42
    53775386    mov ax, word [bp+004h]                    ; 8b 46 04
    5378     call 01757h                               ; e8 d9 d9
     5387    call 01757h                               ; e8 bb d9
    53795388    mov es, di                                ; 8e c7
    53805389    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    53825391    add dx, strict byte 00003h                ; 83 c2 03
    53835392    mov ax, word [bp+004h]                    ; 8b 46 04
    5384     call 01757h                               ; e8 c6 d9
     5393    call 01757h                               ; e8 a8 d9
    53855394    mov es, di                                ; 8e c7
    53865395    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    53895398    add dx, strict byte 00004h                ; 83 c2 04
    53905399    mov ax, word [bp+004h]                    ; 8b 46 04
    5391     call 01793h                               ; e8 ec d9
     5400    call 01793h                               ; e8 ce d9
    53925401    mov es, di                                ; 8e c7
    53935402    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    53955404    add dx, strict byte 00008h                ; 83 c2 08
    53965405    mov ax, word [bp+004h]                    ; 8b 46 04
    5397     call 01773h                               ; e8 ba d9
     5406    call 01773h                               ; e8 9c d9
    53985407    mov es, di                                ; 8e c7
    53995408    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    54015410    add dx, strict byte 0000ah                ; 83 c2 0a
    54025411    mov ax, word [bp+004h]                    ; 8b 46 04
    5403     call 01773h                               ; e8 a8 d9
     5412    call 01773h                               ; e8 8a d9
    54045413    mov es, di                                ; 8e c7
    54055414    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    54075416    add dx, strict byte 0000ch                ; 83 c2 0c
    54085417    mov ax, word [bp+004h]                    ; 8b 46 04
    5409     call 01773h                               ; e8 96 d9
     5418    call 01773h                               ; e8 78 d9
    54105419    mov es, di                                ; 8e c7
    54115420    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    54135422    add dx, strict byte 0000eh                ; 83 c2 0e
    54145423    mov ax, word [bp+004h]                    ; 8b 46 04
    5415     call 01773h                               ; e8 84 d9
     5424    call 01773h                               ; e8 66 d9
    54165425    mov es, di                                ; 8e c7
    54175426    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    54195428    add dx, strict byte 00010h                ; 83 c2 10
    54205429    mov ax, word [bp+004h]                    ; 8b 46 04
    5421     call 01757h                               ; e8 55 d9
     5430    call 01757h                               ; e8 37 d9
    54225431    mov es, di                                ; 8e c7
    54235432    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    54255434    add dx, strict byte 00011h                ; 83 c2 11
    54265435    mov ax, word [bp+004h]                    ; 8b 46 04
    5427     call 01757h                               ; e8 42 d9
     5436    call 01757h                               ; e8 24 d9
    54285437    mov es, di                                ; 8e c7
    54295438    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    54315440    add dx, strict byte 00012h                ; 83 c2 12
    54325441    mov ax, word [bp+004h]                    ; 8b 46 04
    5433     call 01757h                               ; e8 2f d9
     5442    call 01757h                               ; e8 11 d9
    54345443    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5435     jne short 03e34h                          ; 75 06
     5444    jne short 03e52h                          ; 75 06
    54365445    mov es, di                                ; 8e c7
    54375446    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    54405449    mov dx, strict word 00074h                ; ba 74 00
    54415450    mov ax, strict word 00040h                ; b8 40 00
    5442     call 01757h                               ; e8 14 d9
     5451    call 01757h                               ; e8 f6 d8
    54435452    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    54445453    lea sp, [bp-004h]                         ; 8d 66 fc
     
    54475456    pop bp                                    ; 5d
    54485457    retn                                      ; c3
    5449     mov bx, 00db6h                            ; bb b6 0d
     5458    mov bx, 00db2h                            ; bb b2 0d
    54505459    mov cx, ds                                ; 8c d9
    54515460    mov ax, strict word 00004h                ; b8 04 00
    5452     call 01a2ah                               ; e8 d1 db
     5461    call 01a2ah                               ; e8 b3 db
    54535462    mov ax, word [bp+016h]                    ; 8b 46 16
    54545463    shr ax, 008h                              ; c1 e8 08
     
    54565465    push 0030eh                               ; 68 0e 03
    54575466    push 00345h                               ; 68 45 03
    5458     jmp near 03d44h                           ; e9 db fe
     5467    jmp near 03d62h                           ; e9 db fe
    54595468    mov ax, word [bp+016h]                    ; 8b 46 16
    54605469    xor ah, ah                                ; 30 e4
     
    54665475    mov dx, strict word 00074h                ; ba 74 00
    54675476    mov ax, strict word 00040h                ; b8 40 00
    5468     call 01757h                               ; e8 d3 d8
     5477    call 01757h                               ; e8 b5 d8
    54695478    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5470     jmp short 03e47h                          ; eb bd
    5471 device_is_cdrom_:                            ; 0xf3e8a LB 0x35
     5479    jmp short 03e65h                          ; eb bd
     5480device_is_cdrom_:                            ; 0xf3ea8 LB 0x35
    54725481    push bp                                   ; 55
    54735482    mov bp, sp                                ; 89 e5
     
    54775486    mov dx, strict word 0000eh                ; ba 0e 00
    54785487    mov ax, strict word 00040h                ; b8 40 00
    5479     call 01765h                               ; e8 cb d8
     5488    call 01765h                               ; e8 ad d8
    54805489    cmp bl, 010h                              ; 80 fb 10
    5481     jc short 03ea3h                           ; 72 04
     5490    jc short 03ec1h                           ; 72 04
    54825491    xor ax, ax                                ; 31 c0
    5483     jmp short 03eb8h                          ; eb 15
     5492    jmp short 03ed6h                          ; eb 15
    54845493    xor bh, bh                                ; 30 ff
    54855494    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    54875496    add bx, 00122h                            ; 81 c3 22 01
    54885497    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5489     jne short 03e9fh                          ; 75 ea
     5498    jne short 03ebdh                          ; 75 ea
    54905499    mov ax, strict word 00001h                ; b8 01 00
    54915500    lea sp, [bp-004h]                         ; 8d 66 fc
     
    54945503    pop bp                                    ; 5d
    54955504    retn                                      ; c3
    5496 cdrom_boot_:                                 ; 0xf3ebf LB 0x417
     5505cdrom_boot_:                                 ; 0xf3edd LB 0x417
    54975506    push bp                                   ; 55
    54985507    mov bp, sp                                ; 89 e5
     
    55055514    mov dx, strict word 0000eh                ; ba 0e 00
    55065515    mov ax, strict word 00040h                ; b8 40 00
    5507     call 01765h                               ; e8 91 d8
     5516    call 01765h                               ; e8 73 d8
    55085517    mov word [bp-018h], ax                    ; 89 46 e8
    55095518    mov si, 00366h                            ; be 66 03
     
    55125521    mov word [bp-012h], ax                    ; 89 46 ee
    55135522    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5514     jmp short 03ef4h                          ; eb 09
     5523    jmp short 03f12h                          ; eb 09
    55155524    inc byte [bp-00ch]                        ; fe 46 f4
    55165525    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5517     jnc short 03effh                          ; 73 0b
     5526    jnc short 03f1dh                          ; 73 0b
    55185527    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    5519     call 03e8ah                               ; e8 8f ff
     5528    call 03ea8h                               ; e8 8f ff
    55205529    test ax, ax                               ; 85 c0
    5521     je short 03eebh                           ; 74 ec
     5530    je short 03f09h                           ; 74 ec
    55225531    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5523     jc short 03f0bh                           ; 72 06
     5532    jc short 03f29h                           ; 72 06
    55245533    mov ax, strict word 00002h                ; b8 02 00
    5525     jmp near 04273h                           ; e9 68 03
     5534    jmp near 04291h                           ; e9 68 03
    55265535    mov cx, strict word 0000ch                ; b9 0c 00
    55275536    xor bx, bx                                ; 31 db
    55285537    mov dx, ss                                ; 8c d2
    55295538    lea ax, [bp-026h]                         ; 8d 46 da
    5530     call 0a110h                               ; e8 f8 61
     5539    call 0a130h                               ; e8 fa 61
    55315540    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    55325541    mov ax, strict word 00011h                ; b8 11 00
     
    55445553    ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
    55455554    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5546     jmp short 03f50h                          ; eb 09
     5555    jmp short 03f6eh                          ; eb 09
    55475556    inc byte [bp-00eh]                        ; fe 46 f2
    55485557    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5549     jnbe short 03f86h                         ; 77 36
     5558    jnbe short 03fa4h                         ; 77 36
    55505559    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    55515560    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    55675576    call word [word di+0006ah]                ; ff 95 6a 00
    55685577    test ax, ax                               ; 85 c0
    5569     jne short 03f47h                          ; 75 c1
     5578    jne short 03f65h                          ; 75 c1
    55705579    test ax, ax                               ; 85 c0
    5571     je short 03f90h                           ; 74 06
     5580    je short 03faeh                           ; 74 06
    55725581    mov ax, strict word 00003h                ; b8 03 00
    5573     jmp near 04273h                           ; e9 e3 02
     5582    jmp near 04291h                           ; e9 e3 02
    55745583    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5575     je short 03f9dh                           ; 74 06
     5584    je short 03fbbh                           ; 74 06
    55765585    mov ax, strict word 00004h                ; b8 04 00
    5577     jmp near 04273h                           ; e9 d6 02
     5586    jmp near 04291h                           ; e9 d6 02
    55785587    xor di, di                                ; 31 ff
    5579     jmp short 03fa7h                          ; eb 06
     5588    jmp short 03fc5h                          ; eb 06
    55805589    inc di                                    ; 47
    55815590    cmp di, strict byte 00005h                ; 83 ff 05
    5582     jnc short 03fb7h                          ; 73 10
     5591    jnc short 03fd5h                          ; 73 10
    55835592    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5584     cmp al, byte [di+00dbeh]                  ; 3a 85 be 0d
    5585     je short 03fa1h                           ; 74 f0
     5593    cmp al, byte [di+00dbah]                  ; 3a 85 ba 0d
     5594    je short 03fbfh                           ; 74 f0
    55865595    mov ax, strict word 00005h                ; b8 05 00
    5587     jmp near 04273h                           ; e9 bc 02
     5596    jmp near 04291h                           ; e9 bc 02
    55885597    xor di, di                                ; 31 ff
    5589     jmp short 03fc1h                          ; eb 06
     5598    jmp short 03fdfh                          ; eb 06
    55905599    inc di                                    ; 47
    55915600    cmp di, strict byte 00017h                ; 83 ff 17
    5592     jnc short 03fd1h                          ; 73 10
     5601    jnc short 03fefh                          ; 73 10
    55935602    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5594     cmp al, byte [di+00dc4h]                  ; 3a 85 c4 0d
    5595     je short 03fbbh                           ; 74 f0
     5603    cmp al, byte [di+00dc0h]                  ; 3a 85 c0 0d
     5604    je short 03fd9h                           ; 74 f0
    55965605    mov ax, strict word 00006h                ; b8 06 00
    5597     jmp near 04273h                           ; e9 a2 02
     5606    jmp near 04291h                           ; e9 a2 02
    55985607    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    55995608    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    56265635    call word [word di+0006ah]                ; ff 95 6a 00
    56275636    test ax, ax                               ; 85 c0
    5628     je short 0402dh                           ; 74 06
     5637    je short 0404bh                           ; 74 06
    56295638    mov ax, strict word 00007h                ; b8 07 00
    5630     jmp near 04273h                           ; e9 46 02
     5639    jmp near 04291h                           ; e9 46 02
    56315640    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5632     je short 0403ah                           ; 74 06
     5641    je short 04058h                           ; 74 06
    56335642    mov ax, strict word 00008h                ; b8 08 00
    5634     jmp near 04273h                           ; e9 39 02
     5643    jmp near 04291h                           ; e9 39 02
    56355644    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5636     je short 04047h                           ; 74 06
     5645    je short 04065h                           ; 74 06
    56375646    mov ax, strict word 00009h                ; b8 09 00
    5638     jmp near 04273h                           ; e9 2c 02
     5647    jmp near 04291h                           ; e9 2c 02
    56395648    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5640     je short 04054h                           ; 74 06
     5649    je short 04072h                           ; 74 06
    56415650    mov ax, strict word 0000ah                ; b8 0a 00
    5642     jmp near 04273h                           ; e9 1f 02
     5651    jmp near 04291h                           ; e9 1f 02
    56435652    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5644     jne short 0404eh                          ; 75 f3
     5653    jne short 0406ch                          ; 75 f3
    56455654    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5646     je short 04068h                           ; 74 06
     5655    je short 04086h                           ; 74 06
    56475656    mov ax, strict word 0000bh                ; b8 0b 00
    5648     jmp near 04273h                           ; e9 0b 02
     5657    jmp near 04291h                           ; e9 0b 02
    56495658    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    56505659    mov es, [bp-010h]                         ; 8e 46 f0
    56515660    mov byte [es:si+001h], al                 ; 26 88 44 01
    56525661    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5653     jne short 04081h                          ; 75 07
     5662    jne short 0409fh                          ; 75 07
    56545663    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5655     jmp short 04094h                          ; eb 13
     5664    jmp short 040b2h                          ; eb 13
    56565665    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5657     jnc short 0408fh                          ; 73 07
     5666    jnc short 040adh                          ; 73 07
    56585667    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5659     jmp short 04094h                          ; eb 05
     5668    jmp short 040b2h                          ; eb 05
    56605669    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    56615670    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    56755684    mov word [bp-016h], ax                    ; 89 46 ea
    56765685    test ax, ax                               ; 85 c0
    5677     jne short 040c2h                          ; 75 05
     5686    jne short 040e0h                          ; 75 05
    56785687    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    56795688    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    56845693    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    56855694    test di, di                               ; 85 ff
    5686     je short 040e4h                           ; 74 06
     5695    je short 04102h                           ; 74 06
    56875696    cmp di, 00400h                            ; 81 ff 00 04
    5688     jbe short 040eah                          ; 76 06
     5697    jbe short 04108h                          ; 76 06
    56895698    mov ax, strict word 0000ch                ; b8 0c 00
    5690     jmp near 04273h                           ; e9 89 01
     5699    jmp near 04291h                           ; e9 89 01
    56915700    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    56925701    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    57285737    sal ax, 1                                 ; d1 e0
    57295738    rcl di, 1                                 ; d1 d7
    5730     loop 04158h                               ; e2 fa
     5739    loop 04176h                               ; e2 fa
    57315740    push di                                   ; 57
    57325741    push ax                                   ; 50
     
    57415750    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    57425751    test ax, ax                               ; 85 c0
    5743     je short 04188h                           ; 74 06
     5752    je short 041a6h                           ; 74 06
    57445753    mov ax, strict word 0000dh                ; b8 0d 00
    5745     jmp near 04273h                           ; e9 eb 00
     5754    jmp near 04291h                           ; e9 eb 00
    57465755    mov es, [bp-010h]                         ; 8e 46 f0
    57475756    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    57485757    cmp AL, strict byte 002h                  ; 3c 02
    5749     jc short 041a0h                           ; 72 0d
    5750     jbe short 041b8h                          ; 76 23
     5758    jc short 041beh                           ; 72 0d
     5759    jbe short 041d6h                          ; 76 23
    57515760    cmp AL, strict byte 004h                  ; 3c 04
    5752     je short 041ceh                           ; 74 35
     5761    je short 041ech                           ; 74 35
    57535762    cmp AL, strict byte 003h                  ; 3c 03
    5754     je short 041c3h                           ; 74 26
    5755     jmp near 0421ch                           ; e9 7c 00
     5763    je short 041e1h                           ; 74 26
     5764    jmp near 0423ah                           ; e9 7c 00
    57565765    cmp AL, strict byte 001h                  ; 3c 01
    5757     jne short 0421ch                          ; 75 78
     5766    jne short 0423ah                          ; 75 78
    57585767    mov es, [bp-010h]                         ; 8e 46 f0
    57595768    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    57605769    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    57615770    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5762     jmp short 0421ch                          ; eb 64
     5771    jmp short 0423ah                          ; eb 64
    57635772    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    57645773    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    5765     jmp short 041b0h                          ; eb ed
     5774    jmp short 041ceh                          ; eb ed
    57665775    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    57675776    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    5768     jmp short 041b0h                          ; eb e2
     5777    jmp short 041ceh                          ; eb e2
    57695778    mov dx, 001c4h                            ; ba c4 01
    57705779    mov ax, word [bp-016h]                    ; 8b 46 ea
    5771     call 01749h                               ; e8 72 d5
     5780    call 01749h                               ; e8 54 d5
    57725781    and AL, strict byte 03fh                  ; 24 3f
    57735782    xor ah, ah                                ; 30 e4
     
    57765785    mov dx, 001c4h                            ; ba c4 01
    57775786    mov ax, word [bp-016h]                    ; 8b 46 ea
    5778     call 01749h                               ; e8 5e d5
     5787    call 01749h                               ; e8 40 d5
    57795788    movzx bx, al                              ; 0f b6 d8
    57805789    and bl, 0c0h                              ; 80 e3 c0
     
    57825791    mov dx, 001c5h                            ; ba c5 01
    57835792    mov ax, word [bp-016h]                    ; 8b 46 ea
    5784     call 01749h                               ; e8 4c d5
     5793    call 01749h                               ; e8 2e d5
    57855794    xor ah, ah                                ; 30 e4
    57865795    add ax, bx                                ; 01 d8
     
    57905799    mov dx, 001c3h                            ; ba c3 01
    57915800    mov ax, word [bp-016h]                    ; 8b 46 ea
    5792     call 01749h                               ; e8 37 d5
     5801    call 01749h                               ; e8 19 d5
    57935802    xor ah, ah                                ; 30 e4
    57945803    inc ax                                    ; 40
     
    57975806    mov es, [bp-010h]                         ; 8e 46 f0
    57985807    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5799     je short 0425ah                           ; 74 34
     5808    je short 04278h                           ; 74 34
    58005809    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5801     jne short 04243h                          ; 75 16
     5810    jne short 04261h                          ; 75 16
    58025811    mov dx, strict word 00010h                ; ba 10 00
    58035812    mov ax, strict word 00040h                ; b8 40 00
    5804     call 01749h                               ; e8 13 d5
     5813    call 01749h                               ; e8 f5 d4
    58055814    or AL, strict byte 041h                   ; 0c 41
    58065815    movzx bx, al                              ; 0f b6 d8
    58075816    mov dx, strict word 00010h                ; ba 10 00
    58085817    mov ax, strict word 00040h                ; b8 40 00
    5809     jmp short 04257h                          ; eb 14
     5818    jmp short 04275h                          ; eb 14
    58105819    mov dx, 00304h                            ; ba 04 03
    58115820    mov ax, word [bp-018h]                    ; 8b 46 e8
    5812     call 01749h                               ; e8 fd d4
     5821    call 01749h                               ; e8 df d4
    58135822    db  0feh, 0c0h
    58145823    ; inc al                                    ; fe c0
     
    58165825    mov dx, 00304h                            ; ba 04 03
    58175826    mov ax, word [bp-018h]                    ; 8b 46 e8
    5818     call 01757h                               ; e8 fd d4
     5827    call 01757h                               ; e8 df d4
    58195828    mov es, [bp-010h]                         ; 8e 46 f0
    58205829    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5821     je short 04268h                           ; 74 04
     5830    je short 04286h                           ; 74 04
    58225831    mov byte [es:si], 001h                    ; 26 c6 04 01
    58235832    mov es, [bp-010h]                         ; 8e 46 f0
     
    58335842    retn                                      ; c3
    58345843    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5835     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06eh, 046h, 07ch
    5836     db  043h, 0c6h, 043h, 0eeh, 043h, 0bbh, 043h, 0eeh, 043h, 0bbh, 043h, 0c4h, 045h, 0a1h, 043h, 06eh
    5837     db  046h, 06eh, 046h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 065h, 046h, 0a1h
    5838     db  043h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh
    5839     db  046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h
    5840 _int13_cdemu:                                ; 0xf42d6 LB 0x434
     5844    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 08ch, 046h, 09ah
     5845    db  043h, 0e4h, 043h, 00ch, 044h, 0d9h, 043h, 00ch, 044h, 0d9h, 043h, 0e2h, 045h, 0bfh, 043h, 08ch
     5846    db  046h, 08ch, 046h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 083h, 046h, 0bfh
     5847    db  043h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch
     5848    db  046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h
     5849_int13_cdemu:                                ; 0xf42f4 LB 0x434
    58415850    push bp                                   ; 55
    58425851    mov bp, sp                                ; 89 e5
     
    58465855    mov dx, strict word 0000eh                ; ba 0e 00
    58475856    mov ax, strict word 00040h                ; b8 40 00
    5848     call 01765h                               ; e8 7e d4
     5857    call 01765h                               ; e8 60 d4
    58495858    mov di, 00366h                            ; bf 66 03
    58505859    mov cx, ax                                ; 89 c1
     
    58625871    mov dx, strict word 00074h                ; ba 74 00
    58635872    mov ax, strict word 00040h                ; b8 40 00
    5864     call 01757h                               ; e8 41 d4
     5873    call 01757h                               ; e8 23 d4
    58655874    mov es, cx                                ; 8e c1
    58665875    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5867     je short 0432ch                           ; 74 0e
     5876    je short 0434ah                           ; 74 0e
    58685877    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    58695878    mov ax, word [bp+012h]                    ; 8b 46 12
    58705879    xor ah, ah                                ; 30 e4
    58715880    cmp dx, ax                                ; 39 c2
    5872     je short 04355h                           ; 74 29
    5873     mov bx, 00db6h                            ; bb b6 0d
     5881    je short 04373h                           ; 74 29
     5882    mov bx, 00db2h                            ; bb b2 0d
    58745883    mov cx, ds                                ; 8c d9
    58755884    mov ax, strict word 00004h                ; b8 04 00
    5876     call 01a2ah                               ; e8 f3 d6
     5885    call 01a2ah                               ; e8 d5 d6
    58775886    mov ax, word [bp+012h]                    ; 8b 46 12
    58785887    xor ah, ah                                ; 30 e4
     
    58845893    push 0036ah                               ; 68 6a 03
    58855894    push strict byte 00004h                   ; 6a 04
    5886     call 01a6bh                               ; e8 1c d7
     5895    call 01a6bh                               ; e8 fe d6
    58875896    add sp, strict byte 0000ah                ; 83 c4 0a
    5888     jmp near 0468eh                           ; e9 39 03
     5897    jmp near 046ach                           ; e9 39 03
    58895898    mov ax, word [bp+016h]                    ; 8b 46 16
    58905899    shr ax, 008h                              ; c1 e8 08
    58915900    cmp ax, strict word 00050h                ; 3d 50 00
    5892     jnbe near 0466eh                          ; 0f 87 0c 03
     5901    jnbe near 0468ch                          ; 0f 87 0c 03
    58935902    push CS                                   ; 0e
    58945903    pop ES                                    ; 07
    58955904    mov cx, strict word 0001eh                ; b9 1e 00
    5896     mov di, 0427dh                            ; bf 7d 42
     5905    mov di, 0429bh                            ; bf 9b 42
    58975906    repne scasb                               ; f2 ae
    58985907    sal cx, 1                                 ; d1 e1
    58995908    mov di, cx                                ; 89 cf
    5900     mov ax, word [cs:di+0429ah]               ; 2e 8b 85 9a 42
     5909    mov ax, word [cs:di+042b8h]               ; 2e 8b 85 b8 42
    59015910    mov bx, word [bp+016h]                    ; 8b 5e 16
    59025911    xor bh, bh                                ; 30 ff
     
    59095918    add bx, bx                                ; 01 db
    59105919    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5911     je near 043a1h                            ; 0f 84 08 00
     5920    je near 043bfh                            ; 0f 84 08 00
    59125921    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    59135922    call word [word bx+00076h]                ; ff 97 76 00
     
    59165925    mov dx, strict word 00074h                ; ba 74 00
    59175926    mov ax, strict word 00040h                ; b8 40 00
    5918     call 01757h                               ; e8 a7 d3
     5927    call 01757h                               ; e8 89 d3
    59195928    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    59205929    lea sp, [bp-004h]                         ; 8d 66 fc
     
    59265935    xor ah, ah                                ; 30 e4
    59275936    or ah, 003h                               ; 80 cc 03
    5928     jmp near 04696h                           ; e9 d0 02
     5937    jmp near 046b4h                           ; e9 d0 02
    59295938    mov dx, strict word 00074h                ; ba 74 00
    59305939    mov ax, strict word 00040h                ; b8 40 00
    5931     call 01749h                               ; e8 7a d3
     5940    call 01749h                               ; e8 5c d3
    59325941    mov cl, al                                ; 88 c1
    59335942    movzx ax, cl                              ; 0f b6 c1
     
    59385947    mov dx, strict word 00074h                ; ba 74 00
    59395948    mov ax, strict word 00040h                ; b8 40 00
    5940     call 01757h                               ; e8 70 d3
     5949    call 01757h                               ; e8 52 d3
    59415950    test cl, cl                               ; 84 c9
    5942     je short 043a5h                           ; 74 ba
    5943     jmp near 046aah                           ; e9 bc 02
     5951    je short 043c3h                           ; 74 ba
     5952    jmp near 046c8h                           ; e9 bc 02
    59445953    mov es, [bp-008h]                         ; 8e 46 f8
    59455954    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    59655974    mov word [bp-00ah], cx                    ; 89 4e f6
    59665975    test cx, cx                               ; 85 c9
    5967     jne short 0443bh                          ; 75 03
    5968     jmp near 043a1h                           ; e9 66 ff
     5976    jne short 04459h                          ; 75 03
     5977    jmp near 043bfh                           ; e9 66 ff
    59695978    cmp di, word [bp-010h]                    ; 3b 7e f0
    5970     jc near 0468eh                            ; 0f 82 4c 02
     5979    jc near 046ach                            ; 0f 82 4c 02
    59715980    cmp ax, dx                                ; 39 d0
    5972     jnc near 0468eh                           ; 0f 83 46 02
     5981    jnc near 046ach                           ; 0f 83 46 02
    59735982    cmp si, bx                                ; 39 de
    5974     jnc near 0468eh                           ; 0f 83 40 02
     5983    jnc near 046ach                           ; 0f 83 40 02
    59755984    mov dx, word [bp+016h]                    ; 8b 56 16
    59765985    shr dx, 008h                              ; c1 ea 08
    59775986    cmp dx, strict byte 00004h                ; 83 fa 04
    5978     jne short 0445ch                          ; 75 03
    5979     jmp near 043a1h                           ; e9 45 ff
     5987    jne short 0447ah                          ; 75 03
     5988    jmp near 043bfh                           ; e9 45 ff
    59805989    mov dx, word [bp+010h]                    ; 8b 56 10
    59815990    shr dx, 004h                              ; c1 ea 04
     
    59885997    xor dl, dl                                ; 30 d2
    59895998    xor cx, cx                                ; 31 c9
    5990     call 0a070h                               ; e8 f6 5b
     5999    call 0a090h                               ; e8 f8 5b
    59916000    xor bx, bx                                ; 31 db
    59926001    add ax, si                                ; 01 f0
     
    59946003    mov bx, di                                ; 89 fb
    59956004    xor cx, cx                                ; 31 c9
    5996     call 0a070h                               ; e8 e9 5b
     6005    call 0a090h                               ; e8 eb 5b
    59976006    mov bx, ax                                ; 89 c3
    59986007    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    60296038    mov dx, ss                                ; 8c d2
    60306039    lea ax, [bp-02eh]                         ; 8d 46 d2
    6031     call 0a110h                               ; e8 32 5c
     6040    call 0a130h                               ; e8 34 5c
    60326041    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    60336042    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    60776086    sal si, 1                                 ; d1 e6
    60786087    rcl di, 1                                 ; d1 d7
    6079     loop 0455eh                               ; e2 fa
     6088    loop 0457ch                               ; e2 fa
    60806089    push di                                   ; 57
    60816090    push si                                   ; 56
     
    60926101    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
    60936102    test al, al                               ; 84 c0
    6094     je near 043a1h                            ; 0f 84 13 fe
    6095     mov bx, 00db6h                            ; bb b6 0d
     6103    je near 043bfh                            ; 0f 84 13 fe
     6104    mov bx, 00db2h                            ; bb b2 0d
    60966105    mov cx, ds                                ; 8c d9
    60976106    mov ax, strict word 00004h                ; b8 04 00
    6098     call 01a2ah                               ; e8 91 d4
     6107    call 01a2ah                               ; e8 73 d4
    60996108    movzx ax, dl                              ; 0f b6 c2
    61006109    push ax                                   ; 50
     
    61056114    push 003a0h                               ; 68 a0 03
    61066115    push strict byte 00004h                   ; 6a 04
    6107     call 01a6bh                               ; e8 bc d4
     6116    call 01a6bh                               ; e8 9e d4
    61086117    add sp, strict byte 0000ah                ; 83 c4 0a
    61096118    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61126121    mov word [bp+016h], ax                    ; 89 46 16
    61136122    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6114     jmp near 04699h                           ; e9 d5 00
     6123    jmp near 046b7h                           ; e9 d5 00
    61156124    mov es, [bp-008h]                         ; 8e 46 f8
    61166125    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    61516160    mov word [bp+010h], ax                    ; 89 46 10
    61526161    cmp dl, 003h                              ; 80 fa 03
    6153     je short 04648h                           ; 74 1a
     6162    je short 04666h                           ; 74 1a
    61546163    cmp dl, 002h                              ; 80 fa 02
    6155     je short 04644h                           ; 74 11
     6164    je short 04662h                           ; 74 11
    61566165    cmp dl, 001h                              ; 80 fa 01
    6157     jne short 0464ch                          ; 75 14
     6166    jne short 0466ah                          ; 75 14
    61586167    mov ax, word [bp+010h]                    ; 8b 46 10
    61596168    xor al, al                                ; 30 c0
    61606169    or AL, strict byte 002h                   ; 0c 02
    61616170    mov word [bp+010h], ax                    ; 89 46 10
    6162     jmp short 0464ch                          ; eb 08
     6171    jmp short 0466ah                          ; eb 08
    61636172    or AL, strict byte 004h                   ; 0c 04
    6164     jmp short 0463fh                          ; eb f7
     6173    jmp short 0465dh                          ; eb f7
    61656174    or AL, strict byte 005h                   ; 0c 05
    6166     jmp short 0463fh                          ; eb f3
     6175    jmp short 0465dh                          ; eb f3
    61676176    mov es, [bp-008h]                         ; 8e 46 f8
    61686177    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6169     jnc near 043a1h                           ; 0f 83 49 fd
     6178    jnc near 043bfh                           ; 0f 83 49 fd
    61706179    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    61716180    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6172     jmp near 043a1h                           ; e9 3c fd
     6181    jmp near 043bfh                           ; e9 3c fd
    61736182    or bh, 003h                               ; 80 cf 03
    61746183    mov word [bp+016h], bx                    ; 89 5e 16
    6175     jmp near 043a5h                           ; e9 37 fd
    6176     mov bx, 00db6h                            ; bb b6 0d
     6184    jmp near 043c3h                           ; e9 37 fd
     6185    mov bx, 00db2h                            ; bb b2 0d
    61776186    mov cx, ds                                ; 8c d9
    61786187    mov ax, strict word 00004h                ; b8 04 00
    6179     call 01a2ah                               ; e8 b1 d3
     6188    call 01a2ah                               ; e8 93 d3
    61806189    mov ax, word [bp+016h]                    ; 8b 46 16
    61816190    shr ax, 008h                              ; c1 e8 08
     
    61846193    push 003c1h                               ; 68 c1 03
    61856194    push strict byte 00004h                   ; 6a 04
    6186     call 01a6bh                               ; e8 e0 d3
     6195    call 01a6bh                               ; e8 c2 d3
    61876196    add sp, strict byte 00008h                ; 83 c4 08
    61886197    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61956204    mov dx, strict word 00074h                ; ba 74 00
    61966205    mov ax, strict word 00040h                ; b8 40 00
    6197     call 01757h                               ; e8 ad d0
     6206    call 01757h                               ; e8 8f d0
    61986207    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6199     jmp near 043b4h                           ; e9 03 fd
     6208    jmp near 043d2h                           ; e9 03 fd
    62006209    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6201     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 04fh, 04ch, 0cbh
    6202     db  049h, 0b7h, 047h, 04fh, 04ch, 0ach, 047h, 04fh, 04ch, 0ach, 047h, 04fh, 04ch, 0cbh, 049h, 04fh
    6203     db  04ch, 04fh, 04ch, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0e1h, 047h, 0cbh
    6204     db  049h, 04fh, 04ch, 0eah, 047h, 0fdh, 047h, 0ach, 047h, 0fdh, 047h, 02bh, 049h, 0e5h, 049h, 0fdh
    6205     db  047h, 00ch, 04ah, 008h, 04ch, 010h, 04ch, 04fh, 04ch
    6206 _int13_cdrom:                                ; 0xf470a LB 0x562
     6210    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06dh, 04ch, 0e9h
     6211    db  049h, 0d5h, 047h, 06dh, 04ch, 0cah, 047h, 06dh, 04ch, 0cah, 047h, 06dh, 04ch, 0e9h, 049h, 06dh
     6212    db  04ch, 06dh, 04ch, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0ffh, 047h, 0e9h
     6213    db  049h, 06dh, 04ch, 008h, 048h, 01bh, 048h, 0cah, 047h, 01bh, 048h, 049h, 049h, 003h, 04ah, 01bh
     6214    db  048h, 02ah, 04ah, 026h, 04ch, 02eh, 04ch, 06dh, 04ch
     6215_int13_cdrom:                                ; 0xf4728 LB 0x562
    62076216    push bp                                   ; 55
    62086217    mov bp, sp                                ; 89 e5
     
    62126221    mov dx, strict word 0000eh                ; ba 0e 00
    62136222    mov ax, strict word 00040h                ; b8 40 00
    6214     call 01765h                               ; e8 4a d0
     6223    call 01765h                               ; e8 2c d0
    62156224    mov word [bp-01ah], ax                    ; 89 46 e6
    62166225    mov si, 00122h                            ; be 22 01
     
    62196228    mov dx, strict word 00074h                ; ba 74 00
    62206229    mov ax, strict word 00040h                ; b8 40 00
    6221     call 01757h                               ; e8 28 d0
     6230    call 01757h                               ; e8 0a d0
    62226231    mov ax, word [bp+010h]                    ; 8b 46 10
    62236232    xor ah, ah                                ; 30 e4
    62246233    cmp ax, 000e0h                            ; 3d e0 00
    6225     jc short 0473eh                           ; 72 05
     6234    jc short 0475ch                           ; 72 05
    62266235    cmp ax, 000f0h                            ; 3d f0 00
    6227     jc short 0475ch                           ; 72 1e
     6236    jc short 0477ah                           ; 72 1e
    62286237    mov ax, word [bp+010h]                    ; 8b 46 10
    62296238    xor ah, ah                                ; 30 e4
     
    62356244    push 003fdh                               ; 68 fd 03
    62366245    push strict byte 00004h                   ; 6a 04
    6237     call 01a6bh                               ; e8 15 d3
     6246    call 01a6bh                               ; e8 f7 d2
    62386247    add sp, strict byte 0000ah                ; 83 c4 0a
    6239     jmp near 04c2ch                           ; e9 d0 04
     6248    jmp near 04c4ah                           ; e9 d0 04
    62406249    mov ax, word [bp+010h]                    ; 8b 46 10
    62416250    xor ah, ah                                ; 30 e4
     
    62466255    mov byte [bp-008h], dl                    ; 88 56 f8
    62476256    cmp dl, 010h                              ; 80 fa 10
    6248     jc short 04785h                           ; 72 10
     6257    jc short 047a3h                           ; 72 10
    62496258    push ax                                   ; 50
    62506259    mov ax, word [bp+018h]                    ; 8b 46 18
     
    62536262    push 003f1h                               ; 68 f1 03
    62546263    push 00428h                               ; 68 28 04
    6255     jmp short 04751h                          ; eb cc
     6264    jmp short 0476fh                          ; eb cc
    62566265    mov ax, word [bp+018h]                    ; 8b 46 18
    62576266    shr ax, 008h                              ; c1 e8 08
    62586267    cmp ax, strict word 00050h                ; 3d 50 00
    6259     jnbe near 04c4fh                          ; 0f 87 bd 04
     6268    jnbe near 04c6dh                          ; 0f 87 bd 04
    62606269    push CS                                   ; 0e
    62616270    pop ES                                    ; 07
    62626271    mov cx, strict word 0001eh                ; b9 1e 00
    6263     mov di, 046b1h                            ; bf b1 46
     6272    mov di, 046cfh                            ; bf cf 46
    62646273    repne scasb                               ; f2 ae
    62656274    sal cx, 1                                 ; d1 e1
    62666275    mov di, cx                                ; 89 cf
    6267     mov ax, word [cs:di+046ceh]               ; 2e 8b 85 ce 46
     6276    mov ax, word [cs:di+046ech]               ; 2e 8b 85 ec 46
    62686277    mov bx, word [bp+018h]                    ; 8b 5e 18
    62696278    xor bh, bh                                ; 30 ff
     
    62726281    xor ah, ah                                ; 30 e4
    62736282    or ah, 003h                               ; 80 cc 03
    6274     jmp near 04c34h                           ; e9 7d 04
     6283    jmp near 04c52h                           ; e9 7d 04
    62756284    mov dx, strict word 00074h                ; ba 74 00
    62766285    mov ax, strict word 00040h                ; b8 40 00
    6277     call 01749h                               ; e8 89 cf
     6286    call 01749h                               ; e8 6b cf
    62786287    mov cl, al                                ; 88 c1
    62796288    movzx ax, cl                              ; 0f b6 c1
     
    62846293    mov dx, strict word 00074h                ; ba 74 00
    62856294    mov ax, strict word 00040h                ; b8 40 00
    6286     call 01757h                               ; e8 7f cf
     6295    call 01757h                               ; e8 61 cf
    62876296    test cl, cl                               ; 84 c9
    6288     je near 049cfh                            ; 0f 84 f1 01
    6289     jmp near 04c48h                           ; e9 67 04
     6297    je near 049edh                            ; 0f 84 f1 01
     6298    jmp near 04c66h                           ; e9 67 04
    62906299    or bh, 002h                               ; 80 cf 02
    62916300    mov word [bp+018h], bx                    ; 89 5e 18
    6292     jmp near 04c37h                           ; e9 4d 04
     6301    jmp near 04c55h                           ; e9 4d 04
    62936302    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    62946303    or bh, 030h                               ; 80 cf 30
    62956304    mov word [bp+018h], bx                    ; 89 5e 18
    62966305    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6297     jmp near 049cfh                           ; e9 d2 01
     6306    jmp near 049edh                           ; e9 d2 01
    62986307    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    62996308    mov es, [bp+006h]                         ; 8e 46 06
     
    63106319    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    63116320    or di, ax                                 ; 09 c7
    6312     je short 04845h                           ; 74 18
     6321    je short 04863h                           ; 74 18
    63136322    mov ax, word [bp+018h]                    ; 8b 46 18
    63146323    shr ax, 008h                              ; c1 e8 08
     
    63176326    push 0045ah                               ; 68 5a 04
    63186327    push strict byte 00007h                   ; 6a 07
    6319     call 01a6bh                               ; e8 2c d2
     6328    call 01a6bh                               ; e8 0e d2
    63206329    add sp, strict byte 00008h                ; 83 c4 08
    6321     jmp near 04c2ch                           ; e9 e7 03
     6330    jmp near 04c4ah                           ; e9 e7 03
    63226331    les bx, [bp-014h]                         ; c4 5e ec
    63236332    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    63296338    mov word [bp-016h], ax                    ; 89 46 ea
    63306339    cmp ax, strict word 00044h                ; 3d 44 00
    6331     je near 049cbh                            ; 0f 84 66 01
     6340    je near 049e9h                            ; 0f 84 66 01
    63326341    cmp ax, strict word 00047h                ; 3d 47 00
    6333     je near 049cbh                            ; 0f 84 5f 01
     6342    je near 049e9h                            ; 0f 84 5f 01
    63346343    mov cx, strict word 0000ch                ; b9 0c 00
    63356344    xor bx, bx                                ; 31 db
    63366345    mov dx, ss                                ; 8c d2
    63376346    lea ax, [bp-02ch]                         ; 8d 46 d4
    6338     call 0a110h                               ; e8 97 58
     6347    call 0a130h                               ; e8 99 58
    63396348    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    63406349    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    63646373    sal ax, 1                                 ; d1 e0
    63656374    rcl bx, 1                                 ; d1 d3
    6366     loop 048c3h                               ; e2 fa
     6375    loop 048e1h                               ; e2 fa
    63676376    push bx                                   ; 53
    63686377    push ax                                   ; 50
     
    63806389    shr di, 1                                 ; d1 ef
    63816390    rcr ax, 1                                 ; d1 d8
    6382     loop 048edh                               ; e2 fa
     6391    loop 0490bh                               ; e2 fa
    63836392    les bx, [bp-014h]                         ; c4 5e ec
    63846393    mov word [es:bx+002h], ax                 ; 26 89 47 02
    63856394    test dl, dl                               ; 84 d2
    6386     je near 049cbh                            ; 0f 84 cb 00
    6387     mov bx, 00db6h                            ; bb b6 0d
     6395    je near 049e9h                            ; 0f 84 cb 00
     6396    mov bx, 00db2h                            ; bb b2 0d
    63886397    mov cx, ds                                ; 8c d9
    63896398    mov ax, strict word 00004h                ; b8 04 00
    6390     call 01a2ah                               ; e8 1f d1
     6399    call 01a2ah                               ; e8 01 d1
    63916400    movzx ax, dl                              ; 0f b6 c2
    63926401    push ax                                   ; 50
     
    63956404    push 00483h                               ; 68 83 04
    63966405    push strict byte 00004h                   ; 6a 04
    6397     call 01a6bh                               ; e8 4e d1
     6406    call 01a6bh                               ; e8 30 d1
    63986407    add sp, strict byte 0000ah                ; 83 c4 0a
    63996408    mov ax, word [bp+018h]                    ; 8b 46 18
    64006409    xor ah, ah                                ; 30 e4
    64016410    or ah, 00ch                               ; 80 cc 0c
    6402     jmp near 04c34h                           ; e9 09 03
     6411    jmp near 04c52h                           ; e9 09 03
    64036412    cmp bx, strict byte 00002h                ; 83 fb 02
    6404     jnbe near 04c2ch                          ; 0f 87 fa 02
     6413    jnbe near 04c4ah                          ; 0f 87 fa 02
    64056414    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    64066415    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    64106419    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    64116420    cmp bx, strict byte 00002h                ; 83 fb 02
    6412     je short 049bch                           ; 74 73
     6421    je short 049dah                           ; 74 73
    64136422    cmp bx, strict byte 00001h                ; 83 fb 01
    6414     je short 04989h                           ; 74 3b
     6423    je short 049a7h                           ; 74 3b
    64156424    test bx, bx                               ; 85 db
    6416     jne near 049cbh                           ; 0f 85 77 00
     6425    jne near 049e9h                           ; 0f 85 77 00
    64176426    cmp AL, strict byte 0ffh                  ; 3c ff
    6418     jne short 0496ah                          ; 75 12
     6427    jne short 04988h                          ; 75 12
    64196428    mov ax, word [bp+018h]                    ; 8b 46 18
    64206429    xor ah, ah                                ; 30 e4
     
    64236432    xor al, al                                ; 30 c0
    64246433    or AL, strict byte 001h                   ; 0c 01
    6425     jmp near 04c34h                           ; e9 ca 02
     6434    jmp near 04c52h                           ; e9 ca 02
    64266435    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    64276436    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    64356444    or AL, strict byte 001h                   ; 0c 01
    64366445    mov word [bp+018h], ax                    ; 89 46 18
    6437     jmp near 049cbh                           ; e9 42 00
     6446    jmp near 049e9h                           ; e9 42 00
    64386447    test al, al                               ; 84 c0
    6439     jne short 04999h                          ; 75 0c
     6448    jne short 049b7h                          ; 75 0c
    64406449    or bh, 0b0h                               ; 80 cf b0
    64416450    mov word [bp+018h], bx                    ; 89 5e 18
    64426451    mov byte [bp+018h], al                    ; 88 46 18
    6443     jmp near 04c37h                           ; e9 9e 02
     6452    jmp near 04c55h                           ; e9 9e 02
    64446453    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    64456454    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    64566465    xor al, al                                ; 30 c0
    64576466    or ax, dx                                 ; 09 d0
    6458     jmp short 04983h                          ; eb c7
     6467    jmp short 049a1h                          ; eb c7
    64596468    test al, al                               ; 84 c0
    64606469    db  00fh, 095h, 0c0h
     
    64686477    mov dx, strict word 00074h                ; ba 74 00
    64696478    mov ax, strict word 00040h                ; b8 40 00
    6470     call 01757h                               ; e8 7d cd
     6479    call 01757h                               ; e8 5f cd
    64716480    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    64726481    lea sp, [bp-004h]                         ; 8d 66 fc
     
    64816490    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    64826491    test al, al                               ; 84 c0
    6483     je short 049ffh                           ; 74 06
     6492    je short 04a1dh                           ; 74 06
    64846493    or bh, 0b1h                               ; 80 cf b1
    6485     jmp near 047e4h                           ; e9 e5 fd
    6486     je short 049cbh                           ; 74 ca
     6494    jmp near 04802h                           ; e9 e5 fd
     6495    je short 049e9h                           ; 74 ca
    64876496    mov ax, word [bp+018h]                    ; 8b 46 18
    64886497    xor ah, ah                                ; 30 e4
    64896498    or ah, 0b1h                               ; 80 cc b1
    6490     jmp near 04c34h                           ; e9 28 02
     6499    jmp near 04c52h                           ; e9 28 02
    64916500    mov dx, word [bp+00ch]                    ; 8b 56 0c
    64926501    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    64986507    mov word [bp-00eh], ax                    ; 89 46 f2
    64996508    cmp ax, strict word 0001ah                ; 3d 1a 00
    6500     jc near 04c2ch                            ; 0f 82 04 02
    6501     jc short 04a79h                           ; 72 4f
     6509    jc near 04c4ah                            ; 0f 82 04 02
     6510    jc short 04a97h                           ; 72 4f
    65026511    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    65036512    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    65226531    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    65236532    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    6524     jc near 04b50h                            ; 0f 82 cf 00
     6533    jc near 04b6eh                            ; 0f 82 cf 00
    65256534    mov es, [bp-00ah]                         ; 8e 46 f6
    65266535    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    65746583    xor cl, cl                                ; 30 c9
    65756584    xor ch, ch                                ; 30 ed
    6576     jmp short 04b33h                          ; eb 05
     6585    jmp short 04b51h                          ; eb 05
    65776586    cmp ch, 00fh                              ; 80 fd 0f
    6578     jnc short 04b46h                          ; 73 13
     6587    jnc short 04b64h                          ; 73 13
    65796588    movzx dx, ch                              ; 0f b6 d5
    65806589    add dx, 00356h                            ; 81 c2 56 03
    65816590    mov ax, word [bp-01ah]                    ; 8b 46 e6
    6582     call 01749h                               ; e8 09 cc
     6591    call 01749h                               ; e8 eb cb
    65836592    add cl, al                                ; 00 c1
    65846593    db  0feh, 0c5h
    65856594    ; inc ch                                    ; fe c5
    6586     jmp short 04b2eh                          ; eb e8
     6595    jmp short 04b4ch                          ; eb e8
    65876596    neg cl                                    ; f6 d9
    65886597    mov es, [bp-00ch]                         ; 8e 46 f4
    65896598    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    65906599    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    6591     jc near 049cbh                            ; 0f 82 73 fe
     6600    jc near 049e9h                            ; 0f 82 73 fe
    65926601    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    65936602    cwd                                       ; 99
     
    66076616    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    66086617    test al, al                               ; 84 c0
    6609     jne short 04b99h                          ; 75 09
     6618    jne short 04bb7h                          ; 75 09
    66106619    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    66116620    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    66166625    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    66176626    test al, al                               ; 84 c0
    6618     jne short 04bc5h                          ; 75 13
     6627    jne short 04be3h                          ; 75 13
    66196628    mov word [es:bx+030h], dx                 ; 26 89 57 30
    66206629    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    66316640    xor al, al                                ; 30 c0
    66326641    mov AH, strict byte 01eh                  ; b4 1e
    6633     jmp short 04bedh                          ; eb 05
     6642    jmp short 04c0bh                          ; eb 05
    66346643    cmp ah, 040h                              ; 80 fc 40
    6635     jnc short 04bfch                          ; 73 0f
     6644    jnc short 04c1ah                          ; 73 0f
    66366645    movzx si, ah                              ; 0f b6 f4
    66376646    mov es, [bp-00ah]                         ; 8e 46 f6
     
    66406649    db  0feh, 0c4h
    66416650    ; inc ah                                    ; fe c4
    6642     jmp short 04be8h                          ; eb ec
     6651    jmp short 04c06h                          ; eb ec
    66436652    neg al                                    ; f6 d8
    66446653    mov es, [bp-00ah]                         ; 8e 46 f6
    66456654    mov byte [es:bx+041h], al                 ; 26 88 47 41
    6646     jmp near 049cbh                           ; e9 c3 fd
     6655    jmp near 049e9h                           ; e9 c3 fd
    66476656    or bh, 006h                               ; 80 cf 06
    66486657    mov word [bp+018h], bx                    ; 89 5e 18
    6649     jmp short 04c48h                          ; eb 38
     6658    jmp short 04c66h                          ; eb 38
    66506659    cmp bx, strict byte 00006h                ; 83 fb 06
    6651     je near 049cbh                            ; 0f 84 b4 fd
     6660    je near 049e9h                            ; 0f 84 b4 fd
    66526661    cmp bx, strict byte 00001h                ; 83 fb 01
    6653     jc short 04c2ch                           ; 72 10
    6654     jbe near 049cbh                           ; 0f 86 ab fd
     6662    jc short 04c4ah                           ; 72 10
     6663    jbe near 049e9h                           ; 0f 86 ab fd
    66556664    cmp bx, strict byte 00003h                ; 83 fb 03
    6656     jc short 04c2ch                           ; 72 07
     6665    jc short 04c4ah                           ; 72 07
    66576666    cmp bx, strict byte 00004h                ; 83 fb 04
    6658     jbe near 049cbh                           ; 0f 86 9f fd
     6667    jbe near 049e9h                           ; 0f 86 9f fd
    66596668    mov ax, word [bp+018h]                    ; 8b 46 18
    66606669    xor ah, ah                                ; 30 e4
     
    66666675    mov dx, strict word 00074h                ; ba 74 00
    66676676    mov ax, strict word 00040h                ; b8 40 00
    6668     call 01757h                               ; e8 0f cb
     6677    call 01757h                               ; e8 f1 ca
    66696678    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6670     jmp near 049deh                           ; e9 8f fd
    6671     mov bx, 00db6h                            ; bb b6 0d
     6679    jmp near 049fch                           ; e9 8f fd
     6680    mov bx, 00db2h                            ; bb b2 0d
    66726681    mov cx, ds                                ; 8c d9
    66736682    mov ax, strict word 00004h                ; b8 04 00
    6674     call 01a2ah                               ; e8 d0 cd
     6683    call 01a2ah                               ; e8 b2 cd
    66756684    mov ax, word [bp+018h]                    ; 8b 46 18
    66766685    shr ax, 008h                              ; c1 e8 08
     
    66796688    push 00345h                               ; 68 45 03
    66806689    push strict byte 00004h                   ; 6a 04
    6681     jmp near 0483ch                           ; e9 d0 fb
    6682 print_boot_device_:                          ; 0xf4c6c LB 0x4b
     6690    jmp near 0485ah                           ; e9 d0 fb
     6691print_boot_device_:                          ; 0xf4c8a LB 0x4b
    66836692    push bp                                   ; 55
    66846693    mov bp, sp                                ; 89 e5
    66856694    push cx                                   ; 51
    66866695    test al, al                               ; 84 c0
    6687     je short 04c79h                           ; 74 05
     6696    je short 04c97h                           ; 74 05
    66886697    mov dx, strict word 00002h                ; ba 02 00
    6689     jmp short 04c93h                          ; eb 1a
     6698    jmp short 04cb1h                          ; eb 1a
    66906699    test dl, dl                               ; 84 d2
    6691     je short 04c82h                           ; 74 05
     6700    je short 04ca0h                           ; 74 05
    66926701    mov dx, strict word 00003h                ; ba 03 00
    6693     jmp short 04c93h                          ; eb 11
     6702    jmp short 04cb1h                          ; eb 11
    66946703    test bl, 080h                             ; f6 c3 80
    6695     jne short 04c8bh                          ; 75 04
     6704    jne short 04ca9h                          ; 75 04
    66966705    xor dh, dh                                ; 30 f6
    6697     jmp short 04c93h                          ; eb 08
     6706    jmp short 04cb1h                          ; eb 08
    66986707    test bl, 080h                             ; f6 c3 80
    6699     je short 04cb1h                           ; 74 21
     6708    je short 04ccfh                           ; 74 21
    67006709    mov dx, strict word 00001h                ; ba 01 00
    6701     mov bx, 00db6h                            ; bb b6 0d
     6710    mov bx, 00db2h                            ; bb b2 0d
    67026711    mov cx, ds                                ; 8c d9
    67036712    mov ax, strict word 00004h                ; b8 04 00
    6704     call 01a2ah                               ; e8 8c cd
     6713    call 01a2ah                               ; e8 6e cd
    67056714    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    6706     add dx, 00ddch                            ; 81 c2 dc 0d
     6715    add dx, 00dd8h                            ; 81 c2 d8 0d
    67076716    push dx                                   ; 52
    67086717    push 004a6h                               ; 68 a6 04
    67096718    push strict byte 00004h                   ; 6a 04
    6710     call 01a6bh                               ; e8 bd cd
     6719    call 01a6bh                               ; e8 9f cd
    67116720    add sp, strict byte 00006h                ; 83 c4 06
    67126721    lea sp, [bp-002h]                         ; 8d 66 fe
     
    67146723    pop bp                                    ; 5d
    67156724    retn                                      ; c3
    6716 print_boot_failure_:                         ; 0xf4cb7 LB 0x93
     6725print_boot_failure_:                         ; 0xf4cd5 LB 0x93
    67176726    push bp                                   ; 55
    67186727    mov bp, sp                                ; 89 e5
     
    67236732    movzx si, ah                              ; 0f b6 f4
    67246733    test al, al                               ; 84 c0
    6725     je short 04ce4h                           ; 74 1b
    6726     mov bx, 00db6h                            ; bb b6 0d
     6734    je short 04d02h                           ; 74 1b
     6735    mov bx, 00db2h                            ; bb b2 0d
    67276736    mov cx, ds                                ; 8c d9
    67286737    mov ax, strict word 00004h                ; b8 04 00
    6729     call 01a2ah                               ; e8 56 cd
    6730     push 00df0h                               ; 68 f0 0d
     6738    call 01a2ah                               ; e8 38 cd
     6739    push 00dech                               ; 68 ec 0d
    67316740    push 004bah                               ; 68 ba 04
    67326741    push strict byte 00004h                   ; 6a 04
    6733     call 01a6bh                               ; e8 8c cd
     6742    call 01a6bh                               ; e8 6e cd
    67346743    add sp, strict byte 00006h                ; 83 c4 06
    6735     jmp short 04d28h                          ; eb 44
     6744    jmp short 04d46h                          ; eb 44
    67366745    test dl, dl                               ; 84 d2
    6737     je short 04cf8h                           ; 74 10
    6738     mov bx, 00db6h                            ; bb b6 0d
     6746    je short 04d16h                           ; 74 10
     6747    mov bx, 00db2h                            ; bb b2 0d
    67396748    mov cx, ds                                ; 8c d9
    67406749    mov ax, strict word 00004h                ; b8 04 00
    6741     call 01a2ah                               ; e8 37 cd
    6742     push 00dfah                               ; 68 fa 0d
    6743     jmp short 04cd7h                          ; eb df
     6750    call 01a2ah                               ; e8 19 cd
     6751    push 00df6h                               ; 68 f6 0d
     6752    jmp short 04cf5h                          ; eb df
    67446753    test bl, 080h                             ; f6 c3 80
    6745     je short 04d0eh                           ; 74 11
    6746     mov bx, 00db6h                            ; bb b6 0d
     6754    je short 04d2ch                           ; 74 11
     6755    mov bx, 00db2h                            ; bb b2 0d
    67476756    mov cx, ds                                ; 8c d9
    67486757    mov ax, strict word 00004h                ; b8 04 00
    6749     call 01a2ah                               ; e8 22 cd
     6758    call 01a2ah                               ; e8 04 cd
    67506759    push si                                   ; 56
    6751     push 00de6h                               ; 68 e6 0d
    6752     jmp short 04d1dh                          ; eb 0f
    6753     mov bx, 00db6h                            ; bb b6 0d
     6760    push 00de2h                               ; 68 e2 0d
     6761    jmp short 04d3bh                          ; eb 0f
     6762    mov bx, 00db2h                            ; bb b2 0d
    67546763    mov cx, ds                                ; 8c d9
    67556764    mov ax, strict word 00004h                ; b8 04 00
    6756     call 01a2ah                               ; e8 11 cd
     6765    call 01a2ah                               ; e8 f3 cc
    67576766    push si                                   ; 56
    6758     push 00ddch                               ; 68 dc 0d
     6767    push 00dd8h                               ; 68 d8 0d
    67596768    push 004cfh                               ; 68 cf 04
    67606769    push strict byte 00004h                   ; 6a 04
    6761     call 01a6bh                               ; e8 46 cd
     6770    call 01a6bh                               ; e8 28 cd
    67626771    add sp, strict byte 00008h                ; 83 c4 08
    67636772    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6764     jne short 04d42h                          ; 75 14
     6773    jne short 04d60h                          ; 75 14
    67656774    test dh, dh                               ; 84 f6
    6766     jne short 04d37h                          ; 75 05
     6775    jne short 04d55h                          ; 75 05
    67676776    push 004e7h                               ; 68 e7 04
    6768     jmp short 04d3ah                          ; eb 03
     6777    jmp short 04d58h                          ; eb 03
    67696778    push 00511h                               ; 68 11 05
    67706779    push strict byte 00007h                   ; 6a 07
    6771     call 01a6bh                               ; e8 2c cd
     6780    call 01a6bh                               ; e8 0e cd
    67726781    add sp, strict byte 00004h                ; 83 c4 04
    67736782    lea sp, [bp-002h]                         ; 8d 66 fe
     
    67756784    pop bp                                    ; 5d
    67766785    retn 00002h                               ; c2 02 00
    6777 print_cdromboot_failure_:                    ; 0xf4d4a LB 0x27
     6786print_cdromboot_failure_:                    ; 0xf4d68 LB 0x27
    67786787    push bp                                   ; 55
    67796788    mov bp, sp                                ; 89 e5
     
    67826791    push dx                                   ; 52
    67836792    mov dx, ax                                ; 89 c2
    6784     mov bx, 00db6h                            ; bb b6 0d
     6793    mov bx, 00db2h                            ; bb b2 0d
    67856794    mov cx, ds                                ; 8c d9
    67866795    mov ax, strict word 00004h                ; b8 04 00
    6787     call 01a2ah                               ; e8 cd cc
     6796    call 01a2ah                               ; e8 af cc
    67886797    push dx                                   ; 52
    67896798    push 00546h                               ; 68 46 05
    67906799    push strict byte 00004h                   ; 6a 04
    6791     call 01a6bh                               ; e8 05 cd
     6800    call 01a6bh                               ; e8 e7 cc
    67926801    add sp, strict byte 00006h                ; 83 c4 06
    67936802    lea sp, [bp-006h]                         ; 8d 66 fa
     
    67976806    pop bp                                    ; 5d
    67986807    retn                                      ; c3
    6799 _int19_function:                             ; 0xf4d71 LB 0x256
     6808_int19_function:                             ; 0xf4d8f LB 0x256
    68006809    push bp                                   ; 55
    68016810    mov bp, sp                                ; 89 e5
     
    68056814    mov dx, strict word 0000eh                ; ba 0e 00
    68066815    mov ax, strict word 00040h                ; b8 40 00
    6807     call 01765h                               ; e8 e3 c9
     6816    call 01765h                               ; e8 c5 c9
    68086817    mov bx, ax                                ; 89 c3
    68096818    mov word [bp-00eh], ax                    ; 89 46 f2
    68106819    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    68116820    mov ax, strict word 0003dh                ; b8 3d 00
    6812     call 017a5h                               ; e8 14 ca
     6821    call 017a5h                               ; e8 f6 c9
    68136822    movzx si, al                              ; 0f b6 f0
    68146823    mov ax, strict word 00038h                ; b8 38 00
    6815     call 017a5h                               ; e8 0b ca
     6824    call 017a5h                               ; e8 ed c9
    68166825    and AL, strict byte 0f0h                  ; 24 f0
    68176826    xor ah, ah                                ; 30 e4
     
    68196828    or si, ax                                 ; 09 c6
    68206829    mov ax, strict word 0003ch                ; b8 3c 00
    6821     call 017a5h                               ; e8 fc c9
     6830    call 017a5h                               ; e8 de c9
    68226831    and AL, strict byte 00fh                  ; 24 0f
    68236832    xor ah, ah                                ; 30 e4
     
    68266835    mov dx, 0037dh                            ; ba 7d 03
    68276836    mov ax, bx                                ; 89 d8
    6828     call 01749h                               ; e8 8f c9
     6837    call 01749h                               ; e8 71 c9
    68296838    test al, al                               ; 84 c0
    6830     je short 04dc9h                           ; 74 0b
     6839    je short 04de7h                           ; 74 0b
    68316840    mov dx, 0037dh                            ; ba 7d 03
    68326841    mov ax, bx                                ; 89 d8
    6833     call 01749h                               ; e8 83 c9
     6842    call 01749h                               ; e8 65 c9
    68346843    movzx si, al                              ; 0f b6 f0
    68356844    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6836     jne short 04ddfh                          ; 75 10
     6845    jne short 04dfdh                          ; 75 10
    68376846    mov ax, strict word 0003ch                ; b8 3c 00
    6838     call 017a5h                               ; e8 d0 c9
     6847    call 017a5h                               ; e8 b2 c9
    68396848    and AL, strict byte 0f0h                  ; 24 f0
    68406849    xor ah, ah                                ; 30 e4
    68416850    sar ax, 004h                              ; c1 f8 04
    6842     call 07e53h                               ; e8 74 30
     6851    call 07e71h                               ; e8 74 30
    68436852    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6844     jne short 04de8h                          ; 75 03
     6853    jne short 04e06h                          ; 75 03
    68456854    shr si, 004h                              ; c1 ee 04
    68466855    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6847     jne short 04df1h                          ; 75 03
     6856    jne short 04e0fh                          ; 75 03
    68486857    shr si, 008h                              ; c1 ee 08
    68496858    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6850     jne short 04dfah                          ; 75 03
     6859    jne short 04e18h                          ; 75 03
    68516860    shr si, 00ch                              ; c1 ee 0c
    68526861    cmp si, strict byte 00010h                ; 83 fe 10
    6853     jnc short 04e03h                          ; 73 04
     6862    jnc short 04e21h                          ; 73 04
    68546863    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    68556864    xor al, al                                ; 30 c0
     
    68576866    mov byte [bp-00ah], al                    ; 88 46 f6
    68586867    mov byte [bp-00ch], al                    ; 88 46 f4
    6859     mov bx, 00db6h                            ; bb b6 0d
     6868    mov bx, 00db2h                            ; bb b2 0d
    68606869    mov cx, ds                                ; 8c d9
    68616870    mov ax, strict word 00004h                ; b8 04 00
    6862     call 01a2ah                               ; e8 11 cc
     6871    call 01a2ah                               ; e8 f3 cb
    68636872    push si                                   ; 56
    68646873    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    68666875    push 00566h                               ; 68 66 05
    68676876    push strict byte 00004h                   ; 6a 04
    6868     call 01a6bh                               ; e8 44 cc
     6877    call 01a6bh                               ; e8 26 cc
    68696878    add sp, strict byte 00008h                ; 83 c4 08
    68706879    and si, strict byte 0000fh                ; 83 e6 0f
    68716880    cmp si, strict byte 00002h                ; 83 fe 02
    6872     jc short 04e40h                           ; 72 0e
    6873     jbe short 04e4fh                          ; 76 1b
     6881    jc short 04e5eh                           ; 72 0e
     6882    jbe short 04e6dh                          ; 76 1b
    68746883    cmp si, strict byte 00004h                ; 83 fe 04
    6875     je short 04e6dh                           ; 74 34
     6884    je short 04e8bh                           ; 74 34
    68766885    cmp si, strict byte 00003h                ; 83 fe 03
    6877     je short 04e63h                           ; 74 25
    6878     jmp short 04e9ah                          ; eb 5a
     6886    je short 04e81h                           ; 74 25
     6887    jmp short 04eb8h                          ; eb 5a
    68796888    cmp si, strict byte 00001h                ; 83 fe 01
    6880     jne short 04e9ah                          ; 75 55
     6889    jne short 04eb8h                          ; 75 55
    68816890    xor al, al                                ; 30 c0
    68826891    mov byte [bp-006h], al                    ; 88 46 fa
    68836892    mov byte [bp-00ah], al                    ; 88 46 f6
    6884     jmp short 04eb2h                          ; eb 63
     6893    jmp short 04ed0h                          ; eb 63
    68856894    mov dx, 0037ch                            ; ba 7c 03
    68866895    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6887     call 01749h                               ; e8 f1 c8
     6896    call 01749h                               ; e8 d3 c8
    68886897    add AL, strict byte 080h                  ; 04 80
    68896898    mov byte [bp-006h], al                    ; 88 46 fa
    68906899    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6891     jmp short 04eb2h                          ; eb 4f
     6900    jmp short 04ed0h                          ; eb 4f
    68926901    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    68936902    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6894     jmp short 04e77h                          ; eb 0a
     6903    jmp short 04e95h                          ; eb 0a
    68956904    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    68966905    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6897     je short 04eb2h                           ; 74 3b
    6898     call 03ebfh                               ; e8 45 f0
     6906    je short 04ed0h                           ; 74 3b
     6907    call 03eddh                               ; e8 45 f0
    68996908    mov bx, ax                                ; 89 c3
    69006909    test AL, strict byte 0ffh                 ; a8 ff
    6901     je short 04ea1h                           ; 74 21
    6902     call 04d4ah                               ; e8 c7 fe
     6910    je short 04ebfh                           ; 74 21
     6911    call 04d68h                               ; e8 c7 fe
    69036912    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    69046913    push ax                                   ; 50
     
    69076916    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    69086917    mov cx, strict word 00001h                ; b9 01 00
    6909     call 04cb7h                               ; e8 1d fe
     6918    call 04cd5h                               ; e8 1d fe
    69106919    xor ax, ax                                ; 31 c0
    69116920    xor dx, dx                                ; 31 d2
    6912     jmp near 04fc0h                           ; e9 1f 01
     6921    jmp near 04fdeh                           ; e9 1f 01
    69136922    mov dx, 00372h                            ; ba 72 03
    69146923    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6915     call 01765h                               ; e8 bb c8
     6924    call 01765h                               ; e8 9d c8
    69166925    mov di, ax                                ; 89 c7
    69176926    shr bx, 008h                              ; c1 eb 08
    69186927    mov byte [bp-006h], bl                    ; 88 5e fa
    69196928    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6920     jne near 04f2eh                           ; 0f 85 74 00
     6929    jne near 04f4ch                           ; 0f 85 74 00
    69216930    xor si, si                                ; 31 f6
    69226931    mov ax, 0e200h                            ; b8 00 e2
    69236932    mov es, ax                                ; 8e c0
    69246933    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6925     jne short 04e83h                          ; 75 bb
     6934    jne short 04ea1h                          ; 75 bb
    69266935    mov cx, ax                                ; 89 c1
    69276936    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    69286937    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6929     jne short 04e83h                          ; 75 ad
     6938    jne short 04ea1h                          ; 75 ad
    69306939    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6931     jne short 04e83h                          ; 75 a6
     6940    jne short 04ea1h                          ; 75 a6
    69326941    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    69336942    mov dx, word [es:di]                      ; 26 8b 15
    69346943    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    69356944    cmp ax, 06568h                            ; 3d 68 65
    6936     jne short 04f0ch                          ; 75 1f
     6945    jne short 04f2ah                          ; 75 1f
    69376946    cmp dx, 07445h                            ; 81 fa 45 74
    6938     jne short 04f0ch                          ; 75 19
     6947    jne short 04f2ah                          ; 75 19
    69396948    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    69406949    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    69416950    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6942     call 04c6ch                               ; e8 6a fd
     6951    call 04c8ah                               ; e8 6a fd
    69436952    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    69446953    mov word [bp-010h], cx                    ; 89 4e f0
    6945     jmp short 04f28h                          ; eb 1c
     6954    jmp short 04f46h                          ; eb 1c
    69466955    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    69476956    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    69486957    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6949     call 04c6ch                               ; e8 51 fd
     6958    call 04c8ah                               ; e8 51 fd
    69506959    sti                                       ; fb
    69516960    mov word [bp-010h], cx                    ; 89 4e f0
     
    69546963    mov word [bp-012h], ax                    ; 89 46 ee
    69556964    call far [bp-012h]                        ; ff 5e ee
    6956     jmp near 04e83h                           ; e9 55 ff
     6965    jmp near 04ea1h                           ; e9 55 ff
    69576966    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6958     jne short 04f5ah                          ; 75 26
     6967    jne short 04f78h                          ; 75 26
    69596968    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6960     jne short 04f5ah                          ; 75 20
     6969    jne short 04f78h                          ; 75 20
    69616970    mov di, 007c0h                            ; bf c0 07
    69626971    mov es, di                                ; 8e c7
     
    69716980    sbb ax, strict byte 00000h                ; 83 d8 00
    69726981    test ax, ax                               ; 85 c0
    6973     jne near 04e83h                           ; 0f 85 29 ff
     6982    jne near 04ea1h                           ; 0f 85 29 ff
    69746983    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    69756984    db  00fh, 094h, 0c1h
    69766985    ; sete cl                                   ; 0f 94 c1
    69776986    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6978     je short 04f69h                           ; 74 02
     6987    je short 04f87h                           ; 74 02
    69796988    mov CL, strict byte 001h                  ; b1 01
    69806989    xor dx, dx                                ; 31 d2
    69816990    mov ax, di                                ; 89 f8
    6982     call 01765h                               ; e8 f5 c7
     6991    call 01765h                               ; e8 d7 c7
    69836992    mov bx, ax                                ; 89 c3
    69846993    mov dx, strict word 00002h                ; ba 02 00
    69856994    mov ax, di                                ; 89 f8
    6986     call 01765h                               ; e8 eb c7
     6995    call 01765h                               ; e8 cd c7
    69876996    cmp bx, ax                                ; 39 c3
    6988     je short 04f8fh                           ; 74 11
     6997    je short 04fadh                           ; 74 11
    69896998    test cl, cl                               ; 84 c9
    6990     jne short 04fa5h                          ; 75 23
     6999    jne short 04fc3h                          ; 75 23
    69917000    mov dx, 001feh                            ; ba fe 01
    69927001    mov ax, di                                ; 89 f8
    6993     call 01765h                               ; e8 db c7
     7002    call 01765h                               ; e8 bd c7
    69947003    cmp ax, 0aa55h                            ; 3d 55 aa
    6995     je short 04fa5h                           ; 74 16
     7004    je short 04fc3h                           ; 74 16
    69967005    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    69977006    push ax                                   ; 50
     
    70007009    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    70017010    xor cx, cx                                ; 31 c9
    7002     jmp near 04e97h                           ; e9 f2 fe
     7011    jmp near 04eb5h                           ; e9 f2 fe
    70037012    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    70047013    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    70057014    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    7006     call 04c6ch                               ; e8 b8 fc
     7015    call 04c8ah                               ; e8 b8 fc
    70077016    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    70087017    xor dx, dx                                ; 31 d2
     
    70157024    pop bp                                    ; 5d
    70167025    retn                                      ; c3
    7017 keyboard_panic_:                             ; 0xf4fc7 LB 0x13
     7026keyboard_panic_:                             ; 0xf4fe5 LB 0x13
    70187027    push bp                                   ; 55
    70197028    mov bp, sp                                ; 89 e5
     
    70217030    push 00586h                               ; 68 86 05
    70227031    push strict byte 00007h                   ; 6a 07
    7023     call 01a6bh                               ; e8 98 ca
     7032    call 01a6bh                               ; e8 7a ca
    70247033    add sp, strict byte 00006h                ; 83 c4 06
    70257034    mov sp, bp                                ; 89 ec
    70267035    pop bp                                    ; 5d
    70277036    retn                                      ; c3
    7028 _keyboard_init:                              ; 0xf4fda LB 0x26a
     7037_keyboard_init:                              ; 0xf4ff8 LB 0x26a
    70297038    push bp                                   ; 55
    70307039    mov bp, sp                                ; 89 e5
     
    70387047    ; sub ah, ah                                ; 2a e4
    70397048    test AL, strict byte 002h                 ; a8 02
    7040     je short 04ffdh                           ; 74 0d
     7049    je short 0501bh                           ; 74 0d
    70417050    dec bx                                    ; 4b
    70427051    test bx, bx                               ; 85 db
    7043     jbe short 04ffdh                          ; 76 08
     7052    jbe short 0501bh                          ; 76 08
    70447053    xor al, al                                ; 30 c0
    70457054    mov dx, 00080h                            ; ba 80 00
    70467055    out DX, AL                                ; ee
    7047     jmp short 04fe6h                          ; eb e9
     7056    jmp short 05004h                          ; eb e9
    70487057    test bx, bx                               ; 85 db
    7049     jne short 05006h                          ; 75 05
     7058    jne short 05024h                          ; 75 05
    70507059    xor ax, ax                                ; 31 c0
    7051     call 04fc7h                               ; e8 c1 ff
     7060    call 04fe5h                               ; e8 c1 ff
    70527061    mov bx, strict word 0ffffh                ; bb ff ff
    70537062    mov dx, strict word 00064h                ; ba 64 00
     
    70567065    ; sub ah, ah                                ; 2a e4
    70577066    test AL, strict byte 001h                 ; a8 01
    7058     jne short 05020h                          ; 75 0d
     7067    jne short 0503eh                          ; 75 0d
    70597068    dec bx                                    ; 4b
    70607069    test bx, bx                               ; 85 db
    7061     jbe short 05020h                          ; 76 08
     7070    jbe short 0503eh                          ; 76 08
    70627071    mov AL, strict byte 001h                  ; b0 01
    70637072    mov dx, 00080h                            ; ba 80 00
    70647073    out DX, AL                                ; ee
    7065     jmp short 05009h                          ; eb e9
     7074    jmp short 05027h                          ; eb e9
    70667075    test bx, bx                               ; 85 db
    7067     jne short 0502ah                          ; 75 06
     7076    jne short 05048h                          ; 75 06
    70687077    mov ax, strict word 00001h                ; b8 01 00
    7069     call 04fc7h                               ; e8 9d ff
     7078    call 04fe5h                               ; e8 9d ff
    70707079    mov dx, strict word 00060h                ; ba 60 00
    70717080    in AL, DX                                 ; ec
     
    70737082    ; sub ah, ah                                ; 2a e4
    70747083    cmp ax, strict word 00055h                ; 3d 55 00
    7075     je short 0503bh                           ; 74 06
     7084    je short 05059h                           ; 74 06
    70767085    mov ax, 003dfh                            ; b8 df 03
    7077     call 04fc7h                               ; e8 8c ff
     7086    call 04fe5h                               ; e8 8c ff
    70787087    mov AL, strict byte 0abh                  ; b0 ab
    70797088    mov dx, strict word 00064h                ; ba 64 00
     
    70857094    ; sub ah, ah                                ; 2a e4
    70867095    test AL, strict byte 002h                 ; a8 02
    7087     je short 0505bh                           ; 74 0d
     7096    je short 05079h                           ; 74 0d
    70887097    dec bx                                    ; 4b
    70897098    test bx, bx                               ; 85 db
    7090     jbe short 0505bh                          ; 76 08
     7099    jbe short 05079h                          ; 76 08
    70917100    mov AL, strict byte 010h                  ; b0 10
    70927101    mov dx, 00080h                            ; ba 80 00
    70937102    out DX, AL                                ; ee
    7094     jmp short 05044h                          ; eb e9
     7103    jmp short 05062h                          ; eb e9
    70957104    test bx, bx                               ; 85 db
    7096     jne short 05065h                          ; 75 06
     7105    jne short 05083h                          ; 75 06
    70977106    mov ax, strict word 0000ah                ; b8 0a 00
    7098     call 04fc7h                               ; e8 62 ff
     7107    call 04fe5h                               ; e8 62 ff
    70997108    mov bx, strict word 0ffffh                ; bb ff ff
    71007109    mov dx, strict word 00064h                ; ba 64 00
     
    71037112    ; sub ah, ah                                ; 2a e4
    71047113    test AL, strict byte 001h                 ; a8 01
    7105     jne short 0507fh                          ; 75 0d
     7114    jne short 0509dh                          ; 75 0d
    71067115    dec bx                                    ; 4b
    71077116    test bx, bx                               ; 85 db
    7108     jbe short 0507fh                          ; 76 08
     7117    jbe short 0509dh                          ; 76 08
    71097118    mov AL, strict byte 011h                  ; b0 11
    71107119    mov dx, 00080h                            ; ba 80 00
    71117120    out DX, AL                                ; ee
    7112     jmp short 05068h                          ; eb e9
     7121    jmp short 05086h                          ; eb e9
    71137122    test bx, bx                               ; 85 db
    7114     jne short 05089h                          ; 75 06
     7123    jne short 050a7h                          ; 75 06
    71157124    mov ax, strict word 0000bh                ; b8 0b 00
    7116     call 04fc7h                               ; e8 3e ff
     7125    call 04fe5h                               ; e8 3e ff
    71177126    mov dx, strict word 00060h                ; ba 60 00
    71187127    in AL, DX                                 ; ec
     
    71207129    ; sub ah, ah                                ; 2a e4
    71217130    test ax, ax                               ; 85 c0
    7122     je short 05099h                           ; 74 06
     7131    je short 050b7h                           ; 74 06
    71237132    mov ax, 003e0h                            ; b8 e0 03
    7124     call 04fc7h                               ; e8 2e ff
     7133    call 04fe5h                               ; e8 2e ff
    71257134    mov AL, strict byte 0ffh                  ; b0 ff
    71267135    mov dx, strict word 00060h                ; ba 60 00
     
    71327141    ; sub ah, ah                                ; 2a e4
    71337142    test AL, strict byte 002h                 ; a8 02
    7134     je short 050b9h                           ; 74 0d
     7143    je short 050d7h                           ; 74 0d
    71357144    dec bx                                    ; 4b
    71367145    test bx, bx                               ; 85 db
    7137     jbe short 050b9h                          ; 76 08
     7146    jbe short 050d7h                          ; 76 08
    71387147    mov AL, strict byte 020h                  ; b0 20
    71397148    mov dx, 00080h                            ; ba 80 00
    71407149    out DX, AL                                ; ee
    7141     jmp short 050a2h                          ; eb e9
     7150    jmp short 050c0h                          ; eb e9
    71427151    test bx, bx                               ; 85 db
    7143     jne short 050c3h                          ; 75 06
     7152    jne short 050e1h                          ; 75 06
    71447153    mov ax, strict word 00014h                ; b8 14 00
    7145     call 04fc7h                               ; e8 04 ff
     7154    call 04fe5h                               ; e8 04 ff
    71467155    mov bx, strict word 0ffffh                ; bb ff ff
    71477156    mov dx, strict word 00064h                ; ba 64 00
     
    71507159    ; sub ah, ah                                ; 2a e4
    71517160    test AL, strict byte 001h                 ; a8 01
    7152     jne short 050ddh                          ; 75 0d
     7161    jne short 050fbh                          ; 75 0d
    71537162    dec bx                                    ; 4b
    71547163    test bx, bx                               ; 85 db
    7155     jbe short 050ddh                          ; 76 08
     7164    jbe short 050fbh                          ; 76 08
    71567165    mov AL, strict byte 021h                  ; b0 21
    71577166    mov dx, 00080h                            ; ba 80 00
    71587167    out DX, AL                                ; ee
    7159     jmp short 050c6h                          ; eb e9
     7168    jmp short 050e4h                          ; eb e9
    71607169    test bx, bx                               ; 85 db
    7161     jne short 050e7h                          ; 75 06
     7170    jne short 05105h                          ; 75 06
    71627171    mov ax, strict word 00015h                ; b8 15 00
    7163     call 04fc7h                               ; e8 e0 fe
     7172    call 04fe5h                               ; e8 e0 fe
    71647173    mov dx, strict word 00060h                ; ba 60 00
    71657174    in AL, DX                                 ; ec
     
    71677176    ; sub ah, ah                                ; 2a e4
    71687177    cmp ax, 000fah                            ; 3d fa 00
    7169     je short 050f8h                           ; 74 06
     7178    je short 05116h                           ; 74 06
    71707179    mov ax, 003e1h                            ; b8 e1 03
    7171     call 04fc7h                               ; e8 cf fe
     7180    call 04fe5h                               ; e8 cf fe
    71727181    mov dx, strict word 00064h                ; ba 64 00
    71737182    in AL, DX                                 ; ec
     
    71757184    ; sub ah, ah                                ; 2a e4
    71767185    test AL, strict byte 001h                 ; a8 01
    7177     jne short 0510ah                          ; 75 08
     7186    jne short 05128h                          ; 75 08
    71787187    mov AL, strict byte 031h                  ; b0 31
    71797188    mov dx, 00080h                            ; ba 80 00
    71807189    out DX, AL                                ; ee
    7181     jmp short 050f8h                          ; eb ee
     7190    jmp short 05116h                          ; eb ee
    71827191    mov dx, strict word 00060h                ; ba 60 00
    71837192    in AL, DX                                 ; ec
     
    71857194    ; sub ah, ah                                ; 2a e4
    71867195    cmp ax, 000aah                            ; 3d aa 00
    7187     je short 05123h                           ; 74 0e
     7196    je short 05141h                           ; 74 0e
    71887197    in AL, DX                                 ; ec
    71897198    db  02ah, 0e4h
    71907199    ; sub ah, ah                                ; 2a e4
    71917200    cmp ax, 000aah                            ; 3d aa 00
    7192     je short 05123h                           ; 74 06
     7201    je short 05141h                           ; 74 06
    71937202    mov ax, 003e2h                            ; b8 e2 03
    7194     call 04fc7h                               ; e8 a4 fe
     7203    call 04fe5h                               ; e8 a4 fe
    71957204    mov AL, strict byte 0f5h                  ; b0 f5
    71967205    mov dx, strict word 00060h                ; ba 60 00
     
    72027211    ; sub ah, ah                                ; 2a e4
    72037212    test AL, strict byte 002h                 ; a8 02
    7204     je short 05143h                           ; 74 0d
     7213    je short 05161h                           ; 74 0d
    72057214    dec bx                                    ; 4b
    72067215    test bx, bx                               ; 85 db
    7207     jbe short 05143h                          ; 76 08
     7216    jbe short 05161h                          ; 76 08
    72087217    mov AL, strict byte 040h                  ; b0 40
    72097218    mov dx, 00080h                            ; ba 80 00
    72107219    out DX, AL                                ; ee
    7211     jmp short 0512ch                          ; eb e9
     7220    jmp short 0514ah                          ; eb e9
    72127221    test bx, bx                               ; 85 db
    7213     jne short 0514dh                          ; 75 06
     7222    jne short 0516bh                          ; 75 06
    72147223    mov ax, strict word 00028h                ; b8 28 00
    7215     call 04fc7h                               ; e8 7a fe
     7224    call 04fe5h                               ; e8 7a fe
    72167225    mov bx, strict word 0ffffh                ; bb ff ff
    72177226    mov dx, strict word 00064h                ; ba 64 00
     
    72207229    ; sub ah, ah                                ; 2a e4
    72217230    test AL, strict byte 001h                 ; a8 01
    7222     jne short 05167h                          ; 75 0d
     7231    jne short 05185h                          ; 75 0d
    72237232    dec bx                                    ; 4b
    72247233    test bx, bx                               ; 85 db
    7225     jbe short 05167h                          ; 76 08
     7234    jbe short 05185h                          ; 76 08
    72267235    mov AL, strict byte 041h                  ; b0 41
    72277236    mov dx, 00080h                            ; ba 80 00
    72287237    out DX, AL                                ; ee
    7229     jmp short 05150h                          ; eb e9
     7238    jmp short 0516eh                          ; eb e9
    72307239    test bx, bx                               ; 85 db
    7231     jne short 05171h                          ; 75 06
     7240    jne short 0518fh                          ; 75 06
    72327241    mov ax, strict word 00029h                ; b8 29 00
    7233     call 04fc7h                               ; e8 56 fe
     7242    call 04fe5h                               ; e8 56 fe
    72347243    mov dx, strict word 00060h                ; ba 60 00
    72357244    in AL, DX                                 ; ec
     
    72377246    ; sub ah, ah                                ; 2a e4
    72387247    cmp ax, 000fah                            ; 3d fa 00
    7239     je short 05182h                           ; 74 06
     7248    je short 051a0h                           ; 74 06
    72407249    mov ax, 003e3h                            ; b8 e3 03
    7241     call 04fc7h                               ; e8 45 fe
     7250    call 04fe5h                               ; e8 45 fe
    72427251    mov AL, strict byte 060h                  ; b0 60
    72437252    mov dx, strict word 00064h                ; ba 64 00
     
    72497258    ; sub ah, ah                                ; 2a e4
    72507259    test AL, strict byte 002h                 ; a8 02
    7251     je short 051a2h                           ; 74 0d
     7260    je short 051c0h                           ; 74 0d
    72527261    dec bx                                    ; 4b
    72537262    test bx, bx                               ; 85 db
    7254     jbe short 051a2h                          ; 76 08
     7263    jbe short 051c0h                          ; 76 08
    72557264    mov AL, strict byte 050h                  ; b0 50
    72567265    mov dx, 00080h                            ; ba 80 00
    72577266    out DX, AL                                ; ee
    7258     jmp short 0518bh                          ; eb e9
     7267    jmp short 051a9h                          ; eb e9
    72597268    test bx, bx                               ; 85 db
    7260     jne short 051ach                          ; 75 06
     7269    jne short 051cah                          ; 75 06
    72617270    mov ax, strict word 00032h                ; b8 32 00
    7262     call 04fc7h                               ; e8 1b fe
     7271    call 04fe5h                               ; e8 1b fe
    72637272    mov AL, strict byte 065h                  ; b0 65
    72647273    mov dx, strict word 00060h                ; ba 60 00
     
    72707279    ; sub ah, ah                                ; 2a e4
    72717280    test AL, strict byte 002h                 ; a8 02
    7272     je short 051cch                           ; 74 0d
     7281    je short 051eah                           ; 74 0d
    72737282    dec bx                                    ; 4b
    72747283    test bx, bx                               ; 85 db
    7275     jbe short 051cch                          ; 76 08
     7284    jbe short 051eah                          ; 76 08
    72767285    mov AL, strict byte 060h                  ; b0 60
    72777286    mov dx, 00080h                            ; ba 80 00
    72787287    out DX, AL                                ; ee
    7279     jmp short 051b5h                          ; eb e9
     7288    jmp short 051d3h                          ; eb e9
    72807289    test bx, bx                               ; 85 db
    7281     jne short 051d6h                          ; 75 06
     7290    jne short 051f4h                          ; 75 06
    72827291    mov ax, strict word 0003ch                ; b8 3c 00
    7283     call 04fc7h                               ; e8 f1 fd
     7292    call 04fe5h                               ; e8 f1 fd
    72847293    mov AL, strict byte 0f4h                  ; b0 f4
    72857294    mov dx, strict word 00060h                ; ba 60 00
     
    72917300    ; sub ah, ah                                ; 2a e4
    72927301    test AL, strict byte 002h                 ; a8 02
    7293     je short 051f6h                           ; 74 0d
     7302    je short 05214h                           ; 74 0d
    72947303    dec bx                                    ; 4b
    72957304    test bx, bx                               ; 85 db
    7296     jbe short 051f6h                          ; 76 08
     7305    jbe short 05214h                          ; 76 08
    72977306    mov AL, strict byte 070h                  ; b0 70
    72987307    mov dx, 00080h                            ; ba 80 00
    72997308    out DX, AL                                ; ee
    7300     jmp short 051dfh                          ; eb e9
     7309    jmp short 051fdh                          ; eb e9
    73017310    test bx, bx                               ; 85 db
    7302     jne short 05200h                          ; 75 06
     7311    jne short 0521eh                          ; 75 06
    73037312    mov ax, strict word 00046h                ; b8 46 00
    7304     call 04fc7h                               ; e8 c7 fd
     7313    call 04fe5h                               ; e8 c7 fd
    73057314    mov bx, strict word 0ffffh                ; bb ff ff
    73067315    mov dx, strict word 00064h                ; ba 64 00
     
    73097318    ; sub ah, ah                                ; 2a e4
    73107319    test AL, strict byte 001h                 ; a8 01
    7311     jne short 0521ah                          ; 75 0d
     7320    jne short 05238h                          ; 75 0d
    73127321    dec bx                                    ; 4b
    73137322    test bx, bx                               ; 85 db
    7314     jbe short 0521ah                          ; 76 08
     7323    jbe short 05238h                          ; 76 08
    73157324    mov AL, strict byte 071h                  ; b0 71
    73167325    mov dx, 00080h                            ; ba 80 00
    73177326    out DX, AL                                ; ee
    7318     jmp short 05203h                          ; eb e9
     7327    jmp short 05221h                          ; eb e9
    73197328    test bx, bx                               ; 85 db
    7320     jne short 05224h                          ; 75 06
     7329    jne short 05242h                          ; 75 06
    73217330    mov ax, strict word 00046h                ; b8 46 00
    7322     call 04fc7h                               ; e8 a3 fd
     7331    call 04fe5h                               ; e8 a3 fd
    73237332    mov dx, strict word 00060h                ; ba 60 00
    73247333    in AL, DX                                 ; ec
     
    73267335    ; sub ah, ah                                ; 2a e4
    73277336    cmp ax, 000fah                            ; 3d fa 00
    7328     je short 05235h                           ; 74 06
     7337    je short 05253h                           ; 74 06
    73297338    mov ax, 003e4h                            ; b8 e4 03
    7330     call 04fc7h                               ; e8 92 fd
     7339    call 04fe5h                               ; e8 92 fd
    73317340    mov AL, strict byte 0a8h                  ; b0 a8
    73327341    mov dx, strict word 00064h                ; ba 64 00
    73337342    out DX, AL                                ; ee
    73347343    xor ax, ax                                ; 31 c0
    7335     call 06694h                               ; e8 54 14
     7344    call 066b2h                               ; e8 54 14
    73367345    mov sp, bp                                ; 89 ec
    73377346    pop bp                                    ; 5d
    73387347    retn                                      ; c3
    7339 enqueue_key_:                                ; 0xf5244 LB 0x99
     7348enqueue_key_:                                ; 0xf5262 LB 0x99
    73407349    push bp                                   ; 55
    73417350    mov bp, sp                                ; 89 e5
     
    73497358    mov dx, strict word 0001ah                ; ba 1a 00
    73507359    mov ax, strict word 00040h                ; b8 40 00
    7351     call 01765h                               ; e8 0b c5
     7360    call 01765h                               ; e8 ed c4
    73527361    mov di, ax                                ; 89 c7
    73537362    mov dx, strict word 0001ch                ; ba 1c 00
    73547363    mov ax, strict word 00040h                ; b8 40 00
    7355     call 01765h                               ; e8 00 c5
     7364    call 01765h                               ; e8 e2 c4
    73567365    mov si, ax                                ; 89 c6
    73577366    lea cx, [si+002h]                         ; 8d 4c 02
    73587367    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7359     jc short 05272h                           ; 72 03
     7368    jc short 05290h                           ; 72 03
    73607369    mov cx, strict word 0001eh                ; b9 1e 00
    73617370    cmp cx, di                                ; 39 f9
    7362     jne short 0527ah                          ; 75 04
     7371    jne short 05298h                          ; 75 04
    73637372    xor ax, ax                                ; 31 c0
    7364     jmp short 0529fh                          ; eb 25
     7373    jmp short 052bdh                          ; eb 25
    73657374    xor bh, bh                                ; 30 ff
    73667375    mov dx, si                                ; 89 f2
    73677376    mov ax, strict word 00040h                ; b8 40 00
    7368     call 01757h                               ; e8 d3 c4
     7377    call 01757h                               ; e8 b5 c4
    73697378    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    73707379    lea dx, [si+001h]                         ; 8d 54 01
    73717380    mov ax, strict word 00040h                ; b8 40 00
    7372     call 01757h                               ; e8 c6 c4
     7381    call 01757h                               ; e8 a8 c4
    73737382    mov bx, cx                                ; 89 cb
    73747383    mov dx, strict word 0001ch                ; ba 1c 00
    73757384    mov ax, strict word 00040h                ; b8 40 00
    7376     call 01773h                               ; e8 d7 c4
     7385    call 01773h                               ; e8 b9 c4
    73777386    mov ax, strict word 00001h                ; b8 01 00
    73787387    lea sp, [bp-008h]                         ; 8d 66 f8
     
    73847393    retn                                      ; c3
    73857394    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
    7386     db  01dh, 005h, 056h, 0ceh, 053h, 076h, 053h, 076h, 053h, 057h, 054h, 04ch, 053h, 0d5h, 054h, 043h
    7387     db  055h, 0ebh, 055h, 0c7h, 055h, 012h, 054h, 076h, 053h, 076h, 053h, 096h, 054h, 068h, 053h, 024h
    7388     db  055h, 0a8h, 055h, 0e4h, 055h
    7389 _int09_function:                             ; 0xf52dd LB 0x474
     7395    db  01dh, 023h, 056h, 0ech, 053h, 094h, 053h, 094h, 053h, 075h, 054h, 06ah, 053h, 0f3h, 054h, 061h
     7396    db  055h, 009h, 056h, 0e5h, 055h, 030h, 054h, 094h, 053h, 094h, 053h, 0b4h, 054h, 086h, 053h, 042h
     7397    db  055h, 0c6h, 055h, 002h, 056h
     7398_int09_function:                             ; 0xf52fb LB 0x474
    73907399    push bp                                   ; 55
    73917400    mov bp, sp                                ; 89 e5
     
    73957404    mov byte [bp-00ch], al                    ; 88 46 f4
    73967405    test al, al                               ; 84 c0
    7397     jne short 05307h                          ; 75 19
    7398     mov bx, 00db6h                            ; bb b6 0d
     7406    jne short 05325h                          ; 75 19
     7407    mov bx, 00db2h                            ; bb b2 0d
    73997408    mov cx, ds                                ; 8c d9
    74007409    mov ax, strict word 00004h                ; b8 04 00
    7401     call 01a2ah                               ; e8 31 c7
     7410    call 01a2ah                               ; e8 13 c7
    74027411    push 00599h                               ; 68 99 05
    74037412    push strict byte 00004h                   ; 6a 04
    7404     call 01a6bh                               ; e8 6a c7
     7413    call 01a6bh                               ; e8 4c c7
    74057414    add sp, strict byte 00004h                ; 83 c4 04
    7406     jmp near 053c8h                           ; e9 c1 00
     7415    jmp near 053e6h                           ; e9 c1 00
    74077416    mov dx, strict word 00018h                ; ba 18 00
    74087417    mov ax, strict word 00040h                ; b8 40 00
    7409     call 01749h                               ; e8 39 c4
     7418    call 01749h                               ; e8 1b c4
    74107419    mov byte [bp-006h], al                    ; 88 46 fa
    74117420    mov byte [bp-00ah], al                    ; 88 46 f6
    74127421    mov dx, 00096h                            ; ba 96 00
    74137422    mov ax, strict word 00040h                ; b8 40 00
    7414     call 01749h                               ; e8 2a c4
     7423    call 01749h                               ; e8 0c c4
    74157424    mov byte [bp-00eh], al                    ; 88 46 f2
    74167425    mov byte [bp-004h], al                    ; 88 46 fc
    74177426    mov dx, strict word 00017h                ; ba 17 00
    74187427    mov ax, strict word 00040h                ; b8 40 00
    7419     call 01749h                               ; e8 1b c4
     7428    call 01749h                               ; e8 fd c3
    74207429    mov byte [bp-010h], al                    ; 88 46 f0
    74217430    mov byte [bp-008h], al                    ; 88 46 f8
     
    74247433    pop ES                                    ; 07
    74257434    mov cx, strict word 00012h                ; b9 12 00
    7426     mov di, 052a8h                            ; bf a8 52
     7435    mov di, 052c6h                            ; bf c6 52
    74277436    repne scasb                               ; f2 ae
    74287437    sal cx, 1                                 ; d1 e1
    74297438    mov di, cx                                ; 89 cf
    7430     mov ax, word [cs:di+052b9h]               ; 2e 8b 85 b9 52
     7439    mov ax, word [cs:di+052d7h]               ; 2e 8b 85 d7 52
    74317440    jmp ax                                    ; ff e0
    74327441    xor byte [bp-008h], 040h                  ; 80 76 f8 40
     
    74347443    mov dx, strict word 00017h                ; ba 17 00
    74357444    mov ax, strict word 00040h                ; b8 40 00
    7436     call 01757h                               ; e8 fa c3
     7445    call 01757h                               ; e8 dc c3
    74377446    or byte [bp-00ah], 040h                   ; 80 4e f6 40
    74387447    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    7439     jmp near 055d8h                           ; e9 70 02
     7448    jmp near 055f6h                           ; e9 70 02
    74407449    mov al, byte [bp-006h]                    ; 8a 46 fa
    74417450    and AL, strict byte 0bfh                  ; 24 bf
    74427451    mov byte [bp-00ah], al                    ; 88 46 f6
    74437452    movzx bx, al                              ; 0f b6 d8
    7444     jmp near 055d8h                           ; e9 62 02
     7453    jmp near 055f6h                           ; e9 62 02
    74457454    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7446     jne near 053aah                           ; 0f 85 2c 00
     7455    jne near 053c8h                           ; 0f 85 2c 00
    74477456    mov al, byte [bp-00ch]                    ; 8a 46 f4
    74487457    and AL, strict byte 07fh                  ; 24 7f
     
    74547463    mov dl, al                                ; 88 c2
    74557464    test byte [bp-00ch], 080h                 ; f6 46 f4 80
    7456     je short 0539ah                           ; 74 07
     7465    je short 053b8h                           ; 74 07
    74577466    not al                                    ; f6 d0
    74587467    and byte [bp-008h], al                    ; 20 46 f8
    7459     jmp short 0539dh                          ; eb 03
     7468    jmp short 053bbh                          ; eb 03
    74607469    or byte [bp-008h], al                     ; 08 46 f8
    74617470    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    74627471    mov dx, strict word 00017h                ; ba 17 00
    74637472    mov ax, strict word 00040h                ; b8 40 00
    7464     call 01757h                               ; e8 ad c3
     7473    call 01757h                               ; e8 8f c3
    74657474    mov al, byte [bp-00ch]                    ; 8a 46 f4
    74667475    and AL, strict byte 07fh                  ; 24 7f
    74677476    cmp AL, strict byte 01dh                  ; 3c 1d
    7468     je short 053b7h                           ; 74 04
     7477    je short 053d5h                           ; 74 04
    74697478    and byte [bp-004h], 0feh                  ; 80 66 fc fe
    74707479    and byte [bp-004h], 0fdh                  ; 80 66 fc fd
     
    74727481    mov dx, 00096h                            ; ba 96 00
    74737482    mov ax, strict word 00040h                ; b8 40 00
    7474     call 01757h                               ; e8 8f c3
     7483    call 01757h                               ; e8 71 c3
    74757484    lea sp, [bp-002h]                         ; 8d 66 fe
    74767485    pop di                                    ; 5f
     
    74787487    retn                                      ; c3
    74797488    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7480     jne short 053aah                          ; 75 d6
     7489    jne short 053c8h                          ; 75 d6
    74817490    mov al, byte [bp-010h]                    ; 8a 46 f0
    74827491    or AL, strict byte 004h                   ; 0c 04
     
    74857494    mov dx, strict word 00017h                ; ba 17 00
    74867495    mov ax, strict word 00040h                ; b8 40 00
    7487     call 01757h                               ; e8 6f c3
     7496    call 01757h                               ; e8 51 c3
    74887497    mov al, byte [bp-00eh]                    ; 8a 46 f2
    74897498    test AL, strict byte 002h                 ; a8 02
    7490     je short 053fch                           ; 74 0d
     7499    je short 0541ah                           ; 74 0d
    74917500    or AL, strict byte 004h                   ; 0c 04
    74927501    mov byte [bp-004h], al                    ; 88 46 fc
    74937502    movzx bx, al                              ; 0f b6 d8
    74947503    mov dx, 00096h                            ; ba 96 00
    7495     jmp short 0540ah                          ; eb 0e
     7504    jmp short 05428h                          ; eb 0e
    74967505    mov al, byte [bp-006h]                    ; 8a 46 fa
    74977506    or AL, strict byte 001h                   ; 0c 01
     
    75007509    mov dx, strict word 00018h                ; ba 18 00
    75017510    mov ax, strict word 00040h                ; b8 40 00
    7502     call 01757h                               ; e8 47 c3
    7503     jmp short 053aah                          ; eb 98
     7511    call 01757h                               ; e8 29 c3
     7512    jmp short 053c8h                          ; eb 98
    75047513    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7505     jne short 053aah                          ; 75 92
     7514    jne short 053c8h                          ; 75 92
    75067515    mov al, byte [bp-010h]                    ; 8a 46 f0
    75077516    and AL, strict byte 0fbh                  ; 24 fb
     
    75107519    mov dx, strict word 00017h                ; ba 17 00
    75117520    mov ax, strict word 00040h                ; b8 40 00
    7512     call 01757h                               ; e8 2b c3
     7521    call 01757h                               ; e8 0d c3
    75137522    mov al, byte [bp-00eh]                    ; 8a 46 f2
    75147523    test AL, strict byte 002h                 ; a8 02
    7515     je short 05440h                           ; 74 0d
     7524    je short 0545eh                           ; 74 0d
    75167525    and AL, strict byte 0fbh                  ; 24 fb
    75177526    mov byte [bp-004h], al                    ; 88 46 fc
    75187527    movzx bx, al                              ; 0f b6 d8
    75197528    mov dx, 00096h                            ; ba 96 00
    7520     jmp short 0544eh                          ; eb 0e
     7529    jmp short 0546ch                          ; eb 0e
    75217530    mov al, byte [bp-006h]                    ; 8a 46 fa
    75227531    and AL, strict byte 0feh                  ; 24 fe
     
    75257534    mov dx, strict word 00018h                ; ba 18 00
    75267535    mov ax, strict word 00040h                ; b8 40 00
    7527     call 01757h                               ; e8 03 c3
    7528     jmp near 053aah                           ; e9 53 ff
     7536    call 01757h                               ; e8 e5 c2
     7537    jmp near 053c8h                           ; e9 53 ff
    75297538    mov al, byte [bp-010h]                    ; 8a 46 f0
    75307539    or AL, strict byte 008h                   ; 0c 08
     
    75337542    mov dx, strict word 00017h                ; ba 17 00
    75347543    mov ax, strict word 00040h                ; b8 40 00
    7535     call 01757h                               ; e8 ec c2
     7544    call 01757h                               ; e8 ce c2
    75367545    mov al, byte [bp-00eh]                    ; 8a 46 f2
    75377546    test AL, strict byte 002h                 ; a8 02
    7538     je short 0547fh                           ; 74 0d
     7547    je short 0549dh                           ; 74 0d
    75397548    or AL, strict byte 008h                   ; 0c 08
    75407549    mov byte [bp-004h], al                    ; 88 46 fc
    75417550    movzx bx, al                              ; 0f b6 d8
    75427551    mov dx, 00096h                            ; ba 96 00
    7543     jmp short 0548dh                          ; eb 0e
     7552    jmp short 054abh                          ; eb 0e
    75447553    mov al, byte [bp-006h]                    ; 8a 46 fa
    75457554    or AL, strict byte 002h                   ; 0c 02
     
    75487557    mov dx, strict word 00018h                ; ba 18 00
    75497558    mov ax, strict word 00040h                ; b8 40 00
    7550     call 01757h                               ; e8 c4 c2
    7551     jmp near 053aah                           ; e9 14 ff
     7559    call 01757h                               ; e8 a6 c2
     7560    jmp near 053c8h                           ; e9 14 ff
    75527561    mov al, byte [bp-010h]                    ; 8a 46 f0
    75537562    and AL, strict byte 0f7h                  ; 24 f7
     
    75567565    mov dx, strict word 00017h                ; ba 17 00
    75577566    mov ax, strict word 00040h                ; b8 40 00
    7558     call 01757h                               ; e8 ad c2
     7567    call 01757h                               ; e8 8f c2
    75597568    mov al, byte [bp-00eh]                    ; 8a 46 f2
    75607569    test AL, strict byte 002h                 ; a8 02
    7561     je short 054beh                           ; 74 0d
     7570    je short 054dch                           ; 74 0d
    75627571    and AL, strict byte 0f7h                  ; 24 f7
    75637572    mov byte [bp-004h], al                    ; 88 46 fc
    75647573    movzx bx, al                              ; 0f b6 d8
    75657574    mov dx, 00096h                            ; ba 96 00
    7566     jmp short 054cch                          ; eb 0e
     7575    jmp short 054eah                          ; eb 0e
    75677576    mov al, byte [bp-006h]                    ; 8a 46 fa
    75687577    and AL, strict byte 0fdh                  ; 24 fd
     
    75717580    mov dx, strict word 00018h                ; ba 18 00
    75727581    mov ax, strict word 00040h                ; b8 40 00
    7573     call 01757h                               ; e8 85 c2
    7574     jmp near 053aah                           ; e9 d5 fe
     7582    call 01757h                               ; e8 67 c2
     7583    jmp near 053c8h                           ; e9 d5 fe
    75757584    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7576     jne short 054f7h                          ; 75 1c
     7585    jne short 05515h                          ; 75 1c
    75777586    mov al, byte [bp-006h]                    ; 8a 46 fa
    75787587    or AL, strict byte 020h                   ; 0c 20
     
    75817590    mov dx, strict word 00018h                ; ba 18 00
    75827591    mov ax, strict word 00040h                ; b8 40 00
    7583     call 01757h                               ; e8 68 c2
     7592    call 01757h                               ; e8 4a c2
    75847593    mov al, byte [bp-010h]                    ; 8a 46 f0
    75857594    xor AL, strict byte 020h                  ; 34 20
    7586     jmp near 05596h                           ; e9 9f 00
     7595    jmp near 055b4h                           ; e9 9f 00
    75877596    mov al, byte [bp-006h]                    ; 8a 46 fa
    75887597    or AL, strict byte 008h                   ; 0c 08
     
    75917600    mov dx, strict word 00018h                ; ba 18 00
    75927601    mov ax, strict word 00040h                ; b8 40 00
    7593     call 01757h                               ; e8 4c c2
     7602    call 01757h                               ; e8 2e c2
    75947603    mov AL, strict byte 0aeh                  ; b0 ae
    75957604    mov dx, strict word 00064h                ; ba 64 00
    75967605    out DX, AL                                ; ee
    7597     call 0e034h                               ; e8 20 8b
     7606    call 0e034h                               ; e8 02 8b
    75987607    mov dx, strict word 00018h                ; ba 18 00
    75997608    mov ax, strict word 00040h                ; b8 40 00
    7600     call 01749h                               ; e8 2c c2
     7609    call 01749h                               ; e8 0e c2
    76017610    test AL, strict byte 008h                 ; a8 08
    7602     jne short 05514h                          ; 75 f3
    7603     jmp near 053aah                           ; e9 86 fe
     7611    jne short 05532h                          ; 75 f3
     7612    jmp near 053c8h                           ; e9 86 fe
    76047613    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7605     jne near 053aah                           ; 0f 85 7e fe
     7614    jne near 053c8h                           ; 0f 85 7e fe
    76067615    mov al, byte [bp-006h]                    ; 8a 46 fa
    76077616    and AL, strict byte 0dfh                  ; 24 df
     
    76107619    mov dx, strict word 00018h                ; ba 18 00
    76117620    mov ax, strict word 00040h                ; b8 40 00
    7612     call 01757h                               ; e8 17 c2
    7613     jmp near 053aah                           ; e9 67 fe
     7621    call 01757h                               ; e8 f9 c1
     7622    jmp near 053c8h                           ; e9 67 fe
    76147623    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7615     je short 0557dh                           ; 74 34
     7624    je short 0559bh                           ; 74 34
    76167625    mov dx, strict word 0001ah                ; ba 1a 00
    76177626    mov ax, strict word 00040h                ; b8 40 00
    7618     call 01765h                               ; e8 13 c2
     7627    call 01765h                               ; e8 f5 c1
    76197628    mov bx, ax                                ; 89 c3
    76207629    mov dx, strict word 0001ch                ; ba 1c 00
    76217630    mov ax, strict word 00040h                ; b8 40 00
    7622     call 01773h                               ; e8 16 c2
     7631    call 01773h                               ; e8 f8 c1
    76237632    mov bx, 00080h                            ; bb 80 00
    76247633    mov dx, strict word 00071h                ; ba 71 00
    76257634    mov ax, strict word 00040h                ; b8 40 00
    7626     call 01757h                               ; e8 ee c1
     7635    call 01757h                               ; e8 d0 c1
    76277636    mov AL, strict byte 0aeh                  ; b0 ae
    76287637    mov dx, strict word 00064h                ; ba 64 00
     
    76337642    xor dx, dx                                ; 31 d2
    76347643    xor ax, ax                                ; 31 c0
    7635     call 05244h                               ; e8 ca fc
    7636     jmp near 053aah                           ; e9 2d fe
     7644    call 05262h                               ; e8 ca fc
     7645    jmp near 053c8h                           ; e9 2d fe
    76377646    mov al, byte [bp-006h]                    ; 8a 46 fa
    76387647    or AL, strict byte 010h                   ; 0c 10
     
    76417650    mov dx, strict word 00018h                ; ba 18 00
    76427651    mov ax, strict word 00040h                ; b8 40 00
    7643     call 01757h                               ; e8 c6 c1
     7652    call 01757h                               ; e8 a8 c1
    76447653    mov al, byte [bp-010h]                    ; 8a 46 f0
    76457654    xor AL, strict byte 010h                  ; 34 10
     
    76487657    mov dx, strict word 00017h                ; ba 17 00
    76497658    mov ax, strict word 00040h                ; b8 40 00
    7650     call 01757h                               ; e8 b2 c1
    7651     jmp near 053aah                           ; e9 02 fe
     7659    call 01757h                               ; e8 94 c1
     7660    jmp near 053c8h                           ; e9 02 fe
    76527661    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7653     jne near 053aah                           ; 0f 85 fa fd
     7662    jne near 053c8h                           ; 0f 85 fa fd
    76547663    mov al, byte [bp-006h]                    ; 8a 46 fa
    76557664    and AL, strict byte 0efh                  ; 24 ef
     
    76587667    mov dx, strict word 00018h                ; ba 18 00
    76597668    mov ax, strict word 00040h                ; b8 40 00
    7660     call 01757h                               ; e8 93 c1
    7661     jmp near 053aah                           ; e9 e3 fd
     7669    call 01757h                               ; e8 75 c1
     7670    jmp near 053c8h                           ; e9 e3 fd
    76627671    mov al, byte [bp-006h]                    ; 8a 46 fa
    76637672    test AL, strict byte 004h                 ; a8 04
    7664     jne near 053aah                           ; 0f 85 da fd
     7673    jne near 053c8h                           ; 0f 85 da fd
    76657674    or AL, strict byte 004h                   ; 0c 04
    76667675    mov byte [bp-00ah], al                    ; 88 46 f6
     
    76687677    mov dx, strict word 00018h                ; ba 18 00
    76697678    mov ax, strict word 00040h                ; b8 40 00
    7670     call 01757h                               ; e8 76 c1
    7671     jmp near 053aah                           ; e9 c6 fd
     7679    call 01757h                               ; e8 58 c1
     7680    jmp near 053c8h                           ; e9 c6 fd
    76727681    mov al, byte [bp-006h]                    ; 8a 46 fa
    76737682    and AL, strict byte 0fbh                  ; 24 fb
    7674     jmp short 055d2h                          ; eb e7
     7683    jmp short 055f0h                          ; eb e7
    76757684    mov al, byte [bp-010h]                    ; 8a 46 f0
    76767685    and AL, strict byte 00ch                  ; 24 0c
    76777686    cmp AL, strict byte 00ch                  ; 3c 0c
    7678     jne short 05605h                          ; 75 11
     7687    jne short 05623h                          ; 75 11
    76797688    mov bx, 01234h                            ; bb 34 12
    76807689    mov dx, strict word 00072h                ; ba 72 00
    76817690    mov ax, strict word 00040h                ; b8 40 00
    7682     call 01773h                               ; e8 73 c1
     7691    call 01773h                               ; e8 55 c1
    76837692    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    76847693    test byte [bp-00ah], 008h                 ; f6 46 f6 08
    7685     je short 05619h                           ; 74 0e
     7694    je short 05637h                           ; 74 0e
    76867695    and byte [bp-00ah], 0f7h                  ; 80 66 f6 f7
    76877696    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    76887697    mov dx, strict word 00018h                ; ba 18 00
    7689     jmp near 053c2h                           ; e9 a9 fd
     7698    jmp near 053e0h                           ; e9 a9 fd
    76907699    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76917700    test AL, strict byte 080h                 ; a8 80
    7692     je short 05657h                           ; 74 37
     7701    je short 05675h                           ; 74 37
    76937702    cmp AL, strict byte 0fah                  ; 3c fa
    7694     jne short 05634h                          ; 75 10
     7703    jne short 05652h                          ; 75 10
    76957704    mov dx, 00097h                            ; ba 97 00
    76967705    mov ax, strict word 00040h                ; b8 40 00
    7697     call 01749h                               ; e8 1c c1
     7706    call 01749h                               ; e8 fe c0
    76987707    mov dl, al                                ; 88 c2
    76997708    or dl, 010h                               ; 80 ca 10
    7700     jmp short 05648h                          ; eb 14
     7709    jmp short 05666h                          ; eb 14
    77017710    cmp AL, strict byte 0feh                  ; 3c fe
    7702     jne near 053aah                           ; 0f 85 70 fd
     7711    jne near 053c8h                           ; 0f 85 70 fd
    77037712    mov dx, 00097h                            ; ba 97 00
    77047713    mov ax, strict word 00040h                ; b8 40 00
    7705     call 01749h                               ; e8 06 c1
     7714    call 01749h                               ; e8 e8 c0
    77067715    mov dl, al                                ; 88 c2
    77077716    or dl, 020h                               ; 80 ca 20
     
    77097718    mov dx, 00097h                            ; ba 97 00
    77107719    mov ax, strict word 00040h                ; b8 40 00
    7711     call 01757h                               ; e8 03 c1
    7712     jmp near 053aah                           ; e9 53 fd
     7720    call 01757h                               ; e8 e5 c0
     7721    jmp near 053c8h                           ; e9 53 fd
    77137722    cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
    7714     jbe short 0567bh                          ; 76 1e
    7715     mov bx, 00db6h                            ; bb b6 0d
     7723    jbe short 05699h                          ; 76 1e
     7724    mov bx, 00db2h                            ; bb b2 0d
    77167725    mov cx, ds                                ; 8c d9
    77177726    mov ax, strict word 00004h                ; b8 04 00
    7718     call 01a2ah                               ; e8 c2 c3
     7727    call 01a2ah                               ; e8 a4 c3
    77197728    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    77207729    push ax                                   ; 50
    77217730    push 005b3h                               ; 68 b3 05
    77227731    push strict byte 00004h                   ; 6a 04
    7723     call 01a6bh                               ; e8 f6 c3
     7732    call 01a6bh                               ; e8 d8 c3
    77247733    add sp, strict byte 00006h                ; 83 c4 06
    7725     jmp near 053c8h                           ; e9 4d fd
     7734    jmp near 053e6h                           ; e9 4d fd
    77267735    mov al, byte [bp-008h]                    ; 8a 46 f8
    77277736    test AL, strict byte 008h                 ; a8 08
    7728     je short 05694h                           ; 74 12
     7737    je short 056b2h                           ; 74 12
    77297738    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77307739    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7731     mov dl, byte [bx+00e0ah]                  ; 8a 97 0a 0e
    7732     mov ax, word [bx+00e0ah]                  ; 8b 87 0a 0e
    7733     jmp near 05722h                           ; e9 8e 00
     7740    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
     7741    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
     7742    jmp near 05740h                           ; e9 8e 00
    77347743    test AL, strict byte 004h                 ; a8 04
    7735     je short 056aah                           ; 74 12
     7744    je short 056c8h                           ; 74 12
    77367745    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77377746    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7738     mov dl, byte [bx+00e08h]                  ; 8a 97 08 0e
    7739     mov ax, word [bx+00e08h]                  ; 8b 87 08 0e
    7740     jmp near 05722h                           ; e9 78 00
     7747    mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
     7748    mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
     7749    jmp near 05740h                           ; e9 78 00
    77417750    mov al, byte [bp-004h]                    ; 8a 46 fc
    77427751    and AL, strict byte 002h                  ; 24 02
    77437752    test al, al                               ; 84 c0
    7744     jbe short 056c8h                          ; 76 15
     7753    jbe short 056e6h                          ; 76 15
    77457754    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77467755    cmp AL, strict byte 047h                  ; 3c 47
    7747     jc short 056c8h                           ; 72 0e
     7756    jc short 056e6h                           ; 72 0e
    77487757    cmp AL, strict byte 053h                  ; 3c 53
    7749     jnbe short 056c8h                         ; 77 0a
     7758    jnbe short 056e6h                         ; 77 0a
    77507759    mov DL, strict byte 0e0h                  ; b2 e0
    77517760    movzx bx, al                              ; 0f b6 d8
    77527761    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7753     jmp short 0571eh                          ; eb 56
     7762    jmp short 0573ch                          ; eb 56
    77547763    test byte [bp-008h], 003h                 ; f6 46 f8 03
    7755     je short 056fch                           ; 74 2e
     7764    je short 0571ah                           ; 74 2e
    77567765    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77577766    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7758     movzx ax, byte [bx+00e0ch]                ; 0f b6 87 0c 0e
     7767    movzx ax, byte [bx+00e08h]                ; 0f b6 87 08 0e
    77597768    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    77607769    test dx, ax                               ; 85 c2
    7761     je short 056ech                           ; 74 0a
    7762     mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
    7763     mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
    7764     jmp short 056f4h                          ; eb 08
    7765     mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
    7766     mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
     7770    je short 0570ah                           ; 74 0a
     7771    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
     7772    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
     7773    jmp short 05712h                          ; eb 08
     7774    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
     7775    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
    77677776    shr ax, 008h                              ; c1 e8 08
    77687777    mov byte [bp-00ch], al                    ; 88 46 f4
    7769     jmp short 05728h                          ; eb 2c
     7778    jmp short 05746h                          ; eb 2c
    77707779    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77717780    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7772     movzx ax, byte [bx+00e0ch]                ; 0f b6 87 0c 0e
     7781    movzx ax, byte [bx+00e08h]                ; 0f b6 87 08 0e
    77737782    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    77747783    test dx, ax                               ; 85 c2
    7775     je short 0571ah                           ; 74 0a
    7776     mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
    7777     mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
    7778     jmp short 05722h                          ; eb 08
    7779     mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
    7780     mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
     7784    je short 05738h                           ; 74 0a
     7785    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
     7786    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
     7787    jmp short 05740h                          ; eb 08
     7788    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
     7789    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
    77817790    shr ax, 008h                              ; c1 e8 08
    77827791    mov byte [bp-00ch], al                    ; 88 46 f4
    77837792    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    7784     jne short 05748h                          ; 75 1a
     7793    jne short 05766h                          ; 75 1a
    77857794    test dl, dl                               ; 84 d2
    7786     jne short 05748h                          ; 75 16
    7787     mov bx, 00db6h                            ; bb b6 0d
     7795    jne short 05766h                          ; 75 16
     7796    mov bx, 00db2h                            ; bb b2 0d
    77887797    mov cx, ds                                ; 8c d9
    77897798    mov ax, strict word 00004h                ; b8 04 00
    7790     call 01a2ah                               ; e8 ed c2
     7799    call 01a2ah                               ; e8 cf c2
    77917800    push 005eah                               ; 68 ea 05
    77927801    push strict byte 00004h                   ; 6a 04
    7793     call 01a6bh                               ; e8 26 c3
     7802    call 01a6bh                               ; e8 08 c3
    77947803    add sp, strict byte 00004h                ; 83 c4 04
    77957804    xor dh, dh                                ; 30 f6
    77967805    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    7797     jmp near 05577h                           ; e9 26 fe
    7798 dequeue_key_:                                ; 0xf5751 LB 0x94
     7806    jmp near 05595h                           ; e9 26 fe
     7807dequeue_key_:                                ; 0xf576f LB 0x94
    77997808    push bp                                   ; 55
    78007809    mov bp, sp                                ; 89 e5
     
    78097818    mov dx, strict word 0001ah                ; ba 1a 00
    78107819    mov ax, strict word 00040h                ; b8 40 00
    7811     call 01765h                               ; e8 fa bf
     7820    call 01765h                               ; e8 dc bf
    78127821    mov bx, ax                                ; 89 c3
    78137822    mov dx, strict word 0001ch                ; ba 1c 00
    78147823    mov ax, strict word 00040h                ; b8 40 00
    7815     call 01765h                               ; e8 ef bf
     7824    call 01765h                               ; e8 d1 bf
    78167825    cmp bx, ax                                ; 39 c3
    7817     je short 057b7h                           ; 74 3d
     7826    je short 057d5h                           ; 74 3d
    78187827    mov dx, bx                                ; 89 da
    78197828    mov ax, strict word 00040h                ; b8 40 00
    7820     call 01749h                               ; e8 c7 bf
     7829    call 01749h                               ; e8 a9 bf
    78217830    mov cl, al                                ; 88 c1
    78227831    lea dx, [bx+001h]                         ; 8d 57 01
    78237832    mov ax, strict word 00040h                ; b8 40 00
    7824     call 01749h                               ; e8 bc bf
     7833    call 01749h                               ; e8 9e bf
    78257834    mov es, [bp-008h]                         ; 8e 46 f8
    78267835    mov byte [es:si], cl                      ; 26 88 0c
     
    78287837    mov byte [es:di], al                      ; 26 88 05
    78297838    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7830     je short 057b2h                           ; 74 13
     7839    je short 057d0h                           ; 74 13
    78317840    inc bx                                    ; 43
    78327841    inc bx                                    ; 43
    78337842    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7834     jc short 057a9h                           ; 72 03
     7843    jc short 057c7h                           ; 72 03
    78357844    mov bx, strict word 0001eh                ; bb 1e 00
    78367845    mov dx, strict word 0001ah                ; ba 1a 00
    78377846    mov ax, strict word 00040h                ; b8 40 00
    7838     call 01773h                               ; e8 c1 bf
     7847    call 01773h                               ; e8 a3 bf
    78397848    mov ax, strict word 00001h                ; b8 01 00
    7840     jmp short 057b9h                          ; eb 02
     7849    jmp short 057d7h                          ; eb 02
    78417850    xor ax, ax                                ; 31 c0
    78427851    lea sp, [bp-004h]                         ; 8d 66 fc
     
    78497858    or cl, byte [bx+di]                       ; 0a 09
    78507859    add ax, 00102h                            ; 05 02 01
    7851     add byte [bx-064a6h], al                  ; 00 87 5a 9b
     7860    add byte [di-046a6h], ah                  ; 00 a5 5a b9
    78527861    pop ax                                    ; 58
    7853     loop 0582bh                               ; e2 58
    7854     das                                       ; 2f
     7862    add byte [bx+di+04dh], bl                 ; 00 59 4d
    78557863    pop cx                                    ; 59
    7856     aas                                       ; 3f
     7864    pop bp                                    ; 5d
    78577865    pop cx                                    ; 59
    7858     imul bx, word [bx+di+072h], 0e359h        ; 69 59 72 59 e3
     7866    xchg word [bx+di-070h], bx                ; 87 59 90
    78597867    pop cx                                    ; 59
    7860     adc AL, strict byte 05ah                  ; 14 5a
    7861     inc dx                                    ; 42
     7868    add word [bp+si+032h], bx                 ; 01 5a 32
    78627869    pop dx                                    ; 5a
    7863     jl short 0583dh                           ; 7c 5a
    7864     db  0cah
     7870    pushaw                                    ; 60
    78657871    pop dx                                    ; 5a
    7866 _int16_function:                             ; 0xf57e5 LB 0x2eb
     7872    db  09ah
     7873    pop dx                                    ; 5a
     7874    db  0e8h
     7875    pop dx                                    ; 5a
     7876_int16_function:                             ; 0xf5803 LB 0x2eb
    78677877    push bp                                   ; 55
    78687878    mov bp, sp                                ; 89 e5
     
    78717881    mov dx, strict word 00017h                ; ba 17 00
    78727882    mov ax, strict word 00040h                ; b8 40 00
    7873     call 01749h                               ; e8 54 bf
     7883    call 01749h                               ; e8 36 bf
    78747884    mov cl, al                                ; 88 c1
    78757885    mov bl, al                                ; 88 c3
    78767886    mov dx, 00097h                            ; ba 97 00
    78777887    mov ax, strict word 00040h                ; b8 40 00
    7878     call 01749h                               ; e8 47 bf
     7888    call 01749h                               ; e8 29 bf
    78797889    mov bh, al                                ; 88 c7
    78807890    movzx dx, cl                              ; 0f b6 d1
     
    78857895    xor al, dl                                ; 30 d0
    78867896    test ax, ax                               ; 85 c0
    7887     je short 05879h                           ; 74 62
     7897    je short 05897h                           ; 74 62
    78887898    cli                                       ; fa
    78897899    mov AL, strict byte 0edh                  ; b0 ed
     
    78957905    ; sub ah, ah                                ; 2a e4
    78967906    test AL, strict byte 001h                 ; a8 01
    7897     jne short 05830h                          ; 75 08
     7907    jne short 0584eh                          ; 75 08
    78987908    mov AL, strict byte 021h                  ; b0 21
    78997909    mov dx, 00080h                            ; ba 80 00
    79007910    out DX, AL                                ; ee
    7901     jmp short 0581eh                          ; eb ee
     7911    jmp short 0583ch                          ; eb ee
    79027912    mov dx, strict word 00060h                ; ba 60 00
    79037913    in AL, DX                                 ; ec
     
    79057915    ; sub ah, ah                                ; 2a e4
    79067916    cmp ax, 000fah                            ; 3d fa 00
    7907     jne short 05878h                          ; 75 3d
     7917    jne short 05896h                          ; 75 3d
    79087918    and bh, 0c8h                              ; 80 e7 c8
    79097919    movzx dx, bl                              ; 0f b6 d3
     
    79217931    ; sub ah, ah                                ; 2a e4
    79227932    test AL, strict byte 001h                 ; a8 01
    7923     jne short 05866h                          ; 75 08
     7933    jne short 05884h                          ; 75 08
    79247934    mov AL, strict byte 021h                  ; b0 21
    79257935    mov dx, 00080h                            ; ba 80 00
    79267936    out DX, AL                                ; ee
    7927     jmp short 05854h                          ; eb ee
     7937    jmp short 05872h                          ; eb ee
    79287938    mov dx, strict word 00060h                ; ba 60 00
    79297939    in AL, DX                                 ; ec
     
    79337943    mov dx, 00097h                            ; ba 97 00
    79347944    mov ax, strict word 00040h                ; b8 40 00
    7935     call 01757h                               ; e8 df be
     7945    call 01757h                               ; e8 c1 be
    79367946    sti                                       ; fb
    79377947    mov ax, word [bp+012h]                    ; 8b 46 12
    79387948    shr ax, 008h                              ; c1 e8 08
    79397949    cmp ax, 000a2h                            ; 3d a2 00
    7940     jnbe near 05a87h                          ; 0f 87 01 02
     7950    jnbe near 05aa5h                          ; 0f 87 01 02
    79417951    push CS                                   ; 0e
    79427952    pop ES                                    ; 07
    79437953    mov cx, strict word 0000ch                ; b9 0c 00
    7944     mov di, 057c2h                            ; bf c2 57
     7954    mov di, 057e0h                            ; bf e0 57
    79457955    repne scasb                               ; f2 ae
    79467956    sal cx, 1                                 ; d1 e1
    79477957    mov di, cx                                ; 89 cf
    7948     mov ax, word [cs:di+057cdh]               ; 2e 8b 85 cd 57
     7958    mov ax, word [cs:di+057ebh]               ; 2e 8b 85 eb 57
    79497959    jmp ax                                    ; ff e0
    79507960    push strict byte 00001h                   ; 6a 01
     
    79537963    mov dx, ss                                ; 8c d2
    79547964    lea ax, [bp-006h]                         ; 8d 46 fa
    7955     call 05751h                               ; e8 a7 fe
     7965    call 0576fh                               ; e8 a7 fe
    79567966    test ax, ax                               ; 85 c0
    7957     jne short 058b9h                          ; 75 0b
     7967    jne short 058d7h                          ; 75 0b
    79587968    push 00621h                               ; 68 21 06
    79597969    push strict byte 00007h                   ; 6a 07
    7960     call 01a6bh                               ; e8 b5 c1
     7970    call 01a6bh                               ; e8 97 c1
    79617971    add sp, strict byte 00004h                ; 83 c4 04
    79627972    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7963     je short 058c5h                           ; 74 06
     7973    je short 058e3h                           ; 74 06
    79647974    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7965     je short 058cbh                           ; 74 06
     7975    je short 058e9h                           ; 74 06
    79667976    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7967     jne short 058cfh                          ; 75 04
     7977    jne short 058edh                          ; 75 04
    79687978    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    79697979    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    79727982    or dx, ax                                 ; 09 c2
    79737983    mov word [bp+012h], dx                    ; 89 56 12
    7974     jmp near 05acah                           ; e9 e8 01
     7984    jmp near 05ae8h                           ; e9 e8 01
    79757985    mov ax, word [bp+018h]                    ; 8b 46 18
    79767986    mov word [bp+01eh], ax                    ; 89 46 1e
     
    79807990    mov dx, ss                                ; 8c d2
    79817991    lea ax, [bp-006h]                         ; 8d 46 fa
    7982     call 05751h                               ; e8 5a fe
     7992    call 0576fh                               ; e8 5a fe
    79837993    test ax, ax                               ; 85 c0
    7984     jne short 05902h                          ; 75 07
     7994    jne short 05920h                          ; 75 07
    79857995    or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
    7986     jmp near 05acah                           ; e9 c8 01
     7996    jmp near 05ae8h                           ; e9 c8 01
    79877997    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7988     je short 0590eh                           ; 74 06
     7998    je short 0592ch                           ; 74 06
    79897999    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7990     je short 05914h                           ; 74 06
     8000    je short 05932h                           ; 74 06
    79918001    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7992     jne short 05918h                          ; 75 04
     8002    jne short 05936h                          ; 75 04
    79938003    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    79948004    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    79988008    mov word [bp+012h], dx                    ; 89 56 12
    79998009    and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
    8000     jmp near 05acah                           ; e9 9b 01
     8010    jmp near 05ae8h                           ; e9 9b 01
    80018011    mov dx, strict word 00017h                ; ba 17 00
    80028012    mov ax, strict word 00040h                ; b8 40 00
    8003     call 01749h                               ; e8 11 be
     8013    call 01749h                               ; e8 f3 bd
    80048014    mov dx, word [bp+012h]                    ; 8b 56 12
    80058015    mov dl, al                                ; 88 c2
    8006     jmp short 058dch                          ; eb 9d
     8016    jmp short 058fah                          ; eb 9d
    80078017    mov al, byte [bp+010h]                    ; 8a 46 10
    80088018    movzx dx, al                              ; 0f b6 d0
     
    80108020    shr ax, 008h                              ; c1 e8 08
    80118021    xor ah, ah                                ; 30 e4
    8012     call 05244h                               ; e8 f4 f8
     8022    call 05262h                               ; e8 f4 f8
    80138023    test ax, ax                               ; 85 c0
    8014     jne short 05961h                          ; 75 0d
     8024    jne short 0597fh                          ; 75 0d
    80158025    mov ax, word [bp+012h]                    ; 8b 46 12
    80168026    xor al, al                                ; 30 c0
    80178027    or AL, strict byte 001h                   ; 0c 01
    80188028    mov word [bp+012h], ax                    ; 89 46 12
    8019     jmp near 05acah                           ; e9 69 01
     8029    jmp near 05ae8h                           ; e9 69 01
    80208030    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8021     jmp near 05acah                           ; e9 61 01
     8031    jmp near 05ae8h                           ; e9 61 01
    80228032    mov ax, word [bp+012h]                    ; 8b 46 12
    80238033    xor al, al                                ; 30 c0
    80248034    or AL, strict byte 030h                   ; 0c 30
    8025     jmp short 0595bh                          ; eb e9
     8035    jmp short 05979h                          ; eb e9
    80268036    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    80278037    xor cx, cx                                ; 31 c9
     
    80368046    ; sub ah, ah                                ; 2a e4
    80378047    test AL, strict byte 001h                 ; a8 01
    8038     jne short 05999h                          ; 75 0d
     8048    jne short 059b7h                          ; 75 0d
    80398049    dec bx                                    ; 4b
    80408050    test bx, bx                               ; 85 db
    8041     jbe short 05999h                          ; 76 08
     8051    jbe short 059b7h                          ; 76 08
    80428052    mov dx, 00080h                            ; ba 80 00
    80438053    in AL, DX                                 ; ec
    80448054    db  02ah, 0e4h
    80458055    ; sub ah, ah                                ; 2a e4
    8046     jmp short 05982h                          ; eb e9
     8056    jmp short 059a0h                          ; eb e9
    80478057    test bx, bx                               ; 85 db
    8048     jbe short 059ddh                          ; 76 40
     8058    jbe short 059fbh                          ; 76 40
    80498059    mov dx, strict word 00060h                ; ba 60 00
    80508060    in AL, DX                                 ; ec
     
    80528062    ; sub ah, ah                                ; 2a e4
    80538063    cmp ax, 000fah                            ; 3d fa 00
    8054     jne short 059ddh                          ; 75 35
     8064    jne short 059fbh                          ; 75 35
    80558065    mov bx, strict word 0ffffh                ; bb ff ff
    80568066    mov dx, strict word 00064h                ; ba 64 00
     
    80598069    ; sub ah, ah                                ; 2a e4
    80608070    test AL, strict byte 001h                 ; a8 01
    8061     jne short 059c2h                          ; 75 0d
     8071    jne short 059e0h                          ; 75 0d
    80628072    dec bx                                    ; 4b
    80638073    test bx, bx                               ; 85 db
    8064     jbe short 059c2h                          ; 76 08
     8074    jbe short 059e0h                          ; 76 08
    80658075    mov dx, 00080h                            ; ba 80 00
    80668076    in AL, DX                                 ; ec
    80678077    db  02ah, 0e4h
    80688078    ; sub ah, ah                                ; 2a e4
    8069     jmp short 059abh                          ; eb e9
     8079    jmp short 059c9h                          ; eb e9
    80708080    test bx, bx                               ; 85 db
    8071     jbe short 059d4h                          ; 76 0e
     8081    jbe short 059f2h                          ; 76 0e
    80728082    shr cx, 008h                              ; c1 e9 08
    80738083    mov dx, strict word 00060h                ; ba 60 00
     
    80798089    dec byte [bp-004h]                        ; fe 4e fc
    80808090    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8081     jnbe short 059a8h                         ; 77 cb
     8091    jnbe short 059c6h                         ; 77 cb
    80828092    mov word [bp+00ch], cx                    ; 89 4e 0c
    8083     jmp near 05acah                           ; e9 e7 00
     8093    jmp near 05ae8h                           ; e9 e7 00
    80848094    push strict byte 00001h                   ; 6a 01
    80858095    mov cx, ss                                ; 8c d1
     
    80878097    mov dx, ss                                ; 8c d2
    80888098    lea ax, [bp-006h]                         ; 8d 46 fa
    8089     call 05751h                               ; e8 5f fd
     8099    call 0576fh                               ; e8 5f fd
    80908100    test ax, ax                               ; 85 c0
    8091     jne short 05a01h                          ; 75 0b
     8101    jne short 05a1fh                          ; 75 0b
    80928102    push 00621h                               ; 68 21 06
    80938103    push strict byte 00007h                   ; 6a 07
    8094     call 01a6bh                               ; e8 6d c0
     8104    call 01a6bh                               ; e8 4f c0
    80958105    add sp, strict byte 00004h                ; 83 c4 04
    80968106    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8097     je near 058cfh                            ; 0f 84 c6 fe
     8107    je near 058edh                            ; 0f 84 c6 fe
    80988108    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8099     je near 058cbh                            ; 0f 84 ba fe
    8100     jmp near 058cfh                           ; e9 bb fe
     8109    je near 058e9h                            ; 0f 84 ba fe
     8110    jmp near 058edh                           ; e9 bb fe
    81018111    mov ax, word [bp+018h]                    ; 8b 46 18
    81028112    mov word [bp+01eh], ax                    ; 89 46 1e
     
    81068116    mov dx, ss                                ; 8c d2
    81078117    lea ax, [bp-006h]                         ; 8d 46 fa
    8108     call 05751h                               ; e8 28 fd
     8118    call 0576fh                               ; e8 28 fd
    81098119    test ax, ax                               ; 85 c0
    8110     je near 058fbh                            ; 0f 84 cc fe
     8120    je near 05919h                            ; 0f 84 cc fe
    81118121    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8112     je near 05918h                            ; 0f 84 e1 fe
     8122    je near 05936h                            ; 0f 84 e1 fe
    81138123    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8114     je near 05914h                            ; 0f 84 d5 fe
    8115     jmp near 05918h                           ; e9 d6 fe
     8124    je near 05932h                            ; 0f 84 d5 fe
     8125    jmp near 05936h                           ; e9 d6 fe
    81168126    mov dx, strict word 00017h                ; ba 17 00
    81178127    mov ax, strict word 00040h                ; b8 40 00
    8118     call 01749h                               ; e8 fe bc
     8128    call 01749h                               ; e8 e0 bc
    81198129    mov dx, word [bp+012h]                    ; 8b 56 12
    81208130    mov dl, al                                ; 88 c2
     
    81228132    mov dx, strict word 00018h                ; ba 18 00
    81238133    mov ax, strict word 00040h                ; b8 40 00
    8124     call 01749h                               ; e8 ed bc
     8134    call 01749h                               ; e8 cf bc
    81258135    mov bl, al                                ; 88 c3
    81268136    and bl, 073h                              ; 80 e3 73
    81278137    mov dx, 00096h                            ; ba 96 00
    81288138    mov ax, strict word 00040h                ; b8 40 00
    8129     call 01749h                               ; e8 df bc
     8139    call 01749h                               ; e8 c1 bc
    81308140    and AL, strict byte 00ch                  ; 24 0c
    81318141    or bl, al                                 ; 08 c3
     
    81348144    movzx ax, bl                              ; 0f b6 c3
    81358145    sal ax, 008h                              ; c1 e0 08
    8136     jmp near 058dah                           ; e9 5e fe
     8146    jmp near 058f8h                           ; e9 5e fe
    81378147    mov ax, word [bp+012h]                    ; 8b 46 12
    81388148    xor ah, ah                                ; 30 e4
    81398149    or ah, 080h                               ; 80 cc 80
    8140     jmp near 0595bh                           ; e9 d4 fe
    8141     mov bx, 00db6h                            ; bb b6 0d
     8150    jmp near 05979h                           ; e9 d4 fe
     8151    mov bx, 00db2h                            ; bb b2 0d
    81428152    mov cx, ds                                ; 8c d9
    81438153    mov ax, strict word 00004h                ; b8 04 00
    8144     call 01a2ah                               ; e8 98 bf
     8154    call 01a2ah                               ; e8 7a bf
    81458155    mov ax, word [bp+012h]                    ; 8b 46 12
    81468156    shr ax, 008h                              ; c1 e8 08
     
    81488158    push 00645h                               ; 68 45 06
    81498159    push strict byte 00004h                   ; 6a 04
    8150     call 01a6bh                               ; e8 ca bf
     8160    call 01a6bh                               ; e8 ac bf
    81518161    add sp, strict byte 00006h                ; 83 c4 06
    8152     mov bx, 00db6h                            ; bb b6 0d
     8162    mov bx, 00db2h                            ; bb b2 0d
    81538163    mov cx, ds                                ; 8c d9
    81548164    mov ax, strict word 00004h                ; b8 04 00
    8155     call 01a2ah                               ; e8 7b bf
     8165    call 01a2ah                               ; e8 5d bf
    81568166    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81578167    push ax                                   ; 50
     
    81648174    push 0066dh                               ; 68 6d 06
    81658175    push strict byte 00004h                   ; 6a 04
    8166     call 01a6bh                               ; e8 a4 bf
     8176    call 01a6bh                               ; e8 86 bf
    81678177    add sp, strict byte 0000ch                ; 83 c4 0c
    81688178    lea sp, [bp-002h]                         ; 8d 66 fe
     
    81708180    pop bp                                    ; 5d
    81718181    retn                                      ; c3
    8172 set_geom_lba_:                               ; 0xf5ad0 LB 0xe5
     8182set_geom_lba_:                               ; 0xf5aee LB 0xe5
    81738183    push bx                                   ; 53
    81748184    push cx                                   ; 51
     
    81858195    mov dx, word [bp+00ch]                    ; 8b 56 0c
    81868196    mov si, strict word 00020h                ; be 20 00
    8187     call 0a0f0h                               ; e8 f5 45
     8197    call 0a110h                               ; e8 f7 45
    81888198    test ax, ax                               ; 85 c0
    8189     jne short 05b0bh                          ; 75 0c
     8199    jne short 05b29h                          ; 75 0c
    81908200    test bx, bx                               ; 85 db
    8191     jne short 05b0bh                          ; 75 08
     8201    jne short 05b29h                          ; 75 08
    81928202    test cx, cx                               ; 85 c9
    8193     jne short 05b0bh                          ; 75 04
     8203    jne short 05b29h                          ; 75 04
    81948204    test dx, dx                               ; 85 d2
    8195     je short 05b12h                           ; 74 07
     8205    je short 05b30h                           ; 74 07
    81968206    mov bx, strict word 0ffffh                ; bb ff ff
    81978207    mov si, bx                                ; 89 de
    8198     jmp short 05b18h                          ; eb 06
     8208    jmp short 05b36h                          ; eb 06
    81998209    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    82008210    mov si, word [bp+00eh]                    ; 8b 76 0e
    82018211    mov word [bp-004h], bx                    ; 89 5e fc
    82028212    xor bx, bx                                ; 31 db
    8203     jmp short 05b24h                          ; eb 05
     8213    jmp short 05b42h                          ; eb 05
    82048214    cmp bx, strict byte 00004h                ; 83 fb 04
    8205     jnl short 05b47h                          ; 7d 23
     8215    jnl short 05b65h                          ; 7d 23
    82068216    mov ax, word [bp-006h]                    ; 8b 46 fa
    82078217    cmp si, ax                                ; 39 c6
    8208     jc short 05b35h                           ; 72 0a
    8209     jne short 05b3eh                          ; 75 11
     8218    jc short 05b53h                           ; 72 0a
     8219    jne short 05b5ch                          ; 75 11
    82108220    mov ax, word [bp-004h]                    ; 8b 46 fc
    82118221    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8212     jnbe short 05b3eh                         ; 77 09
     8222    jnbe short 05b5ch                         ; 77 09
    82138223    mov ax, word [bp-002h]                    ; 8b 46 fe
    82148224    inc ax                                    ; 40
     
    82188228    rcr word [bp-008h], 1                     ; d1 5e f8
    82198229    inc bx                                    ; 43
    8220     jmp short 05b1fh                          ; eb d8
     8230    jmp short 05b3dh                          ; eb d8
    82218231    mov ax, word [bp-002h]                    ; 8b 46 fe
    82228232    xor dx, dx                                ; 31 d2
    82238233    mov bx, strict word 0003fh                ; bb 3f 00
    82248234    xor cx, cx                                ; 31 c9
    8225     call 0a070h                               ; e8 1c 45
     8235    call 0a090h                               ; e8 1e 45
    82268236    mov bx, ax                                ; 89 c3
    82278237    mov cx, dx                                ; 89 d1
    82288238    mov ax, word [bp-004h]                    ; 8b 46 fc
    82298239    mov dx, si                                ; 89 f2
    8230     call 0a0b0h                               ; e8 50 45
     8240    call 0a0d0h                               ; e8 52 45
    82318241    mov word [es:di+002h], ax                 ; 26 89 45 02
    82328242    cmp ax, 00400h                            ; 3d 00 04
    8233     jbe short 05b6fh                          ; 76 06
     8243    jbe short 05b8dh                          ; 76 06
    82348244    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    82358245    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    82428252    pop bx                                    ; 5b
    82438253    retn 00008h                               ; c2 08 00
    8244     inc bx                                    ; 43
     8254    popaw                                     ; 61
    82458255    pop sp                                    ; 5c
    8246     imul bx, word [si-06ah], 0965ch           ; 69 5c 96 5c 96
     8256    xchg word [si-04ch], bx                   ; 87 5c b4
    82478257    pop sp                                    ; 5c
    8248     xchg si, ax                               ; 96
    8249     pop sp                                    ; 5c
    8250     jnbe short 05bedh                         ; 77 5e
    8251     movsw                                     ; a5
     8258    mov AH, strict byte 05ch                  ; b4 5c
     8259    mov AH, strict byte 05ch                  ; b4 5c
     8260    xchg bp, ax                               ; 95
     8261    pop si                                    ; 5e
     8262    retn                                      ; c3
    82528263    pop di                                    ; 5f
    8253     movsw                                     ; a5
     8264    retn                                      ; c3
    82548265    pop di                                    ; 5f
    8255     nop                                       ; 90
     8266    scasb                                     ; ae
    82568267    pop si                                    ; 5e
    8257     db  082h, 05fh, 0a5h, 05fh
    8258     ; sbb byte [bx-05bh], 05fh                  ; 82 5f a5 5f
    8259     movsw                                     ; a5
     8268    mov AL, byte [0c35fh]                     ; a0 5f c3
    82608269    pop di                                    ; 5f
    8261     db  082h, 05fh, 082h, 05fh
    8262     ; sbb byte [bx-07eh], 05fh                  ; 82 5f 82 5f
    8263     movsw                                     ; a5
     8270    retn                                      ; c3
    82648271    pop di                                    ; 5f
    8265     movsw                                     ; a5
     8272    mov AL, byte [0a05fh]                     ; a0 5f a0
    82668273    pop di                                    ; 5f
    8267     push ES                                   ; 06
     8274    retn                                      ; c3
    82688275    pop di                                    ; 5f
    8269     db  082h, 05fh, 0a5h, 05fh
    8270     ; sbb byte [bx-05bh], 05fh                  ; 82 5f a5 5f
    8271     movsw                                     ; a5
     8276    retn                                      ; c3
    82728277    pop di                                    ; 5f
    8273     db  082h, 05fh, 036h, 05fh
    8274     ; sbb byte [bx+036h], 05fh                  ; 82 5f 36 5f
    8275     movsw                                     ; a5
     8278    and AL, strict byte 05fh                  ; 24 5f
     8279    mov AL, byte [0c35fh]                     ; a0 5f c3
    82768280    pop di                                    ; 5f
    8277     movsw                                     ; a5
     8281    retn                                      ; c3
    82788282    pop di                                    ; 5f
    8279     movsw                                     ; a5
     8283    mov AL, byte [0545fh]                     ; a0 5f 54
    82808284    pop di                                    ; 5f
    8281 _int13_harddisk:                             ; 0xf5bb5 LB 0x44e
     8285    retn                                      ; c3
     8286    pop di                                    ; 5f
     8287    retn                                      ; c3
     8288    pop di                                    ; 5f
     8289    retn                                      ; c3
     8290    pop di                                    ; 5f
     8291_int13_harddisk:                             ; 0xf5bd3 LB 0x44e
    82828292    push bp                                   ; 55
    82838293    mov bp, sp                                ; 89 e5
     
    82868296    mov dx, strict word 0000eh                ; ba 0e 00
    82878297    mov ax, strict word 00040h                ; b8 40 00
    8288     call 01765h                               ; e8 9d bb
     8298    call 01765h                               ; e8 7f bb
    82898299    mov si, 00122h                            ; be 22 01
    82908300    mov word [bp-004h], ax                    ; 89 46 fc
     
    82928302    mov dx, 0008eh                            ; ba 8e 00
    82938303    mov ax, strict word 00040h                ; b8 40 00
    8294     call 01757h                               ; e8 7e bb
     8304    call 01757h                               ; e8 60 bb
    82958305    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82968306    xor ah, ah                                ; 30 e4
    82978307    cmp ax, 00080h                            ; 3d 80 00
    8298     jc short 05be8h                           ; 72 05
     8308    jc short 05c06h                           ; 72 05
    82998309    cmp ax, 00090h                            ; 3d 90 00
    8300     jc short 05c06h                           ; 72 1e
     8310    jc short 05c24h                           ; 72 1e
    83018311    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83028312    xor ah, ah                                ; 30 e4
     
    83088318    push 0069fh                               ; 68 9f 06
    83098319    push strict byte 00004h                   ; 6a 04
    8310     call 01a6bh                               ; e8 6b be
     8320    call 01a6bh                               ; e8 4d be
    83118321    add sp, strict byte 0000ah                ; 83 c4 0a
    8312     jmp near 05fc0h                           ; e9 ba 03
     8322    jmp near 05fdeh                           ; e9 ba 03
    83138323    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83148324    xor ah, ah                                ; 30 e4
     
    83198329    mov byte [bp-002h], dl                    ; 88 56 fe
    83208330    cmp dl, 010h                              ; 80 fa 10
    8321     jc short 05c2fh                           ; 72 10
     8331    jc short 05c4dh                           ; 72 10
    83228332    push ax                                   ; 50
    83238333    mov ax, word [bp+016h]                    ; 8b 46 16
     
    83268336    push 00690h                               ; 68 90 06
    83278337    push 006cah                               ; 68 ca 06
    8328     jmp short 05bfbh                          ; eb cc
     8338    jmp short 05c19h                          ; eb cc
    83298339    mov bx, word [bp+016h]                    ; 8b 5e 16
    83308340    shr bx, 008h                              ; c1 eb 08
    83318341    cmp bx, strict byte 00018h                ; 83 fb 18
    8332     jnbe near 05fa5h                          ; 0f 87 69 03
     8342    jnbe near 05fc3h                          ; 0f 87 69 03
    83338343    add bx, bx                                ; 01 db
    8334     jmp word [cs:bx+05b83h]                   ; 2e ff a7 83 5b
     8344    jmp word [cs:bx+05ba1h]                   ; 2e ff a7 a1 5b
    83358345    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8336     jnc near 05c52h                           ; 0f 83 07 00
     8346    jnc near 05c70h                           ; 0f 83 07 00
    83378347    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    8338     call 01e75h                               ; e8 23 c2
     8348    call 01e75h                               ; e8 05 c2
    83398349    mov byte [bp+017h], 000h                  ; c6 46 17 00
    83408350    xor bx, bx                                ; 31 db
    83418351    mov dx, strict word 00074h                ; ba 74 00
    83428352    mov ax, strict word 00040h                ; b8 40 00
    8343     call 01757h                               ; e8 f6 ba
     8353    call 01757h                               ; e8 d8 ba
    83448354    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    83458355    mov sp, bp                                ; 89 ec
     
    83488358    mov dx, strict word 00074h                ; ba 74 00
    83498359    mov ax, strict word 00040h                ; b8 40 00
    8350     call 01749h                               ; e8 d7 ba
     8360    call 01749h                               ; e8 b9 ba
    83518361    mov cl, al                                ; 88 c1
    83528362    mov dx, word [bp+016h]                    ; 8b 56 16
     
    83598369    mov dx, strict word 00074h                ; ba 74 00
    83608370    mov ax, strict word 00040h                ; b8 40 00
    8361     call 01757h                               ; e8 c8 ba
     8371    call 01757h                               ; e8 aa ba
    83628372    test cl, cl                               ; 84 c9
    8363     je short 05c56h                           ; 74 c3
    8364     jmp near 05fdch                           ; e9 46 03
     8373    je short 05c74h                           ; 74 c3
     8374    jmp near 05ffah                           ; e9 46 03
    83658375    mov ax, word [bp+016h]                    ; 8b 46 16
    83668376    xor ah, ah                                ; 30 e4
     
    83828392    mov ax, word [bp-00ch]                    ; 8b 46 f4
    83838393    cmp ax, 00080h                            ; 3d 80 00
    8384     jnbe short 05cd1h                         ; 77 04
     8394    jnbe short 05cefh                         ; 77 04
    83858395    test ax, ax                               ; 85 c0
    8386     jne short 05cf4h                          ; 75 23
    8387     mov bx, 00db6h                            ; bb b6 0d
     8396    jne short 05d12h                          ; 75 23
     8397    mov bx, 00db2h                            ; bb b2 0d
    83888398    mov cx, ds                                ; 8c d9
    83898399    mov ax, strict word 00004h                ; b8 04 00
    8390     call 01a2ah                               ; e8 4e bd
     8400    call 01a2ah                               ; e8 30 bd
    83918401    mov ax, word [bp+016h]                    ; 8b 46 16
    83928402    shr ax, 008h                              ; c1 e8 08
     
    83958405    push 006fch                               ; 68 fc 06
    83968406    push strict byte 00004h                   ; 6a 04
    8397     call 01a6bh                               ; e8 7d bd
     8407    call 01a6bh                               ; e8 5f bd
    83988408    add sp, strict byte 00008h                ; 83 c4 08
    8399     jmp near 05fc0h                           ; e9 cc 02
     8409    jmp near 05fdeh                           ; e9 cc 02
    84008410    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    84018411    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    84088418    mov word [bp-00ah], dx                    ; 89 56 f6
    84098419    cmp di, ax                                ; 39 c7
    8410     jnc short 05d21h                          ; 73 0c
     8420    jnc short 05d3fh                          ; 73 0c
    84118421    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8412     jbe short 05d21h                          ; 76 07
     8422    jbe short 05d3fh                          ; 76 07
    84138423    mov ax, word [bp-006h]                    ; 8b 46 fa
    84148424    cmp ax, dx                                ; 39 d0
    8415     jbe short 05d4fh                          ; 76 2e
    8416     mov bx, 00db6h                            ; bb b6 0d
     8425    jbe short 05d6dh                          ; 76 2e
     8426    mov bx, 00db2h                            ; bb b2 0d
    84178427    mov cx, ds                                ; 8c d9
    84188428    mov ax, strict word 00004h                ; b8 04 00
    8419     call 01a2ah                               ; e8 fe bc
     8429    call 01a2ah                               ; e8 e0 bc
    84208430    push dword [bp-008h]                      ; 66 ff 76 f8
    84218431    push di                                   ; 57
     
    84298439    push 00724h                               ; 68 24 07
    84308440    push strict byte 00004h                   ; 6a 04
    8431     call 01a6bh                               ; e8 22 bd
     8441    call 01a6bh                               ; e8 04 bd
    84328442    add sp, strict byte 00010h                ; 83 c4 10
    8433     jmp near 05fc0h                           ; e9 71 02
     8443    jmp near 05fdeh                           ; e9 71 02
    84348444    mov ax, word [bp+016h]                    ; 8b 46 16
    84358445    shr ax, 008h                              ; c1 e8 08
    84368446    cmp ax, strict word 00004h                ; 3d 04 00
    8437     jne short 05d5dh                          ; 75 03
    8438     jmp near 05c52h                           ; e9 f5 fe
     8447    jne short 05d7bh                          ; 75 03
     8448    jmp near 05c70h                           ; e9 f5 fe
    84398449    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    84408450    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    84428452    add bx, si                                ; 01 f3
    84438453    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8444     jne short 05d7eh                          ; 75 0f
     8454    jne short 05d9ch                          ; 75 0f
    84458455    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    84468456    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8447     jne short 05d7eh                          ; 75 06
     8457    jne short 05d9ch                          ; 75 06
    84488458    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8449     jc short 05daeh                           ; 72 30
     8459    jc short 05dcch                           ; 72 30
    84508460    mov ax, di                                ; 89 f8
    84518461    xor dx, dx                                ; 31 d2
    84528462    mov bx, cx                                ; 89 cb
    84538463    xor cx, cx                                ; 31 c9
    8454     call 0a070h                               ; e8 e7 42
     8464    call 0a090h                               ; e8 e9 42
    84558465    xor bx, bx                                ; 31 db
    84568466    add ax, word [bp-008h]                    ; 03 46 f8
     
    84588468    mov bx, word [bp-00ah]                    ; 8b 5e f6
    84598469    xor cx, cx                                ; 31 c9
    8460     call 0a070h                               ; e8 d8 42
     8470    call 0a090h                               ; e8 da 42
    84618471    xor bx, bx                                ; 31 db
    84628472    add ax, word [bp-006h]                    ; 03 46 fa
     
    85138523    mov word [bp+016h], bx                    ; 89 5e 16
    85148524    test dl, dl                               ; 84 d2
    8515     je near 05c52h                            ; 0f 84 0a fe
    8516     mov bx, 00db6h                            ; bb b6 0d
     8525    je near 05c70h                            ; 0f 84 0a fe
     8526    mov bx, 00db2h                            ; bb b2 0d
    85178527    mov cx, ds                                ; 8c d9
    85188528    mov ax, strict word 00004h                ; b8 04 00
    8519     call 01a2ah                               ; e8 d7 bb
     8529    call 01a2ah                               ; e8 b9 bb
    85208530    movzx ax, dl                              ; 0f b6 c2
    85218531    push ax                                   ; 50
     
    85268536    push 0076bh                               ; 68 6b 07
    85278537    push strict byte 00004h                   ; 6a 04
    8528     call 01a6bh                               ; e8 02 bc
     8538    call 01a6bh                               ; e8 e4 bb
    85298539    add sp, strict byte 0000ah                ; 83 c4 0a
    85308540    mov ax, word [bp+016h]                    ; 8b 46 16
    85318541    xor ah, ah                                ; 30 e4
    85328542    or ah, 00ch                               ; 80 cc 0c
    8533     jmp near 05fc8h                           ; e9 51 01
    8534     mov bx, 00db6h                            ; bb b6 0d
     8543    jmp near 05fe6h                           ; e9 51 01
     8544    mov bx, 00db2h                            ; bb b2 0d
    85358545    mov cx, ds                                ; 8c d9
    85368546    mov ax, strict word 00004h                ; b8 04 00
    8537     call 01a2ah                               ; e8 a8 bb
     8547    call 01a2ah                               ; e8 8a bb
    85388548    push 0078ch                               ; 68 8c 07
    85398549    push strict byte 00004h                   ; 6a 04
    8540     call 01a6bh                               ; e8 e1 bb
     8550    call 01a6bh                               ; e8 c3 bb
    85418551    add sp, strict byte 00004h                ; 83 c4 04
    8542     jmp near 05c52h                           ; e9 c2 fd
     8552    jmp near 05c70h                           ; e9 c2 fd
    85438553    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    85448554    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    85838593    or dx, ax                                 ; 09 c2
    85848594    mov word [bp+012h], dx                    ; 89 56 12
    8585     jmp near 05c52h                           ; e9 4c fd
     8595    jmp near 05c70h                           ; e9 4c fd
    85868596    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    85878597    cwd                                       ; 99
     
    85998609    and AL, strict byte 0c0h                  ; 24 c0
    86008610    cmp AL, strict byte 040h                  ; 3c 40
    8601     jne short 05f2bh                          ; 75 03
    8602     jmp near 05c52h                           ; e9 27 fd
     8611    jne short 05f49h                          ; 75 03
     8612    jmp near 05c70h                           ; e9 27 fd
    86038613    mov ax, word [bp+016h]                    ; 8b 46 16
    86048614    xor ah, ah                                ; 30 e4
    86058615    or ah, 0aah                               ; 80 cc aa
    8606     jmp near 05fc8h                           ; e9 92 00
     8616    jmp near 05fe6h                           ; e9 92 00
    86078617    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    86088618    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    86188628    mov bx, word [bp-008h]                    ; 8b 5e f8
    86198629    xor cx, cx                                ; 31 c9
    8620     call 0a070h                               ; e8 10 41
     8630    call 0a090h                               ; e8 12 41
    86218631    mov bx, word [bp-006h]                    ; 8b 5e fa
    86228632    xor cx, cx                                ; 31 c9
    8623     call 0a070h                               ; e8 08 41
     8633    call 0a090h                               ; e8 0a 41
    86248634    mov word [bp-010h], ax                    ; 89 46 f0
    86258635    mov word [bp-00eh], dx                    ; 89 56 f2
     
    86308640    or ah, 003h                               ; 80 cc 03
    86318641    mov word [bp+016h], ax                    ; 89 46 16
    8632     jmp near 05c56h                           ; e9 d4 fc
    8633     mov bx, 00db6h                            ; bb b6 0d
     8642    jmp near 05c74h                           ; e9 d4 fc
     8643    mov bx, 00db2h                            ; bb b2 0d
    86348644    mov cx, ds                                ; 8c d9
    86358645    mov ax, strict word 00004h                ; b8 04 00
    8636     call 01a2ah                               ; e8 9d ba
     8646    call 01a2ah                               ; e8 7f ba
    86378647    mov ax, word [bp+016h]                    ; 8b 46 16
    86388648    shr ax, 008h                              ; c1 e8 08
     
    86418651    push 007a6h                               ; 68 a6 07
    86428652    push strict byte 00004h                   ; 6a 04
    8643     call 01a6bh                               ; e8 cc ba
     8653    call 01a6bh                               ; e8 ae ba
    86448654    add sp, strict byte 00008h                ; 83 c4 08
    8645     jmp near 05c52h                           ; e9 ad fc
    8646     mov bx, 00db6h                            ; bb b6 0d
     8655    jmp near 05c70h                           ; e9 ad fc
     8656    mov bx, 00db2h                            ; bb b2 0d
    86478657    mov cx, ds                                ; 8c d9
    86488658    mov ax, strict word 00004h                ; b8 04 00
    8649     call 01a2ah                               ; e8 7a ba
     8659    call 01a2ah                               ; e8 5c ba
    86508660    mov ax, word [bp+016h]                    ; 8b 46 16
    86518661    shr ax, 008h                              ; c1 e8 08
     
    86538663    push 00690h                               ; 68 90 06
    86548664    push 007d9h                               ; 68 d9 07
    8655     jmp near 05ce9h                           ; e9 29 fd
     8665    jmp near 05d07h                           ; e9 29 fd
    86568666    mov ax, word [bp+016h]                    ; 8b 46 16
    86578667    xor ah, ah                                ; 30 e4
     
    86638673    mov dx, strict word 00074h                ; ba 74 00
    86648674    mov ax, strict word 00040h                ; b8 40 00
    8665     call 01757h                               ; e8 7b b7
     8675    call 01757h                               ; e8 5d b7
    86668676    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8667     jmp near 05c65h                           ; e9 82 fc
    8668     mov ax, word [0b960h]                     ; a1 60 b9
     8677    jmp near 05c83h                           ; e9 82 fc
     8678    mov di, 0d760h                            ; bf 60 d7
    86698679    pushaw                                    ; 60
    8670     mov cx, 0b960h                            ; b9 60 b9
     8680    xlatb                                     ; d7
    86718681    pushaw                                    ; 60
    8672     lea sp, [si+00eh]                         ; 8d 64 0e
    8673     bound di, [bx+di+01460h]                  ; 62 b9 60 14
    8674     bound cx, [di-0239ch]                     ; 62 8d 64 dc
    8675     fsub qword [fs:si-024h]                   ; 64 dc 64 dc
    8676     fsub qword [fs:si-05ch]                   ; 64 dc 64 a4
    8677     fsub qword [fs:si-024h]                   ; 64 dc 64 dc
     8682    xlatb                                     ; d7
     8683    pushaw                                    ; 60
     8684    stosw                                     ; ab
     8685    db  064h, 02ch, 062h
     8686    ; fs sub AL, strict byte 062h               ; 64 2c 62
     8687    xlatb                                     ; d7
     8688    pushaw                                    ; 60
     8689    xor ah, byte [bp+si-055h]                 ; 32 62 ab
     8690    db  064h, 0fah
     8691    ; fs cli                                    ; 64 fa
     8692    db  064h, 0fah
     8693    ; fs cli                                    ; 64 fa
     8694    db  064h, 0fah
     8695    ; fs cli                                    ; 64 fa
     8696    db  064h, 0fah
     8697    ; fs cli                                    ; 64 fa
     8698    db  064h, 0c2h, 064h, 0fah
     8699    ; fs retn 0fa64h                            ; 64 c2 64 fa
     8700    db  064h, 0fah
     8701    ; fs cli                                    ; 64 fa
    86788702    db  064h
    8679 _int13_harddisk_ext:                         ; 0xf6003 LB 0x4f4
     8703_int13_harddisk_ext:                         ; 0xf6021 LB 0x4f4
    86808704    push bp                                   ; 55
    86818705    mov bp, sp                                ; 89 e5
     
    86838707    mov dx, strict word 0000eh                ; ba 0e 00
    86848708    mov ax, strict word 00040h                ; b8 40 00
    8685     call 01765h                               ; e8 53 b7
     8709    call 01765h                               ; e8 35 b7
    86868710    mov word [bp-014h], ax                    ; 89 46 ec
    86878711    mov dx, strict word 0000eh                ; ba 0e 00
    86888712    mov ax, strict word 00040h                ; b8 40 00
    8689     call 01765h                               ; e8 47 b7
     8713    call 01765h                               ; e8 29 b7
    86908714    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    86918715    mov word [bp-006h], ax                    ; 89 46 fa
     
    86938717    mov dx, 0008eh                            ; ba 8e 00
    86948718    mov ax, strict word 00040h                ; b8 40 00
    8695     call 01757h                               ; e8 26 b7
     8719    call 01757h                               ; e8 08 b7
    86968720    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86978721    xor ah, ah                                ; 30 e4
    86988722    cmp ax, 00080h                            ; 3d 80 00
    8699     jc short 06040h                           ; 72 05
     8723    jc short 0605eh                           ; 72 05
    87008724    cmp ax, 00090h                            ; 3d 90 00
    8701     jc short 0605eh                           ; 72 1e
     8725    jc short 0607ch                           ; 72 1e
    87028726    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87038727    xor ah, ah                                ; 30 e4
     
    87098733    push 0069fh                               ; 68 9f 06
    87108734    push strict byte 00004h                   ; 6a 04
    8711     call 01a6bh                               ; e8 13 ba
     8735    call 01a6bh                               ; e8 f5 b9
    87128736    add sp, strict byte 0000ah                ; 83 c4 0a
    8713     jmp near 064bah                           ; e9 5c 04
     8737    jmp near 064d8h                           ; e9 5c 04
    87148738    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87158739    xor ah, ah                                ; 30 e4
     
    87198743    mov byte [bp-004h], dl                    ; 88 56 fc
    87208744    cmp dl, 010h                              ; 80 fa 10
    8721     jc short 06085h                           ; 72 10
     8745    jc short 060a3h                           ; 72 10
    87228746    push ax                                   ; 50
    87238747    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87268750    push 00807h                               ; 68 07 08
    87278751    push 006cah                               ; 68 ca 06
    8728     jmp short 06053h                          ; eb ce
     8752    jmp short 06071h                          ; eb ce
    87298753    mov bx, word [bp+016h]                    ; 8b 5e 16
    87308754    shr bx, 008h                              ; c1 eb 08
    87318755    sub bx, strict byte 00041h                ; 83 eb 41
    87328756    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8733     jnbe near 064dch                          ; 0f 87 47 04
     8757    jnbe near 064fah                          ; 0f 87 47 04
    87348758    add bx, bx                                ; 01 db
    87358759    mov ax, word [bp+016h]                    ; 8b 46 16
    87368760    xor ah, ah                                ; 30 e4
    8737     jmp word [cs:bx+05fe3h]                   ; 2e ff a7 e3 5f
     8761    jmp word [cs:bx+06001h]                   ; 2e ff a7 01 60
    87388762    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    87398763    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87428766    mov word [bp+016h], ax                    ; 89 46 16
    87438767    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8744     jmp near 06491h                           ; e9 d8 03
     8768    jmp near 064afh                           ; e9 d8 03
    87458769    mov di, word [bp+00ah]                    ; 8b 7e 0a
    87468770    mov es, [bp+004h]                         ; 8e 46 04
     
    87588782    xor bx, bx                                ; 31 db
    87598783    mov si, strict word 00020h                ; be 20 00
    8760     call 0a100h                               ; e8 14 40
     8784    call 0a120h                               ; e8 16 40
    87618785    mov word [bp-00eh], bx                    ; 89 5e f2
    87628786    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
     
    87708794    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
    87718795    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
    8772     jnbe short 06133h                         ; 77 22
    8773     jne short 06156h                          ; 75 43
     8796    jnbe short 06151h                         ; 77 22
     8797    jne short 06174h                          ; 75 43
    87748798    mov si, word [bp-00eh]                    ; 8b 76 f2
    87758799    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8776     jnbe short 06133h                         ; 77 17
     8800    jnbe short 06151h                         ; 77 17
    87778801    mov si, word [bp-00eh]                    ; 8b 76 f2
    87788802    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8779     jne short 06156h                          ; 75 31
     8803    jne short 06174h                          ; 75 31
    87808804    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
    8781     jnbe short 06133h                         ; 77 08
    8782     jne short 06156h                          ; 75 29
     8805    jnbe short 06151h                         ; 77 08
     8806    jne short 06174h                          ; 75 29
    87838807    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
    8784     jc short 06156h                           ; 72 23
    8785     mov bx, 00db6h                            ; bb b6 0d
     8808    jc short 06174h                           ; 72 23
     8809    mov bx, 00db2h                            ; bb b2 0d
    87868810    mov cx, ds                                ; 8c d9
    87878811    mov ax, strict word 00004h                ; b8 04 00
    8788     call 01a2ah                               ; e8 ec b8
     8812    call 01a2ah                               ; e8 ce b8
    87898813    mov ax, word [bp+016h]                    ; 8b 46 16
    87908814    shr ax, 008h                              ; c1 e8 08
     
    87938817    push 0081ah                               ; 68 1a 08
    87948818    push strict byte 00004h                   ; 6a 04
    8795     call 01a6bh                               ; e8 1b b9
     8819    call 01a6bh                               ; e8 fd b8
    87968820    add sp, strict byte 00008h                ; 83 c4 08
    8797     jmp near 064bah                           ; e9 64 03
     8821    jmp near 064d8h                           ; e9 64 03
    87988822    mov di, word [bp+016h]                    ; 8b 7e 16
    87998823    shr di, 008h                              ; c1 ef 08
    88008824    cmp di, strict byte 00044h                ; 83 ff 44
    8801     je near 0648dh                            ; 0f 84 2a 03
     8825    je near 064abh                            ; 0f 84 2a 03
    88028826    cmp di, strict byte 00047h                ; 83 ff 47
    8803     je near 0648dh                            ; 0f 84 23 03
     8827    je near 064abh                            ; 0f 84 23 03
    88048828    les si, [bp-008h]                         ; c4 76 f8
    88058829    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
     
    88388862    mov word [es:bx+002h], ax                 ; 26 89 47 02
    88398863    test dl, dl                               ; 84 d2
    8840     je near 0648dh                            ; 0f 84 a8 02
    8841     mov bx, 00db6h                            ; bb b6 0d
     8864    je near 064abh                            ; 0f 84 a8 02
     8865    mov bx, 00db2h                            ; bb b2 0d
    88428866    mov cx, ds                                ; 8c d9
    88438867    mov ax, strict word 00004h                ; b8 04 00
    8844     call 01a2ah                               ; e8 3a b8
     8868    call 01a2ah                               ; e8 1c b8
    88458869    movzx ax, dl                              ; 0f b6 c2
    88468870    push ax                                   ; 50
     
    88498873    push 0076bh                               ; 68 6b 07
    88508874    push strict byte 00004h                   ; 6a 04
    8851     call 01a6bh                               ; e8 6b b8
     8875    call 01a6bh                               ; e8 4d b8
    88528876    add sp, strict byte 0000ah                ; 83 c4 0a
    88538877    mov ax, word [bp+016h]                    ; 8b 46 16
    88548878    xor ah, ah                                ; 30 e4
    88558879    or ah, 00ch                               ; 80 cc 0c
    8856     jmp near 064c2h                           ; e9 b4 02
     8880    jmp near 064e0h                           ; e9 b4 02
    88578881    or ah, 0b2h                               ; 80 cc b2
    8858     jmp near 064c2h                           ; e9 ae 02
     8882    jmp near 064e0h                           ; e9 ae 02
    88598883    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    88608884    mov ax, word [bp+004h]                    ; 8b 46 04
     
    88668890    mov word [bp-010h], ax                    ; 89 46 f0
    88678891    cmp ax, strict word 0001ah                ; 3d 1a 00
    8868     jc near 064bah                            ; 0f 82 89 02
    8869     jc near 062d0h                            ; 0f 82 9b 00
     8892    jc near 064d8h                            ; 0f 82 89 02
     8893    jc near 062eeh                            ; 0f 82 9b 00
    88708894    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    88718895    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    89098933    mov bx, word [bp-00eh]                    ; 8b 5e f2
    89108934    mov si, strict word 00020h                ; be 20 00
    8911     call 0a0f0h                               ; e8 2a 3e
     8935    call 0a110h                               ; e8 2c 3e
    89128936    mov bx, di                                ; 89 fb
    89138937    mov word [es:bx+014h], dx                 ; 26 89 57 14
    89148938    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    89158939    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
    8916     jc near 063d5h                            ; 0f 82 fd 00
     8940    jc near 063f3h                            ; 0f 82 fd 00
    89178941    mov es, [bp-00ah]                         ; 8e 46 f6
    89188942    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    89408964    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    89418965    test al, al                               ; 84 c0
    8942     jne short 0632fh                          ; 75 04
     8966    jne short 0634dh                          ; 75 04
    89438967    xor bx, bx                                ; 31 db
    8944     jmp short 06332h                          ; eb 03
     8968    jmp short 06350h                          ; eb 03
    89458969    mov bx, strict word 00008h                ; bb 08 00
    89468970    or bl, 010h                               ; 80 cb 10
     
    89568980    or bx, cx                                 ; 09 cb
    89578981    cmp AL, strict byte 003h                  ; 3c 03
    8958     jne short 06353h                          ; 75 05
     8982    jne short 06371h                          ; 75 05
    89598983    mov ax, strict word 00003h                ; b8 03 00
    8960     jmp short 06355h                          ; eb 02
     8984    jmp short 06373h                          ; eb 02
    89618985    xor ax, ax                                ; 31 c0
    89628986    or bx, ax                                 ; 09 c3
     
    89849008    xor bl, bl                                ; 30 db
    89859009    xor bh, bh                                ; 30 ff
    8986     jmp short 063b8h                          ; eb 05
     9010    jmp short 063d6h                          ; eb 05
    89879011    cmp bh, 00fh                              ; 80 ff 0f
    8988     jnc short 063cbh                          ; 73 13
     9012    jnc short 063e9h                          ; 73 13
    89899013    movzx dx, bh                              ; 0f b6 d7
    89909014    add dx, 00356h                            ; 81 c2 56 03
    89919015    mov ax, word [bp-014h]                    ; 8b 46 ec
    8992     call 01749h                               ; e8 84 b3
     9016    call 01749h                               ; e8 66 b3
    89939017    add bl, al                                ; 00 c3
    89949018    db  0feh, 0c7h
    89959019    ; inc bh                                    ; fe c7
    8996     jmp short 063b3h                          ; eb e8
     9020    jmp short 063d1h                          ; eb e8
    89979021    neg bl                                    ; f6 db
    89989022    les si, [bp-008h]                         ; c4 76 f8
    89999023    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    90009024    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
    9001     jc near 0648dh                            ; 0f 82 b0 00
     9025    jc near 064abh                            ; 0f 82 b0 00
    90029026    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    90039027    cwd                                       ; 99
     
    90179041    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    90189042    test al, al                               ; 84 c0
    9019     jne short 0641eh                          ; 75 09
     9043    jne short 0643ch                          ; 75 09
    90209044    db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
    90219045    ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
     
    90269050    ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
    90279051    test al, al                               ; 84 c0
    9028     jne short 0644ah                          ; 75 13
     9052    jne short 06468h                          ; 75 13
    90299053    mov word [es:di+030h], dx                 ; 26 89 55 30
    90309054    db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
     
    90419065    xor bl, bl                                ; 30 db
    90429066    mov BH, strict byte 01eh                  ; b7 1e
    9043     jmp short 06472h                          ; eb 05
     9067    jmp short 06490h                          ; eb 05
    90449068    cmp bh, 040h                              ; 80 ff 40
    9045     jnc short 06484h                          ; 73 12
     9069    jnc short 064a2h                          ; 73 12
    90469070    movzx dx, bh                              ; 0f b6 d7
    90479071    add dx, word [bp+00ah]                    ; 03 56 0a
    90489072    mov ax, word [bp+004h]                    ; 8b 46 04
    9049     call 01749h                               ; e8 cb b2
     9073    call 01749h                               ; e8 ad b2
    90509074    add bl, al                                ; 00 c3
    90519075    db  0feh, 0c7h
    90529076    ; inc bh                                    ; fe c7
    9053     jmp short 0646dh                          ; eb e9
     9077    jmp short 0648bh                          ; eb e9
    90549078    neg bl                                    ; f6 db
    90559079    mov es, [bp-00ah]                         ; 8e 46 f6
     
    90599083    mov dx, strict word 00074h                ; ba 74 00
    90609084    mov ax, strict word 00040h                ; b8 40 00
    9061     call 01757h                               ; e8 bb b2
     9085    call 01757h                               ; e8 9d b2
    90629086    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    90639087    mov sp, bp                                ; 89 ec
     
    90659089    retn                                      ; c3
    90669090    cmp ax, strict word 00006h                ; 3d 06 00
    9067     je short 0648dh                           ; 74 e4
     9091    je short 064abh                           ; 74 e4
    90689092    cmp ax, strict word 00001h                ; 3d 01 00
    9069     jc short 064bah                           ; 72 0c
    9070     jbe short 0648dh                          ; 76 dd
     9093    jc short 064d8h                           ; 72 0c
     9094    jbe short 064abh                          ; 76 dd
    90719095    cmp ax, strict word 00003h                ; 3d 03 00
    9072     jc short 064bah                           ; 72 05
     9096    jc short 064d8h                           ; 72 05
    90739097    cmp ax, strict word 00004h                ; 3d 04 00
    9074     jbe short 0648dh                          ; 76 d3
     9098    jbe short 064abh                          ; 76 d3
    90759099    mov ax, word [bp+016h]                    ; 8b 46 16
    90769100    xor ah, ah                                ; 30 e4
     
    90829106    mov dx, strict word 00074h                ; ba 74 00
    90839107    mov ax, strict word 00040h                ; b8 40 00
    9084     call 01757h                               ; e8 81 b2
     9108    call 01757h                               ; e8 63 b2
    90859109    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9086     jmp short 064a0h                          ; eb c4
    9087     mov bx, 00db6h                            ; bb b6 0d
     9110    jmp short 064beh                          ; eb c4
     9111    mov bx, 00db2h                            ; bb b2 0d
    90889112    mov cx, ds                                ; 8c d9
    90899113    mov ax, strict word 00004h                ; b8 04 00
    9090     call 01a2ah                               ; e8 43 b5
     9114    call 01a2ah                               ; e8 25 b5
    90919115    mov ax, word [bp+016h]                    ; 8b 46 16
    90929116    shr ax, 008h                              ; c1 e8 08
     
    90949118    push 00807h                               ; 68 07 08
    90959119    push 007d9h                               ; 68 d9 07
    9096     jmp near 0614bh                           ; e9 54 fc
    9097 _int14_function:                             ; 0xf64f7 LB 0x15a
     9120    jmp near 06169h                           ; e9 54 fc
     9121_int14_function:                             ; 0xf6515 LB 0x15a
    90989122    push bp                                   ; 55
    90999123    mov bp, sp                                ; 89 e5
     
    91039127    add dx, dx                                ; 01 d2
    91049128    mov ax, strict word 00040h                ; b8 40 00
    9105     call 01765h                               ; e8 5e b2
     9129    call 01765h                               ; e8 40 b2
    91069130    mov si, ax                                ; 89 c6
    91079131    mov bx, ax                                ; 89 c3
     
    91099133    add dx, strict byte 0007ch                ; 83 c2 7c
    91109134    mov ax, strict word 00040h                ; b8 40 00
    9111     call 01749h                               ; e8 32 b2
     9135    call 01749h                               ; e8 14 b2
    91129136    mov cl, al                                ; 88 c1
    91139137    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9114     jnc near 06647h                           ; 0f 83 26 01
     9138    jnc near 06665h                           ; 0f 83 26 01
    91159139    test si, si                               ; 85 f6
    9116     jbe near 06647h                           ; 0f 86 20 01
     9140    jbe near 06665h                           ; 0f 86 20 01
    91179141    mov al, byte [bp+013h]                    ; 8a 46 13
    91189142    cmp AL, strict byte 001h                  ; 3c 01
    9119     jc short 0653fh                           ; 72 11
    9120     jbe short 06598h                          ; 76 68
     9143    jc short 0655dh                           ; 72 11
     9144    jbe short 065b6h                          ; 76 68
    91219145    cmp AL, strict byte 003h                  ; 3c 03
    9122     je near 06630h                            ; 0f 84 fa 00
     9146    je near 0664eh                            ; 0f 84 fa 00
    91239147    cmp AL, strict byte 002h                  ; 3c 02
    9124     je near 065e6h                            ; 0f 84 aa 00
    9125     jmp near 06641h                           ; e9 02 01
     9148    je near 06604h                            ; 0f 84 aa 00
     9149    jmp near 0665fh                           ; e9 02 01
    91269150    test al, al                               ; 84 c0
    9127     jne near 06641h                           ; 0f 85 fc 00
     9151    jne near 0665fh                           ; 0f 85 fc 00
    91289152    lea dx, [bx+003h]                         ; 8d 57 03
    91299153    in AL, DX                                 ; ec
     
    91359159    mov al, byte [bp+012h]                    ; 8a 46 12
    91369160    test AL, strict byte 0e0h                 ; a8 e0
    9137     jne short 06564h                          ; 75 0c
     9161    jne short 06582h                          ; 75 0c
    91389162    mov AL, strict byte 017h                  ; b0 17
    91399163    mov dx, bx                                ; 89 da
     
    91429166    mov dx, si                                ; 89 f2
    91439167    out DX, AL                                ; ee
    9144     jmp short 0657ah                          ; eb 16
     9168    jmp short 06598h                          ; eb 16
    91459169    and AL, strict byte 0e0h                  ; 24 e0
    91469170    movzx cx, al                              ; 0f b6 c8
     
    91679191    ; sub ah, ah                                ; 2a e4
    91689192    mov byte [bp+012h], al                    ; 88 46 12
    9169     jmp near 06622h                           ; e9 8a 00
     9193    jmp near 06640h                           ; e9 8a 00
    91709194    mov dx, strict word 0006ch                ; ba 6c 00
    91719195    mov ax, strict word 00040h                ; b8 40 00
    9172     call 01765h                               ; e8 c4 b1
     9196    call 01765h                               ; e8 a6 b1
    91739197    mov si, ax                                ; 89 c6
    91749198    lea dx, [bx+005h]                         ; 8d 57 05
     
    91789202    and ax, strict word 00060h                ; 25 60 00
    91799203    cmp ax, strict word 00060h                ; 3d 60 00
    9180     je short 065c8h                           ; 74 17
     9204    je short 065e6h                           ; 74 17
    91819205    test cl, cl                               ; 84 c9
    9182     je short 065c8h                           ; 74 13
     9206    je short 065e6h                           ; 74 13
    91839207    mov dx, strict word 0006ch                ; ba 6c 00
    91849208    mov ax, strict word 00040h                ; b8 40 00
    9185     call 01765h                               ; e8 a7 b1
     9209    call 01765h                               ; e8 89 b1
    91869210    cmp ax, si                                ; 39 f0
    9187     je short 065a3h                           ; 74 e1
     9211    je short 065c1h                           ; 74 e1
    91889212    mov si, ax                                ; 89 c6
    91899213    db  0feh, 0c9h
    91909214    ; dec cl                                    ; fe c9
    9191     jmp short 065a3h                          ; eb db
     9215    jmp short 065c1h                          ; eb db
    91929216    test cl, cl                               ; 84 c9
    9193     je short 065d2h                           ; 74 06
     9217    je short 065f0h                           ; 74 06
    91949218    mov al, byte [bp+012h]                    ; 8a 46 12
    91959219    mov dx, bx                                ; 89 da
     
    92019225    mov byte [bp+013h], al                    ; 88 46 13
    92029226    test cl, cl                               ; 84 c9
    9203     jne short 06622h                          ; 75 43
     9227    jne short 06640h                          ; 75 43
    92049228    or AL, strict byte 080h                   ; 0c 80
    92059229    mov byte [bp+013h], al                    ; 88 46 13
    9206     jmp short 06622h                          ; eb 3c
     9230    jmp short 06640h                          ; eb 3c
    92079231    mov dx, strict word 0006ch                ; ba 6c 00
    92089232    mov ax, strict word 00040h                ; b8 40 00
    9209     call 01765h                               ; e8 76 b1
     9233    call 01765h                               ; e8 58 b1
    92109234    mov si, ax                                ; 89 c6
    92119235    lea dx, [bx+005h]                         ; 8d 57 05
     
    92149238    ; sub ah, ah                                ; 2a e4
    92159239    test AL, strict byte 001h                 ; a8 01
    9216     jne short 06612h                          ; 75 17
     9240    jne short 06630h                          ; 75 17
    92179241    test cl, cl                               ; 84 c9
    9218     je short 06612h                           ; 74 13
     9242    je short 06630h                           ; 74 13
    92199243    mov dx, strict word 0006ch                ; ba 6c 00
    92209244    mov ax, strict word 00040h                ; b8 40 00
    9221     call 01765h                               ; e8 5d b1
     9245    call 01765h                               ; e8 3f b1
    92229246    cmp ax, si                                ; 39 f0
    9223     je short 065f1h                           ; 74 e5
     9247    je short 0660fh                           ; 74 e5
    92249248    mov si, ax                                ; 89 c6
    92259249    db  0feh, 0c9h
    92269250    ; dec cl                                    ; fe c9
    9227     jmp short 065f1h                          ; eb df
     9251    jmp short 0660fh                          ; eb df
    92289252    test cl, cl                               ; 84 c9
    9229     je short 06628h                           ; 74 12
     9253    je short 06646h                           ; 74 12
    92309254    mov byte [bp+013h], 000h                  ; c6 46 13 00
    92319255    mov dx, bx                                ; 89 da
     
    92359259    mov byte [bp+012h], al                    ; 88 46 12
    92369260    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9237     jmp short 0664bh                          ; eb 23
     9261    jmp short 06669h                          ; eb 23
    92389262    lea dx, [bx+005h]                         ; 8d 57 05
    92399263    in AL, DX                                 ; ec
    92409264    db  02ah, 0e4h
    92419265    ; sub ah, ah                                ; 2a e4
    9242     jmp short 065e1h                          ; eb b1
     9266    jmp short 065ffh                          ; eb b1
    92439267    lea dx, [si+005h]                         ; 8d 54 05
    92449268    in AL, DX                                 ; ec
     
    92509274    db  02ah, 0e4h
    92519275    ; sub ah, ah                                ; 2a e4
    9252     jmp short 0661fh                          ; eb de
     9276    jmp short 0663dh                          ; eb de
    92539277    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9254     jmp short 0664bh                          ; eb 04
     9278    jmp short 06669h                          ; eb 04
    92559279    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    92569280    lea sp, [bp-002h]                         ; 8d 66 fe
     
    92589282    pop bp                                    ; 5d
    92599283    retn                                      ; c3
    9260 timer_wait_:                                 ; 0xf6651 LB 0x43
     9284timer_wait_:                                 ; 0xf666f LB 0x43
    92619285    push bp                                   ; 55
    92629286    mov bp, sp                                ; 89 e5
     
    92669290    mov bx, strict word 0000fh                ; bb 0f 00
    92679291    xor cx, cx                                ; 31 c9
    9268     call 0a0b0h                               ; e8 51 3a
     9292    call 0a0d0h                               ; e8 53 3a
    92699293    mov cx, ax                                ; 89 c1
    92709294    mov bx, dx                                ; 89 d3
     
    92789302    adc bx, strict byte 0ffffh                ; 83 d3 ff
    92799303    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9280     jne short 0667eh                          ; 75 05
     9304    jne short 0669ch                          ; 75 05
    92819305    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9282     je short 0668dh                           ; 74 0f
     9306    je short 066abh                           ; 74 0f
    92839307    mov dx, strict word 00061h                ; ba 61 00
    92849308    in AL, DX                                 ; ec
     
    92879311    and AL, strict byte 010h                  ; 24 10
    92889312    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9289     jne short 0667eh                          ; 75 f3
    9290     jmp short 0666eh                          ; eb e1
     9313    jne short 0669ch                          ; 75 f3
     9314    jmp short 0668ch                          ; eb e1
    92919315    lea sp, [bp-004h]                         ; 8d 66 fc
    92929316    pop cx                                    ; 59
     
    92949318    pop bp                                    ; 5d
    92959319    retn                                      ; c3
    9296 set_enable_a20_:                             ; 0xf6694 LB 0x2c
     9320set_enable_a20_:                             ; 0xf66b2 LB 0x2c
    92979321    push bp                                   ; 55
    92989322    mov bp, sp                                ; 89 e5
     
    93079331    mov cl, al                                ; 88 c1
    93089332    test bx, bx                               ; 85 db
    9309     je short 066adh                           ; 74 05
     9333    je short 066cbh                           ; 74 05
    93109334    or AL, strict byte 002h                   ; 0c 02
    93119335    out DX, AL                                ; ee
    9312     jmp short 066b0h                          ; eb 03
     9336    jmp short 066ceh                          ; eb 03
    93139337    and AL, strict byte 0fdh                  ; 24 fd
    93149338    out DX, AL                                ; ee
     
    93239347    pop bp                                    ; 5d
    93249348    retn                                      ; c3
    9325 set_e820_range_:                             ; 0xf66c0 LB 0x89
     9349set_e820_range_:                             ; 0xf66de LB 0x89
    93269350    push si                                   ; 56
    93279351    push bp                                   ; 55
     
    93529376    retn 0000ah                               ; c2 0a 00
    93539377    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9354     db  04dh, 06ah, 086h, 067h, 099h, 067h, 02eh, 068h, 034h, 068h, 039h, 068h, 03eh, 068h, 0e0h, 068h
    9355     db  00ah, 069h, 027h, 068h, 027h, 068h, 0d7h, 069h, 0ffh, 069h, 012h, 06ah, 021h, 06ah, 02eh, 068h
    9356     db  028h, 06ah
    9357 _int15_function:                             ; 0xf6749 LB 0x336
     9378    db  06bh, 06ah, 0a4h, 067h, 0b7h, 067h, 04ch, 068h, 052h, 068h, 057h, 068h, 05ch, 068h, 0feh, 068h
     9379    db  028h, 069h, 045h, 068h, 045h, 068h, 0f5h, 069h, 01dh, 06ah, 030h, 06ah, 03fh, 06ah, 04ch, 068h
     9380    db  046h, 06ah
     9381_int15_function:                             ; 0xf6767 LB 0x336
    93589382    push bp                                   ; 55
    93599383    mov bp, sp                                ; 89 e5
     
    93639387    shr ax, 008h                              ; c1 e8 08
    93649388    cmp ax, 000ech                            ; 3d ec 00
    9365     jnbe near 06a4dh                          ; 0f 87 f2 02
     9389    jnbe near 06a6bh                          ; 0f 87 f2 02
    93669390    push CS                                   ; 0e
    93679391    pop ES                                    ; 07
    93689392    mov cx, strict word 00011h                ; b9 11 00
    9369     mov di, 06717h                            ; bf 17 67
     9393    mov di, 06735h                            ; bf 35 67
    93709394    repne scasb                               ; f2 ae
    93719395    sal cx, 1                                 ; d1 e1
    93729396    mov di, cx                                ; 89 cf
    9373     mov si, word [cs:di+06727h]               ; 2e 8b b5 27 67
     9397    mov si, word [cs:di+06745h]               ; 2e 8b b5 45 67
    93749398    mov ax, word [bp+012h]                    ; 8b 46 12
    93759399    xor ah, ah                                ; 30 e4
     
    93849408    xor ah, ah                                ; 30 e4
    93859409    cmp ax, 000c0h                            ; 3d c0 00
    9386     jne near 06a4dh                           ; 0f 85 bb 02
     9410    jne near 06a6bh                           ; 0f 85 bb 02
    93879411    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9388     jmp near 069f6h                           ; e9 5d 02
     9412    jmp near 06a14h                           ; e9 5d 02
    93899413    mov dx, ax                                ; 89 c2
    93909414    cmp ax, strict word 00001h                ; 3d 01 00
    9391     jc short 067aeh                           ; 72 0e
    9392     jbe short 067c2h                          ; 76 20
     9415    jc short 067cch                           ; 72 0e
     9416    jbe short 067e0h                          ; 76 20
    93939417    cmp ax, strict word 00003h                ; 3d 03 00
    9394     je short 067efh                           ; 74 48
     9418    je short 0680dh                           ; 74 48
    93959419    cmp ax, strict word 00002h                ; 3d 02 00
    9396     je short 067d2h                           ; 74 26
    9397     jmp short 067fch                          ; eb 4e
     9420    je short 067f0h                           ; 74 26
     9421    jmp short 0681ah                          ; eb 4e
    93989422    test ax, ax                               ; 85 c0
    9399     jne short 067fch                          ; 75 4a
     9423    jne short 0681ah                          ; 75 4a
    94009424    xor ax, ax                                ; 31 c0
    9401     call 06694h                               ; e8 dd fe
     9425    call 066b2h                               ; e8 dd fe
    94029426    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94039427    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9404     jmp near 06827h                           ; e9 65 00
     9428    jmp near 06845h                           ; e9 65 00
    94059429    mov ax, strict word 00001h                ; b8 01 00
    9406     call 06694h                               ; e8 cc fe
     9430    call 066b2h                               ; e8 cc fe
    94079431    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94089432    mov byte [bp+013h], dh                    ; 88 76 13
    9409     jmp near 06827h                           ; e9 55 00
     9433    jmp near 06845h                           ; e9 55 00
    94109434    mov dx, 00092h                            ; ba 92 00
    94119435    in AL, DX                                 ; ec
     
    94199443    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94209444    mov byte [bp+013h], ah                    ; 88 66 13
    9421     jmp near 06827h                           ; e9 38 00
     9445    jmp near 06845h                           ; e9 38 00
    94229446    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94239447    mov byte [bp+013h], ah                    ; 88 66 13
    94249448    mov word [bp+00ch], ax                    ; 89 46 0c
    9425     jmp near 06827h                           ; e9 2b 00
    9426     mov bx, 00db6h                            ; bb b6 0d
     9449    jmp near 06845h                           ; e9 2b 00
     9450    mov bx, 00db2h                            ; bb b2 0d
    94279451    mov cx, ds                                ; 8c d9
    94289452    mov ax, strict word 00004h                ; b8 04 00
    9429     call 01a2ah                               ; e8 23 b2
     9453    call 01a2ah                               ; e8 05 b2
    94309454    mov ax, word [bp+012h]                    ; 8b 46 12
    94319455    xor ah, ah                                ; 30 e4
     
    94339457    push 00840h                               ; 68 40 08
    94349458    push strict byte 00004h                   ; 6a 04
    9435     call 01a6bh                               ; e8 56 b2
     9459    call 01a6bh                               ; e8 38 b2
    94369460    add sp, strict byte 00006h                ; 83 c4 06
    94379461    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    94469470    retn                                      ; c3
    94479471    mov word [bp+018h], bx                    ; 89 5e 18
    9448     jmp near 068dah                           ; e9 a6 00
     9472    jmp near 068f8h                           ; e9 a6 00
    94499473    mov word [bp+018h], bx                    ; 89 5e 18
    9450     jmp short 06827h                          ; eb ee
     9474    jmp short 06845h                          ; eb ee
    94519475    mov word [bp+018h], cx                    ; 89 4e 18
    9452     jmp short 06824h                          ; eb e6
     9476    jmp short 06842h                          ; eb e6
    94539477    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9454     jne short 068b0h                          ; 75 6c
     9478    jne short 068ceh                          ; 75 6c
    94559479    mov dx, 000a0h                            ; ba a0 00
    94569480    mov ax, strict word 00040h                ; b8 40 00
    9457     call 01749h                               ; e8 fc ae
     9481    call 01749h                               ; e8 de ae
    94589482    test AL, strict byte 001h                 ; a8 01
    9459     jne near 069edh                           ; 0f 85 9a 01
     9483    jne near 06a0bh                           ; 0f 85 9a 01
    94609484    mov bx, strict word 00001h                ; bb 01 00
    94619485    mov dx, 000a0h                            ; ba a0 00
    94629486    mov ax, strict word 00040h                ; b8 40 00
    9463     call 01757h                               ; e8 f8 ae
     9487    call 01757h                               ; e8 da ae
    94649488    mov bx, word [bp+014h]                    ; 8b 5e 14
    94659489    mov dx, 00098h                            ; ba 98 00
    94669490    mov ax, strict word 00040h                ; b8 40 00
    9467     call 01773h                               ; e8 08 af
     9491    call 01773h                               ; e8 ea ae
    94689492    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    94699493    mov dx, 0009ah                            ; ba 9a 00
    94709494    mov ax, strict word 00040h                ; b8 40 00
    9471     call 01773h                               ; e8 fc ae
     9495    call 01773h                               ; e8 de ae
    94729496    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    94739497    mov dx, 0009ch                            ; ba 9c 00
    94749498    mov ax, strict word 00040h                ; b8 40 00
    9475     call 01773h                               ; e8 f0 ae
     9499    call 01773h                               ; e8 d2 ae
    94769500    mov bx, word [bp+010h]                    ; 8b 5e 10
    94779501    mov dx, 0009eh                            ; ba 9e 00
    94789502    mov ax, strict word 00040h                ; b8 40 00
    9479     call 01773h                               ; e8 e4 ae
     9503    call 01773h                               ; e8 c6 ae
    94809504    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94819505    mov dx, 000a1h                            ; ba a1 00
     
    94869510    out DX, AL                                ; ee
    94879511    mov ax, strict word 0000bh                ; b8 0b 00
    9488     call 017a5h                               ; e8 03 af
     9512    call 017a5h                               ; e8 e5 ae
    94899513    or AL, strict byte 040h                   ; 0c 40
    94909514    movzx dx, al                              ; 0f b6 d0
    94919515    mov ax, strict word 0000bh                ; b8 0b 00
    9492     call 017c2h                               ; e8 15 af
    9493     jmp near 06827h                           ; e9 77 ff
     9516    call 017c2h                               ; e8 f7 ae
     9517    jmp near 06845h                           ; e9 77 ff
    94949518    cmp ax, strict word 00001h                ; 3d 01 00
    9495     jne short 068ceh                          ; 75 19
     9519    jne short 068ech                          ; 75 19
    94969520    xor bx, bx                                ; 31 db
    94979521    mov dx, 000a0h                            ; ba a0 00
    94989522    mov ax, strict word 00040h                ; b8 40 00
    9499     call 01757h                               ; e8 97 ae
     9523    call 01757h                               ; e8 79 ae
    95009524    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95019525    mov ax, strict word 0000bh                ; b8 0b 00
    9502     call 017a5h                               ; e8 db ae
     9526    call 017a5h                               ; e8 bd ae
    95039527    and AL, strict byte 0bfh                  ; 24 bf
    9504     jmp short 068a4h                          ; eb d6
     9528    jmp short 068c2h                          ; eb d6
    95059529    mov word [bp+018h], bx                    ; 89 5e 18
    95069530    mov ax, dx                                ; 89 d0
     
    95109534    or dx, ax                                 ; 09 c2
    95119535    mov word [bp+012h], dx                    ; 89 56 12
    9512     jmp near 06827h                           ; e9 47 ff
     9536    jmp near 06845h                           ; e9 47 ff
    95139537    mov ax, strict word 00031h                ; b8 31 00
    9514     call 017a5h                               ; e8 bf ae
     9538    call 017a5h                               ; e8 a1 ae
    95159539    movzx dx, al                              ; 0f b6 d0
    95169540    sal dx, 008h                              ; c1 e2 08
    95179541    mov ax, strict word 00030h                ; b8 30 00
    9518     call 017a5h                               ; e8 b3 ae
     9542    call 017a5h                               ; e8 95 ae
    95199543    xor ah, ah                                ; 30 e4
    95209544    or dx, ax                                 ; 09 c2
    95219545    mov word [bp+012h], dx                    ; 89 56 12
    95229546    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9523     jbe short 06903h                          ; 76 05
     9547    jbe short 06921h                          ; 76 05
    95249548    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    95259549    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9526     jmp near 06827h                           ; e9 1d ff
     9550    jmp near 06845h                           ; e9 1d ff
    95279551    cli                                       ; fa
    95289552    mov ax, strict word 00001h                ; b8 01 00
    9529     call 06694h                               ; e8 83 fd
     9553    call 066b2h                               ; e8 83 fd
    95309554    mov dx, word [bp+006h]                    ; 8b 56 06
    95319555    add dx, strict byte 00038h                ; 83 c2 38
    95329556    mov ax, word [bp+014h]                    ; 8b 46 14
    95339557    mov bx, strict word 0ffffh                ; bb ff ff
    9534     call 01773h                               ; e8 53 ae
     9558    call 01773h                               ; e8 35 ae
    95359559    mov dx, word [bp+006h]                    ; 8b 56 06
    95369560    add dx, strict byte 0003ah                ; 83 c2 3a
    95379561    mov ax, word [bp+014h]                    ; 8b 46 14
    95389562    xor bx, bx                                ; 31 db
    9539     call 01773h                               ; e8 45 ae
     9563    call 01773h                               ; e8 27 ae
    95409564    mov dx, word [bp+006h]                    ; 8b 56 06
    95419565    add dx, strict byte 0003ch                ; 83 c2 3c
    95429566    mov ax, word [bp+014h]                    ; 8b 46 14
    95439567    mov bx, strict word 0000fh                ; bb 0f 00
    9544     call 01757h                               ; e8 1a ae
     9568    call 01757h                               ; e8 fc ad
    95459569    mov dx, word [bp+006h]                    ; 8b 56 06
    95469570    add dx, strict byte 0003dh                ; 83 c2 3d
    95479571    mov ax, word [bp+014h]                    ; 8b 46 14
    95489572    mov bx, 0009bh                            ; bb 9b 00
    9549     call 01757h                               ; e8 0b ae
     9573    call 01757h                               ; e8 ed ad
    95509574    mov dx, word [bp+006h]                    ; 8b 56 06
    95519575    add dx, strict byte 0003eh                ; 83 c2 3e
    95529576    mov ax, word [bp+014h]                    ; 8b 46 14
    95539577    xor bx, bx                                ; 31 db
    9554     call 01773h                               ; e8 19 ae
     9578    call 01773h                               ; e8 fb ad
    95559579    mov AL, strict byte 011h                  ; b0 11
    95569580    mov dx, strict word 00020h                ; ba 20 00
     
    95829606    out DX, AL                                ; ee
    95839607    mov si, word [bp+006h]                    ; 8b 76 06
    9584     call 0699bh                               ; e8 00 00
     9608    call 069b9h                               ; e8 00 00
    95859609    pop di                                    ; 5f
    95869610    add di, strict byte 00018h                ; 83 c7 18
     
    96109634    push cx                                   ; 51
    96119635    retf                                      ; cb
    9612     jmp near 06827h                           ; e9 50 fe
    9613     mov bx, 00db6h                            ; bb b6 0d
     9636    jmp near 06845h                           ; e9 50 fe
     9637    mov bx, 00db2h                            ; bb b2 0d
    96149638    mov cx, ds                                ; 8c d9
    96159639    mov ax, strict word 00004h                ; b8 04 00
    9616     call 01a2ah                               ; e8 48 b0
     9640    call 01a2ah                               ; e8 2a b0
    96179641    push 00880h                               ; 68 80 08
    96189642    push strict byte 00004h                   ; 6a 04
    9619     call 01a6bh                               ; e8 81 b0
     9643    call 01a6bh                               ; e8 63 b0
    96209644    add sp, strict byte 00004h                ; 83 c4 04
    96219645    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    96249648    or ah, 086h                               ; 80 cc 86
    96259649    mov word [bp+012h], ax                    ; 89 46 12
    9626     jmp near 06827h                           ; e9 28 fe
     9650    jmp near 06845h                           ; e9 28 fe
    96279651    mov word [bp+018h], cx                    ; 89 4e 18
    96289652    mov word [bp+012h], ax                    ; 89 46 12
    96299653    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    96309654    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9631     jmp near 06827h                           ; e9 15 fe
     9655    jmp near 06845h                           ; e9 15 fe
    96329656    mov dx, strict word 0000eh                ; ba 0e 00
    96339657    mov ax, strict word 00040h                ; b8 40 00
    9634     call 01765h                               ; e8 4a ad
     9658    call 01765h                               ; e8 2c ad
    96359659    mov word [bp+014h], ax                    ; 89 46 14
    9636     jmp near 06903h                           ; e9 e2 fe
     9660    jmp near 06921h                           ; e9 e2 fe
    96379661    push 008afh                               ; 68 af 08
    96389662    push strict byte 00008h                   ; 6a 08
    9639     jmp short 069e7h                          ; eb bf
     9663    jmp short 06a05h                          ; eb bf
    96409664    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9641     jne short 06a4dh                          ; 75 1f
     9665    jne short 06a6bh                          ; 75 1f
    96429666    mov word [bp+012h], ax                    ; 89 46 12
    96439667    mov ax, word [bp+00ch]                    ; 8b 46 0c
    96449668    xor ah, ah                                ; 30 e4
    96459669    cmp ax, strict word 00001h                ; 3d 01 00
    9646     jc short 06a46h                           ; 72 0b
     9670    jc short 06a64h                           ; 72 0b
    96479671    cmp ax, strict word 00003h                ; 3d 03 00
    9648     jnbe short 06a46h                         ; 77 06
     9672    jnbe short 06a64h                         ; 77 06
    96499673    mov word [bp+018h], cx                    ; 89 4e 18
    9650     jmp near 06827h                           ; e9 e1 fd
     9674    jmp near 06845h                           ; e9 e1 fd
    96519675    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9652     jmp near 06827h                           ; e9 da fd
    9653     mov bx, 00db6h                            ; bb b6 0d
     9676    jmp near 06845h                           ; e9 da fd
     9677    mov bx, 00db2h                            ; bb b2 0d
    96549678    mov cx, ds                                ; 8c d9
    96559679    mov ax, strict word 00004h                ; b8 04 00
    9656     call 01a2ah                               ; e8 d2 af
     9680    call 01a2ah                               ; e8 b4 af
    96579681    push word [bp+00ch]                       ; ff 76 0c
    96589682    push word [bp+012h]                       ; ff 76 12
    96599683    push 008c6h                               ; 68 c6 08
    96609684    push strict byte 00004h                   ; 6a 04
    9661     call 01a6bh                               ; e8 05 b0
     9685    call 01a6bh                               ; e8 e7 af
    96629686    add sp, strict byte 00008h                ; 83 c4 08
    9663     jmp short 069edh                          ; eb 82
    9664     clc                                       ; f8
    9665     imul bx, word [bp+si], strict byte 0006ch ; 6b 1a 6c
    9666     cmp ax, 05f6ch                            ; 3d 6c 5f
     9687    jmp short 06a0bh                          ; eb 82
     9688    push SS                                   ; 16
    96679689    insb                                      ; 6c
    9668     jnle short 06ae1h                         ; 7f 6c
    9669     sahf                                      ; 9e
     9690    cmp byte [si+05bh], ch                    ; 38 6c 5b
    96709691    insb                                      ; 6c
    9671     retn 0e66ch                               ; c2 6c e6
     9692    jnl short 06afdh                          ; 7d 6c
     9693    popfw                                     ; 9d
    96729694    insb                                      ; 6c
    9673     and ax, 0516dh                            ; 25 6d 51
     9695    mov sp, 0e06ch                            ; bc 6c e0
     9696    insb                                      ; 6c
     9697    add AL, strict byte 06dh                  ; 04 6d
     9698    inc bx                                    ; 43
    96749699    insw                                      ; 6d
    9675 _int15_function32:                           ; 0xf6a7f LB 0x396
     9700    outsw                                     ; 6f
     9701    insw                                      ; 6d
     9702_int15_function32:                           ; 0xf6a9d LB 0x396
    96769703    push bp                                   ; 55
    96779704    mov bp, sp                                ; 89 e5
     
    96859712    xor dh, dh                                ; 30 f6
    96869713    cmp ax, 000e8h                            ; 3d e8 00
    9687     je near 06b1ch                            ; 0f 84 7e 00
     9714    je near 06b3ah                            ; 0f 84 7e 00
    96889715    cmp ax, 000d0h                            ; 3d d0 00
    9689     je short 06ab7h                           ; 74 14
     9716    je short 06ad5h                           ; 74 14
    96909717    cmp ax, 00086h                            ; 3d 86 00
    9691     jne near 06de5h                           ; 0f 85 3b 03
     9718    jne near 06e03h                           ; 0f 85 3b 03
    96929719    sti                                       ; fb
    96939720    mov dx, word [bp+01ch]                    ; 8b 56 1c
    96949721    mov ax, word [bp+018h]                    ; 8b 46 18
    9695     call 06651h                               ; e8 9d fb
    9696     jmp near 06e0fh                           ; e9 58 03
     9722    call 0666fh                               ; e8 9d fb
     9723    jmp near 06e2dh                           ; e9 58 03
    96979724    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9698     jne near 06de5h                           ; 0f 85 27 03
     9725    jne near 06e03h                           ; 0f 85 27 03
    96999726    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9700     jne near 06de5h                           ; 0f 85 1e 03
     9727    jne near 06e03h                           ; 0f 85 1e 03
    97019728    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9702     jne near 06de5h                           ; 0f 85 15 03
     9729    jne near 06e03h                           ; 0f 85 15 03
    97039730    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9704     jne near 06de5h                           ; 0f 85 0c 03
     9731    jne near 06e03h                           ; 0f 85 0c 03
    97059732    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9706     jne near 06de5h                           ; 0f 85 03 03
     9733    jne near 06e03h                           ; 0f 85 03 03
    97079734    mov ax, word [bp+00ah]                    ; 8b 46 0a
    97089735    or ax, word [bp+008h]                     ; 0b 46 08
    9709     jne near 06de5h                           ; 0f 85 f9 02
     9736    jne near 06e03h                           ; 0f 85 f9 02
    97109737    mov ax, word [bp+006h]                    ; 8b 46 06
    97119738    or ax, word [bp+004h]                     ; 0b 46 04
    9712     jne near 06de5h                           ; 0f 85 ef 02
     9739    jne near 06e03h                           ; 0f 85 ef 02
    97139740    mov word [bp+028h], bx                    ; 89 5e 28
    97149741    mov ax, word [bp+014h]                    ; 8b 46 14
     
    97219748    mov word [bp+006h], ax                    ; 89 46 06
    97229749    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9723     jmp near 06e0fh                           ; e9 f3 02
     9750    jmp near 06e2dh                           ; e9 f3 02
    97249751    cmp dx, strict byte 00020h                ; 83 fa 20
    9725     je short 06b2bh                           ; 74 0a
     9752    je short 06b49h                           ; 74 0a
    97269753    cmp dx, strict byte 00001h                ; 83 fa 01
    9727     je near 06d98h                            ; 0f 84 70 02
    9728     jmp near 06de5h                           ; e9 ba 02
     9754    je near 06db6h                            ; 0f 84 70 02
     9755    jmp near 06e03h                           ; e9 ba 02
    97299756    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9730     jne near 06de5h                           ; 0f 85 b1 02
     9757    jne near 06e03h                           ; 0f 85 b1 02
    97319758    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9732     jne near 06de5h                           ; 0f 85 a8 02
     9759    jne near 06e03h                           ; 0f 85 a8 02
    97339760    mov ax, strict word 00035h                ; b8 35 00
    9734     call 017a5h                               ; e8 62 ac
     9761    call 017a5h                               ; e8 44 ac
    97359762    movzx bx, al                              ; 0f b6 d8
    97369763    xor dx, dx                                ; 31 d2
     
    97389765    sal bx, 1                                 ; d1 e3
    97399766    rcl dx, 1                                 ; d1 d2
    9740     loop 06b4bh                               ; e2 fa
     9767    loop 06b69h                               ; e2 fa
    97419768    mov ax, strict word 00034h                ; b8 34 00
    9742     call 017a5h                               ; e8 4e ac
     9769    call 017a5h                               ; e8 30 ac
    97439770    xor ah, ah                                ; 30 e4
    97449771    mov dx, bx                                ; 89 da
     
    97489775    adc dx, 00100h                            ; 81 d2 00 01
    97499776    cmp dx, 00100h                            ; 81 fa 00 01
    9750     jc short 06b71h                           ; 72 06
    9751     jne short 06b9eh                          ; 75 31
     9777    jc short 06b8fh                           ; 72 06
     9778    jne short 06bbch                          ; 75 31
    97529779    test bx, bx                               ; 85 db
    9753     jnbe short 06b9eh                         ; 77 2d
     9780    jnbe short 06bbch                         ; 77 2d
    97549781    mov ax, strict word 00031h                ; b8 31 00
    9755     call 017a5h                               ; e8 2e ac
     9782    call 017a5h                               ; e8 10 ac
    97569783    movzx bx, al                              ; 0f b6 d8
    97579784    xor dx, dx                                ; 31 d2
     
    97599786    sal bx, 1                                 ; d1 e3
    97609787    rcl dx, 1                                 ; d1 d2
    9761     loop 06b7fh                               ; e2 fa
     9788    loop 06b9dh                               ; e2 fa
    97629789    mov ax, strict word 00030h                ; b8 30 00
    9763     call 017a5h                               ; e8 1a ac
     9790    call 017a5h                               ; e8 fc ab
    97649791    xor ah, ah                                ; 30 e4
    97659792    or bx, ax                                 ; 09 c3
     
    97679794    sal bx, 1                                 ; d1 e3
    97689795    rcl dx, 1                                 ; d1 d2
    9769     loop 06b92h                               ; e2 fa
     9796    loop 06bb0h                               ; e2 fa
    97709797    add bx, strict byte 00000h                ; 83 c3 00
    97719798    adc dx, strict byte 00010h                ; 83 d2 10
    97729799    mov ax, strict word 00062h                ; b8 62 00
    9773     call 017a5h                               ; e8 01 ac
     9800    call 017a5h                               ; e8 e3 ab
    97749801    xor ah, ah                                ; 30 e4
    97759802    mov word [bp-00ah], ax                    ; 89 46 f6
     
    97799806    sal word [bp-00ah], 1                     ; d1 66 f6
    97809807    rcl word [bp-008h], 1                     ; d1 56 f8
    9781     loop 06bb1h                               ; e2 f8
     9808    loop 06bcfh                               ; e2 f8
    97829809    mov ax, strict word 00061h                ; b8 61 00
    9783     call 017a5h                               ; e8 e6 ab
     9810    call 017a5h                               ; e8 c8 ab
    97849811    xor ah, ah                                ; 30 e4
    97859812    or word [bp-00ah], ax                     ; 09 46 f6
     
    97889815    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    97899816    mov ax, strict word 00063h                ; b8 63 00
    9790     call 017a5h                               ; e8 d0 ab
     9817    call 017a5h                               ; e8 b2 ab
    97919818    mov byte [bp-004h], al                    ; 88 46 fc
    97929819    mov byte [bp-006h], al                    ; 88 46 fa
    97939820    mov ax, word [bp+014h]                    ; 8b 46 14
    97949821    cmp ax, strict word 00009h                ; 3d 09 00
    9795     jnbe near 06de5h                          ; 0f 87 00 02
     9822    jnbe near 06e03h                          ; 0f 87 00 02
    97969823    mov si, ax                                ; 89 c6
    97979824    add si, ax                                ; 01 c6
     
    98009827    mov cx, dx                                ; 89 d1
    98019828    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9802     jmp word [cs:si+06a6bh]                   ; 2e ff a4 6b 6a
     9829    jmp word [cs:si+06a89h]                   ; 2e ff a4 89 6a
    98039830    push strict byte 00001h                   ; 6a 01
    98049831    push dword 000000000h                     ; 66 6a 00
     
    98099836    xor bx, bx                                ; 31 db
    98109837    xor cx, cx                                ; 31 c9
    9811     call 066c0h                               ; e8 b1 fa
     9838    call 066deh                               ; e8 b1 fa
    98129839    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9813     jmp near 06d82h                           ; e9 68 01
     9840    jmp near 06da0h                           ; e9 68 01
    98149841    push strict byte 00002h                   ; 6a 02
    98159842    push dword 000000000h                     ; 66 6a 00
     
    98209847    mov bx, 0fc00h                            ; bb 00 fc
    98219848    mov cx, strict word 00009h                ; b9 09 00
    9822     call 066c0h                               ; e8 8e fa
     9849    call 066deh                               ; e8 8e fa
    98239850    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9824     jmp near 06d82h                           ; e9 45 01
     9851    jmp near 06da0h                           ; e9 45 01
    98259852    push strict byte 00002h                   ; 6a 02
    98269853    push dword 000000000h                     ; 66 6a 00
     
    98319858    xor bx, bx                                ; 31 db
    98329859    mov cx, strict word 0000fh                ; b9 0f 00
    9833     call 066c0h                               ; e8 6c fa
     9860    call 066deh                               ; e8 6c fa
    98349861    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9835     jmp near 06d82h                           ; e9 23 01
     9862    jmp near 06da0h                           ; e9 23 01
    98369863    push strict byte 00001h                   ; 6a 01
    98379864    push dword 000000000h                     ; 66 6a 00
     
    98429869    xor bx, bx                                ; 31 db
    98439870    mov cx, strict word 00010h                ; b9 10 00
    9844     call 066c0h                               ; e8 4c fa
     9871    call 066deh                               ; e8 4c fa
    98459872    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9846     jmp near 06d82h                           ; e9 03 01
     9873    jmp near 06da0h                           ; e9 03 01
    98479874    push strict byte 00003h                   ; 6a 03
    98489875    push dword 000000000h                     ; 66 6a 00
     
    98539880    mov bx, ax                                ; 89 c3
    98549881    mov ax, si                                ; 89 f0
    9855     call 066c0h                               ; e8 2d fa
     9882    call 066deh                               ; e8 2d fa
    98569883    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9857     jmp near 06d82h                           ; e9 e4 00
     9884    jmp near 06da0h                           ; e9 e4 00
    98589885    push strict byte 00002h                   ; 6a 02
    98599886    push dword 000000000h                     ; 66 6a 00
     
    98649891    xor bx, bx                                ; 31 db
    98659892    mov cx, 0fec0h                            ; b9 c0 fe
    9866     call 066c0h                               ; e8 09 fa
     9893    call 066deh                               ; e8 09 fa
    98679894    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9868     jmp near 06d82h                           ; e9 c0 00
     9895    jmp near 06da0h                           ; e9 c0 00
    98699896    push strict byte 00002h                   ; 6a 02
    98709897    push dword 000000000h                     ; 66 6a 00
     
    98759902    xor bx, bx                                ; 31 db
    98769903    mov cx, 0fee0h                            ; b9 e0 fe
    9877     call 066c0h                               ; e8 e5 f9
     9904    call 066deh                               ; e8 e5 f9
    98789905    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9879     jmp near 06d82h                           ; e9 9c 00
     9906    jmp near 06da0h                           ; e9 9c 00
    98809907    push strict byte 00002h                   ; 6a 02
    98819908    push dword 000000000h                     ; 66 6a 00
     
    98859912    xor bx, bx                                ; 31 db
    98869913    mov cx, strict word 0fffch                ; b9 fc ff
    9887     call 066c0h                               ; e8 c4 f9
     9914    call 066deh                               ; e8 c4 f9
    98889915    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9889     jne short 06d09h                          ; 75 07
     9916    jne short 06d27h                          ; 75 07
    98909917    mov ax, word [bp-008h]                    ; 8b 46 f8
    98919918    test ax, ax                               ; 85 c0
    9892     je short 06d1dh                           ; 74 14
     9919    je short 06d3bh                           ; 74 14
    98939920    mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
    9894     jmp short 06d82h                          ; eb 6f
     9921    jmp short 06da0h                          ; eb 6f
    98959922    mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
    9896     jmp short 06d82h                          ; eb 65
     9923    jmp short 06da0h                          ; eb 65
    98979924    mov word [bp+014h], ax                    ; 89 46 14
    98989925    mov word [bp+016h], ax                    ; 89 46 16
    9899     jmp short 06d82h                          ; eb 5d
     9926    jmp short 06da0h                          ; eb 5d
    99009927    push strict byte 00002h                   ; 6a 02
    99019928    push dword 000000000h                     ; 66 6a 00
     
    99059932    xor bx, bx                                ; 31 db
    99069933    xor cx, cx                                ; 31 c9
    9907     call 066c0h                               ; e8 86 f9
     9934    call 066deh                               ; e8 86 f9
    99089935    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9909     jne short 06d47h                          ; 75 07
     9936    jne short 06d65h                          ; 75 07
    99109937    mov ax, word [bp-008h]                    ; 8b 46 f8
    99119938    test ax, ax                               ; 85 c0
    9912     je short 06d49h                           ; 74 02
    9913     jmp short 06d09h                          ; eb c0
     9939    je short 06d67h                           ; 74 02
     9940    jmp short 06d27h                          ; eb c0
    99149941    mov word [bp+014h], ax                    ; 89 46 14
    99159942    mov word [bp+016h], ax                    ; 89 46 16
    9916     jmp short 06d82h                          ; eb 31
     9943    jmp short 06da0h                          ; eb 31
    99179944    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9918     jne short 06d5dh                          ; 75 06
     9945    jne short 06d7bh                          ; 75 06
    99199946    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9920     je short 06d82h                           ; 74 25
     9947    je short 06da0h                           ; 74 25
    99219948    push strict byte 00001h                   ; 6a 01
    99229949    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    99319958    xor bx, bx                                ; 31 db
    99329959    xor cx, cx                                ; 31 c9
    9933     call 066c0h                               ; e8 46 f9
     9960    call 066deh                               ; e8 46 f9
    99349961    xor ax, ax                                ; 31 c0
    99359962    mov word [bp+014h], ax                    ; 89 46 14
     
    99389965    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    99399966    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9940     jmp short 06e0fh                          ; eb 77
     9967    jmp short 06e2dh                          ; eb 77
    99419968    mov word [bp+028h], bx                    ; 89 5e 28
    99429969    mov ax, strict word 00031h                ; b8 31 00
    9943     call 017a5h                               ; e8 04 aa
     9970    call 017a5h                               ; e8 e6 a9
    99449971    xor ah, ah                                ; 30 e4
    99459972    mov dx, ax                                ; 89 c2
    99469973    sal dx, 008h                              ; c1 e2 08
    99479974    mov ax, strict word 00030h                ; b8 30 00
    9948     call 017a5h                               ; e8 f7 a9
     9975    call 017a5h                               ; e8 d9 a9
    99499976    xor ah, ah                                ; 30 e4
    99509977    or dx, ax                                 ; 09 c2
    99519978    mov word [bp+01ch], dx                    ; 89 56 1c
    99529979    cmp dx, 03c00h                            ; 81 fa 00 3c
    9953     jbe short 06dc0h                          ; 76 05
     9980    jbe short 06ddeh                          ; 76 05
    99549981    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    99559982    mov ax, strict word 00035h                ; b8 35 00
    9956     call 017a5h                               ; e8 df a9
     9983    call 017a5h                               ; e8 c1 a9
    99579984    xor ah, ah                                ; 30 e4
    99589985    mov dx, ax                                ; 89 c2
    99599986    sal dx, 008h                              ; c1 e2 08
    99609987    mov ax, strict word 00034h                ; b8 34 00
    9961     call 017a5h                               ; e8 d2 a9
     9988    call 017a5h                               ; e8 b4 a9
    99629989    xor ah, ah                                ; 30 e4
    99639990    or dx, ax                                 ; 09 c2
     
    99669993    mov word [bp+020h], ax                    ; 89 46 20
    99679994    mov word [bp+014h], dx                    ; 89 56 14
    9968     jmp short 06e0fh                          ; eb 2a
    9969     mov bx, 00db6h                            ; bb b6 0d
     9995    jmp short 06e2dh                          ; eb 2a
     9996    mov bx, 00db2h                            ; bb b2 0d
    99709997    mov cx, ds                                ; 8c d9
    99719998    mov ax, strict word 00004h                ; b8 04 00
    9972     call 01a2ah                               ; e8 3a ac
     9999    call 01a2ah                               ; e8 1c ac
    997310000    push word [bp+014h]                       ; ff 76 14
    997410001    push word [bp+020h]                       ; ff 76 20
    997510002    push 008c6h                               ; 68 c6 08
    997610003    push strict byte 00004h                   ; 6a 04
    9977     call 01a6bh                               ; e8 6d ac
     10004    call 01a6bh                               ; e8 4f ac
    997810005    add sp, strict byte 00008h                ; 83 c4 08
    997910006    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    998610013    pop bp                                    ; 5d
    998710014    retn                                      ; c3
    9988 _int15_blkmove:                              ; 0xf6e15 LB 0x1ab
     10015_int15_blkmove:                              ; 0xf6e33 LB 0x1ab
    998910016    push bp                                   ; 55
    999010017    mov bp, sp                                ; 89 e5
     
    999510022    cli                                       ; fa
    999610023    mov ax, strict word 00001h                ; b8 01 00
    9997     call 06694h                               ; e8 71 f8
     10024    call 066b2h                               ; e8 71 f8
    999810025    mov di, ax                                ; 89 c7
    999910026    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1000510032    mov byte [bp-006h], dl                    ; 88 56 fa
    1000610033    cmp cx, ax                                ; 39 c1
    10007     jnc short 06e42h                          ; 73 05
     10034    jnc short 06e60h                          ; 73 05
    1000810035    db  0feh, 0c2h
    1000910036    ; inc dl                                    ; fe c2
     
    1001310040    mov ax, word [bp+006h]                    ; 8b 46 06
    1001410041    mov bx, strict word 0002fh                ; bb 2f 00
    10015     call 01773h                               ; e8 22 a9
     10042    call 01773h                               ; e8 04 a9
    1001610043    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1001710044    add dx, strict byte 0000ah                ; 83 c2 0a
    1001810045    mov ax, word [bp+006h]                    ; 8b 46 06
    1001910046    mov bx, cx                                ; 89 cb
    10020     call 01773h                               ; e8 14 a9
     10047    call 01773h                               ; e8 f6 a8
    1002110048    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1002210049    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1002310050    add dx, strict byte 0000ch                ; 83 c2 0c
    1002410051    mov ax, word [bp+006h]                    ; 8b 46 06
    10025     call 01757h                               ; e8 e8 a8
     10052    call 01757h                               ; e8 ca a8
    1002610053    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1002710054    add dx, strict byte 0000dh                ; 83 c2 0d
    1002810055    mov ax, word [bp+006h]                    ; 8b 46 06
    1002910056    mov bx, 00093h                            ; bb 93 00
    10030     call 01757h                               ; e8 d9 a8
     10057    call 01757h                               ; e8 bb a8
    1003110058    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1003210059    add dx, strict byte 0000eh                ; 83 c2 0e
    1003310060    mov ax, word [bp+006h]                    ; 8b 46 06
    1003410061    xor bx, bx                                ; 31 db
    10035     call 01773h                               ; e8 e7 a8
     10062    call 01773h                               ; e8 c9 a8
    1003610063    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1003710064    add dx, strict byte 00020h                ; 83 c2 20
    1003810065    mov ax, word [bp+006h]                    ; 8b 46 06
    1003910066    mov bx, strict word 0ffffh                ; bb ff ff
    10040     call 01773h                               ; e8 d8 a8
     10067    call 01773h                               ; e8 ba a8
    1004110068    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1004210069    add dx, strict byte 00022h                ; 83 c2 22
    1004310070    mov ax, word [bp+006h]                    ; 8b 46 06
    1004410071    xor bx, bx                                ; 31 db
    10045     call 01773h                               ; e8 ca a8
     10072    call 01773h                               ; e8 ac a8
    1004610073    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1004710074    add dx, strict byte 00024h                ; 83 c2 24
    1004810075    mov ax, word [bp+006h]                    ; 8b 46 06
    1004910076    mov bx, strict word 0000fh                ; bb 0f 00
    10050     call 01757h                               ; e8 9f a8
     10077    call 01757h                               ; e8 81 a8
    1005110078    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1005210079    add dx, strict byte 00025h                ; 83 c2 25
    1005310080    mov ax, word [bp+006h]                    ; 8b 46 06
    1005410081    mov bx, 0009bh                            ; bb 9b 00
    10055     call 01757h                               ; e8 90 a8
     10082    call 01757h                               ; e8 72 a8
    1005610083    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1005710084    add dx, strict byte 00026h                ; 83 c2 26
    1005810085    mov ax, word [bp+006h]                    ; 8b 46 06
    1005910086    xor bx, bx                                ; 31 db
    10060     call 01773h                               ; e8 9e a8
     10087    call 01773h                               ; e8 80 a8
    1006110088    mov ax, ss                                ; 8c d0
    1006210089    mov cx, ax                                ; 89 c1
     
    1006810095    mov ax, word [bp+006h]                    ; 8b 46 06
    1006910096    mov bx, strict word 0ffffh                ; bb ff ff
    10070     call 01773h                               ; e8 82 a8
     10097    call 01773h                               ; e8 64 a8
    1007110098    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1007210099    add dx, strict byte 0002ah                ; 83 c2 2a
    1007310100    mov ax, word [bp+006h]                    ; 8b 46 06
    1007410101    mov bx, cx                                ; 89 cb
    10075     call 01773h                               ; e8 74 a8
     10102    call 01773h                               ; e8 56 a8
    1007610103    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1007710104    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1007810105    add dx, strict byte 0002ch                ; 83 c2 2c
    1007910106    mov ax, word [bp+006h]                    ; 8b 46 06
    10080     call 01757h                               ; e8 48 a8
     10107    call 01757h                               ; e8 2a a8
    1008110108    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1008210109    add dx, strict byte 0002dh                ; 83 c2 2d
    1008310110    mov ax, word [bp+006h]                    ; 8b 46 06
    1008410111    mov bx, 00093h                            ; bb 93 00
    10085     call 01757h                               ; e8 39 a8
     10112    call 01757h                               ; e8 1b a8
    1008610113    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1008710114    add dx, strict byte 0002eh                ; 83 c2 2e
    1008810115    mov ax, word [bp+006h]                    ; 8b 46 06
    1008910116    xor bx, bx                                ; 31 db
    10090     call 01773h                               ; e8 47 a8
     10117    call 01773h                               ; e8 29 a8
    1009110118    lea ax, [bp+004h]                         ; 8d 46 04
    1009210119    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    1010010127    mov word [00467h], sp                     ; 89 26 67 04
    1010110128    mov [00469h], ss                          ; 8c 16 69 04
    10102     call 06f4bh                               ; e8 00 00
     10129    call 06f69h                               ; e8 00 00
    1010310130    pop di                                    ; 5f
    1010410131    add di, strict byte 0001bh                ; 83 c7 1b
     
    1012310150    cld                                       ; fc
    1012410151    rep movsw                                 ; f3 a5
    10125     call 06f7fh                               ; e8 00 00
     10152    call 06f9dh                               ; e8 00 00
    1012610153    pop ax                                    ; 58
    1012710154    push 0f000h                               ; 68 00 f0
     
    1014410171    pop DS                                    ; 1f
    1014510172    mov ax, di                                ; 89 f8
    10146     call 06694h                               ; e8 e4 f6
     10173    call 066b2h                               ; e8 e4 f6
    1014710174    sti                                       ; fb
    1014810175    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1015310180    pop bp                                    ; 5d
    1015410181    retn                                      ; c3
    10155 _inv_op_handler:                             ; 0xf6fc0 LB 0x195
     10182_inv_op_handler:                             ; 0xf6fde LB 0x195
    1015610183    push bp                                   ; 55
    1015710184    mov bp, sp                                ; 89 e5
     
    1016210189    les bx, [bp+018h]                         ; c4 5e 18
    1016310190    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10164     jne short 06fd6h                          ; 75 06
     10191    jne short 06ff4h                          ; 75 06
    1016510192    inc word [bp+018h]                        ; ff 46 18
    10166     jmp near 0714eh                           ; e9 78 01
     10193    jmp near 0716ch                           ; e9 78 01
    1016710194    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10168     jne near 0714ah                           ; 0f 85 6b 01
     10195    jne near 07168h                           ; 0f 85 6b 01
    1016910196    mov si, 00800h                            ; be 00 08
    1017010197    xor ax, ax                                ; 31 c0
     
    1019410221    sal ax, 1                                 ; d1 e0
    1019510222    rcl dx, 1                                 ; d1 d2
    10196     loop 0702fh                               ; e2 fa
     10223    loop 0704dh                               ; e2 fa
    1019710224    cmp bx, dx                                ; 39 d3
    10198     jne short 0703dh                          ; 75 04
     10225    jne short 0705bh                          ; 75 04
    1019910226    cmp di, ax                                ; 39 c7
    10200     je short 07042h                           ; 74 05
     10227    je short 07060h                           ; 74 05
    1020110228    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1020210229    mov es, [bp-006h]                         ; 8e 46 fa
     
    1020810235    sal ax, 1                                 ; d1 e0
    1020910236    rcl dx, 1                                 ; d1 d2
    10210     loop 07057h                               ; e2 fa
     10237    loop 07075h                               ; e2 fa
    1021110238    cmp di, dx                                ; 39 d7
    10212     jne short 07065h                          ; 75 04
     10239    jne short 07083h                          ; 75 04
    1021310240    cmp bx, ax                                ; 39 c3
    10214     je short 07069h                           ; 74 04
     10241    je short 07087h                           ; 74 04
    1021510242    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1021610243    push strict byte 00000h                   ; 6a 00
     
    1026210289    mov ax, strict word 00008h                ; b8 08 00
    1026310290    test cx, strict word 00001h               ; f7 c1 01 00
    10264     je near 07107h                            ; 0f 84 02 00
     10291    je near 07125h                            ; 0f 84 02 00
    1026510292    mov es, ax                                ; 8e c0
    1026610293    test cx, strict word 00002h               ; f7 c1 02 00
    10267     je near 0712fh                            ; 0f 84 20 00
     10294    je near 0714dh                            ; 0f 84 20 00
    1026810295    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1026910296    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1028210309    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1028310310    iret                                      ; cf
    10284     jmp short 0714eh                          ; eb 04
     10311    jmp short 0716ch                          ; eb 04
    1028510312    sti                                       ; fb
    1028610313    hlt                                       ; f4
    10287     jmp short 0714bh                          ; eb fd
     10314    jmp short 07169h                          ; eb fd
    1028810315    lea sp, [bp-004h]                         ; 8d 66 fc
    1028910316    pop di                                    ; 5f
     
    1029110318    pop bp                                    ; 5d
    1029210319    retn                                      ; c3
    10293 init_rtc_:                                   ; 0xf7155 LB 0x28
     10320init_rtc_:                                   ; 0xf7173 LB 0x28
    1029410321    push bp                                   ; 55
    1029510322    mov bp, sp                                ; 89 e5
     
    1029710324    mov dx, strict word 00026h                ; ba 26 00
    1029810325    mov ax, strict word 0000ah                ; b8 0a 00
    10299     call 017c2h                               ; e8 60 a6
     10326    call 017c2h                               ; e8 42 a6
    1030010327    mov dx, strict word 00002h                ; ba 02 00
    1030110328    mov ax, strict word 0000bh                ; b8 0b 00
    10302     call 017c2h                               ; e8 57 a6
     10329    call 017c2h                               ; e8 39 a6
    1030310330    mov ax, strict word 0000ch                ; b8 0c 00
    10304     call 017a5h                               ; e8 34 a6
     10331    call 017a5h                               ; e8 16 a6
    1030510332    mov ax, strict word 0000dh                ; b8 0d 00
    10306     call 017a5h                               ; e8 2e a6
     10333    call 017a5h                               ; e8 10 a6
    1030710334    lea sp, [bp-002h]                         ; 8d 66 fe
    1030810335    pop dx                                    ; 5a
    1030910336    pop bp                                    ; 5d
    1031010337    retn                                      ; c3
    10311 rtc_updating_:                               ; 0xf717d LB 0x21
     10338rtc_updating_:                               ; 0xf719b LB 0x21
    1031210339    push bp                                   ; 55
    1031310340    mov bp, sp                                ; 89 e5
     
    1031510342    mov dx, 061a8h                            ; ba a8 61
    1031610343    dec dx                                    ; 4a
    10317     je short 07195h                           ; 74 0e
     10344    je short 071b3h                           ; 74 0e
    1031810345    mov ax, strict word 0000ah                ; b8 0a 00
    10319     call 017a5h                               ; e8 18 a6
     10346    call 017a5h                               ; e8 fa a5
    1032010347    test AL, strict byte 080h                 ; a8 80
    10321     jne short 07184h                          ; 75 f3
     10348    jne short 071a2h                          ; 75 f3
    1032210349    xor ax, ax                                ; 31 c0
    10323     jmp short 07198h                          ; eb 03
     10350    jmp short 071b6h                          ; eb 03
    1032410351    mov ax, strict word 00001h                ; b8 01 00
    1032510352    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1032710354    pop bp                                    ; 5d
    1032810355    retn                                      ; c3
    10329 _int70_function:                             ; 0xf719e LB 0xbe
     10356_int70_function:                             ; 0xf71bc LB 0xbe
    1033010357    push bp                                   ; 55
    1033110358    mov bp, sp                                ; 89 e5
     
    1033310360    push ax                                   ; 50
    1033410361    mov ax, strict word 0000bh                ; b8 0b 00
    10335     call 017a5h                               ; e8 fc a5
     10362    call 017a5h                               ; e8 de a5
    1033610363    mov dl, al                                ; 88 c2
    1033710364    mov byte [bp-004h], al                    ; 88 46 fc
    1033810365    mov ax, strict word 0000ch                ; b8 0c 00
    10339     call 017a5h                               ; e8 f1 a5
     10366    call 017a5h                               ; e8 d3 a5
    1034010367    mov dh, al                                ; 88 c6
    1034110368    test dl, 060h                             ; f6 c2 60
    10342     je near 07243h                            ; 0f 84 86 00
     10369    je near 07261h                            ; 0f 84 86 00
    1034310370    test AL, strict byte 020h                 ; a8 20
    10344     je short 071c5h                           ; 74 04
     10371    je short 071e3h                           ; 74 04
    1034510372    sti                                       ; fb
    1034610373    int 04ah                                  ; cd 4a
    1034710374    cli                                       ; fa
    1034810375    test dh, 040h                             ; f6 c6 40
    10349     je near 07243h                            ; 0f 84 77 00
     10376    je near 07261h                            ; 0f 84 77 00
    1035010377    mov dx, 000a0h                            ; ba a0 00
    1035110378    mov ax, strict word 00040h                ; b8 40 00
    10352     call 01749h                               ; e8 74 a5
     10379    call 01749h                               ; e8 56 a5
    1035310380    test al, al                               ; 84 c0
    10354     je short 07243h                           ; 74 6a
     10381    je short 07261h                           ; 74 6a
    1035510382    mov dx, 0009ch                            ; ba 9c 00
    1035610383    mov ax, strict word 00040h                ; b8 40 00
    10357     call 01781h                               ; e8 9f a5
     10384    call 01781h                               ; e8 81 a5
    1035810385    test dx, dx                               ; 85 d2
    10359     jne short 0722fh                          ; 75 49
     10386    jne short 0724dh                          ; 75 49
    1036010387    cmp ax, 003d1h                            ; 3d d1 03
    10361     jnc short 0722fh                          ; 73 44
     10388    jnc short 0724dh                          ; 73 44
    1036210389    mov dx, 00098h                            ; ba 98 00
    1036310390    mov ax, strict word 00040h                ; b8 40 00
    10364     call 01765h                               ; e8 71 a5
     10391    call 01765h                               ; e8 53 a5
    1036510392    mov si, ax                                ; 89 c6
    1036610393    mov dx, 0009ah                            ; ba 9a 00
    1036710394    mov ax, strict word 00040h                ; b8 40 00
    10368     call 01765h                               ; e8 66 a5
     10395    call 01765h                               ; e8 48 a5
    1036910396    mov cx, ax                                ; 89 c1
    1037010397    xor bx, bx                                ; 31 db
    1037110398    mov dx, 000a0h                            ; ba a0 00
    1037210399    mov ax, strict word 00040h                ; b8 40 00
    10373     call 01757h                               ; e8 4b a5
     10400    call 01757h                               ; e8 2d a5
    1037410401    mov al, byte [bp-004h]                    ; 8a 46 fc
    1037510402    and AL, strict byte 037h                  ; 24 37
    1037610403    movzx dx, al                              ; 0f b6 d0
    1037710404    mov ax, strict word 0000bh                ; b8 0b 00
    10378     call 017c2h                               ; e8 a8 a5
     10405    call 017c2h                               ; e8 8a a5
    1037910406    mov dx, cx                                ; 89 ca
    1038010407    mov ax, si                                ; 89 f0
    10381     call 01749h                               ; e8 28 a5
     10408    call 01749h                               ; e8 0a a5
    1038210409    or AL, strict byte 080h                   ; 0c 80
    1038310410    movzx bx, al                              ; 0f b6 d8
    1038410411    mov dx, cx                                ; 89 ca
    1038510412    mov ax, si                                ; 89 f0
    10386     call 01757h                               ; e8 2a a5
    10387     jmp short 07243h                          ; eb 14
     10413    call 01757h                               ; e8 0c a5
     10414    jmp short 07261h                          ; eb 14
    1038810415    mov bx, ax                                ; 89 c3
    1038910416    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1039210419    mov dx, 0009ch                            ; ba 9c 00
    1039310420    mov ax, strict word 00040h                ; b8 40 00
    10394     call 01793h                               ; e8 50 a5
    10395     call 0e030h                               ; e8 ea 6d
     10421    call 01793h                               ; e8 32 a5
     10422    call 0e030h                               ; e8 cc 6d
    1039610423    lea sp, [bp-002h]                         ; 8d 66 fe
    1039710424    pop si                                    ; 5e
    1039810425    pop bp                                    ; 5d
    1039910426    retn                                      ; c3
    10400     jnc short 072c0h                          ; 73 72
    10401     pushfw                                    ; 9c
    10402     jc short 07212h                           ; 72 c1
    10403     jc short 07246h                           ; 72 f3
    10404     jc short 07297h                           ; 72 42
    10405     jnc short 072d1h                          ; 73 7a
    10406     jnc short 07216h                          ; 73 bd
    10407     jnc short 0726fh                          ; 73 14
     10427    xchg cx, ax                               ; 91
     10428    jc short 07227h                           ; 72 ba
     10429    jc short 0724eh                           ; 72 df
     10430    jc short 07282h                           ; 72 11
     10431    jnc short 072d3h                          ; 73 60
     10432    jnc short 0720dh                          ; 73 98
     10433    jnc short 07252h                          ; 73 db
     10434    jnc short 072abh                          ; 73 32
    1040810435    db  074h
    10409 _int1a_function:                             ; 0xf725c LB 0x1c8
     10436_int1a_function:                             ; 0xf727a LB 0x1c8
    1041010437    push bp                                   ; 55
    1041110438    mov bp, sp                                ; 89 e5
     
    1041310440    mov al, byte [bp+013h]                    ; 8a 46 13
    1041410441    cmp AL, strict byte 007h                  ; 3c 07
    10415     jnbe near 07298h                          ; 0f 87 2f 00
     10442    jnbe near 072b6h                          ; 0f 87 2f 00
    1041610443    movzx bx, al                              ; 0f b6 d8
    1041710444    add bx, bx                                ; 01 db
    10418     jmp word [cs:bx+0724ch]                   ; 2e ff a7 4c 72
     10445    jmp word [cs:bx+0726ah]                   ; 2e ff a7 6a 72
    1041910446    cli                                       ; fa
    1042010447    mov bx, 0046eh                            ; bb 6e 04
     
    1044710474    sti                                       ; fb
    1044810475    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10449     jmp short 07298h                          ; eb d7
    10450     call 0717dh                               ; e8 b9 fe
     10476    jmp short 072b6h                          ; eb d7
     10477    call 0719bh                               ; e8 b9 fe
    1045110478    test ax, ax                               ; 85 c0
    10452     je short 072cah                           ; 74 02
    10453     jmp short 07298h                          ; eb ce
     10479    je short 072e8h                           ; 74 02
     10480    jmp short 072b6h                          ; eb ce
    1045410481    xor ax, ax                                ; 31 c0
    10455     call 017a5h                               ; e8 d6 a4
     10482    call 017a5h                               ; e8 b8 a4
    1045610483    mov byte [bp+00fh], al                    ; 88 46 0f
    1045710484    mov ax, strict word 00002h                ; b8 02 00
    10458     call 017a5h                               ; e8 cd a4
     10485    call 017a5h                               ; e8 af a4
    1045910486    mov byte [bp+010h], al                    ; 88 46 10
    1046010487    mov ax, strict word 00004h                ; b8 04 00
    10461     call 017a5h                               ; e8 c4 a4
     10488    call 017a5h                               ; e8 a6 a4
    1046210489    mov bl, al                                ; 88 c3
    1046310490    mov byte [bp+011h], al                    ; 88 46 11
    1046410491    mov ax, strict word 0000bh                ; b8 0b 00
    10465     call 017a5h                               ; e8 b9 a4
     10492    call 017a5h                               ; e8 9b a4
    1046610493    and AL, strict byte 001h                  ; 24 01
    1046710494    mov byte [bp+00eh], al                    ; 88 46 0e
    10468     jmp short 07338h                          ; eb 45
    10469     call 0717dh                               ; e8 87 fe
     10495    jmp short 07356h                          ; eb 45
     10496    call 0719bh                               ; e8 87 fe
    1047010497    test ax, ax                               ; 85 c0
    10471     je short 072fdh                           ; 74 03
    10472     call 07155h                               ; e8 58 fe
     10498    je short 0731bh                           ; 74 03
     10499    call 07173h                               ; e8 58 fe
    1047310500    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1047410501    xor ax, ax                                ; 31 c0
    10475     call 017c2h                               ; e8 bc a4
     10502    call 017c2h                               ; e8 9e a4
    1047610503    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1047710504    mov ax, strict word 00002h                ; b8 02 00
    10478     call 017c2h                               ; e8 b2 a4
     10505    call 017c2h                               ; e8 94 a4
    1047910506    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1048010507    mov ax, strict word 00004h                ; b8 04 00
    10481     call 017c2h                               ; e8 a8 a4
     10508    call 017c2h                               ; e8 8a a4
    1048210509    mov ax, strict word 0000bh                ; b8 0b 00
    10483     call 017a5h                               ; e8 85 a4
     10510    call 017a5h                               ; e8 67 a4
    1048410511    mov bl, al                                ; 88 c3
    1048510512    and bl, 060h                              ; 80 e3 60
     
    1049010517    movzx dx, bl                              ; 0f b6 d3
    1049110518    mov ax, strict word 0000bh                ; b8 0b 00
    10492     call 017c2h                               ; e8 8a a4
     10519    call 017c2h                               ; e8 6c a4
    1049310520    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1049410521    mov byte [bp+012h], bl                    ; 88 5e 12
    10495     jmp near 07298h                           ; e9 56 ff
     10522    jmp near 072b6h                           ; e9 56 ff
    1049610523    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10497     call 0717dh                               ; e8 34 fe
     10524    call 0719bh                               ; e8 34 fe
    1049810525    test ax, ax                               ; 85 c0
    10499     je short 07350h                           ; 74 03
    10500     jmp near 07298h                           ; e9 48 ff
     10526    je short 0736eh                           ; 74 03
     10527    jmp near 072b6h                           ; e9 48 ff
    1050110528    mov ax, strict word 00009h                ; b8 09 00
    10502     call 017a5h                               ; e8 4f a4
     10529    call 017a5h                               ; e8 31 a4
    1050310530    mov byte [bp+010h], al                    ; 88 46 10
    1050410531    mov ax, strict word 00008h                ; b8 08 00
    10505     call 017a5h                               ; e8 46 a4
     10532    call 017a5h                               ; e8 28 a4
    1050610533    mov byte [bp+00fh], al                    ; 88 46 0f
    1050710534    mov ax, strict word 00007h                ; b8 07 00
    10508     call 017a5h                               ; e8 3d a4
     10535    call 017a5h                               ; e8 1f a4
    1050910536    mov byte [bp+00eh], al                    ; 88 46 0e
    1051010537    mov ax, strict word 00032h                ; b8 32 00
    10511     call 017a5h                               ; e8 34 a4
     10538    call 017a5h                               ; e8 16 a4
    1051210539    mov byte [bp+011h], al                    ; 88 46 11
    1051310540    mov byte [bp+012h], al                    ; 88 46 12
    10514     jmp near 07298h                           ; e9 1e ff
    10515     call 0717dh                               ; e8 00 fe
     10541    jmp near 072b6h                           ; e9 1e ff
     10542    call 0719bh                               ; e8 00 fe
    1051610543    test ax, ax                               ; 85 c0
    10517     je short 07387h                           ; 74 06
    10518     call 07155h                               ; e8 d1 fd
    10519     jmp near 07298h                           ; e9 11 ff
     10544    je short 073a5h                           ; 74 06
     10545    call 07173h                               ; e8 d1 fd
     10546    jmp near 072b6h                           ; e9 11 ff
    1052010547    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1052110548    mov ax, strict word 00009h                ; b8 09 00
    10522     call 017c2h                               ; e8 31 a4
     10549    call 017c2h                               ; e8 13 a4
    1052310550    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1052410551    mov ax, strict word 00008h                ; b8 08 00
    10525     call 017c2h                               ; e8 27 a4
     10552    call 017c2h                               ; e8 09 a4
    1052610553    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    1052710554    mov ax, strict word 00007h                ; b8 07 00
    10528     call 017c2h                               ; e8 1d a4
     10555    call 017c2h                               ; e8 ff a3
    1052910556    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1053010557    mov ax, strict word 00032h                ; b8 32 00
    10531     call 017c2h                               ; e8 13 a4
     10558    call 017c2h                               ; e8 f5 a3
    1053210559    mov ax, strict word 0000bh                ; b8 0b 00
    10533     call 017a5h                               ; e8 f0 a3
     10560    call 017a5h                               ; e8 d2 a3
    1053410561    mov bl, al                                ; 88 c3
    1053510562    and bl, 07fh                              ; 80 e3 7f
    10536     jmp near 0732fh                           ; e9 72 ff
     10563    jmp near 0734dh                           ; e9 72 ff
    1053710564    mov ax, strict word 0000bh                ; b8 0b 00
    10538     call 017a5h                               ; e8 e2 a3
     10565    call 017a5h                               ; e8 c4 a3
    1053910566    mov bl, al                                ; 88 c3
    1054010567    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1054110568    test AL, strict byte 020h                 ; a8 20
    10542     je short 073d1h                           ; 74 03
    10543     jmp near 07298h                           ; e9 c7 fe
    10544     call 0717dh                               ; e8 a9 fd
     10569    je short 073efh                           ; 74 03
     10570    jmp near 072b6h                           ; e9 c7 fe
     10571    call 0719bh                               ; e8 a9 fd
    1054510572    test ax, ax                               ; 85 c0
    10546     je short 073dbh                           ; 74 03
    10547     call 07155h                               ; e8 7a fd
     10573    je short 073f9h                           ; 74 03
     10574    call 07173h                               ; e8 7a fd
    1054810575    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1054910576    mov ax, strict word 00001h                ; b8 01 00
    10550     call 017c2h                               ; e8 dd a3
     10577    call 017c2h                               ; e8 bf a3
    1055110578    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1055210579    mov ax, strict word 00003h                ; b8 03 00
    10553     call 017c2h                               ; e8 d3 a3
     10580    call 017c2h                               ; e8 b5 a3
    1055410581    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1055510582    mov ax, strict word 00005h                ; b8 05 00
    10556     call 017c2h                               ; e8 c9 a3
     10583    call 017c2h                               ; e8 ab a3
    1055710584    mov dx, 000a1h                            ; ba a1 00
    1055810585    in AL, DX                                 ; ec
     
    1056610593    movzx dx, al                              ; 0f b6 d0
    1056710594    mov ax, strict word 0000bh                ; b8 0b 00
    10568     call 017c2h                               ; e8 b1 a3
    10569     jmp near 07298h                           ; e9 84 fe
     10595    call 017c2h                               ; e8 93 a3
     10596    jmp near 072b6h                           ; e9 84 fe
    1057010597    mov ax, strict word 0000bh                ; b8 0b 00
    10571     call 017a5h                               ; e8 8b a3
     10598    call 017a5h                               ; e8 6d a3
    1057210599    mov bl, al                                ; 88 c3
    1057310600    and AL, strict byte 057h                  ; 24 57
    1057410601    movzx dx, al                              ; 0f b6 d0
    10575     jmp near 07332h                           ; e9 0e ff
    10576 send_to_mouse_ctrl_:                         ; 0xf7424 LB 0x34
     10602    jmp near 07350h                           ; e9 0e ff
     10603send_to_mouse_ctrl_:                         ; 0xf7442 LB 0x34
    1057710604    push bp                                   ; 55
    1057810605    mov bp, sp                                ; 89 e5
     
    1058510612    ; sub ah, ah                                ; 2a e4
    1058610613    test AL, strict byte 002h                 ; a8 02
    10587     je short 07443h                           ; 74 0e
     10614    je short 07461h                           ; 74 0e
    1058810615    push 00900h                               ; 68 00 09
    10589     push 0117eh                               ; 68 7e 11
     10616    push 0117ah                               ; 68 7a 11
    1059010617    push strict byte 00007h                   ; 6a 07
    10591     call 01a6bh                               ; e8 2b a6
     10618    call 01a6bh                               ; e8 0d a6
    1059210619    add sp, strict byte 00006h                ; 83 c4 06
    1059310620    mov AL, strict byte 0d4h                  ; b0 d4
     
    1060310630    pop bp                                    ; 5d
    1060410631    retn                                      ; c3
    10605 get_mouse_data_:                             ; 0xf7458 LB 0x5c
     10632get_mouse_data_:                             ; 0xf7476 LB 0x5c
    1060610633    push bp                                   ; 55
    1060710634    mov bp, sp                                ; 89 e5
     
    1061810645    and ax, strict word 00021h                ; 25 21 00
    1061910646    cmp ax, strict word 00021h                ; 3d 21 00
    10620     je short 0749ah                           ; 74 27
     10647    je short 074b8h                           ; 74 27
    1062110648    test cx, cx                               ; 85 c9
    10622     je short 0749ah                           ; 74 23
     10649    je short 074b8h                           ; 74 23
    1062310650    mov dx, strict word 00061h                ; ba 61 00
    1062410651    in AL, DX                                 ; ec
     
    1063610663    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1063710664    cmp dx, ax                                ; 39 c2
    10638     je short 07482h                           ; 74 eb
     10665    je short 074a0h                           ; 74 eb
    1063910666    dec cx                                    ; 49
    10640     jmp short 07465h                          ; eb cb
     10667    jmp short 07483h                          ; eb cb
    1064110668    test cx, cx                               ; 85 c9
    10642     jne short 074a2h                          ; 75 04
     10669    jne short 074c0h                          ; 75 04
    1064310670    mov AL, strict byte 001h                  ; b0 01
    10644     jmp short 074adh                          ; eb 0b
     10671    jmp short 074cbh                          ; eb 0b
    1064510672    mov dx, strict word 00060h                ; ba 60 00
    1064610673    in AL, DX                                 ; ec
     
    1065410681    pop bp                                    ; 5d
    1065510682    retn                                      ; c3
    10656 set_kbd_command_byte_:                       ; 0xf74b4 LB 0x32
     10683set_kbd_command_byte_:                       ; 0xf74d2 LB 0x32
    1065710684    push bp                                   ; 55
    1065810685    mov bp, sp                                ; 89 e5
     
    1066510692    ; sub ah, ah                                ; 2a e4
    1066610693    test AL, strict byte 002h                 ; a8 02
    10667     je short 074d3h                           ; 74 0e
     10694    je short 074f1h                           ; 74 0e
    1066810695    push 0090ah                               ; 68 0a 09
    10669     push 0117eh                               ; 68 7e 11
     10696    push 0117ah                               ; 68 7a 11
    1067010697    push strict byte 00007h                   ; 6a 07
    10671     call 01a6bh                               ; e8 9b a5
     10698    call 01a6bh                               ; e8 7d a5
    1067210699    add sp, strict byte 00006h                ; 83 c4 06
    1067310700    mov AL, strict byte 060h                  ; b0 60
     
    1068210709    pop bp                                    ; 5d
    1068310710    retn                                      ; c3
    10684 _int74_function:                             ; 0xf74e6 LB 0xca
     10711_int74_function:                             ; 0xf7504 LB 0xca
    1068510712    push bp                                   ; 55
    1068610713    mov bp, sp                                ; 89 e5
     
    1068810715    mov dx, strict word 0000eh                ; ba 0e 00
    1068910716    mov ax, strict word 00040h                ; b8 40 00
    10690     call 01765h                               ; e8 70 a2
     10717    call 01765h                               ; e8 52 a2
    1069110718    mov cx, ax                                ; 89 c1
    1069210719    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1069710724    and AL, strict byte 021h                  ; 24 21
    1069810725    cmp AL, strict byte 021h                  ; 3c 21
    10699     jne near 0759ch                           ; 0f 85 92 00
     10726    jne near 075bah                           ; 0f 85 92 00
    1070010727    mov dx, strict word 00060h                ; ba 60 00
    1070110728    in AL, DX                                 ; ec
     
    1070510732    mov dx, strict word 00026h                ; ba 26 00
    1070610733    mov ax, cx                                ; 89 c8
    10707     call 01749h                               ; e8 2f a2
     10734    call 01749h                               ; e8 11 a2
    1070810735    mov byte [bp-006h], al                    ; 88 46 fa
    1070910736    mov dx, strict word 00027h                ; ba 27 00
    1071010737    mov ax, cx                                ; 89 c8
    10711     call 01749h                               ; e8 24 a2
     10738    call 01749h                               ; e8 06 a2
    1071210739    mov byte [bp-008h], al                    ; 88 46 f8
    1071310740    test AL, strict byte 080h                 ; a8 80
    10714     je short 0759ch                           ; 74 70
     10741    je short 075bah                           ; 74 70
    1071510742    mov al, byte [bp-008h]                    ; 8a 46 f8
    1071610743    and AL, strict byte 007h                  ; 24 07
     
    1072310750    add dx, strict byte 00028h                ; 83 c2 28
    1072410751    mov ax, cx                                ; 89 c8
    10725     call 01757h                               ; e8 0e a2
     10752    call 01757h                               ; e8 f0 a1
    1072610753    mov al, byte [bp-004h]                    ; 8a 46 fc
    1072710754    cmp al, byte [bp-002h]                    ; 3a 46 fe
    10728     jc short 0758dh                           ; 72 3c
     10755    jc short 075abh                           ; 72 3c
    1072910756    mov dx, strict word 00028h                ; ba 28 00
    1073010757    mov ax, cx                                ; 89 c8
    10731     call 01749h                               ; e8 f0 a1
     10758    call 01749h                               ; e8 d2 a1
    1073210759    xor ah, ah                                ; 30 e4
    1073310760    mov word [bp+00ch], ax                    ; 89 46 0c
    1073410761    mov dx, strict word 00029h                ; ba 29 00
    1073510762    mov ax, cx                                ; 89 c8
    10736     call 01749h                               ; e8 e3 a1
     10763    call 01749h                               ; e8 c5 a1
    1073710764    xor ah, ah                                ; 30 e4
    1073810765    mov word [bp+00ah], ax                    ; 89 46 0a
    1073910766    mov dx, strict word 0002ah                ; ba 2a 00
    1074010767    mov ax, cx                                ; 89 c8
    10741     call 01749h                               ; e8 d6 a1
     10768    call 01749h                               ; e8 b8 a1
    1074210769    xor ah, ah                                ; 30 e4
    1074310770    mov word [bp+008h], ax                    ; 89 46 08
     
    1074610773    mov byte [bp-006h], ah                    ; 88 66 fa
    1074710774    test byte [bp-008h], 080h                 ; f6 46 f8 80
    10748     je short 07590h                           ; 74 0a
     10775    je short 075aeh                           ; 74 0a
    1074910776    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10750     jmp short 07590h                          ; eb 03
     10777    jmp short 075aeh                          ; eb 03
    1075110778    inc byte [bp-006h]                        ; fe 46 fa
    1075210779    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1075310780    mov dx, strict word 00026h                ; ba 26 00
    1075410781    mov ax, cx                                ; 89 c8
    10755     call 01757h                               ; e8 bb a1
     10782    call 01757h                               ; e8 9d a1
    1075610783    mov sp, bp                                ; 89 ec
    1075710784    pop bp                                    ; 5d
    1075810785    retn                                      ; c3
    10759     hlt                                       ; f4
    10760     jne short 0760dh                          ; 75 6a
    10761     jbe short 07592h                          ; 76 ed
    10762     jbe short 07625h                          ; 76 7e
    10763     jnbe short 07595h                         ; 77 ec
    10764     jnbe short 075ebh                         ; 77 40
    10765     jbe short 075c1h                          ; 76 14
    10766     js short 07588h                           ; 78 d9
     10786    adc dh, byte [bp-078h]                    ; 12 76 88
     10787    jbe short 075ceh                          ; 76 0b
     10788    jnbe short 07561h                         ; 77 9c
     10789    jnbe short 075d1h                         ; 77 0a
     10790    js short 07627h                           ; 78 5e
     10791    jbe short 075fdh                          ; 76 32
     10792    js short 075c4h                           ; 78 f7
    1076710793    db  078h
    10768 _int15_function_mouse:                       ; 0xf75b0 LB 0x38b
     10794_int15_function_mouse:                       ; 0xf75ce LB 0x38b
    1076910795    push bp                                   ; 55
    1077010796    mov bp, sp                                ; 89 e5
     
    1077310799    mov dx, strict word 0000eh                ; ba 0e 00
    1077410800    mov ax, strict word 00040h                ; b8 40 00
    10775     call 01765h                               ; e8 a5 a1
     10801    call 01765h                               ; e8 87 a1
    1077610802    mov cx, ax                                ; 89 c1
    1077710803    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10778     jbe short 075d3h                          ; 76 0b
     10804    jbe short 075f1h                          ; 76 0b
    1077910805    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1078010806    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10781     jmp near 07935h                           ; e9 62 03
     10807    jmp near 07953h                           ; e9 62 03
    1078210808    mov ax, strict word 00065h                ; b8 65 00
    10783     call 074b4h                               ; e8 db fe
     10809    call 074d2h                               ; e8 db fe
    1078410810    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1078510811    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1078610812    mov al, byte [bp+012h]                    ; 8a 46 12
    1078710813    cmp AL, strict byte 007h                  ; 3c 07
    10788     jnbe near 0791ch                          ; 0f 87 32 03
     10814    jnbe near 0793ah                          ; 0f 87 32 03
    1078910815    movzx si, al                              ; 0f b6 f0
    1079010816    add si, si                                ; 01 f6
    10791     jmp word [cs:si+075a0h]                   ; 2e ff a4 a0 75
     10817    jmp word [cs:si+075beh]                   ; 2e ff a4 be 75
    1079210818    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10793     jnbe near 07927h                          ; 0f 87 2b 03
     10819    jnbe near 07945h                          ; 0f 87 2b 03
    1079410820    mov dx, strict word 00027h                ; ba 27 00
    1079510821    mov ax, cx                                ; 89 c8
    10796     call 01749h                               ; e8 45 a1
     10822    call 01749h                               ; e8 27 a1
    1079710823    test AL, strict byte 080h                 ; a8 80
    10798     jne short 07613h                          ; 75 0b
     10824    jne short 07631h                          ; 75 0b
    1079910825    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1080010826    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10801     jmp near 0792fh                           ; e9 1c 03
     10827    jmp near 0794dh                           ; e9 1c 03
    1080210828    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    1080310829    db  00fh, 094h, 0c0h
     
    1080510831    add AL, strict byte 0f4h                  ; 04 f4
    1080610832    xor ah, ah                                ; 30 e4
    10807     call 07424h                               ; e8 03 fe
     10833    call 07442h                               ; e8 03 fe
    1080810834    test al, al                               ; 84 c0
    10809     jne near 078b5h                           ; 0f 85 8e 02
     10835    jne near 078d3h                           ; 0f 85 8e 02
    1081010836    mov dx, ss                                ; 8c d2
    1081110837    lea ax, [bp-008h]                         ; 8d 46 f8
    10812     call 07458h                               ; e8 29 fe
     10838    call 07476h                               ; e8 29 fe
    1081310839    test al, al                               ; 84 c0
    10814     je near 0792fh                            ; 0f 84 fa 02
     10840    je near 0794dh                            ; 0f 84 fa 02
    1081510841    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10816     jne near 078b5h                           ; 0f 85 78 02
    10817     jmp near 0792fh                           ; e9 ef 02
     10842    jne near 078d3h                           ; 0f 85 78 02
     10843    jmp near 0794dh                           ; e9 ef 02
    1081810844    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1081910845    cmp AL, strict byte 001h                  ; 3c 01
    10820     jc short 0764bh                           ; 72 04
     10846    jc short 07669h                           ; 72 04
    1082110847    cmp AL, strict byte 008h                  ; 3c 08
    10822     jbe short 0764eh                          ; 76 03
    10823     jmp near 077e1h                           ; e9 93 01
     10848    jbe short 0766ch                          ; 76 03
     10849    jmp near 077ffh                           ; e9 93 01
    1082410850    mov dx, strict word 00027h                ; ba 27 00
    1082510851    mov ax, cx                                ; 89 c8
    10826     call 01749h                               ; e8 f3 a0
     10852    call 01749h                               ; e8 d5 a0
    1082710853    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1082810854    db  0feh, 0cch
     
    1083310859    mov dx, strict word 00027h                ; ba 27 00
    1083410860    mov ax, cx                                ; 89 c8
    10835     call 01757h                               ; e8 ed a0
     10861    call 01757h                               ; e8 cf a0
    1083610862    mov dx, strict word 00026h                ; ba 26 00
    1083710863    mov ax, cx                                ; 89 c8
    10838     call 01749h                               ; e8 d7 a0
     10864    call 01749h                               ; e8 b9 a0
    1083910865    and AL, strict byte 0f8h                  ; 24 f8
    1084010866    movzx bx, al                              ; 0f b6 d8
    1084110867    mov dx, strict word 00026h                ; ba 26 00
    1084210868    mov ax, cx                                ; 89 c8
    10843     call 01757h                               ; e8 d8 a0
     10869    call 01757h                               ; e8 ba a0
    1084410870    mov ax, 000ffh                            ; b8 ff 00
    10845     call 07424h                               ; e8 9f fd
     10871    call 07442h                               ; e8 9f fd
    1084610872    test al, al                               ; 84 c0
    10847     jne near 078b5h                           ; 0f 85 2a 02
     10873    jne near 078d3h                           ; 0f 85 2a 02
    1084810874    mov dx, ss                                ; 8c d2
    1084910875    lea ax, [bp-004h]                         ; 8d 46 fc
    10850     call 07458h                               ; e8 c5 fd
     10876    call 07476h                               ; e8 c5 fd
    1085110877    mov cl, al                                ; 88 c1
    1085210878    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10853     jne short 076a6h                          ; 75 0b
     10879    jne short 076c4h                          ; 75 0b
    1085410880    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1085510881    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10856     jmp near 0792fh                           ; e9 89 02
     10882    jmp near 0794dh                           ; e9 89 02
    1085710883    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10858     je short 076bch                           ; 74 10
     10884    je short 076dah                           ; 74 10
    1085910885    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1086010886    push ax                                   ; 50
    1086110887    push 00915h                               ; 68 15 09
    1086210888    push strict byte 00007h                   ; 6a 07
    10863     call 01a6bh                               ; e8 b2 a3
     10889    call 01a6bh                               ; e8 94 a3
    1086410890    add sp, strict byte 00006h                ; 83 c4 06
    1086510891    test cl, cl                               ; 84 c9
    10866     jne near 078b5h                           ; 0f 85 f3 01
     10892    jne near 078d3h                           ; 0f 85 f3 01
    1086710893    mov dx, ss                                ; 8c d2
    1086810894    lea ax, [bp-008h]                         ; 8d 46 f8
    10869     call 07458h                               ; e8 8e fd
     10895    call 07476h                               ; e8 8e fd
    1087010896    test al, al                               ; 84 c0
    10871     jne near 078b5h                           ; 0f 85 e5 01
     10897    jne near 078d3h                           ; 0f 85 e5 01
    1087210898    mov dx, ss                                ; 8c d2
    1087310899    lea ax, [bp-006h]                         ; 8d 46 fa
    10874     call 07458h                               ; e8 80 fd
     10900    call 07476h                               ; e8 80 fd
    1087510901    test al, al                               ; 84 c0
    10876     jne near 078b5h                           ; 0f 85 d7 01
     10902    jne near 078d3h                           ; 0f 85 d7 01
    1087710903    mov al, byte [bp-008h]                    ; 8a 46 f8
    1087810904    mov byte [bp+00ch], al                    ; 88 46 0c
    1087910905    mov al, byte [bp-006h]                    ; 8a 46 fa
    1088010906    mov byte [bp+00dh], al                    ; 88 46 0d
    10881     jmp near 0792fh                           ; e9 42 02
     10907    jmp near 0794dh                           ; e9 42 02
    1088210908    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1088310909    cmp AL, strict byte 003h                  ; 3c 03
    10884     jc short 07704h                           ; 72 10
    10885     jbe short 07722h                          ; 76 2c
     10910    jc short 07722h                           ; 72 10
     10911    jbe short 07740h                          ; 76 2c
    1088610912    cmp AL, strict byte 006h                  ; 3c 06
    10887     je short 07734h                           ; 74 3a
     10913    je short 07752h                           ; 74 3a
    1088810914    cmp AL, strict byte 005h                  ; 3c 05
    10889     je short 0772eh                           ; 74 30
     10915    je short 0774ch                           ; 74 30
    1089010916    cmp AL, strict byte 004h                  ; 3c 04
    10891     je short 07728h                           ; 74 26
    10892     jmp short 0773ah                          ; eb 36
     10917    je short 07746h                           ; 74 26
     10918    jmp short 07758h                          ; eb 36
    1089310919    cmp AL, strict byte 002h                  ; 3c 02
    10894     je short 0771ch                           ; 74 14
     10920    je short 0773ah                           ; 74 14
    1089510921    cmp AL, strict byte 001h                  ; 3c 01
    10896     je short 07716h                           ; 74 0a
     10922    je short 07734h                           ; 74 0a
    1089710923    test al, al                               ; 84 c0
    10898     jne short 0773ah                          ; 75 2a
     10924    jne short 07758h                          ; 75 2a
    1089910925    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10900     jmp short 0773eh                          ; eb 28
     10926    jmp short 0775ch                          ; eb 28
    1090110927    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10902     jmp short 0773eh                          ; eb 22
     10928    jmp short 0775ch                          ; eb 22
    1090310929    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10904     jmp short 0773eh                          ; eb 1c
     10930    jmp short 0775ch                          ; eb 1c
    1090510931    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10906     jmp short 0773eh                          ; eb 16
     10932    jmp short 0775ch                          ; eb 16
    1090710933    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10908     jmp short 0773eh                          ; eb 10
     10934    jmp short 0775ch                          ; eb 10
    1090910935    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10910     jmp short 0773eh                          ; eb 0a
     10936    jmp short 0775ch                          ; eb 0a
    1091110937    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10912     jmp short 0773eh                          ; eb 04
     10938    jmp short 0775ch                          ; eb 04
    1091310939    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1091410940    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10915     jbe short 07773h                          ; 76 2f
     10941    jbe short 07791h                          ; 76 2f
    1091610942    mov ax, 000f3h                            ; b8 f3 00
    10917     call 07424h                               ; e8 da fc
     10943    call 07442h                               ; e8 da fc
    1091810944    test al, al                               ; 84 c0
    10919     jne short 07768h                          ; 75 1a
     10945    jne short 07786h                          ; 75 1a
    1092010946    mov dx, ss                                ; 8c d2
    1092110947    lea ax, [bp-006h]                         ; 8d 46 fa
    10922     call 07458h                               ; e8 02 fd
     10948    call 07476h                               ; e8 02 fd
    1092310949    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10924     call 07424h                               ; e8 c7 fc
     10950    call 07442h                               ; e8 c7 fc
    1092510951    mov dx, ss                                ; 8c d2
    1092610952    lea ax, [bp-006h]                         ; 8d 46 fa
    10927     call 07458h                               ; e8 f3 fc
    10928     jmp near 0792fh                           ; e9 c7 01
     10953    call 07476h                               ; e8 f3 fc
     10954    jmp near 0794dh                           ; e9 c7 01
    1092910955    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093010956    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10931     jmp near 0792fh                           ; e9 bc 01
     10957    jmp near 0794dh                           ; e9 bc 01
    1093210958    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093310959    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10934     jmp near 0792fh                           ; e9 b1 01
     10960    jmp near 0794dh                           ; e9 b1 01
    1093510961    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10936     jnc short 077e1h                          ; 73 5d
     10962    jnc short 077ffh                          ; 73 5d
    1093710963    mov ax, 000e8h                            ; b8 e8 00
    10938     call 07424h                               ; e8 9a fc
     10964    call 07442h                               ; e8 9a fc
    1093910965    test al, al                               ; 84 c0
    10940     jne short 077d6h                          ; 75 48
     10966    jne short 077f4h                          ; 75 48
    1094110967    mov dx, ss                                ; 8c d2
    1094210968    lea ax, [bp-008h]                         ; 8d 46 f8
    10943     call 07458h                               ; e8 c2 fc
     10969    call 07476h                               ; e8 c2 fc
    1094410970    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10945     je short 077ach                           ; 74 10
     10971    je short 077cah                           ; 74 10
    1094610972    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1094710973    push ax                                   ; 50
    1094810974    push 00940h                               ; 68 40 09
    1094910975    push strict byte 00007h                   ; 6a 07
    10950     call 01a6bh                               ; e8 c2 a2
     10976    call 01a6bh                               ; e8 a4 a2
    1095110977    add sp, strict byte 00006h                ; 83 c4 06
    1095210978    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10953     call 07424h                               ; e8 71 fc
     10979    call 07442h                               ; e8 71 fc
    1095410980    mov dx, ss                                ; 8c d2
    1095510981    lea ax, [bp-008h]                         ; 8d 46 f8
    10956     call 07458h                               ; e8 9d fc
     10982    call 07476h                               ; e8 9d fc
    1095710983    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10958     je near 0792fh                            ; 0f 84 6c 01
     10984    je near 0794dh                            ; 0f 84 6c 01
    1095910985    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1096010986    push ax                                   ; 50
    1096110987    push 00940h                               ; 68 40 09
    1096210988    push strict byte 00007h                   ; 6a 07
    10963     call 01a6bh                               ; e8 9b a2
     10989    call 01a6bh                               ; e8 7d a2
    1096410990    add sp, strict byte 00006h                ; 83 c4 06
    10965     jmp near 0792fh                           ; e9 59 01
     10991    jmp near 0794dh                           ; e9 59 01
    1096610992    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1096710993    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10968     jmp near 0792fh                           ; e9 4e 01
     10994    jmp near 0794dh                           ; e9 4e 01
    1096910995    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097010996    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10971     jmp near 0792fh                           ; e9 43 01
     10997    jmp near 0794dh                           ; e9 43 01
    1097210998    mov ax, 000f2h                            ; b8 f2 00
    10973     call 07424h                               ; e8 32 fc
     10999    call 07442h                               ; e8 32 fc
    1097411000    test al, al                               ; 84 c0
    10975     jne short 07809h                          ; 75 13
     11001    jne short 07827h                          ; 75 13
    1097611002    mov dx, ss                                ; 8c d2
    1097711003    lea ax, [bp-008h]                         ; 8d 46 f8
    10978     call 07458h                               ; e8 5a fc
     11004    call 07476h                               ; e8 5a fc
    1097911005    mov dx, ss                                ; 8c d2
    1098011006    lea ax, [bp-006h]                         ; 8d 46 fa
    10981     call 07458h                               ; e8 52 fc
    10982     jmp near 076e4h                           ; e9 db fe
     11007    call 07476h                               ; e8 52 fc
     11008    jmp near 07702h                           ; e9 db fe
    1098311009    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1098411010    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10985     jmp near 0792fh                           ; e9 1b 01
     11011    jmp near 0794dh                           ; e9 1b 01
    1098611012    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1098711013    test al, al                               ; 84 c0
    10988     jbe short 07822h                          ; 76 07
     11014    jbe short 07840h                          ; 76 07
    1098911015    cmp AL, strict byte 002h                  ; 3c 02
    10990     jbe short 0788bh                          ; 76 6c
    10991     jmp near 078bfh                           ; e9 9d 00
     11016    jbe short 078a9h                          ; 76 6c
     11017    jmp near 078ddh                           ; e9 9d 00
    1099211018    mov ax, 000e9h                            ; b8 e9 00
    10993     call 07424h                               ; e8 fc fb
     11019    call 07442h                               ; e8 fc fb
    1099411020    test al, al                               ; 84 c0
    10995     jne near 078b5h                           ; 0f 85 87 00
     11021    jne near 078d3h                           ; 0f 85 87 00
    1099611022    mov dx, ss                                ; 8c d2
    1099711023    lea ax, [bp-008h]                         ; 8d 46 f8
    10998     call 07458h                               ; e8 22 fc
     11024    call 07476h                               ; e8 22 fc
    1099911025    mov cl, al                                ; 88 c1
    1100011026    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11001     je short 0784eh                           ; 74 10
     11027    je short 0786ch                           ; 74 10
    1100211028    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1100311029    push ax                                   ; 50
    1100411030    push 00940h                               ; 68 40 09
    1100511031    push strict byte 00007h                   ; 6a 07
    11006     call 01a6bh                               ; e8 20 a2
     11032    call 01a6bh                               ; e8 02 a2
    1100711033    add sp, strict byte 00006h                ; 83 c4 06
    1100811034    test cl, cl                               ; 84 c9
    11009     jne short 078b5h                          ; 75 63
     11035    jne short 078d3h                          ; 75 63
    1101011036    mov dx, ss                                ; 8c d2
    1101111037    lea ax, [bp-008h]                         ; 8d 46 f8
    11012     call 07458h                               ; e8 fe fb
     11038    call 07476h                               ; e8 fe fb
    1101311039    test al, al                               ; 84 c0
    11014     jne short 078b5h                          ; 75 57
     11040    jne short 078d3h                          ; 75 57
    1101511041    mov dx, ss                                ; 8c d2
    1101611042    lea ax, [bp-006h]                         ; 8d 46 fa
    11017     call 07458h                               ; e8 f2 fb
     11043    call 07476h                               ; e8 f2 fb
    1101811044    test al, al                               ; 84 c0
    11019     jne short 078b5h                          ; 75 4b
     11045    jne short 078d3h                          ; 75 4b
    1102011046    mov dx, ss                                ; 8c d2
    1102111047    lea ax, [bp-004h]                         ; 8d 46 fc
    11022     call 07458h                               ; e8 e6 fb
     11048    call 07476h                               ; e8 e6 fb
    1102311049    test al, al                               ; 84 c0
    11024     jne short 078b5h                          ; 75 3f
     11050    jne short 078d3h                          ; 75 3f
    1102511051    mov al, byte [bp-008h]                    ; 8a 46 f8
    1102611052    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1102911055    mov al, byte [bp-004h]                    ; 8a 46 fc
    1103011056    mov byte [bp+00eh], al                    ; 88 46 0e
    11031     jmp near 0792fh                           ; e9 a4 00
     11057    jmp near 0794dh                           ; e9 a4 00
    1103211058    cmp AL, strict byte 001h                  ; 3c 01
    11033     jne short 07894h                          ; 75 05
     11059    jne short 078b2h                          ; 75 05
    1103411060    mov ax, 000e6h                            ; b8 e6 00
    11035     jmp short 07897h                          ; eb 03
     11061    jmp short 078b5h                          ; eb 03
    1103611062    mov ax, 000e7h                            ; b8 e7 00
    11037     call 07424h                               ; e8 8a fb
     11063    call 07442h                               ; e8 8a fb
    1103811064    mov cl, al                                ; 88 c1
    1103911065    test cl, cl                               ; 84 c9
    11040     jne short 078afh                          ; 75 0f
     11066    jne short 078cdh                          ; 75 0f
    1104111067    mov dx, ss                                ; 8c d2
    1104211068    lea ax, [bp-008h]                         ; 8d 46 f8
    11043     call 07458h                               ; e8 b0 fb
     11069    call 07476h                               ; e8 b0 fb
    1104411070    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1104511071    db  00fh, 095h, 0c1h
    1104611072    ; setne cl                                  ; 0f 95 c1
    1104711073    test cl, cl                               ; 84 c9
    11048     je near 0792fh                            ; 0f 84 7a 00
     11074    je near 0794dh                            ; 0f 84 7a 00
    1104911075    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1105011076    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11051     jmp short 0792fh                          ; eb 70
     11077    jmp short 0794dh                          ; eb 70
    1105211078    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1105311079    push ax                                   ; 50
    1105411080    push 0096ch                               ; 68 6c 09
    1105511081    push strict byte 00007h                   ; 6a 07
    11056     call 01a6bh                               ; e8 9f a1
     11082    call 01a6bh                               ; e8 81 a1
    1105711083    add sp, strict byte 00006h                ; 83 c4 06
    1105811084    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1105911085    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11060     jmp short 0792fh                          ; eb 56
     11086    jmp short 0794dh                          ; eb 56
    1106111087    mov si, word [bp+00ch]                    ; 8b 76 0c
    1106211088    mov bx, si                                ; 89 f3
    1106311089    mov dx, strict word 00022h                ; ba 22 00
    1106411090    mov ax, cx                                ; 89 c8
    11065     call 01773h                               ; e8 8d 9e
     11091    call 01773h                               ; e8 6f 9e
    1106611092    mov bx, word [bp+014h]                    ; 8b 5e 14
    1106711093    mov dx, strict word 00024h                ; ba 24 00
    1106811094    mov ax, cx                                ; 89 c8
    11069     call 01773h                               ; e8 82 9e
     11095    call 01773h                               ; e8 64 9e
    1107011096    mov dx, strict word 00027h                ; ba 27 00
    1107111097    mov ax, cx                                ; 89 c8
    11072     call 01749h                               ; e8 50 9e
     11098    call 01749h                               ; e8 32 9e
    1107311099    mov ah, al                                ; 88 c4
    1107411100    test si, si                               ; 85 f6
    11075     jne short 0790dh                          ; 75 0e
     11101    jne short 0792bh                          ; 75 0e
    1107611102    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11077     jne short 0790dh                          ; 75 08
     11103    jne short 0792bh                          ; 75 08
    1107811104    test AL, strict byte 080h                 ; a8 80
    11079     je short 0790fh                           ; 74 06
     11105    je short 0792dh                           ; 74 06
    1108011106    and AL, strict byte 07fh                  ; 24 7f
    11081     jmp short 0790fh                          ; eb 02
     11107    jmp short 0792dh                          ; eb 02
    1108211108    or AL, strict byte 080h                   ; 0c 80
    1108311109    movzx bx, al                              ; 0f b6 d8
    1108411110    mov dx, strict word 00027h                ; ba 27 00
    1108511111    mov ax, cx                                ; 89 c8
    11086     call 01757h                               ; e8 3d 9e
    11087     jmp short 0792fh                          ; eb 13
     11112    call 01757h                               ; e8 1f 9e
     11113    jmp short 0794dh                          ; eb 13
    1108811114    push 00986h                               ; 68 86 09
    1108911115    push strict byte 00007h                   ; 6a 07
    11090     call 01a6bh                               ; e8 47 a1
     11116    call 01a6bh                               ; e8 29 a1
    1109111117    add sp, strict byte 00004h                ; 83 c4 04
    1109211118    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109311119    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1109411120    mov ax, strict word 00047h                ; b8 47 00
    11095     call 074b4h                               ; e8 7f fb
     11121    call 074d2h                               ; e8 7f fb
    1109611122    lea sp, [bp-002h]                         ; 8d 66 fe
    1109711123    pop si                                    ; 5e
    1109811124    pop bp                                    ; 5d
    1109911125    retn                                      ; c3
    11100 _int17_function:                             ; 0xf793b LB 0xb3
     11126_int17_function:                             ; 0xf7959 LB 0xb3
    1110111127    push bp                                   ; 55
    1110211128    mov bp, sp                                ; 89 e5
     
    1110811134    add dx, strict byte 00008h                ; 83 c2 08
    1110911135    mov ax, strict word 00040h                ; b8 40 00
    11110     call 01765h                               ; e8 16 9e
     11136    call 01765h                               ; e8 f8 9d
    1111111137    mov bx, ax                                ; 89 c3
    1111211138    mov si, ax                                ; 89 c6
    1111311139    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11114     jnc near 079e4h                           ; 0f 83 89 00
     11140    jnc near 07a02h                           ; 0f 83 89 00
    1111511141    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1111611142    cmp ax, strict word 00003h                ; 3d 03 00
    11117     jnc near 079e4h                           ; 0f 83 7f 00
     11143    jnc near 07a02h                           ; 0f 83 7f 00
    1111811144    test bx, bx                               ; 85 db
    11119     jbe near 079e4h                           ; 0f 86 79 00
     11145    jbe near 07a02h                           ; 0f 86 79 00
    1112011146    mov dx, ax                                ; 89 c2
    1112111147    add dx, strict byte 00078h                ; 83 c2 78
    1112211148    mov ax, strict word 00040h                ; b8 40 00
    11123     call 01749h                               ; e8 d3 9d
     11149    call 01749h                               ; e8 b5 9d
    1112411150    movzx cx, al                              ; 0f b6 c8
    1112511151    sal cx, 008h                              ; c1 e1 08
    1112611152    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11127     jne short 079afh                          ; 75 2d
     11153    jne short 079cdh                          ; 75 2d
    1112811154    mov al, byte [bp+012h]                    ; 8a 46 12
    1112911155    mov dx, bx                                ; 89 da
     
    1114511171    ; sub ah, ah                                ; 2a e4
    1114611172    test AL, strict byte 040h                 ; a8 40
    11147     je short 079afh                           ; 74 07
     11173    je short 079cdh                           ; 74 07
    1114811174    test cx, cx                               ; 85 c9
    11149     je short 079afh                           ; 74 03
     11175    je short 079cdh                           ; 74 03
    1115011176    dec cx                                    ; 49
    11151     jmp short 0799eh                          ; eb ef
     11177    jmp short 079bch                          ; eb ef
    1115211178    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11153     jne short 079cbh                          ; 75 16
     11179    jne short 079e9h                          ; 75 16
    1115411180    lea dx, [si+002h]                         ; 8d 54 02
    1115511181    in AL, DX                                 ; ec
     
    1117011196    mov byte [bp+013h], al                    ; 88 46 13
    1117111197    test cx, cx                               ; 85 c9
    11172     jne short 079deh                          ; 75 04
     11198    jne short 079fch                          ; 75 04
    1117311199    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1117411200    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11175     jmp short 079e8h                          ; eb 04
     11201    jmp short 07a06h                          ; eb 04
    1117611202    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1117711203    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1117911205    pop bp                                    ; 5d
    1118011206    retn                                      ; c3
    11181 wait_:                                       ; 0xf79ee LB 0xb2
     11207wait_:                                       ; 0xf7a0c LB 0xb2
    1118211208    push bp                                   ; 55
    1118311209    mov bp, sp                                ; 89 e5
     
    1119711223    mov dx, 0046ch                            ; ba 6c 04
    1119811224    xor ax, ax                                ; 31 c0
    11199     call 01781h                               ; e8 70 9d
     11225    call 01781h                               ; e8 52 9d
    1120011226    mov word [bp-00eh], ax                    ; 89 46 f2
    1120111227    mov bx, dx                                ; 89 d3
     
    1120311229    mov dx, 0046ch                            ; ba 6c 04
    1120411230    xor ax, ax                                ; 31 c0
    11205     call 01781h                               ; e8 62 9d
     11231    call 01781h                               ; e8 44 9d
    1120611232    mov word [bp-012h], ax                    ; 89 46 ee
    1120711233    mov di, dx                                ; 89 d7
    1120811234    cmp dx, bx                                ; 39 da
    11209     jnbe short 07a2fh                         ; 77 07
    11210     jne short 07a36h                          ; 75 0c
     11235    jnbe short 07a4dh                         ; 77 07
     11236    jne short 07a54h                          ; 75 0c
    1121111237    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11212     jbe short 07a36h                          ; 76 07
     11238    jbe short 07a54h                          ; 76 07
    1121311239    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1121411240    sbb dx, bx                                ; 19 da
    11215     jmp short 07a41h                          ; eb 0b
     11241    jmp short 07a5fh                          ; eb 0b
    1121611242    cmp dx, bx                                ; 39 da
    11217     jc short 07a41h                           ; 72 07
    11218     jne short 07a45h                          ; 75 09
     11243    jc short 07a5fh                           ; 72 07
     11244    jne short 07a63h                          ; 75 09
    1121911245    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11220     jnc short 07a45h                          ; 73 04
     11246    jnc short 07a63h                          ; 73 04
    1122111247    sub si, ax                                ; 29 c6
    1122211248    sbb cx, dx                                ; 19 d1
     
    1122611252    mov ax, 00100h                            ; b8 00 01
    1122711253    int 016h                                  ; cd 16
    11228     je near 07a5bh                            ; 0f 84 05 00
     11254    je near 07a79h                            ; 0f 84 05 00
    1122911255    mov AL, strict byte 001h                  ; b0 01
    11230     jmp near 07a5dh                           ; e9 02 00
     11256    jmp near 07a7bh                           ; e9 02 00
    1123111257    db  032h, 0c0h
    1123211258    ; xor al, al                                ; 32 c0
    1123311259    test al, al                               ; 84 c0
    11234     je short 07a85h                           ; 74 24
     11260    je short 07aa3h                           ; 74 24
    1123511261    db  033h, 0c0h
    1123611262    ; xor ax, ax                                ; 33 c0
     
    1124311269    push 009a8h                               ; 68 a8 09
    1124411270    push strict byte 00004h                   ; 6a 04
    11245     call 01a6bh                               ; e8 f3 9f
     11271    call 01a6bh                               ; e8 d5 9f
    1124611272    add sp, strict byte 00006h                ; 83 c4 06
    1124711273    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11248     je short 07a85h                           ; 74 04
     11274    je short 07aa3h                           ; 74 04
    1124911275    mov al, dl                                ; 88 d0
    11250     jmp short 07a97h                          ; eb 12
     11276    jmp short 07ab5h                          ; eb 12
    1125111277    test cx, cx                               ; 85 c9
    11252     jnle short 07a16h                         ; 7f 8d
    11253     jne short 07a8fh                          ; 75 04
     11278    jnle short 07a34h                         ; 7f 8d
     11279    jne short 07aadh                          ; 75 04
    1125411280    test si, si                               ; 85 f6
    11255     jnbe short 07a16h                         ; 77 87
     11281    jnbe short 07a34h                         ; 77 87
    1125611282    mov ax, word [bp-010h]                    ; 8b 46 f0
    1125711283    push ax                                   ; 50
     
    1126511291    pop bp                                    ; 5d
    1126611292    retn                                      ; c3
    11267 read_logo_byte_:                             ; 0xf7aa0 LB 0x16
     11293read_logo_byte_:                             ; 0xf7abe LB 0x16
    1126811294    push bp                                   ; 55
    1126911295    mov bp, sp                                ; 89 e5
     
    1128011306    pop bp                                    ; 5d
    1128111307    retn                                      ; c3
    11282 read_logo_word_:                             ; 0xf7ab6 LB 0x14
     11308read_logo_word_:                             ; 0xf7ad4 LB 0x14
    1128311309    push bp                                   ; 55
    1128411310    mov bp, sp                                ; 89 e5
     
    1129311319    pop bp                                    ; 5d
    1129411320    retn                                      ; c3
    11295 print_detected_harddisks_:                   ; 0xf7aca LB 0x130
     11321print_detected_harddisks_:                   ; 0xf7ae8 LB 0x130
    1129611322    push bp                                   ; 55
    1129711323    mov bp, sp                                ; 89 e5
     
    1130511331    mov dx, strict word 0000eh                ; ba 0e 00
    1130611332    mov ax, strict word 00040h                ; b8 40 00
    11307     call 01765h                               ; e8 88 9c
     11333    call 01765h                               ; e8 6a 9c
    1130811334    mov si, ax                                ; 89 c6
    1130911335    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1131111337    xor ch, ch                                ; 30 ed
    1131211338    mov dx, 00304h                            ; ba 04 03
    11313     call 01749h                               ; e8 5c 9c
     11339    call 01749h                               ; e8 3e 9c
    1131411340    mov byte [bp-00eh], al                    ; 88 46 f2
    1131511341    xor bl, bl                                ; 30 db
    1131611342    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    11317     jnc near 07bcch                           ; 0f 83 d3 00
     11343    jnc near 07beah                           ; 0f 83 d3 00
    1131811344    movzx dx, bl                              ; 0f b6 d3
    1131911345    add dx, 00305h                            ; 81 c2 05 03
    1132011346    mov ax, si                                ; 89 f0
    11321     call 01749h                               ; e8 44 9c
     11347    call 01749h                               ; e8 26 9c
    1132211348    mov bh, al                                ; 88 c7
    1132311349    cmp AL, strict byte 00ch                  ; 3c 0c
    11324     jc short 07b2fh                           ; 72 24
     11350    jc short 07b4dh                           ; 72 24
    1132511351    test cl, cl                               ; 84 c9
    11326     jne short 07b1ch                          ; 75 0d
     11352    jne short 07b3ah                          ; 75 0d
    1132711353    push 009b9h                               ; 68 b9 09
    1132811354    push strict byte 00002h                   ; 6a 02
    11329     call 01a6bh                               ; e8 54 9f
     11355    call 01a6bh                               ; e8 36 9f
    1133011356    add sp, strict byte 00004h                ; 83 c4 04
    1133111357    mov CL, strict byte 001h                  ; b1 01
     
    1133511361    push 009ceh                               ; 68 ce 09
    1133611362    push strict byte 00002h                   ; 6a 02
    11337     call 01a6bh                               ; e8 42 9f
     11363    call 01a6bh                               ; e8 24 9f
    1133811364    add sp, strict byte 00006h                ; 83 c4 06
    11339     jmp near 07bc7h                           ; e9 98 00
     11365    jmp near 07be5h                           ; e9 98 00
    1134011366    cmp AL, strict byte 008h                  ; 3c 08
    11341     jc short 07b46h                           ; 72 13
     11367    jc short 07b64h                           ; 72 13
    1134211368    test ch, ch                               ; 84 ed
    11343     jne short 07b44h                          ; 75 0d
     11369    jne short 07b62h                          ; 75 0d
    1134411370    push 009e1h                               ; 68 e1 09
    1134511371    push strict byte 00002h                   ; 6a 02
    11346     call 01a6bh                               ; e8 2c 9f
     11372    call 01a6bh                               ; e8 0e 9f
    1134711373    add sp, strict byte 00004h                ; 83 c4 04
    1134811374    mov CH, strict byte 001h                  ; b5 01
    11349     jmp short 07b1ch                          ; eb d6
     11375    jmp short 07b3ah                          ; eb d6
    1135011376    cmp AL, strict byte 004h                  ; 3c 04
    11351     jnc short 07b61h                          ; 73 17
     11377    jnc short 07b7fh                          ; 73 17
    1135211378    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11353     jne short 07b61h                          ; 75 11
     11379    jne short 07b7fh                          ; 75 11
    1135411380    push 009f6h                               ; 68 f6 09
    1135511381    push strict byte 00002h                   ; 6a 02
    11356     call 01a6bh                               ; e8 13 9f
     11382    call 01a6bh                               ; e8 f5 9e
    1135711383    add sp, strict byte 00004h                ; 83 c4 04
    1135811384    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11359     jmp short 07b77h                          ; eb 16
     11385    jmp short 07b95h                          ; eb 16
    1136011386    cmp bh, 004h                              ; 80 ff 04
    11361     jc short 07b77h                           ; 72 11
     11387    jc short 07b95h                           ; 72 11
    1136211388    test cl, cl                               ; 84 c9
    11363     jne short 07b77h                          ; 75 0d
     11389    jne short 07b95h                          ; 75 0d
    1136411390    push 00a08h                               ; 68 08 0a
    1136511391    push strict byte 00002h                   ; 6a 02
    11366     call 01a6bh                               ; e8 f9 9e
     11392    call 01a6bh                               ; e8 db 9e
    1136711393    add sp, strict byte 00004h                ; 83 c4 04
    1136811394    mov CL, strict byte 001h                  ; b1 01
     
    1137211398    push 00a1ch                               ; 68 1c 0a
    1137311399    push strict byte 00002h                   ; 6a 02
    11374     call 01a6bh                               ; e8 e7 9e
     11400    call 01a6bh                               ; e8 c9 9e
    1137511401    add sp, strict byte 00006h                ; 83 c4 06
    1137611402    cmp bh, 004h                              ; 80 ff 04
    11377     jc short 07b8fh                           ; 72 03
     11403    jc short 07badh                           ; 72 03
    1137811404    sub bh, 004h                              ; 80 ef 04
    1137911405    movzx ax, bh                              ; 0f b6 c7
     
    1138311409    sar ax, 1                                 ; d1 f8
    1138411410    test ax, ax                               ; 85 c0
    11385     je short 07ba0h                           ; 74 05
     11411    je short 07bbeh                           ; 74 05
    1138611412    push 00a26h                               ; 68 26 0a
    11387     jmp short 07ba3h                          ; eb 03
     11413    jmp short 07bc1h                          ; eb 03
    1138811414    push 00a31h                               ; 68 31 0a
    1138911415    push strict byte 00002h                   ; 6a 02
    11390     call 01a6bh                               ; e8 c3 9e
     11416    call 01a6bh                               ; e8 a5 9e
    1139111417    add sp, strict byte 00004h                ; 83 c4 04
    1139211418    movzx ax, bh                              ; 0f b6 c7
     
    1139511421    idiv di                                   ; f7 ff
    1139611422    test dx, dx                               ; 85 d2
    11397     je short 07bbdh                           ; 74 05
     11423    je short 07bdbh                           ; 74 05
    1139811424    push 00a3ah                               ; 68 3a 0a
    11399     jmp short 07bc0h                          ; eb 03
     11425    jmp short 07bdeh                          ; eb 03
    1140011426    push 00a40h                               ; 68 40 0a
    1140111427    push di                                   ; 57
    11402     call 01a6bh                               ; e8 a7 9e
     11428    call 01a6bh                               ; e8 89 9e
    1140311429    add sp, strict byte 00004h                ; 83 c4 04
    1140411430    db  0feh, 0c3h
    1140511431    ; inc bl                                    ; fe c3
    11406     jmp near 07af2h                           ; e9 26 ff
     11432    jmp near 07b10h                           ; e9 26 ff
    1140711433    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11408     jne short 07be5h                          ; 75 13
     11434    jne short 07c03h                          ; 75 13
    1140911435    test cl, cl                               ; 84 c9
    11410     jne short 07be5h                          ; 75 0f
     11436    jne short 07c03h                          ; 75 0f
    1141111437    test ch, ch                               ; 84 ed
    11412     jne short 07be5h                          ; 75 0b
     11438    jne short 07c03h                          ; 75 0b
    1141311439    push 00a47h                               ; 68 47 0a
    1141411440    push strict byte 00002h                   ; 6a 02
    11415     call 01a6bh                               ; e8 89 9e
     11441    call 01a6bh                               ; e8 6b 9e
    1141611442    add sp, strict byte 00004h                ; 83 c4 04
    1141711443    push 00a5bh                               ; 68 5b 0a
    1141811444    push strict byte 00002h                   ; 6a 02
    11419     call 01a6bh                               ; e8 7e 9e
     11445    call 01a6bh                               ; e8 60 9e
    1142011446    add sp, strict byte 00004h                ; 83 c4 04
    1142111447    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1142711453    pop bp                                    ; 5d
    1142811454    retn                                      ; c3
    11429 get_boot_drive_:                             ; 0xf7bfa LB 0x28
     11455get_boot_drive_:                             ; 0xf7c18 LB 0x28
    1143011456    push bp                                   ; 55
    1143111457    mov bp, sp                                ; 89 e5
     
    1143511461    mov dx, strict word 0000eh                ; ba 0e 00
    1143611462    mov ax, strict word 00040h                ; b8 40 00
    11437     call 01765h                               ; e8 5b 9b
     11463    call 01765h                               ; e8 3d 9b
    1143811464    mov dx, 00304h                            ; ba 04 03
    11439     call 01749h                               ; e8 39 9b
     11465    call 01749h                               ; e8 1b 9b
    1144011466    sub bl, 002h                              ; 80 eb 02
    1144111467    cmp bl, al                                ; 38 c3
    11442     jc short 07c19h                           ; 72 02
     11468    jc short 07c37h                           ; 72 02
    1144311469    mov BL, strict byte 0ffh                  ; b3 ff
    1144411470    mov al, bl                                ; 88 d8
     
    1144811474    pop bp                                    ; 5d
    1144911475    retn                                      ; c3
    11450 show_logo_:                                  ; 0xf7c22 LB 0x231
     11476show_logo_:                                  ; 0xf7c40 LB 0x231
    1145111477    push bp                                   ; 55
    1145211478    mov bp, sp                                ; 89 e5
     
    1145911485    mov dx, strict word 0000eh                ; ba 0e 00
    1146011486    mov ax, strict word 00040h                ; b8 40 00
    11461     call 01765h                               ; e8 2f 9b
     11487    call 01765h                               ; e8 11 9b
    1146211488    mov si, ax                                ; 89 c6
    1146311489    xor cl, cl                                ; 30 c9
     
    1147011496    out strict byte 040h, AL                  ; e6 40
    1147111497    movzx ax, dl                              ; 0f b6 c2
    11472     call 07ab6h                               ; e8 68 fe
     11498    call 07ad4h                               ; e8 68 fe
    1147311499    cmp ax, 066bbh                            ; 3d bb 66
    11474     jne near 07d33h                           ; 0f 85 de 00
     11500    jne near 07d51h                           ; 0f 85 de 00
    1147511501    push SS                                   ; 16
    1147611502    pop ES                                    ; 07
     
    1148011506    mov word [es:di], bx                      ; 26 89 1d
    1148111507    cmp ax, strict word 0004fh                ; 3d 4f 00
    11482     jne near 07d33h                           ; 0f 85 ca 00
     11508    jne near 07d51h                           ; 0f 85 ca 00
    1148311509    mov al, dl                                ; 88 d0
    1148411510    add AL, strict byte 004h                  ; 04 04
    1148511511    xor ah, ah                                ; 30 e4
    11486     call 07aa0h                               ; e8 2e fe
     11512    call 07abeh                               ; e8 2e fe
    1148711513    mov ch, al                                ; 88 c5
    1148811514    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1149011516    add AL, strict byte 005h                  ; 04 05
    1149111517    xor ah, ah                                ; 30 e4
    11492     call 07aa0h                               ; e8 20 fe
     11518    call 07abeh                               ; e8 20 fe
    1149311519    mov dh, al                                ; 88 c6
    1149411520    mov byte [bp-010h], al                    ; 88 46 f0
     
    1149611522    add AL, strict byte 002h                  ; 04 02
    1149711523    xor ah, ah                                ; 30 e4
    11498     call 07ab6h                               ; e8 28 fe
     11524    call 07ad4h                               ; e8 28 fe
    1149911525    mov bx, ax                                ; 89 c3
    1150011526    mov word [bp-014h], ax                    ; 89 46 ec
     
    1150211528    add AL, strict byte 006h                  ; 04 06
    1150311529    xor ah, ah                                ; 30 e4
    11504     call 07aa0h                               ; e8 04 fe
     11530    call 07abeh                               ; e8 04 fe
    1150511531    mov byte [bp-012h], al                    ; 88 46 ee
    1150611532    test ch, ch                               ; 84 ed
    11507     jne short 07cadh                          ; 75 0a
     11533    jne short 07ccbh                          ; 75 0a
    1150811534    test dh, dh                               ; 84 f6
    11509     jne short 07cadh                          ; 75 06
     11535    jne short 07ccbh                          ; 75 06
    1151011536    test bx, bx                               ; 85 db
    11511     je near 07d33h                            ; 0f 84 86 00
     11537    je near 07d51h                            ; 0f 84 86 00
    1151211538    mov bx, 00142h                            ; bb 42 01
    1151311539    mov ax, 04f02h                            ; b8 02 4f
    1151411540    int 010h                                  ; cd 10
    1151511541    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11516     je short 07cdeh                           ; 74 23
     11542    je short 07cfch                           ; 74 23
    1151711543    xor bx, bx                                ; 31 db
    11518     jmp short 07cc5h                          ; eb 06
     11544    jmp short 07ce3h                          ; eb 06
    1151911545    inc bx                                    ; 43
    1152011546    cmp bx, strict byte 00010h                ; 83 fb 10
    11521     jnbe short 07ce5h                         ; 77 20
     11547    jnbe short 07d03h                         ; 77 20
    1152211548    mov ax, bx                                ; 89 d8
    1152311549    or ah, 002h                               ; 80 cc 02
     
    1152611552    xor dx, dx                                ; 31 d2
    1152711553    mov ax, strict word 00001h                ; b8 01 00
    11528     call 079eeh                               ; e8 18 fd
     11554    call 07a0ch                               ; e8 18 fd
    1152911555    cmp AL, strict byte 086h                  ; 3c 86
    11530     jne short 07cbfh                          ; 75 e5
     11556    jne short 07cddh                          ; 75 e5
    1153111557    mov CL, strict byte 001h                  ; b1 01
    11532     jmp short 07ce5h                          ; eb 07
     11558    jmp short 07d03h                          ; eb 07
    1153311559    mov ax, 00210h                            ; b8 10 02
    1153411560    mov dx, 003b8h                            ; ba b8 03
    1153511561    out DX, ax                                ; ef
    1153611562    test cl, cl                               ; 84 c9
    11537     jne short 07cfbh                          ; 75 12
     11563    jne short 07d19h                          ; 75 12
    1153811564    mov ax, word [bp-014h]                    ; 8b 46 ec
    1153911565    shr ax, 004h                              ; c1 e8 04
    1154011566    mov dx, strict word 00001h                ; ba 01 00
    11541     call 079eeh                               ; e8 f9 fc
     11567    call 07a0ch                               ; e8 f9 fc
    1154211568    cmp AL, strict byte 086h                  ; 3c 86
    11543     jne short 07cfbh                          ; 75 02
     11569    jne short 07d19h                          ; 75 02
    1154411570    mov CL, strict byte 001h                  ; b1 01
    1154511571    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11546     je short 07d28h                           ; 74 27
     11572    je short 07d46h                           ; 74 27
    1154711573    test cl, cl                               ; 84 c9
    11548     jne short 07d28h                          ; 75 23
     11574    jne short 07d46h                          ; 75 23
    1154911575    mov bx, strict word 00010h                ; bb 10 00
    11550     jmp short 07d0fh                          ; eb 05
     11576    jmp short 07d2dh                          ; eb 05
    1155111577    dec bx                                    ; 4b
    1155211578    test bx, bx                               ; 85 db
    11553     jbe short 07d33h                          ; 76 24
     11579    jbe short 07d51h                          ; 76 24
    1155411580    mov ax, bx                                ; 89 d8
    1155511581    or ah, 002h                               ; 80 cc 02
     
    1155811584    xor dx, dx                                ; 31 d2
    1155911585    mov ax, strict word 00001h                ; b8 01 00
    11560     call 079eeh                               ; e8 ce fc
     11586    call 07a0ch                               ; e8 ce fc
    1156111587    cmp AL, strict byte 086h                  ; 3c 86
    11562     jne short 07d0ah                          ; 75 e6
     11588    jne short 07d28h                          ; 75 e6
    1156311589    mov CL, strict byte 001h                  ; b1 01
    11564     jmp short 07d33h                          ; eb 0b
     11590    jmp short 07d51h                          ; eb 0b
    1156511591    test cl, cl                               ; 84 c9
    11566     jne short 07d33h                          ; 75 07
     11592    jne short 07d51h                          ; 75 07
    1156711593    mov ax, 00200h                            ; b8 00 02
    1156811594    mov dx, 003b8h                            ; ba b8 03
     
    1157111597    mov dx, 0037dh                            ; ba 7d 03
    1157211598    mov ax, si                                ; 89 f0
    11573     call 01757h                               ; e8 1a 9a
     11599    call 01757h                               ; e8 fc 99
    1157411600    mov AL, strict byte 003h                  ; b0 03
    1157511601    mov AH, strict byte 000h                  ; b4 00
    1157611602    int 010h                                  ; cd 10
    1157711603    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11578     je near 07e34h                            ; 0f 84 e9 00
     11604    je near 07e52h                            ; 0f 84 e9 00
    1157911605    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11580     jne short 07d81h                          ; 75 30
     11606    jne short 07d9fh                          ; 75 30
    1158111607    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11582     jne short 07d81h                          ; 75 2a
     11608    jne short 07d9fh                          ; 75 2a
    1158311609    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11584     jne short 07d81h                          ; 75 24
     11610    jne short 07d9fh                          ; 75 24
    1158511611    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    11586     jne short 07d6eh                          ; 75 0b
     11612    jne short 07d8ch                          ; 75 0b
    1158711613    push 00a5dh                               ; 68 5d 0a
    1158811614    push strict byte 00002h                   ; 6a 02
    11589     call 01a6bh                               ; e8 00 9d
     11615    call 01a6bh                               ; e8 e2 9c
    1159011616    add sp, strict byte 00004h                ; 83 c4 04
    1159111617    test cl, cl                               ; 84 c9
    11592     jne short 07d81h                          ; 75 0f
     11618    jne short 07d9fh                          ; 75 0f
    1159311619    mov dx, strict word 00001h                ; ba 01 00
    1159411620    mov ax, 000c0h                            ; b8 c0 00
    11595     call 079eeh                               ; e8 73 fc
     11621    call 07a0ch                               ; e8 73 fc
    1159611622    cmp AL, strict byte 086h                  ; 3c 86
    11597     jne short 07d81h                          ; 75 02
     11623    jne short 07d9fh                          ; 75 02
    1159811624    mov CL, strict byte 001h                  ; b1 01
    1159911625    test cl, cl                               ; 84 c9
    11600     je near 07e34h                            ; 0f 84 ad 00
     11626    je near 07e52h                            ; 0f 84 ad 00
    1160111627    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1160211628    mov ax, 00100h                            ; b8 00 01
     
    1161711643    push 00a7fh                               ; 68 7f 0a
    1161811644    push strict byte 00002h                   ; 6a 02
    11619     call 01a6bh                               ; e8 bb 9c
     11645    call 01a6bh                               ; e8 9d 9c
    1162011646    add sp, strict byte 00004h                ; 83 c4 04
    11621     call 07acah                               ; e8 14 fd
     11647    call 07ae8h                               ; e8 14 fd
    1162211648    push 00ac3h                               ; 68 c3 0a
    1162311649    push strict byte 00002h                   ; 6a 02
    11624     call 01a6bh                               ; e8 ad 9c
     11650    call 01a6bh                               ; e8 8f 9c
    1162511651    add sp, strict byte 00004h                ; 83 c4 04
    1162611652    mov dx, strict word 00001h                ; ba 01 00
    1162711653    mov ax, strict word 00040h                ; b8 40 00
    11628     call 079eeh                               ; e8 24 fc
     11654    call 07a0ch                               ; e8 24 fc
    1162911655    mov bl, al                                ; 88 c3
    1163011656    test al, al                               ; 84 c0
    11631     je short 07dc1h                           ; 74 f1
     11657    je short 07ddfh                           ; 74 f1
    1163211658    cmp AL, strict byte 030h                  ; 3c 30
    11633     je short 07e22h                           ; 74 4e
     11659    je short 07e40h                           ; 74 4e
    1163411660    cmp bl, 002h                              ; 80 fb 02
    11635     jc short 07dfbh                           ; 72 22
     11661    jc short 07e19h                           ; 72 22
    1163611662    cmp bl, 009h                              ; 80 fb 09
    11637     jnbe short 07dfbh                         ; 77 1d
     11663    jnbe short 07e19h                         ; 77 1d
    1163811664    movzx ax, bl                              ; 0f b6 c3
    11639     call 07bfah                               ; e8 16 fe
     11665    call 07c18h                               ; e8 16 fe
    1164011666    cmp AL, strict byte 0ffh                  ; 3c ff
    11641     jne short 07deah                          ; 75 02
    11642     jmp short 07dc1h                          ; eb d7
     11667    jne short 07e08h                          ; 75 02
     11668    jmp short 07ddfh                          ; eb d7
    1164311669    movzx bx, al                              ; 0f b6 d8
    1164411670    mov dx, 0037ch                            ; ba 7c 03
    1164511671    mov ax, si                                ; 89 f0
    11646     call 01757h                               ; e8 62 99
     11672    call 01757h                               ; e8 44 99
    1164711673    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    11648     jmp short 07e22h                          ; eb 27
     11674    jmp short 07e40h                          ; eb 27
    1164911675    cmp bl, 02eh                              ; 80 fb 2e
    11650     je short 07e10h                           ; 74 10
     11676    je short 07e2eh                           ; 74 10
    1165111677    cmp bl, 026h                              ; 80 fb 26
    11652     je short 07e16h                           ; 74 11
     11678    je short 07e34h                           ; 74 11
    1165311679    cmp bl, 021h                              ; 80 fb 21
    11654     jne short 07e1ch                          ; 75 12
     11680    jne short 07e3ah                          ; 75 12
    1165511681    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11656     jmp short 07e22h                          ; eb 12
     11682    jmp short 07e40h                          ; eb 12
    1165711683    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    11658     jmp short 07e22h                          ; eb 0c
     11684    jmp short 07e40h                          ; eb 0c
    1165911685    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    11660     jmp short 07e22h                          ; eb 06
     11686    jmp short 07e40h                          ; eb 06
    1166111687    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11662     je short 07dc1h                           ; 74 9f
     11688    je short 07ddfh                           ; 74 9f
    1166311689    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1166411690    mov dx, 0037dh                            ; ba 7d 03
    1166511691    mov ax, si                                ; 89 f0
    11666     call 01757h                               ; e8 29 99
     11692    call 01757h                               ; e8 0b 99
    1166711693    mov AL, strict byte 003h                  ; b0 03
    1166811694    mov AH, strict byte 000h                  ; b4 00
     
    1167711703    push DS                                   ; 1e
    1167811704    mov ds, ax                                ; 8e d8
    11679     call 0edbfh                               ; e8 79 6f
     11705    call 0edbfh                               ; e8 5b 6f
    1168011706    pop DS                                    ; 1f
    1168111707    popad                                     ; 66 61
     
    1168811714    pop bp                                    ; 5d
    1168911715    retn                                      ; c3
    11690 delay_boot_:                                 ; 0xf7e53 LB 0x67
     11716delay_boot_:                                 ; 0xf7e71 LB 0x67
    1169111717    push bp                                   ; 55
    1169211718    mov bp, sp                                ; 89 e5
     
    1169511721    mov dx, ax                                ; 89 c2
    1169611722    test ax, ax                               ; 85 c0
    11697     je short 07eb3h                           ; 74 55
     11723    je short 07ed1h                           ; 74 55
    1169811724    mov AL, strict byte 034h                  ; b0 34
    1169911725    out strict byte 043h, AL                  ; e6 43
     
    1170511731    push 00b0dh                               ; 68 0d 0b
    1170611732    push strict byte 00002h                   ; 6a 02
    11707     call 01a6bh                               ; e8 f8 9b
     11733    call 01a6bh                               ; e8 da 9b
    1170811734    add sp, strict byte 00006h                ; 83 c4 06
    1170911735    mov bx, dx                                ; 89 d3
    1171011736    test bx, bx                               ; 85 db
    11711     jbe short 07e93h                          ; 76 17
     11737    jbe short 07eb1h                          ; 76 17
    1171211738    push bx                                   ; 53
    1171311739    push 00b2bh                               ; 68 2b 0b
    1171411740    push strict byte 00002h                   ; 6a 02
    11715     call 01a6bh                               ; e8 e6 9b
     11741    call 01a6bh                               ; e8 c8 9b
    1171611742    add sp, strict byte 00006h                ; 83 c4 06
    1171711743    xor dx, dx                                ; 31 d2
    1171811744    mov ax, strict word 00040h                ; b8 40 00
    11719     call 079eeh                               ; e8 5e fb
     11745    call 07a0ch                               ; e8 5e fb
    1172011746    dec bx                                    ; 4b
    11721     jmp short 07e78h                          ; eb e5
     11747    jmp short 07e96h                          ; eb e5
    1172211748    push 00a5bh                               ; 68 5b 0a
    1172311749    push strict byte 00002h                   ; 6a 02
    11724     call 01a6bh                               ; e8 d0 9b
     11750    call 01a6bh                               ; e8 b2 9b
    1172511751    add sp, strict byte 00004h                ; 83 c4 04
    1172611752    mov AL, strict byte 034h                  ; b0 34
     
    1173311759    push DS                                   ; 1e
    1173411760    mov ds, ax                                ; 8e d8
    11735     call 0edbfh                               ; e8 0f 6f
     11761    call 0edbfh                               ; e8 f1 6e
    1173611762    pop DS                                    ; 1f
    1173711763    popad                                     ; 66 61
     
    1174111767    pop bp                                    ; 5d
    1174211768    retn                                      ; c3
    11743 scsi_cmd_data_in_:                           ; 0xf7eba LB 0xd5
     11769scsi_cmd_data_in_:                           ; 0xf7ed8 LB 0xd5
    1174411770    push bp                                   ; 55
    1174511771    mov bp, sp                                ; 89 e5
     
    1175711783    ; sub ah, ah                                ; 2a e4
    1175811784    test AL, strict byte 001h                 ; a8 01
    11759     jne short 07ed0h                          ; 75 f7
     11785    jne short 07eeeh                          ; 75 f7
    1176011786    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11761     jne short 07ee3h                          ; 75 04
     11787    jne short 07f01h                          ; 75 04
    1176211788    xor ax, ax                                ; 31 c0
    11763     jmp short 07ee7h                          ; eb 04
     11789    jmp short 07f05h                          ; eb 04
    1176411790    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1176511791    mov di, ax                                ; 89 c7
     
    1176911795    shr dx, 1                                 ; d1 ea
    1177011796    rcr ax, 1                                 ; d1 d8
    11771     loop 07ef1h                               ; e2 fa
     11797    loop 07f0fh                               ; e2 fa
    1177211798    mov cx, ax                                ; 89 c1
    1177311799    and cx, 000f0h                            ; 81 e1 f0 00
     
    1178711813    shr dx, 1                                 ; d1 ea
    1178811814    rcr ax, 1                                 ; d1 d8
    11789     loop 07f16h                               ; e2 fa
     11815    loop 07f34h                               ; e2 fa
    1179011816    mov dx, si                                ; 89 f2
    1179111817    out DX, AL                                ; ee
     
    1179311819    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1179411820    cmp cx, ax                                ; 39 c1
    11795     jnc short 07f37h                          ; 73 0e
     11821    jnc short 07f55h                          ; 73 0e
    1179611822    les di, [bp-00ah]                         ; c4 7e f6
    1179711823    add di, cx                                ; 01 cf
     
    1180011826    out DX, AL                                ; ee
    1180111827    inc cx                                    ; 41
    11802     jmp short 07f21h                          ; eb ea
     11828    jmp short 07f3fh                          ; eb ea
    1180311829    mov dx, si                                ; 89 f2
    1180411830    in AL, DX                                 ; ec
     
    1180611832    ; sub ah, ah                                ; 2a e4
    1180711833    test AL, strict byte 001h                 ; a8 01
    11808     jne short 07f37h                          ; 75 f7
     11834    jne short 07f55h                          ; 75 f7
    1180911835    test AL, strict byte 002h                 ; a8 02
    11810     je short 07f52h                           ; 74 0e
     11836    je short 07f70h                           ; 74 0e
    1181111837    lea dx, [si+003h]                         ; 8d 54 03
    1181211838    xor al, al                                ; 30 c0
     
    1181611842    ; sub ah, ah                                ; 2a e4
    1181711843    mov di, strict word 00004h                ; bf 04 00
    11818     jmp short 07f84h                          ; eb 32
     11844    jmp short 07fa2h                          ; eb 32
    1181911845    lea dx, [si+001h]                         ; 8d 54 01
    1182011846    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11821     jne short 07f61h                          ; 75 06
     11847    jne short 07f7fh                          ; 75 06
    1182211848    cmp bx, 08000h                            ; 81 fb 00 80
    11823     jbe short 07f7bh                          ; 76 1a
     11849    jbe short 07f99h                          ; 76 1a
    1182411850    mov cx, 08000h                            ; b9 00 80
    1182511851    les di, [bp+006h]                         ; c4 7e 06
     
    1183011856    add ax, 00800h                            ; 05 00 08
    1183111857    mov word [bp+008h], ax                    ; 89 46 08
    11832     jmp short 07f52h                          ; eb d7
     11858    jmp short 07f70h                          ; eb d7
    1183311859    mov cx, bx                                ; 89 d9
    1183411860    les di, [bp+006h]                         ; c4 7e 06
     
    1184111867    pop bp                                    ; 5d
    1184211868    retn 0000ah                               ; c2 0a 00
    11843 scsi_cmd_data_out_:                          ; 0xf7f8f LB 0xd5
     11869scsi_cmd_data_out_:                          ; 0xf7fad LB 0xd5
    1184411870    push bp                                   ; 55
    1184511871    mov bp, sp                                ; 89 e5
     
    1185711883    ; sub ah, ah                                ; 2a e4
    1185811884    test AL, strict byte 001h                 ; a8 01
    11859     jne short 07fa5h                          ; 75 f7
     11885    jne short 07fc3h                          ; 75 f7
    1186011886    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11861     jne short 07fb8h                          ; 75 04
     11887    jne short 07fd6h                          ; 75 04
    1186211888    xor ax, ax                                ; 31 c0
    11863     jmp short 07fbch                          ; eb 04
     11889    jmp short 07fdah                          ; eb 04
    1186411890    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1186511891    mov si, ax                                ; 89 c6
     
    1186911895    shr dx, 1                                 ; d1 ea
    1187011896    rcr ax, 1                                 ; d1 d8
    11871     loop 07fc6h                               ; e2 fa
     11897    loop 07fe4h                               ; e2 fa
    1187211898    mov cx, ax                                ; 89 c1
    1187311899    and cx, 000f0h                            ; 81 e1 f0 00
     
    1188711913    shr dx, 1                                 ; d1 ea
    1188811914    rcr ax, 1                                 ; d1 d8
    11889     loop 07febh                               ; e2 fa
     11915    loop 08009h                               ; e2 fa
    1189011916    mov dx, di                                ; 89 fa
    1189111917    out DX, AL                                ; ee
     
    1189311919    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1189411920    cmp cx, ax                                ; 39 c1
    11895     jnc short 0800ch                          ; 73 0e
     11921    jnc short 0802ah                          ; 73 0e
    1189611922    les si, [bp-00ah]                         ; c4 76 f6
    1189711923    add si, cx                                ; 01 ce
     
    1190011926    out DX, AL                                ; ee
    1190111927    inc cx                                    ; 41
    11902     jmp short 07ff6h                          ; eb ea
     11928    jmp short 08014h                          ; eb ea
    1190311929    lea dx, [di+001h]                         ; 8d 55 01
    1190411930    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11905     jne short 0801bh                          ; 75 06
     11931    jne short 08039h                          ; 75 06
    1190611932    cmp bx, 08000h                            ; 81 fb 00 80
    11907     jbe short 08036h                          ; 76 1b
     11933    jbe short 08054h                          ; 76 1b
    1190811934    mov cx, 08000h                            ; b9 00 80
    1190911935    les si, [bp+006h]                         ; c4 76 06
     
    1191511941    add ax, 00800h                            ; 05 00 08
    1191611942    mov word [bp+008h], ax                    ; 89 46 08
    11917     jmp short 0800ch                          ; eb d6
     11943    jmp short 0802ah                          ; eb d6
    1191811944    mov cx, bx                                ; 89 d9
    1191911945    les si, [bp+006h]                         ; c4 76 06
     
    1192511951    ; sub ah, ah                                ; 2a e4
    1192611952    test AL, strict byte 001h                 ; a8 01
    11927     jne short 0803eh                          ; 75 f7
     11953    jne short 0805ch                          ; 75 f7
    1192811954    test AL, strict byte 002h                 ; a8 02
    11929     je short 08059h                           ; 74 0e
     11955    je short 08077h                           ; 74 0e
    1193011956    lea dx, [di+003h]                         ; 8d 55 03
    1193111957    xor al, al                                ; 30 c0
     
    1193511961    ; sub ah, ah                                ; 2a e4
    1193611962    mov ax, strict word 00004h                ; b8 04 00
    11937     jmp short 0805bh                          ; eb 02
     11963    jmp short 08079h                          ; eb 02
    1193811964    xor ax, ax                                ; 31 c0
    1193911965    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1194211968    pop bp                                    ; 5d
    1194311969    retn 0000ah                               ; c2 0a 00
    11944 @scsi_read_sectors:                          ; 0xf8064 LB 0xdb
     11970@scsi_read_sectors:                          ; 0xf8082 LB 0xdb
    1194511971    push bp                                   ; 55
    1194611972    mov bp, sp                                ; 89 e5
     
    1195411980    mov byte [bp-006h], al                    ; 88 46 fa
    1195511981    cmp AL, strict byte 004h                  ; 3c 04
    11956     jbe short 08092h                          ; 76 13
     11982    jbe short 080b0h                          ; 76 13
    1195711983    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1195811984    push ax                                   ; 50
     
    1196011986    push 00b42h                               ; 68 42 0b
    1196111987    push strict byte 00007h                   ; 6a 07
    11962     call 01a6bh                               ; e8 dc 99
     11988    call 01a6bh                               ; e8 be 99
    1196311989    add sp, strict byte 00008h                ; 83 c4 08
    1196411990    mov es, [bp+006h]                         ; 8e 46 06
     
    1199912025    sal word [bp-00ah], 1                     ; d1 66 f6
    1200012026    rcl word [bp-008h], 1                     ; d1 56 f8
    12001     loop 080fbh                               ; e2 f8
     12027    loop 08119h                               ; e2 f8
    1200212028    push dword [bp-00ah]                      ; 66 ff 76 f6
    1200312029    db  066h, 026h, 0ffh, 074h, 008h
     
    1200712033    mov cx, ss                                ; 8c d1
    1200812034    lea bx, [bp-01ah]                         ; 8d 5e e6
    12009     call 07ebah                               ; e8 a2 fd
     12035    call 07ed8h                               ; e8 a2 fd
    1201012036    mov ah, al                                ; 88 c4
    1201112037    test al, al                               ; 84 c0
    12012     jne short 08133h                          ; 75 15
     12038    jne short 08151h                          ; 75 15
    1201312039    mov es, [bp+006h]                         ; 8e 46 06
    1201412040    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1202312049    pop bp                                    ; 5d
    1202412050    retn 00004h                               ; c2 04 00
    12025 @scsi_write_sectors:                         ; 0xf813f LB 0xdb
     12051@scsi_write_sectors:                         ; 0xf815d LB 0xdb
    1202612052    push bp                                   ; 55
    1202712053    mov bp, sp                                ; 89 e5
     
    1203512061    mov byte [bp-006h], al                    ; 88 46 fa
    1203612062    cmp AL, strict byte 004h                  ; 3c 04
    12037     jbe short 0816dh                          ; 76 13
     12063    jbe short 0818bh                          ; 76 13
    1203812064    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1203912065    push ax                                   ; 50
     
    1204112067    push 00b42h                               ; 68 42 0b
    1204212068    push strict byte 00007h                   ; 6a 07
    12043     call 01a6bh                               ; e8 01 99
     12069    call 01a6bh                               ; e8 e3 98
    1204412070    add sp, strict byte 00008h                ; 83 c4 08
    1204512071    mov es, [bp+006h]                         ; 8e 46 06
     
    1208012106    sal word [bp-00ah], 1                     ; d1 66 f6
    1208112107    rcl word [bp-008h], 1                     ; d1 56 f8
    12082     loop 081d6h                               ; e2 f8
     12108    loop 081f4h                               ; e2 f8
    1208312109    push dword [bp-00ah]                      ; 66 ff 76 f6
    1208412110    db  066h, 026h, 0ffh, 074h, 008h
     
    1208812114    mov cx, ss                                ; 8c d1
    1208912115    lea bx, [bp-01ah]                         ; 8d 5e e6
    12090     call 07f8fh                               ; e8 9c fd
     12116    call 07fadh                               ; e8 9c fd
    1209112117    mov ah, al                                ; 88 c4
    1209212118    test al, al                               ; 84 c0
    12093     jne short 0820eh                          ; 75 15
     12119    jne short 0822ch                          ; 75 15
    1209412120    mov es, [bp+006h]                         ; 8e 46 06
    1209512121    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1210412130    pop bp                                    ; 5d
    1210512131    retn 00004h                               ; c2 04 00
    12106 scsi_cmd_packet_:                            ; 0xf821a LB 0x166
     12132scsi_cmd_packet_:                            ; 0xf8238 LB 0x166
    1210712133    push bp                                   ; 55
    1210812134    mov bp, sp                                ; 89 e5
     
    1211612142    mov dx, strict word 0000eh                ; ba 0e 00
    1211712143    mov ax, strict word 00040h                ; b8 40 00
    12118     call 01765h                               ; e8 2f 95
     12144    call 01765h                               ; e8 11 95
    1211912145    mov si, 00122h                            ; be 22 01
    1212012146    mov word [bp-00eh], ax                    ; 89 46 f2
    1212112147    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12122     jne short 08261h                          ; 75 1f
    12123     mov bx, 00db6h                            ; bb b6 0d
     12148    jne short 0827fh                          ; 75 1f
     12149    mov bx, 00db2h                            ; bb b2 0d
    1212412150    mov cx, ds                                ; 8c d9
    1212512151    mov ax, strict word 00004h                ; b8 04 00
    12126     call 01a2ah                               ; e8 dd 97
     12152    call 01a2ah                               ; e8 bf 97
    1212712153    push 00b74h                               ; 68 74 0b
    1212812154    push 00b84h                               ; 68 84 0b
    1212912155    push strict byte 00004h                   ; 6a 04
    12130     call 01a6bh                               ; e8 13 98
     12156    call 01a6bh                               ; e8 f5 97
    1213112157    add sp, strict byte 00006h                ; 83 c4 06
    1213212158    mov dx, strict word 00001h                ; ba 01 00
    12133     jmp near 08375h                           ; e9 14 01
     12159    jmp near 08393h                           ; e9 14 01
    1213412160    sub di, strict byte 00008h                ; 83 ef 08
    1213512161    sal di, 002h                              ; c1 e7 02
     
    1214512171    ; sub ah, ah                                ; 2a e4
    1214612172    test AL, strict byte 001h                 ; a8 01
    12147     jne short 0827dh                          ; 75 f7
     12173    jne short 0829bh                          ; 75 f7
    1214812174    xor ax, ax                                ; 31 c0
    1214912175    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1216112187    shr dx, 1                                 ; d1 ea
    1216212188    rcr ax, 1                                 ; d1 d8
    12163     loop 082a8h                               ; e2 fa
     12189    loop 082c6h                               ; e2 fa
    1216412190    and ax, 000f0h                            ; 25 f0 00
    1216512191    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1217912205    shr dx, 1                                 ; d1 ea
    1218012206    rcr ax, 1                                 ; d1 d8
    12181     loop 082cfh                               ; e2 fa
     12207    loop 082edh                               ; e2 fa
    1218212208    mov dx, bx                                ; 89 da
    1218312209    out DX, AL                                ; ee
     
    1218512211    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1218612212    cmp cx, ax                                ; 39 c1
    12187     jnc short 082f0h                          ; 73 0e
     12213    jnc short 0830eh                          ; 73 0e
    1218812214    les di, [bp-00ch]                         ; c4 7e f4
    1218912215    add di, cx                                ; 01 cf
     
    1219212218    out DX, AL                                ; ee
    1219312219    inc cx                                    ; 41
    12194     jmp short 082dah                          ; eb ea
     12220    jmp short 082f8h                          ; eb ea
    1219512221    mov dx, bx                                ; 89 da
    1219612222    in AL, DX                                 ; ec
     
    1219812224    ; sub ah, ah                                ; 2a e4
    1219912225    test AL, strict byte 001h                 ; a8 01
    12200     jne short 082f0h                          ; 75 f7
     12226    jne short 0830eh                          ; 75 f7
    1220112227    test AL, strict byte 002h                 ; a8 02
    12202     je short 0830bh                           ; 74 0e
     12228    je short 08329h                           ; 74 0e
    1220312229    lea dx, [bx+003h]                         ; 8d 57 03
    1220412230    xor al, al                                ; 30 c0
     
    1220812234    ; sub ah, ah                                ; 2a e4
    1220912235    mov dx, strict word 00003h                ; ba 03 00
    12210     jmp short 08375h                          ; eb 6a
     12236    jmp short 08393h                          ; eb 6a
    1221112237    mov ax, word [bp+004h]                    ; 8b 46 04
    1221212238    test ax, ax                               ; 85 c0
    12213     je short 0831ah                           ; 74 08
     12239    je short 08338h                           ; 74 08
    1221412240    lea dx, [bx+001h]                         ; 8d 57 01
    1221512241    mov cx, ax                                ; 89 c1
    1221612242    in AL, DX                                 ; ec
    12217     loop 08317h                               ; e2 fd
     12243    loop 08335h                               ; e2 fd
    1221812244    mov ax, word [bp+006h]                    ; 8b 46 06
    1221912245    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1222312249    lea ax, [bx+001h]                         ; 8d 47 01
    1222412250    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12225     jne short 0833bh                          ; 75 07
     12251    jne short 08359h                          ; 75 07
    1222612252    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12227     jbe short 08358h                          ; 76 1d
     12253    jbe short 08376h                          ; 76 1d
    1222812254    mov dx, ax                                ; 89 c2
    1222912255    mov cx, 08000h                            ; b9 00 80
     
    1223512261    add ax, 00800h                            ; 05 00 08
    1223612262    mov word [bp+00eh], ax                    ; 89 46 0e
    12237     jmp short 0832bh                          ; eb d3
     12263    jmp short 08349h                          ; eb d3
    1223812264    mov dx, ax                                ; 89 c2
    1223912265    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1224212268    mov es, [bp-00eh]                         ; 8e 46 f2
    1224312269    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12244     je short 08373h                           ; 74 07
     12270    je short 08391h                           ; 74 07
    1224512271    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1224612272    in AL, DX                                 ; ec
    12247     loop 08370h                               ; e2 fd
     12273    loop 0838eh                               ; e2 fd
    1224812274    xor dx, dx                                ; 31 d2
    1224912275    mov ax, dx                                ; 89 d0
     
    1225312279    pop bp                                    ; 5d
    1225412280    retn 0000ch                               ; c2 0c 00
    12255 scsi_enumerate_attached_devices_:            ; 0xf8380 LB 0x482
     12281scsi_enumerate_attached_devices_:            ; 0xf839e LB 0x482
    1225612282    push bp                                   ; 55
    1225712283    mov bp, sp                                ; 89 e5
     
    1226512291    mov dx, strict word 0000eh                ; ba 0e 00
    1226612292    mov ax, strict word 00040h                ; b8 40 00
    12267     call 01765h                               ; e8 cf 93
     12293    call 01765h                               ; e8 b1 93
    1226812294    mov di, 00122h                            ; bf 22 01
    1226912295    mov word [bp-02eh], ax                    ; 89 46 d2
    1227012296    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    12271     jmp near 08784h                           ; e9 e0 03
     12297    jmp near 087a2h                           ; e9 e0 03
    1227212298    cmp AL, strict byte 004h                  ; 3c 04
    12273     jnc near 087f8h                           ; 0f 83 4e 04
     12299    jnc near 08816h                           ; 0f 83 4e 04
    1227412300    mov cx, strict word 00010h                ; b9 10 00
    1227512301    xor bx, bx                                ; 31 db
    1227612302    mov dx, ss                                ; 8c d2
    1227712303    lea ax, [bp-046h]                         ; 8d 46 ba
    12278     call 0a110h                               ; e8 59 1d
     12304    call 0a130h                               ; e8 5b 1d
    1227912305    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1228012306    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1228912315    lea bx, [bp-046h]                         ; 8d 5e ba
    1229012316    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12291     call 07ebah                               ; e8 dc fa
     12317    call 07ed8h                               ; e8 dc fa
    1229212318    test al, al                               ; 84 c0
    12293     je short 083f0h                           ; 74 0e
     12319    je short 0840eh                           ; 74 0e
    1229412320    push 00ba4h                               ; 68 a4 0b
    1229512321    push 00bddh                               ; 68 dd 0b
    1229612322    push strict byte 00007h                   ; 6a 07
    12297     call 01a6bh                               ; e8 7e 96
     12323    call 01a6bh                               ; e8 60 96
    1229812324    add sp, strict byte 00006h                ; 83 c4 06
    1229912325    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1232512351    sal ax, 1                                 ; d1 e0
    1232612352    rcl dx, 1                                 ; d1 d2
    12327     loop 0843eh                               ; e2 fa
     12353    loop 0845ch                               ; e2 fa
    1232812354    or bx, ax                                 ; 09 c3
    1232912355    or dx, si                                 ; 09 f2
     
    1233212358    mov word [bp-024h], bx                    ; 89 5e dc
    1233312359    test dx, dx                               ; 85 d2
    12334     jne short 0845ch                          ; 75 06
     12360    jne short 0847ah                          ; 75 06
    1233512361    cmp bx, 00200h                            ; 81 fb 00 02
    12336     je short 0847ch                           ; 74 20
    12337     mov bx, 00db6h                            ; bb b6 0d
     12362    je short 0849ah                           ; 74 20
     12363    mov bx, 00db2h                            ; bb b2 0d
    1233812364    mov cx, ds                                ; 8c d9
    1233912365    mov ax, strict word 00004h                ; b8 04 00
    12340     call 01a2ah                               ; e8 c3 95
     12366    call 01a2ah                               ; e8 a5 95
    1234112367    push dx                                   ; 52
    1234212368    push word [bp-024h]                       ; ff 76 dc
     
    1234412370    push 00bfch                               ; 68 fc 0b
    1234512371    push strict byte 00004h                   ; 6a 04
    12346     call 01a6bh                               ; e8 f5 95
     12372    call 01a6bh                               ; e8 d7 95
    1234712373    add sp, strict byte 0000ah                ; 83 c4 0a
    12348     jmp near 0877bh                           ; e9 ff 02
     12374    jmp near 08799h                           ; e9 ff 02
    1234912375    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1235012376    cmp AL, strict byte 001h                  ; 3c 01
    12351     jc short 0848fh                           ; 72 0c
    12352     jbe short 08497h                          ; 76 12
     12377    jc short 084adh                           ; 72 0c
     12378    jbe short 084b5h                          ; 76 12
    1235312379    cmp AL, strict byte 003h                  ; 3c 03
    12354     je short 0849fh                           ; 74 16
     12380    je short 084bdh                           ; 74 16
    1235512381    cmp AL, strict byte 002h                  ; 3c 02
    12356     je short 0849bh                           ; 74 0e
    12357     jmp short 084e8h                          ; eb 59
     12382    je short 084b9h                           ; 74 0e
     12383    jmp short 08506h                          ; eb 59
    1235812384    test al, al                               ; 84 c0
    12359     jne short 084e8h                          ; 75 55
     12385    jne short 08506h                          ; 75 55
    1236012386    mov BL, strict byte 090h                  ; b3 90
    12361     jmp short 084a1h                          ; eb 0a
     12387    jmp short 084bfh                          ; eb 0a
    1236212388    mov BL, strict byte 098h                  ; b3 98
    12363     jmp short 084a1h                          ; eb 06
     12389    jmp short 084bfh                          ; eb 06
    1236412390    mov BL, strict byte 0a0h                  ; b3 a0
    12365     jmp short 084a1h                          ; eb 02
     12391    jmp short 084bfh                          ; eb 02
    1236612392    mov BL, strict byte 0a8h                  ; b3 a8
    1236712393    mov al, bl                                ; 88 d8
     
    1236912395    movzx cx, al                              ; 0f b6 c8
    1237012396    mov ax, cx                                ; 89 c8
    12371     call 017a5h                               ; e8 f8 92
     12397    call 017a5h                               ; e8 da 92
    1237212398    test al, al                               ; 84 c0
    12373     je short 084e8h                           ; 74 37
     12399    je short 08506h                           ; 74 37
    1237412400    mov al, bl                                ; 88 d8
    1237512401    db  0feh, 0c0h
    1237612402    ; inc al                                    ; fe c0
    1237712403    xor ah, ah                                ; 30 e4
    12378     call 017a5h                               ; e8 eb 92
     12404    call 017a5h                               ; e8 cd 92
    1237912405    movzx dx, al                              ; 0f b6 d0
    1238012406    sal dx, 008h                              ; c1 e2 08
    1238112407    movzx ax, bl                              ; 0f b6 c3
    12382     call 017a5h                               ; e8 df 92
     12408    call 017a5h                               ; e8 c1 92
    1238312409    xor ah, ah                                ; 30 e4
    1238412410    add ax, dx                                ; 01 d0
     
    1238812414    add AL, strict byte 002h                  ; 04 02
    1238912415    xor ah, ah                                ; 30 e4
    12390     call 017a5h                               ; e8 cf 92
     12416    call 017a5h                               ; e8 b1 92
    1239112417    xor ah, ah                                ; 30 e4
    1239212418    mov word [bp-034h], ax                    ; 89 46 cc
    1239312419    mov ax, cx                                ; 89 c8
    12394     call 017a5h                               ; e8 c5 92
     12420    call 017a5h                               ; e8 a7 92
    1239512421    xor ah, ah                                ; 30 e4
    1239612422    mov word [bp-032h], ax                    ; 89 46 ce
    12397     jmp near 085d1h                           ; e9 e9 00
     12423    jmp near 085efh                           ; e9 e9 00
    1239812424    mov ax, word [bp-010h]                    ; 8b 46 f0
    1239912425    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1240112427    mov dx, word [bp-016h]                    ; 8b 56 ea
    1240212428    mov si, strict word 0000ch                ; be 0c 00
    12403     call 0a0f0h                               ; e8 f6 1b
     12429    call 0a110h                               ; e8 f8 1b
    1240412430    mov word [bp-018h], ax                    ; 89 46 e8
    1240512431    mov word [bp-014h], bx                    ; 89 5e ec
     
    1240812434    mov ax, word [bp-010h]                    ; 8b 46 f0
    1240912435    test ax, ax                               ; 85 c0
    12410     jnbe short 08523h                         ; 77 16
    12411     jne near 08596h                           ; 0f 85 85 00
     12436    jnbe short 08541h                         ; 77 16
     12437    jne near 085b4h                           ; 0f 85 85 00
    1241212438    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12413     jnbe short 08523h                         ; 77 0c
    12414     jne near 08596h                           ; 0f 85 7b 00
     12439    jnbe short 08541h                         ; 77 0c
     12440    jne near 085b4h                           ; 0f 85 7b 00
    1241512441    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12416     jnbe short 08523h                         ; 77 02
    12417     jne short 08596h                          ; 75 73
     12442    jnbe short 08541h                         ; 77 02
     12443    jne short 085b4h                          ; 75 73
    1241812444    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
    1241912445    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1242112447    mov dx, word [bp-016h]                    ; 8b 56 ea
    1242212448    mov si, strict word 00006h                ; be 06 00
    12423     call 0a0f0h                               ; e8 b6 1b
     12449    call 0a110h                               ; e8 b8 1b
    1242412450    mov si, word [bp-020h]                    ; 8b 76 e0
    1242512451    add si, dx                                ; 01 d6
     
    1243912465    mov dx, si                                ; 89 f2
    1244012466    mov si, strict word 00008h                ; be 08 00
    12441     call 0a0f0h                               ; e8 86 1b
     12467    call 0a110h                               ; e8 88 1b
    1244212468    mov word [bp-022h], bx                    ; 89 5e de
    1244312469    mov word [bp-02ch], cx                    ; 89 4e d4
     
    1244812474    mov dx, word [bp-02ah]                    ; 8b 56 d6
    1244912475    mov si, strict word 00010h                ; be 10 00
    12450     call 0a0f0h                               ; e8 6b 1b
     12476    call 0a110h                               ; e8 6d 1b
    1245112477    mov si, word [bp-01ah]                    ; 8b 76 e6
    1245212478    add si, dx                                ; 01 d6
     
    1245512481    mov ax, word [bp-022h]                    ; 8b 46 de
    1245612482    adc ax, bx                                ; 11 d8
    12457     jmp short 085d1h                          ; eb 3b
     12483    jmp short 085efh                          ; eb 3b
    1245812484    test ax, ax                               ; 85 c0
    12459     jnbe short 085ach                         ; 77 12
    12460     jne short 085b6h                          ; 75 1a
     12485    jnbe short 085cah                         ; 77 12
     12486    jne short 085d4h                          ; 75 1a
    1246112487    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12462     jnbe short 085ach                         ; 77 0a
    12463     jne short 085b6h                          ; 75 12
     12488    jnbe short 085cah                         ; 77 0a
     12489    jne short 085d4h                          ; 75 12
    1246412490    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12465     jnbe short 085ach                         ; 77 02
    12466     jne short 085b6h                          ; 75 0a
     12491    jnbe short 085cah                         ; 77 02
     12492    jne short 085d4h                          ; 75 0a
    1246712493    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
    12468     jmp short 085cdh                          ; eb 17
     12494    jmp short 085ebh                          ; eb 17
    1246912495    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
    1247012496    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1247212498    mov dx, word [bp-016h]                    ; 8b 56 ea
    1247312499    mov si, strict word 0000bh                ; be 0b 00
    12474     call 0a0f0h                               ; e8 23 1b
     12500    call 0a110h                               ; e8 25 1b
    1247512501    mov si, dx                                ; 89 d6
    1247612502    mov dx, cx                                ; 89 ca
     
    1250512531    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1250612532    test dx, dx                               ; 85 d2
    12507     jne short 0863eh                          ; 75 06
     12533    jne short 0865ch                          ; 75 06
    1250812534    cmp si, 00400h                            ; 81 fe 00 04
    12509     jbe short 0864ch                          ; 76 0e
     12535    jbe short 0866ah                          ; 76 0e
    1251012536    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1251112537    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12512     jmp short 08654h                          ; eb 08
     12538    jmp short 08672h                          ; eb 08
    1251312539    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1251412540    mov word [es:bx+032h], si                 ; 26 89 77 32
    12515     mov bx, 00db6h                            ; bb b6 0d
     12541    mov bx, 00db2h                            ; bb b2 0d
    1251612542    mov cx, ds                                ; 8c d9
    1251712543    mov ax, strict word 00004h                ; b8 04 00
    12518     call 01a2ah                               ; e8 cb 93
     12544    call 01a2ah                               ; e8 ad 93
    1251912545    push word [bp-010h]                       ; ff 76 f0
    1252012546    push word [bp-030h]                       ; ff 76 d0
     
    1252912555    push 00c2ah                               ; 68 2a 0c
    1253012556    push strict byte 00004h                   ; 6a 04
    12531     call 01a6bh                               ; e8 ea 93
     12557    call 01a6bh                               ; e8 cc 93
    1253212558    add sp, strict byte 00018h                ; 83 c4 18
    1253312559    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     
    1255412580    mov dx, strict word 00075h                ; ba 75 00
    1255512581    mov ax, strict word 00040h                ; b8 40 00
    12556     call 01749h                               ; e8 78 90
     12582    call 01749h                               ; e8 5a 90
    1255712583    db  0feh, 0c0h
    1255812584    ; inc al                                    ; fe c0
     
    1256012586    mov dx, strict word 00075h                ; ba 75 00
    1256112587    mov ax, strict word 00040h                ; b8 40 00
    12562     call 01757h                               ; e8 78 90
     12588    call 01757h                               ; e8 5a 90
    1256312589    inc byte [bp-00ch]                        ; fe 46 f4
    12564     jmp near 08770h                           ; e9 8b 00
    12565     mov bx, 00db6h                            ; bb b6 0d
     12590    jmp near 0878eh                           ; e9 8b 00
     12591    mov bx, 00db2h                            ; bb b2 0d
    1256612592    mov cx, ds                                ; 8c d9
    1256712593    mov ax, strict word 00004h                ; b8 04 00
    12568     call 01a2ah                               ; e8 3a 93
     12594    call 01a2ah                               ; e8 1c 93
    1256912595    push word [bp-01eh]                       ; ff 76 e2
    1257012596    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1257212598    push 00c58h                               ; 68 58 0c
    1257312599    push strict byte 00004h                   ; 6a 04
    12574     call 01a6bh                               ; e8 6b 93
     12600    call 01a6bh                               ; e8 4d 93
    1257512601    add sp, strict byte 00008h                ; 83 c4 08
    1257612602    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1261312639    inc word [bp-01eh]                        ; ff 46 e2
    1261412640    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
    12615     jnl short 087f8h                          ; 7d 74
     12641    jnl short 08816h                          ; 7d 74
    1261612642    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1261712643    xor al, al                                ; 30 c0
     
    1263012656    lea bx, [bp-046h]                         ; 8d 5e ba
    1263112657    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12632     call 07ebah                               ; e8 05 f7
     12658    call 07ed8h                               ; e8 05 f7
    1263312659    test al, al                               ; 84 c0
    12634     je short 087c7h                           ; 74 0e
     12660    je short 087e5h                           ; 74 0e
    1263512661    push 00ba4h                               ; 68 a4 0b
    1263612662    push 00bc4h                               ; 68 c4 0b
    1263712663    push strict byte 00007h                   ; 6a 07
    12638     call 01a6bh                               ; e8 a7 92
     12664    call 01a6bh                               ; e8 89 92
    1263912665    add sp, strict byte 00006h                ; 83 c4 06
    1264012666    mov es, [bp-02eh]                         ; 8e 46 d2
     
    1264212668    mov byte [bp-00ch], al                    ; 88 46 f4
    1264312669    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12644     jne short 087e2h                          ; 75 09
     12670    jne short 08800h                          ; 75 09
    1264512671    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12646     je near 083a4h                            ; 0f 84 c2 fb
     12672    je near 083c2h                            ; 0f 84 c2 fb
    1264712673    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12648     jne short 08770h                          ; 75 87
     12674    jne short 0878eh                          ; 75 87
    1264912675    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1265012676    and AL, strict byte 01fh                  ; 24 1f
    1265112677    cmp AL, strict byte 005h                  ; 3c 05
    12652     je near 086e5h                            ; 0f 84 f0 fe
    12653     jmp near 08770h                           ; e9 78 ff
     12678    je near 08703h                            ; 0f 84 f0 fe
     12679    jmp near 0878eh                           ; e9 78 ff
    1265412680    lea sp, [bp-00ah]                         ; 8d 66 f6
    1265512681    pop di                                    ; 5f
     
    1266012686    pop bp                                    ; 5d
    1266112687    retn                                      ; c3
    12662 scsi_pci_init_:                              ; 0xf8802 LB 0x2d
     12688scsi_pci_init_:                              ; 0xf8820 LB 0x2d
    1266312689    push bp                                   ; 55
    1266412690    mov bp, sp                                ; 89 e5
     
    1266612692    push cx                                   ; 51
    1266712693    push si                                   ; 56
    12668     call 09ed3h                               ; e8 c8 16
     12694    call 09ef1h                               ; e8 c8 16
    1266912695    mov dx, ax                                ; 89 c2
    1267012696    cmp ax, strict word 0ffffh                ; 3d ff ff
    12671     je short 08827h                           ; 74 15
     12697    je short 08845h                           ; 74 15
    1267212698    movzx si, dl                              ; 0f b6 f2
    1267312699    mov ax, dx                                ; 89 d0
     
    1267712703    mov bx, strict word 00004h                ; bb 04 00
    1267812704    mov dx, si                                ; 89 f2
    12679     call 09f65h                               ; e8 3e 17
     12705    call 09f83h                               ; e8 3e 17
    1268012706    lea sp, [bp-006h]                         ; 8d 66 fa
    1268112707    pop si                                    ; 5e
     
    1268412710    pop bp                                    ; 5d
    1268512711    retn                                      ; c3
    12686 _scsi_init:                                  ; 0xf882f LB 0x81
     12712_scsi_init:                                  ; 0xf884d LB 0x81
    1268712713    push bp                                   ; 55
    1268812714    mov bp, sp                                ; 89 e5
    1268912715    mov dx, strict word 0000eh                ; ba 0e 00
    1269012716    mov ax, strict word 00040h                ; b8 40 00
    12691     call 01765h                               ; e8 2a 8f
     12717    call 01765h                               ; e8 0c 8f
    1269212718    mov bx, 00122h                            ; bb 22 01
    1269312719    mov es, ax                                ; 8e c0
     
    1270012726    ; sub ah, ah                                ; 2a e4
    1270112727    cmp AL, strict byte 055h                  ; 3c 55
    12702     jne short 08868h                          ; 75 15
     12728    jne short 08886h                          ; 75 15
    1270312729    xor al, al                                ; 30 c0
    1270412730    mov dx, 00433h                            ; ba 33 04
    1270512731    out DX, AL                                ; ee
    1270612732    mov ax, 00430h                            ; b8 30 04
    12707     call 08380h                               ; e8 21 fb
     12733    call 0839eh                               ; e8 21 fb
    1270812734    mov dx, 01040h                            ; ba 40 10
    1270912735    mov ax, 0104bh                            ; b8 4b 10
    12710     call 08802h                               ; e8 9a ff
     12736    call 08820h                               ; e8 9a ff
    1271112737    mov AL, strict byte 055h                  ; b0 55
    1271212738    mov dx, 00436h                            ; ba 36 04
     
    1271612742    ; sub ah, ah                                ; 2a e4
    1271712743    cmp AL, strict byte 055h                  ; 3c 55
    12718     jne short 0888ah                          ; 75 15
     12744    jne short 088a8h                          ; 75 15
    1271912745    xor al, al                                ; 30 c0
    1272012746    mov dx, 00437h                            ; ba 37 04
    1272112747    out DX, AL                                ; ee
    1272212748    mov ax, 00434h                            ; b8 34 04
    12723     call 08380h                               ; e8 ff fa
     12749    call 0839eh                               ; e8 ff fa
    1272412750    mov dx, strict word 00030h                ; ba 30 00
    1272512751    mov ax, 01000h                            ; b8 00 10
    12726     call 08802h                               ; e8 78 ff
     12752    call 08820h                               ; e8 78 ff
    1272712753    mov AL, strict byte 055h                  ; b0 55
    1272812754    mov dx, 0043ah                            ; ba 3a 04
     
    1273212758    ; sub ah, ah                                ; 2a e4
    1273312759    cmp AL, strict byte 055h                  ; 3c 55
    12734     jne short 088ach                          ; 75 15
     12760    jne short 088cah                          ; 75 15
    1273512761    xor al, al                                ; 30 c0
    1273612762    mov dx, 0043bh                            ; ba 3b 04
    1273712763    out DX, AL                                ; ee
    1273812764    mov ax, 00438h                            ; b8 38 04
    12739     call 08380h                               ; e8 dd fa
     12765    call 0839eh                               ; e8 dd fa
    1274012766    mov dx, strict word 00054h                ; ba 54 00
    1274112767    mov ax, 01000h                            ; b8 00 10
    12742     call 08802h                               ; e8 56 ff
     12768    call 08820h                               ; e8 56 ff
    1274312769    mov sp, bp                                ; 89 ec
    1274412770    pop bp                                    ; 5d
    1274512771    retn                                      ; c3
    12746 ahci_ctrl_extract_bits_:                     ; 0xf88b0 LB 0x1b
     12772ahci_ctrl_extract_bits_:                     ; 0xf88ce LB 0x1b
    1274712773    push si                                   ; 56
    1274812774    push bp                                   ; 55
     
    1275212778    and dx, cx                                ; 21 ca
    1275312779    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12754     jcxz 088c6h                               ; e3 06
     12780    jcxz 088e4h                               ; e3 06
    1275512781    shr dx, 1                                 ; d1 ea
    1275612782    rcr ax, 1                                 ; d1 d8
    12757     loop 088c0h                               ; e2 fa
     12783    loop 088deh                               ; e2 fa
    1275812784    pop bp                                    ; 5d
    1275912785    pop si                                    ; 5e
    1276012786    retn 00002h                               ; c2 02 00
    12761 ahci_addr_to_phys_:                          ; 0xf88cb LB 0x1e
     12787ahci_addr_to_phys_:                          ; 0xf88e9 LB 0x1e
    1276212788    push bx                                   ; 53
    1276312789    push cx                                   ; 51
     
    1277012796    sal ax, 1                                 ; d1 e0
    1277112797    rcl dx, 1                                 ; d1 d2
    12772     loop 088d9h                               ; e2 fa
     12798    loop 088f7h                               ; e2 fa
    1277312799    xor cx, cx                                ; 31 c9
    1277412800    add ax, bx                                ; 01 d8
     
    1277812804    pop bx                                    ; 5b
    1277912805    retn                                      ; c3
    12780 ahci_port_cmd_sync_:                         ; 0xf88e9 LB 0x14b
     12806ahci_port_cmd_sync_:                         ; 0xf8907 LB 0x14b
    1278112807    push bp                                   ; 55
    1278212808    mov bp, sp                                ; 89 e5
     
    1279312819    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1279412820    cmp ah, 0ffh                              ; 80 fc ff
    12795     je near 08a2ch                            ; 0f 84 20 01
     12821    je near 08a4ah                            ; 0f 84 20 01
    1279612822    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
    1279712823    xor di, di                                ; 31 ff
     
    1280512831    lea ax, [si+00080h]                       ; 8d 84 80 00
    1280612832    mov dx, cx                                ; 89 ca
    12807     call 088cbh                               ; e8 96 ff
     12833    call 088e9h                               ; e8 96 ff
    1280812834    mov es, cx                                ; 8e c1
    1280912835    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1286812894    xchg dx, ax                               ; 92
    1286912895    test dh, 040h                             ; f6 c6 40
    12870     jne short 089c2h                          ; 75 04
     12896    jne short 089e0h                          ; 75 04
    1287112897    test AL, strict byte 001h                 ; a8 01
    12872     je short 089c6h                           ; 74 04
     12898    je short 089e4h                           ; 74 04
    1287312899    mov AL, strict byte 001h                  ; b0 01
    12874     jmp short 089c8h                          ; eb 02
     12900    jmp short 089e6h                          ; eb 02
    1287512901    xor al, al                                ; 30 c0
    1287612902    test al, al                               ; 84 c0
    12877     je short 08996h                           ; 74 ca
     12903    je short 089b4h                           ; 74 ca
    1287812904    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1287912905    sal di, 007h                              ; c1 e7 07
     
    1292912955    pop bp                                    ; 5d
    1293012956    retn                                      ; c3
    12931 ahci_cmd_data_:                              ; 0xf8a34 LB 0x262
     12957ahci_cmd_data_:                              ; 0xf8a52 LB 0x262
    1293212958    push bp                                   ; 55
    1293312959    mov bp, sp                                ; 89 e5
     
    1295412980    mov ax, 00080h                            ; b8 80 00
    1295512981    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12956     call 0a110h                               ; e8 9e 16
     12982    call 0a130h                               ; e8 a0 16
    1295712983    mov es, [bp-00ah]                         ; 8e 46 f6
    1295812984    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1297212998    mov dx, word [es:si]                      ; 26 8b 14
    1297312999    mov si, strict word 00008h                ; be 08 00
    12974     call 0a0f0h                               ; e8 3a 16
     13000    call 0a110h                               ; e8 3c 16
    1297513001    mov es, [bp-00ah]                         ; 8e 46 f6
    1297613002    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1298313009    mov dx, word [es:si]                      ; 26 8b 14
    1298413010    mov si, strict word 00010h                ; be 10 00
    12985     call 0a0f0h                               ; e8 14 16
     13011    call 0a110h                               ; e8 16 16
    1298613012    mov es, [bp-00ah]                         ; 8e 46 f6
    1298713013    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1299513021    mov dx, word [es:si]                      ; 26 8b 14
    1299613022    mov si, strict word 00018h                ; be 18 00
    12997     call 0a0f0h                               ; e8 e8 15
     13023    call 0a110h                               ; e8 ea 15
    1299813024    mov es, [bp-00ah]                         ; 8e 46 f6
    1299913025    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1300613032    mov dx, word [es:si]                      ; 26 8b 14
    1300713033    mov si, strict word 00020h                ; be 20 00
    13008     call 0a0f0h                               ; e8 c2 15
     13034    call 0a110h                               ; e8 c4 15
    1300913035    mov es, [bp-00ah]                         ; 8e 46 f6
    1301013036    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1301713043    mov dx, word [es:si]                      ; 26 8b 14
    1301813044    mov si, strict word 00028h                ; be 28 00
    13019     call 0a0f0h                               ; e8 9c 15
     13045    call 0a110h                               ; e8 9e 15
    1302013046    mov es, [bp-00ah]                         ; 8e 46 f6
    1302113047    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1303113057    mov bx, word [bp-010h]                    ; 8b 5e f0
    1303213058    xor cx, cx                                ; 31 c9
    13033     call 0a070h                               ; e8 e7 14
     13059    call 0a090h                               ; e8 e9 14
    1303413060    push dx                                   ; 52
    1303513061    push ax                                   ; 50
     
    1304113067    mov ax, 0026ah                            ; b8 6a 02
    1304213068    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13043     call 09fbch                               ; e8 17 14
     13069    call 09fdah                               ; e8 17 14
    1304413070    mov es, [bp-00ah]                         ; 8e 46 f6
    1304513071    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     
    1306213088    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1306313089    test ax, ax                               ; 85 c0
    13064     je short 08c33h                           ; 74 39
     13090    je short 08c51h                           ; 74 39
    1306513091    dec ax                                    ; 48
    1306613092    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1307813104    mov al, byte [bp-008h]                    ; 8a 46 f8
    1307913105    cmp AL, strict byte 035h                  ; 3c 35
    13080     jne short 08c40h                          ; 75 06
     13106    jne short 08c5eh                          ; 75 06
    1308113107    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13082     jmp short 08c57h                          ; eb 17
     13108    jmp short 08c75h                          ; eb 17
    1308313109    cmp AL, strict byte 0a0h                  ; 3c a0
    13084     jne short 08c53h                          ; 75 0f
     13110    jne short 08c71h                          ; 75 0f
    1308513111    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1308613112    les bx, [bp-00eh]                         ; c4 5e f2
    1308713113    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13088     jmp short 08c57h                          ; eb 04
     13114    jmp short 08c75h                          ; eb 04
    1308913115    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1309013116    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1309213118    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1309313119    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13094     call 088e9h                               ; e8 81 fc
     13120    call 08907h                               ; e8 81 fc
    1309513121    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1309613122    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1309913125    add ax, 0026ah                            ; 05 6a 02
    1310013126    mov dx, cx                                ; 89 ca
    13101     call 0a035h                               ; e8 b8 13
     13127    call 0a053h                               ; e8 b8 13
    1310213128    mov es, cx                                ; 8e c1
    1310313129    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1310413130    test al, al                               ; 84 c0
    13105     je short 08c8ch                           ; 74 05
     13131    je short 08caah                           ; 74 05
    1310613132    mov ax, strict word 00004h                ; b8 04 00
    13107     jmp short 08c8eh                          ; eb 02
     13133    jmp short 08cach                          ; eb 02
    1310813134    xor ah, ah                                ; 30 e4
    1310913135    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1311313139    pop bp                                    ; 5d
    1311413140    retn                                      ; c3
    13115 ahci_port_deinit_current_:                   ; 0xf8c96 LB 0x17f
     13141ahci_port_deinit_current_:                   ; 0xf8cb4 LB 0x17f
    1311613142    push bp                                   ; 55
    1311713143    mov bp, sp                                ; 89 e5
     
    1312813154    mov byte [bp-00ah], al                    ; 88 46 f6
    1312913155    cmp AL, strict byte 0ffh                  ; 3c ff
    13130     je near 08e0ch                            ; 0f 84 52 01
     13156    je near 08e2ah                            ; 0f 84 52 01
    1313113157    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1313213158    sal ax, 007h                              ; c1 e0 07
     
    1317113197    xchg dx, ax                               ; 92
    1317213198    test ax, 0c011h                           ; a9 11 c0
    13173     je short 08d1ah                           ; 74 04
     13199    je short 08d38h                           ; 74 04
    1317413200    mov AL, strict byte 001h                  ; b0 01
    13175     jmp short 08d1ch                          ; eb 02
     13201    jmp short 08d3ah                          ; eb 02
    1317613202    xor al, al                                ; 30 c0
    1317713203    cmp AL, strict byte 001h                  ; 3c 01
    13178     je short 08ceeh                           ; 74 ce
     13204    je short 08d0ch                           ; 74 ce
    1317913205    mov cx, strict word 00020h                ; b9 20 00
    1318013206    xor bx, bx                                ; 31 db
    1318113207    mov ax, di                                ; 89 f8
    1318213208    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13183     call 0a110h                               ; e8 e3 13
     13209    call 0a130h                               ; e8 e5 13
    1318413210    lea ax, [di+00080h]                       ; 8d 85 80 00
    1318513211    mov cx, strict word 00040h                ; b9 40 00
    1318613212    xor bx, bx                                ; 31 db
    1318713213    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13188     call 0a110h                               ; e8 d4 13
     13214    call 0a130h                               ; e8 d6 13
    1318913215    lea ax, [di+00200h]                       ; 8d 85 00 02
    1319013216    mov cx, strict word 00060h                ; b9 60 00
    1319113217    xor bx, bx                                ; 31 db
    1319213218    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13193     call 0a110h                               ; e8 c5 13
     13219    call 0a130h                               ; e8 c7 13
    1319413220    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1319513221    sal ax, 007h                              ; c1 e0 07
     
    1329513321    pop bp                                    ; 5d
    1329613322    retn                                      ; c3
    13297 ahci_port_init_:                             ; 0xf8e15 LB 0x24a
     13323ahci_port_init_:                             ; 0xf8e33 LB 0x24a
    1329813324    push bp                                   ; 55
    1329913325    mov bp, sp                                ; 89 e5
     
    1330513331    mov word [bp-00ah], dx                    ; 89 56 f6
    1330613332    mov byte [bp-008h], bl                    ; 88 5e f8
    13307     call 08c96h                               ; e8 6d fe
     13333    call 08cb4h                               ; e8 6d fe
    1330813334    movzx ax, bl                              ; 0f b6 c3
    1330913335    sal ax, 007h                              ; c1 e0 07
     
    1335213378    xchg dx, ax                               ; 92
    1335313379    test ax, 0c011h                           ; a9 11 c0
    13354     je short 08e98h                           ; 74 04
     13380    je short 08eb6h                           ; 74 04
    1335513381    mov AL, strict byte 001h                  ; b0 01
    13356     jmp short 08e9ah                          ; eb 02
     13382    jmp short 08eb8h                          ; eb 02
    1335713383    xor al, al                                ; 30 c0
    1335813384    cmp AL, strict byte 001h                  ; 3c 01
    13359     je short 08e64h                           ; 74 c6
     13385    je short 08e82h                           ; 74 c6
    1336013386    mov cx, strict word 00020h                ; b9 20 00
    1336113387    xor bx, bx                                ; 31 db
    1336213388    mov ax, si                                ; 89 f0
    1336313389    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13364     call 0a110h                               ; e8 65 12
     13390    call 0a130h                               ; e8 67 12
    1336513391    lea ax, [si+00080h]                       ; 8d 84 80 00
    1336613392    mov cx, strict word 00040h                ; b9 40 00
    1336713393    xor bx, bx                                ; 31 db
    1336813394    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13369     call 0a110h                               ; e8 56 12
     13395    call 0a130h                               ; e8 58 12
    1337013396    lea di, [si+00200h]                       ; 8d bc 00 02
    1337113397    mov cx, strict word 00060h                ; b9 60 00
     
    1337313399    mov ax, di                                ; 89 f8
    1337413400    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13375     call 0a110h                               ; e8 45 12
     13401    call 0a130h                               ; e8 47 12
    1337613402    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1337713403    sal bx, 007h                              ; c1 e3 07
     
    1339013416    mov ax, di                                ; 89 f8
    1339113417    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13392     call 088cbh                               ; e8 d3 f9
     13418    call 088e9h                               ; e8 d3 f9
    1339313419    mov es, [bp-00ah]                         ; 8e 46 f6
    1339413420    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1343513461    mov ax, si                                ; 89 f0
    1343613462    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13437     call 088cbh                               ; e8 67 f9
     13463    call 088e9h                               ; e8 67 f9
    1343813464    mov es, [bp-00ah]                         ; 8e 46 f6
    1343913465    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1354013566    pop bp                                    ; 5d
    1354113567    retn                                      ; c3
    13542 @ahci_read_sectors:                          ; 0xf905f LB 0xa6
     13568@ahci_read_sectors:                          ; 0xf907d LB 0xa6
    1354313569    push bp                                   ; 55
    1354413570    mov bp, sp                                ; 89 e5
     
    1355013576    sub di, strict byte 0000ch                ; 83 ef 0c
    1355113577    cmp di, strict byte 00004h                ; 83 ff 04
    13552     jbe short 09084h                          ; 76 0f
     13578    jbe short 090a2h                          ; 76 0f
    1355313579    push di                                   ; 57
    1355413580    push 00c74h                               ; 68 74 0c
    1355513581    push 00c86h                               ; 68 86 0c
    1355613582    push strict byte 00007h                   ; 6a 07
    13557     call 01a6bh                               ; e8 ea 89
     13583    call 01a6bh                               ; e8 cc 89
    1355813584    add sp, strict byte 00008h                ; 83 c4 08
    1355913585    xor bx, bx                                ; 31 db
     
    1356913595    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1357013596    xor ax, ax                                ; 31 c0
    13571     call 08e15h                               ; e8 65 fd
     13597    call 08e33h                               ; e8 65 fd
    1357213598    mov bx, strict word 00025h                ; bb 25 00
    1357313599    mov ax, si                                ; 89 f0
    1357413600    mov dx, word [bp+006h]                    ; 8b 56 06
    13575     call 08a34h                               ; e8 79 f9
     13601    call 08a52h                               ; e8 79 f9
    1357613602    mov word [bp-006h], ax                    ; 89 46 fa
    1357713603    mov es, [bp+006h]                         ; 8e 46 06
     
    1360213628    pop bp                                    ; 5d
    1360313629    retn 00004h                               ; c2 04 00
    13604 @ahci_write_sectors:                         ; 0xf9105 LB 0x84
     13630@ahci_write_sectors:                         ; 0xf9123 LB 0x84
    1360513631    push bp                                   ; 55
    1360613632    mov bp, sp                                ; 89 e5
     
    1361313639    sub dx, strict byte 0000ch                ; 83 ea 0c
    1361413640    cmp dx, strict byte 00004h                ; 83 fa 04
    13615     jbe short 0912eh                          ; 76 0f
     13641    jbe short 0914ch                          ; 76 0f
    1361613642    push dx                                   ; 52
    1361713643    push 00ca5h                               ; 68 a5 0c
    1361813644    push 00c86h                               ; 68 86 0c
    1361913645    push strict byte 00007h                   ; 6a 07
    13620     call 01a6bh                               ; e8 40 89
     13646    call 01a6bh                               ; e8 22 89
    1362113647    add sp, strict byte 00008h                ; 83 c4 08
    1362213648    xor bx, bx                                ; 31 db
     
    1363213658    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1363313659    xor ax, ax                                ; 31 c0
    13634     call 08e15h                               ; e8 bd fc
     13660    call 08e33h                               ; e8 bd fc
    1363513661    mov bx, strict word 00035h                ; bb 35 00
    1363613662    mov ax, si                                ; 89 f0
    1363713663    mov dx, cx                                ; 89 ca
    13638     call 08a34h                               ; e8 d2 f8
     13664    call 08a52h                               ; e8 d2 f8
    1363913665    mov dx, ax                                ; 89 c2
    1364013666    mov es, cx                                ; 8e c1
     
    1365113677    pop bp                                    ; 5d
    1365213678    retn 00004h                               ; c2 04 00
    13653 ahci_cmd_packet_:                            ; 0xf9189 LB 0x183
     13679ahci_cmd_packet_:                            ; 0xf91a7 LB 0x183
    1365413680    push bp                                   ; 55
    1365513681    mov bp, sp                                ; 89 e5
     
    1366313689    mov dx, strict word 0000eh                ; ba 0e 00
    1366413690    mov ax, strict word 00040h                ; b8 40 00
    13665     call 01765h                               ; e8 c1 85
     13691    call 01765h                               ; e8 a3 85
    1366613692    mov si, 00122h                            ; be 22 01
    1366713693    mov word [bp-008h], ax                    ; 89 46 f8
    1366813694    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13669     jne short 091cfh                          ; 75 1f
    13670     mov bx, 00db6h                            ; bb b6 0d
     13695    jne short 091edh                          ; 75 1f
     13696    mov bx, 00db2h                            ; bb b2 0d
    1367113697    mov cx, ds                                ; 8c d9
    1367213698    mov ax, strict word 00004h                ; b8 04 00
    13673     call 01a2ah                               ; e8 6f 88
     13699    call 01a2ah                               ; e8 51 88
    1367413700    push 00cb8h                               ; 68 b8 0c
    1367513701    push 00cc8h                               ; 68 c8 0c
    1367613702    push strict byte 00004h                   ; 6a 04
    13677     call 01a6bh                               ; e8 a5 88
     13703    call 01a6bh                               ; e8 87 88
    1367813704    add sp, strict byte 00006h                ; 83 c4 06
    1367913705    mov ax, strict word 00001h                ; b8 01 00
    13680     jmp near 09303h                           ; e9 34 01
     13706    jmp near 09321h                           ; e9 34 01
    1368113707    test byte [bp+004h], 001h                 ; f6 46 04 01
    13682     jne short 091c9h                          ; 75 f4
     13708    jne short 091e7h                          ; 75 f4
    1368313709    mov ax, word [bp+006h]                    ; 8b 46 06
    1368413710    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1368613712    sal ax, 1                                 ; d1 e0
    1368713713    rcl dx, 1                                 ; d1 d2
    13688     loop 091deh                               ; e2 fa
     13714    loop 091fch                               ; e2 fa
    1368913715    mov es, [bp-008h]                         ; 8e 46 f8
    1369013716    mov word [es:si], ax                      ; 26 89 04
     
    1370013726    mov dx, word [bp+008h]                    ; 8b 56 08
    1370113727    xor cx, cx                                ; 31 c9
    13702     call 0a0b0h                               ; e8 9c 0e
     13728    call 0a0d0h                               ; e8 9e 0e
    1370313729    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1370413730    xor di, di                                ; 31 ff
     
    1371713743    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1371813744    xor ax, ax                                ; 31 c0
    13719     call 08e15h                               ; e8 c5 fb
     13745    call 08e33h                               ; e8 c5 fb
    1372013746    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1372113747    push ax                                   ; 50
     
    1372413750    mov ax, 000c0h                            ; b8 c0 00
    1372513751    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13726     call 0a120h                               ; e8 bc 0e
     13752    call 0a140h                               ; e8 be 0e
    1372713753    mov es, [bp-008h]                         ; 8e 46 f8
    1372813754    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1373113757    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1373213758    test ax, ax                               ; 85 c0
    13733     je short 092a2h                           ; 74 27
     13759    je short 092c0h                           ; 74 27
    1373413760    dec ax                                    ; 48
    1373513761    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1374413770    mov ax, si                                ; 89 f0
    1374513771    mov dx, word [bp-008h]                    ; 8b 56 f8
    13746     call 08a34h                               ; e8 87 f7
     13772    call 08a52h                               ; e8 87 f7
    1374713773    les bx, [bp-00eh]                         ; c4 5e f2
    1374813774    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1377113797    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1377213798    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13773     jne short 09301h                          ; 75 05
     13799    jne short 0931fh                          ; 75 05
    1377413800    mov ax, strict word 00004h                ; b8 04 00
    13775     jmp short 09303h                          ; eb 02
     13801    jmp short 09321h                          ; eb 02
    1377613802    xor ax, ax                                ; 31 c0
    1377713803    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1378013806    pop bp                                    ; 5d
    1378113807    retn 0000ch                               ; c2 0c 00
    13782 wait_ticks_device_init_:                     ; 0xf930c LB 0x5
     13808wait_ticks_device_init_:                     ; 0xf932a LB 0x5
    1378313809    push bp                                   ; 55
    1378413810    mov bp, sp                                ; 89 e5
    1378513811    pop bp                                    ; 5d
    1378613812    retn                                      ; c3
    13787 ahci_port_detect_device_:                    ; 0xf9311 LB 0x4b8
     13813ahci_port_detect_device_:                    ; 0xf932f LB 0x4b8
    1378813814    push bp                                   ; 55
    1378913815    mov bp, sp                                ; 89 e5
     
    1379813824    movzx di, bl                              ; 0f b6 fb
    1379913825    mov bx, di                                ; 89 fb
    13800     call 08e15h                               ; e8 e5 fa
     13826    call 08e33h                               ; e8 e5 fa
    1380113827    mov dx, strict word 0000eh                ; ba 0e 00
    1380213828    mov ax, strict word 00040h                ; b8 40 00
    13803     call 01765h                               ; e8 2c 84
     13829    call 01765h                               ; e8 0e 84
    1380413830    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
    1380513831    mov word [bp-010h], ax                    ; 89 46 f0
     
    1386013886    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1386113887    cmp ax, word [bp-01ch]                    ; 3b 46 e4
    13862     jc short 093e2h                           ; 72 11
     13888    jc short 09400h                           ; 72 11
    1386313889    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1386413890    cmp ax, word [bp-01ch]                    ; 3b 46 e4
    13865     jne short 0942dh                          ; 75 53
     13891    jne short 0944bh                          ; 75 53
    1386613892    mov ax, word [es:di]                      ; 26 8b 05
    1386713893    cmp ax, word [bp-024h]                    ; 3b 46 dc
    13868     jnc short 0942dh                          ; 73 4b
     13894    jnc short 0944bh                          ; 73 4b
    1386913895    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1387013896    sal ax, 007h                              ; c1 e0 07
     
    1389313919    mov bx, strict word 0000fh                ; bb 0f 00
    1389413920    xor cx, cx                                ; 31 c9
    13895     call 088b0h                               ; e8 8a f4
     13921    call 088ceh                               ; e8 8a f4
    1389613922    cmp ax, strict word 00003h                ; 3d 03 00
    13897     jne short 093c5h                          ; 75 9a
    13898     jmp short 09435h                          ; eb 08
     13923    jne short 093e3h                          ; 75 9a
     13924    jmp short 09453h                          ; eb 08
    1389913925    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    13900     je near 097c1h                            ; 0f 84 8c 03
     13926    je near 097dfh                            ; 0f 84 8c 03
    1390113927    push strict byte 00000h                   ; 6a 00
    1390213928    mov bx, strict word 0000fh                ; bb 0f 00
     
    1390413930    mov ax, word [bp-028h]                    ; 8b 46 d8
    1390513931    mov dx, word [bp-022h]                    ; 8b 56 de
    13906     call 088b0h                               ; e8 6b f4
     13932    call 088ceh                               ; e8 6b f4
    1390713933    cmp ax, strict word 00003h                ; 3d 03 00
    13908     jne near 097c1h                           ; 0f 85 75 03
     13934    jne near 097dfh                           ; 0f 85 75 03
    1390913935    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1391013936    sal di, 007h                              ; c1 e7 07
     
    1393413960    mov byte [bp-00ah], al                    ; 88 46 f6
    1393513961    cmp AL, strict byte 004h                  ; 3c 04
    13936     jnc near 097c1h                           ; 0f 83 2a 03
     13962    jnc near 097dfh                           ; 0f 83 2a 03
    1393713963    lea ax, [di+00118h]                       ; 8d 85 18 01
    1393813964    mov es, [bp-02ah]                         ; 8e 46 d6
     
    1398514011    mov byte [bp-00eh], dl                    ; 88 56 f2
    1398614012    test ax, ax                               ; 85 c0
    13987     jne near 09713h                           ; 0f 85 05 02
     14013    jne near 09731h                           ; 0f 85 05 02
    1398814014    cmp bx, 00101h                            ; 81 fb 01 01
    13989     jne near 09713h                           ; 0f 85 fd 01
     14015    jne near 09731h                           ; 0f 85 fd 01
    1399014016    les bx, [bp-012h]                         ; c4 5e ee
    1399114017    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1400114027    mov ax, word [bp-012h]                    ; 8b 46 ee
    1400214028    mov dx, es                                ; 8c c2
    14003     call 08a34h                               ; e8 ea f4
     14029    call 08a52h                               ; e8 ea f4
    1400414030    mov al, byte [bp-00eh]                    ; 8a 46 f2
    1400514031    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1401814044    mov dword [bp-018h], strict dword 000000000h ; 66 c7 46 e8 00 00 00 00
    1401914045    cmp si, 00fffh                            ; 81 fe ff 0f
    14020     jne short 095a0h                          ; 75 1b
     14046    jne short 095beh                          ; 75 1b
    1402114047    cmp di, strict byte 0ffffh                ; 83 ff ff
    14022     jne short 095a0h                          ; 75 16
     14048    jne short 095beh                          ; 75 16
    1402314049    mov dx, word [bp-00164h]                  ; 8b 96 9c fe
    1402414050    mov word [bp-016h], dx                    ; 89 56 ea
     
    1405514081    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1405614082    cmp AL, strict byte 001h                  ; 3c 01
    14057     jc short 09616h                           ; 72 0c
    14058     jbe short 0961eh                          ; 76 12
     14083    jc short 09634h                           ; 72 0c
     14084    jbe short 0963ch                          ; 76 12
    1405914085    cmp AL, strict byte 003h                  ; 3c 03
    14060     je short 09626h                           ; 74 16
     14086    je short 09644h                           ; 74 16
    1406114087    cmp AL, strict byte 002h                  ; 3c 02
    14062     je short 09622h                           ; 74 0e
    14063     jmp short 09673h                          ; eb 5d
     14088    je short 09640h                           ; 74 0e
     14089    jmp short 09691h                          ; eb 5d
    1406414090    test al, al                               ; 84 c0
    14065     jne short 09673h                          ; 75 59
     14091    jne short 09691h                          ; 75 59
    1406614092    mov BL, strict byte 040h                  ; b3 40
    14067     jmp short 09628h                          ; eb 0a
     14093    jmp short 09646h                          ; eb 0a
    1406814094    mov BL, strict byte 048h                  ; b3 48
    14069     jmp short 09628h                          ; eb 06
     14095    jmp short 09646h                          ; eb 06
    1407014096    mov BL, strict byte 050h                  ; b3 50
    14071     jmp short 09628h                          ; eb 02
     14097    jmp short 09646h                          ; eb 02
    1407214098    mov BL, strict byte 058h                  ; b3 58
    1407314099    mov al, bl                                ; 88 d8
     
    1407514101    movzx dx, al                              ; 0f b6 d0
    1407614102    mov ax, dx                                ; 89 d0
    14077     call 017a5h                               ; e8 71 81
     14103    call 017a5h                               ; e8 53 81
    1407814104    test al, al                               ; 84 c0
    14079     je short 09673h                           ; 74 3b
     14105    je short 09691h                           ; 74 3b
    1408014106    mov al, bl                                ; 88 d8
    1408114107    db  0feh, 0c0h
    1408214108    ; inc al                                    ; fe c0
    1408314109    xor ah, ah                                ; 30 e4
    14084     call 017a5h                               ; e8 64 81
     14110    call 017a5h                               ; e8 46 81
    1408514111    xor ah, ah                                ; 30 e4
    1408614112    sal ax, 008h                              ; c1 e0 08
    1408714113    mov word [bp-02ch], ax                    ; 89 46 d4
    1408814114    movzx ax, bl                              ; 0f b6 c3
    14089     call 017a5h                               ; e8 56 81
     14115    call 017a5h                               ; e8 38 81
    1409014116    xor ah, ah                                ; 30 e4
    1409114117    mov cx, word [bp-02ch]                    ; 8b 4e d4
     
    1409514121    add AL, strict byte 002h                  ; 04 02
    1409614122    xor ah, ah                                ; 30 e4
    14097     call 017a5h                               ; e8 43 81
     14123    call 017a5h                               ; e8 25 81
    1409814124    xor ah, ah                                ; 30 e4
    1409914125    mov word [bp-032h], ax                    ; 89 46 ce
    1410014126    mov ax, dx                                ; 89 d0
    14101     call 017a5h                               ; e8 39 81
     14127    call 017a5h                               ; e8 1b 81
    1410214128    xor ah, ah                                ; 30 e4
    1410314129    mov word [bp-02eh], ax                    ; 89 46 d2
    14104     jmp short 09681h                          ; eb 0e
     14130    jmp short 0969fh                          ; eb 0e
    1410514131    push dword [bp-018h]                      ; 66 ff 76 e8
    1410614132    push si                                   ; 56
     
    1410814134    mov dx, ss                                ; 8c d2
    1410914135    lea ax, [bp-032h]                         ; 8d 46 ce
    14110     call 05ad0h                               ; e8 4f c4
    14111     mov bx, 00db6h                            ; bb b6 0d
     14136    call 05aeeh                               ; e8 4f c4
     14137    mov bx, 00db2h                            ; bb b2 0d
    1411214138    mov cx, ds                                ; 8c d9
    1411314139    mov ax, strict word 00004h                ; b8 04 00
    14114     call 01a2ah                               ; e8 9e 83
     14140    call 01a2ah                               ; e8 80 83
    1411514141    push dword [bp-018h]                      ; 66 ff 76 e8
    1411614142    push si                                   ; 56
     
    1413114157    push 00ce8h                               ; 68 e8 0c
    1413214158    push strict byte 00004h                   ; 6a 04
    14133     call 01a6bh                               ; e8 b2 83
     14159    call 01a6bh                               ; e8 94 83
    1413414160    add sp, strict byte 0001ch                ; 83 c4 1c
    1413514161    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    1415914185    mov dx, strict word 00075h                ; ba 75 00
    1416014186    mov ax, strict word 00040h                ; b8 40 00
    14161     call 01749h                               ; e8 47 80
     14187    call 01749h                               ; e8 29 80
    1416214188    db  0feh, 0c0h
    1416314189    ; inc al                                    ; fe c0
     
    1416514191    mov dx, strict word 00075h                ; ba 75 00
    1416614192    mov ax, strict word 00040h                ; b8 40 00
    14167     call 01757h                               ; e8 47 80
    14168     jmp near 097b3h                           ; e9 a0 00
     14193    call 01757h                               ; e8 29 80
     14194    jmp near 097d1h                           ; e9 a0 00
    1416914195    cmp ax, 0eb14h                            ; 3d 14 eb
    14170     jne near 097b3h                           ; 0f 85 99 00
     14196    jne near 097d1h                           ; 0f 85 99 00
    1417114197    cmp bx, 00101h                            ; 81 fb 01 01
    14172     jne near 097b3h                           ; 0f 85 91 00
     14198    jne near 097d1h                           ; 0f 85 91 00
    1417314199    les bx, [bp-012h]                         ; c4 5e ee
    1417414200    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1418414210    mov ax, word [bp-012h]                    ; 8b 46 ee
    1418514211    mov dx, es                                ; 8c c2
    14186     call 08a34h                               ; e8 de f2
     14212    call 08a52h                               ; e8 de f2
    1418714213    test byte [bp-00232h], 080h               ; f6 86 ce fd 80
    1418814214    db  00fh, 095h, 0c0h
     
    1422314249    pop bp                                    ; 5d
    1422414250    retn                                      ; c3
    14225 ahci_mem_alloc_:                             ; 0xf97c9 LB 0x43
     14251ahci_mem_alloc_:                             ; 0xf97e7 LB 0x43
    1422614252    push bp                                   ; 55
    1422714253    mov bp, sp                                ; 89 e5
     
    1423314259    mov dx, 00413h                            ; ba 13 04
    1423414260    xor ax, ax                                ; 31 c0
    14235     call 01765h                               ; e8 8c 7f
     14261    call 01765h                               ; e8 6e 7f
    1423614262    test ax, ax                               ; 85 c0
    14237     je short 09802h                           ; 74 25
     14263    je short 09820h                           ; 74 25
    1423814264    dec ax                                    ; 48
    1423914265    mov bx, ax                                ; 89 c3
     
    1424214268    sal ax, 1                                 ; d1 e0
    1424314269    rcl dx, 1                                 ; d1 d2
    14244     loop 097e5h                               ; e2 fa
     14270    loop 09803h                               ; e2 fa
    1424514271    mov si, ax                                ; 89 c6
    1424614272    mov di, dx                                ; 89 d7
     
    1424814274    shr di, 1                                 ; d1 ef
    1424914275    rcr si, 1                                 ; d1 de
    14250     loop 097f2h                               ; e2 fa
     14276    loop 09810h                               ; e2 fa
    1425114277    mov dx, 00413h                            ; ba 13 04
    1425214278    xor ax, ax                                ; 31 c0
    14253     call 01773h                               ; e8 73 7f
     14279    call 01773h                               ; e8 55 7f
    1425414280    mov ax, si                                ; 89 f0
    1425514281    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1426114287    pop bp                                    ; 5d
    1426214288    retn                                      ; c3
    14263 ahci_hba_init_:                              ; 0xf980c LB 0x166
     14289ahci_hba_init_:                              ; 0xf982a LB 0x166
    1426414290    push bp                                   ; 55
    1426514291    mov bp, sp                                ; 89 e5
     
    1427314299    mov dx, strict word 0000eh                ; ba 0e 00
    1427414300    mov ax, strict word 00040h                ; b8 40 00
    14275     call 01765h                               ; e8 43 7f
     14301    call 01765h                               ; e8 25 7f
    1427614302    mov bx, 00122h                            ; bb 22 01
    1427714303    mov di, ax                                ; 89 c7
     
    1429014316    shr eax, 010h                             ; 66 c1 e8 10
    1429114317    xchg dx, ax                               ; 92
    14292     call 097c9h                               ; e8 83 ff
     14318    call 097e7h                               ; e8 83 ff
    1429314319    mov word [bp-010h], ax                    ; 89 46 f0
    1429414320    test ax, ax                               ; 85 c0
    14295     je near 09951h                            ; 0f 84 02 01
     14321    je near 0996fh                            ; 0f 84 02 01
    1429614322    mov ax, word [bp-010h]                    ; 8b 46 f0
    1429714323    mov es, di                                ; 8e c7
     
    1434314369    xchg dx, ax                               ; 92
    1434414370    test AL, strict byte 001h                 ; a8 01
    14345     jne short 098a5h                          ; 75 de
     14371    jne short 098c3h                          ; 75 de
    1434614372    xor ax, ax                                ; 31 c0
    1434714373    xor cx, cx                                ; 31 c9
     
    1436114387    mov bx, strict word 0001fh                ; bb 1f 00
    1436214388    xor cx, cx                                ; 31 c9
    14363     call 088b0h                               ; e8 c5 ef
     14389    call 088ceh                               ; e8 c5 ef
    1436414390    db  0feh, 0c0h
    1436514391    ; inc al                                    ; fe c0
    1436614392    mov byte [bp-00eh], al                    ; 88 46 f2
    1436714393    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14368     jmp short 09916h                          ; eb 20
     14394    jmp short 09934h                          ; eb 20
    1436914395    xor al, al                                ; 30 c0
    1437014396    test al, al                               ; 84 c0
    14371     je short 0990dh                           ; 74 11
     14397    je short 0992bh                           ; 74 11
    1437214398    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1437314399    xor ax, ax                                ; 31 c0
    1437414400    mov dx, word [bp-010h]                    ; 8b 56 f0
    14375     call 09311h                               ; e8 09 fa
     14401    call 0932fh                               ; e8 09 fa
    1437614402    dec byte [bp-00eh]                        ; fe 4e f2
    14377     je short 0994fh                           ; 74 42
     14403    je short 0996dh                           ; 74 42
    1437814404    inc byte [bp-00ch]                        ; fe 46 f4
    1437914405    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14380     jnc short 0994fh                          ; 73 39
     14406    jnc short 0996dh                          ; 73 39
    1438114407    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1438214408    mov bx, strict word 00001h                ; bb 01 00
    1438314409    xor di, di                                ; 31 ff
    14384     jcxz 09927h                               ; e3 06
     14410    jcxz 09945h                               ; e3 06
    1438514411    sal bx, 1                                 ; d1 e3
    1438614412    rcl di, 1                                 ; d1 d7
    14387     loop 09921h                               ; e2 fa
     14413    loop 0993fh                               ; e2 fa
    1438814414    mov ax, strict word 0000ch                ; b8 0c 00
    1438914415    xor cx, cx                                ; 31 c9
     
    1440114427    xchg dx, ax                               ; 92
    1440214428    test dx, di                               ; 85 fa
    14403     jne short 0994bh                          ; 75 04
     14429    jne short 09969h                          ; 75 04
    1440414430    test ax, bx                               ; 85 d8
    14405     je short 098f6h                           ; 74 ab
     14431    je short 09914h                           ; 74 ab
    1440614432    mov AL, strict byte 001h                  ; b0 01
    14407     jmp short 098f8h                          ; eb a9
     14433    jmp short 09916h                          ; eb a9
    1440814434    xor ax, ax                                ; 31 c0
    1440914435    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1441514441    pop bp                                    ; 5d
    1441614442    retn                                      ; c3
    14417     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 042h, 09ah, 020h, 09ah, 026h, 09ah, 02ch, 09ah, 032h
    14418     db  09ah, 038h, 09ah, 03eh, 09ah, 042h, 09ah
    14419 _ahci_init:                                  ; 0xf9972 LB 0x116
     14443    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 060h, 09ah, 03eh, 09ah, 044h, 09ah, 04ah, 09ah, 050h
     14444    db  09ah, 056h, 09ah, 05ch, 09ah, 060h, 09ah
     14445_ahci_init:                                  ; 0xf9990 LB 0x116
    1442014446    push bp                                   ; 55
    1442114447    mov bp, sp                                ; 89 e5
     
    1442514451    mov ax, 00601h                            ; b8 01 06
    1442614452    mov dx, strict word 00001h                ; ba 01 00
    14427     call 09ea8h                               ; e8 25 05
     14453    call 09ec6h                               ; e8 25 05
    1442814454    mov bx, ax                                ; 89 c3
    1442914455    cmp ax, strict word 0ffffh                ; 3d ff ff
    14430     je near 09a81h                            ; 0f 84 f5 00
     14456    je near 09a9fh                            ; 0f 84 f5 00
    1443114457    xor al, al                                ; 30 c0
    1443214458    shr ax, 008h                              ; c1 e8 08
     
    1443614462    xor ah, ah                                ; 30 e4
    1443714463    mov bx, strict word 00034h                ; bb 34 00
    14438     call 09ef8h                               ; e8 56 05
     14464    call 09f16h                               ; e8 56 05
    1443914465    mov cl, al                                ; 88 c1
    1444014466    test cl, cl                               ; 84 c9
    14441     je short 099cbh                           ; 74 23
     14467    je short 099e9h                           ; 74 23
    1444214468    movzx bx, cl                              ; 0f b6 d9
    1444314469    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1444514471    mov dx, di                                ; 89 fa
    1444614472    mov ax, si                                ; 89 f0
    14447     call 09ef8h                               ; e8 3e 05
     14473    call 09f16h                               ; e8 3e 05
    1444814474    cmp AL, strict byte 012h                  ; 3c 12
    14449     je short 099cbh                           ; 74 0d
     14475    je short 099e9h                           ; 74 0d
    1445014476    mov al, cl                                ; 88 c8
    1445114477    db  0feh, 0c0h
     
    1445414480    mov dx, di                                ; 89 fa
    1445514481    mov ax, si                                ; 89 f0
    14456     jmp short 0999fh                          ; eb d4
     14482    jmp short 099bdh                          ; eb d4
    1445714483    test cl, cl                               ; 84 c9
    14458     je near 09a81h                            ; 0f 84 b0 00
     14484    je near 09a9fh                            ; 0f 84 b0 00
    1445914485    add cl, 002h                              ; 80 c1 02
    1446014486    movzx bx, cl                              ; 0f b6 d9
     
    1446314489    mov dx, si                                ; 89 f2
    1446414490    mov ax, di                                ; 89 f8
    14465     call 09ef8h                               ; e8 12 05
     14491    call 09f16h                               ; e8 12 05
    1446614492    cmp AL, strict byte 010h                  ; 3c 10
    14467     jne near 09a81h                           ; 0f 85 95 00
     14493    jne near 09a9fh                           ; 0f 85 95 00
    1446814494    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1446914495    mov al, cl                                ; 88 c8
     
    1447214498    mov dx, si                                ; 89 f2
    1447314499    mov ax, di                                ; 89 f8
    14474     call 09f1ch                               ; e8 1e 05
     14500    call 09f3ah                               ; e8 1e 05
    1447514501    mov dx, ax                                ; 89 c2
    1447614502    and ax, strict word 0000fh                ; 25 0f 00
    1447714503    sub ax, strict word 00004h                ; 2d 04 00
    1447814504    cmp ax, strict word 0000bh                ; 3d 0b 00
    14479     jnbe short 09a42h                         ; 77 37
     14505    jnbe short 09a60h                         ; 77 37
    1448014506    push CS                                   ; 0e
    1448114507    pop ES                                    ; 07
    1448214508    mov cx, strict word 00008h                ; b9 08 00
    14483     mov di, 0995bh                            ; bf 5b 99
     14509    mov di, 09979h                            ; bf 79 99
    1448414510    repne scasb                               ; f2 ae
    1448514511    sal cx, 1                                 ; d1 e1
    1448614512    mov di, cx                                ; 89 cf
    14487     mov ax, word [cs:di-0669eh]               ; 2e 8b 85 62 99
     14513    mov ax, word [cs:di-06680h]               ; 2e 8b 85 80 99
    1448814514    jmp ax                                    ; ff e0
    1448914515    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    14490     jmp short 09a42h                          ; eb 1c
     14516    jmp short 09a60h                          ; eb 1c
    1449114517    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    14492     jmp short 09a42h                          ; eb 16
     14518    jmp short 09a60h                          ; eb 16
    1449314519    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    14494     jmp short 09a42h                          ; eb 10
     14520    jmp short 09a60h                          ; eb 10
    1449514521    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    14496     jmp short 09a42h                          ; eb 0a
     14522    jmp short 09a60h                          ; eb 0a
    1449714523    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    14498     jmp short 09a42h                          ; eb 04
     14524    jmp short 09a60h                          ; eb 04
    1449914525    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1450014526    mov cx, dx                                ; 89 d1
     
    1450314529    mov al, byte [bp-006h]                    ; 8a 46 fa
    1450414530    test al, al                               ; 84 c0
    14505     je short 09a81h                           ; 74 30
     14531    je short 09a9fh                           ; 74 30
    1450614532    movzx bx, al                              ; 0f b6 d8
    1450714533    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1450914535    mov dx, di                                ; 89 fa
    1451014536    mov ax, si                                ; 89 f0
    14511     call 09f3eh                               ; e8 db 04
     14537    call 09f5ch                               ; e8 db 04
    1451214538    test AL, strict byte 001h                 ; a8 01
    14513     je short 09a81h                           ; 74 1a
     14539    je short 09a9fh                           ; 74 1a
    1451414540    and AL, strict byte 0f0h                  ; 24 f0
    1451514541    add ax, cx                                ; 01 c8
     
    1451914545    mov dx, di                                ; 89 fa
    1452014546    mov ax, si                                ; 89 f0
    14521     call 09f65h                               ; e8 ea 04
     14547    call 09f83h                               ; e8 ea 04
    1452214548    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14523     call 0980ch                               ; e8 8b fd
     14549    call 0982ah                               ; e8 8b fd
    1452414550    lea sp, [bp-004h]                         ; 8d 66 fc
    1452514551    pop di                                    ; 5f
     
    1452714553    pop bp                                    ; 5d
    1452814554    retn                                      ; c3
    14529 apm_out_str_:                                ; 0xf9a88 LB 0x39
     14555apm_out_str_:                                ; 0xf9aa6 LB 0x39
    1453014556    push bp                                   ; 55
    1453114557    mov bp, sp                                ; 89 e5
     
    1453314559    mov bx, ax                                ; 89 c3
    1453414560    cmp byte [bx], 000h                       ; 80 3f 00
    14535     je short 09a9dh                           ; 74 0a
     14561    je short 09abbh                           ; 74 0a
    1453614562    mov al, byte [bx]                         ; 8a 07
    1453714563    out DX, AL                                ; ee
     
    1454014566    db  00ah, 0c0h
    1454114567    ; or al, al                                 ; 0a c0
    14542     jne short 09a95h                          ; 75 f8
     14568    jne short 09ab3h                          ; 75 f8
    1454314569    lea sp, [bp-002h]                         ; 8d 66 fe
    1454414570    pop bx                                    ; 5b
    1454514571    pop bp                                    ; 5d
    1454614572    retn                                      ; c3
    14547     in AL, strict byte 09ah                   ; e4 9a
    14548     mov AL, strict byte 09bh                  ; b0 9b
    14549     neg byte [bp+si-064efh]                   ; f6 9a 11 9b
    14550     mov AL, strict byte 09bh                  ; b0 9b
    14551     cmp AL, strict byte 09bh                  ; 3c 9b
    14552     mov AL, strict byte 09bh                  ; b0 9b
    14553     inc cx                                    ; 41
     14573    add bl, byte [bp+di-06432h]               ; 02 9b ce 9b
     14574    adc AL, strict byte 09bh                  ; 14 9b
     14575    das                                       ; 2f
    1455414576    wait                                      ; 9b
    14555     test word [bp+di-0647bh], bx              ; 85 9b 85 9b
    14556     test word [bp+di-06480h], bx              ; 85 9b 80 9b
    14557     test word [bp+di-0647bh], bx              ; 85 9b 85 9b
    14558     jns short 09a5ch                          ; 79 9b
    14559 _apm_function:                               ; 0xf9ac1 LB 0xf5
     14577    into                                      ; ce
     14578    wait                                      ; 9b
     14579    pop dx                                    ; 5a
     14580    wait                                      ; 9b
     14581    into                                      ; ce
     14582    wait                                      ; 9b
     14583    pop di                                    ; 5f
     14584    wait                                      ; 9b
     14585    mov word [0a39bh], ax                     ; a3 9b a3
     14586    wait                                      ; 9b
     14587    mov word [09e9bh], ax                     ; a3 9b 9e
     14588    wait                                      ; 9b
     14589    mov word [0a39bh], ax                     ; a3 9b a3
     14590    wait                                      ; 9b
     14591    xchg di, ax                               ; 97
     14592    wait                                      ; 9b
     14593_apm_function:                               ; 0xf9adf LB 0xf5
    1456014594    push bp                                   ; 55
    1456114595    mov bp, sp                                ; 89 e5
     
    1456514599    xor ah, ah                                ; 30 e4
    1456614600    cmp ax, strict word 0000eh                ; 3d 0e 00
    14567     jnbe near 09b85h                          ; 0f 87 b0 00
     14601    jnbe near 09ba3h                          ; 0f 87 b0 00
    1456814602    mov bx, ax                                ; 89 c3
    1456914603    add bx, ax                                ; 01 c3
    1457014604    mov dx, word [bp+018h]                    ; 8b 56 18
    1457114605    or dl, 001h                               ; 80 ca 01
    14572     jmp word [cs:bx-0655dh]                   ; 2e ff a7 a3 9a
     14606    jmp word [cs:bx-0653fh]                   ; 2e ff a7 c1 9a
    1457314607    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1457414608    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1457514609    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14576     jmp near 09bb0h                           ; e9 ba 00
     14610    jmp near 09bceh                           ; e9 ba 00
    1457714611    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14578     mov word [bp+00ch], 0a194h                ; c7 46 0c 94 a1
     14612    mov word [bp+00ch], 0a1b4h                ; c7 46 0c b4 a1
    1457914613    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1458014614    mov ax, strict word 0fff0h                ; b8 f0 ff
    1458114615    mov word [bp+006h], ax                    ; 89 46 06
    1458214616    mov word [bp+004h], ax                    ; 89 46 04
    14583     jmp near 09bb0h                           ; e9 9f 00
     14617    jmp near 09bceh                           ; e9 9f 00
    1458414618    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1458514619    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1459414628    mov si, ax                                ; 89 c6
    1459514629    sal esi, 010h                             ; 66 c1 e6 10
    14596     jmp near 09bb0h                           ; e9 74 00
     14630    jmp near 09bceh                           ; e9 74 00
    1459714631    sti                                       ; fb
    1459814632    hlt                                       ; f4
    14599     jmp near 09bb0h                           ; e9 6f 00
     14633    jmp near 09bceh                           ; e9 6f 00
    1460014634    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14601     je short 09b66h                           ; 74 1f
     14635    je short 09b84h                           ; 74 1f
    1460214636    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14603     je short 09b5eh                           ; 74 11
     14637    je short 09b7ch                           ; 74 11
    1460414638    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14605     jne short 09b6eh                          ; 75 1b
     14639    jne short 09b8ch                          ; 75 1b
    1460614640    mov dx, 0040fh                            ; ba 0f 04
    1460714641    mov ax, 00d22h                            ; b8 22 0d
    14608     call 09a88h                               ; e8 2c ff
    14609     jmp short 09bb0h                          ; eb 52
     14642    call 09aa6h                               ; e8 2c ff
     14643    jmp short 09bceh                          ; eb 52
    1461014644    mov dx, 0040fh                            ; ba 0f 04
    1461114645    mov ax, 00d2ah                            ; b8 2a 0d
    14612     jmp short 09b59h                          ; eb f3
     14646    jmp short 09b77h                          ; eb f3
    1461314647    mov dx, 0040fh                            ; ba 0f 04
    1461414648    mov ax, 00d32h                            ; b8 32 0d
    14615     jmp short 09b59h                          ; eb eb
     14649    jmp short 09b77h                          ; eb eb
    1461614650    or ah, 00ah                               ; 80 cc 0a
    1461714651    mov word [bp+012h], ax                    ; 89 46 12
    1461814652    mov word [bp+018h], dx                    ; 89 56 18
    14619     jmp short 09bb0h                          ; eb 37
     14653    jmp short 09bceh                          ; eb 37
    1462014654    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14621     jmp short 09bb0h                          ; eb 30
     14655    jmp short 09bceh                          ; eb 30
    1462214656    or ah, 080h                               ; 80 cc 80
    14623     jmp short 09b71h                          ; eb ec
    14624     mov bx, 00db6h                            ; bb b6 0d
     14657    jmp short 09b8fh                          ; eb ec
     14658    mov bx, 00db2h                            ; bb b2 0d
    1462514659    mov cx, ds                                ; 8c d9
    1462614660    mov ax, strict word 00004h                ; b8 04 00
    14627     call 01a2ah                               ; e8 9a 7e
     14661    call 01a2ah                               ; e8 7c 7e
    1462814662    push word [bp+00ch]                       ; ff 76 0c
    1462914663    push word [bp+012h]                       ; ff 76 12
    1463014664    push 00d3bh                               ; 68 3b 0d
    1463114665    push strict byte 00004h                   ; 6a 04
    14632     call 01a6bh                               ; e8 cd 7e
     14666    call 01a6bh                               ; e8 af 7e
    1463314667    add sp, strict byte 00008h                ; 83 c4 08
    1463414668    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1464114675    pop bp                                    ; 5d
    1464214676    retn                                      ; c3
    14643 pci16_select_reg_:                           ; 0xf9bb6 LB 0x24
     14677pci16_select_reg_:                           ; 0xf9bd4 LB 0x24
    1464414678    push bp                                   ; 55
    1464514679    mov bp, sp                                ; 89 e5
     
    1465814692    pop bp                                    ; 5d
    1465914693    retn                                      ; c3
    14660 pci16_find_device_:                          ; 0xf9bda LB 0xf7
     14694pci16_find_device_:                          ; 0xf9bf8 LB 0xf7
    1466114695    push bp                                   ; 55
    1466214696    mov bp, sp                                ; 89 e5
     
    1467214706    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1467314707    test bl, 007h                             ; f6 c3 07
    14674     jne short 09c22h                          ; 75 2d
     14708    jne short 09c40h                          ; 75 2d
    1467514709    mov dx, strict word 0000eh                ; ba 0e 00
    1467614710    mov ax, bx                                ; 89 d8
    14677     call 09bb6h                               ; e8 b9 ff
     14711    call 09bd4h                               ; e8 b9 ff
    1467814712    mov dx, 00cfeh                            ; ba fe 0c
    1467914713    in AL, DX                                 ; ec
     
    1468214716    mov byte [bp-006h], al                    ; 88 46 fa
    1468314717    cmp AL, strict byte 0ffh                  ; 3c ff
    14684     jne short 09c10h                          ; 75 06
     14718    jne short 09c2eh                          ; 75 06
    1468514719    add bx, strict byte 00008h                ; 83 c3 08
    14686     jmp near 09ca3h                           ; e9 93 00
     14720    jmp near 09cc1h                           ; e9 93 00
    1468714721    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14688     je short 09c1dh                           ; 74 07
     14722    je short 09c3bh                           ; 74 07
    1468914723    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    14690     jmp short 09c22h                          ; eb 05
     14724    jmp short 09c40h                          ; eb 05
    1469114725    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1469214726    mov al, byte [bp-006h]                    ; 8a 46 fa
    1469314727    and AL, strict byte 007h                  ; 24 07
    1469414728    cmp AL, strict byte 001h                  ; 3c 01
    14695     jne short 09c4ah                          ; 75 1f
     14729    jne short 09c68h                          ; 75 1f
    1469614730    mov ax, bx                                ; 89 d8
    1469714731    shr ax, 008h                              ; c1 e8 08
    1469814732    test ax, ax                               ; 85 c0
    14699     jne short 09c4ah                          ; 75 16
     14733    jne short 09c68h                          ; 75 16
    1470014734    mov dx, strict word 0001ah                ; ba 1a 00
    1470114735    mov ax, bx                                ; 89 d8
    14702     call 09bb6h                               ; e8 7a ff
     14736    call 09bd4h                               ; e8 7a ff
    1470314737    mov dx, 00cfeh                            ; ba fe 0c
    1470414738    in AL, DX                                 ; ec
     
    1470614740    ; sub ah, ah                                ; 2a e4
    1470714741    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14708     jbe short 09c4ah                          ; 76 03
     14742    jbe short 09c68h                          ; 76 03
    1470914743    mov byte [bp-008h], al                    ; 88 46 f8
    1471014744    test di, di                               ; 85 ff
    14711     je short 09c53h                           ; 74 05
     14745    je short 09c71h                           ; 74 05
    1471214746    mov dx, strict word 00008h                ; ba 08 00
    14713     jmp short 09c55h                          ; eb 02
     14747    jmp short 09c73h                          ; eb 02
    1471414748    xor dx, dx                                ; 31 d2
    1471514749    mov ax, bx                                ; 89 d8
    14716     call 09bb6h                               ; e8 5c ff
     14750    call 09bd4h                               ; e8 5c ff
    1471714751    mov dx, 00cfch                            ; ba fc 0c
    1471814752    in eax, DX                                ; 66 ed
     
    1472514759    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1472614760    test di, di                               ; 85 ff
    14727     je short 09c84h                           ; 74 0f
     14761    je short 09ca2h                           ; 74 0f
    1472814762    mov cx, strict word 00008h                ; b9 08 00
    1472914763    shr dx, 1                                 ; d1 ea
    1473014764    rcr ax, 1                                 ; d1 d8
    14731     loop 09c78h                               ; e2 fa
     14765    loop 09c96h                               ; e2 fa
    1473214766    mov word [bp-00eh], ax                    ; 89 46 f2
    1473314767    mov word [bp-00ch], dx                    ; 89 56 f4
    1473414768    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1473514769    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14736     jne short 09c94h                          ; 75 08
     14770    jne short 09cb2h                          ; 75 08
    1473714771    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1473814772    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14739     je short 09c9ah                           ; 74 06
     14773    je short 09cb8h                           ; 74 06
    1474014774    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    14741     je short 09ca0h                           ; 74 06
     14775    je short 09cbeh                           ; 74 06
    1474214776    dec si                                    ; 4e
    1474314777    cmp si, strict byte 0ffffh                ; 83 fe ff
    14744     je short 09cb2h                           ; 74 12
     14778    je short 09cd0h                           ; 74 12
    1474514779    add bx, word [bp-00ah]                    ; 03 5e f6
    1474614780    mov dx, bx                                ; 89 da
     
    1474814782    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1474914783    cmp dx, ax                                ; 39 c2
    14750     jbe near 09bf0h                           ; 0f 86 3e ff
     14784    jbe near 09c0eh                           ; 0f 86 3e ff
    1475114785    cmp si, strict byte 0ffffh                ; 83 fe ff
    14752     jne short 09cbbh                          ; 75 04
     14786    jne short 09cd9h                          ; 75 04
    1475314787    mov ax, bx                                ; 89 d8
    14754     jmp short 09cbeh                          ; eb 03
     14788    jmp short 09cdch                          ; eb 03
    1475514789    mov ax, strict word 0ffffh                ; b8 ff ff
    1475614790    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1475914793    pop bp                                    ; 5d
    1476014794    retn                                      ; c3
    14761     mov BL, strict byte 09dh                  ; b3 9d
    14762     int 09dh                                  ; cd 9d
    14763     loopne 09c68h                             ; e0 9d
    14764     cmc                                       ; f5
     14795    rcr word [di-06215h], 1                   ; d1 9d eb 9d
     14796    db  0feh
    1476514797    popfw                                     ; 9d
    14766     or byte [bp-061e5h], bl                   ; 08 9e 1b 9e
    14767 _pci16_function:                             ; 0xf9cd1 LB 0x1d7
     14798    adc bx, word [bp-061dah]                  ; 13 9e 26 9e
     14799    db  039h
     14800    sahf                                      ; 9e
     14801_pci16_function:                             ; 0xf9cef LB 0x1d7
    1476814802    push bp                                   ; 55
    1476914803    mov bp, sp                                ; 89 e5
     
    1477914813    xor ah, ah                                ; 30 e4
    1478014814    cmp bx, strict byte 00003h                ; 83 fb 03
    14781     jc short 09d0ah                           ; 72 1a
    14782     jbe short 09d62h                          ; 76 70
     14815    jc short 09d28h                           ; 72 1a
     14816    jbe short 09d80h                          ; 76 70
    1478314817    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14784     je near 09e2fh                            ; 0f 84 36 01
     14818    je near 09e4dh                            ; 0f 84 36 01
    1478514819    cmp bx, strict byte 00008h                ; 83 fb 08
    14786     jc near 09e74h                            ; 0f 82 74 01
     14820    jc near 09e92h                            ; 0f 82 74 01
    1478714821    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14788     jbe near 09d87h                           ; 0f 86 80 00
    14789     jmp near 09e74h                           ; e9 6a 01
     14822    jbe near 09da5h                           ; 0f 86 80 00
     14823    jmp near 09e92h                           ; e9 6a 01
    1479014824    cmp bx, strict byte 00002h                ; 83 fb 02
    14791     je short 09d32h                           ; 74 23
     14825    je short 09d50h                           ; 74 23
    1479214826    cmp bx, strict byte 00001h                ; 83 fb 01
    14793     jne near 09e74h                           ; 0f 85 5e 01
     14827    jne near 09e92h                           ; 0f 85 5e 01
    1479414828    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1479514829    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1479714831    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1479814832    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14799     jmp near 09ea1h                           ; e9 6f 01
     14833    jmp near 09ebfh                           ; e9 6f 01
    1480014834    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14801     jne short 09d3eh                          ; 75 06
     14835    jne short 09d5ch                          ; 75 06
    1480214836    or ah, 083h                               ; 80 cc 83
    14803     jmp near 09e9ah                           ; e9 5c 01
     14837    jmp near 09eb8h                           ; e9 5c 01
    1480414838    mov bx, word [bp+008h]                    ; 8b 5e 08
    1480514839    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1480614840    mov ax, word [bp+018h]                    ; 8b 46 18
    1480714841    xor cx, cx                                ; 31 c9
    14808     call 09bdah                               ; e8 8e fe
     14842    call 09bf8h                               ; e8 8e fe
    1480914843    cmp ax, strict word 0ffffh                ; 3d ff ff
    14810     jne short 09d5ch                          ; 75 0b
     14844    jne short 09d7ah                          ; 75 0b
    1481114845    mov ax, word [bp+020h]                    ; 8b 46 20
    1481214846    xor ah, ah                                ; 30 e4
    1481314847    or ah, 086h                               ; 80 cc 86
    14814     jmp near 09e9ah                           ; e9 3e 01
     14848    jmp near 09eb8h                           ; e9 3e 01
    1481514849    mov word [bp+014h], ax                    ; 89 46 14
    14816     jmp near 09ea1h                           ; e9 3f 01
     14850    jmp near 09ebfh                           ; e9 3f 01
    1481714851    mov bx, word [bp+008h]                    ; 8b 5e 08
    1481814852    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1481914853    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1482014854    mov cx, strict word 00001h                ; b9 01 00
    14821     call 09bdah                               ; e8 69 fe
     14855    call 09bf8h                               ; e8 69 fe
    1482214856    cmp ax, strict word 0ffffh                ; 3d ff ff
    14823     jne short 09d81h                          ; 75 0b
     14857    jne short 09d9fh                          ; 75 0b
    1482414858    mov ax, word [bp+020h]                    ; 8b 46 20
    1482514859    xor ah, ah                                ; 30 e4
    1482614860    or ah, 086h                               ; 80 cc 86
    14827     jmp near 09e9ah                           ; e9 19 01
     14861    jmp near 09eb8h                           ; e9 19 01
    1482814862    mov word [bp+014h], ax                    ; 89 46 14
    14829     jmp near 09ea1h                           ; e9 1a 01
     14863    jmp near 09ebfh                           ; e9 1a 01
    1483014864    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14831     jc short 09d94h                           ; 72 06
     14865    jc short 09db2h                           ; 72 06
    1483214866    or ah, 087h                               ; 80 cc 87
    14833     jmp near 09e9ah                           ; e9 06 01
     14867    jmp near 09eb8h                           ; e9 06 01
    1483414868    mov dx, word [bp+004h]                    ; 8b 56 04
    1483514869    mov ax, word [bp+014h]                    ; 8b 46 14
    14836     call 09bb6h                               ; e8 19 fe
     14870    call 09bd4h                               ; e8 19 fe
    1483714871    mov bx, word [bp+020h]                    ; 8b 5e 20
    1483814872    xor bh, bh                                ; 30 ff
    1483914873    sub bx, strict byte 00008h                ; 83 eb 08
    1484014874    cmp bx, strict byte 00005h                ; 83 fb 05
    14841     jnbe near 09ea1h                          ; 0f 87 f5 00
     14875    jnbe near 09ebfh                          ; 0f 87 f5 00
    1484214876    add bx, bx                                ; 01 db
    14843     jmp word [cs:bx-0633bh]                   ; 2e ff a7 c5 9c
     14877    jmp word [cs:bx-0631dh]                   ; 2e ff a7 e3 9c
    1484414878    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1484514879    xor bl, bl                                ; 30 db
     
    1485214886    or bx, ax                                 ; 09 c3
    1485314887    mov word [bp+01ch], bx                    ; 89 5e 1c
    14854     jmp near 09ea1h                           ; e9 d4 00
     14888    jmp near 09ebfh                           ; e9 d4 00
    1485514889    mov dx, word [bp+004h]                    ; 8b 56 04
    1485614890    xor dh, dh                                ; 30 f6
     
    1485914893    in ax, DX                                 ; ed
    1486014894    mov word [bp+01ch], ax                    ; 89 46 1c
    14861     jmp near 09ea1h                           ; e9 c1 00
     14895    jmp near 09ebfh                           ; e9 c1 00
    1486214896    mov dx, 00cfch                            ; ba fc 0c
    1486314897    in eax, DX                                ; 66 ed
     
    1486814902    mov word [bp+01ch], ax                    ; 89 46 1c
    1486914903    mov word [bp+01eh], dx                    ; 89 56 1e
    14870     jmp near 09ea1h                           ; e9 ac 00
     14904    jmp near 09ebfh                           ; e9 ac 00
    1487114905    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1487214906    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1487514909    add dx, 00cfch                            ; 81 c2 fc 0c
    1487614910    out DX, AL                                ; ee
    14877     jmp near 09ea1h                           ; e9 99 00
     14911    jmp near 09ebfh                           ; e9 99 00
    1487814912    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1487914913    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1488214916    add dx, 00cfch                            ; 81 c2 fc 0c
    1488314917    out DX, ax                                ; ef
    14884     jmp near 09ea1h                           ; e9 86 00
     14918    jmp near 09ebfh                           ; e9 86 00
    1488514919    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1488614920    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1489114925    ; mov ax, cx                                ; 8b c1
    1489214926    out DX, eax                               ; 66 ef
    14893     jmp short 09ea1h                          ; eb 72
     14927    jmp short 09ebfh                          ; eb 72
    1489414928    mov bx, word [bp+004h]                    ; 8b 5e 04
    1489514929    mov es, [bp+026h]                         ; 8e 46 26
     
    1489814932    mov cx, word [0f370h]                     ; 8b 0e 70 f3
    1489914933    cmp cx, word [es:bx]                      ; 26 3b 0f
    14900     jbe short 09e55h                          ; 76 11
     14934    jbe short 09e73h                          ; 76 11
    1490114935    mov ax, word [bp+020h]                    ; 8b 46 20
    1490214936    xor ah, ah                                ; 30 e4
     
    1490414938    mov word [bp+020h], ax                    ; 89 46 20
    1490514939    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14906     jmp short 09e69h                          ; eb 14
     14940    jmp short 09e87h                          ; eb 14
    1490714941    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1490814942    mov si, 0f190h                            ; be 90 f1
     
    1491614950    les bx, [bp-008h]                         ; c4 5e f8
    1491714951    mov word [es:bx], ax                      ; 26 89 07
    14918     jmp short 09ea1h                          ; eb 2d
    14919     mov bx, 00db6h                            ; bb b6 0d
     14952    jmp short 09ebfh                          ; eb 2d
     14953    mov bx, 00db2h                            ; bb b2 0d
    1492014954    mov cx, ds                                ; 8c d9
    1492114955    mov ax, strict word 00004h                ; b8 04 00
    14922     call 01a2ah                               ; e8 ab 7b
     14956    call 01a2ah                               ; e8 8d 7b
    1492314957    mov ax, word [bp+014h]                    ; 8b 46 14
    1492414958    push ax                                   ; 50
     
    1492714961    push 00d6eh                               ; 68 6e 0d
    1492814962    push strict byte 00004h                   ; 6a 04
    14929     call 01a6bh                               ; e8 dc 7b
     14963    call 01a6bh                               ; e8 be 7b
    1493014964    add sp, strict byte 00008h                ; 83 c4 08
    1493114965    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1493914973    pop bp                                    ; 5d
    1494014974    retn                                      ; c3
    14941 pci_find_classcode_:                         ; 0xf9ea8 LB 0x2b
     14975pci_find_classcode_:                         ; 0xf9ec6 LB 0x2b
    1494214976    push bp                                   ; 55
    1494314977    mov bp, sp                                ; 89 e5
     
    1495414988    int 01ah                                  ; cd 1a
    1495514989    cmp ah, 000h                              ; 80 fc 00
    14956     je near 09ec9h                            ; 0f 84 03 00
     14990    je near 09ee7h                            ; 0f 84 03 00
    1495714991    mov bx, strict word 0ffffh                ; bb ff ff
    1495814992    mov ax, bx                                ; 89 d8
     
    1496314997    pop bp                                    ; 5d
    1496414998    retn                                      ; c3
    14965 pci_find_device_:                            ; 0xf9ed3 LB 0x25
     14999pci_find_device_:                            ; 0xf9ef1 LB 0x25
    1496615000    push bp                                   ; 55
    1496715001    mov bp, sp                                ; 89 e5
     
    1497515009    int 01ah                                  ; cd 1a
    1497615010    cmp ah, 000h                              ; 80 fc 00
    14977     je near 09eeeh                            ; 0f 84 03 00
     15011    je near 09f0ch                            ; 0f 84 03 00
    1497815012    mov bx, strict word 0ffffh                ; bb ff ff
    1497915013    mov ax, bx                                ; 89 d8
     
    1498415018    pop bp                                    ; 5d
    1498515019    retn                                      ; c3
    14986 pci_read_config_byte_:                       ; 0xf9ef8 LB 0x24
     15020pci_read_config_byte_:                       ; 0xf9f16 LB 0x24
    1498715021    push bp                                   ; 55
    1498815022    mov bp, sp                                ; 89 e5
     
    1500315037    pop bp                                    ; 5d
    1500415038    retn                                      ; c3
    15005 pci_read_config_word_:                       ; 0xf9f1c LB 0x22
     15039pci_read_config_word_:                       ; 0xf9f3a LB 0x22
    1500615040    push bp                                   ; 55
    1500715041    mov bp, sp                                ; 89 e5
     
    1502215056    pop bp                                    ; 5d
    1502315057    retn                                      ; c3
    15024 pci_read_config_dword_:                      ; 0xf9f3e LB 0x27
     15058pci_read_config_dword_:                      ; 0xf9f5c LB 0x27
    1502515059    push bp                                   ; 55
    1502615060    mov bp, sp                                ; 89 e5
     
    1504315077    pop bp                                    ; 5d
    1504415078    retn                                      ; c3
    15045 pci_write_config_word_:                      ; 0xf9f65 LB 0x1c
     15079pci_write_config_word_:                      ; 0xf9f83 LB 0x1c
    1504615080    push bp                                   ; 55
    1504715081    mov bp, sp                                ; 89 e5
     
    1505815092    pop bp                                    ; 5d
    1505915093    retn                                      ; c3
    15060 vds_is_present_:                             ; 0xf9f81 LB 0x1d
     15094vds_is_present_:                             ; 0xf9f9f LB 0x1d
    1506115095    push bx                                   ; 53
    1506215096    push bp                                   ; 55
     
    1506615100    mov es, ax                                ; 8e c0
    1506715101    test byte [es:bx], 020h                   ; 26 f6 07 20
    15068     je short 09f99h                           ; 74 06
     15102    je short 09fb7h                           ; 74 06
    1506915103    mov ax, strict word 00001h                ; b8 01 00
    1507015104    pop bp                                    ; 5d
     
    1507515109    pop bx                                    ; 5b
    1507615110    retn                                      ; c3
    15077 vds_real_to_lin_:                            ; 0xf9f9e LB 0x1e
     15111vds_real_to_lin_:                            ; 0xf9fbc LB 0x1e
    1507815112    push bx                                   ; 53
    1507915113    push cx                                   ; 51
     
    1508615120    sal ax, 1                                 ; d1 e0
    1508715121    rcl dx, 1                                 ; d1 d2
    15088     loop 09fach                               ; e2 fa
     15122    loop 09fcah                               ; e2 fa
    1508915123    xor cx, cx                                ; 31 c9
    1509015124    add ax, bx                                ; 01 d8
     
    1509415128    pop bx                                    ; 5b
    1509515129    retn                                      ; c3
    15096 vds_build_sg_list_:                          ; 0xf9fbc LB 0x79
     15130vds_build_sg_list_:                          ; 0xf9fda LB 0x79
    1509715131    push bp                                   ; 55
    1509815132    mov bp, sp                                ; 89 e5
     
    1510815142    mov bx, word [bp+006h]                    ; 8b 5e 06
    1510915143    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15110     call 09f9eh                               ; e8 c3 ff
     15144    call 09fbch                               ; e8 c3 ff
    1511115145    mov es, si                                ; 8e c6
    1511215146    mov word [es:di+004h], ax                 ; 26 89 45 04
    1511315147    mov word [es:di+006h], dx                 ; 26 89 55 06
    1511415148    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15115     call 09f81h                               ; e8 93 ff
     15149    call 09f9fh                               ; e8 93 ff
    1511615150    test ax, ax                               ; 85 c0
    15117     je short 0a005h                           ; 74 13
     15151    je short 0a023h                           ; 74 13
    1511815152    mov es, si                                ; 8e c6
    1511915153    mov ax, 08105h                            ; b8 05 81
    1512015154    mov dx, strict word 00000h                ; ba 00 00
    1512115155    int 04bh                                  ; cd 4b
    15122     jc near 0a002h                            ; 0f 82 02 00
     15156    jc near 0a020h                            ; 0f 82 02 00
    1512315157    db  032h, 0c0h
    1512415158    ; xor al, al                                ; 32 c0
    1512515159    cbw                                       ; 98
    15126     jmp short 0a02ch                          ; eb 27
     15160    jmp short 0a04ah                          ; eb 27
    1512715161    mov es, si                                ; 8e c6
    1512815162    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1514115175    pop bp                                    ; 5d
    1514215176    retn 00004h                               ; c2 04 00
    15143 vds_free_sg_list_:                           ; 0xfa035 LB 0x3b
     15177vds_free_sg_list_:                           ; 0xfa053 LB 0x3d
    1514415178    push bp                                   ; 55
    1514515179    mov bp, sp                                ; 89 e5
     
    1514715181    push di                                   ; 57
    1514815182    mov bx, ax                                ; 89 c3
    15149     call 09f81h                               ; e8 42 ff
     15183    call 09f9fh                               ; e8 42 ff
    1515015184    test ax, ax                               ; 85 c0
    15151     je short 0a056h                           ; 74 13
     15185    je short 0a074h                           ; 74 13
    1515215186    mov di, bx                                ; 89 df
    1515315187    mov es, dx                                ; 8e c2
     
    1515515189    mov dx, strict word 00000h                ; ba 00 00
    1515615190    int 04bh                                  ; cd 4b
    15157     jc near 0a055h                            ; 0f 82 02 00
     15191    jc near 0a073h                            ; 0f 82 02 00
    1515815192    db  032h, 0c0h
    1515915193    ; xor al, al                                ; 32 c0
     
    1516615200    pop bp                                    ; 5d
    1516715201    retn                                      ; c3
    15168     times 0xb db 0
    15169 __U4M:                                       ; 0xfa070 LB 0x40
     15202    times 0xd db 0
     15203__U4M:                                       ; 0xfa090 LB 0x40
    1517015204    pushfw                                    ; 9c
    1517115205    push eax                                  ; 66 50
     
    1519315227    retn                                      ; c3
    1519415228    times 0xf db 0
    15195 __U4D:                                       ; 0xfa0b0 LB 0x40
     15229__U4D:                                       ; 0xfa0d0 LB 0x40
    1519615230    pushfw                                    ; 9c
    1519715231    push eax                                  ; 66 50
     
    1522415258    retn                                      ; c3
    1522515259    times 0x7 db 0
    15226 __U8RS:                                      ; 0xfa0f0 LB 0x10
     15260__U8RS:                                      ; 0xfa110 LB 0x10
    1522715261    test si, si                               ; 85 f6
    15228     je short 0a0ffh                           ; 74 0b
     15262    je short 0a11fh                           ; 74 0b
    1522915263    shr ax, 1                                 ; d1 e8
    1523015264    rcr bx, 1                                 ; d1 db
     
    1523215266    rcr dx, 1                                 ; d1 da
    1523315267    dec si                                    ; 4e
    15234     jne short 0a0f4h                          ; 75 f5
     15268    jne short 0a114h                          ; 75 f5
    1523515269    retn                                      ; c3
    15236 __U8LS:                                      ; 0xfa100 LB 0x10
     15270__U8LS:                                      ; 0xfa120 LB 0x10
    1523715271    test si, si                               ; 85 f6
    15238     je short 0a10fh                           ; 74 0b
     15272    je short 0a12fh                           ; 74 0b
    1523915273    sal dx, 1                                 ; d1 e2
    1524015274    rcl cx, 1                                 ; d1 d1
     
    1524215276    rcl ax, 1                                 ; d1 d0
    1524315277    dec si                                    ; 4e
    15244     jne short 0a104h                          ; 75 f5
     15278    jne short 0a124h                          ; 75 f5
    1524515279    retn                                      ; c3
    15246 _fmemset_:                                   ; 0xfa110 LB 0x10
     15280_fmemset_:                                   ; 0xfa130 LB 0x10
    1524715281    push di                                   ; 57
    1524815282    mov es, dx                                ; 8e c2
     
    1525515289    retn                                      ; c3
    1525615290    times 0x3 db 0
    15257 _fmemcpy_:                                   ; 0xfa120 LB 0x3a
     15291_fmemcpy_:                                   ; 0xfa140 LB 0x3a
    1525815292    push bp                                   ; 55
    1525915293    db  08bh, 0ech
     
    1528015314    add byte [bx+si], al                      ; 00 00
    1528115315    add byte [bx+si], al                      ; 00 00
    15282     jo short 0a0e3h                           ; 70 a1
    15283     jc short 0a0e5h                           ; 72 a1
    15284     jbe short 0a0e7h                          ; 76 a1
    15285     jbe short 0a0e9h                          ; 76 a1
    15286     jbe short 0a0ebh                          ; 76 a1
    15287     js short 0a0edh                           ; 78 a1
    15288     js short 0a0efh                           ; 78 a1
    15289     jp short 0a0f1h                           ; 7a a1
    15290     jle short 0a0f3h                          ; 7e a1
    15291     jle short 0a0f5h                          ; 7e a1
    15292     and byte [bx+di-05e7bh], 087h             ; 80 a1 85 a1 87
    15293     db  0a1h
    15294 apm_worker:                                  ; 0xfa15a LB 0x3a
     15316    nop                                       ; 90
     15317    mov ax, word [0a192h]                     ; a1 92 a1
     15318    xchg si, ax                               ; 96
     15319    mov ax, word [0a196h]                     ; a1 96 a1
     15320    xchg si, ax                               ; 96
     15321    mov ax, word [0a198h]                     ; a1 98 a1
     15322    cbw                                       ; 98
     15323    mov ax, word [0a19ah]                     ; a1 9a a1
     15324    sahf                                      ; 9e
     15325    mov ax, word [0a19eh]                     ; a1 9e a1
     15326    mov AL, byte [0a5a1h]                     ; a0 a1 a5
     15327    mov ax, word [0a1a7h]                     ; a1 a7 a1
     15328apm_worker:                                  ; 0xfa17a LB 0x3a
    1529515329    sti                                       ; fb
    1529615330    push ax                                   ; 50
     
    1530415338    pop ax                                    ; 58
    1530515339    mov AH, strict byte 053h                  ; b4 53
    15306     jnc short 0a190h                          ; 73 25
    15307     jmp word [cs:bp-05ec0h]                   ; 2e ff a6 40 a1
    15308     jmp short 0a18eh                          ; eb 1c
     15340    jnc short 0a1b0h                          ; 73 25
     15341    jmp word [cs:bp-05ea0h]                   ; 2e ff a6 60 a1
     15342    jmp short 0a1aeh                          ; eb 1c
    1530915343    sti                                       ; fb
    1531015344    hlt                                       ; f4
    15311     jmp short 0a18eh                          ; eb 18
    15312     jmp short 0a18eh                          ; eb 16
    15313     jmp short 0a190h                          ; eb 16
     15345    jmp short 0a1aeh                          ; eb 18
     15346    jmp short 0a1aeh                          ; eb 16
     15347    jmp short 0a1b0h                          ; eb 16
    1531415348    mov AH, strict byte 080h                  ; b4 80
    15315     jmp short 0a192h                          ; eb 14
    15316     jmp short 0a190h                          ; eb 10
     15349    jmp short 0a1b2h                          ; eb 14
     15350    jmp short 0a1b0h                          ; eb 10
    1531715351    mov ax, 00102h                            ; b8 02 01
    15318     jmp short 0a18eh                          ; eb 09
    15319     jmp short 0a18eh                          ; eb 07
     15352    jmp short 0a1aeh                          ; eb 09
     15353    jmp short 0a1aeh                          ; eb 07
    1532015354    mov BL, strict byte 000h                  ; b3 00
    1532115355    mov cx, strict word 00000h                ; b9 00 00
    15322     jmp short 0a18eh                          ; eb 00
     15356    jmp short 0a1aeh                          ; eb 00
    1532315357    clc                                       ; f8
    1532415358    retn                                      ; c3
     
    1532615360    stc                                       ; f9
    1532715361    retn                                      ; c3
    15328 apm_pm16_entry:                              ; 0xfa194 LB 0x11
     15362apm_pm16_entry:                              ; 0xfa1b4 LB 0x11
    1532915363    mov AH, strict byte 002h                  ; b4 02
    1533015364    push DS                                   ; 1e
     
    1533415368    add bp, strict byte 00008h                ; 83 c5 08
    1533515369    mov ds, bp                                ; 8e dd
    15336     call 0a15ah                               ; e8 b8 ff
     15370    call 0a17ah                               ; e8 b8 ff
    1533715371    pop bp                                    ; 5d
    1533815372    pop DS                                    ; 1f
    1533915373    retf                                      ; cb
    1534015374
    15341   ; Padding 0x385b bytes at 0xfa1a5
    15342   times 14427 db 0
     15375  ; Padding 0x383b bytes at 0xfa1c5
     15376  times 14395 db 0
    1534315377
    1534415378section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1538715421    add bp, strict byte 00008h                ; 83 c5 08
    1538815422    push ebp                                  ; 66 55
    15389     mov bp, 0a196h                            ; bd 96 a1
     15423    mov bp, 0a1b6h                            ; bd b6 a1
    1539015424    add byte [bx+si], al                      ; 00 00
    1539115425    push ebp                                  ; 66 55
     
    1585515889    cmp AL, strict byte 009h                  ; 3c 09
    1585615890    jne short 0e0bch                          ; 75 03
    15857     jmp near 0e37bh                           ; e9 bf 02
     15891    jmp near 0e363h                           ; e9 a7 02
    1585815892    cmp AL, strict byte 005h                  ; 3c 05
    1585915893    je short 0e044h                           ; 74 84
     
    1600116035    mov dx, 0c800h                            ; ba 00 c8
    1600216036    call 01600h                               ; e8 e1 33
    16003     call 04fdah                               ; e8 b8 6d
     16037    call 04ff8h                               ; e8 d6 6d
    1600416038    pop DS                                    ; 1f
    1600516039    mov ax, 0ff53h                            ; b8 53 ff
     
    1606116095    mov word [001c2h], ax                     ; a3 c2 01
    1606216096    call 0edbfh                               ; e8 05 0b
    16063     jmp short 0e31bh                          ; eb 5f
     16097    jmp short 0e303h                          ; eb 47
    1606416098biosorg_check_before_or_at_0E2C1h:           ; 0xfe2bc LB 0x7
    1606516099    add byte [bx+si], al                      ; 00 00
     
    1607716111    int 002h                                  ; cd 02
    1607816112    iret                                      ; cf
    16079 hard_drive_post:                             ; 0xfe2d2 LB 0xd2
     16113hard_drive_post:                             ; 0xfe2d2 LB 0xba
    1608016114    db  033h, 0c0h
    1608116115    ; xor ax, ax                                ; 33 c0
     
    1609616130    mov ax, 0f000h                            ; b8 00 f0
    1609716131    mov word [001dah], ax                     ; a3 da 01
    16098     mov ax, strict word 0003dh                ; b8 3d 00
    16099     mov word [00104h], ax                     ; a3 04 01
    16100     mov ax, 09fc0h                            ; b8 c0 9f
    16101     mov word [00106h], ax                     ; a3 06 01
    16102     mov ax, strict word 0004dh                ; b8 4d 00
    16103     mov word [00118h], ax                     ; a3 18 01
    16104     mov ax, 09fc0h                            ; b8 c0 9f
    16105     mov word [0011ah], ax                     ; a3 1a 01
    1610616132    retn                                      ; c3
    1610716133    mov ax, 0f8c1h                            ; b8 c1 f8
     
    1611316139    mov ax, 0f000h                            ; b8 00 f0
    1611416140    mov word [001d6h], ax                     ; a3 d6 01
    16115     call 0e753h                               ; e8 1d 04
     16141    call 0e753h                               ; e8 35 04
    1611616142    push CS                                   ; 0e
    1611716143    pop DS                                    ; 1f
    1611816144    cld                                       ; fc
    1611916145    pushad                                    ; 66 60
    16120     call 01692h                               ; e8 54 33
     16146    call 01692h                               ; e8 6c 33
    1612116147    popad                                     ; 66 61
    16122     call 01da8h                               ; e8 65 3a
    16123     call 02235h                               ; e8 ef 3e
     16148    call 01da8h                               ; e8 7d 3a
     16149    call 02235h                               ; e8 07 3f
    1612416150    sti                                       ; fb
    16125     call 09972h                               ; e8 28 b6
     16151    call 09990h                               ; e8 5e b6
    1612616152    cli                                       ; fa
    16127     call 0882fh                               ; e8 e1 a4
    16128     call 0ed2fh                               ; e8 de 09
    16129     call 0e2d2h                               ; e8 7e ff
     16153    call 0884dh                               ; e8 17 a5
     16154    call 0ed2fh                               ; e8 f6 09
     16155    call 0e2d2h                               ; e8 96 ff
    1613016156    push CS                                   ; 0e
    1613116157    pop DS                                    ; 1f
     
    1613316159    mov ax, 0c800h                            ; b8 00 c8
    1613416160    mov dx, 0f000h                            ; ba 00 f0
    16135     call 01600h                               ; e8 a0 32
     16161    call 01600h                               ; e8 b8 32
    1613616162    db  066h, 033h, 0c0h
    1613716163    ; xor eax, eax                              ; 66 33 c0
     
    1614216168    db  066h, 033h, 0d2h
    1614316169    ; xor edx, edx                              ; 66 33 d2
    16144     call 01890h                               ; e8 21 35
    16145     call 03cbdh                               ; e8 4b 59
     16170    call 01890h                               ; e8 39 35
     16171    call 03cdbh                               ; e8 81 59
    1614616172    sti                                       ; fb
    1614716173    int 019h                                  ; cd 19
    1614816174    sti                                       ; fb
    1614916175    hlt                                       ; f4
    16150     jmp short 0e376h                          ; eb fd
     16176    jmp short 0e35eh                          ; eb fd
    1615116177    cli                                       ; fa
    1615216178    hlt                                       ; f4
     
    1617016196    sti                                       ; fb
    1617116197    retf 00002h                               ; ca 02 00
    16172 biosorg_check_before_or_at_0E3FCh:           ; 0xfe3a4 LB 0x5a
    16173     times 0x58 db 0
     16198biosorg_check_before_or_at_0E3FCh:           ; 0xfe38c LB 0x72
     16199    times 0x70 db 0
    1617416200    db  'XM'
    1617516201int13_handler:                               ; 0xfe3fe LB 0x3
     
    1624516271    pop DS                                    ; 1f
    1624616272    cld                                       ; fc
    16247     call 064f7h                               ; e8 b5 7d
     16273    call 06515h                               ; e8 d3 7d
    1624816274    popaw                                     ; 61
    1624916275    pop ES                                    ; 07
     
    1632616352    pop DS                                    ; 1f
    1632716353    cld                                       ; fc
    16328     call 057e5h                               ; e8 a2 6f
     16354    call 05803h                               ; e8 c0 6f
    1632916355    popaw                                     ; 61
    1633016356    pop DS                                    ; 1f
     
    1634416370    pop DS                                    ; 1f
    1634516371    cld                                       ; fc
    16346     call 057e5h                               ; e8 81 6f
     16372    call 05803h                               ; e8 9f 6f
    1634716373    popaw                                     ; 61
    1634816374    pop DS                                    ; 1f
     
    1643916465    pop DS                                    ; 1f
    1644016466    cld                                       ; fc
    16441     call 052ddh                               ; e8 1e 69
     16467    call 052fbh                               ; e8 3c 69
    1644216468    pop ES                                    ; 07
    1644316469    popaw                                     ; 61
     
    1645516481    pop DS                                    ; 1f
    1645616482    cld                                       ; fc
    16457     call 06fc0h                               ; e8 eb 85
     16483    call 06fdeh                               ; e8 09 86
    1645816484    pop DS                                    ; 1f
    1645916485    pop ES                                    ; 07
     
    1647716503    cld                                       ; fc
    1647816504    push 0ece9h                               ; 68 e9 ec
    16479     jmp near 03d01h                           ; e9 90 50
     16505    jmp near 03d1fh                           ; e9 ae 50
    1648016506    push ES                                   ; 06
    1648116507    push ax                                   ; 50
     
    1648316509    push cx                                   ; 51
    1648416510    push dx                                   ; 52
    16485     call 03cd5h                               ; e8 5c 50
     16511    call 03cf3h                               ; e8 7a 50
    1648616512    cmp AL, strict byte 000h                  ; 3c 00
    1648716513    je short 0ecabh                           ; 74 2e
    16488     call 03cebh                               ; e8 6b 50
     16514    call 03d09h                               ; e8 89 50
    1648916515    pop dx                                    ; 5a
    1649016516    push dx                                   ; 52
     
    1650416530    cld                                       ; fc
    1650516531    push 0ece9h                               ; 68 e9 ec
    16506     jmp near 042d6h                           ; e9 3f 56
     16532    jmp near 042f4h                           ; e9 5d 56
    1650716533    and dl, 0e0h                              ; 80 e2 e0
    1650816534    db  03ah, 0c2h
     
    1654416570    jne short 0ecc8h                          ; 75 06
    1654516571    push 0ece9h                               ; 68 e9 ec
    16546     jmp near 03303h                           ; e9 3b 46
     16572    jmp near 03321h                           ; e9 59 46
    1654716573int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1654816574    cmp dl, 0e0h                              ; 80 fa e0
     
    1655016576    shr ebx, 010h                             ; 66 c1 eb 10
    1655116577    push bx                                   ; 53
    16552     call 0470ah                               ; e8 35 5a
     16578    call 04728h                               ; e8 53 5a
    1655316579    pop bx                                    ; 5b
    1655416580    sal ebx, 010h                             ; 66 c1 e3 10
     
    1655716583    cmp ah, 040h                              ; 80 fc 40
    1655816584    jnbe short 0ece6h                         ; 77 05
    16559     call 05bb5h                               ; e8 d1 6e
     16585    call 05bd3h                               ; e8 ef 6e
    1656016586    jmp short 0ece9h                          ; eb 03
    16561     call 06003h                               ; e8 1a 73
     16587    call 06021h                               ; e8 38 73
    1656216588int13_out:                                   ; 0xfece9 LB 0x4
    1656316589    pop DS                                    ; 1f
     
    1677516801    pop DS                                    ; 1f
    1677616802    cld                                       ; fc
    16777     call 0793bh                               ; e8 5e 89
     16803    call 07959h                               ; e8 7c 89
    1677816804    popaw                                     ; 61
    1677916805    pop ES                                    ; 07
     
    1682616852    mov ax, strict word 00001h                ; b8 01 00
    1682716853    push ax                                   ; 50
    16828     call 04d71h                               ; e8 a1 5c
     16854    call 04d8fh                               ; e8 bf 5c
    1682916855    inc sp                                    ; 44
    1683016856    inc sp                                    ; 44
     
    1683316859    mov ax, strict word 00002h                ; b8 02 00
    1683416860    push ax                                   ; 50
    16835     call 04d71h                               ; e8 94 5c
     16861    call 04d8fh                               ; e8 b2 5c
    1683616862    inc sp                                    ; 44
    1683716863    inc sp                                    ; 44
     
    1684016866    mov ax, strict word 00003h                ; b8 03 00
    1684116867    push ax                                   ; 50
    16842     call 04d71h                               ; e8 87 5c
     16868    call 04d8fh                               ; e8 a5 5c
    1684316869    inc sp                                    ; 44
    1684416870    inc sp                                    ; 44
     
    1684716873    mov ax, strict word 00004h                ; b8 04 00
    1684816874    push ax                                   ; 50
    16849     call 04d71h                               ; e8 7a 5c
     16875    call 04d8fh                               ; e8 98 5c
    1685016876    inc sp                                    ; 44
    1685116877    inc sp                                    ; 44
     
    1698917015    pop DS                                    ; 1f
    1699017016    cld                                       ; fc
    16991     call 06e15h                               ; e8 ae 75
     17017    call 06e33h                               ; e8 cc 75
    1699217018    pop DS                                    ; 1f
    1699317019    pop ES                                    ; 07
     
    1701117037    cmp ah, 0c2h                              ; 80 fc c2
    1701217038    je short 0f899h                           ; 74 0e
    17013     call 06749h                               ; e8 bb 6e
     17039    call 06767h                               ; e8 d9 6e
    1701417040    popaw                                     ; 61
    1701517041    pop ES                                    ; 07
     
    1701717043    popfw                                     ; 9d
    1701817044    jmp short 0f8a7h                          ; eb 13
    17019     call 09ac1h                               ; e8 2a a2
     17045    call 09adfh                               ; e8 48 a2
    1702017046    jmp short 0f88eh                          ; eb f5
    1702117047int15_handler_mouse:                         ; 0xff899 LB 0x5
    17022     call 075b0h                               ; e8 14 7d
     17048    call 075ceh                               ; e8 32 7d
    1702317049    jmp short 0f88eh                          ; eb f0
    1702417050int15_handler32:                             ; 0xff89e LB 0x9
    1702517051    pushad                                    ; 66 60
    17026     call 06a7fh                               ; e8 dc 71
     17052    call 06a9dh                               ; e8 fa 71
    1702717053    popad                                     ; 66 61
    1702817054    jmp short 0f88fh                          ; eb e8
     
    1705717083    pop DS                                    ; 1f
    1705817084    cld                                       ; fc
    17059     call 074e6h                               ; e8 14 7c
     17085    call 07504h                               ; e8 32 7c
    1706017086    pop cx                                    ; 59
    1706117087    jcxz 0f8e1h                               ; e3 0c
     
    1708917115    pop DS                                    ; 1f
    1709017116    cld                                       ; fc
    17091     call 0719eh                               ; e8 97 78
     17117    call 071bch                               ; e8 b5 78
    1709217118    popaw                                     ; 61
    1709317119    pop DS                                    ; 1f
     
    1717117197    cld                                       ; fc
    1717217198    pushad                                    ; 66 60
    17173     call 09cd1h                               ; e8 54 9e
     17199    call 09cefh                               ; e8 72 9e
    1717417200    popad                                     ; 66 61
    1717517201    pop DS                                    ; 1f
     
    1718217208    pop DS                                    ; 1f
    1718317209    cld                                       ; fc
    17184     call 0725ch                               ; e8 d1 73
     17210    call 0727ah                               ; e8 ef 73
    1718517211    popaw                                     ; 61
    1718617212    pop DS                                    ; 1f
     
    1728517311cpu_reset:                                   ; 0xffff0 LB 0x10
    1728617312    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17287     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 097h
     17313    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 010h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum

    r68934 r69128  
    1 6036b256cf58d884819ecdbbb6307d91 *VBoxPcBios386.rom
     15c1e6f4b33cd5a3287fb46724322322f *VBoxPcBios386.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm

    r68934 r69128  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 00bh, 082h, 0ech, 091h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 0c1h, 02bh, 02bh, 082h, 00ch, 092h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992     db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 02eh, 03ch, 02eh, 03ch
     992    db  000h, 000h, 000h, 000h, 000h, 000h, 04ch, 02eh, 04eh, 03ch, 04eh, 03ch
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
    995     db  039h, 080h, 022h, 081h, 0bah, 090h, 064h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0a5h, 02ah, 066h, 02bh, 000h, 000h, 000h, 000h
     995    db  059h, 080h, 042h, 081h, 0dah, 090h, 084h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11141114    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    11151115
    1116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fe class=DATA group=DGROUP
    1117 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x16
    1118     db  'VirtualBox 5.2.0_RC1', 000h, 000h
    1119 _bios_prefix_string:                         ; 0xf0da4 LB 0x8
     1116section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
     1117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
     1118    db  'VirtualBox 5.2.0', 000h, 000h
     1119_bios_prefix_string:                         ; 0xf0da0 LB 0x8
    11201120    db  'BIOS: ', 000h, 000h
    1121 _isotag:                                     ; 0xf0dac LB 0x6
     1121_isotag:                                     ; 0xf0da8 LB 0x6
    11221122    db  'CD001', 000h
    1123 _eltorito:                                   ; 0xf0db2 LB 0x18
     1123_eltorito:                                   ; 0xf0dae LB 0x18
    11241124    db  'EL TORITO SPECIFICATION', 000h
    1125 _drivetypes:                                 ; 0xf0dca LB 0x28
     1125_drivetypes:                                 ; 0xf0dc6 LB 0x28
    11261126    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    11271127    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    11281128    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1129 _scan_to_scanascii:                          ; 0xf0df2 LB 0x37a
     1129_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
    11301130    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    11311131    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    11841184    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    11851185    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1186 _panic_msg_keyb_buffer_full:                 ; 0xf116c LB 0x20
     1186_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
    11871187    db  '%s: keyboard input buffer full', 00ah, 000h
    11881188
    1189   ; Padding 0x474 bytes at 0xf118c
    1190   times 1140 db 0
     1189  ; Padding 0x478 bytes at 0xf1188
     1190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8eb8 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ed8 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x52
    11941194    push bp                                   ; 55
     
    14181418    push bp                                   ; 55
    14191419    mov bp, sp                                ; 89 e5
    1420     mov bx, 00da4h                            ; bb a4 0d
     1420    mov bx, 00da0h                            ; bb a0 0d
    14211421    mov cx, ds                                ; 8c d9
    14221422    mov ax, strict word 00004h                ; b8 04 00
     
    14501450    int 010h                                  ; cd 10
    14511451    jmp short 017c3h                          ; eb 03
    1452     call 07bceh                               ; e8 0b 64
     1452    call 07beeh                               ; e8 2b 64
    14531453    mov sp, bp                                ; 89 ec
    14541454    pop bp                                    ; 5d
     
    15961596    mov bx, strict word 0000ah                ; bb 0a 00
    15971597    xor cx, cx                                ; 31 c9
    1598     call 0a150h                               ; e8 73 88
     1598    call 0a170h                               ; e8 93 88
    15991599    mov word [bp-008h], ax                    ; 89 46 f8
    16001600    mov cx, dx                                ; 89 d1
     
    18331833    mov dx, word [bp-026h]                    ; 8b 56 da
    18341834    mov si, word [bp-01eh]                    ; 8b 76 e2
    1835     call 0a180h                               ; e8 68 86
     1835    call 0a1a0h                               ; e8 88 86
    18361836    mov ax, dx                                ; 89 d0
    18371837    xor ah, dh                                ; 30 f4
     
    22942294    mov dx, word [es:si]                      ; 26 8b 14
    22952295    mov si, strict word 00018h                ; be 18 00
    2296     call 0a180h                               ; e8 ee 81
     2296    call 0a1a0h                               ; e8 0e 82
    22972297    xor dh, dh                                ; 30 f6
    22982298    mov word [bp-014h], dx                    ; 89 56 ec
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00020h                ; be 20 00
    2306     call 0a180h                               ; e8 ce 81
     2306    call 0a1a0h                               ; e8 ee 81
    23072307    mov bx, dx                                ; 89 d3
    23082308    mov word [bp-010h], dx                    ; 89 56 f0
     
    23362336    mov dx, word [es:si]                      ; 26 8b 14
    23372337    mov si, strict word 00008h                ; be 08 00
    2338     call 0a180h                               ; e8 7b 81
     2338    call 0a1a0h                               ; e8 9b 81
    23392339    mov word [bp-010h], dx                    ; 89 56 f0
    23402340    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23452345    mov dx, word [es:si]                      ; 26 8b 14
    23462346    mov si, strict word 00018h                ; be 18 00
    2347     call 0a180h                               ; e8 5d 81
     2347    call 0a1a0h                               ; e8 7d 81
    23482348    mov bl, dl                                ; 88 d3
    23492349    and bl, 00fh                              ; 80 e3 0f
     
    24762476    pop bp                                    ; 5d
    24772477    retn                                      ; c3
    2478 _ata_detect:                                 ; 0xf2154 LB 0x6a3
     2478_ata_detect:                                 ; 0xf2154 LB 0x6c3
    24792479    push bp                                   ; 55
    24802480    mov bp, sp                                ; 89 e5
     
    24852485    mov ax, strict word 00040h                ; b8 40 00
    24862486    call 0166eh                               ; e8 08 f5
    2487     mov word [bp-024h], ax                    ; 89 46 dc
     2487    mov word [bp-028h], ax                    ; 89 46 d8
    24882488    mov bx, 00122h                            ; bb 22 01
    24892489    mov es, ax                                ; 8e c0
    2490     mov word [bp-01eh], bx                    ; 89 5e e2
    2491     mov word [bp-022h], ax                    ; 89 46 de
     2490    mov word [bp-02eh], bx                    ; 89 5e d2
     2491    mov word [bp-02ah], ax                    ; 89 46 d6
    24922492    mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
    24932493    mov word [es:bx+00206h], 001f0h           ; 26 c7 87 06 02 f0 01
     
    24992499    mov byte [es:bx+0020bh], 00fh             ; 26 c6 87 0b 02 0f
    25002500    xor al, al                                ; 30 c0
    2501     mov byte [bp-00ch], al                    ; 88 46 f4
    2502     mov byte [bp-008h], al                    ; 88 46 f8
    2503     mov byte [bp-010h], al                    ; 88 46 f0
    2504     jmp near 02775h                           ; e9 bf 05
     2501    mov byte [bp-012h], al                    ; 88 46 ee
     2502    mov byte [bp-00ah], al                    ; 88 46 f6
     2503    mov byte [bp-014h], al                    ; 88 46 ec
     2504    jmp near 02795h                           ; e9 df 05
    25052505    mov ax, 000a0h                            ; b8 a0 00
    25062506    lea dx, [bx+006h]                         ; 8d 57 06
     
    25372537    cmp AL, strict byte 0aah                  ; 3c aa
    25382538    jne short 0223ah                          ; 75 48
    2539     mov al, byte [bp-010h]                    ; 8a 46 f0
     2539    mov al, byte [bp-014h]                    ; 8a 46 ec
    25402540    xor ah, ah                                ; 30 e4
    25412541    mov dx, strict word 0001ch                ; ba 1c 00
    25422542    imul dx                                   ; f7 ea
    2543     mov es, [bp-022h]                         ; 8e 46 de
    2544     mov si, word [bp-01eh]                    ; 8b 76 e2
     2543    mov es, [bp-02ah]                         ; 8e 46 d6
     2544    mov si, word [bp-02eh]                    ; 8b 76 d2
    25452545    add si, ax                                ; 01 c6
    25462546    mov byte [es:si+022h], 001h               ; 26 c6 44 22 01
    2547     mov al, byte [bp-010h]                    ; 8a 46 f0
     2547    mov al, byte [bp-014h]                    ; 8a 46 ec
    25482548    xor ah, ah                                ; 30 e4
    25492549    call 01db8h                               ; e8 a7 fb
    2550     cmp byte [bp-014h], 000h                  ; 80 7e ec 00
     2550    cmp byte [bp-01ah], 000h                  ; 80 7e e6 00
    25512551    je short 0221ch                           ; 74 05
    25522552    mov ax, 000b0h                            ; b8 b0 00
     
    25792579    db  02ah, 0e4h
    25802580    ; sub ah, ah                                ; 2a e4
    2581     mov word [bp-032h], ax                    ; 89 46 ce
    2582     mov al, byte [bp-032h]                    ; 8a 46 ce
    2583     mov byte [bp-00ah], al                    ; 88 46 f6
     2581    mov word [bp-02ch], ax                    ; 89 46 d4
     2582    mov al, byte [bp-02ch]                    ; 8a 46 d4
     2583    mov byte [bp-006h], al                    ; 88 46 fa
    25842584    lea dx, [bx+007h]                         ; 8d 57 07
    25852585    in AL, DX                                 ; ec
     
    25882588    cmp cl, 014h                              ; 80 f9 14
    25892589    jne short 0227fh                          ; 75 1f
    2590     cmp byte [bp-032h], 0ebh                  ; 80 7e ce eb
     2590    cmp byte [bp-02ch], 0ebh                  ; 80 7e d4 eb
    25912591    jne short 0227fh                          ; 75 19
    2592     mov al, byte [bp-010h]                    ; 8a 46 f0
     2592    mov al, byte [bp-014h]                    ; 8a 46 ec
    25932593    xor ah, ah                                ; 30 e4
    25942594    mov dx, strict word 0001ch                ; ba 1c 00
    25952595    imul dx                                   ; f7 ea
    2596     mov es, [bp-022h]                         ; 8e 46 de
    2597     mov bx, word [bp-01eh]                    ; 8b 5e e2
     2596    mov es, [bp-02ah]                         ; 8e 46 d6
     2597    mov bx, word [bp-02eh]                    ; 8b 5e d2
    25982598    add bx, ax                                ; 01 c3
    25992599    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
     
    26012601    test ch, ch                               ; 84 ed
    26022602    jne short 022a6h                          ; 75 23
    2603     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     2603    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    26042604    jne short 022a6h                          ; 75 1d
    26052605    test al, al                               ; 84 c0
    26062606    je short 022a6h                           ; 74 19
    2607     mov al, byte [bp-010h]                    ; 8a 46 f0
     2607    mov al, byte [bp-014h]                    ; 8a 46 ec
    26082608    xor ah, ah                                ; 30 e4
    26092609    mov dx, strict word 0001ch                ; ba 1c 00
    26102610    imul dx                                   ; f7 ea
    2611     mov es, [bp-022h]                         ; 8e 46 de
    2612     mov bx, word [bp-01eh]                    ; 8b 5e e2
     2611    mov es, [bp-02ah]                         ; 8e 46 d6
     2612    mov bx, word [bp-02eh]                    ; 8b 5e d2
    26132613    add bx, ax                                ; 01 c3
    26142614    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
     
    26162616    cmp ch, 0ffh                              ; 80 fd ff
    26172617    jne short 022c7h                          ; 75 1c
    2618     cmp ch, byte [bp-00ah]                    ; 3a 6e f6
     2618    cmp ch, byte [bp-006h]                    ; 3a 6e fa
    26192619    jne short 022c7h                          ; 75 17
    2620     mov al, byte [bp-010h]                    ; 8a 46 f0
     2620    mov al, byte [bp-014h]                    ; 8a 46 ec
    26212621    xor ah, ah                                ; 30 e4
    26222622    mov dx, strict word 0001ch                ; ba 1c 00
    26232623    imul dx                                   ; f7 ea
    2624     mov es, [bp-022h]                         ; 8e 46 de
    2625     mov bx, word [bp-01eh]                    ; 8b 5e e2
     2624    mov es, [bp-02ah]                         ; 8e 46 d6
     2625    mov bx, word [bp-02eh]                    ; 8b 5e d2
    26262626    add bx, ax                                ; 01 c3
    26272627    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    2628     mov dx, word [bp-028h]                    ; 8b 56 d8
     2628    mov dx, word [bp-032h]                    ; 8b 56 ce
    26292629    add dx, strict byte 00006h                ; 83 c2 06
    26302630    mov AL, strict byte 008h                  ; b0 08
    26312631    out DX, AL                                ; ee
    2632     mov al, byte [bp-010h]                    ; 8a 46 f0
     2632    mov al, byte [bp-014h]                    ; 8a 46 ec
    26332633    xor ah, ah                                ; 30 e4
    26342634    mov dx, strict word 0001ch                ; ba 1c 00
    26352635    imul dx                                   ; f7 ea
    2636     mov es, [bp-022h]                         ; 8e 46 de
    2637     mov bx, word [bp-01eh]                    ; 8b 5e e2
     2636    mov es, [bp-02ah]                         ; 8e 46 d6
     2637    mov bx, word [bp-02eh]                    ; 8b 5e d2
    26382638    add bx, ax                                ; 01 c3
    26392639    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
    2640     mov byte [bp-012h], al                    ; 88 46 ee
     2640    mov byte [bp-018h], al                    ; 88 46 e8
    26412641    cmp AL, strict byte 002h                  ; 3c 02
    26422642    jne short 02339h                          ; 75 4c
     
    26442644    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    26452645    lea dx, [bp-00268h]                       ; 8d 96 98 fd
    2646     mov bx, word [bp-01eh]                    ; 8b 5e e2
     2646    mov bx, word [bp-02eh]                    ; 8b 5e d2
    26472647    mov word [es:bx+008h], dx                 ; 26 89 57 08
    26482648    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
    2649     mov al, byte [bp-010h]                    ; 8a 46 f0
     2649    mov al, byte [bp-014h]                    ; 8a 46 ec
    26502650    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    26512651    mov cx, strict word 00001h                ; b9 01 00
    26522652    mov bx, 000ech                            ; bb ec 00
    2653     mov ax, word [bp-01eh]                    ; 8b 46 e2
     2653    mov ax, word [bp-02eh]                    ; 8b 46 d2
    26542654    mov dx, es                                ; 8c c2
    26552655    call 01e9dh                               ; e8 82 fb
     
    26662666    mov ax, strict word 00001h                ; b8 01 00
    26672667    jmp short 0233eh                          ; eb 05
    2668     jmp near 02520h                           ; e9 e4 01
     2668    jmp near 02540h                           ; e9 04 02
    26692669    xor ax, ax                                ; 31 c0
    2670     mov byte [bp-01ah], al                    ; 88 46 e6
    2671     mov byte [bp-006h], 000h                  ; c6 46 fa 00
    2672     mov word [bp-036h], 00200h                ; c7 46 ca 00 02
     2670    mov byte [bp-008h], al                    ; 88 46 f8
     2671    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     2672    mov word [bp-038h], 00200h                ; c7 46 c8 00 02
    26732673    mov ax, word [bp-00266h]                  ; 8b 86 9a fd
    2674     mov word [bp-02ch], ax                    ; 89 46 d4
     2674    mov word [bp-026h], ax                    ; 89 46 da
    26752675    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
    2676     mov word [bp-034h], ax                    ; 89 46 cc
     2676    mov word [bp-01eh], ax                    ; 89 46 e2
    26772677    mov ax, word [bp-0025ch]                  ; 8b 86 a4 fd
     2678    mov word [bp-020h], ax                    ; 89 46 e0
     2679    mov ax, word [bp-001f0h]                  ; 8b 86 10 fe
     2680    mov word [bp-030h], ax                    ; 89 46 d0
     2681    mov si, word [bp-001eeh]                  ; 8b b6 12 fe
     2682    xor ax, ax                                ; 31 c0
    26782683    mov word [bp-01ch], ax                    ; 89 46 e4
    2679     mov si, word [bp-001f0h]                  ; 8b b6 10 fe
    2680     mov ax, word [bp-001eeh]                  ; 8b 86 12 fe
    2681     mov word [bp-030h], ax                    ; 89 46 d0
    2682     xor ax, ax                                ; 31 c0
    2683     mov word [bp-02eh], ax                    ; 89 46 d2
    2684     mov word [bp-020h], ax                    ; 89 46 e0
    2685     cmp word [bp-030h], 00fffh                ; 81 7e d0 ff 0f
    2686     jne short 02397h                          ; 75 1e
    2687     cmp si, strict byte 0ffffh                ; 83 fe ff
     2684    mov word [bp-024h], ax                    ; 89 46 dc
     2685    cmp si, 00fffh                            ; 81 fe ff 0f
     2686    jne short 02397h                          ; 75 1f
     2687    cmp word [bp-030h], strict byte 0ffffh    ; 83 7e d0 ff
    26882688    jne short 02397h                          ; 75 19
    26892689    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
    2690     mov word [bp-020h], ax                    ; 89 46 e0
     2690    mov word [bp-024h], ax                    ; 89 46 dc
    26912691    mov ax, word [bp-0019ch]                  ; 8b 86 64 fe
    2692     mov word [bp-02eh], ax                    ; 89 46 d2
    2693     mov ax, word [bp-0019eh]                  ; 8b 86 62 fe
     2692    mov word [bp-01ch], ax                    ; 89 46 e4
     2693    mov si, word [bp-0019eh]                  ; 8b b6 62 fe
     2694    mov ax, word [bp-001a0h]                  ; 8b 86 60 fe
    26942695    mov word [bp-030h], ax                    ; 89 46 d0
    2695     mov si, word [bp-001a0h]                  ; 8b b6 60 fe
    2696     mov al, byte [bp-010h]                    ; 8a 46 f0
     2696    mov al, byte [bp-014h]                    ; 8a 46 ec
    26972697    cmp AL, strict byte 001h                  ; 3c 01
    26982698    jc short 023aah                           ; 72 0c
     
    27352735    mov word [bp-03ah], ax                    ; 89 46 c6
    27362736    jmp short 02401h                          ; eb 12
    2737     push word [bp-020h]                       ; ff 76 e0
    2738     push word [bp-02eh]                       ; ff 76 d2
     2737    push word [bp-024h]                       ; ff 76 dc
     2738    push word [bp-01ch]                       ; ff 76 e4
     2739    push si                                   ; 56
    27392740    push word [bp-030h]                       ; ff 76 d0
    2740     push si                                   ; 56
    27412741    mov dx, ss                                ; 8c d2
    27422742    lea ax, [bp-03eh]                         ; 8d 46 c2
    2743     call 05b7fh                               ; e8 7e 37
    2744     mov bx, 00da4h                            ; bb a4 0d
     2743    call 05b9fh                               ; e8 9e 37
     2744    mov bx, 00da0h                            ; bb a0 0d
    27452745    mov cx, ds                                ; 8c d9
    27462746    mov ax, strict word 00004h                ; b8 04 00
     
    27522752    mov ax, word [bp-03ch]                    ; 8b 46 c4
    27532753    push ax                                   ; 50
    2754     push word [bp-01ch]                       ; ff 76 e4
    2755     push word [bp-034h]                       ; ff 76 cc
    2756     push word [bp-02ch]                       ; ff 76 d4
    2757     mov al, byte [bp-014h]                    ; 8a 46 ec
    2758     xor ah, ah                                ; 30 e4
    2759     push ax                                   ; 50
    2760     mov al, byte [bp-018h]                    ; 8a 46 e8
     2754    push word [bp-020h]                       ; ff 76 e0
     2755    push word [bp-01eh]                       ; ff 76 e2
     2756    push word [bp-026h]                       ; ff 76 da
     2757    mov al, byte [bp-01ah]                    ; 8a 46 e6
     2758    xor ah, ah                                ; 30 e4
     2759    push ax                                   ; 50
     2760    mov al, byte [bp-00ch]                    ; 8a 46 f4
    27612761    push ax                                   ; 50
    27622762    mov ax, 0014dh                            ; b8 4d 01
     
    27662766    call 01976h                               ; e8 40 f5
    27672767    add sp, strict byte 00014h                ; 83 c4 14
    2768     mov al, byte [bp-010h]                    ; 8a 46 f0
     2768    mov al, byte [bp-014h]                    ; 8a 46 ec
    27692769    xor ah, ah                                ; 30 e4
    27702770    mov dx, strict word 0001ch                ; ba 1c 00
    27712771    imul dx                                   ; f7 ea
    2772     mov es, [bp-022h]                         ; 8e 46 de
    2773     mov di, word [bp-01eh]                    ; 8b 7e e2
     2772    mov es, [bp-02ah]                         ; 8e 46 d6
     2773    mov di, word [bp-02eh]                    ; 8b 7e d2
    27742774    add di, ax                                ; 01 c7
    27752775    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
    2776     mov al, byte [bp-01ah]                    ; 8a 46 e6
     2776    mov al, byte [bp-008h]                    ; 8a 46 f8
    27772777    mov byte [es:di+024h], al                 ; 26 88 45 24
    2778     mov al, byte [bp-006h]                    ; 8a 46 fa
     2778    mov al, byte [bp-00eh]                    ; 8a 46 f2
    27792779    mov byte [es:di+026h], al                 ; 26 88 45 26
    2780     mov ax, word [bp-036h]                    ; 8b 46 ca
     2780    mov ax, word [bp-038h]                    ; 8b 46 c8
    27812781    mov word [es:di+028h], ax                 ; 26 89 45 28
    2782     mov ax, word [bp-034h]                    ; 8b 46 cc
     2782    mov ax, word [bp-01eh]                    ; 8b 46 e2
    27832783    mov word [es:di+030h], ax                 ; 26 89 45 30
    2784     mov ax, word [bp-02ch]                    ; 8b 46 d4
     2784    mov ax, word [bp-026h]                    ; 8b 46 da
    27852785    mov word [es:di+032h], ax                 ; 26 89 45 32
     2786    mov ax, word [bp-020h]                    ; 8b 46 e0
     2787    mov word [es:di+034h], ax                 ; 26 89 45 34
     2788    mov ax, word [bp-024h]                    ; 8b 46 dc
     2789    mov word [es:di+03ch], ax                 ; 26 89 45 3c
    27862790    mov ax, word [bp-01ch]                    ; 8b 46 e4
    2787     mov word [es:di+034h], ax                 ; 26 89 45 34
    2788     mov ax, word [bp-020h]                    ; 8b 46 e0
    2789     mov word [es:di+03ch], ax                 ; 26 89 45 3c
    2790     mov ax, word [bp-02eh]                    ; 8b 46 d2
    27912791    mov word [es:di+03ah], ax                 ; 26 89 45 3a
     2792    mov word [es:di+038h], si                 ; 26 89 75 38
    27922793    mov ax, word [bp-030h]                    ; 8b 46 d0
    2793     mov word [es:di+038h], ax                 ; 26 89 45 38
    2794     mov word [es:di+036h], si                 ; 26 89 75 36
     2794    mov word [es:di+036h], ax                 ; 26 89 45 36
    27952795    lea di, [di+02ah]                         ; 8d 7d 2a
    27962796    push DS                                   ; 1e
     
    28022802    movsw                                     ; a5
    28032803    pop DS                                    ; 1f
    2804     mov al, byte [bp-010h]                    ; 8a 46 f0
     2804    mov al, byte [bp-014h]                    ; 8a 46 ec
    28052805    cmp AL, strict byte 002h                  ; 3c 02
    2806     jnc short 0250ah                          ; 73 63
     2806    jnc short 0250bh                          ; 73 64
    28072807    test al, al                               ; 84 c0
    28082808    jne short 024b0h                          ; 75 05
     
    28102810    jmp short 024b3h                          ; eb 03
    28112811    mov di, strict word 0004dh                ; bf 4d 00
    2812     mov dx, word [bp-024h]                    ; 8b 56 dc
     2812    mov cx, word [bp-028h]                    ; 8b 4e d8
     2813    mov al, byte [bp-014h]                    ; 8a 46 ec
     2814    xor ah, ah                                ; 30 e4
     2815    mov dx, strict word 00005h                ; ba 05 00
     2816    imul dx                                   ; f7 ea
     2817    mov bx, ax                                ; 89 c3
     2818    sal bx, 1                                 ; d1 e3
     2819    sal bx, 1                                 ; d1 e3
     2820    add bx, 00104h                            ; 81 c3 04 01
     2821    xor ax, ax                                ; 31 c0
     2822    mov es, ax                                ; 8e c0
     2823    mov word [es:bx], di                      ; 26 89 3f
     2824    mov word [es:bx+002h], cx                 ; 26 89 4f 02
    28132825    mov bx, word [bp-03ch]                    ; 8b 5e c4
    2814     mov es, dx                                ; 8e c2
     2826    mov es, cx                                ; 8e c1
    28152827    mov word [es:di], bx                      ; 26 89 1d
    28162828    mov bl, byte [bp-03eh]                    ; 8a 5e c2
    28172829    mov byte [es:di+002h], bl                 ; 26 88 5d 02
    28182830    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
    2819     mov al, byte [bp-01ch]                    ; 8a 46 e4
     2831    mov al, byte [bp-020h]                    ; 8a 46 e0
    28202832    mov byte [es:di+004h], al                 ; 26 88 45 04
    2821     mov ax, word [bp-02ch]                    ; 8b 46 d4
     2833    mov ax, word [bp-026h]                    ; 8b 46 da
    28222834    mov word [es:di+009h], ax                 ; 26 89 45 09
    2823     mov al, byte [bp-034h]                    ; 8a 46 cc
     2835    mov al, byte [bp-01eh]                    ; 8a 46 e2
    28242836    mov byte [es:di+00bh], al                 ; 26 88 45 0b
    2825     mov al, byte [bp-01ch]                    ; 8a 46 e4
    2826     mov byte [es:di+00eh], al                 ; 26 88 45 0e
     2837    mov bl, byte [bp-03ah]                    ; 8a 5e c6
     2838    mov byte [es:di+00eh], bl                 ; 26 88 5d 0e
    28272839    xor bl, bl                                ; 30 db
     2840    xor al, al                                ; 30 c0
     2841    jmp short 02511h                          ; eb 06
     2842    jmp short 0252ah                          ; eb 1d
     2843    cmp AL, strict byte 00fh                  ; 3c 0f
     2844    jnc short 02522h                          ; 73 11
     2845    mov dl, al                                ; 88 c2
     2846    xor dh, dh                                ; 30 f6
     2847    mov es, cx                                ; 8e c1
     2848    mov si, di                                ; 89 fe
     2849    add si, dx                                ; 01 d6
     2850    add bl, byte [es:si]                      ; 26 02 1c
     2851    db  0feh, 0c0h
     2852    ; inc al                                    ; fe c0
     2853    jmp short 0250dh                          ; eb eb
     2854    neg bl                                    ; f6 db
     2855    mov es, cx                                ; 8e c1
     2856    mov byte [es:di+00fh], bl                 ; 26 88 5d 0f
     2857    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    28282858    xor bh, bh                                ; 30 ff
    2829     jmp short 024f1h                          ; eb 05
    2830     cmp bh, 00fh                              ; 80 ff 0f
    2831     jnc short 02502h                          ; 73 11
    2832     mov al, bh                                ; 88 f8
    2833     xor ah, ah                                ; 30 e4
    2834     mov es, dx                                ; 8e c2
    2835     mov si, di                                ; 89 fe
    2836     add si, ax                                ; 01 c6
    2837     add bl, byte [es:si]                      ; 26 02 1c
    2838     db  0feh, 0c7h
    2839     ; inc bh                                    ; fe c7
    2840     jmp short 024ech                          ; eb ea
    2841     neg bl                                    ; f6 db
    2842     mov es, dx                                ; 8e c2
    2843     mov byte [es:di+00fh], bl                 ; 26 88 5d 0f
    2844     mov bl, byte [bp-008h]                    ; 8a 5e f8
    2845     xor bh, bh                                ; 30 ff
    2846     mov es, [bp-022h]                         ; 8e 46 de
    2847     add bx, word [bp-01eh]                    ; 03 5e e2
    2848     mov al, byte [bp-010h]                    ; 8a 46 f0
     2859    mov es, [bp-02ah]                         ; 8e 46 d6
     2860    add bx, word [bp-02eh]                    ; 03 5e d2
     2861    mov al, byte [bp-014h]                    ; 8a 46 ec
    28492862    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
    2850     inc byte [bp-008h]                        ; fe 46 f8
    2851     cmp byte [bp-012h], 003h                  ; 80 7e ee 03
    2852     jne short 0258dh                          ; 75 67
    2853     mov al, byte [bp-010h]                    ; 8a 46 f0
     2863    inc byte [bp-00ah]                        ; fe 46 f6
     2864    cmp byte [bp-018h], 003h                  ; 80 7e e8 03
     2865    jne short 025adh                          ; 75 67
     2866    mov al, byte [bp-014h]                    ; 8a 46 ec
    28542867    xor ah, ah                                ; 30 e4
    28552868    mov dx, strict word 0001ch                ; ba 1c 00
    28562869    imul dx                                   ; f7 ea
    2857     mov es, [bp-022h]                         ; 8e 46 de
    2858     mov bx, word [bp-01eh]                    ; 8b 5e e2
     2870    mov es, [bp-02ah]                         ; 8e 46 d6
     2871    mov bx, word [bp-02eh]                    ; 8b 5e d2
    28592872    add bx, ax                                ; 01 c3
    28602873    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
    28612874    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    28622875    lea dx, [bp-00268h]                       ; 8d 96 98 fd
    2863     mov bx, word [bp-01eh]                    ; 8b 5e e2
     2876    mov bx, word [bp-02eh]                    ; 8b 5e d2
    28642877    mov word [es:bx+008h], dx                 ; 26 89 57 08
    28652878    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
    2866     mov al, byte [bp-010h]                    ; 8a 46 f0
     2879    mov al, byte [bp-014h]                    ; 8a 46 ec
    28672880    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    28682881    mov cx, strict word 00001h                ; b9 01 00
    28692882    mov bx, 000a1h                            ; bb a1 00
    2870     mov ax, word [bp-01eh]                    ; 8b 46 e2
     2883    mov ax, word [bp-02eh]                    ; 8b 46 d2
    28712884    mov dx, es                                ; 8c c2
    2872     call 01e9dh                               ; e8 37 f9
     2885    call 01e9dh                               ; e8 17 f9
    28732886    test ax, ax                               ; 85 c0
    2874     je short 02578h                           ; 74 0e
     2887    je short 02598h                           ; 74 0e
    28752888    mov ax, 00174h                            ; b8 74 01
    28762889    push ax                                   ; 50
    28772890    mov ax, strict word 00007h                ; b8 07 00
    28782891    push ax                                   ; 50
    2879     call 01976h                               ; e8 01 f4
     2892    call 01976h                               ; e8 e1 f3
    28802893    add sp, strict byte 00004h                ; 83 c4 04
    28812894    mov al, byte [bp-00267h]                  ; 8a 86 99 fd
    28822895    and AL, strict byte 01fh                  ; 24 1f
    2883     mov byte [bp-016h], al                    ; 88 46 ea
     2896    mov byte [bp-010h], al                    ; 88 46 f0
    28842897    test byte [bp-00268h], 080h               ; f6 86 98 fd 80
    2885     je short 0258fh                           ; 74 07
     2898    je short 025afh                           ; 74 07
    28862899    mov cx, strict word 00001h                ; b9 01 00
    2887     jmp short 02591h                          ; eb 04
    2888     jmp short 025cch                          ; eb 3d
     2900    jmp short 025b1h                          ; eb 04
     2901    jmp short 025ech                          ; eb 3d
    28892902    xor cx, cx                                ; 31 c9
    2890     mov al, byte [bp-010h]                    ; 8a 46 f0
     2903    mov al, byte [bp-014h]                    ; 8a 46 ec
    28912904    xor ah, ah                                ; 30 e4
    28922905    mov dx, strict word 0001ch                ; ba 1c 00
    28932906    imul dx                                   ; f7 ea
    2894     mov es, [bp-022h]                         ; 8e 46 de
    2895     mov bx, word [bp-01eh]                    ; 8b 5e e2
     2907    mov es, [bp-02ah]                         ; 8e 46 d6
     2908    mov bx, word [bp-02eh]                    ; 8b 5e d2
    28962909    add bx, ax                                ; 01 c3
    2897     mov al, byte [bp-016h]                    ; 8a 46 ea
     2910    mov al, byte [bp-010h]                    ; 8a 46 f0
    28982911    mov byte [es:bx+023h], al                 ; 26 88 47 23
    28992912    mov byte [es:bx+024h], cl                 ; 26 88 4f 24
    29002913    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    29012914    mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
    2902     mov bl, byte [bp-00ch]                    ; 8a 5e f4
     2915    mov bl, byte [bp-012h]                    ; 8a 5e ee
    29032916    xor bh, bh                                ; 30 ff
    2904     add bx, word [bp-01eh]                    ; 03 5e e2
    2905     mov al, byte [bp-010h]                    ; 8a 46 f0
     2917    add bx, word [bp-02eh]                    ; 03 5e d2
     2918    mov al, byte [bp-014h]                    ; 8a 46 ec
    29062919    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
    2907     inc byte [bp-00ch]                        ; fe 46 f4
    2908     mov al, byte [bp-012h]                    ; 8a 46 ee
     2920    inc byte [bp-012h]                        ; fe 46 ee
     2921    mov al, byte [bp-018h]                    ; 8a 46 e8
    29092922    cmp AL, strict byte 003h                  ; 3c 03
    2910     je short 02605h                           ; 74 32
     2923    je short 02625h                           ; 74 32
    29112924    cmp AL, strict byte 002h                  ; 3c 02
    2912     jne short 0262ch                          ; 75 55
    2913     mov al, byte [bp-010h]                    ; 8a 46 f0
     2925    jne short 0264ch                          ; 75 55
     2926    mov al, byte [bp-014h]                    ; 8a 46 ec
    29142927    xor ah, ah                                ; 30 e4
    29152928    mov dx, strict word 0001ch                ; ba 1c 00
    29162929    imul dx                                   ; f7 ea
    2917     mov es, [bp-022h]                         ; 8e 46 de
    2918     mov di, word [bp-01eh]                    ; 8b 7e e2
     2930    mov es, [bp-02ah]                         ; 8e 46 d6
     2931    mov di, word [bp-02eh]                    ; 8b 7e d2
    29192932    add di, ax                                ; 01 c7
    29202933    mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
     
    29232936    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    29242937    mov si, strict word 0000bh                ; be 0b 00
    2925     call 0a180h                               ; e8 81 7b
    2926     mov word [bp-02ah], dx                    ; 89 56 d6
    2927     mov word [bp-026h], cx                    ; 89 4e da
     2938    call 0a1a0h                               ; e8 81 7b
     2939    mov word [bp-022h], dx                    ; 89 56 de
     2940    mov word [bp-036h], cx                    ; 89 4e ca
    29282941    mov dh, byte [bp-001c7h]                  ; 8a b6 39 fe
    29292942    mov dl, byte [bp-001c8h]                  ; 8a 96 38 fe
    2930     mov byte [bp-00eh], 00fh                  ; c6 46 f2 0f
    2931     jmp short 0261ch                          ; eb 09
    2932     dec byte [bp-00eh]                        ; fe 4e f2
    2933     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2934     jbe short 02628h                          ; 76 0c
    2935     mov cl, byte [bp-00eh]                    ; 8a 4e f2
     2943    mov byte [bp-016h], 00fh                  ; c6 46 ea 0f
     2944    jmp short 0263ch                          ; eb 09
     2945    dec byte [bp-016h]                        ; fe 4e ea
     2946    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
     2947    jbe short 02648h                          ; 76 0c
     2948    mov cl, byte [bp-016h]                    ; 8a 4e ea
    29362949    mov ax, strict word 00001h                ; b8 01 00
    29372950    sal ax, CL                                ; d3 e0
    29382951    test dx, ax                               ; 85 c2
    2939     je short 02613h                           ; 74 eb
     2952    je short 02633h                           ; 74 eb
    29402953    xor di, di                                ; 31 ff
    2941     jmp short 02633h                          ; eb 07
    2942     jmp short 02662h                          ; eb 34
     2954    jmp short 02653h                          ; eb 07
     2955    jmp short 02682h                          ; eb 34
    29432956    cmp di, strict byte 00014h                ; 83 ff 14
    2944     jnl short 02648h                          ; 7d 15
     2957    jnl short 02668h                          ; 7d 15
    29452958    mov si, di                                ; 89 fe
    29462959    sal si, 1                                 ; d1 e6
     
    29502963    mov byte [bp+si-067h], al                 ; 88 42 99
    29512964    inc di                                    ; 47
    2952     jmp short 0262eh                          ; eb e6
     2965    jmp short 0264eh                          ; eb e6
    29532966    mov byte [bp-040h], 000h                  ; c6 46 c0 00
    29542967    mov di, strict word 00027h                ; bf 27 00
    2955     jmp short 02656h                          ; eb 05
     2968    jmp short 02676h                          ; eb 05
    29562969    dec di                                    ; 4f
    29572970    test di, di                               ; 85 ff
    2958     jle short 02662h                          ; 7e 0c
     2971    jle short 02682h                          ; 7e 0c
    29592972    cmp byte [bp+di-068h], 020h               ; 80 7b 98 20
    2960     jne short 02662h                          ; 75 06
     2973    jne short 02682h                          ; 75 06
    29612974    mov byte [bp+di-068h], 000h               ; c6 43 98 00
    2962     jmp short 02651h                          ; eb ef
    2963     mov al, byte [bp-012h]                    ; 8a 46 ee
     2975    jmp short 02671h                          ; eb ef
     2976    mov al, byte [bp-018h]                    ; 8a 46 e8
    29642977    cmp AL, strict byte 003h                  ; 3c 03
    2965     je short 026cfh                           ; 74 66
     2978    je short 026efh                           ; 74 66
    29662979    cmp AL, strict byte 002h                  ; 3c 02
    2967     je short 02674h                           ; 74 07
     2980    je short 02694h                           ; 74 07
    29682981    cmp AL, strict byte 001h                  ; 3c 01
    2969     je short 026dah                           ; 74 69
    2970     jmp near 0276ch                           ; e9 f8 00
    2971     cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    2972     je short 0267fh                           ; 74 05
     2982    je short 026fah                           ; 74 69
     2983    jmp near 0278ch                           ; e9 f8 00
     2984    cmp byte [bp-01ah], 000h                  ; 80 7e e6 00
     2985    je short 0269fh                           ; 74 05
    29732986    mov ax, 0019fh                            ; b8 9f 01
    2974     jmp short 02682h                          ; eb 03
     2987    jmp short 026a2h                          ; eb 03
    29752988    mov ax, 001a6h                            ; b8 a6 01
    29762989    push ax                                   ; 50
    2977     mov al, byte [bp-018h]                    ; 8a 46 e8
     2990    mov al, byte [bp-00ch]                    ; 8a 46 f4
    29782991    xor ah, ah                                ; 30 e4
    29792992    push ax                                   ; 50
     
    29822995    mov ax, strict word 00002h                ; b8 02 00
    29832996    push ax                                   ; 50
    2984     call 01976h                               ; e8 e2 f2
     2997    call 01976h                               ; e8 c2 f2
    29852998    add sp, strict byte 00008h                ; 83 c4 08
    29862999    xor di, di                                ; 31 ff
     
    29893002    inc di                                    ; 47
    29903003    test ax, ax                               ; 85 c0
    2991     je short 026b4h                           ; 74 11
     3004    je short 026d4h                           ; 74 11
    29923005    push ax                                   ; 50
    29933006    mov ax, 001b8h                            ; b8 b8 01
     
    29953008    mov ax, strict word 00002h                ; b8 02 00
    29963009    push ax                                   ; 50
    2997     call 01976h                               ; e8 c7 f2
     3010    call 01976h                               ; e8 a7 f2
    29983011    add sp, strict byte 00006h                ; 83 c4 06
    2999     jmp short 02699h                          ; eb e5
    3000     push word [bp-026h]                       ; ff 76 da
    3001     push word [bp-02ah]                       ; ff 76 d6
    3002     mov al, byte [bp-00eh]                    ; 8a 46 f2
     3012    jmp short 026b9h                          ; eb e5
     3013    push word [bp-036h]                       ; ff 76 ca
     3014    push word [bp-022h]                       ; ff 76 de
     3015    mov al, byte [bp-016h]                    ; 8a 46 ea
    30033016    push ax                                   ; 50
    30043017    mov ax, 001bbh                            ; b8 bb 01
     
    30063019    mov ax, strict word 00002h                ; b8 02 00
    30073020    push ax                                   ; 50
    3008     call 01976h                               ; e8 ad f2
     3021    call 01976h                               ; e8 8d f2
    30093022    add sp, strict byte 0000ah                ; 83 c4 0a
    3010     jmp near 0276ch                           ; e9 9d 00
    3011     cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    3012     je short 026dch                           ; 74 07
     3023    jmp near 0278ch                           ; e9 9d 00
     3024    cmp byte [bp-01ah], 000h                  ; 80 7e e6 00
     3025    je short 026fch                           ; 74 07
    30133026    mov ax, 0019fh                            ; b8 9f 01
    3014     jmp short 026dfh                          ; eb 05
    3015     jmp short 02749h                          ; eb 6d
     3027    jmp short 026ffh                          ; eb 05
     3028    jmp short 02769h                          ; eb 6d
    30163029    mov ax, 001a6h                            ; b8 a6 01
    30173030    push ax                                   ; 50
    3018     mov al, byte [bp-018h]                    ; 8a 46 e8
     3031    mov al, byte [bp-00ch]                    ; 8a 46 f4
    30193032    xor ah, ah                                ; 30 e4
    30203033    push ax                                   ; 50
     
    30233036    mov ax, strict word 00002h                ; b8 02 00
    30243037    push ax                                   ; 50
    3025     call 01976h                               ; e8 85 f2
     3038    call 01976h                               ; e8 65 f2
    30263039    add sp, strict byte 00008h                ; 83 c4 08
    30273040    xor di, di                                ; 31 ff
     
    30303043    inc di                                    ; 47
    30313044    test ax, ax                               ; 85 c0
    3032     je short 02711h                           ; 74 11
     3045    je short 02731h                           ; 74 11
    30333046    push ax                                   ; 50
    30343047    mov ax, 001b8h                            ; b8 b8 01
     
    30363049    mov ax, strict word 00002h                ; b8 02 00
    30373050    push ax                                   ; 50
    3038     call 01976h                               ; e8 6a f2
     3051    call 01976h                               ; e8 4a f2
    30393052    add sp, strict byte 00006h                ; 83 c4 06
    3040     jmp short 026f6h                          ; eb e5
    3041     mov al, byte [bp-010h]                    ; 8a 46 f0
     3053    jmp short 02716h                          ; eb e5
     3054    mov al, byte [bp-014h]                    ; 8a 46 ec
    30423055    mov dx, strict word 0001ch                ; ba 1c 00
    30433056    imul dx                                   ; f7 ea
    3044     mov es, [bp-022h]                         ; 8e 46 de
    3045     mov bx, word [bp-01eh]                    ; 8b 5e e2
     3057    mov es, [bp-02ah]                         ; 8e 46 d6
     3058    mov bx, word [bp-02eh]                    ; 8b 5e d2
    30463059    add bx, ax                                ; 01 c3
    30473060    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    3048     jne short 02733h                          ; 75 0b
    3049     mov al, byte [bp-00eh]                    ; 8a 46 f2
     3061    jne short 02753h                          ; 75 0b
     3062    mov al, byte [bp-016h]                    ; 8a 46 ea
    30503063    xor ah, ah                                ; 30 e4
    30513064    push ax                                   ; 50
    30523065    mov ax, 001dbh                            ; b8 db 01
    3053     jmp short 0273ch                          ; eb 09
    3054     mov al, byte [bp-00eh]                    ; 8a 46 f2
     3066    jmp short 0275ch                          ; eb 09
     3067    mov al, byte [bp-016h]                    ; 8a 46 ea
    30553068    xor ah, ah                                ; 30 e4
    30563069    push ax                                   ; 50
     
    30593072    mov ax, strict word 00002h                ; b8 02 00
    30603073    push ax                                   ; 50
    3061     call 01976h                               ; e8 32 f2
     3074    call 01976h                               ; e8 12 f2
    30623075    add sp, strict byte 00006h                ; 83 c4 06
    3063     jmp short 0276ch                          ; eb 23
    3064     cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    3065     je short 02754h                           ; 74 05
     3076    jmp short 0278ch                          ; eb 23
     3077    cmp byte [bp-01ah], 000h                  ; 80 7e e6 00
     3078    je short 02774h                           ; 74 05
    30663079    mov ax, 0019fh                            ; b8 9f 01
    3067     jmp short 02757h                          ; eb 03
     3080    jmp short 02777h                          ; eb 03
    30683081    mov ax, 001a6h                            ; b8 a6 01
    30693082    push ax                                   ; 50
    3070     mov al, byte [bp-018h]                    ; 8a 46 e8
     3083    mov al, byte [bp-00ch]                    ; 8a 46 f4
    30713084    xor ah, ah                                ; 30 e4
    30723085    push ax                                   ; 50
     
    30753088    mov ax, strict word 00002h                ; b8 02 00
    30763089    push ax                                   ; 50
    3077     call 01976h                               ; e8 0d f2
     3090    call 01976h                               ; e8 ed f1
    30783091    add sp, strict byte 00008h                ; 83 c4 08
    3079     inc byte [bp-010h]                        ; fe 46 f0
    3080     cmp byte [bp-010h], 008h                  ; 80 7e f0 08
    3081     jnc short 027cch                          ; 73 57
    3082     mov bl, byte [bp-010h]                    ; 8a 5e f0
     3092    inc byte [bp-014h]                        ; fe 46 ec
     3093    cmp byte [bp-014h], 008h                  ; 80 7e ec 08
     3094    jnc short 027ech                          ; 73 57
     3095    mov bl, byte [bp-014h]                    ; 8a 5e ec
    30833096    xor bh, bh                                ; 30 ff
    30843097    mov ax, bx                                ; 89 d8
     
    30883101    sar ax, 1                                 ; d1 f8
    30893102    mov cx, ax                                ; 89 c1
    3090     mov byte [bp-018h], al                    ; 88 46 e8
     3103    mov byte [bp-00ch], al                    ; 88 46 f4
    30913104    mov ax, bx                                ; 89 d8
    30923105    cwd                                       ; 99
    30933106    mov bx, strict word 00002h                ; bb 02 00
    30943107    idiv bx                                   ; f7 fb
    3095     mov word [bp-038h], dx                    ; 89 56 c8
    3096     mov al, byte [bp-038h]                    ; 8a 46 c8
    3097     mov byte [bp-014h], al                    ; 88 46 ec
     3108    mov word [bp-034h], dx                    ; 89 56 cc
     3109    mov al, byte [bp-034h]                    ; 8a 46 cc
     3110    mov byte [bp-01ah], al                    ; 88 46 e6
    30983111    mov al, cl                                ; 88 c8
    30993112    xor ah, ah                                ; 30 e4
    31003113    mov dx, strict word 00006h                ; ba 06 00
    31013114    imul dx                                   ; f7 ea
    3102     mov es, [bp-022h]                         ; 8e 46 de
    3103     mov si, word [bp-01eh]                    ; 8b 76 e2
     3115    mov es, [bp-02ah]                         ; 8e 46 d6
     3116    mov si, word [bp-02eh]                    ; 8b 76 d2
    31043117    add si, ax                                ; 01 c6
    31053118    mov bx, word [es:si+00206h]               ; 26 8b 9c 06 02
    31063119    mov ax, word [es:si+00208h]               ; 26 8b 84 08 02
    3107     mov word [bp-028h], ax                    ; 89 46 d8
     3120    mov word [bp-032h], ax                    ; 89 46 ce
    31083121    mov dx, ax                                ; 89 c2
    31093122    add dx, strict byte 00006h                ; 83 c2 06
    31103123    mov AL, strict byte 00ah                  ; b0 0a
    31113124    out DX, AL                                ; ee
    3112     cmp byte [bp-038h], 000h                  ; 80 7e c8 00
    3113     jne short 027c6h                          ; 75 03
    3114     jmp near 021b6h                           ; e9 f0 f9
     3125    cmp byte [bp-034h], 000h                  ; 80 7e cc 00
     3126    jne short 027e6h                          ; 75 03
     3127    jmp near 021b6h                           ; e9 d0 f9
    31153128    mov ax, 000b0h                            ; b8 b0 00
    3116     jmp near 021b9h                           ; e9 ed f9
    3117     mov al, byte [bp-008h]                    ; 8a 46 f8
    3118     mov es, [bp-022h]                         ; 8e 46 de
    3119     mov bx, word [bp-01eh]                    ; 8b 5e e2
     3129    jmp near 021b9h                           ; e9 cd f9
     3130    mov al, byte [bp-00ah]                    ; 8a 46 f6
     3131    mov es, [bp-02ah]                         ; 8e 46 d6
     3132    mov bx, word [bp-02eh]                    ; 8b 5e d2
    31203133    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
    3121     mov al, byte [bp-00ch]                    ; 8a 46 f4
     3134    mov al, byte [bp-012h]                    ; 8a 46 ee
    31223135    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
    3123     mov bl, byte [bp-008h]                    ; 8a 5e f8
     3136    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    31243137    xor bh, bh                                ; 30 ff
    31253138    mov dx, strict word 00075h                ; ba 75 00
    31263139    mov ax, strict word 00040h                ; b8 40 00
    3127     call 01660h                               ; e8 70 ee
     3140    call 01660h                               ; e8 50 ee
    31283141    lea sp, [bp-004h]                         ; 8d 66 fc
    31293142    pop di                                    ; 5f
     
    31313144    pop bp                                    ; 5d
    31323145    retn                                      ; c3
    3133 ata_cmd_data_out_:                           ; 0xf27f7 LB 0x28e
     3146ata_cmd_data_out_:                           ; 0xf2817 LB 0x28e
    31343147    push bp                                   ; 55
    31353148    mov bp, sp                                ; 89 e5
     
    31643177    ; sub ah, ah                                ; 2a e4
    31653178    test AL, strict byte 080h                 ; a8 80
    3166     je short 02858h                           ; 74 0f
     3179    je short 02878h                           ; 74 0f
    31673180    mov dx, word [bp-00eh]                    ; 8b 56 f2
    31683181    add dx, strict byte 00006h                ; 83 c2 06
     
    31703183    out DX, AL                                ; ee
    31713184    mov ax, strict word 00001h                ; b8 01 00
    3172     jmp near 02a7eh                           ; e9 26 02
     3185    jmp near 02a9eh                           ; e9 26 02
    31733186    mov es, [bp-00ah]                         ; 8e 46 f6
    31743187    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     
    31923205    mov ax, word [bp-014h]                    ; 8b 46 ec
    31933206    test ax, ax                               ; 85 c0
    3194     je short 028a3h                           ; 74 03
    3195     jmp near 0296ah                           ; e9 c7 00
     3207    je short 028c3h                           ; 74 03
     3208    jmp near 0298ah                           ; e9 c7 00
    31963209    xor bx, bx                                ; 31 db
    31973210    xor dx, dx                                ; 31 d2
     
    32023215    adc ax, word [bp-00ch]                    ; 13 46 f4
    32033216    test ax, ax                               ; 85 c0
    3204     jnbe short 028cah                         ; 77 10
    3205     jne short 0292dh                          ; 75 71
     3217    jnbe short 028eah                         ; 77 10
     3218    jne short 0294dh                          ; 75 71
    32063219    test dx, dx                               ; 85 d2
    3207     jnbe short 028cah                         ; 77 0a
    3208     jne short 0292dh                          ; 75 6b
     3220    jnbe short 028eah                         ; 77 0a
     3221    jne short 0294dh                          ; 75 6b
    32093222    cmp bx, 01000h                            ; 81 fb 00 10
    3210     jnbe short 028cah                         ; 77 02
    3211     jne short 0292dh                          ; 75 63
     3223    jnbe short 028eah                         ; 77 02
     3224    jne short 0294dh                          ; 75 63
    32123225    mov ax, word [bp-00ch]                    ; 8b 46 f4
    32133226    mov bx, word [bp-020h]                    ; 8b 5e e0
     
    32153228    mov dx, word [bp-022h]                    ; 8b 56 de
    32163229    mov si, strict word 00018h                ; be 18 00
    3217     call 0a180h                               ; e8 a4 78
     3230    call 0a1a0h                               ; e8 a4 78
    32183231    xor dh, dh                                ; 30 f6
    32193232    mov word [bp-014h], dx                    ; 89 56 ec
     
    32233236    mov dx, word [bp-022h]                    ; 8b 56 de
    32243237    mov si, strict word 00020h                ; be 20 00
    3225     call 0a180h                               ; e8 8d 78
     3238    call 0a1a0h                               ; e8 8d 78
    32263239    mov bx, dx                                ; 89 d3
    32273240    mov word [bp-024h], dx                    ; 89 56 dc
     
    32573270    mov dx, word [bp-022h]                    ; 8b 56 de
    32583271    mov si, strict word 00008h                ; be 08 00
    3259     call 0a180h                               ; e8 39 78
     3272    call 0a1a0h                               ; e8 39 78
    32603273    mov word [bp-00ch], ax                    ; 89 46 f4
    32613274    mov word [bp-020h], bx                    ; 89 5e e0
     
    32643277    mov word [bp-024h], dx                    ; 89 56 dc
    32653278    mov si, strict word 00010h                ; be 10 00
    3266     call 0a180h                               ; e8 24 78
     3279    call 0a1a0h                               ; e8 24 78
    32673280    mov word [bp-022h], dx                    ; 89 56 de
    32683281    mov ax, dx                                ; 89 d0
     
    32973310    out DX, AL                                ; ee
    32983311    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3299     je short 029ach                           ; 74 05
     3312    je short 029cch                           ; 74 05
    33003313    mov ax, 000b0h                            ; b8 b0 00
    3301     jmp short 029afh                          ; eb 03
     3314    jmp short 029cfh                          ; eb 03
    33023315    mov ax, 000a0h                            ; b8 a0 00
    33033316    mov dl, byte [bp-018h]                    ; 8a 56 e8
     
    33183331    mov bl, al                                ; 88 c3
    33193332    test AL, strict byte 080h                 ; a8 80
    3320     jne short 029c7h                          ; 75 f1
     3333    jne short 029e7h                          ; 75 f1
    33213334    test AL, strict byte 001h                 ; a8 01
    3322     je short 029e9h                           ; 74 0f
     3335    je short 02a09h                           ; 74 0f
    33233336    mov dx, word [bp-00eh]                    ; 8b 56 f2
    33243337    add dx, strict byte 00006h                ; 83 c2 06
     
    33263339    out DX, AL                                ; ee
    33273340    mov ax, strict word 00002h                ; b8 02 00
    3328     jmp near 02a7eh                           ; e9 95 00
     3341    jmp near 02a9eh                           ; e9 95 00
    33293342    test bl, 008h                             ; f6 c3 08
    3330     jne short 029fdh                          ; 75 0f
     3343    jne short 02a1dh                          ; 75 0f
    33313344    mov dx, word [bp-00eh]                    ; 8b 56 f2
    33323345    add dx, strict byte 00006h                ; 83 c2 06
     
    33343347    out DX, AL                                ; ee
    33353348    mov ax, strict word 00003h                ; b8 03 00
    3336     jmp near 02a7eh                           ; e9 81 00
     3349    jmp near 02a9eh                           ; e9 81 00
    33373350    sti                                       ; fb
    33383351    mov ax, word [bp-016h]                    ; 8b 46 ea
    33393352    cmp ax, 0f800h                            ; 3d 00 f8
    3340     jc short 02a18h                           ; 72 12
     3353    jc short 02a38h                           ; 72 12
    33413354    mov dx, ax                                ; 89 c2
    33423355    sub dx, 00800h                            ; 81 ea 00 08
     
    33623375    mov bl, al                                ; 88 c3
    33633376    test AL, strict byte 080h                 ; a8 80
    3364     jne short 02a34h                          ; 75 f1
     3377    jne short 02a54h                          ; 75 f1
    33653378    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
    3366     jne short 02a5dh                          ; 75 14
     3379    jne short 02a7dh                          ; 75 14
    33673380    and AL, strict byte 0e9h                  ; 24 e9
    33683381    cmp AL, strict byte 040h                  ; 3c 40
    3369     je short 02a73h                           ; 74 24
     3382    je short 02a93h                           ; 74 24
    33703383    mov dx, word [bp-00eh]                    ; 8b 56 f2
    33713384    add dx, strict byte 00006h                ; 83 c2 06
     
    33733386    out DX, AL                                ; ee
    33743387    mov ax, strict word 00006h                ; b8 06 00
    3375     jmp short 02a7eh                          ; eb 21
     3388    jmp short 02a9eh                          ; eb 21
    33763389    mov al, bl                                ; 88 d8
    33773390    and AL, strict byte 0c9h                  ; 24 c9
    33783391    cmp AL, strict byte 048h                  ; 3c 48
    3379     je short 029feh                           ; 74 99
     3392    je short 02a1eh                           ; 74 99
    33803393    mov dx, word [bp-00eh]                    ; 8b 56 f2
    33813394    add dx, strict byte 00006h                ; 83 c2 06
     
    33833396    out DX, AL                                ; ee
    33843397    mov ax, strict word 00007h                ; b8 07 00
    3385     jmp short 02a7eh                          ; eb 0b
     3398    jmp short 02a9eh                          ; eb 0b
    33863399    mov dx, word [bp-00eh]                    ; 8b 56 f2
    33873400    add dx, strict byte 00006h                ; 83 c2 06
     
    33943407    pop bp                                    ; 5d
    33953408    retn                                      ; c3
    3396 @ata_read_sectors:                           ; 0xf2a85 LB 0xc1
     3409@ata_read_sectors:                           ; 0xf2aa5 LB 0xc1
    33973410    push bp                                   ; 55
    33983411    mov bp, sp                                ; 89 e5
     
    34093422    mov cx, dx                                ; 89 d1
    34103423    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3411     je short 02acdh                           ; 74 23
     3424    je short 02aedh                           ; 74 23
    34123425    xor ah, ah                                ; 30 e4
    34133426    mov di, strict word 0001ch                ; bf 1c 00
     
    34213434    mov bx, 000c4h                            ; bb c4 00
    34223435    mov ax, si                                ; 89 f0
    3423     call 01e9dh                               ; e8 d5 f3
     3436    call 01e9dh                               ; e8 b5 f3
    34243437    mov es, [bp-00ah]                         ; 8e 46 f6
    3425     jmp short 02b37h                          ; eb 6a
     3438    jmp short 02b57h                          ; eb 6a
    34263439    xor di, di                                ; 31 ff
    34273440    mov word [bp-008h], di                    ; 89 7e f8
     
    34373450    adc dx, word [bp-00ah]                    ; 13 56 f6
    34383451    test dx, dx                               ; 85 d2
    3439     jnbe short 02b08h                         ; 77 12
    3440     jne short 02b16h                          ; 75 1e
     3452    jnbe short 02b28h                         ; 77 12
     3453    jne short 02b36h                          ; 75 1e
    34413454    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    3442     jnbe short 02b08h                         ; 77 0a
    3443     jne short 02b16h                          ; 75 16
     3455    jnbe short 02b28h                         ; 77 0a
     3456    jne short 02b36h                          ; 75 16
    34443457    cmp di, 01000h                            ; 81 ff 00 10
    3445     jnbe short 02b08h                         ; 77 02
    3446     jne short 02b16h                          ; 75 0e
     3458    jnbe short 02b28h                         ; 77 02
     3459    jne short 02b36h                          ; 75 0e
    34473460    mov cx, bx                                ; 89 d9
    34483461    mov bx, strict word 00024h                ; bb 24 00
    34493462    mov ax, si                                ; 89 f0
    34503463    mov dx, es                                ; 8c c2
    3451     call 01e9dh                               ; e8 89 f3
    3452     jmp short 02b3dh                          ; eb 27
     3464    call 01e9dh                               ; e8 69 f3
     3465    jmp short 02b5dh                          ; eb 27
    34533466    xor ah, ah                                ; 30 e4
    34543467    mov di, strict word 0001ch                ; bf 1c 00
     
    34623475    mov bx, 000c4h                            ; bb c4 00
    34633476    mov ax, si                                ; 89 f0
    3464     call 01e9dh                               ; e8 69 f3
     3477    call 01e9dh                               ; e8 49 f3
    34653478    mov es, [bp-006h]                         ; 8e 46 fa
    34663479    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
     
    34703483    pop bp                                    ; 5d
    34713484    retn 00004h                               ; c2 04 00
    3472 @ata_write_sectors:                          ; 0xf2b46 LB 0x5b
     3485@ata_write_sectors:                          ; 0xf2b66 LB 0x5b
    34733486    push bp                                   ; 55
    34743487    mov bp, sp                                ; 89 e5
     
    34793492    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
    34803493    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3481     je short 02b66h                           ; 74 0c
     3494    je short 02b86h                           ; 74 0c
    34823495    mov bx, strict word 00030h                ; bb 30 00
    34833496    mov ax, si                                ; 89 f0
    34843497    mov dx, es                                ; 8c c2
    3485     call 027f7h                               ; e8 93 fc
    3486     jmp short 02b98h                          ; eb 32
     3498    call 02817h                               ; e8 93 fc
     3499    jmp short 02bb8h                          ; eb 32
    34873500    xor ax, ax                                ; 31 c0
    34883501    xor bx, bx                                ; 31 db
     
    34953508    adc dx, word [es:si+006h]                 ; 26 13 54 06
    34963509    test dx, dx                               ; 85 d2
    3497     jnbe short 02b93h                         ; 77 0f
    3498     jne short 02b5ah                          ; 75 d4
     3510    jnbe short 02bb3h                         ; 77 0f
     3511    jne short 02b7ah                          ; 75 d4
    34993512    test bx, bx                               ; 85 db
    3500     jnbe short 02b93h                         ; 77 09
    3501     jne short 02b5ah                          ; 75 ce
     3513    jnbe short 02bb3h                         ; 77 09
     3514    jne short 02b7ah                          ; 75 ce
    35023515    cmp ax, 01000h                            ; 3d 00 10
    3503     jnbe short 02b93h                         ; 77 02
    3504     jne short 02b5ah                          ; 75 c7
     3516    jnbe short 02bb3h                         ; 77 02
     3517    jne short 02b7ah                          ; 75 c7
    35053518    mov bx, strict word 00034h                ; bb 34 00
    3506     jmp short 02b5dh                          ; eb c5
     3519    jmp short 02b7dh                          ; eb c5
    35073520    lea sp, [bp-004h]                         ; 8d 66 fc
    35083521    pop di                                    ; 5f
     
    35103523    pop bp                                    ; 5d
    35113524    retn 00004h                               ; c2 04 00
    3512 ata_cmd_packet_:                             ; 0xf2ba1 LB 0x28b
     3525ata_cmd_packet_:                             ; 0xf2bc1 LB 0x28b
    35133526    push bp                                   ; 55
    35143527    mov bp, sp                                ; 89 e5
     
    35223535    mov dx, strict word 0000eh                ; ba 0e 00
    35233536    mov ax, strict word 00040h                ; b8 40 00
    3524     call 0166eh                               ; e8 b4 ea
     3537    call 0166eh                               ; e8 94 ea
    35253538    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    35263539    mov word [bp-00eh], ax                    ; 89 46 f2
     
    35303543    and cl, 001h                              ; 80 e1 01
    35313544    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3532     jne short 02bf6h                          ; 75 23
    3533     mov bx, 00da4h                            ; bb a4 0d
     3545    jne short 02c16h                          ; 75 23
     3546    mov bx, 00da0h                            ; bb a0 0d
    35343547    mov cx, ds                                ; 8c d9
    35353548    mov ax, strict word 00004h                ; b8 04 00
    3536     call 01933h                               ; e8 55 ed
     3549    call 01933h                               ; e8 35 ed
    35373550    mov ax, 00221h                            ; b8 21 02
    35383551    push ax                                   ; 50
     
    35413554    mov ax, strict word 00004h                ; b8 04 00
    35423555    push ax                                   ; 50
    3543     call 01976h                               ; e8 89 ed
     3556    call 01976h                               ; e8 69 ed
    35443557    add sp, strict byte 00006h                ; 83 c4 06
    35453558    mov ax, strict word 00001h                ; b8 01 00
    3546     jmp near 02e23h                           ; e9 2d 02
     3559    jmp near 02e43h                           ; e9 2d 02
    35473560    test byte [bp+004h], 001h                 ; f6 46 04 01
    3548     jne short 02bf0h                          ; 75 f4
     3561    jne short 02c10h                          ; 75 f4
    35493562    xor ah, ah                                ; 30 e4
    35503563    mov dx, strict word 00006h                ; ba 06 00
     
    35613574    mov al, byte [bp-006h]                    ; 8a 46 fa
    35623575    cmp AL, strict byte 00ch                  ; 3c 0c
    3563     jnc short 02c2dh                          ; 73 06
     3576    jnc short 02c4dh                          ; 73 06
    35643577    mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
    3565     jmp short 02c33h                          ; eb 06
    3566     jbe short 02c33h                          ; 76 04
     3578    jmp short 02c53h                          ; eb 06
     3579    jbe short 02c53h                          ; 76 04
    35673580    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    35683581    shr byte [bp-006h], 1                     ; d0 6e fa
     
    35773590    ; sub ah, ah                                ; 2a e4
    35783591    test AL, strict byte 080h                 ; a8 80
    3579     je short 02c5eh                           ; 74 06
     3592    je short 02c7eh                           ; 74 06
    35803593    mov ax, strict word 00002h                ; b8 02 00
    3581     jmp near 02e23h                           ; e9 c5 01
     3594    jmp near 02e43h                           ; e9 c5 01
    35823595    mov dx, word [bp-008h]                    ; 8b 56 f8
    35833596    add dx, strict byte 00006h                ; 83 c2 06
     
    35933606    out DX, AL                                ; ee
    35943607    test cl, cl                               ; 84 c9
    3595     je short 02c82h                           ; 74 05
     3608    je short 02ca2h                           ; 74 05
    35963609    mov ax, 000b0h                            ; b8 b0 00
    3597     jmp short 02c85h                          ; eb 03
     3610    jmp short 02ca5h                          ; eb 03
    35983611    mov ax, 000a0h                            ; b8 a0 00
    35993612    mov dx, word [bp-012h]                    ; 8b 56 ee
     
    36113624    mov bl, al                                ; 88 c3
    36123625    test AL, strict byte 080h                 ; a8 80
    3613     jne short 02c95h                          ; 75 f1
     3626    jne short 02cb5h                          ; 75 f1
    36143627    test AL, strict byte 001h                 ; a8 01
    3615     je short 02cb7h                           ; 74 0f
     3628    je short 02cd7h                           ; 74 0f
    36163629    mov dx, word [bp-008h]                    ; 8b 56 f8
    36173630    add dx, strict byte 00006h                ; 83 c2 06
     
    36193632    out DX, AL                                ; ee
    36203633    mov ax, strict word 00003h                ; b8 03 00
    3621     jmp near 02e23h                           ; e9 6c 01
     3634    jmp near 02e43h                           ; e9 6c 01
    36223635    test bl, 008h                             ; f6 c3 08
    3623     jne short 02ccbh                          ; 75 0f
     3636    jne short 02cebh                          ; 75 0f
    36243637    mov dx, word [bp-008h]                    ; 8b 56 f8
    36253638    add dx, strict byte 00006h                ; 83 c2 06
     
    36273640    out DX, AL                                ; ee
    36283641    mov ax, strict word 00004h                ; b8 04 00
    3629     jmp near 02e23h                           ; e9 58 01
     3642    jmp near 02e43h                           ; e9 58 01
    36303643    sti                                       ; fb
    36313644    mov CL, strict byte 004h                  ; b1 04
     
    36413654    ; rep es outsw                              ; f3 26 6f
    36423655    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3643     jne short 02cf5h                          ; 75 0b
     3656    jne short 02d15h                          ; 75 0b
    36443657    add dx, strict byte 00007h                ; 83 c2 07
    36453658    in AL, DX                                 ; ec
     
    36473660    ; sub ah, ah                                ; 2a e4
    36483661    mov bl, al                                ; 88 c3
    3649     jmp near 02e04h                           ; e9 0f 01
     3662    jmp near 02e24h                           ; e9 0f 01
    36503663    mov dx, word [bp-012h]                    ; 8b 56 ee
    36513664    add dx, strict byte 00007h                ; 83 c2 07
     
    36553668    mov bl, al                                ; 88 c3
    36563669    test AL, strict byte 080h                 ; a8 80
    3657     jne short 02cf5h                          ; 75 f1
     3670    jne short 02d15h                          ; 75 f1
    36583671    test AL, strict byte 088h                 ; a8 88
    3659     je short 02d6ah                           ; 74 62
     3672    je short 02d8ah                           ; 74 62
    36603673    test AL, strict byte 001h                 ; a8 01
    3661     je short 02d17h                           ; 74 0b
     3674    je short 02d37h                           ; 74 0b
    36623675    mov dx, word [bp-008h]                    ; 8b 56 f8
    36633676    add dx, strict byte 00006h                ; 83 c2 06
    36643677    mov AL, strict byte 008h                  ; b0 08
    36653678    out DX, AL                                ; ee
    3666     jmp short 02cb1h                          ; eb 9a
     3679    jmp short 02cd1h                          ; eb 9a
    36673680    mov al, bl                                ; 88 d8
    36683681    and AL, strict byte 0c9h                  ; 24 c9
    36693682    cmp AL, strict byte 048h                  ; 3c 48
    3670     je short 02d2ah                           ; 74 0b
     3683    je short 02d4ah                           ; 74 0b
    36713684    mov dx, word [bp-008h]                    ; 8b 56 f8
    36723685    add dx, strict byte 00006h                ; 83 c2 06
    36733686    mov AL, strict byte 008h                  ; b0 08
    36743687    out DX, AL                                ; ee
    3675     jmp short 02cc5h                          ; eb 9b
     3688    jmp short 02ce5h                          ; eb 9b
    36763689    mov CL, strict byte 004h                  ; b1 04
    36773690    mov ax, word [bp+00ch]                    ; 8b 46 0c
     
    36983711    mov ax, word [bp+004h]                    ; 8b 46 04
    36993712    cmp bx, ax                                ; 39 c3
    3700     jnc short 02d6dh                          ; 73 0c
     3713    jnc short 02d8dh                          ; 73 0c
    37013714    mov cx, bx                                ; 89 d9
    37023715    sub word [bp+004h], bx                    ; 29 5e 04
    37033716    xor bx, bx                                ; 31 db
    3704     jmp short 02d76h                          ; eb 0c
    3705     jmp near 02e04h                           ; e9 97 00
     3717    jmp short 02d96h                          ; eb 0c
     3718    jmp near 02e24h                           ; e9 97 00
    37063719    mov cx, ax                                ; 89 c1
    37073720    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    37093722    xor ax, ax                                ; 31 c0
    37103723    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3711     jne short 02d94h                          ; 75 16
     3724    jne short 02db4h                          ; 75 16
    37123725    cmp bx, word [bp+006h]                    ; 3b 5e 06
    3713     jbe short 02d94h                          ; 76 11
     3726    jbe short 02db4h                          ; 76 11
    37143727    sub bx, word [bp+006h]                    ; 2b 5e 06
    37153728    mov word [bp-014h], bx                    ; 89 5e ec
     
    37173730    mov word [bp+006h], ax                    ; 89 46 06
    37183731    mov word [bp+008h], ax                    ; 89 46 08
    3719     jmp short 02d9dh                          ; eb 09
     3732    jmp short 02dbdh                          ; eb 09
    37203733    mov word [bp-014h], ax                    ; 89 46 ec
    37213734    sub word [bp+006h], bx                    ; 29 5e 06
     
    37263739    test byte [bp-014h], 003h                 ; f6 46 ec 03
    37273740    test bl, 001h                             ; f6 c3 01
    3728     je short 02dbeh                           ; 74 10
     3741    je short 02ddeh                           ; 74 10
    37293742    inc bx                                    ; 43
    37303743    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    3731     jbe short 02dbeh                          ; 76 09
     3744    jbe short 02ddeh                          ; 76 09
    37323745    test byte [bp-014h], 001h                 ; f6 46 ec 01
    3733     je short 02dbeh                           ; 74 03
     3746    je short 02ddeh                           ; 74 03
    37343747    dec word [bp-014h]                        ; ff 4e ec
    37353748    shr bx, 1                                 ; d1 eb
     
    37373750    shr word [bp-014h], 1                     ; d1 6e ec
    37383751    test cx, cx                               ; 85 c9
    3739     je short 02dcfh                           ; 74 06
     3752    je short 02defh                           ; 74 06
    37403753    mov dx, word [bp-012h]                    ; 8b 56 ee
    37413754    in ax, DX                                 ; ed
    3742     loop 02dcch                               ; e2 fd
     3755    loop 02dech                               ; e2 fd
    37433756    mov dx, word [bp-012h]                    ; 8b 56 ee
    37443757    mov cx, bx                                ; 89 d9
     
    37473760    mov ax, word [bp-014h]                    ; 8b 46 ec
    37483761    test ax, ax                               ; 85 c0
    3749     je short 02de5h                           ; 74 05
     3762    je short 02e05h                           ; 74 05
    37503763    mov cx, ax                                ; 89 c1
    37513764    in ax, DX                                 ; ed
    3752     loop 02de2h                               ; e2 fd
     3765    loop 02e02h                               ; e2 fd
    37533766    add word [bp+00ch], si                    ; 01 76 0c
    37543767    xor ax, ax                                ; 31 c0
     
    37603773    mov ax, word [bp-00ah]                    ; 8b 46 f6
    37613774    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    3762     jmp near 02cf5h                           ; e9 f1 fe
     3775    jmp near 02d15h                           ; e9 f1 fe
    37633776    mov al, bl                                ; 88 d8
    37643777    and AL, strict byte 0e9h                  ; 24 e9
    37653778    cmp AL, strict byte 040h                  ; 3c 40
    3766     je short 02e18h                           ; 74 0c
     3779    je short 02e38h                           ; 74 0c
    37673780    mov dx, word [bp-008h]                    ; 8b 56 f8
    37683781    add dx, strict byte 00006h                ; 83 c2 06
    37693782    mov AL, strict byte 008h                  ; b0 08
    37703783    out DX, AL                                ; ee
    3771     jmp near 02cc5h                           ; e9 ad fe
     3784    jmp near 02ce5h                           ; e9 ad fe
    37723785    mov dx, word [bp-008h]                    ; 8b 56 f8
    37733786    add dx, strict byte 00006h                ; 83 c2 06
     
    37803793    pop bp                                    ; 5d
    37813794    retn 0000ch                               ; c2 0c 00
    3782 ata_soft_reset_:                             ; 0xf2e2c LB 0x84
     3795ata_soft_reset_:                             ; 0xf2e4c LB 0x84
    37833796    push bp                                   ; 55
    37843797    mov bp, sp                                ; 89 e5
     
    37903803    mov dx, strict word 0000eh                ; ba 0e 00
    37913804    mov ax, strict word 00040h                ; b8 40 00
    3792     call 0166eh                               ; e8 30 e8
     3805    call 0166eh                               ; e8 10 e8
    37933806    mov es, ax                                ; 8e c0
    37943807    mov ax, bx                                ; 89 d8
     
    38073820    out DX, AL                                ; ee
    38083821    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3809     je short 02e72h                           ; 74 05
     3822    je short 02e92h                           ; 74 05
    38103823    mov ax, 000b0h                            ; b8 b0 00
    3811     jmp short 02e75h                          ; eb 03
     3824    jmp short 02e95h                          ; eb 03
    38123825    mov ax, 000a0h                            ; b8 a0 00
    38133826    mov dx, cx                                ; 89 ca
     
    38243837    ; sub ah, ah                                ; 2a e4
    38253838    test AL, strict byte 080h                 ; a8 80
    3826     jne short 02e83h                          ; 75 f4
     3839    jne short 02ea3h                          ; 75 f4
    38273840    and AL, strict byte 0e9h                  ; 24 e9
    38283841    cmp AL, strict byte 040h                  ; 3c 40
    3829     je short 02ea0h                           ; 74 0b
     3842    je short 02ec0h                           ; 74 0b
    38303843    lea dx, [bx+006h]                         ; 8d 57 06
    38313844    mov AL, strict byte 008h                  ; b0 08
    38323845    out DX, AL                                ; ee
    38333846    mov ax, strict word 00001h                ; b8 01 00
    3834     jmp short 02ea8h                          ; eb 08
     3847    jmp short 02ec8h                          ; eb 08
    38353848    lea dx, [bx+006h]                         ; 8d 57 06
    38363849    mov AL, strict byte 008h                  ; b0 08
     
    38433856    pop bp                                    ; 5d
    38443857    retn                                      ; c3
    3845 set_diskette_current_cyl_:                   ; 0xf2eb0 LB 0x2c
     3858set_diskette_current_cyl_:                   ; 0xf2ed0 LB 0x2c
    38463859    push bp                                   ; 55
    38473860    mov bp, sp                                ; 89 e5
     
    38493862    mov bl, al                                ; 88 c3
    38503863    cmp AL, strict byte 001h                  ; 3c 01
    3851     jbe short 02ec8h                          ; 76 0e
     3864    jbe short 02ee8h                          ; 76 0e
    38523865    mov ax, 00250h                            ; b8 50 02
    38533866    push ax                                   ; 50
    38543867    mov ax, strict word 00007h                ; b8 07 00
    38553868    push ax                                   ; 50
    3856     call 01976h                               ; e8 b1 ea
     3869    call 01976h                               ; e8 91 ea
    38573870    add sp, strict byte 00004h                ; 83 c4 04
    38583871    xor bh, bh                                ; 30 ff
     
    38653878    pop bp                                    ; 5d
    38663879    retn                                      ; c3
    3867 floppy_wait_for_interrupt_:                  ; 0xf2edc LB 0x23
     3880floppy_wait_for_interrupt_:                  ; 0xf2efc LB 0x23
    38683881    push bp                                   ; 55
    38693882    mov bp, sp                                ; 89 e5
     
    38753888    mov al, byte [es:bx]                      ; 26 8a 07
    38763889    test AL, strict byte 080h                 ; a8 80
    3877     je short 02ef4h                           ; 74 04
     3890    je short 02f14h                           ; 74 04
    38783891    and AL, strict byte 080h                  ; 24 80
    3879     jmp short 02ef9h                          ; eb 05
     3892    jmp short 02f19h                          ; eb 05
    38803893    sti                                       ; fb
    38813894    hlt                                       ; f4
    38823895    cli                                       ; fa
    3883     jmp short 02ee1h                          ; eb e8
     3896    jmp short 02f01h                          ; eb e8
    38843897    lea sp, [bp-002h]                         ; 8d 66 fe
    38853898    pop bx                                    ; 5b
    38863899    pop bp                                    ; 5d
    38873900    retn                                      ; c3
    3888 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2eff LB 0x38
     3901floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f1f LB 0x38
    38893902    push bp                                   ; 55
    38903903    mov bp, sp                                ; 89 e5
     
    38953908    mov al, byte [es:bx]                      ; 26 8a 07
    38963909    test al, al                               ; 84 c0
    3897     jne short 02f13h                          ; 75 03
     3910    jne short 02f33h                          ; 75 03
    38983911    sti                                       ; fb
    3899     jmp short 02f31h                          ; eb 1e
     3912    jmp short 02f51h                          ; eb 1e
    39003913    mov bx, strict word 0003eh                ; bb 3e 00
    39013914    mov ax, strict word 00040h                ; b8 40 00
     
    39033916    mov al, byte [es:bx]                      ; 26 8a 07
    39043917    test AL, strict byte 080h                 ; a8 80
    3905     je short 02f2ch                           ; 74 0a
     3918    je short 02f4ch                           ; 74 0a
    39063919    mov ah, al                                ; 88 c4
    39073920    and ah, 07fh                              ; 80 e4 7f
    39083921    mov byte [es:bx], ah                      ; 26 88 27
    3909     jmp short 02f31h                          ; eb 05
     3922    jmp short 02f51h                          ; eb 05
    39103923    sti                                       ; fb
    39113924    hlt                                       ; f4
    39123925    cli                                       ; fa
    3913     jmp short 02f04h                          ; eb d3
     3926    jmp short 02f24h                          ; eb d3
    39143927    lea sp, [bp-002h]                         ; 8d 66 fe
    39153928    pop bx                                    ; 5b
    39163929    pop bp                                    ; 5d
    39173930    retn                                      ; c3
    3918 floppy_reset_controller_:                    ; 0xf2f37 LB 0x3f
     3931floppy_reset_controller_:                    ; 0xf2f57 LB 0x3f
    39193932    push bp                                   ; 55
    39203933    mov bp, sp                                ; 89 e5
     
    39393952    and AL, strict byte 0c0h                  ; 24 c0
    39403953    cmp AL, strict byte 080h                  ; 3c 80
    3941     jne short 02f4fh                          ; 75 f4
     3954    jne short 02f6fh                          ; 75 f4
    39423955    mov bx, cx                                ; 89 cb
    39433956    add bx, 00090h                            ; 81 c3 90 00
     
    39533966    pop bp                                    ; 5d
    39543967    retn                                      ; c3
    3955 floppy_prepare_controller_:                  ; 0xf2f76 LB 0x75
     3968floppy_prepare_controller_:                  ; 0xf2f96 LB 0x75
    39563969    push bp                                   ; 55
    39573970    mov bp, sp                                ; 89 e5
     
    39743987    mov byte [bp-008h], al                    ; 88 46 f8
    39753988    test cx, cx                               ; 85 c9
    3976     je short 02fa2h                           ; 74 04
     3989    je short 02fc2h                           ; 74 04
    39773990    mov AL, strict byte 020h                  ; b0 20
    3978     jmp short 02fa4h                          ; eb 02
     3991    jmp short 02fc4h                          ; eb 02
    39793992    mov AL, strict byte 010h                  ; b0 10
    39803993    or AL, strict byte 00ch                   ; 0c 0c
     
    39974010    and AL, strict byte 0c0h                  ; 24 c0
    39984011    cmp AL, strict byte 080h                  ; 3c 80
    3999     jne short 02fc3h                          ; 75 f4
     4012    jne short 02fe3h                          ; 75 f4
    40004013    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4001     jne short 02fe3h                          ; 75 0e
    4002     call 02edch                               ; e8 04 ff
     4014    jne short 03003h                          ; 75 0e
     4015    call 02efch                               ; e8 04 ff
    40034016    mov bx, strict word 0003eh                ; bb 3e 00
    40044017    mov dx, strict word 00040h                ; ba 40 00
     
    40114024    pop bp                                    ; 5d
    40124025    retn                                      ; c3
    4013 floppy_media_known_:                         ; 0xf2feb LB 0x4c
     4026floppy_media_known_:                         ; 0xf300b LB 0x4c
    40144027    push bx                                   ; 53
    40154028    push cx                                   ; 51
     
    40234036    mov bl, bh                                ; 88 fb
    40244037    test ax, ax                               ; 85 c0
    4025     je short 03004h                           ; 74 02
     4038    je short 03024h                           ; 74 02
    40264039    shr bl, 1                                 ; d0 eb
    40274040    and bl, 001h                              ; 80 e3 01
    4028     jne short 0300dh                          ; 75 04
     4041    jne short 0302dh                          ; 75 04
    40294042    xor bh, bh                                ; 30 ff
    4030     jmp short 03030h                          ; eb 23
     4043    jmp short 03050h                          ; eb 23
    40314044    mov bx, 00090h                            ; bb 90 00
    40324045    test ax, ax                               ; 85 c0
    4033     je short 03017h                           ; 74 03
     4046    je short 03037h                           ; 74 03
    40344047    mov bx, 00091h                            ; bb 91 00
    40354048    mov ax, strict word 00040h                ; b8 40 00
     
    40404053    sar ax, CL                                ; d3 f8
    40414054    and AL, strict byte 001h                  ; 24 01
    4042     jne short 0302dh                          ; 75 04
     4055    jne short 0304dh                          ; 75 04
    40434056    xor bx, bx                                ; 31 db
    4044     jmp short 03030h                          ; eb 03
     4057    jmp short 03050h                          ; eb 03
    40454058    mov bx, strict word 00001h                ; bb 01 00
    40464059    mov ax, bx                                ; 89 d8
     
    40504063    pop bx                                    ; 5b
    40514064    retn                                      ; c3
    4052 floppy_read_id_:                             ; 0xf3037 LB 0x52
     4065floppy_read_id_:                             ; 0xf3057 LB 0x52
    40534066    push bp                                   ; 55
    40544067    mov bp, sp                                ; 89 e5
     
    40574070    push si                                   ; 56
    40584071    mov bx, ax                                ; 89 c3
    4059     call 02f76h                               ; e8 34 ff
     4072    call 02f96h                               ; e8 34 ff
    40604073    mov AL, strict byte 04ah                  ; b0 4a
    40614074    mov dx, 003f5h                            ; ba f5 03
     
    40634076    mov al, bl                                ; 88 d8
    40644077    out DX, AL                                ; ee
    4065     call 02edch                               ; e8 8e fe
     4078    call 02efch                               ; e8 8e fe
    40664079    xor bx, bx                                ; 31 db
    4067     jmp short 03057h                          ; eb 05
     4080    jmp short 03077h                          ; eb 05
    40684081    cmp bx, strict byte 00007h                ; 83 fb 07
    4069     jnl short 0306bh                          ; 7d 14
     4082    jnl short 0308bh                          ; 7d 14
    40704083    mov dx, 003f5h                            ; ba f5 03
    40714084    in AL, DX                                 ; ec
     
    40774090    mov byte [es:si], al                      ; 26 88 04
    40784091    inc bx                                    ; 43
    4079     jmp short 03052h                          ; eb e7
     4092    jmp short 03072h                          ; eb e7
    40804093    mov bx, strict word 00042h                ; bb 42 00
    40814094    mov ax, strict word 00040h                ; b8 40 00
     
    40834096    mov al, byte [es:bx]                      ; 26 8a 07
    40844097    test AL, strict byte 0c0h                 ; a8 c0
    4085     je short 0307eh                           ; 74 04
     4098    je short 0309eh                           ; 74 04
    40864099    xor ax, ax                                ; 31 c0
    4087     jmp short 03081h                          ; eb 03
     4100    jmp short 030a1h                          ; eb 03
    40884101    mov ax, strict word 00001h                ; b8 01 00
    40894102    lea sp, [bp-006h]                         ; 8d 66 fa
     
    40934106    pop bp                                    ; 5d
    40944107    retn                                      ; c3
    4095 floppy_drive_recal_:                         ; 0xf3089 LB 0x41
     4108floppy_drive_recal_:                         ; 0xf30a9 LB 0x41
    40964109    push bp                                   ; 55
    40974110    mov bp, sp                                ; 89 e5
     
    41004113    push si                                   ; 56
    41014114    mov bx, ax                                ; 89 c3
    4102     call 02f76h                               ; e8 e2 fe
     4115    call 02f96h                               ; e8 e2 fe
    41034116    mov AL, strict byte 007h                  ; b0 07
    41044117    mov dx, 003f5h                            ; ba f5 03
     
    41064119    mov al, bl                                ; 88 d8
    41074120    out DX, AL                                ; ee
    4108     call 02edch                               ; e8 3c fe
     4121    call 02efch                               ; e8 3c fe
    41094122    test bx, bx                               ; 85 db
    4110     je short 030abh                           ; 74 07
     4123    je short 030cbh                           ; 74 07
    41114124    or AL, strict byte 002h                   ; 0c 02
    41124125    mov bx, 00095h                            ; bb 95 00
    4113     jmp short 030b0h                          ; eb 05
     4126    jmp short 030d0h                          ; eb 05
    41144127    or AL, strict byte 001h                   ; 0c 01
    41154128    mov bx, 00094h                            ; bb 94 00
     
    41264139    pop bp                                    ; 5d
    41274140    retn                                      ; c3
    4128 floppy_media_sense_:                         ; 0xf30ca LB 0xe7
     4141floppy_media_sense_:                         ; 0xf30ea LB 0xe7
    41294142    push bp                                   ; 55
    41304143    mov bp, sp                                ; 89 e5
     
    41354148    push di                                   ; 57
    41364149    mov si, ax                                ; 89 c6
    4137     call 03089h                               ; e8 b2 ff
     4150    call 030a9h                               ; e8 b2 ff
    41384151    test ax, ax                               ; 85 c0
    4139     jne short 030e0h                          ; 75 05
     4152    jne short 03100h                          ; 75 05
    41404153    xor dx, dx                                ; 31 d2
    4141     jmp near 031a5h                           ; e9 c5 00
     4154    jmp near 031c5h                           ; e9 c5 00
    41424155    mov ax, strict word 00010h                ; b8 10 00
    4143     call 016aeh                               ; e8 c8 e5
     4156    call 016aeh                               ; e8 a8 e5
    41444157    test si, si                               ; 85 f6
    4145     jne short 030f2h                          ; 75 08
     4158    jne short 03112h                          ; 75 08
    41464159    mov CL, strict byte 004h                  ; b1 04
    41474160    mov dl, al                                ; 88 c2
    41484161    shr dl, CL                                ; d2 ea
    4149     jmp short 030f7h                          ; eb 05
     4162    jmp short 03117h                          ; eb 05
    41504163    mov dl, al                                ; 88 c2
    41514164    and dl, 00fh                              ; 80 e2 0f
    41524165    cmp dl, 001h                              ; 80 fa 01
    4153     jne short 03105h                          ; 75 09
     4166    jne short 03125h                          ; 75 09
    41544167    xor dl, dl                                ; 30 d2
    41554168    mov DH, strict byte 015h                  ; b6 15
    41564169    mov bx, strict word 00001h                ; bb 01 00
    4157     jmp short 03143h                          ; eb 3e
     4170    jmp short 03163h                          ; eb 3e
    41584171    cmp dl, 002h                              ; 80 fa 02
    4159     jne short 03110h                          ; 75 06
     4172    jne short 03130h                          ; 75 06
    41604173    xor dl, dl                                ; 30 d2
    41614174    mov DH, strict byte 035h                  ; b6 35
    4162     jmp short 03100h                          ; eb f0
     4175    jmp short 03120h                          ; eb f0
    41634176    cmp dl, 003h                              ; 80 fa 03
    4164     jne short 0311bh                          ; 75 06
     4177    jne short 0313bh                          ; 75 06
    41654178    xor dl, dl                                ; 30 d2
    41664179    mov DH, strict byte 017h                  ; b6 17
    4167     jmp short 03100h                          ; eb e5
     4180    jmp short 03120h                          ; eb e5
    41684181    cmp dl, 004h                              ; 80 fa 04
    4169     jne short 03126h                          ; 75 06
     4182    jne short 03146h                          ; 75 06
    41704183    xor dl, dl                                ; 30 d2
    41714184    mov DH, strict byte 017h                  ; b6 17
    4172     jmp short 03100h                          ; eb da
     4185    jmp short 03120h                          ; eb da
    41734186    cmp dl, 005h                              ; 80 fa 05
    4174     jne short 03131h                          ; 75 06
     4187    jne short 03151h                          ; 75 06
    41754188    mov DL, strict byte 0cch                  ; b2 cc
    41764189    mov DH, strict byte 0d7h                  ; b6 d7
    4177     jmp short 03100h                          ; eb cf
     4190    jmp short 03120h                          ; eb cf
    41784191    cmp dl, 00eh                              ; 80 fa 0e
    4179     je short 0313bh                           ; 74 05
     4192    je short 0315bh                           ; 74 05
    41804193    cmp dl, 00fh                              ; 80 fa 0f
    4181     jne short 0313dh                          ; 75 02
    4182     jmp short 0312bh                          ; eb ee
     4194    jne short 0315dh                          ; 75 02
     4195    jmp short 0314bh                          ; eb ee
    41834196    xor dl, dl                                ; 30 d2
    41844197    xor dh, dh                                ; 30 f6
     
    41894202    mov byte [es:di], dl                      ; 26 88 15
    41904203    mov ax, si                                ; 89 f0
    4191     call 03037h                               ; e8 e4 fe
     4204    call 03057h                               ; e8 e4 fe
    41924205    test ax, ax                               ; 85 c0
    4193     jne short 03189h                          ; 75 32
     4206    jne short 031a9h                          ; 75 32
    41944207    mov al, dl                                ; 88 d0
    41954208    and AL, strict byte 0c0h                  ; 24 c0
    41964209    cmp AL, strict byte 080h                  ; 3c 80
    4197     je short 03189h                           ; 74 2a
     4210    je short 031a9h                           ; 74 2a
    41984211    mov al, dl                                ; 88 d0
    41994212    and AL, strict byte 0c0h                  ; 24 c0
    42004213    cmp AL, strict byte 0c0h                  ; 3c c0
    4201     je short 03176h                           ; 74 0f
     4214    je short 03196h                           ; 74 0f
    42024215    mov ah, dl                                ; 88 d4
    42034216    and ah, 03fh                              ; 80 e4 3f
    42044217    cmp AL, strict byte 040h                  ; 3c 40
    4205     je short 03182h                           ; 74 12
     4218    je short 031a2h                           ; 74 12
    42064219    test al, al                               ; 84 c0
    4207     je short 0317bh                           ; 74 07
    4208     jmp short 03143h                          ; eb cd
     4220    je short 0319bh                           ; 74 07
     4221    jmp short 03163h                          ; eb cd
    42094222    and dl, 03fh                              ; 80 e2 3f
    4210     jmp short 03143h                          ; eb c8
     4223    jmp short 03163h                          ; eb c8
    42114224    mov dl, ah                                ; 88 e2
    42124225    or dl, 040h                               ; 80 ca 40
    4213     jmp short 03143h                          ; eb c1
     4226    jmp short 03163h                          ; eb c1
    42144227    mov dl, ah                                ; 88 e2
    42154228    or dl, 080h                               ; 80 ca 80
    4216     jmp short 03143h                          ; eb ba
     4229    jmp short 03163h                          ; eb ba
    42174230    test si, si                               ; 85 f6
    4218     jne short 03192h                          ; 75 05
     4231    jne short 031b2h                          ; 75 05
    42194232    mov si, 00090h                            ; be 90 00
    4220     jmp short 03195h                          ; eb 03
     4233    jmp short 031b5h                          ; eb 03
    42214234    mov si, 00091h                            ; be 91 00
    42224235    mov di, 0008bh                            ; bf 8b 00
     
    42354248    pop bp                                    ; 5d
    42364249    retn                                      ; c3
    4237 floppy_drive_exists_:                        ; 0xf31b1 LB 0x4e
     4250floppy_drive_exists_:                        ; 0xf31d1 LB 0x4e
    42384251    push bp                                   ; 55
    42394252    mov bp, sp                                ; 89 e5
     
    42424255    mov dx, ax                                ; 89 c2
    42434256    mov ax, strict word 00010h                ; b8 10 00
    4244     call 016aeh                               ; e8 f0 e4
     4257    call 016aeh                               ; e8 d0 e4
    42454258    test dx, dx                               ; 85 d2
    4246     jne short 031c8h                          ; 75 06
     4259    jne short 031e8h                          ; 75 06
    42474260    mov CL, strict byte 004h                  ; b1 04
    42484261    shr al, CL                                ; d2 e8
    4249     jmp short 031cah                          ; eb 02
     4262    jmp short 031eah                          ; eb 02
    42504263    and AL, strict byte 00fh                  ; 24 0f
    42514264    test al, al                               ; 84 c0
    4252     je short 031d3h                           ; 74 05
     4265    je short 031f3h                           ; 74 05
    42534266    mov ax, strict word 00001h                ; b8 01 00
    4254     jmp short 031d5h                          ; eb 02
     4267    jmp short 031f5h                          ; eb 02
    42554268    xor ah, ah                                ; 30 e4
    42564269    lea sp, [bp-004h]                         ; 8d 66 fc
     
    42644277    add AL, strict byte 003h                  ; 04 03
    42654278    add al, byte [bx+di]                      ; 02 01
    4266     add dh, dl                                ; 00 d6
    4267     cmp di, word [di]                         ; 3b 3d
    4268     xor bh, byte [bx-026ceh]                  ; 32 bf 32 d9
    4269     db  032h, 0d9h
    4270     ; xor bl, cl                                ; 32 d9
    4271     db  032h, 0d9h
    4272     ; xor bl, cl                                ; 32 d9
    4273     xor cl, byte [bp+si+06e36h]               ; 32 8a 36 6e
    4274     cmp byte [bx+di+039h], ch                 ; 38 69 39
    4275     lodsb                                     ; ac
    4276     cmp ax, sp                                ; 39 e0
    4277     cmp word [si+03ah], dx                    ; 39 54 3a
    4278 _int13_diskette_function:                    ; 0xf31ff LB 0x9fd
     4279    add dh, dh                                ; 00 f6
     4280    cmp bx, word [di+032h]                    ; 3b 5d 32
     4281    fbstp [bp+si]                             ; df 32
     4282    stc                                       ; f9
     4283    db  032h, 0f9h
     4284    ; xor bh, cl                                ; 32 f9
     4285    db  032h, 0f9h
     4286    ; xor bh, cl                                ; 32 f9
     4287    xor ch, byte [bp+si-071cah]               ; 32 aa 36 8e
     4288    cmp byte [bx+di-033c7h], cl               ; 38 89 39 cc
     4289    cmp word [bx+si], ax                      ; 39 00
     4290    cmp dh, byte [si+03ah]                    ; 3a 74 3a
     4291_int13_diskette_function:                    ; 0xf321f LB 0x9fd
    42794292    push bp                                   ; 55
    42804293    mov bp, sp                                ; 89 e5
     
    42854298    mov dx, ax                                ; 89 c2
    42864299    cmp ax, strict word 00018h                ; 3d 18 00
    4287     jnbe short 03271h                         ; 77 5c
     4300    jnbe short 03291h                         ; 77 5c
    42884301    push CS                                   ; 0e
    42894302    pop ES                                    ; 07
    42904303    mov cx, strict word 0000ch                ; b9 0c 00
    4291     mov di, 031dch                            ; bf dc 31
     4304    mov di, 031fch                            ; bf fc 31
    42924305    repne scasb                               ; f2 ae
    42934306    sal cx, 1                                 ; d1 e1
    42944307    mov di, cx                                ; 89 cf
    4295     mov di, word [cs:di+031e7h]               ; 2e 8b bd e7 31
     4308    mov di, word [cs:di+03207h]               ; 2e 8b bd 07 32
    42964309    mov cx, word [bp+016h]                    ; 8b 4e 16
    42974310    xor ch, ch                                ; 30 ed
     
    43044317    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    43054318    cmp bl, 001h                              ; 80 fb 01
    4306     jbe short 0325fh                          ; 76 1a
     4319    jbe short 0327fh                          ; 76 1a
    43074320    mov ax, word [bp+016h]                    ; 8b 46 16
    43084321    xor ah, ah                                ; 30 e4
     
    43134326    mov es, ax                                ; 8e c0
    43144327    mov byte [es:bx], 001h                    ; 26 c6 07 01
    4315     jmp near 03ac1h                           ; e9 62 08
     4328    jmp near 03ae1h                           ; e9 62 08
    43164329    mov ax, strict word 00010h                ; b8 10 00
    4317     call 016aeh                               ; e8 49 e4
     4330    call 016aeh                               ; e8 29 e4
    43184331    test bl, bl                               ; 84 db
    4319     jne short 03274h                          ; 75 0b
     4332    jne short 03294h                          ; 75 0b
    43204333    mov CL, strict byte 004h                  ; b1 04
    43214334    mov dl, al                                ; 88 c2
    43224335    shr dl, CL                                ; d2 ea
    4323     jmp short 03279h                          ; eb 08
    4324     jmp near 03bd6h                           ; e9 62 09
     4336    jmp short 03299h                          ; eb 08
     4337    jmp near 03bf6h                           ; e9 62 09
    43254338    mov dl, al                                ; 88 c2
    43264339    and dl, 00fh                              ; 80 e2 0f
    43274340    test dl, dl                               ; 84 d2
    4328     jne short 03297h                          ; 75 1a
     4341    jne short 032b7h                          ; 75 1a
    43294342    mov ax, word [bp+016h]                    ; 8b 46 16
    43304343    xor ah, ah                                ; 30 e4
     
    43354348    mov es, ax                                ; 8e c0
    43364349    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4337     jmp near 03ac1h                           ; e9 2a 08
     4350    jmp near 03ae1h                           ; e9 2a 08
    43384351    mov si, strict word 0003eh                ; be 3e 00
    43394352    mov ax, strict word 00040h                ; b8 40 00
     
    43484361    xor ah, ah                                ; 30 e4
    43494362    xor dx, dx                                ; 31 d2
    4350     call 02eb0h                               ; e8 f5 fb
     4363    call 02ed0h                               ; e8 f5 fb
    43514364    mov sp, bp                                ; 89 ec
    43524365    pop bp                                    ; 5d
     
    43604373    mov word [bp+016h], cx                    ; 89 4e 16
    43614374    test dl, dl                               ; 84 d2
    4362     je short 032bbh                           ; 74 e5
    4363     jmp near 03ac1h                           ; e9 e8 07
     4375    je short 032dbh                           ; 74 e5
     4376    jmp near 03ae1h                           ; e9 e8 07
    43644377    mov bh, byte [bp+016h]                    ; 8a 7e 16
    43654378    mov al, byte [bp+015h]                    ; 8a 46 15
     
    43724385    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    43734386    cmp bl, 001h                              ; 80 fb 01
    4374     jnbe short 03305h                         ; 77 0d
     4387    jnbe short 03325h                         ; 77 0d
    43754388    cmp AL, strict byte 001h                  ; 3c 01
    4376     jnbe short 03305h                         ; 77 09
     4389    jnbe short 03325h                         ; 77 09
    43774390    test bh, bh                               ; 84 ff
    4378     je short 03305h                           ; 74 05
     4391    je short 03325h                           ; 74 05
    43794392    cmp bh, 048h                              ; 80 ff 48
    4380     jbe short 0333ch                          ; 76 37
    4381     mov bx, 00da4h                            ; bb a4 0d
     4393    jbe short 0335ch                          ; 76 37
     4394    mov bx, 00da0h                            ; bb a0 0d
    43824395    mov cx, ds                                ; 8c d9
    43834396    mov ax, strict word 00004h                ; b8 04 00
    4384     call 01933h                               ; e8 23 e6
     4397    call 01933h                               ; e8 03 e6
    43854398    mov ax, 00275h                            ; b8 75 02
    43864399    push ax                                   ; 50
     
    43894402    mov ax, strict word 00004h                ; b8 04 00
    43904403    push ax                                   ; 50
    4391     call 01976h                               ; e8 57 e6
     4404    call 01976h                               ; e8 37 e6
    43924405    add sp, strict byte 00006h                ; 83 c4 06
    43934406    mov ax, word [bp+016h]                    ; 8b 46 16
     
    43994412    mov es, ax                                ; 8e c0
    44004413    mov byte [es:bx], 001h                    ; 26 c6 07 01
    4401     jmp near 033e6h                           ; e9 aa 00
     4414    jmp near 03406h                           ; e9 aa 00
    44024415    mov al, bl                                ; 88 d8
    44034416    xor ah, ah                                ; 30 e4
    4404     call 031b1h                               ; e8 6e fe
     4417    call 031d1h                               ; e8 6e fe
    44054418    test ax, ax                               ; 85 c0
    4406     jne short 03361h                          ; 75 1a
     4419    jne short 03381h                          ; 75 1a
    44074420    mov ax, word [bp+016h]                    ; 8b 46 16
    44084421    xor ah, ah                                ; 30 e4
     
    44134426    mov es, ax                                ; 8e c0
    44144427    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4415     jmp near 033e6h                           ; e9 85 00
     4428    jmp near 03406h                           ; e9 85 00
    44164429    mov cl, bl                                ; 88 d9
    44174430    xor ch, ch                                ; 30 ed
    44184431    mov ax, cx                                ; 89 c8
    4419     call 02febh                               ; e8 81 fc
     4432    call 0300bh                               ; e8 81 fc
    44204433    test ax, ax                               ; 85 c0
    4421     jne short 03394h                          ; 75 26
     4434    jne short 033b4h                          ; 75 26
    44224435    mov ax, cx                                ; 89 c8
    4423     call 030cah                               ; e8 57 fd
     4436    call 030eah                               ; e8 57 fd
    44244437    test ax, ax                               ; 85 c0
    4425     jne short 03394h                          ; 75 1d
     4438    jne short 033b4h                          ; 75 1d
    44264439    mov ax, word [bp+016h]                    ; 8b 46 16
    44274440    xor ah, ah                                ; 30 e4
     
    44334446    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
    44344447    mov byte [bp+016h], ch                    ; 88 6e 16
    4435     jmp near 03ac1h                           ; e9 2d 07
     4448    jmp near 03ae1h                           ; e9 2d 07
    44364449    mov al, byte [bp+017h]                    ; 8a 46 17
    44374450    xor ah, ah                                ; 30 e4
    44384451    cmp ax, strict word 00002h                ; 3d 02 00
    4439     jne short 033edh                          ; 75 4f
     4452    jne short 0340dh                          ; 75 4f
    44404453    mov CL, strict byte 00ch                  ; b1 0c
    44414454    mov ax, word [bp+006h]                    ; 8b 46 06
     
    44494462    mov word [bp-00ch], si                    ; 89 76 f4
    44504463    cmp dx, si                                ; 39 f2
    4451     jbe short 033bch                          ; 76 02
     4464    jbe short 033dch                          ; 76 02
    44524465    db  0feh, 0c5h
    44534466    ; inc ch                                    ; fe c5
     
    44614474    add ax, word [bp-00eh]                    ; 03 46 f2
    44624475    cmp ax, word [bp-00ch]                    ; 3b 46 f4
    4463     jnc short 033f0h                          ; 73 1d
     4476    jnc short 03410h                          ; 73 1d
    44644477    mov ax, word [bp+016h]                    ; 8b 46 16
    44654478    mov ah, cl                                ; 88 cc
     
    44704483    mov byte [es:bx], cl                      ; 26 88 0f
    44714484    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4472     jmp near 03ac1h                           ; e9 d4 06
    4473     jmp near 0353ah                           ; e9 4a 01
     4485    jmp near 03ae1h                           ; e9 d4 06
     4486    jmp near 0355ah                           ; e9 4a 01
    44744487    mov AL, strict byte 006h                  ; b0 06
    44754488    mov dx, strict word 0000ah                ; ba 0a 00
     
    45034516    xor ch, ch                                ; 30 ed
    45044517    mov ax, cx                                ; 89 c8
    4505     call 02f76h                               ; e8 43 fb
     4518    call 02f96h                               ; e8 43 fb
    45064519    mov AL, strict byte 0e6h                  ; b0 e6
    45074520    mov dx, 003f5h                            ; ba f5 03
     
    45364549    mov AL, strict byte 0ffh                  ; b0 ff
    45374550    out DX, AL                                ; ee
    4538     call 02effh                               ; e8 8b fa
     4551    call 02f1fh                               ; e8 8b fa
    45394552    test al, al                               ; 84 c0
    4540     jne short 03497h                          ; 75 1f
     4553    jne short 034b7h                          ; 75 1f
    45414554    mov ax, cx                                ; 89 c8
    4542     call 02f37h                               ; e8 ba fa
     4555    call 02f57h                               ; e8 ba fa
    45434556    mov ax, word [bp+016h]                    ; 8b 46 16
    45444557    xor ah, ah                                ; 30 e4
     
    45494562    mov es, ax                                ; 8e c0
    45504563    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4551     jmp near 0338eh                           ; e9 f7 fe
     4564    jmp near 033aeh                           ; e9 f7 fe
    45524565    mov dx, 003f4h                            ; ba f4 03
    45534566    in AL, DX                                 ; ec
     
    45564569    and AL, strict byte 0c0h                  ; 24 c0
    45574570    cmp AL, strict byte 0c0h                  ; 3c c0
    4558     je short 034b5h                           ; 74 12
     4571    je short 034d5h                           ; 74 12
    45594572    mov ax, 00275h                            ; b8 75 02
    45604573    push ax                                   ; 50
     
    45634576    mov ax, strict word 00007h                ; b8 07 00
    45644577    push ax                                   ; 50
    4565     call 01976h                               ; e8 c4 e4
     4578    call 01976h                               ; e8 a4 e4
    45664579    add sp, strict byte 00006h                ; 83 c4 06
    45674580    xor cx, cx                                ; 31 c9
    4568     jmp short 034beh                          ; eb 05
     4581    jmp short 034deh                          ; eb 05
    45694582    cmp cx, strict byte 00007h                ; 83 f9 07
    4570     jnl short 034d4h                          ; 7d 16
     4583    jnl short 034f4h                          ; 7d 16
    45714584    mov dx, 003f5h                            ; ba f5 03
    45724585    in AL, DX                                 ; ec
     
    45794592    mov byte [es:si], al                      ; 26 88 04
    45804593    inc cx                                    ; 41
    4581     jmp short 034b9h                          ; eb e5
     4594    jmp short 034d9h                          ; eb e5
    45824595    mov si, strict word 00042h                ; be 42 00
    45834596    mov ax, strict word 00040h                ; b8 40 00
     
    45854598    mov al, byte [es:si]                      ; 26 8a 04
    45864599    test AL, strict byte 0c0h                 ; a8 c0
    4587     je short 03504h                           ; 74 21
     4600    je short 03524h                           ; 74 21
    45884601    mov al, bl                                ; 88 d8
    45894602    xor ah, ah                                ; 30 e4
    4590     call 02f37h                               ; e8 4d fa
     4603    call 02f57h                               ; e8 4d fa
    45914604    mov ax, word [bp+016h]                    ; 8b 46 16
    45924605    xor ah, ah                                ; 30 e4
     
    45974610    mov es, ax                                ; 8e c0
    45984611    mov byte [es:bx], 020h                    ; 26 c6 07 20
    4599     jmp near 033e6h                           ; e9 e2 fe
     4612    jmp near 03406h                           ; e9 e2 fe
    46004613    mov al, bh                                ; 88 f8
    46014614    xor ah, ah                                ; 30 e4
     
    46194632    mov al, bl                                ; 88 d8
    46204633    xor ah, ah                                ; 30 e4
    4621     call 02eb0h                               ; e8 81 f9
     4634    call 02ed0h                               ; e8 81 f9
    46224635    mov byte [bp+017h], 000h                  ; c6 46 17 00
    46234636    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4624     jmp near 032bbh                           ; e9 81 fd
     4637    jmp near 032dbh                           ; e9 81 fd
    46254638    mov al, byte [bp+017h]                    ; 8a 46 17
    46264639    xor ah, ah                                ; 30 e4
    46274640    cmp ax, strict word 00003h                ; 3d 03 00
    4628     je short 03547h                           ; 74 03
    4629     jmp near 03673h                           ; e9 2c 01
     4641    je short 03567h                           ; 74 03
     4642    jmp near 03693h                           ; e9 2c 01
    46304643    mov CL, strict byte 00ch                  ; b1 0c
    46314644    mov dx, word [bp+006h]                    ; 8b 56 06
     
    46394652    mov word [bp-00ch], si                    ; 89 76 f4
    46404653    cmp ax, si                                ; 39 f0
    4641     jbe short 03565h                          ; 76 02
     4654    jbe short 03585h                          ; 76 02
    46424655    db  0feh, 0c5h
    46434656    ; inc ch                                    ; fe c5
     
    46514664    add ax, word [bp-00eh]                    ; 03 46 f2
    46524665    cmp ax, word [bp-00ch]                    ; 3b 46 f4
    4653     jnc short 0357fh                          ; 73 03
    4654     jmp near 033d3h                           ; e9 54 fe
     4666    jnc short 0359fh                          ; 73 03
     4667    jmp near 033f3h                           ; e9 54 fe
    46554668    mov AL, strict byte 006h                  ; b0 06
    46564669    mov dx, strict word 0000ah                ; ba 0a 00
     
    46844697    xor ch, ch                                ; 30 ed
    46854698    mov ax, cx                                ; 89 c8
    4686     call 02f76h                               ; e8 b4 f9
     4699    call 02f96h                               ; e8 b4 f9
    46874700    mov AL, strict byte 0c5h                  ; b0 c5
    46884701    mov dx, 003f5h                            ; ba f5 03
     
    47174730    mov AL, strict byte 0ffh                  ; b0 ff
    47184731    out DX, AL                                ; ee
    4719     call 02effh                               ; e8 fc f8
     4732    call 02f1fh                               ; e8 fc f8
    47204733    test al, al                               ; 84 c0
    4721     jne short 0360ah                          ; 75 03
    4722     jmp near 03478h                           ; e9 6e fe
     4734    jne short 0362ah                          ; 75 03
     4735    jmp near 03498h                           ; e9 6e fe
    47234736    mov dx, 003f4h                            ; ba f4 03
    47244737    in AL, DX                                 ; ec
     
    47274740    and AL, strict byte 0c0h                  ; 24 c0
    47284741    cmp AL, strict byte 0c0h                  ; 3c c0
    4729     je short 03628h                           ; 74 12
     4742    je short 03648h                           ; 74 12
    47304743    mov ax, 00275h                            ; b8 75 02
    47314744    push ax                                   ; 50
     
    47344747    mov ax, strict word 00007h                ; b8 07 00
    47354748    push ax                                   ; 50
    4736     call 01976h                               ; e8 51 e3
     4749    call 01976h                               ; e8 31 e3
    47374750    add sp, strict byte 00006h                ; 83 c4 06
    47384751    xor cx, cx                                ; 31 c9
    4739     jmp short 03631h                          ; eb 05
     4752    jmp short 03651h                          ; eb 05
    47404753    cmp cx, strict byte 00007h                ; 83 f9 07
    4741     jnl short 03647h                          ; 7d 16
     4754    jnl short 03667h                          ; 7d 16
    47424755    mov dx, 003f5h                            ; ba f5 03
    47434756    in AL, DX                                 ; ec
     
    47504763    mov byte [es:si], al                      ; 26 88 04
    47514764    inc cx                                    ; 41
    4752     jmp short 0362ch                          ; eb e5
     4765    jmp short 0364ch                          ; eb e5
    47534766    mov si, strict word 00042h                ; be 42 00
    47544767    mov ax, strict word 00040h                ; b8 40 00
     
    47564769    mov al, byte [es:si]                      ; 26 8a 04
    47574770    test AL, strict byte 0c0h                 ; a8 c0
    4758     jne short 03659h                          ; 75 03
    4759     jmp near 03523h                           ; e9 ca fe
     4771    jne short 03679h                          ; 75 03
     4772    jmp near 03543h                           ; e9 ca fe
    47604773    mov bx, strict word 00043h                ; bb 43 00
    47614774    mov al, byte [es:bx]                      ; 26 8a 07
    47624775    test AL, strict byte 002h                 ; a8 02
    4763     je short 0366bh                           ; 74 08
     4776    je short 0368bh                           ; 74 08
    47644777    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    4765     jmp near 03ac1h                           ; e9 56 04
     4778    jmp near 03ae1h                           ; e9 56 04
    47664779    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4767     jmp near 03ac1h                           ; e9 4e 04
     4780    jmp near 03ae1h                           ; e9 4e 04
    47684781    mov dl, byte [bp-004h]                    ; 8a 56 fc
    47694782    xor dh, dh                                ; 30 f6
    47704783    mov al, bl                                ; 88 d8
    47714784    xor ah, ah                                ; 30 e4
    4772     call 02eb0h                               ; e8 31 f8
     4785    call 02ed0h                               ; e8 31 f8
    47734786    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    47744787    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4775     jmp near 032bbh                           ; e9 31 fc
     4788    jmp near 032dbh                           ; e9 31 fc
    47764789    mov bh, byte [bp+016h]                    ; 8a 7e 16
    47774790    mov dl, byte [bp+015h]                    ; 8a 56 15
     
    47834796    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    47844797    cmp bl, 001h                              ; 80 fb 01
    4785     jnbe short 036b7h                         ; 77 12
     4798    jnbe short 036d7h                         ; 77 12
    47864799    cmp AL, strict byte 001h                  ; 3c 01
    4787     jnbe short 036b7h                         ; 77 0e
     4800    jnbe short 036d7h                         ; 77 0e
    47884801    cmp dl, 04fh                              ; 80 fa 4f
    4789     jnbe short 036b7h                         ; 77 09
     4802    jnbe short 036d7h                         ; 77 09
    47904803    test bh, bh                               ; 84 ff
    4791     je short 036b7h                           ; 74 05
     4804    je short 036d7h                           ; 74 05
    47924805    cmp bh, 012h                              ; 80 ff 12
    4793     jbe short 036d2h                          ; 76 1b
     4806    jbe short 036f2h                          ; 76 1b
    47944807    mov ax, word [bp+016h]                    ; 8b 46 16
    47954808    xor ah, ah                                ; 30 e4
     
    48034816    mov al, bl                                ; 88 d8
    48044817    xor ah, ah                                ; 30 e4
    4805     call 031b1h                               ; e8 d8 fa
     4818    call 031d1h                               ; e8 d8 fa
    48064819    test ax, ax                               ; 85 c0
    4807     jne short 036f7h                          ; 75 1a
     4820    jne short 03717h                          ; 75 1a
    48084821    mov ax, word [bp+016h]                    ; 8b 46 16
    48094822    xor ah, ah                                ; 30 e4
     
    48144827    mov es, ax                                ; 8e c0
    48154828    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4816     jmp near 03ac1h                           ; e9 ca 03
     4829    jmp near 03ae1h                           ; e9 ca 03
    48174830    mov cl, bl                                ; 88 d9
    48184831    xor ch, ch                                ; 30 ed
    48194832    mov ax, cx                                ; 89 c8
    4820     call 02febh                               ; e8 eb f8
     4833    call 0300bh                               ; e8 eb f8
    48214834    test ax, ax                               ; 85 c0
    4822     jne short 03710h                          ; 75 0c
     4835    jne short 03730h                          ; 75 0c
    48234836    mov ax, cx                                ; 89 c8
    4824     call 030cah                               ; e8 c1 f9
     4837    call 030eah                               ; e8 c1 f9
    48254838    test ax, ax                               ; 85 c0
    4826     jne short 03710h                          ; 75 03
    4827     jmp near 03377h                           ; e9 67 fc
     4839    jne short 03730h                          ; 75 03
     4840    jmp near 03397h                           ; e9 67 fc
    48284841    mov CL, strict byte 00ch                  ; b1 0c
    48294842    mov ax, word [bp+006h]                    ; 8b 46 06
     
    48374850    mov word [bp-00ch], si                    ; 89 76 f4
    48384851    cmp dx, si                                ; 39 f2
    4839     jbe short 0372eh                          ; 76 02
     4852    jbe short 0374eh                          ; 76 02
    48404853    db  0feh, 0c5h
    48414854    ; inc ch                                    ; fe c5
     
    48494862    add ax, word [bp-00eh]                    ; 03 46 f2
    48504863    cmp ax, word [bp-00ch]                    ; 3b 46 f4
    4851     jnc short 0375fh                          ; 73 1a
     4864    jnc short 0377fh                          ; 73 1a
    48524865    mov ax, word [bp+016h]                    ; 8b 46 16
    48534866    xor ah, ah                                ; 30 e4
     
    48584871    mov es, ax                                ; 8e c0
    48594872    mov byte [es:bx], 009h                    ; 26 c6 07 09
    4860     jmp near 033e6h                           ; e9 87 fc
     4873    jmp near 03406h                           ; e9 87 fc
    48614874    mov AL, strict byte 006h                  ; b0 06
    48624875    mov dx, strict word 0000ah                ; ba 0a 00
     
    48904903    xor ch, ch                                ; 30 ed
    48914904    mov ax, cx                                ; 89 c8
    4892     call 02f76h                               ; e8 d4 f7
     4905    call 02f96h                               ; e8 d4 f7
    48934906    mov AL, strict byte 00fh                  ; b0 0f
    48944907    mov dx, 003f5h                            ; ba f5 03
     
    49194932    mov AL, strict byte 0f6h                  ; b0 f6
    49204933    out DX, AL                                ; ee
    4921     call 02effh                               ; e8 24 f7
     4934    call 02f1fh                               ; e8 24 f7
    49224935    test al, al                               ; 84 c0
    4923     jne short 037e7h                          ; 75 08
     4936    jne short 03807h                          ; 75 08
    49244937    mov ax, cx                                ; 89 c8
    4925     call 02f37h                               ; e8 53 f7
    4926     jmp near 036ddh                           ; e9 f6 fe
     4938    call 02f57h                               ; e8 53 f7
     4939    jmp near 036fdh                           ; e9 f6 fe
    49274940    mov dx, 003f4h                            ; ba f4 03
    49284941    in AL, DX                                 ; ec
     
    49314944    and AL, strict byte 0c0h                  ; 24 c0
    49324945    cmp AL, strict byte 0c0h                  ; 3c c0
    4933     je short 03805h                           ; 74 12
     4946    je short 03825h                           ; 74 12
    49344947    mov ax, 00275h                            ; b8 75 02
    49354948    push ax                                   ; 50
     
    49384951    mov ax, strict word 00007h                ; b8 07 00
    49394952    push ax                                   ; 50
    4940     call 01976h                               ; e8 74 e1
     4953    call 01976h                               ; e8 54 e1
    49414954    add sp, strict byte 00006h                ; 83 c4 06
    49424955    xor cx, cx                                ; 31 c9
    4943     jmp short 0380eh                          ; eb 05
     4956    jmp short 0382eh                          ; eb 05
    49444957    cmp cx, strict byte 00007h                ; 83 f9 07
    4945     jnl short 03824h                          ; 7d 16
     4958    jnl short 03844h                          ; 7d 16
    49464959    mov dx, 003f5h                            ; ba f5 03
    49474960    in AL, DX                                 ; ec
     
    49544967    mov byte [es:si], al                      ; 26 88 04
    49554968    inc cx                                    ; 41
    4956     jmp short 03809h                          ; eb e5
     4969    jmp short 03829h                          ; eb e5
    49574970    mov si, strict word 00042h                ; be 42 00
    49584971    mov ax, strict word 00040h                ; b8 40 00
     
    49604973    mov al, byte [es:si]                      ; 26 8a 04
    49614974    test AL, strict byte 0c0h                 ; a8 c0
    4962     je short 03852h                           ; 74 1f
     4975    je short 03872h                           ; 74 1f
    49634976    mov si, strict word 00043h                ; be 43 00
    49644977    mov al, byte [es:si]                      ; 26 8a 04
    49654978    test AL, strict byte 002h                 ; a8 02
    4966     je short 03840h                           ; 74 03
    4967     jmp near 03663h                           ; e9 23 fe
     4979    je short 03860h                           ; 74 03
     4980    jmp near 03683h                           ; e9 23 fe
    49684981    mov ax, 00275h                            ; b8 75 02
    49694982    push ax                                   ; 50
     
    49724985    mov ax, strict word 00007h                ; b8 07 00
    49734986    push ax                                   ; 50
    4974     call 01976h                               ; e8 27 e1
     4987    call 01976h                               ; e8 07 e1
    49754988    add sp, strict byte 00006h                ; 83 c4 06
    49764989    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    49824995    xor ah, ah                                ; 30 e4
    49834996    xor dx, dx                                ; 31 d2
    4984     call 02eb0h                               ; e8 45 f6
    4985     jmp near 03533h                           ; e9 c5 fc
     4997    call 02ed0h                               ; e8 45 f6
     4998    jmp near 03553h                           ; e9 c5 fc
    49864999    mov bl, dl                                ; 88 d3
    49875000    cmp dl, 001h                              ; 80 fa 01
    4988     jbe short 0389bh                          ; 76 26
     5001    jbe short 038bbh                          ; 76 26
    49895002    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    49905003    mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
     
    49955008    mov dl, bh                                ; 88 fa
    49965009    mov word [bp+012h], dx                    ; 89 56 12
    4997     jmp near 039c0h                           ; e9 25 01
     5010    jmp near 039e0h                           ; e9 25 01
    49985011    mov ax, strict word 00010h                ; b8 10 00
    4999     call 016aeh                               ; e8 0d de
     5012    call 016aeh                               ; e8 ed dd
    50005013    mov dl, al                                ; 88 c2
    50015014    xor bh, bh                                ; 30 ff
    50025015    test AL, strict byte 0f0h                 ; a8 f0
    5003     je short 038abh                           ; 74 02
     5016    je short 038cbh                           ; 74 02
    50045017    mov BH, strict byte 001h                  ; b7 01
    50055018    test dl, 00fh                             ; f6 c2 0f
    5006     je short 038b2h                           ; 74 02
     5019    je short 038d2h                           ; 74 02
    50075020    db  0feh, 0c7h
    50085021    ; inc bh                                    ; fe c7
    50095022    test bl, bl                               ; 84 db
    5010     jne short 038bch                          ; 75 06
     5023    jne short 038dch                          ; 75 06
    50115024    mov CL, strict byte 004h                  ; b1 04
    50125025    shr dl, CL                                ; d2 ea
    5013     jmp short 038bfh                          ; eb 03
     5026    jmp short 038dfh                          ; eb 03
    50145027    and dl, 00fh                              ; 80 e2 0f
    50155028    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    50275040    mov word [bp+012h], ax                    ; 89 46 12
    50285041    cmp dl, 003h                              ; 80 fa 03
    5029     jc short 038fbh                           ; 72 15
    5030     jbe short 03922h                          ; 76 3a
     5042    jc short 0391bh                           ; 72 15
     5043    jbe short 03942h                          ; 76 3a
    50315044    cmp dl, 005h                              ; 80 fa 05
    5032     jc short 03929h                           ; 72 3c
    5033     jbe short 03930h                          ; 76 41
     5045    jc short 03949h                           ; 72 3c
     5046    jbe short 03950h                          ; 76 41
    50345047    cmp dl, 00fh                              ; 80 fa 0f
    5035     je short 0393eh                           ; 74 4a
     5048    je short 0395eh                           ; 74 4a
    50365049    cmp dl, 00eh                              ; 80 fa 0e
    5037     je short 03937h                           ; 74 3e
    5038     jmp short 03945h                          ; eb 4a
     5050    je short 03957h                           ; 74 3e
     5051    jmp short 03965h                          ; eb 4a
    50395052    cmp dl, 002h                              ; 80 fa 02
    5040     je short 0391bh                           ; 74 1b
     5053    je short 0393bh                           ; 74 1b
    50415054    cmp dl, 001h                              ; 80 fa 01
    5042     je short 03914h                           ; 74 0f
     5055    je short 03934h                           ; 74 0f
    50435056    test dl, dl                               ; 84 d2
    5044     jne short 03945h                          ; 75 3c
     5057    jne short 03965h                          ; 75 3c
    50455058    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    50465059    mov byte [bp+013h], 000h                  ; c6 46 13 00
    5047     jmp short 03957h                          ; eb 43
     5060    jmp short 03977h                          ; eb 43
    50485061    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    5049     jmp short 03957h                          ; eb 3c
     5062    jmp short 03977h                          ; eb 3c
    50505063    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    5051     jmp short 03957h                          ; eb 35
     5064    jmp short 03977h                          ; eb 35
    50525065    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    5053     jmp short 03957h                          ; eb 2e
     5066    jmp short 03977h                          ; eb 2e
    50545067    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    5055     jmp short 03957h                          ; eb 27
     5068    jmp short 03977h                          ; eb 27
    50565069    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    5057     jmp short 03957h                          ; eb 20
     5070    jmp short 03977h                          ; eb 20
    50585071    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    5059     jmp short 03957h                          ; eb 19
     5072    jmp short 03977h                          ; eb 19
    50605073    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    5061     jmp short 03957h                          ; eb 12
     5074    jmp short 03977h                          ; eb 12
    50625075    mov ax, 00275h                            ; b8 75 02
    50635076    push ax                                   ; 50
     
    50665079    mov ax, strict word 00007h                ; b8 07 00
    50675080    push ax                                   ; 50
    5068     call 01976h                               ; e8 22 e0
     5081    call 01976h                               ; e8 02 e0
    50695082    add sp, strict byte 00006h                ; 83 c4 06
    50705083    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    50715084    mov al, dl                                ; 88 d0
    50725085    xor ah, ah                                ; 30 e4
    5073     call 03bfch                               ; e8 99 02
     5086    call 03c1ch                               ; e8 99 02
    50745087    mov word [bp+008h], ax                    ; 89 46 08
    5075     jmp near 03533h                           ; e9 ca fb
     5088    jmp near 03553h                           ; e9 ca fb
    50765089    mov bl, dl                                ; 88 d3
    50775090    cmp dl, 001h                              ; 80 fa 01
    5078     jbe short 03975h                          ; 76 05
     5091    jbe short 03995h                          ; 76 05
    50795092    mov word [bp+016h], cx                    ; 89 4e 16
    5080     jmp short 039c0h                          ; eb 4b
     5093    jmp short 039e0h                          ; eb 4b
    50815094    mov ax, strict word 00010h                ; b8 10 00
    5082     call 016aeh                               ; e8 33 dd
     5095    call 016aeh                               ; e8 13 dd
    50835096    test bl, bl                               ; 84 db
    5084     jne short 03987h                          ; 75 08
     5097    jne short 039a7h                          ; 75 08
    50855098    mov CL, strict byte 004h                  ; b1 04
    50865099    mov dl, al                                ; 88 c2
    50875100    shr dl, CL                                ; d2 ea
    5088     jmp short 0398ch                          ; eb 05
     5101    jmp short 039ach                          ; eb 05
    50895102    mov dl, al                                ; 88 c2
    50905103    and dl, 00fh                              ; 80 e2 0f
     
    50935106    xor ah, ah                                ; 30 e4
    50945107    test dl, dl                               ; 84 d2
    5095     je short 039a6h                           ; 74 0d
     5108    je short 039c6h                           ; 74 0d
    50965109    cmp dl, 001h                              ; 80 fa 01
    5097     jbe short 039a3h                          ; 76 05
     5110    jbe short 039c3h                          ; 76 05
    50985111    or ah, 002h                               ; 80 cc 02
    5099     jmp short 039a6h                          ; eb 03
     5112    jmp short 039c6h                          ; eb 03
    51005113    or ah, 001h                               ; 80 cc 01
    51015114    mov word [bp+016h], ax                    ; 89 46 16
    5102     jmp near 032bbh                           ; e9 0f f9
     5115    jmp near 032dbh                           ; e9 0f f9
    51035116    cmp dl, 001h                              ; 80 fa 01
    5104     jbe short 039c6h                          ; 76 15
     5117    jbe short 039e6h                          ; 76 15
    51055118    mov word [bp+016h], si                    ; 89 76 16
    51065119    mov bx, strict word 00041h                ; bb 41 00
     
    51095122    mov byte [es:bx], 001h                    ; 26 c6 07 01
    51105123    mov word [bp+01ch], ax                    ; 89 46 1c
    5111     jmp near 032bbh                           ; e9 f5 f8
     5124    jmp near 032dbh                           ; e9 f5 f8
    51125125    mov ax, word [bp+016h]                    ; 8b 46 16
    51135126    xor ah, ah                                ; 30 e4
     
    51185131    mov es, ax                                ; 8e c0
    51195132    mov byte [es:bx], 006h                    ; 26 c6 07 06
    5120     jmp near 03ac1h                           ; e9 e1 00
     5133    jmp near 03ae1h                           ; e9 e1 00
    51215134    mov bl, dl                                ; 88 d3
    51225135    mov cl, byte [bp+016h]                    ; 8a 4e 16
    51235136    cmp dl, 001h                              ; 80 fa 01
    5124     jnbe short 039b1h                         ; 77 c7
     5137    jnbe short 039d1h                         ; 77 c7
    51255138    mov al, bl                                ; 88 d8
    51265139    xor ah, ah                                ; 30 e4
    5127     call 031b1h                               ; e8 c0 f7
     5140    call 031d1h                               ; e8 c0 f7
    51285141    test ax, ax                               ; 85 c0
    5129     jne short 039f8h                          ; 75 03
    5130     jmp near 036ddh                           ; e9 e5 fc
     5142    jne short 03a18h                          ; 75 03
     5143    jmp near 036fdh                           ; e9 e5 fc
    51315144    test bl, bl                               ; 84 db
    5132     je short 03a01h                           ; 74 05
     5145    je short 03a21h                           ; 74 05
    51335146    mov bx, 00091h                            ; bb 91 00
    5134     jmp short 03a04h                          ; eb 03
     5147    jmp short 03a24h                          ; eb 03
    51355148    mov bx, 00090h                            ; bb 90 00
    51365149    mov word [bp-00ch], bx                    ; 89 5e f4
     
    51405153    and bl, 00fh                              ; 80 e3 0f
    51415154    cmp cl, 002h                              ; 80 f9 02
    5142     jc short 03a26h                           ; 72 0f
    5143     jbe short 03a33h                          ; 76 1a
     5155    jc short 03a46h                           ; 72 0f
     5156    jbe short 03a53h                          ; 76 1a
    51445157    cmp cl, 004h                              ; 80 f9 04
    5145     je short 03a2eh                           ; 74 10
     5158    je short 03a4eh                           ; 74 10
    51465159    cmp cl, 003h                              ; 80 f9 03
    5147     je short 03a38h                           ; 74 15
    5148     jmp near 03245h                           ; e9 1f f8
     5160    je short 03a58h                           ; 74 15
     5161    jmp near 03265h                           ; e9 1f f8
    51495162    cmp cl, 001h                              ; 80 f9 01
    5150     je short 03a2eh                           ; 74 03
    5151     jmp near 03245h                           ; e9 17 f8
     5163    je short 03a4eh                           ; 74 03
     5164    jmp near 03265h                           ; e9 17 f8
    51525165    or bl, 090h                               ; 80 cb 90
    5153     jmp short 03a3bh                          ; eb 08
     5166    jmp short 03a5bh                          ; eb 08
    51545167    or bl, 070h                               ; 80 cb 70
    5155     jmp short 03a3bh                          ; eb 03
     5168    jmp short 03a5bh                          ; eb 03
    51565169    or bl, 010h                               ; 80 cb 10
    51575170    mov ax, strict word 00040h                ; b8 40 00
     
    51635176    mov bx, strict word 00041h                ; bb 41 00
    51645177    mov byte [es:bx], al                      ; 26 88 07
    5165     jmp near 03533h                           ; e9 df fa
     5178    jmp near 03553h                           ; e9 df fa
    51665179    mov bl, dl                                ; 88 d3
    51675180    mov cl, byte [bp+014h]                    ; 8a 4e 14
     
    51815194    mov byte [bp-004h], cl                    ; 88 4e fc
    51825195    cmp dl, 001h                              ; 80 fa 01
    5183     jbe short 03a86h                          ; 76 03
    5184     jmp near 039b1h                           ; e9 2b ff
     5196    jbe short 03aa6h                          ; 76 03
     5197    jmp near 039d1h                           ; e9 2b ff
    51855198    mov al, bl                                ; 88 d8
    51865199    xor ah, ah                                ; 30 e4
    5187     call 031b1h                               ; e8 24 f7
     5200    call 031d1h                               ; e8 24 f7
    51885201    test ax, ax                               ; 85 c0
    5189     jne short 03a94h                          ; 75 03
    5190     jmp near 036ddh                           ; e9 49 fc
     5202    jne short 03ab4h                          ; 75 03
     5203    jmp near 036fdh                           ; e9 49 fc
    51915204    mov cl, bl                                ; 88 d9
    51925205    xor ch, ch                                ; 30 ed
    51935206    mov ax, cx                                ; 89 c8
    5194     call 02febh                               ; e8 4e f5
     5207    call 0300bh                               ; e8 4e f5
    51955208    test ax, ax                               ; 85 c0
    5196     jne short 03ac8h                          ; 75 27
     5209    jne short 03ae8h                          ; 75 27
    51975210    mov ax, cx                                ; 89 c8
    5198     call 030cah                               ; e8 24 f6
     5211    call 030eah                               ; e8 24 f6
    51995212    test ax, ax                               ; 85 c0
    5200     jne short 03ac8h                          ; 75 1e
     5213    jne short 03ae8h                          ; 75 1e
    52015214    mov ax, word [bp+016h]                    ; 8b 46 16
    52025215    xor ah, ah                                ; 30 e4
     
    52085221    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
    52095222    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5210     jmp near 032bbh                           ; e9 f3 f7
     5223    jmp near 032dbh                           ; e9 f3 f7
    52115224    mov ax, strict word 00010h                ; b8 10 00
    5212     call 016aeh                               ; e8 e0 db
     5225    call 016aeh                               ; e8 c0 db
    52135226    test bl, bl                               ; 84 db
    5214     jne short 03adah                          ; 75 08
     5227    jne short 03afah                          ; 75 08
    52155228    mov CL, strict byte 004h                  ; b1 04
    52165229    mov dl, al                                ; 88 c2
    52175230    shr dl, CL                                ; d2 ea
    5218     jmp short 03adfh                          ; eb 05
     5231    jmp short 03affh                          ; eb 05
    52195232    mov dl, al                                ; 88 c2
    52205233    and dl, 00fh                              ; 80 e2 0f
    52215234    test bl, bl                               ; 84 db
    5222     je short 03ae8h                           ; 74 05
     5235    je short 03b08h                           ; 74 05
    52235236    mov si, 00091h                            ; be 91 00
    5224     jmp short 03aebh                          ; eb 03
     5237    jmp short 03b0bh                          ; eb 03
    52255238    mov si, 00090h                            ; be 90 00
    52265239    mov word [bp-00ch], si                    ; 89 76 f4
     
    52305243    and bl, 00fh                              ; 80 e3 0f
    52315244    cmp dl, 003h                              ; 80 fa 03
    5232     jc short 03b19h                           ; 72 1b
     5245    jc short 03b39h                           ; 72 1b
    52335246    mov al, bl                                ; 88 d8
    52345247    or AL, strict byte 090h                   ; 0c 90
    52355248    cmp dl, 003h                              ; 80 fa 03
    5236     jbe short 03b55h                          ; 76 4e
     5249    jbe short 03b75h                          ; 76 4e
    52375250    mov ah, bl                                ; 88 dc
    52385251    or ah, 010h                               ; 80 cc 10
    52395252    cmp dl, 005h                              ; 80 fa 05
    5240     je short 03b53h                           ; 74 42
     5253    je short 03b73h                           ; 74 42
    52415254    cmp dl, 004h                              ; 80 fa 04
    5242     je short 03b62h                           ; 74 4c
    5243     jmp near 03b9ah                           ; e9 81 00
     5255    je short 03b82h                           ; 74 4c
     5256    jmp near 03bbah                           ; e9 81 00
    52445257    cmp dl, 002h                              ; 80 fa 02
    5245     je short 03b33h                           ; 74 15
     5258    je short 03b53h                           ; 74 15
    52465259    cmp dl, 001h                              ; 80 fa 01
    5247     jne short 03b66h                          ; 75 43
     5260    jne short 03b86h                          ; 75 43
    52485261    cmp byte [bp-004h], 027h                  ; 80 7e fc 27
    5249     jne short 03b66h                          ; 75 3d
     5262    jne short 03b86h                          ; 75 3d
    52505263    cmp bh, 009h                              ; 80 ff 09
    5251     jne short 03b7ch                          ; 75 4e
     5264    jne short 03b9ch                          ; 75 4e
    52525265    or bl, 090h                               ; 80 cb 90
    5253     jmp short 03b7ch                          ; eb 49
     5266    jmp short 03b9ch                          ; eb 49
    52545267    cmp byte [bp-004h], 027h                  ; 80 7e fc 27
    5255     jne short 03b43h                          ; 75 0a
     5268    jne short 03b63h                          ; 75 0a
    52565269    cmp bh, 009h                              ; 80 ff 09
    5257     jne short 03b43h                          ; 75 05
     5270    jne short 03b63h                          ; 75 05
    52585271    or bl, 070h                               ; 80 cb 70
    5259     jmp short 03b7ch                          ; eb 39
     5272    jmp short 03b9ch                          ; eb 39
    52605273    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
    5261     jne short 03b9ah                          ; 75 51
     5274    jne short 03bbah                          ; 75 51
    52625275    cmp bh, 00fh                              ; 80 ff 0f
    5263     jne short 03b9ah                          ; 75 4c
     5276    jne short 03bbah                          ; 75 4c
    52645277    or bl, 010h                               ; 80 cb 10
    5265     jmp short 03b9ah                          ; eb 47
    5266     jmp short 03b7eh                          ; eb 29
     5278    jmp short 03bbah                          ; eb 47
     5279    jmp short 03b9eh                          ; eb 29
    52675280    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
    5268     jne short 03b9ah                          ; 75 3f
     5281    jne short 03bbah                          ; 75 3f
    52695282    cmp bh, 009h                              ; 80 ff 09
    5270     je short 03b64h                           ; 74 04
    5271     jmp short 03b9ah                          ; eb 38
    5272     jmp short 03b68h                          ; eb 04
     5283    je short 03b84h                           ; 74 04
     5284    jmp short 03bbah                          ; eb 38
     5285    jmp short 03b88h                          ; eb 04
    52735286    mov bl, al                                ; 88 c3
    5274     jmp short 03b9ah                          ; eb 32
     5287    jmp short 03bbah                          ; eb 32
    52755288    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
    5276     jne short 03b9ah                          ; 75 2c
     5289    jne short 03bbah                          ; 75 2c
    52775290    cmp bh, 009h                              ; 80 ff 09
    5278     jne short 03b75h                          ; 75 02
    5279     jmp short 03b64h                          ; eb ef
     5291    jne short 03b95h                          ; 75 02
     5292    jmp short 03b84h                          ; eb ef
    52805293    cmp bh, 012h                              ; 80 ff 12
    5281     jne short 03b9ah                          ; 75 20
     5294    jne short 03bbah                          ; 75 20
    52825295    mov bl, ah                                ; 88 e3
    5283     jmp short 03b9ah                          ; eb 1c
     5296    jmp short 03bbah                          ; eb 1c
    52845297    cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
    5285     jne short 03b9ah                          ; 75 16
     5298    jne short 03bbah                          ; 75 16
    52865299    cmp bh, 009h                              ; 80 ff 09
    5287     jne short 03b8bh                          ; 75 02
    5288     jmp short 03b64h                          ; eb d9
     5300    jne short 03babh                          ; 75 02
     5301    jmp short 03b84h                          ; eb d9
    52895302    cmp bh, 012h                              ; 80 ff 12
    5290     jne short 03b92h                          ; 75 02
    5291     jmp short 03b7ah                          ; eb e8
     5303    jne short 03bb2h                          ; 75 02
     5304    jmp short 03b9ah                          ; eb e8
    52925305    cmp bh, 024h                              ; 80 ff 24
    5293     jne short 03b9ah                          ; 75 03
     5306    jne short 03bbah                          ; 75 03
    52945307    or bl, 0d0h                               ; 80 cb d0
    52955308    mov al, bl                                ; 88 d8
     
    52985311    sar ax, CL                                ; d3 f8
    52995312    test AL, strict byte 001h                 ; a8 01
    5300     jne short 03ba9h                          ; 75 03
    5301     jmp near 03aaah                           ; e9 01 ff
     5313    jne short 03bc9h                          ; 75 03
     5314    jmp near 03acah                           ; e9 01 ff
    53025315    mov ax, strict word 00040h                ; b8 40 00
    53035316    mov es, ax                                ; 8e c0
     
    53075320    mov al, dl                                ; 88 d0
    53085321    xor ah, ah                                ; 30 e4
    5309     call 03bfch                               ; e8 3c 00
     5322    call 03c1ch                               ; e8 3c 00
    53105323    mov word [bp+008h], ax                    ; 89 46 08
    53115324    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    53145327    mov es, ax                                ; 8e c0
    53155328    mov byte [es:bx], 000h                    ; 26 c6 07 00
    5316     jmp near 03533h                           ; e9 5d f9
    5317     mov bx, 00da4h                            ; bb a4 0d
     5329    jmp near 03553h                           ; e9 5d f9
     5330    mov bx, 00da0h                            ; bb a0 0d
    53185331    mov cx, ds                                ; 8c d9
    53195332    mov ax, strict word 00004h                ; b8 04 00
    5320     call 01933h                               ; e8 52 dd
     5333    call 01933h                               ; e8 32 dd
    53215334    mov al, byte [bp+017h]                    ; 8a 46 17
    53225335    xor ah, ah                                ; 30 e4
     
    53285341    mov ax, strict word 00004h                ; b8 04 00
    53295342    push ax                                   ; 50
    5330     call 01976h                               ; e8 80 dd
     5343    call 01976h                               ; e8 60 dd
    53315344    add sp, strict byte 00008h                ; 83 c4 08
    5332     jmp near 03245h                           ; e9 49 f6
    5333 get_floppy_dpt_:                             ; 0xf3bfc LB 0x32
     5345    jmp near 03265h                           ; e9 49 f6
     5346get_floppy_dpt_:                             ; 0xf3c1c LB 0x32
    53345347    push bx                                   ; 53
    53355348    push dx                                   ; 52
     
    53385351    mov dl, al                                ; 88 c2
    53395352    xor ax, ax                                ; 31 c0
    5340     jmp short 03c0dh                          ; eb 06
     5353    jmp short 03c2dh                          ; eb 06
    53415354    inc ax                                    ; 40
    53425355    cmp ax, strict word 00007h                ; 3d 07 00
    5343     jnc short 03c27h                          ; 73 1a
     5356    jnc short 03c47h                          ; 73 1a
    53445357    mov bx, ax                                ; 89 c3
    53455358    sal bx, 1                                 ; d1 e3
    53465359    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5347     jne short 03c07h                          ; 75 f0
     5360    jne short 03c27h                          ; 75 f0
    53485361    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    53495362    xor ah, ah                                ; 30 e4
     
    53515364    imul bx                                   ; f7 eb
    53525365    add ax, strict word 00000h                ; 05 00 00
    5353     jmp short 03c2ah                          ; eb 03
     5366    jmp short 03c4ah                          ; eb 03
    53545367    mov ax, strict word 00041h                ; b8 41 00
    53555368    pop bp                                    ; 5d
     
    53575370    pop bx                                    ; 5b
    53585371    retn                                      ; c3
    5359 dummy_soft_reset_:                           ; 0xf3c2e LB 0x7
     5372dummy_soft_reset_:                           ; 0xf3c4e LB 0x7
    53605373    push bp                                   ; 55
    53615374    mov bp, sp                                ; 89 e5
     
    53635376    pop bp                                    ; 5d
    53645377    retn                                      ; c3
    5365 _cdemu_init:                                 ; 0xf3c35 LB 0x18
     5378_cdemu_init:                                 ; 0xf3c55 LB 0x18
    53665379    push bp                                   ; 55
    53675380    mov bp, sp                                ; 89 e5
    53685381    mov dx, strict word 0000eh                ; ba 0e 00
    53695382    mov ax, strict word 00040h                ; b8 40 00
    5370     call 0166eh                               ; e8 2d da
     5383    call 0166eh                               ; e8 0d da
    53715384    xor bx, bx                                ; 31 db
    53725385    mov dx, 00366h                            ; ba 66 03
    5373     call 01660h                               ; e8 17 da
     5386    call 01660h                               ; e8 f7 d9
    53745387    mov sp, bp                                ; 89 ec
    53755388    pop bp                                    ; 5d
    53765389    retn                                      ; c3
    5377 _cdemu_isactive:                             ; 0xf3c4d LB 0x16
     5390_cdemu_isactive:                             ; 0xf3c6d LB 0x16
    53785391    push bp                                   ; 55
    53795392    mov bp, sp                                ; 89 e5
    53805393    mov dx, strict word 0000eh                ; ba 0e 00
    53815394    mov ax, strict word 00040h                ; b8 40 00
    5382     call 0166eh                               ; e8 15 da
     5395    call 0166eh                               ; e8 f5 d9
    53835396    mov dx, 00366h                            ; ba 66 03
    5384     call 01652h                               ; e8 f3 d9
     5397    call 01652h                               ; e8 d3 d9
    53855398    mov sp, bp                                ; 89 ec
    53865399    pop bp                                    ; 5d
    53875400    retn                                      ; c3
    5388 _cdemu_emulated_drive:                       ; 0xf3c63 LB 0x16
     5401_cdemu_emulated_drive:                       ; 0xf3c83 LB 0x16
    53895402    push bp                                   ; 55
    53905403    mov bp, sp                                ; 89 e5
    53915404    mov dx, strict word 0000eh                ; ba 0e 00
    53925405    mov ax, strict word 00040h                ; b8 40 00
    5393     call 0166eh                               ; e8 ff d9
     5406    call 0166eh                               ; e8 df d9
    53945407    mov dx, 00368h                            ; ba 68 03
    5395     call 01652h                               ; e8 dd d9
     5408    call 01652h                               ; e8 bd d9
    53965409    mov sp, bp                                ; 89 ec
    53975410    pop bp                                    ; 5d
    53985411    retn                                      ; c3
    5399 _int13_eltorito:                             ; 0xf3c79 LB 0x191
     5412_int13_eltorito:                             ; 0xf3c99 LB 0x191
    54005413    push bp                                   ; 55
    54015414    mov bp, sp                                ; 89 e5
     
    54045417    mov dx, strict word 0000eh                ; ba 0e 00
    54055418    mov ax, strict word 00040h                ; b8 40 00
    5406     call 0166eh                               ; e8 e7 d9
     5419    call 0166eh                               ; e8 c7 d9
    54075420    mov si, 00366h                            ; be 66 03
    54085421    mov di, ax                                ; 89 c7
     
    54105423    xor ah, ah                                ; 30 e4
    54115424    cmp ax, strict word 0004bh                ; 3d 4b 00
    5412     jc short 03ca0h                           ; 72 0a
    5413     jbe short 03ccbh                          ; 76 33
     5425    jc short 03cc0h                           ; 72 0a
     5426    jbe short 03cebh                          ; 76 33
    54145427    cmp ax, strict word 0004dh                ; 3d 4d 00
    5415     jbe short 03ca5h                          ; 76 08
    5416     jmp near 03dd0h                           ; e9 30 01
     5428    jbe short 03cc5h                          ; 76 08
     5429    jmp near 03df0h                           ; e9 30 01
    54175430    cmp ax, strict word 0004ah                ; 3d 4a 00
    5418     jne short 03cc8h                          ; 75 23
    5419     mov bx, 00da4h                            ; bb a4 0d
     5431    jne short 03ce8h                          ; 75 23
     5432    mov bx, 00da0h                            ; bb a0 0d
    54205433    mov cx, ds                                ; 8c d9
    54215434    mov ax, strict word 00004h                ; b8 04 00
    5422     call 01933h                               ; e8 83 dc
     5435    call 01933h                               ; e8 63 dc
    54235436    push word [bp+016h]                       ; ff 76 16
    54245437    mov ax, 002fch                            ; b8 fc 02
     
    54285441    mov ax, strict word 00004h                ; b8 04 00
    54295442    push ax                                   ; 50
    5430     call 01976h                               ; e8 b4 dc
     5443    call 01976h                               ; e8 94 dc
    54315444    add sp, strict byte 00008h                ; 83 c4 08
    5432     jmp near 03debh                           ; e9 23 01
    5433     jmp near 03dd0h                           ; e9 05 01
     5445    jmp near 03e0bh                           ; e9 23 01
     5446    jmp near 03df0h                           ; e9 05 01
    54345447    mov dx, word [bp+00ah]                    ; 8b 56 0a
    54355448    mov ax, word [bp+004h]                    ; 8b 46 04
    54365449    mov bx, strict word 00013h                ; bb 13 00
    5437     call 01660h                               ; e8 89 d9
     5450    call 01660h                               ; e8 69 d9
    54385451    mov es, di                                ; 8e c7
    54395452    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    54425455    inc dx                                    ; 42
    54435456    mov ax, word [bp+004h]                    ; 8b 46 04
    5444     call 01660h                               ; e8 77 d9
     5457    call 01660h                               ; e8 57 d9
    54455458    mov es, di                                ; 8e c7
    54465459    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    54505463    inc dx                                    ; 42
    54515464    mov ax, word [bp+004h]                    ; 8b 46 04
    5452     call 01660h                               ; e8 64 d9
     5465    call 01660h                               ; e8 44 d9
    54535466    mov es, di                                ; 8e c7
    54545467    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    54575470    add dx, strict byte 00003h                ; 83 c2 03
    54585471    mov ax, word [bp+004h]                    ; 8b 46 04
    5459     call 01660h                               ; e8 50 d9
     5472    call 01660h                               ; e8 30 d9
    54605473    mov es, di                                ; 8e c7
    54615474    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    54645477    add dx, strict byte 00004h                ; 83 c2 04
    54655478    mov ax, word [bp+004h]                    ; 8b 46 04
    5466     call 0169ch                               ; e8 76 d9
     5479    call 0169ch                               ; e8 56 d9
    54675480    mov es, di                                ; 8e c7
    54685481    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    54705483    add dx, strict byte 00008h                ; 83 c2 08
    54715484    mov ax, word [bp+004h]                    ; 8b 46 04
    5472     call 0167ch                               ; e8 44 d9
     5485    call 0167ch                               ; e8 24 d9
    54735486    mov es, di                                ; 8e c7
    54745487    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    54765489    add dx, strict byte 0000ah                ; 83 c2 0a
    54775490    mov ax, word [bp+004h]                    ; 8b 46 04
    5478     call 0167ch                               ; e8 32 d9
     5491    call 0167ch                               ; e8 12 d9
    54795492    mov es, di                                ; 8e c7
    54805493    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    54825495    add dx, strict byte 0000ch                ; 83 c2 0c
    54835496    mov ax, word [bp+004h]                    ; 8b 46 04
    5484     call 0167ch                               ; e8 20 d9
     5497    call 0167ch                               ; e8 00 d9
    54855498    mov es, di                                ; 8e c7
    54865499    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    54885501    add dx, strict byte 0000eh                ; 83 c2 0e
    54895502    mov ax, word [bp+004h]                    ; 8b 46 04
    5490     call 0167ch                               ; e8 0e d9
     5503    call 0167ch                               ; e8 ee d8
    54915504    mov es, di                                ; 8e c7
    54925505    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    54955508    add dx, strict byte 00010h                ; 83 c2 10
    54965509    mov ax, word [bp+004h]                    ; 8b 46 04
    5497     call 01660h                               ; e8 de d8
     5510    call 01660h                               ; e8 be d8
    54985511    mov es, di                                ; 8e c7
    54995512    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    55025515    add dx, strict byte 00011h                ; 83 c2 11
    55035516    mov ax, word [bp+004h]                    ; 8b 46 04
    5504     call 01660h                               ; e8 ca d8
     5517    call 01660h                               ; e8 aa d8
    55055518    mov es, di                                ; 8e c7
    55065519    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    55095522    add dx, strict byte 00012h                ; 83 c2 12
    55105523    mov ax, word [bp+004h]                    ; 8b 46 04
    5511     call 01660h                               ; e8 b6 d8
     5524    call 01660h                               ; e8 96 d8
    55125525    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5513     jne short 03db6h                          ; 75 06
     5526    jne short 03dd6h                          ; 75 06
    55145527    mov es, di                                ; 8e c7
    55155528    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    55185531    mov dx, strict word 00074h                ; ba 74 00
    55195532    mov ax, strict word 00040h                ; b8 40 00
    5520     call 01660h                               ; e8 9b d8
     5533    call 01660h                               ; e8 7b d8
    55215534    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    55225535    lea sp, [bp-004h]                         ; 8d 66 fc
     
    55255538    pop bp                                    ; 5d
    55265539    retn                                      ; c3
    5527     mov bx, 00da4h                            ; bb a4 0d
     5540    mov bx, 00da0h                            ; bb a0 0d
    55285541    mov cx, ds                                ; 8c d9
    55295542    mov ax, strict word 00004h                ; b8 04 00
    5530     call 01933h                               ; e8 58 db
     5543    call 01933h                               ; e8 38 db
    55315544    mov al, byte [bp+017h]                    ; 8a 46 17
    55325545    xor ah, ah                                ; 30 e4
     
    55355548    push ax                                   ; 50
    55365549    mov ax, 00333h                            ; b8 33 03
    5537     jmp near 03cbah                           ; e9 cf fe
     5550    jmp near 03cdah                           ; e9 cf fe
    55385551    mov ax, word [bp+016h]                    ; 8b 46 16
    55395552    xor ah, ah                                ; 30 e4
     
    55445557    mov dx, strict word 00074h                ; ba 74 00
    55455558    mov ax, strict word 00040h                ; b8 40 00
    5546     call 01660h                               ; e8 5c d8
     5559    call 01660h                               ; e8 3c d8
    55475560    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5548     jmp short 03dc9h                          ; eb bf
    5549 device_is_cdrom_:                            ; 0xf3e0a LB 0x3f
     5561    jmp short 03de9h                          ; eb bf
     5562device_is_cdrom_:                            ; 0xf3e2a LB 0x3f
    55505563    push bp                                   ; 55
    55515564    mov bp, sp                                ; 89 e5
     
    55565569    mov dx, strict word 0000eh                ; ba 0e 00
    55575570    mov ax, strict word 00040h                ; b8 40 00
    5558     call 0166eh                               ; e8 53 d8
     5571    call 0166eh                               ; e8 33 d8
    55595572    mov cx, ax                                ; 89 c1
    55605573    cmp bl, 010h                              ; 80 fb 10
    5561     jc short 03e26h                           ; 72 04
     5574    jc short 03e46h                           ; 72 04
    55625575    xor ax, ax                                ; 31 c0
    5563     jmp short 03e41h                          ; eb 1b
     5576    jmp short 03e61h                          ; eb 1b
    55645577    mov al, bl                                ; 88 d8
    55655578    xor ah, ah                                ; 30 e4
     
    55705583    add bx, 00122h                            ; 81 c3 22 01
    55715584    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5572     jne short 03e22h                          ; 75 e4
     5585    jne short 03e42h                          ; 75 e4
    55735586    mov ax, strict word 00001h                ; b8 01 00
    55745587    lea sp, [bp-006h]                         ; 8d 66 fa
     
    55785591    pop bp                                    ; 5d
    55795592    retn                                      ; c3
    5580 cdrom_boot_:                                 ; 0xf3e49 LB 0x43e
     5593cdrom_boot_:                                 ; 0xf3e69 LB 0x43e
    55815594    push bp                                   ; 55
    55825595    mov bp, sp                                ; 89 e5
     
    55895602    mov dx, strict word 0000eh                ; ba 0e 00
    55905603    mov ax, strict word 00040h                ; b8 40 00
    5591     call 0166eh                               ; e8 10 d8
     5604    call 0166eh                               ; e8 f0 d7
    55925605    mov word [bp-018h], ax                    ; 89 46 e8
    55935606    mov si, 00366h                            ; be 66 03
     
    55965609    mov word [bp-010h], ax                    ; 89 46 f0
    55975610    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5598     jmp short 03e7eh                          ; eb 09
     5611    jmp short 03e9eh                          ; eb 09
    55995612    inc byte [bp-00eh]                        ; fe 46 f2
    56005613    cmp byte [bp-00eh], 010h                  ; 80 7e f2 10
    5601     jnc short 03e8ah                          ; 73 0c
     5614    jnc short 03eaah                          ; 73 0c
    56025615    mov al, byte [bp-00eh]                    ; 8a 46 f2
    56035616    xor ah, ah                                ; 30 e4
    5604     call 03e0ah                               ; e8 84 ff
     5617    call 03e2ah                               ; e8 84 ff
    56055618    test ax, ax                               ; 85 c0
    5606     je short 03e75h                           ; 74 eb
     5619    je short 03e95h                           ; 74 eb
    56075620    cmp byte [bp-00eh], 010h                  ; 80 7e f2 10
    5608     jc short 03e96h                           ; 72 06
     5621    jc short 03eb6h                           ; 72 06
    56095622    mov ax, strict word 00002h                ; b8 02 00
    5610     jmp near 04224h                           ; e9 8e 03
     5623    jmp near 04244h                           ; e9 8e 03
    56115624    mov cx, strict word 0000ch                ; b9 0c 00
    56125625    xor bx, bx                                ; 31 db
    56135626    mov dx, ss                                ; 8c d2
    56145627    lea ax, [bp-026h]                         ; 8d 46 da
    5615     call 0a1a0h                               ; e8 fd 62
     5628    call 0a1c0h                               ; e8 fd 62
    56165629    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    56175630    mov ax, strict word 00011h                ; b8 11 00
     
    56295642    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    56305643    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5631     jmp short 03edeh                          ; eb 09
     5644    jmp short 03efeh                          ; eb 09
    56325645    inc byte [bp-00ch]                        ; fe 46 f4
    56335646    cmp byte [bp-00ch], 004h                  ; 80 7e f4 04
    5634     jnbe short 03f20h                         ; 77 42
     5647    jnbe short 03f40h                         ; 77 42
    56355648    mov al, byte [bp-00eh]                    ; 8a 46 f2
    56365649    xor ah, ah                                ; 30 e4
     
    56615674    call word [word di+0006ah]                ; ff 95 6a 00
    56625675    test ax, ax                               ; 85 c0
    5663     jne short 03ed5h                          ; 75 b5
     5676    jne short 03ef5h                          ; 75 b5
    56645677    test ax, ax                               ; 85 c0
    5665     je short 03f2ah                           ; 74 06
     5678    je short 03f4ah                           ; 74 06
    56665679    mov ax, strict word 00003h                ; b8 03 00
    5667     jmp near 04224h                           ; e9 fa 02
     5680    jmp near 04244h                           ; e9 fa 02
    56685681    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5669     je short 03f37h                           ; 74 06
     5682    je short 03f57h                           ; 74 06
    56705683    mov ax, strict word 00004h                ; b8 04 00
    5671     jmp near 04224h                           ; e9 ed 02
     5684    jmp near 04244h                           ; e9 ed 02
    56725685    xor di, di                                ; 31 ff
    5673     jmp short 03f41h                          ; eb 06
     5686    jmp short 03f61h                          ; eb 06
    56745687    inc di                                    ; 47
    56755688    cmp di, strict byte 00005h                ; 83 ff 05
    5676     jnc short 03f51h                          ; 73 10
     5689    jnc short 03f71h                          ; 73 10
    56775690    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5678     cmp al, byte [di+00dach]                  ; 3a 85 ac 0d
    5679     je short 03f3bh                           ; 74 f0
     5691    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
     5692    je short 03f5bh                           ; 74 f0
    56805693    mov ax, strict word 00005h                ; b8 05 00
    5681     jmp near 04224h                           ; e9 d3 02
     5694    jmp near 04244h                           ; e9 d3 02
    56825695    xor di, di                                ; 31 ff
    5683     jmp short 03f5bh                          ; eb 06
     5696    jmp short 03f7bh                          ; eb 06
    56845697    inc di                                    ; 47
    56855698    cmp di, strict byte 00017h                ; 83 ff 17
    5686     jnc short 03f6bh                          ; 73 10
     5699    jnc short 03f8bh                          ; 73 10
    56875700    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5688     cmp al, byte [di+00db2h]                  ; 3a 85 b2 0d
    5689     je short 03f55h                           ; 74 f0
     5701    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
     5702    je short 03f75h                           ; 74 f0
    56905703    mov ax, strict word 00006h                ; b8 06 00
    5691     jmp near 04224h                           ; e9 b9 02
     5704    jmp near 04244h                           ; e9 b9 02
    56925705    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    56935706    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    57295742    call word [word di+0006ah]                ; ff 95 6a 00
    57305743    test ax, ax                               ; 85 c0
    5731     je short 03fd3h                           ; 74 06
     5744    je short 03ff3h                           ; 74 06
    57325745    mov ax, strict word 00007h                ; b8 07 00
    5733     jmp near 04224h                           ; e9 51 02
     5746    jmp near 04244h                           ; e9 51 02
    57345747    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5735     je short 03fe0h                           ; 74 06
     5748    je short 04000h                           ; 74 06
    57365749    mov ax, strict word 00008h                ; b8 08 00
    5737     jmp near 04224h                           ; e9 44 02
     5750    jmp near 04244h                           ; e9 44 02
    57385751    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5739     je short 03fedh                           ; 74 06
     5752    je short 0400dh                           ; 74 06
    57405753    mov ax, strict word 00009h                ; b8 09 00
    5741     jmp near 04224h                           ; e9 37 02
     5754    jmp near 04244h                           ; e9 37 02
    57425755    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5743     je short 03ffah                           ; 74 06
     5756    je short 0401ah                           ; 74 06
    57445757    mov ax, strict word 0000ah                ; b8 0a 00
    5745     jmp near 04224h                           ; e9 2a 02
     5758    jmp near 04244h                           ; e9 2a 02
    57465759    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5747     jne short 03ff4h                          ; 75 f3
     5760    jne short 04014h                          ; 75 f3
    57485761    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5749     je short 0400eh                           ; 74 06
     5762    je short 0402eh                           ; 74 06
    57505763    mov ax, strict word 0000bh                ; b8 0b 00
    5751     jmp near 04224h                           ; e9 16 02
     5764    jmp near 04244h                           ; e9 16 02
    57525765    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    57535766    mov es, [bp-016h]                         ; 8e 46 ea
    57545767    mov byte [es:si+001h], al                 ; 26 88 44 01
    57555768    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5756     jne short 04027h                          ; 75 07
     5769    jne short 04047h                          ; 75 07
    57575770    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5758     jmp short 0403ah                          ; eb 13
     5771    jmp short 0405ah                          ; eb 13
    57595772    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5760     jnc short 04035h                          ; 73 07
     5773    jnc short 04055h                          ; 73 07
    57615774    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5762     jmp short 0403ah                          ; eb 05
     5775    jmp short 0405ah                          ; eb 05
    57635776    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    57645777    mov bl, byte [bp-00eh]                    ; 8a 5e f2
     
    57795792    mov word [bp-014h], ax                    ; 89 46 ec
    57805793    test ax, ax                               ; 85 c0
    5781     jne short 04069h                          ; 75 05
     5794    jne short 04089h                          ; 75 05
    57825795    mov word [bp-014h], 007c0h                ; c7 46 ec c0 07
    57835796    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    57885801    mov word [es:si+00eh], bx                 ; 26 89 5c 0e
    57895802    test bx, bx                               ; 85 db
    5790     je short 0408bh                           ; 74 06
     5803    je short 040abh                           ; 74 06
    57915804    cmp bx, 00400h                            ; 81 fb 00 04
    5792     jbe short 04091h                          ; 76 06
     5805    jbe short 040b1h                          ; 76 06
    57935806    mov ax, strict word 0000ch                ; b8 0c 00
    5794     jmp near 04224h                           ; e9 93 01
     5807    jmp near 04244h                           ; e9 93 01
    57955808    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    57965809    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    58405853    sal ax, 1                                 ; d1 e0
    58415854    rcl di, 1                                 ; d1 d7
    5842     loop 04109h                               ; e2 fa
     5855    loop 04129h                               ; e2 fa
    58435856    push di                                   ; 57
    58445857    push ax                                   ; 50
     
    58555868    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    58565869    test ax, ax                               ; 85 c0
    5857     je short 0413bh                           ; 74 06
     5870    je short 0415bh                           ; 74 06
    58585871    mov ax, strict word 0000dh                ; b8 0d 00
    5859     jmp near 04224h                           ; e9 e9 00
     5872    jmp near 04244h                           ; e9 e9 00
    58605873    mov es, [bp-016h]                         ; 8e 46 ea
    58615874    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    58625875    cmp AL, strict byte 002h                  ; 3c 02
    5863     jc short 04153h                           ; 72 0d
    5864     jbe short 0416eh                          ; 76 26
     5876    jc short 04173h                           ; 72 0d
     5877    jbe short 0418eh                          ; 76 26
    58655878    cmp AL, strict byte 004h                  ; 3c 04
    5866     je short 0417eh                           ; 74 32
     5879    je short 0419eh                           ; 74 32
    58675880    cmp AL, strict byte 003h                  ; 3c 03
    5868     je short 04176h                           ; 74 26
    5869     jmp near 041cch                           ; e9 79 00
     5881    je short 04196h                           ; 74 26
     5882    jmp near 041ech                           ; e9 79 00
    58705883    cmp AL, strict byte 001h                  ; 3c 01
    5871     jne short 041cch                          ; 75 75
     5884    jne short 041ech                          ; 75 75
    58725885    mov es, [bp-016h]                         ; 8e 46 ea
    58735886    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    58745887    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    58755888    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5876     jmp short 041cch                          ; eb 5e
     5889    jmp short 041ech                          ; eb 5e
    58775890    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5878     jmp short 04160h                          ; eb ea
     5891    jmp short 04180h                          ; eb ea
    58795892    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5880     jmp short 04160h                          ; eb e2
     5893    jmp short 04180h                          ; eb e2
    58815894    mov dx, 001c4h                            ; ba c4 01
    58825895    mov ax, word [bp-014h]                    ; 8b 46 ec
    5883     call 01652h                               ; e8 cb d4
     5896    call 01652h                               ; e8 ab d4
    58845897    and AL, strict byte 03fh                  ; 24 3f
    58855898    xor ah, ah                                ; 30 e4
     
    58885901    mov dx, 001c4h                            ; ba c4 01
    58895902    mov ax, word [bp-014h]                    ; 8b 46 ec
    5890     call 01652h                               ; e8 b7 d4
     5903    call 01652h                               ; e8 97 d4
    58915904    and ax, 000c0h                            ; 25 c0 00
    58925905    mov bx, ax                                ; 89 c3
     
    58955908    mov dx, 001c5h                            ; ba c5 01
    58965909    mov ax, word [bp-014h]                    ; 8b 46 ec
    5897     call 01652h                               ; e8 a5 d4
     5910    call 01652h                               ; e8 85 d4
    58985911    xor ah, ah                                ; 30 e4
    58995912    add ax, bx                                ; 01 d8
     
    59035916    mov dx, 001c3h                            ; ba c3 01
    59045917    mov ax, word [bp-014h]                    ; 8b 46 ec
    5905     call 01652h                               ; e8 90 d4
     5918    call 01652h                               ; e8 70 d4
    59065919    xor ah, ah                                ; 30 e4
    59075920    inc ax                                    ; 40
     
    59105923    mov es, [bp-016h]                         ; 8e 46 ea
    59115924    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5912     je short 0420dh                           ; 74 37
     5925    je short 0422dh                           ; 74 37
    59135926    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5914     jne short 041f5h                          ; 75 18
     5927    jne short 04215h                          ; 75 18
    59155928    mov dx, strict word 00010h                ; ba 10 00
    59165929    mov ax, strict word 00040h                ; b8 40 00
    5917     call 01652h                               ; e8 6c d4
     5930    call 01652h                               ; e8 4c d4
    59185931    mov bl, al                                ; 88 c3
    59195932    or bl, 041h                               ; 80 cb 41
     
    59215934    mov dx, strict word 00010h                ; ba 10 00
    59225935    mov ax, strict word 00040h                ; b8 40 00
    5923     jmp short 0420ah                          ; eb 15
     5936    jmp short 0422ah                          ; eb 15
    59245937    mov dx, 00304h                            ; ba 04 03
    59255938    mov ax, word [bp-018h]                    ; 8b 46 e8
    5926     call 01652h                               ; e8 54 d4
     5939    call 01652h                               ; e8 34 d4
    59275940    mov bl, al                                ; 88 c3
    59285941    db  0feh, 0c3h
     
    59315944    mov dx, 00304h                            ; ba 04 03
    59325945    mov ax, word [bp-018h]                    ; 8b 46 e8
    5933     call 01660h                               ; e8 53 d4
     5946    call 01660h                               ; e8 33 d4
    59345947    mov es, [bp-016h]                         ; 8e 46 ea
    59355948    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5936     je short 0421bh                           ; 74 04
     5949    je short 0423bh                           ; 74 04
    59375950    mov byte [es:si], 001h                    ; 26 c6 04 01
    59385951    mov es, [bp-016h]                         ; 8e 46 ea
     
    59485961    retn                                      ; c3
    59495962    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5950     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 03eh, 046h, 02eh
    5951     db  043h, 063h, 043h, 088h, 043h, 058h, 043h, 088h, 043h, 058h, 043h, 087h, 045h, 06dh, 045h, 03eh
    5952     db  046h, 03eh, 046h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 035h, 046h, 06dh
    5953     db  045h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh
    5954     db  046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h
    5955 _int13_cdemu:                                ; 0xf4287 LB 0x453
     5963    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 05eh, 046h, 04eh
     5964    db  043h, 083h, 043h, 0a8h, 043h, 078h, 043h, 0a8h, 043h, 078h, 043h, 0a7h, 045h, 08dh, 045h, 05eh
     5965    db  046h, 05eh, 046h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 055h, 046h, 08dh
     5966    db  045h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh
     5967    db  046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h
     5968_int13_cdemu:                                ; 0xf42a7 LB 0x453
    59565969    push bp                                   ; 55
    59575970    mov bp, sp                                ; 89 e5
     
    59615974    mov dx, strict word 0000eh                ; ba 0e 00
    59625975    mov ax, strict word 00040h                ; b8 40 00
    5963     call 0166eh                               ; e8 d6 d3
     5976    call 0166eh                               ; e8 b6 d3
    59645977    mov di, 00366h                            ; bf 66 03
    59655978    mov cx, ax                                ; 89 c1
     
    59775990    mov dx, strict word 00074h                ; ba 74 00
    59785991    mov ax, strict word 00040h                ; b8 40 00
    5979     call 01660h                               ; e8 99 d3
     5992    call 01660h                               ; e8 79 d3
    59805993    mov es, cx                                ; 8e c1
    59815994    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5982     je short 042deh                           ; 74 0f
     5995    je short 042feh                           ; 74 0f
    59835996    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    59845997    xor ah, ah                                ; 30 e4
     
    59865999    xor dh, dh                                ; 30 f6
    59876000    cmp ax, dx                                ; 39 d0
    5988     je short 04308h                           ; 74 2a
    5989     mov bx, 00da4h                            ; bb a4 0d
     6001    je short 04328h                           ; 74 2a
     6002    mov bx, 00da0h                            ; bb a0 0d
    59906003    mov cx, ds                                ; 8c d9
    59916004    mov ax, strict word 00004h                ; b8 04 00
    5992     call 01933h                               ; e8 4a d6
     6005    call 01933h                               ; e8 2a d6
    59936006    mov ax, word [bp+012h]                    ; 8b 46 12
    59946007    xor ah, ah                                ; 30 e4
     
    60026015    mov ax, strict word 00004h                ; b8 04 00
    60036016    push ax                                   ; 50
    6004     call 01976h                               ; e8 74 d6
     6017    call 01976h                               ; e8 54 d6
    60056018    add sp, strict byte 0000ah                ; 83 c4 0a
    6006     jmp near 04661h                           ; e9 59 03
     6019    jmp near 04681h                           ; e9 59 03
    60076020    mov al, byte [bp+017h]                    ; 8a 46 17
    60086021    xor ah, ah                                ; 30 e4
    60096022    mov dx, ax                                ; 89 c2
    60106023    cmp ax, strict word 00050h                ; 3d 50 00
    6011     jnbe short 04385h                         ; 77 71
     6024    jnbe short 043a5h                         ; 77 71
    60126025    push CS                                   ; 0e
    60136026    pop ES                                    ; 07
    60146027    mov cx, strict word 0001eh                ; b9 1e 00
    6015     mov di, 0422eh                            ; bf 2e 42
     6028    mov di, 0424eh                            ; bf 4e 42
    60166029    repne scasb                               ; f2 ae
    60176030    sal cx, 1                                 ; d1 e1
    60186031    mov di, cx                                ; 89 cf
    6019     mov ax, word [cs:di+0424bh]               ; 2e 8b 85 4b 42
     6032    mov ax, word [cs:di+0426bh]               ; 2e 8b 85 6b 42
    60206033    mov bx, word [bp+016h]                    ; 8b 5e 16
    60216034    xor bh, bh                                ; 30 ff
     
    60316044    sal bx, 1                                 ; d1 e3
    60326045    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    6033     je short 04355h                           ; 74 09
     6046    je short 04375h                           ; 74 09
    60346047    mov al, byte [bp-006h]                    ; 8a 46 fa
    60356048    xor ah, ah                                ; 30 e4
    60366049    call word [word bx+00076h]                ; ff 97 76 00
    6037     jmp near 0456dh                           ; e9 15 02
     6050    jmp near 0458dh                           ; e9 15 02
    60386051    mov ax, word [bp+016h]                    ; 8b 46 16
    60396052    xor ah, ah                                ; 30 e4
    60406053    or ah, 003h                               ; 80 cc 03
    6041     jmp near 04669h                           ; e9 06 03
     6054    jmp near 04689h                           ; e9 06 03
    60426055    mov dx, strict word 00074h                ; ba 74 00
    60436056    mov ax, strict word 00040h                ; b8 40 00
    6044     call 01652h                               ; e8 e6 d2
     6057    call 01652h                               ; e8 c6 d2
    60456058    mov cl, al                                ; 88 c1
    60466059    mov bh, al                                ; 88 c7
     
    60496062    mov dx, strict word 00074h                ; ba 74 00
    60506063    mov ax, strict word 00040h                ; b8 40 00
    6051     call 01660h                               ; e8 e2 d2
     6064    call 01660h                               ; e8 c2 d2
    60526065    test cl, cl                               ; 84 c9
    6053     je short 043e7h                           ; 74 65
    6054     jmp near 0467ah                           ; e9 f5 02
    6055     jmp near 0463eh                           ; e9 b6 02
     6066    je short 04407h                           ; 74 65
     6067    jmp near 0469ah                           ; e9 f5 02
     6068    jmp near 0465eh                           ; e9 b6 02
    60566069    mov es, [bp-012h]                         ; 8e 46 ee
    60576070    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    60796092    mov word [bp-014h], cx                    ; 89 4e ec
    60806093    test cx, cx                               ; 85 c9
    6081     je short 043f4h                           ; 74 1d
     6094    je short 04414h                           ; 74 1d
    60826095    cmp di, word [bp-00ah]                    ; 3b 7e f6
    6083     jc short 043e4h                           ; 72 08
     6096    jc short 04404h                           ; 72 08
    60846097    cmp ax, dx                                ; 39 d0
    6085     jnc short 043e4h                          ; 73 04
     6098    jnc short 04404h                          ; 73 04
    60866099    cmp bx, si                                ; 39 f3
    6087     jnbe short 043eah                         ; 77 06
    6088     jmp near 04661h                           ; e9 7a 02
    6089     jmp near 04571h                           ; e9 87 01
     6100    jnbe short 0440ah                         ; 77 06
     6101    jmp near 04681h                           ; e9 7a 02
     6102    jmp near 04591h                           ; e9 87 01
    60906103    mov dl, byte [bp+017h]                    ; 8a 56 17
    60916104    xor dh, dh                                ; 30 f6
    60926105    cmp dx, strict byte 00004h                ; 83 fa 04
    6093     jne short 043f7h                          ; 75 03
    6094     jmp near 0456dh                           ; e9 76 01
     6106    jne short 04417h                          ; 75 03
     6107    jmp near 0458dh                           ; e9 76 01
    60956108    mov CL, strict byte 004h                  ; b1 04
    60966109    mov dx, word [bp+010h]                    ; 8b 56 10
     
    61056118    xor dl, dl                                ; 30 d2
    61066119    xor cx, cx                                ; 31 c9
    6107     call 0a130h                               ; e8 18 5d
     6120    call 0a150h                               ; e8 18 5d
    61086121    xor bx, bx                                ; 31 db
    61096122    add ax, si                                ; 01 f0
     
    61116124    mov bx, di                                ; 89 fb
    61126125    xor cx, cx                                ; 31 c9
    6113     call 0a130h                               ; e8 0b 5d
     6126    call 0a150h                               ; e8 0b 5d
    61146127    mov bx, ax                                ; 89 c3
    61156128    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    61466159    mov dx, ss                                ; 8c d2
    61476160    lea ax, [bp-030h]                         ; 8d 46 d0
    6148     call 0a1a0h                               ; e8 24 5d
     6161    call 0a1c0h                               ; e8 24 5d
    61496162    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61506163    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    61996212    sal si, 1                                 ; d1 e6
    62006213    rcl di, 1                                 ; d1 d7
    6201     loop 04501h                               ; e2 fa
     6214    loop 04521h                               ; e2 fa
    62026215    push di                                   ; 57
    62036216    push si                                   ; 56
     
    62156228    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    62166229    test al, al                               ; 84 c0
    6217     je short 0456dh                           ; 74 38
    6218     mov bx, 00da4h                            ; bb a4 0d
     6230    je short 0458dh                           ; 74 38
     6231    mov bx, 00da0h                            ; bb a0 0d
    62196232    mov cx, ds                                ; 8c d9
    62206233    mov ax, strict word 00004h                ; b8 04 00
    6221     call 01933h                               ; e8 f3 d3
     6234    call 01933h                               ; e8 d3 d3
    62226235    mov al, dl                                ; 88 d0
    62236236    xor ah, ah                                ; 30 e4
     
    62316244    mov ax, strict word 00004h                ; b8 04 00
    62326245    push ax                                   ; 50
    6233     call 01976h                               ; e8 1e d4
     6246    call 01976h                               ; e8 fe d3
    62346247    add sp, strict byte 0000ah                ; 83 c4 0a
    62356248    mov ax, word [bp+016h]                    ; 8b 46 16
     
    62386251    mov word [bp+016h], ax                    ; 89 46 16
    62396252    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6240     jmp near 0466ch                           ; e9 ff 00
     6253    jmp near 0468ch                           ; e9 ff 00
    62416254    mov byte [bp+017h], 000h                  ; c6 46 17 00
    62426255    xor bx, bx                                ; 31 db
    62436256    mov dx, strict word 00074h                ; ba 74 00
    62446257    mov ax, strict word 00040h                ; b8 40 00
    6245     call 01660h                               ; e8 e4 d0
     6258    call 01660h                               ; e8 c4 d0
    62466259    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    62476260    lea sp, [bp-004h]                         ; 8d 66 fc
     
    62936306    mov word [bp+010h], cx                    ; 89 4e 10
    62946307    cmp AL, strict byte 003h                  ; 3c 03
    6295     je short 04617h                           ; 74 1c
     6308    je short 04637h                           ; 74 1c
    62966309    cmp AL, strict byte 002h                  ; 3c 02
    6297     je short 0460fh                           ; 74 10
     6310    je short 0462fh                           ; 74 10
    62986311    cmp AL, strict byte 001h                  ; 3c 01
    6299     jne short 0461ch                          ; 75 19
     6312    jne short 0463ch                          ; 75 19
    63006313    mov ax, word [bp+010h]                    ; 8b 46 10
    63016314    xor al, al                                ; 30 c0
    63026315    or AL, strict byte 002h                   ; 0c 02
    63036316    mov word [bp+010h], ax                    ; 89 46 10
    6304     jmp short 0461ch                          ; eb 0d
     6317    jmp short 0463ch                          ; eb 0d
    63056318    or cl, 004h                               ; 80 c9 04
    63066319    mov word [bp+010h], cx                    ; 89 4e 10
    6307     jmp short 0461ch                          ; eb 05
     6320    jmp short 0463ch                          ; eb 05
    63086321    or cl, 005h                               ; 80 c9 05
    6309     jmp short 04612h                          ; eb f6
     6322    jmp short 04632h                          ; eb f6
    63106323    mov es, [bp-012h]                         ; 8e 46 ee
    63116324    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6312     jc short 04629h                           ; 72 03
    6313     jmp near 0456dh                           ; e9 44 ff
     6325    jc short 04649h                           ; 72 03
     6326    jmp near 0458dh                           ; e9 44 ff
    63146327    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    63156328    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6316     jmp short 04626h                          ; eb f1
     6329    jmp short 04646h                          ; eb f1
    63176330    or bh, 003h                               ; 80 cf 03
    63186331    mov word [bp+016h], bx                    ; 89 5e 16
    6319     jmp near 04571h                           ; e9 33 ff
    6320     mov bx, 00da4h                            ; bb a4 0d
     6332    jmp near 04591h                           ; e9 33 ff
     6333    mov bx, 00da0h                            ; bb a0 0d
    63216334    mov cx, ds                                ; 8c d9
    63226335    mov ax, strict word 00004h                ; b8 04 00
    6323     call 01933h                               ; e8 ea d2
     6336    call 01933h                               ; e8 ca d2
    63246337    mov al, byte [bp+017h]                    ; 8a 46 17
    63256338    xor ah, ah                                ; 30 e4
     
    63316344    mov ax, strict word 00004h                ; b8 04 00
    63326345    push ax                                   ; 50
    6333     call 01976h                               ; e8 18 d3
     6346    call 01976h                               ; e8 f8 d2
    63346347    add sp, strict byte 00008h                ; 83 c4 08
    63356348    mov ax, word [bp+016h]                    ; 8b 46 16
     
    63416354    mov dx, strict word 00074h                ; ba 74 00
    63426355    mov ax, strict word 00040h                ; b8 40 00
    6343     call 01660h                               ; e8 e6 cf
     6356    call 01660h                               ; e8 c6 cf
    63446357    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6345     jmp near 04580h                           ; e9 ff fe
     6358    jmp near 045a0h                           ; e9 ff fe
    63466359    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6347     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c3h, 047h, 008h
    6348     db  04ch, 085h, 047h, 0c3h, 047h, 07ah, 047h, 0c3h, 047h, 07ah, 047h, 0c3h, 047h, 008h, 04ch, 0c3h
    6349     db  047h, 0c3h, 047h, 008h, 04ch, 008h, 04ch, 008h, 04ch, 008h, 04ch, 008h, 04ch, 0a7h, 047h, 008h
    6350     db  04ch, 0c3h, 047h, 0b0h, 047h, 0e1h, 047h, 07ah, 047h, 0e1h, 047h, 02ah, 049h, 0cah, 049h, 0e1h
    6351     db  047h, 0f4h, 049h, 022h, 04ch, 02ah, 04ch, 0c3h, 047h
    6352 _int13_cdrom:                                ; 0xf46da LB 0x585
     6360    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e3h, 047h, 028h
     6361    db  04ch, 0a5h, 047h, 0e3h, 047h, 09ah, 047h, 0e3h, 047h, 09ah, 047h, 0e3h, 047h, 028h, 04ch, 0e3h
     6362    db  047h, 0e3h, 047h, 028h, 04ch, 028h, 04ch, 028h, 04ch, 028h, 04ch, 028h, 04ch, 0c7h, 047h, 028h
     6363    db  04ch, 0e3h, 047h, 0d0h, 047h, 001h, 048h, 09ah, 047h, 001h, 048h, 04ah, 049h, 0eah, 049h, 001h
     6364    db  048h, 014h, 04ah, 042h, 04ch, 04ah, 04ch, 0e3h, 047h
     6365_int13_cdrom:                                ; 0xf46fa LB 0x585
    63536366    push bp                                   ; 55
    63546367    mov bp, sp                                ; 89 e5
     
    63586371    mov dx, strict word 0000eh                ; ba 0e 00
    63596372    mov ax, strict word 00040h                ; b8 40 00
    6360     call 0166eh                               ; e8 83 cf
     6373    call 0166eh                               ; e8 63 cf
    63616374    mov word [bp-018h], ax                    ; 89 46 e8
    63626375    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     
    63656378    mov dx, strict word 00074h                ; ba 74 00
    63666379    mov ax, strict word 00040h                ; b8 40 00
    6367     call 01660h                               ; e8 5f cf
     6380    call 01660h                               ; e8 3f cf
    63686381    mov ax, word [bp+010h]                    ; 8b 46 10
    63696382    xor ah, ah                                ; 30 e4
    63706383    cmp ax, 000e0h                            ; 3d e0 00
    6371     jc short 04710h                           ; 72 05
     6384    jc short 04730h                           ; 72 05
    63726385    cmp ax, 000f0h                            ; 3d f0 00
    6373     jc short 0472fh                           ; 72 1f
     6386    jc short 0474fh                           ; 72 1f
    63746387    mov ax, word [bp+010h]                    ; 8b 46 10
    63756388    xor ah, ah                                ; 30 e4
     
    63836396    mov ax, strict word 00004h                ; b8 04 00
    63846397    push ax                                   ; 50
    6385     call 01976h                               ; e8 4d d2
     6398    call 01976h                               ; e8 2d d2
    63866399    add sp, strict byte 0000ah                ; 83 c4 0a
    6387     jmp near 04c40h                           ; e9 11 05
     6400    jmp near 04c60h                           ; e9 11 05
    63886401    mov ax, word [bp+010h]                    ; 8b 46 10
    63896402    xor ah, ah                                ; 30 e4
     
    63936406    mov byte [bp-008h], dl                    ; 88 56 f8
    63946407    cmp dl, 010h                              ; 80 fa 10
    6395     jc short 04754h                           ; 72 0e
     6408    jc short 04774h                           ; 72 0e
    63966409    push ax                                   ; 50
    63976410    mov al, byte [bp+019h]                    ; 8a 46 19
     
    64006413    push ax                                   ; 50
    64016414    mov ax, 00416h                            ; b8 16 04
    6402     jmp short 04721h                          ; eb cd
     6415    jmp short 04741h                          ; eb cd
    64036416    mov al, byte [bp+019h]                    ; 8a 46 19
    64046417    xor ah, ah                                ; 30 e4
    64056418    mov dx, ax                                ; 89 c2
    64066419    cmp ax, strict word 00050h                ; 3d 50 00
    6407     jnbe short 047c3h                         ; 77 63
     6420    jnbe short 047e3h                         ; 77 63
    64086421    push CS                                   ; 0e
    64096422    pop ES                                    ; 07
    64106423    mov cx, strict word 0001eh                ; b9 1e 00
    6411     mov di, 04681h                            ; bf 81 46
     6424    mov di, 046a1h                            ; bf a1 46
    64126425    repne scasb                               ; f2 ae
    64136426    sal cx, 1                                 ; d1 e1
    64146427    mov di, cx                                ; 89 cf
    6415     mov ax, word [cs:di+0469eh]               ; 2e 8b 85 9e 46
     6428    mov ax, word [cs:di+046beh]               ; 2e 8b 85 be 46
    64166429    mov bx, word [bp+018h]                    ; 8b 5e 18
    64176430    xor bh, bh                                ; 30 ff
     
    64206433    xor ah, ah                                ; 30 e4
    64216434    or ah, 003h                               ; 80 cc 03
    6422     jmp near 04c48h                           ; e9 c3 04
     6435    jmp near 04c68h                           ; e9 c3 04
    64236436    mov dx, strict word 00074h                ; ba 74 00
    64246437    mov ax, strict word 00040h                ; b8 40 00
    6425     call 01652h                               ; e8 c4 ce
     6438    call 01652h                               ; e8 a4 ce
    64266439    mov cl, al                                ; 88 c1
    64276440    mov bh, al                                ; 88 c7
     
    64306443    mov dx, strict word 00074h                ; ba 74 00
    64316444    mov ax, strict word 00040h                ; b8 40 00
    6432     call 01660h                               ; e8 c0 ce
     6445    call 01660h                               ; e8 a0 ce
    64336446    test cl, cl                               ; 84 c9
    6434     je short 047c0h                           ; 74 1c
    6435     jmp near 04c59h                           ; e9 b2 04
     6447    je short 047e0h                           ; 74 1c
     6448    jmp near 04c79h                           ; e9 b2 04
    64366449    or bh, 002h                               ; 80 cf 02
    64376450    mov word [bp+018h], bx                    ; 89 5e 18
    6438     jmp near 04c4bh                           ; e9 9b 04
     6451    jmp near 04c6bh                           ; e9 9b 04
    64396452    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    64406453    or bh, 030h                               ; 80 cf 30
    64416454    mov word [bp+018h], bx                    ; 89 5e 18
    64426455    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6443     jmp near 04c0ch                           ; e9 49 04
    6444     mov bx, 00da4h                            ; bb a4 0d
     6456    jmp near 04c2ch                           ; e9 49 04
     6457    mov bx, 00da0h                            ; bb a0 0d
    64456458    mov cx, ds                                ; 8c d9
    64466459    mov ax, strict word 00004h                ; b8 04 00
    6447     call 01933h                               ; e8 65 d1
     6460    call 01933h                               ; e8 45 d1
    64486461    mov al, byte [bp+019h]                    ; 8a 46 19
    64496462    xor ah, ah                                ; 30 e4
     
    64546467    push ax                                   ; 50
    64556468    mov ax, strict word 00004h                ; b8 04 00
    6456     jmp short 04822h                          ; eb 41
     6469    jmp short 04842h                          ; eb 41
    64576470    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    64586471    mov es, [bp+006h]                         ; 8e 46 06
     
    64696482    mov word [bp-012h], ax                    ; 89 46 ee
    64706483    or ax, word [bp-014h]                     ; 0b 46 ec
    6471     je short 0482ch                           ; 74 1b
     6484    je short 0484ch                           ; 74 1b
    64726485    mov al, byte [bp+019h]                    ; 8a 46 19
    64736486    xor ah, ah                                ; 30 e4
     
    64796492    mov ax, strict word 00007h                ; b8 07 00
    64806493    push ax                                   ; 50
    6481     call 01976h                               ; e8 50 d1
     6494    call 01976h                               ; e8 30 d1
    64826495    add sp, strict byte 00008h                ; 83 c4 08
    6483     jmp near 04c40h                           ; e9 14 04
     6496    jmp near 04c60h                           ; e9 14 04
    64846497    mov es, [bp-020h]                         ; 8e 46 e0
    64856498    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    64926505    mov ax, word [bp-010h]                    ; 8b 46 f0
    64936506    cmp ax, strict word 00044h                ; 3d 44 00
    6494     je short 04854h                           ; 74 05
     6507    je short 04874h                           ; 74 05
    64956508    cmp ax, strict word 00047h                ; 3d 47 00
    6496     jne short 04857h                          ; 75 03
    6497     jmp near 04c08h                           ; e9 b1 03
     6509    jne short 04877h                          ; 75 03
     6510    jmp near 04c28h                           ; e9 b1 03
    64986511    mov cx, strict word 0000ch                ; b9 0c 00
    64996512    xor bx, bx                                ; 31 db
    65006513    mov dx, ss                                ; 8c d2
    65016514    lea ax, [bp-02eh]                         ; 8d 46 d2
    6502     call 0a1a0h                               ; e8 3c 59
     6515    call 0a1c0h                               ; e8 3c 59
    65036516    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    65046517    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    65336546    sal bx, 1                                 ; d1 e3
    65346547    rcl si, 1                                 ; d1 d6
    6535     loop 048b6h                               ; e2 fa
     6548    loop 048d6h                               ; e2 fa
    65366549    push si                                   ; 56
    65376550    push bx                                   ; 53
     
    65526565    shr dx, 1                                 ; d1 ea
    65536566    rcr ax, 1                                 ; d1 d8
    6554     loop 048e6h                               ; e2 fa
     6567    loop 04906h                               ; e2 fa
    65556568    mov es, [bp-020h]                         ; 8e 46 e0
    65566569    mov word [es:di+002h], ax                 ; 26 89 45 02
    65576570    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
    6558     je short 04950h                           ; 74 57
    6559     mov bx, 00da4h                            ; bb a4 0d
     6571    je short 04970h                           ; 74 57
     6572    mov bx, 00da0h                            ; bb a0 0d
    65606573    mov cx, ds                                ; 8c d9
    65616574    mov ax, strict word 00004h                ; b8 04 00
    6562     call 01933h                               ; e8 2f d0
     6575    call 01933h                               ; e8 0f d0
    65636576    mov al, byte [bp-016h]                    ; 8a 46 ea
    65646577    xor ah, ah                                ; 30 e4
     
    65716584    mov ax, strict word 00004h                ; b8 04 00
    65726585    push ax                                   ; 50
    6573     call 01976h                               ; e8 5a d0
     6586    call 01976h                               ; e8 3a d0
    65746587    add sp, strict byte 0000ah                ; 83 c4 0a
    65756588    mov ax, word [bp+018h]                    ; 8b 46 18
    65766589    xor ah, ah                                ; 30 e4
    65776590    or ah, 00ch                               ; 80 cc 0c
    6578     jmp near 04c48h                           ; e9 1e 03
     6591    jmp near 04c68h                           ; e9 1e 03
    65796592    cmp bx, strict byte 00002h                ; 83 fb 02
    6580     jnbe short 0499bh                         ; 77 6c
     6593    jnbe short 049bbh                         ; 77 6c
    65816594    mov al, byte [bp-008h]                    ; 8a 46 f8
    65826595    xor ah, ah                                ; 30 e4
     
    65876600    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    65886601    cmp bx, strict byte 00002h                ; 83 fb 02
    6589     je short 049b3h                           ; 74 6c
     6602    je short 049d3h                           ; 74 6c
    65906603    cmp bx, strict byte 00001h                ; 83 fb 01
    6591     je short 0498bh                           ; 74 3f
     6604    je short 049abh                           ; 74 3f
    65926605    test bx, bx                               ; 85 db
    6593     je short 04953h                           ; 74 03
    6594     jmp near 04c08h                           ; e9 b5 02
     6606    je short 04973h                           ; 74 03
     6607    jmp near 04c28h                           ; e9 b5 02
    65956608    cmp cl, 0ffh                              ; 80 f9 ff
    6596     jne short 0496ah                          ; 75 12
     6609    jne short 0498ah                          ; 75 12
    65976610    mov ax, word [bp+018h]                    ; 8b 46 18
    65986611    xor ah, ah                                ; 30 e4
     
    66016614    xor al, al                                ; 30 c0
    66026615    or AL, strict byte 001h                   ; 0c 01
    6603     jmp near 04c48h                           ; e9 de 02
     6616    jmp near 04c68h                           ; e9 de 02
    66046617    mov al, byte [bp-008h]                    ; 8a 46 f8
    66056618    xor ah, ah                                ; 30 e4
     
    66156628    or AL, strict byte 001h                   ; 0c 01
    66166629    mov word [bp+018h], ax                    ; 89 46 18
    6617     jmp short 04950h                          ; eb c5
     6630    jmp short 04970h                          ; eb c5
    66186631    test cl, cl                               ; 84 c9
    6619     jne short 0499eh                          ; 75 0f
     6632    jne short 049beh                          ; 75 0f
    66206633    or bh, 0b0h                               ; 80 cf b0
    66216634    mov word [bp+018h], bx                    ; 89 5e 18
    66226635    mov byte [bp+018h], cl                    ; 88 4e 18
    6623     jmp near 04c4bh                           ; e9 b0 02
    6624     jmp near 04c40h                           ; e9 a2 02
     6636    jmp near 04c6bh                           ; e9 b0 02
     6637    jmp near 04c60h                           ; e9 a2 02
    66256638    mov al, byte [bp-008h]                    ; 8a 46 f8
    66266639    xor ah, ah                                ; 30 e4
     
    66336646    mov byte [es:bx+025h], cl                 ; 26 88 4f 25
    66346647    test cl, cl                               ; 84 c9
    6635     jne short 049c5h                          ; 75 0e
     6648    jne short 049e5h                          ; 75 0e
    66366649    xor ax, ax                                ; 31 c0
    66376650    mov dx, word [bp+018h]                    ; 8b 56 18
     
    66396652    or dx, ax                                 ; 09 c2
    66406653    mov word [bp+018h], dx                    ; 89 56 18
    6641     jmp short 04950h                          ; eb 8b
     6654    jmp short 04970h                          ; eb 8b
    66426655    mov ax, strict word 00001h                ; b8 01 00
    6643     jmp short 049b9h                          ; eb ef
     6656    jmp short 049d9h                          ; eb ef
    66446657    mov al, byte [bp-008h]                    ; 8a 46 f8
    66456658    xor ah, ah                                ; 30 e4
     
    66506663    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    66516664    test cl, cl                               ; 84 c9
    6652     je short 049e7h                           ; 74 06
     6665    je short 04a07h                           ; 74 06
    66536666    or bh, 0b1h                               ; 80 cf b1
    6654     jmp near 047aah                           ; e9 c3 fd
    6655     je short 04a0eh                           ; 74 25
     6667    jmp near 047cah                           ; e9 c3 fd
     6668    je short 04a2eh                           ; 74 25
    66566669    mov ax, word [bp+018h]                    ; 8b 46 18
    66576670    xor ah, ah                                ; 30 e4
    66586671    or ah, 0b1h                               ; 80 cc b1
    6659     jmp near 04c48h                           ; e9 54 02
     6672    jmp near 04c68h                           ; e9 54 02
    66606673    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    66616674    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    66666679    mov word [bp-01eh], ax                    ; 89 46 e2
    66676680    cmp ax, strict word 0001ah                ; 3d 1a 00
    6668     jnc short 04a11h                          ; 73 05
    6669     jmp short 0499bh                          ; eb 8d
    6670     jmp near 04c08h                           ; e9 f7 01
    6671     jc short 04a73h                           ; 72 60
     6681    jnc short 04a31h                          ; 73 05
     6682    jmp short 049bbh                          ; eb 8d
     6683    jmp near 04c28h                           ; e9 f7 01
     6684    jc short 04a93h                           ; 72 60
    66726685    mov al, byte [bp-008h]                    ; 8a 46 f8
    66736686    xor ah, ah                                ; 30 e4
     
    66926705    mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
    66936706    cmp word [bp-01eh], strict byte 0001eh    ; 83 7e e2 1e
    6694     jnc short 04a7ch                          ; 73 03
    6695     jmp near 04b3ch                           ; e9 c0 00
     6707    jnc short 04a9ch                          ; 73 03
     6708    jmp near 04b5ch                           ; e9 c0 00
    66966709    mov es, [bp-00ah]                         ; 8e 46 f6
    66976710    mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
     
    67386751    xor bl, bl                                ; 30 db
    67396752    xor bh, bh                                ; 30 ff
    6740     jmp short 04b1ch                          ; eb 05
     6753    jmp short 04b3ch                          ; eb 05
    67416754    cmp bh, 00fh                              ; 80 ff 0f
    6742     jnc short 04b32h                          ; 73 16
     6755    jnc short 04b52h                          ; 73 16
    67436756    mov al, bh                                ; 88 f8
    67446757    xor ah, ah                                ; 30 e4
     
    67466759    add dx, 00356h                            ; 81 c2 56 03
    67476760    mov ax, word [bp-018h]                    ; 8b 46 e8
    6748     call 01652h                               ; e8 26 cb
     6761    call 01652h                               ; e8 06 cb
    67496762    add bl, al                                ; 00 c3
    67506763    db  0feh, 0c7h
    67516764    ; inc bh                                    ; fe c7
    6752     jmp short 04b17h                          ; eb e5
     6765    jmp short 04b37h                          ; eb e5
    67536766    neg bl                                    ; f6 db
    67546767    les di, [bp-00eh]                         ; c4 7e f2
    67556768    mov byte [es:di+00243h], bl               ; 26 88 9d 43 02
    67566769    cmp word [bp-01eh], strict byte 00042h    ; 83 7e e2 42
    6757     jnc short 04b45h                          ; 73 03
    6758     jmp near 04c08h                           ; e9 c3 00
     6770    jnc short 04b65h                          ; 73 03
     6771    jmp near 04c28h                           ; e9 c3 00
    67596772    mov al, byte [bp-008h]                    ; 8a 46 f8
    67606773    xor ah, ah                                ; 30 e4
     
    67766789    mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
    67776790    test al, al                               ; 84 c0
    6778     jne short 04b8fh                          ; 75 0c
     6791    jne short 04bafh                          ; 75 0c
    67796792    mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
    67806793    mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
     
    67856798    mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
    67866799    test al, al                               ; 84 c0
    6787     jne short 04bc4h                          ; 75 16
     6800    jne short 04be4h                          ; 75 16
    67886801    mov word [es:si+030h], dx                 ; 26 89 54 30
    67896802    mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
     
    68006813    xor al, al                                ; 30 c0
    68016814    mov AH, strict byte 01eh                  ; b4 1e
    6802     jmp short 04befh                          ; eb 05
     6815    jmp short 04c0fh                          ; eb 05
    68036816    cmp ah, 040h                              ; 80 fc 40
    6804     jnc short 04bffh                          ; 73 10
     6817    jnc short 04c1fh                          ; 73 10
    68056818    mov bl, ah                                ; 88 e3
    68066819    xor bh, bh                                ; 30 ff
     
    68106823    db  0feh, 0c4h
    68116824    ; inc ah                                    ; fe c4
    6812     jmp short 04beah                          ; eb eb
     6825    jmp short 04c0ah                          ; eb eb
    68136826    neg al                                    ; f6 d8
    68146827    mov es, [bp-00ah]                         ; 8e 46 f6
     
    68186831    mov dx, strict word 00074h                ; ba 74 00
    68196832    mov ax, strict word 00040h                ; b8 40 00
    6820     call 01660h                               ; e8 49 ca
     6833    call 01660h                               ; e8 29 ca
    68216834    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    68226835    lea sp, [bp-004h]                         ; 8d 66 fc
     
    68276840    or bh, 006h                               ; 80 cf 06
    68286841    mov word [bp+018h], bx                    ; 89 5e 18
    6829     jmp short 04c59h                          ; eb 2f
     6842    jmp short 04c79h                          ; eb 2f
    68306843    cmp bx, strict byte 00006h                ; 83 fb 06
    6831     je short 04c08h                           ; 74 d9
     6844    je short 04c28h                           ; 74 d9
    68326845    cmp bx, strict byte 00001h                ; 83 fb 01
    6833     jc short 04c40h                           ; 72 0c
    6834     jbe short 04c08h                          ; 76 d2
     6846    jc short 04c60h                           ; 72 0c
     6847    jbe short 04c28h                          ; 76 d2
    68356848    cmp bx, strict byte 00003h                ; 83 fb 03
    6836     jc short 04c40h                           ; 72 05
     6849    jc short 04c60h                           ; 72 05
    68376850    cmp bx, strict byte 00004h                ; 83 fb 04
    6838     jbe short 04c08h                          ; 76 c8
     6851    jbe short 04c28h                          ; 76 c8
    68396852    mov ax, word [bp+018h]                    ; 8b 46 18
    68406853    xor ah, ah                                ; 30 e4
     
    68456858    mov dx, strict word 00074h                ; ba 74 00
    68466859    mov ax, strict word 00040h                ; b8 40 00
    6847     call 01660h                               ; e8 07 ca
     6860    call 01660h                               ; e8 e7 c9
    68486861    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6849     jmp short 04c1bh                          ; eb bc
    6850 print_boot_device_:                          ; 0xf4c5f LB 0x51
     6862    jmp short 04c3bh                          ; eb bc
     6863print_boot_device_:                          ; 0xf4c7f LB 0x51
    68516864    push bp                                   ; 55
    68526865    mov bp, sp                                ; 89 e5
    68536866    push cx                                   ; 51
    68546867    test al, al                               ; 84 c0
    6855     je short 04c6ch                           ; 74 05
     6868    je short 04c8ch                           ; 74 05
    68566869    mov dx, strict word 00002h                ; ba 02 00
    6857     jmp short 04c86h                          ; eb 1a
     6870    jmp short 04ca6h                          ; eb 1a
    68586871    test dl, dl                               ; 84 d2
    6859     je short 04c75h                           ; 74 05
     6872    je short 04c95h                           ; 74 05
    68606873    mov dx, strict word 00003h                ; ba 03 00
    6861     jmp short 04c86h                          ; eb 11
     6874    jmp short 04ca6h                          ; eb 11
    68626875    test bl, 080h                             ; f6 c3 80
    6863     jne short 04c7eh                          ; 75 04
     6876    jne short 04c9eh                          ; 75 04
    68646877    xor dh, dh                                ; 30 f6
    6865     jmp short 04c86h                          ; eb 08
     6878    jmp short 04ca6h                          ; eb 08
    68666879    test bl, 080h                             ; f6 c3 80
    6867     je short 04caah                           ; 74 27
     6880    je short 04ccah                           ; 74 27
    68686881    mov dx, strict word 00001h                ; ba 01 00
    6869     mov bx, 00da4h                            ; bb a4 0d
     6882    mov bx, 00da0h                            ; bb a0 0d
    68706883    mov cx, ds                                ; 8c d9
    68716884    mov ax, strict word 00004h                ; b8 04 00
    6872     call 01933h                               ; e8 a2 cc
     6885    call 01933h                               ; e8 82 cc
    68736886    mov ax, dx                                ; 89 d0
    68746887    mov dx, strict word 0000ah                ; ba 0a 00
    68756888    imul dx                                   ; f7 ea
    6876     add ax, 00dcah                            ; 05 ca 0d
     6889    add ax, 00dc6h                            ; 05 c6 0d
    68776890    push ax                                   ; 50
    68786891    mov ax, 00494h                            ; b8 94 04
     
    68806893    mov ax, strict word 00004h                ; b8 04 00
    68816894    push ax                                   ; 50
    6882     call 01976h                               ; e8 cf cc
     6895    call 01976h                               ; e8 af cc
    68836896    add sp, strict byte 00006h                ; 83 c4 06
    68846897    lea sp, [bp-002h]                         ; 8d 66 fe
     
    68866899    pop bp                                    ; 5d
    68876900    retn                                      ; c3
    6888 print_boot_failure_:                         ; 0xf4cb0 LB 0x9f
     6901print_boot_failure_:                         ; 0xf4cd0 LB 0x9f
    68896902    push bp                                   ; 55
    68906903    mov bp, sp                                ; 89 e5
     
    68966909    mov si, cx                                ; 89 ce
    68976910    test al, al                               ; 84 c0
    6898     je short 04ce2h                           ; 74 1f
    6899     mov bx, 00da4h                            ; bb a4 0d
     6911    je short 04d02h                           ; 74 1f
     6912    mov bx, 00da0h                            ; bb a0 0d
    69006913    mov cx, ds                                ; 8c d9
    69016914    mov ax, strict word 00004h                ; b8 04 00
    6902     call 01933h                               ; e8 65 cc
    6903     mov cx, 00ddeh                            ; b9 de 0d
     6915    call 01933h                               ; e8 45 cc
     6916    mov cx, 00ddah                            ; b9 da 0d
    69046917    push cx                                   ; 51
    69056918    mov cx, 004a8h                            ; b9 a8 04
     
    69076920    mov cx, strict word 00004h                ; b9 04 00
    69086921    push cx                                   ; 51
    6909     call 01976h                               ; e8 99 cc
     6922    call 01976h                               ; e8 79 cc
    69106923    add sp, strict byte 00006h                ; 83 c4 06
    6911     jmp short 04d2ah                          ; eb 48
     6924    jmp short 04d4ah                          ; eb 48
    69126925    test dl, dl                               ; 84 d2
    6913     je short 04cf6h                           ; 74 10
    6914     mov bx, 00da4h                            ; bb a4 0d
     6926    je short 04d16h                           ; 74 10
     6927    mov bx, 00da0h                            ; bb a0 0d
    69156928    mov cx, ds                                ; 8c d9
    69166929    mov ax, strict word 00004h                ; b8 04 00
    6917     call 01933h                               ; e8 42 cc
    6918     mov cx, 00de8h                            ; b9 e8 0d
    6919     jmp short 04cd1h                          ; eb db
     6930    call 01933h                               ; e8 22 cc
     6931    mov cx, 00de4h                            ; b9 e4 0d
     6932    jmp short 04cf1h                          ; eb db
    69206933    test bl, 080h                             ; f6 c3 80
    6921     je short 04d0ch                           ; 74 11
    6922     mov bx, 00da4h                            ; bb a4 0d
     6934    je short 04d2ch                           ; 74 11
     6935    mov bx, 00da0h                            ; bb a0 0d
    69236936    mov cx, ds                                ; 8c d9
    69246937    mov ax, strict word 00004h                ; b8 04 00
    6925     call 01933h                               ; e8 2d cc
     6938    call 01933h                               ; e8 0d cc
    69266939    push si                                   ; 56
    6927     mov cx, 00dd4h                            ; b9 d4 0d
    6928     jmp short 04d1bh                          ; eb 0f
    6929     mov bx, 00da4h                            ; bb a4 0d
     6940    mov cx, 00dd0h                            ; b9 d0 0d
     6941    jmp short 04d3bh                          ; eb 0f
     6942    mov bx, 00da0h                            ; bb a0 0d
    69306943    mov cx, ds                                ; 8c d9
    69316944    mov ax, strict word 00004h                ; b8 04 00
    6932     call 01933h                               ; e8 1c cc
     6945    call 01933h                               ; e8 fc cb
    69336946    push si                                   ; 56
    6934     mov cx, 00dcah                            ; b9 ca 0d
     6947    mov cx, 00dc6h                            ; b9 c6 0d
    69356948    push cx                                   ; 51
    69366949    mov cx, 004bdh                            ; b9 bd 04
     
    69386951    mov cx, strict word 00004h                ; b9 04 00
    69396952    push cx                                   ; 51
    6940     call 01976h                               ; e8 4f cc
     6953    call 01976h                               ; e8 2f cc
    69416954    add sp, strict byte 00008h                ; 83 c4 08
    69426955    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6943     jne short 04d47h                          ; 75 17
     6956    jne short 04d67h                          ; 75 17
    69446957    test dh, dh                               ; 84 f6
    6945     jne short 04d39h                          ; 75 05
     6958    jne short 04d59h                          ; 75 05
    69466959    mov dx, 004d5h                            ; ba d5 04
    6947     jmp short 04d3ch                          ; eb 03
     6960    jmp short 04d5ch                          ; eb 03
    69486961    mov dx, 004ffh                            ; ba ff 04
    69496962    push dx                                   ; 52
    69506963    mov dx, strict word 00007h                ; ba 07 00
    69516964    push dx                                   ; 52
    6952     call 01976h                               ; e8 32 cc
     6965    call 01976h                               ; e8 12 cc
    69536966    add sp, strict byte 00004h                ; 83 c4 04
    69546967    lea sp, [bp-002h]                         ; 8d 66 fe
     
    69566969    pop bp                                    ; 5d
    69576970    retn 00002h                               ; c2 02 00
    6958 print_cdromboot_failure_:                    ; 0xf4d4f LB 0x2a
     6971print_cdromboot_failure_:                    ; 0xf4d6f LB 0x2a
    69596972    push bp                                   ; 55
    69606973    mov bp, sp                                ; 89 e5
     
    69636976    push dx                                   ; 52
    69646977    mov dx, ax                                ; 89 c2
    6965     mov bx, 00da4h                            ; bb a4 0d
     6978    mov bx, 00da0h                            ; bb a0 0d
    69666979    mov cx, ds                                ; 8c d9
    69676980    mov ax, strict word 00004h                ; b8 04 00
    6968     call 01933h                               ; e8 d1 cb
     6981    call 01933h                               ; e8 b1 cb
    69696982    push dx                                   ; 52
    69706983    mov dx, 00534h                            ; ba 34 05
     
    69726985    mov dx, strict word 00004h                ; ba 04 00
    69736986    push dx                                   ; 52
    6974     call 01976h                               ; e8 08 cc
     6987    call 01976h                               ; e8 e8 cb
    69756988    add sp, strict byte 00006h                ; 83 c4 06
    69766989    lea sp, [bp-006h]                         ; 8d 66 fa
     
    69806993    pop bp                                    ; 5d
    69816994    retn                                      ; c3
    6982 _int19_function:                             ; 0xf4d79 LB 0x28d
     6995_int19_function:                             ; 0xf4d99 LB 0x28d
    69836996    push bp                                   ; 55
    69846997    mov bp, sp                                ; 89 e5
     
    69887001    mov dx, strict word 0000eh                ; ba 0e 00
    69897002    mov ax, strict word 00040h                ; b8 40 00
    6990     call 0166eh                               ; e8 e4 c8
     7003    call 0166eh                               ; e8 c4 c8
    69917004    mov bx, ax                                ; 89 c3
    69927005    mov di, ax                                ; 89 c7
    69937006    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    69947007    mov ax, strict word 0003dh                ; b8 3d 00
    6995     call 016aeh                               ; e8 16 c9
     7008    call 016aeh                               ; e8 f6 c8
    69967009    mov dl, al                                ; 88 c2
    69977010    xor dh, dh                                ; 30 f6
    69987011    mov word [bp-00eh], dx                    ; 89 56 f2
    69997012    mov ax, strict word 00038h                ; b8 38 00
    7000     call 016aeh                               ; e8 09 c9
     7013    call 016aeh                               ; e8 e9 c8
    70017014    and AL, strict byte 0f0h                  ; 24 f0
    70027015    mov byte [bp-010h], al                    ; 88 46 f0
     
    70087021    mov word [bp-00eh], dx                    ; 89 56 f2
    70097022    mov ax, strict word 0003ch                ; b8 3c 00
    7010     call 016aeh                               ; e8 ef c8
     7023    call 016aeh                               ; e8 cf c8
    70117024    and AL, strict byte 00fh                  ; 24 0f
    70127025    xor ah, ah                                ; 30 e4
     
    70167029    mov dx, 0037dh                            ; ba 7d 03
    70177030    mov ax, bx                                ; 89 d8
    7018     call 01652h                               ; e8 80 c8
     7031    call 01652h                               ; e8 60 c8
    70197032    test al, al                               ; 84 c0
    7020     je short 04de3h                           ; 74 0d
     7033    je short 04e03h                           ; 74 0d
    70217034    mov dx, 0037dh                            ; ba 7d 03
    70227035    mov ax, bx                                ; 89 d8
    7023     call 01652h                               ; e8 74 c8
     7036    call 01652h                               ; e8 54 c8
    70247037    xor ah, ah                                ; 30 e4
    70257038    mov word [bp-00eh], ax                    ; 89 46 f2
    70267039    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    7027     jne short 04dfah                          ; 75 11
     7040    jne short 04e1ah                          ; 75 11
    70287041    mov ax, strict word 0003ch                ; b8 3c 00
    7029     call 016aeh                               ; e8 bf c8
     7042    call 016aeh                               ; e8 9f c8
    70307043    and AL, strict byte 0f0h                  ; 24 f0
    70317044    xor ah, ah                                ; 30 e4
    70327045    mov CL, strict byte 004h                  ; b1 04
    70337046    sar ax, CL                                ; d3 f8
    7034     call 07e1dh                               ; e8 23 30
     7047    call 07e3dh                               ; e8 23 30
    70357048    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    7036     jne short 04e05h                          ; 75 05
     7049    jne short 04e25h                          ; 75 05
    70377050    mov CL, strict byte 004h                  ; b1 04
    70387051    shr word [bp-00eh], CL                    ; d3 6e f2
    70397052    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    7040     jne short 04e13h                          ; 75 08
     7053    jne short 04e33h                          ; 75 08
    70417054    mov al, byte [bp-00dh]                    ; 8a 46 f3
    70427055    xor ah, ah                                ; 30 e4
    70437056    mov word [bp-00eh], ax                    ; 89 46 f2
    70447057    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    7045     jne short 04e1eh                          ; 75 05
     7058    jne short 04e3eh                          ; 75 05
    70467059    mov CL, strict byte 00ch                  ; b1 0c
    70477060    shr word [bp-00eh], CL                    ; d3 6e f2
    70487061    cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
    7049     jnc short 04e28h                          ; 73 04
     7062    jnc short 04e48h                          ; 73 04
    70507063    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    70517064    xor al, al                                ; 30 c0
     
    70537066    mov byte [bp-008h], al                    ; 88 46 f8
    70547067    mov byte [bp-00ah], al                    ; 88 46 f6
    7055     mov bx, 00da4h                            ; bb a4 0d
     7068    mov bx, 00da0h                            ; bb a0 0d
    70567069    mov cx, ds                                ; 8c d9
    70577070    mov ax, strict word 00004h                ; b8 04 00
    7058     call 01933h                               ; e8 f5 ca
     7071    call 01933h                               ; e8 d5 ca
    70597072    push word [bp-00eh]                       ; ff 76 f2
    70607073    mov al, byte [bp+004h]                    ; 8a 46 04
     
    70657078    mov ax, strict word 00004h                ; b8 04 00
    70667079    push ax                                   ; 50
    7067     call 01976h                               ; e8 24 cb
     7080    call 01976h                               ; e8 04 cb
    70687081    add sp, strict byte 00008h                ; 83 c4 08
    70697082    mov ax, word [bp-00eh]                    ; 8b 46 f2
    70707083    and ax, strict word 0000fh                ; 25 0f 00
    70717084    cmp ax, strict word 00002h                ; 3d 02 00
    7072     jc short 04e6eh                           ; 72 0e
    7073     jbe short 04e7dh                          ; 76 1b
     7085    jc short 04e8eh                           ; 72 0e
     7086    jbe short 04e9dh                          ; 76 1b
    70747087    cmp ax, strict word 00004h                ; 3d 04 00
    7075     je short 04e9ah                           ; 74 33
     7088    je short 04ebah                           ; 74 33
    70767089    cmp ax, strict word 00003h                ; 3d 03 00
    7077     je short 04e90h                           ; 74 24
    7078     jmp short 04ec9h                          ; eb 5b
     7090    je short 04eb0h                           ; 74 24
     7091    jmp short 04ee9h                          ; eb 5b
    70797092    cmp ax, strict word 00001h                ; 3d 01 00
    7080     jne short 04ec9h                          ; 75 56
     7093    jne short 04ee9h                          ; 75 56
    70817094    xor al, al                                ; 30 c0
    70827095    mov byte [bp-006h], al                    ; 88 46 fa
    70837096    mov byte [bp-008h], al                    ; 88 46 f8
    7084     jmp short 04eddh                          ; eb 60
     7097    jmp short 04efdh                          ; eb 60
    70857098    mov dx, 0037ch                            ; ba 7c 03
    70867099    mov ax, di                                ; 89 f8
    7087     call 01652h                               ; e8 cd c7
     7100    call 01652h                               ; e8 ad c7
    70887101    add AL, strict byte 080h                  ; 04 80
    70897102    mov byte [bp-006h], al                    ; 88 46 fa
    70907103    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    7091     jmp short 04eddh                          ; eb 4d
     7104    jmp short 04efdh                          ; eb 4d
    70927105    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    70937106    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    7094     jmp short 04ea4h                          ; eb 0a
     7107    jmp short 04ec4h                          ; eb 0a
    70957108    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    70967109    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7097     je short 04eddh                           ; 74 39
    7098     call 03e49h                               ; e8 a2 ef
     7110    je short 04efdh                           ; 74 39
     7111    call 03e69h                               ; e8 a2 ef
    70997112    mov bx, ax                                ; 89 c3
    71007113    test AL, strict byte 0ffh                 ; a8 ff
    7101     je short 04ed0h                           ; 74 23
    7102     call 04d4fh                               ; e8 9f fe
     7114    je short 04ef0h                           ; 74 23
     7115    call 04d6fh                               ; e8 9f fe
    71037116    mov al, byte [bp-00ch]                    ; 8a 46 f4
    71047117    xor ah, ah                                ; 30 e4
     
    71107123    mov al, byte [bp-008h]                    ; 8a 46 f8
    71117124    mov cx, strict word 00001h                ; b9 01 00
    7112     call 04cb0h                               ; e8 e7 fd
     7125    call 04cd0h                               ; e8 e7 fd
    71137126    xor ax, ax                                ; 31 c0
    71147127    xor dx, dx                                ; 31 d2
    7115     jmp near 04fffh                           ; e9 2f 01
     7128    jmp near 0501fh                           ; e9 2f 01
    71167129    mov dx, 00372h                            ; ba 72 03
    71177130    mov ax, di                                ; 89 f8
    7118     call 0166eh                               ; e8 96 c7
     7131    call 0166eh                               ; e8 76 c7
    71197132    mov si, ax                                ; 89 c6
    71207133    mov byte [bp-006h], bh                    ; 88 7e fa
    71217134    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    7122     jne short 04f38h                          ; 75 55
     7135    jne short 04f58h                          ; 75 55
    71237136    xor si, si                                ; 31 f6
    71247137    mov ax, 0e200h                            ; b8 00 e2
    71257138    mov es, ax                                ; 8e c0
    71267139    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    7127     jne short 04eb0h                          ; 75 bf
     7140    jne short 04ed0h                          ; 75 bf
    71287141    mov cx, ax                                ; 89 c1
    71297142    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    71307143    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    7131     jne short 04eb0h                          ; 75 b1
     7144    jne short 04ed0h                          ; 75 b1
    71327145    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    7133     jne short 04eb0h                          ; 75 aa
     7146    jne short 04ed0h                          ; 75 aa
    71347147    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
    71357148    mov dx, word [es:bx]                      ; 26 8b 17
    71367149    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
    71377150    cmp ax, 06568h                            ; 3d 68 65
    7138     jne short 04f3ah                          ; 75 24
     7151    jne short 04f5ah                          ; 75 24
    71397152    cmp dx, 07445h                            ; 81 fa 45 74
    7140     jne short 04f3ah                          ; 75 1e
     7153    jne short 04f5ah                          ; 75 1e
    71417154    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71427155    xor bh, bh                                ; 30 ff
     
    71457158    mov al, byte [bp-008h]                    ; 8a 46 f8
    71467159    xor ah, ah                                ; 30 e4
    7147     call 04c5fh                               ; e8 31 fd
     7160    call 04c7fh                               ; e8 31 fd
    71487161    mov word [bp-014h], strict word 00006h    ; c7 46 ec 06 00
    71497162    mov word [bp-012h], cx                    ; 89 4e ee
    7150     jmp short 04f59h                          ; eb 21
    7151     jmp short 04f5fh                          ; eb 25
     7163    jmp short 04f79h                          ; eb 21
     7164    jmp short 04f7fh                          ; eb 25
    71527165    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71537166    xor bh, bh                                ; 30 ff
     
    71567169    mov al, byte [bp-008h]                    ; 8a 46 f8
    71577170    xor ah, ah                                ; 30 e4
    7158     call 04c5fh                               ; e8 13 fd
     7171    call 04c7fh                               ; e8 13 fd
    71597172    sti                                       ; fb
    71607173    mov word [bp-012h], cx                    ; 89 4e ee
     
    71637176    mov word [bp-014h], ax                    ; 89 46 ec
    71647177    call far [bp-014h]                        ; ff 5e ec
    7165     jmp near 04eb0h                           ; e9 51 ff
     7178    jmp near 04ed0h                           ; e9 51 ff
    71667179    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7167     jne short 04f8ch                          ; 75 27
     7180    jne short 04fach                          ; 75 27
    71687181    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7169     jne short 04f8ch                          ; 75 21
     7182    jne short 04fach                          ; 75 21
    71707183    mov si, 007c0h                            ; be c0 07
    71717184    mov es, si                                ; 8e c6
     
    71807193    sbb ax, strict byte 00000h                ; 83 d8 00
    71817194    test ax, ax                               ; 85 c0
    7182     je short 04f8ch                           ; 74 03
    7183     jmp near 04eb0h                           ; e9 24 ff
     7195    je short 04fach                           ; 74 03
     7196    jmp near 04ed0h                           ; e9 24 ff
    71847197    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7185     je short 04f96h                           ; 74 04
     7198    je short 04fb6h                           ; 74 04
    71867199    xor bl, bl                                ; 30 db
    7187     jmp short 04f98h                          ; eb 02
     7200    jmp short 04fb8h                          ; eb 02
    71887201    mov BL, strict byte 001h                  ; b3 01
    71897202    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7190     je short 04fa0h                           ; 74 02
     7203    je short 04fc0h                           ; 74 02
    71917204    mov BL, strict byte 001h                  ; b3 01
    71927205    xor dx, dx                                ; 31 d2
    71937206    mov ax, si                                ; 89 f0
    7194     call 0166eh                               ; e8 c7 c6
     7207    call 0166eh                               ; e8 a7 c6
    71957208    mov di, ax                                ; 89 c7
    71967209    mov dx, strict word 00002h                ; ba 02 00
    71977210    mov ax, si                                ; 89 f0
    7198     call 0166eh                               ; e8 bd c6
     7211    call 0166eh                               ; e8 9d c6
    71997212    cmp di, ax                                ; 39 c7
    7200     je short 04fc6h                           ; 74 11
     7213    je short 04fe6h                           ; 74 11
    72017214    test bl, bl                               ; 84 db
    7202     jne short 04fdeh                          ; 75 25
     7215    jne short 04ffeh                          ; 75 25
    72037216    mov dx, 001feh                            ; ba fe 01
    72047217    mov ax, si                                ; 89 f0
    7205     call 0166eh                               ; e8 ad c6
     7218    call 0166eh                               ; e8 8d c6
    72067219    cmp ax, 0aa55h                            ; 3d 55 aa
    7207     je short 04fdeh                           ; 74 18
     7220    je short 04ffeh                           ; 74 18
    72087221    mov al, byte [bp-00ch]                    ; 8a 46 f4
    72097222    xor ah, ah                                ; 30 e4
     
    72157228    mov al, byte [bp-008h]                    ; 8a 46 f8
    72167229    xor cx, cx                                ; 31 c9
    7217     jmp near 04ec6h                           ; e9 e8 fe
     7230    jmp near 04ee6h                           ; e9 e8 fe
    72187231    mov bl, byte [bp-006h]                    ; 8a 5e fa
    72197232    xor bh, bh                                ; 30 ff
     
    72227235    mov al, byte [bp-008h]                    ; 8a 46 f8
    72237236    xor ah, ah                                ; 30 e4
    7224     call 04c5fh                               ; e8 6f fc
     7237    call 04c7fh                               ; e8 6f fc
    72257238    mov al, byte [bp-006h]                    ; 8a 46 fa
    72267239    xor ah, ah                                ; 30 e4
     
    72357248    pop bp                                    ; 5d
    72367249    retn                                      ; c3
    7237 keyboard_panic_:                             ; 0xf5006 LB 0x16
     7250keyboard_panic_:                             ; 0xf5026 LB 0x16
    72387251    push bp                                   ; 55
    72397252    mov bp, sp                                ; 89 e5
     
    72437256    mov ax, strict word 00007h                ; b8 07 00
    72447257    push ax                                   ; 50
    7245     call 01976h                               ; e8 61 c9
     7258    call 01976h                               ; e8 41 c9
    72467259    add sp, strict byte 00006h                ; 83 c4 06
    72477260    mov sp, bp                                ; 89 ec
    72487261    pop bp                                    ; 5d
    72497262    retn                                      ; c3
    7250 _keyboard_init:                              ; 0xf501c LB 0x26a
     7263_keyboard_init:                              ; 0xf503c LB 0x26a
    72517264    push bp                                   ; 55
    72527265    mov bp, sp                                ; 89 e5
     
    72607273    ; sub ah, ah                                ; 2a e4
    72617274    test AL, strict byte 002h                 ; a8 02
    7262     je short 0503fh                           ; 74 0d
     7275    je short 0505fh                           ; 74 0d
    72637276    dec bx                                    ; 4b
    72647277    test bx, bx                               ; 85 db
    7265     jbe short 0503fh                          ; 76 08
     7278    jbe short 0505fh                          ; 76 08
    72667279    xor al, al                                ; 30 c0
    72677280    mov dx, 00080h                            ; ba 80 00
    72687281    out DX, AL                                ; ee
    7269     jmp short 05028h                          ; eb e9
     7282    jmp short 05048h                          ; eb e9
    72707283    test bx, bx                               ; 85 db
    7271     jne short 05048h                          ; 75 05
     7284    jne short 05068h                          ; 75 05
    72727285    xor ax, ax                                ; 31 c0
    7273     call 05006h                               ; e8 be ff
     7286    call 05026h                               ; e8 be ff
    72747287    mov bx, strict word 0ffffh                ; bb ff ff
    72757288    mov dx, strict word 00064h                ; ba 64 00
     
    72787291    ; sub ah, ah                                ; 2a e4
    72797292    test AL, strict byte 001h                 ; a8 01
    7280     jne short 05062h                          ; 75 0d
     7293    jne short 05082h                          ; 75 0d
    72817294    dec bx                                    ; 4b
    72827295    test bx, bx                               ; 85 db
    7283     jbe short 05062h                          ; 76 08
     7296    jbe short 05082h                          ; 76 08
    72847297    mov AL, strict byte 001h                  ; b0 01
    72857298    mov dx, 00080h                            ; ba 80 00
    72867299    out DX, AL                                ; ee
    7287     jmp short 0504bh                          ; eb e9
     7300    jmp short 0506bh                          ; eb e9
    72887301    test bx, bx                               ; 85 db
    7289     jne short 0506ch                          ; 75 06
     7302    jne short 0508ch                          ; 75 06
    72907303    mov ax, strict word 00001h                ; b8 01 00
    7291     call 05006h                               ; e8 9a ff
     7304    call 05026h                               ; e8 9a ff
    72927305    mov dx, strict word 00060h                ; ba 60 00
    72937306    in AL, DX                                 ; ec
     
    72957308    ; sub ah, ah                                ; 2a e4
    72967309    cmp ax, strict word 00055h                ; 3d 55 00
    7297     je short 0507dh                           ; 74 06
     7310    je short 0509dh                           ; 74 06
    72987311    mov ax, 003dfh                            ; b8 df 03
    7299     call 05006h                               ; e8 89 ff
     7312    call 05026h                               ; e8 89 ff
    73007313    mov AL, strict byte 0abh                  ; b0 ab
    73017314    mov dx, strict word 00064h                ; ba 64 00
     
    73077320    ; sub ah, ah                                ; 2a e4
    73087321    test AL, strict byte 002h                 ; a8 02
    7309     je short 0509dh                           ; 74 0d
     7322    je short 050bdh                           ; 74 0d
    73107323    dec bx                                    ; 4b
    73117324    test bx, bx                               ; 85 db
    7312     jbe short 0509dh                          ; 76 08
     7325    jbe short 050bdh                          ; 76 08
    73137326    mov AL, strict byte 010h                  ; b0 10
    73147327    mov dx, 00080h                            ; ba 80 00
    73157328    out DX, AL                                ; ee
    7316     jmp short 05086h                          ; eb e9
     7329    jmp short 050a6h                          ; eb e9
    73177330    test bx, bx                               ; 85 db
    7318     jne short 050a7h                          ; 75 06
     7331    jne short 050c7h                          ; 75 06
    73197332    mov ax, strict word 0000ah                ; b8 0a 00
    7320     call 05006h                               ; e8 5f ff
     7333    call 05026h                               ; e8 5f ff
    73217334    mov bx, strict word 0ffffh                ; bb ff ff
    73227335    mov dx, strict word 00064h                ; ba 64 00
     
    73257338    ; sub ah, ah                                ; 2a e4
    73267339    test AL, strict byte 001h                 ; a8 01
    7327     jne short 050c1h                          ; 75 0d
     7340    jne short 050e1h                          ; 75 0d
    73287341    dec bx                                    ; 4b
    73297342    test bx, bx                               ; 85 db
    7330     jbe short 050c1h                          ; 76 08
     7343    jbe short 050e1h                          ; 76 08
    73317344    mov AL, strict byte 011h                  ; b0 11
    73327345    mov dx, 00080h                            ; ba 80 00
    73337346    out DX, AL                                ; ee
    7334     jmp short 050aah                          ; eb e9
     7347    jmp short 050cah                          ; eb e9
    73357348    test bx, bx                               ; 85 db
    7336     jne short 050cbh                          ; 75 06
     7349    jne short 050ebh                          ; 75 06
    73377350    mov ax, strict word 0000bh                ; b8 0b 00
    7338     call 05006h                               ; e8 3b ff
     7351    call 05026h                               ; e8 3b ff
    73397352    mov dx, strict word 00060h                ; ba 60 00
    73407353    in AL, DX                                 ; ec
     
    73427355    ; sub ah, ah                                ; 2a e4
    73437356    test ax, ax                               ; 85 c0
    7344     je short 050dbh                           ; 74 06
     7357    je short 050fbh                           ; 74 06
    73457358    mov ax, 003e0h                            ; b8 e0 03
    7346     call 05006h                               ; e8 2b ff
     7359    call 05026h                               ; e8 2b ff
    73477360    mov AL, strict byte 0ffh                  ; b0 ff
    73487361    mov dx, strict word 00060h                ; ba 60 00
     
    73547367    ; sub ah, ah                                ; 2a e4
    73557368    test AL, strict byte 002h                 ; a8 02
    7356     je short 050fbh                           ; 74 0d
     7369    je short 0511bh                           ; 74 0d
    73577370    dec bx                                    ; 4b
    73587371    test bx, bx                               ; 85 db
    7359     jbe short 050fbh                          ; 76 08
     7372    jbe short 0511bh                          ; 76 08
    73607373    mov AL, strict byte 020h                  ; b0 20
    73617374    mov dx, 00080h                            ; ba 80 00
    73627375    out DX, AL                                ; ee
    7363     jmp short 050e4h                          ; eb e9
     7376    jmp short 05104h                          ; eb e9
    73647377    test bx, bx                               ; 85 db
    7365     jne short 05105h                          ; 75 06
     7378    jne short 05125h                          ; 75 06
    73667379    mov ax, strict word 00014h                ; b8 14 00
    7367     call 05006h                               ; e8 01 ff
     7380    call 05026h                               ; e8 01 ff
    73687381    mov bx, strict word 0ffffh                ; bb ff ff
    73697382    mov dx, strict word 00064h                ; ba 64 00
     
    73727385    ; sub ah, ah                                ; 2a e4
    73737386    test AL, strict byte 001h                 ; a8 01
    7374     jne short 0511fh                          ; 75 0d
     7387    jne short 0513fh                          ; 75 0d
    73757388    dec bx                                    ; 4b
    73767389    test bx, bx                               ; 85 db
    7377     jbe short 0511fh                          ; 76 08
     7390    jbe short 0513fh                          ; 76 08
    73787391    mov AL, strict byte 021h                  ; b0 21
    73797392    mov dx, 00080h                            ; ba 80 00
    73807393    out DX, AL                                ; ee
    7381     jmp short 05108h                          ; eb e9
     7394    jmp short 05128h                          ; eb e9
    73827395    test bx, bx                               ; 85 db
    7383     jne short 05129h                          ; 75 06
     7396    jne short 05149h                          ; 75 06
    73847397    mov ax, strict word 00015h                ; b8 15 00
    7385     call 05006h                               ; e8 dd fe
     7398    call 05026h                               ; e8 dd fe
    73867399    mov dx, strict word 00060h                ; ba 60 00
    73877400    in AL, DX                                 ; ec
     
    73897402    ; sub ah, ah                                ; 2a e4
    73907403    cmp ax, 000fah                            ; 3d fa 00
    7391     je short 0513ah                           ; 74 06
     7404    je short 0515ah                           ; 74 06
    73927405    mov ax, 003e1h                            ; b8 e1 03
    7393     call 05006h                               ; e8 cc fe
     7406    call 05026h                               ; e8 cc fe
    73947407    mov dx, strict word 00064h                ; ba 64 00
    73957408    in AL, DX                                 ; ec
     
    73977410    ; sub ah, ah                                ; 2a e4
    73987411    test AL, strict byte 001h                 ; a8 01
    7399     jne short 0514ch                          ; 75 08
     7412    jne short 0516ch                          ; 75 08
    74007413    mov AL, strict byte 031h                  ; b0 31
    74017414    mov dx, 00080h                            ; ba 80 00
    74027415    out DX, AL                                ; ee
    7403     jmp short 0513ah                          ; eb ee
     7416    jmp short 0515ah                          ; eb ee
    74047417    mov dx, strict word 00060h                ; ba 60 00
    74057418    in AL, DX                                 ; ec
     
    74077420    ; sub ah, ah                                ; 2a e4
    74087421    cmp ax, 000aah                            ; 3d aa 00
    7409     je short 05165h                           ; 74 0e
     7422    je short 05185h                           ; 74 0e
    74107423    in AL, DX                                 ; ec
    74117424    db  02ah, 0e4h
    74127425    ; sub ah, ah                                ; 2a e4
    74137426    cmp ax, 000aah                            ; 3d aa 00
    7414     je short 05165h                           ; 74 06
     7427    je short 05185h                           ; 74 06
    74157428    mov ax, 003e2h                            ; b8 e2 03
    7416     call 05006h                               ; e8 a1 fe
     7429    call 05026h                               ; e8 a1 fe
    74177430    mov AL, strict byte 0f5h                  ; b0 f5
    74187431    mov dx, strict word 00060h                ; ba 60 00
     
    74247437    ; sub ah, ah                                ; 2a e4
    74257438    test AL, strict byte 002h                 ; a8 02
    7426     je short 05185h                           ; 74 0d
     7439    je short 051a5h                           ; 74 0d
    74277440    dec bx                                    ; 4b
    74287441    test bx, bx                               ; 85 db
    7429     jbe short 05185h                          ; 76 08
     7442    jbe short 051a5h                          ; 76 08
    74307443    mov AL, strict byte 040h                  ; b0 40
    74317444    mov dx, 00080h                            ; ba 80 00
    74327445    out DX, AL                                ; ee
    7433     jmp short 0516eh                          ; eb e9
     7446    jmp short 0518eh                          ; eb e9
    74347447    test bx, bx                               ; 85 db
    7435     jne short 0518fh                          ; 75 06
     7448    jne short 051afh                          ; 75 06
    74367449    mov ax, strict word 00028h                ; b8 28 00
    7437     call 05006h                               ; e8 77 fe
     7450    call 05026h                               ; e8 77 fe
    74387451    mov bx, strict word 0ffffh                ; bb ff ff
    74397452    mov dx, strict word 00064h                ; ba 64 00
     
    74427455    ; sub ah, ah                                ; 2a e4
    74437456    test AL, strict byte 001h                 ; a8 01
    7444     jne short 051a9h                          ; 75 0d
     7457    jne short 051c9h                          ; 75 0d
    74457458    dec bx                                    ; 4b
    74467459    test bx, bx                               ; 85 db
    7447     jbe short 051a9h                          ; 76 08
     7460    jbe short 051c9h                          ; 76 08
    74487461    mov AL, strict byte 041h                  ; b0 41
    74497462    mov dx, 00080h                            ; ba 80 00
    74507463    out DX, AL                                ; ee
    7451     jmp short 05192h                          ; eb e9
     7464    jmp short 051b2h                          ; eb e9
    74527465    test bx, bx                               ; 85 db
    7453     jne short 051b3h                          ; 75 06
     7466    jne short 051d3h                          ; 75 06
    74547467    mov ax, strict word 00029h                ; b8 29 00
    7455     call 05006h                               ; e8 53 fe
     7468    call 05026h                               ; e8 53 fe
    74567469    mov dx, strict word 00060h                ; ba 60 00
    74577470    in AL, DX                                 ; ec
     
    74597472    ; sub ah, ah                                ; 2a e4
    74607473    cmp ax, 000fah                            ; 3d fa 00
    7461     je short 051c4h                           ; 74 06
     7474    je short 051e4h                           ; 74 06
    74627475    mov ax, 003e3h                            ; b8 e3 03
    7463     call 05006h                               ; e8 42 fe
     7476    call 05026h                               ; e8 42 fe
    74647477    mov AL, strict byte 060h                  ; b0 60
    74657478    mov dx, strict word 00064h                ; ba 64 00
     
    74717484    ; sub ah, ah                                ; 2a e4
    74727485    test AL, strict byte 002h                 ; a8 02
    7473     je short 051e4h                           ; 74 0d
     7486    je short 05204h                           ; 74 0d
    74747487    dec bx                                    ; 4b
    74757488    test bx, bx                               ; 85 db
    7476     jbe short 051e4h                          ; 76 08
     7489    jbe short 05204h                          ; 76 08
    74777490    mov AL, strict byte 050h                  ; b0 50
    74787491    mov dx, 00080h                            ; ba 80 00
    74797492    out DX, AL                                ; ee
    7480     jmp short 051cdh                          ; eb e9
     7493    jmp short 051edh                          ; eb e9
    74817494    test bx, bx                               ; 85 db
    7482     jne short 051eeh                          ; 75 06
     7495    jne short 0520eh                          ; 75 06
    74837496    mov ax, strict word 00032h                ; b8 32 00
    7484     call 05006h                               ; e8 18 fe
     7497    call 05026h                               ; e8 18 fe
    74857498    mov AL, strict byte 065h                  ; b0 65
    74867499    mov dx, strict word 00060h                ; ba 60 00
     
    74927505    ; sub ah, ah                                ; 2a e4
    74937506    test AL, strict byte 002h                 ; a8 02
    7494     je short 0520eh                           ; 74 0d
     7507    je short 0522eh                           ; 74 0d
    74957508    dec bx                                    ; 4b
    74967509    test bx, bx                               ; 85 db
    7497     jbe short 0520eh                          ; 76 08
     7510    jbe short 0522eh                          ; 76 08
    74987511    mov AL, strict byte 060h                  ; b0 60
    74997512    mov dx, 00080h                            ; ba 80 00
    75007513    out DX, AL                                ; ee
    7501     jmp short 051f7h                          ; eb e9
     7514    jmp short 05217h                          ; eb e9
    75027515    test bx, bx                               ; 85 db
    7503     jne short 05218h                          ; 75 06
     7516    jne short 05238h                          ; 75 06
    75047517    mov ax, strict word 0003ch                ; b8 3c 00
    7505     call 05006h                               ; e8 ee fd
     7518    call 05026h                               ; e8 ee fd
    75067519    mov AL, strict byte 0f4h                  ; b0 f4
    75077520    mov dx, strict word 00060h                ; ba 60 00
     
    75137526    ; sub ah, ah                                ; 2a e4
    75147527    test AL, strict byte 002h                 ; a8 02
    7515     je short 05238h                           ; 74 0d
     7528    je short 05258h                           ; 74 0d
    75167529    dec bx                                    ; 4b
    75177530    test bx, bx                               ; 85 db
    7518     jbe short 05238h                          ; 76 08
     7531    jbe short 05258h                          ; 76 08
    75197532    mov AL, strict byte 070h                  ; b0 70
    75207533    mov dx, 00080h                            ; ba 80 00
    75217534    out DX, AL                                ; ee
    7522     jmp short 05221h                          ; eb e9
     7535    jmp short 05241h                          ; eb e9
    75237536    test bx, bx                               ; 85 db
    7524     jne short 05242h                          ; 75 06
     7537    jne short 05262h                          ; 75 06
    75257538    mov ax, strict word 00046h                ; b8 46 00
    7526     call 05006h                               ; e8 c4 fd
     7539    call 05026h                               ; e8 c4 fd
    75277540    mov bx, strict word 0ffffh                ; bb ff ff
    75287541    mov dx, strict word 00064h                ; ba 64 00
     
    75317544    ; sub ah, ah                                ; 2a e4
    75327545    test AL, strict byte 001h                 ; a8 01
    7533     jne short 0525ch                          ; 75 0d
     7546    jne short 0527ch                          ; 75 0d
    75347547    dec bx                                    ; 4b
    75357548    test bx, bx                               ; 85 db
    7536     jbe short 0525ch                          ; 76 08
     7549    jbe short 0527ch                          ; 76 08
    75377550    mov AL, strict byte 071h                  ; b0 71
    75387551    mov dx, 00080h                            ; ba 80 00
    75397552    out DX, AL                                ; ee
    7540     jmp short 05245h                          ; eb e9
     7553    jmp short 05265h                          ; eb e9
    75417554    test bx, bx                               ; 85 db
    7542     jne short 05266h                          ; 75 06
     7555    jne short 05286h                          ; 75 06
    75437556    mov ax, strict word 00046h                ; b8 46 00
    7544     call 05006h                               ; e8 a0 fd
     7557    call 05026h                               ; e8 a0 fd
    75457558    mov dx, strict word 00060h                ; ba 60 00
    75467559    in AL, DX                                 ; ec
     
    75487561    ; sub ah, ah                                ; 2a e4
    75497562    cmp ax, 000fah                            ; 3d fa 00
    7550     je short 05277h                           ; 74 06
     7563    je short 05297h                           ; 74 06
    75517564    mov ax, 003e4h                            ; b8 e4 03
    7552     call 05006h                               ; e8 8f fd
     7565    call 05026h                               ; e8 8f fd
    75537566    mov AL, strict byte 0a8h                  ; b0 a8
    75547567    mov dx, strict word 00064h                ; ba 64 00
    75557568    out DX, AL                                ; ee
    75567569    xor ax, ax                                ; 31 c0
    7557     call 0677eh                               ; e8 fc 14
     7570    call 0679eh                               ; e8 fc 14
    75587571    mov sp, bp                                ; 89 ec
    75597572    pop bp                                    ; 5d
    75607573    retn                                      ; c3
    7561 enqueue_key_:                                ; 0xf5286 LB 0x9e
     7574enqueue_key_:                                ; 0xf52a6 LB 0x9e
    75627575    push bp                                   ; 55
    75637576    mov bp, sp                                ; 89 e5
     
    75717584    mov dx, strict word 0001ah                ; ba 1a 00
    75727585    mov ax, strict word 00040h                ; b8 40 00
    7573     call 0166eh                               ; e8 d2 c3
     7586    call 0166eh                               ; e8 b2 c3
    75747587    mov di, ax                                ; 89 c7
    75757588    mov dx, strict word 0001ch                ; ba 1c 00
    75767589    mov ax, strict word 00040h                ; b8 40 00
    7577     call 0166eh                               ; e8 c7 c3
     7590    call 0166eh                               ; e8 a7 c3
    75787591    mov si, ax                                ; 89 c6
    75797592    lea cx, [si+002h]                         ; 8d 4c 02
    75807593    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7581     jc short 052b4h                           ; 72 03
     7594    jc short 052d4h                           ; 72 03
    75827595    mov cx, strict word 0001eh                ; b9 1e 00
    75837596    cmp cx, di                                ; 39 f9
    7584     jne short 052bch                          ; 75 04
     7597    jne short 052dch                          ; 75 04
    75857598    xor ax, ax                                ; 31 c0
    7586     jmp short 052e6h                          ; eb 2a
     7599    jmp short 05306h                          ; eb 2a
    75877600    mov al, bl                                ; 88 d8
    75887601    xor ah, ah                                ; 30 e4
     
    75907603    mov dx, si                                ; 89 f2
    75917604    mov ax, strict word 00040h                ; b8 40 00
    7592     call 01660h                               ; e8 96 c3
     7605    call 01660h                               ; e8 76 c3
    75937606    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    75947607    xor bh, bh                                ; 30 ff
    75957608    lea dx, [si+001h]                         ; 8d 54 01
    75967609    mov ax, strict word 00040h                ; b8 40 00
    7597     call 01660h                               ; e8 88 c3
     7610    call 01660h                               ; e8 68 c3
    75987611    mov bx, cx                                ; 89 cb
    75997612    mov dx, strict word 0001ch                ; ba 1c 00
    76007613    mov ax, strict word 00040h                ; b8 40 00
    7601     call 0167ch                               ; e8 99 c3
     7614    call 0167ch                               ; e8 79 c3
    76027615    mov ax, strict word 00001h                ; b8 01 00
    76037616    lea sp, [bp-008h]                         ; 8d 66 f8
     
    76097622    retn                                      ; c3
    76107623    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
    7611     db  01dh, 06ah, 056h, 025h, 054h, 0c5h, 053h, 0c5h, 053h, 0b4h, 054h, 096h, 053h, 038h, 055h, 0a9h
    7612     db  055h, 050h, 056h, 02eh, 056h, 06ch, 054h, 0c5h, 053h, 0c5h, 053h, 0f6h, 054h, 0b6h, 053h, 089h
    7613     db  055h, 00eh, 056h, 049h, 056h
    7614 _int09_function:                             ; 0xf5324 LB 0x4cd
     7624    db  01dh, 08ah, 056h, 045h, 054h, 0e5h, 053h, 0e5h, 053h, 0d4h, 054h, 0b6h, 053h, 058h, 055h, 0c9h
     7625    db  055h, 070h, 056h, 04eh, 056h, 08ch, 054h, 0e5h, 053h, 0e5h, 053h, 016h, 055h, 0d6h, 053h, 0a9h
     7626    db  055h, 02eh, 056h, 069h, 056h
     7627_int09_function:                             ; 0xf5344 LB 0x4cd
    76157628    push bp                                   ; 55
    76167629    mov bp, sp                                ; 89 e5
     
    76207633    mov byte [bp-004h], al                    ; 88 46 fc
    76217634    test al, al                               ; 84 c0
    7622     jne short 05351h                          ; 75 1c
    7623     mov bx, 00da4h                            ; bb a4 0d
     7635    jne short 05371h                          ; 75 1c
     7636    mov bx, 00da0h                            ; bb a0 0d
    76247637    mov cx, ds                                ; 8c d9
    76257638    mov ax, strict word 00004h                ; b8 04 00
    7626     call 01933h                               ; e8 f3 c5
     7639    call 01933h                               ; e8 d3 c5
    76277640    mov ax, 00587h                            ; b8 87 05
    76287641    push ax                                   ; 50
    76297642    mov ax, strict word 00004h                ; b8 04 00
    76307643    push ax                                   ; 50
    7631     call 01976h                               ; e8 2b c6
     7644    call 01976h                               ; e8 0b c6
    76327645    add sp, strict byte 00004h                ; 83 c4 04
    7633     jmp near 0541fh                           ; e9 ce 00
     7646    jmp near 0543fh                           ; e9 ce 00
    76347647    mov dx, strict word 00018h                ; ba 18 00
    76357648    mov ax, strict word 00040h                ; b8 40 00
    7636     call 01652h                               ; e8 f8 c2
     7649    call 01652h                               ; e8 d8 c2
    76377650    mov byte [bp-006h], al                    ; 88 46 fa
    76387651    mov byte [bp-008h], al                    ; 88 46 f8
    76397652    mov dx, 00096h                            ; ba 96 00
    76407653    mov ax, strict word 00040h                ; b8 40 00
    7641     call 01652h                               ; e8 e9 c2
     7654    call 01652h                               ; e8 c9 c2
    76427655    mov byte [bp-00ah], al                    ; 88 46 f6
    76437656    mov byte [bp-010h], al                    ; 88 46 f0
    76447657    mov dx, strict word 00017h                ; ba 17 00
    76457658    mov ax, strict word 00040h                ; b8 40 00
    7646     call 01652h                               ; e8 da c2
     7659    call 01652h                               ; e8 ba c2
    76477660    mov byte [bp-00ch], al                    ; 88 46 f4
    76487661    mov byte [bp-00eh], al                    ; 88 46 f2
     
    76517664    pop ES                                    ; 07
    76527665    mov cx, strict word 00012h                ; b9 12 00
    7653     mov di, 052efh                            ; bf ef 52
     7666    mov di, 0530fh                            ; bf 0f 53
    76547667    repne scasb                               ; f2 ae
    76557668    sal cx, 1                                 ; d1 e1
    76567669    mov di, cx                                ; 89 cf
    7657     mov ax, word [cs:di+05300h]               ; 2e 8b 85 00 53
     7670    mov ax, word [cs:di+05320h]               ; 2e 8b 85 20 53
    76587671    jmp ax                                    ; ff e0
    76597672    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    76627675    mov dx, strict word 00017h                ; ba 17 00
    76637676    mov ax, strict word 00040h                ; b8 40 00
    7664     call 01660h                               ; e8 b8 c2
     7677    call 01660h                               ; e8 98 c2
    76657678    or byte [bp-008h], 040h                   ; 80 4e f8 40
    76667679    mov al, byte [bp-008h]                    ; 8a 46 f8
    76677680    xor ah, ah                                ; 30 e4
    76687681    mov bx, ax                                ; 89 c3
    7669     jmp near 0563eh                           ; e9 88 02
     7682    jmp near 0565eh                           ; e9 88 02
    76707683    mov al, byte [bp-006h]                    ; 8a 46 fa
    76717684    and AL, strict byte 0bfh                  ; 24 bf
     
    76737686    mov bl, al                                ; 88 c3
    76747687    xor bh, bh                                ; 30 ff
    7675     jmp near 0563eh                           ; e9 79 02
     7688    jmp near 0565eh                           ; e9 79 02
    76767689    test byte [bp-010h], 002h                 ; f6 46 f0 02
    7677     jne short 053feh                          ; 75 33
     7690    jne short 0541eh                          ; 75 33
    76787691    mov al, byte [bp-004h]                    ; 8a 46 fc
    76797692    and AL, strict byte 07fh                  ; 24 7f
    76807693    cmp AL, strict byte 02ah                  ; 3c 2a
    7681     jne short 053d9h                          ; 75 05
     7694    jne short 053f9h                          ; 75 05
    76827695    mov bx, strict word 00002h                ; bb 02 00
    7683     jmp short 053dch                          ; eb 03
     7696    jmp short 053fch                          ; eb 03
    76847697    mov bx, strict word 00001h                ; bb 01 00
    76857698    test byte [bp-004h], 080h                 ; f6 46 fc 80
    7686     je short 053ebh                           ; 74 09
     7699    je short 0540bh                           ; 74 09
    76877700    mov al, bl                                ; 88 d8
    76887701    not al                                    ; f6 d0
    76897702    and byte [bp-00eh], al                    ; 20 46 f2
    7690     jmp short 053eeh                          ; eb 03
     7703    jmp short 0540eh                          ; eb 03
    76917704    or byte [bp-00eh], bl                     ; 08 5e f2
    76927705    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    76957708    mov dx, strict word 00017h                ; ba 17 00
    76967709    mov ax, strict word 00040h                ; b8 40 00
    7697     call 01660h                               ; e8 62 c2
     7710    call 01660h                               ; e8 42 c2
    76987711    mov al, byte [bp-004h]                    ; 8a 46 fc
    76997712    and AL, strict byte 07fh                  ; 24 7f
    77007713    cmp AL, strict byte 01dh                  ; 3c 1d
    7701     je short 0540bh                           ; 74 04
     7714    je short 0542bh                           ; 74 04
    77027715    and byte [bp-010h], 0feh                  ; 80 66 f0 fe
    77037716    and byte [bp-010h], 0fdh                  ; 80 66 f0 fd
     
    77077720    mov dx, 00096h                            ; ba 96 00
    77087721    mov ax, strict word 00040h                ; b8 40 00
    7709     call 01660h                               ; e8 41 c2
     7722    call 01660h                               ; e8 21 c2
    77107723    lea sp, [bp-002h]                         ; 8d 66 fe
    77117724    pop di                                    ; 5f
     
    77137726    retn                                      ; c3
    77147727    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7715     jne short 053feh                          ; 75 d3
     7728    jne short 0541eh                          ; 75 d3
    77167729    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77177730    or AL, strict byte 004h                   ; 0c 04
     
    77217734    mov dx, strict word 00017h                ; ba 17 00
    77227735    mov ax, strict word 00040h                ; b8 40 00
    7723     call 01660h                               ; e8 20 c2
     7736    call 01660h                               ; e8 00 c2
    77247737    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77257738    test AL, strict byte 002h                 ; a8 02
    7726     je short 05455h                           ; 74 0e
     7739    je short 05475h                           ; 74 0e
    77277740    or AL, strict byte 004h                   ; 0c 04
    77287741    mov byte [bp-010h], al                    ; 88 46 f0
     
    77307743    mov bx, ax                                ; 89 c3
    77317744    mov dx, 00096h                            ; ba 96 00
    7732     jmp short 05464h                          ; eb 0f
     7745    jmp short 05484h                          ; eb 0f
    77337746    mov al, byte [bp-006h]                    ; 8a 46 fa
    77347747    or AL, strict byte 001h                   ; 0c 01
     
    77387751    mov dx, strict word 00018h                ; ba 18 00
    77397752    mov ax, strict word 00040h                ; b8 40 00
    7740     call 01660h                               ; e8 f6 c1
    7741     jmp short 053feh                          ; eb 92
     7753    call 01660h                               ; e8 d6 c1
     7754    jmp short 0541eh                          ; eb 92
    77427755    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7743     jne short 053feh                          ; 75 8c
     7756    jne short 0541eh                          ; 75 8c
    77447757    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77457758    and AL, strict byte 0fbh                  ; 24 fb
     
    77497762    mov dx, strict word 00017h                ; ba 17 00
    77507763    mov ax, strict word 00040h                ; b8 40 00
    7751     call 01660h                               ; e8 d9 c1
     7764    call 01660h                               ; e8 b9 c1
    77527765    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77537766    test AL, strict byte 002h                 ; a8 02
    7754     je short 0549ch                           ; 74 0e
     7767    je short 054bch                           ; 74 0e
    77557768    and AL, strict byte 0fbh                  ; 24 fb
    77567769    mov byte [bp-010h], al                    ; 88 46 f0
     
    77587771    mov bx, ax                                ; 89 c3
    77597772    mov dx, 00096h                            ; ba 96 00
    7760     jmp short 054abh                          ; eb 0f
     7773    jmp short 054cbh                          ; eb 0f
    77617774    mov al, byte [bp-006h]                    ; 8a 46 fa
    77627775    and AL, strict byte 0feh                  ; 24 fe
     
    77667779    mov dx, strict word 00018h                ; ba 18 00
    77677780    mov ax, strict word 00040h                ; b8 40 00
    7768     call 01660h                               ; e8 af c1
    7769     jmp near 053feh                           ; e9 4a ff
     7781    call 01660h                               ; e8 8f c1
     7782    jmp near 0541eh                           ; e9 4a ff
    77707783    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77717784    or AL, strict byte 008h                   ; 0c 08
     
    77757788    mov dx, strict word 00017h                ; ba 17 00
    77767789    mov ax, strict word 00040h                ; b8 40 00
    7777     call 01660h                               ; e8 97 c1
     7790    call 01660h                               ; e8 77 c1
    77787791    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77797792    test AL, strict byte 002h                 ; a8 02
    7780     je short 054deh                           ; 74 0e
     7793    je short 054feh                           ; 74 0e
    77817794    or AL, strict byte 008h                   ; 0c 08
    77827795    mov byte [bp-010h], al                    ; 88 46 f0
     
    77847797    mov bx, ax                                ; 89 c3
    77857798    mov dx, 00096h                            ; ba 96 00
    7786     jmp short 054edh                          ; eb 0f
     7799    jmp short 0550dh                          ; eb 0f
    77877800    mov al, byte [bp-006h]                    ; 8a 46 fa
    77887801    or AL, strict byte 002h                   ; 0c 02
     
    77927805    mov dx, strict word 00018h                ; ba 18 00
    77937806    mov ax, strict word 00040h                ; b8 40 00
    7794     call 01660h                               ; e8 6d c1
    7795     jmp near 053feh                           ; e9 08 ff
     7807    call 01660h                               ; e8 4d c1
     7808    jmp near 0541eh                           ; e9 08 ff
    77967809    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77977810    and AL, strict byte 0f7h                  ; 24 f7
     
    78017814    mov dx, strict word 00017h                ; ba 17 00
    78027815    mov ax, strict word 00040h                ; b8 40 00
    7803     call 01660h                               ; e8 55 c1
     7816    call 01660h                               ; e8 35 c1
    78047817    mov al, byte [bp-00ah]                    ; 8a 46 f6
    78057818    test AL, strict byte 002h                 ; a8 02
    7806     je short 05520h                           ; 74 0e
     7819    je short 05540h                           ; 74 0e
    78077820    and AL, strict byte 0f7h                  ; 24 f7
    78087821    mov byte [bp-010h], al                    ; 88 46 f0
     
    78107823    mov bx, ax                                ; 89 c3
    78117824    mov dx, 00096h                            ; ba 96 00
    7812     jmp short 0552fh                          ; eb 0f
     7825    jmp short 0554fh                          ; eb 0f
    78137826    mov al, byte [bp-006h]                    ; 8a 46 fa
    78147827    and AL, strict byte 0fdh                  ; 24 fd
     
    78187831    mov dx, strict word 00018h                ; ba 18 00
    78197832    mov ax, strict word 00040h                ; b8 40 00
    7820     call 01660h                               ; e8 2b c1
    7821     jmp near 053feh                           ; e9 c6 fe
     7833    call 01660h                               ; e8 0b c1
     7834    jmp near 0541eh                           ; e9 c6 fe
    78227835    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7823     jne short 0555bh                          ; 75 1d
     7836    jne short 0557bh                          ; 75 1d
    78247837    mov al, byte [bp-006h]                    ; 8a 46 fa
    78257838    or AL, strict byte 020h                   ; 0c 20
     
    78297842    mov dx, strict word 00018h                ; ba 18 00
    78307843    mov ax, strict word 00040h                ; b8 40 00
    7831     call 01660h                               ; e8 0d c1
     7844    call 01660h                               ; e8 ed c0
    78327845    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78337846    xor AL, strict byte 020h                  ; 34 20
    7834     jmp near 055fch                           ; e9 a1 00
     7847    jmp near 0561ch                           ; e9 a1 00
    78357848    mov al, byte [bp-006h]                    ; 8a 46 fa
    78367849    or AL, strict byte 008h                   ; 0c 08
     
    78407853    mov dx, strict word 00018h                ; ba 18 00
    78417854    mov ax, strict word 00040h                ; b8 40 00
    7842     call 01660h                               ; e8 f0 c0
     7855    call 01660h                               ; e8 d0 c0
    78437856    mov AL, strict byte 0aeh                  ; b0 ae
    78447857    mov dx, strict word 00064h                ; ba 64 00
    78457858    out DX, AL                                ; ee
    7846     call 0e034h                               ; e8 bb 8a
     7859    call 0e034h                               ; e8 9b 8a
    78477860    mov dx, strict word 00018h                ; ba 18 00
    78487861    mov ax, strict word 00040h                ; b8 40 00
    7849     call 01652h                               ; e8 d0 c0
     7862    call 01652h                               ; e8 b0 c0
    78507863    test AL, strict byte 008h                 ; a8 08
    7851     jne short 05579h                          ; 75 f3
    7852     jmp near 053feh                           ; e9 75 fe
     7864    jne short 05599h                          ; 75 f3
     7865    jmp near 0541eh                           ; e9 75 fe
    78537866    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7854     je short 05592h                           ; 74 03
    7855     jmp near 053feh                           ; e9 6c fe
     7867    je short 055b2h                           ; 74 03
     7868    jmp near 0541eh                           ; e9 6c fe
    78567869    mov al, byte [bp-006h]                    ; 8a 46 fa
    78577870    and AL, strict byte 0dfh                  ; 24 df
     
    78617874    mov dx, strict word 00018h                ; ba 18 00
    78627875    mov ax, strict word 00040h                ; b8 40 00
    7863     call 01660h                               ; e8 b9 c0
    7864     jmp short 0558fh                          ; eb e6
     7876    call 01660h                               ; e8 99 c0
     7877    jmp short 055afh                          ; eb e6
    78657878    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7866     je short 055e2h                           ; 74 33
     7879    je short 05602h                           ; 74 33
    78677880    mov dx, strict word 0001ah                ; ba 1a 00
    78687881    mov ax, strict word 00040h                ; b8 40 00
    7869     call 0166eh                               ; e8 b6 c0
     7882    call 0166eh                               ; e8 96 c0
    78707883    mov bx, ax                                ; 89 c3
    78717884    mov dx, strict word 0001ch                ; ba 1c 00
    78727885    mov ax, strict word 00040h                ; b8 40 00
    7873     call 0167ch                               ; e8 b9 c0
     7886    call 0167ch                               ; e8 99 c0
    78747887    mov bx, 00080h                            ; bb 80 00
    78757888    mov dx, strict word 00071h                ; ba 71 00
    78767889    mov ax, strict word 00040h                ; b8 40 00
    7877     call 01660h                               ; e8 91 c0
     7890    call 01660h                               ; e8 71 c0
    78787891    mov AL, strict byte 0aeh                  ; b0 ae
    78797892    mov dx, strict word 00064h                ; ba 64 00
     
    78847897    xor dx, dx                                ; 31 d2
    78857898    xor ax, ax                                ; 31 c0
    7886     call 05286h                               ; e8 a6 fc
    7887     jmp short 0558fh                          ; eb ad
     7899    call 052a6h                               ; e8 a6 fc
     7900    jmp short 055afh                          ; eb ad
    78887901    mov al, byte [bp-006h]                    ; 8a 46 fa
    78897902    or AL, strict byte 010h                   ; 0c 10
     
    78937906    mov dx, strict word 00018h                ; ba 18 00
    78947907    mov ax, strict word 00040h                ; b8 40 00
    7895     call 01660h                               ; e8 69 c0
     7908    call 01660h                               ; e8 49 c0
    78967909    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78977910    xor AL, strict byte 010h                  ; 34 10
     
    79017914    mov dx, strict word 00017h                ; ba 17 00
    79027915    mov ax, strict word 00040h                ; b8 40 00
    7903     call 01660h                               ; e8 54 c0
    7904     jmp short 0558fh                          ; eb 81
     7916    call 01660h                               ; e8 34 c0
     7917    jmp short 055afh                          ; eb 81
    79057918    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7906     je short 05617h                           ; 74 03
    7907     jmp near 053feh                           ; e9 e7 fd
     7919    je short 05637h                           ; 74 03
     7920    jmp near 0541eh                           ; e9 e7 fd
    79087921    mov al, byte [bp-006h]                    ; 8a 46 fa
    79097922    and AL, strict byte 0efh                  ; 24 ef
     
    79137926    mov dx, strict word 00018h                ; ba 18 00
    79147927    mov ax, strict word 00040h                ; b8 40 00
    7915     call 01660h                               ; e8 34 c0
    7916     jmp short 05614h                          ; eb e6
     7928    call 01660h                               ; e8 14 c0
     7929    jmp short 05634h                          ; eb e6
    79177930    mov al, byte [bp-006h]                    ; 8a 46 fa
    79187931    test AL, strict byte 004h                 ; a8 04
    7919     jne short 05614h                          ; 75 df
     7932    jne short 05634h                          ; 75 df
    79207933    or AL, strict byte 004h                   ; 0c 04
    79217934    mov byte [bp-008h], al                    ; 88 46 f8
     
    79247937    mov dx, strict word 00018h                ; ba 18 00
    79257938    mov ax, strict word 00040h                ; b8 40 00
    7926     call 01660h                               ; e8 19 c0
    7927     jmp short 05614h                          ; eb cb
     7939    call 01660h                               ; e8 f9 bf
     7940    jmp short 05634h                          ; eb cb
    79287941    mov al, byte [bp-006h]                    ; 8a 46 fa
    79297942    and AL, strict byte 0fbh                  ; 24 fb
    7930     jmp short 05637h                          ; eb e7
     7943    jmp short 05657h                          ; eb e7
    79317944    mov al, byte [bp-00ch]                    ; 8a 46 f4
    79327945    and AL, strict byte 00ch                  ; 24 0c
    79337946    cmp AL, strict byte 00ch                  ; 3c 0c
    7934     jne short 0566ah                          ; 75 11
     7947    jne short 0568ah                          ; 75 11
    79357948    mov bx, 01234h                            ; bb 34 12
    79367949    mov dx, strict word 00072h                ; ba 72 00
    79377950    mov ax, strict word 00040h                ; b8 40 00
    7938     call 0167ch                               ; e8 17 c0
     7951    call 0167ch                               ; e8 f7 bf
    79397952    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    79407953    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7941     je short 05681h                           ; 74 11
     7954    je short 056a1h                           ; 74 11
    79427955    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    79437956    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    79457958    mov bx, ax                                ; 89 c3
    79467959    mov dx, strict word 00018h                ; ba 18 00
    7947     jmp near 05419h                           ; e9 98 fd
     7960    jmp near 05439h                           ; e9 98 fd
    79487961    mov al, byte [bp-004h]                    ; 8a 46 fc
    79497962    test AL, strict byte 080h                 ; a8 80
    7950     je short 056bfh                           ; 74 37
     7963    je short 056dfh                           ; 74 37
    79517964    cmp AL, strict byte 0fah                  ; 3c fa
    7952     jne short 0569eh                          ; 75 12
     7965    jne short 056beh                          ; 75 12
    79537966    mov dx, 00097h                            ; ba 97 00
    79547967    mov ax, strict word 00040h                ; b8 40 00
    7955     call 01652h                               ; e8 bd bf
     7968    call 01652h                               ; e8 9d bf
    79567969    mov bl, al                                ; 88 c3
    79577970    or bl, 010h                               ; 80 cb 10
    79587971    xor bh, bh                                ; 30 ff
    7959     jmp short 056b4h                          ; eb 16
     7972    jmp short 056d4h                          ; eb 16
    79607973    cmp AL, strict byte 0feh                  ; 3c fe
    7961     je short 056a5h                           ; 74 03
    7962     jmp near 053feh                           ; e9 59 fd
     7974    je short 056c5h                           ; 74 03
     7975    jmp near 0541eh                           ; e9 59 fd
    79637976    mov dx, 00097h                            ; ba 97 00
    79647977    mov ax, strict word 00040h                ; b8 40 00
    7965     call 01652h                               ; e8 a4 bf
     7978    call 01652h                               ; e8 84 bf
    79667979    or AL, strict byte 020h                   ; 0c 20
    79677980    xor ah, ah                                ; 30 e4
     
    79697982    mov dx, 00097h                            ; ba 97 00
    79707983    mov ax, strict word 00040h                ; b8 40 00
    7971     call 01660h                               ; e8 a3 bf
    7972     jmp short 056a2h                          ; eb e3
     7984    call 01660h                               ; e8 83 bf
     7985    jmp short 056c2h                          ; eb e3
    79737986    cmp byte [bp-004h], 058h                  ; 80 7e fc 58
    7974     jbe short 056e7h                          ; 76 22
    7975     mov bx, 00da4h                            ; bb a4 0d
     7987    jbe short 05707h                          ; 76 22
     7988    mov bx, 00da0h                            ; bb a0 0d
    79767989    mov cx, ds                                ; 8c d9
    79777990    mov ax, strict word 00004h                ; b8 04 00
    7978     call 01933h                               ; e8 63 c2
     7991    call 01933h                               ; e8 43 c2
    79797992    mov al, byte [bp-004h]                    ; 8a 46 fc
    79807993    xor ah, ah                                ; 30 e4
     
    79847997    mov ax, strict word 00004h                ; b8 04 00
    79857998    push ax                                   ; 50
    7986     call 01976h                               ; e8 95 c2
     7999    call 01976h                               ; e8 75 c2
    79878000    add sp, strict byte 00006h                ; 83 c4 06
    7988     jmp near 0541fh                           ; e9 38 fd
     8001    jmp near 0543fh                           ; e9 38 fd
    79898002    mov al, byte [bp-00eh]                    ; 8a 46 f2
    79908003    test AL, strict byte 008h                 ; a8 08
    7991     je short 05708h                           ; 74 1a
     8004    je short 05728h                           ; 74 1a
    79928005    mov al, byte [bp-004h]                    ; 8a 46 fc
    79938006    xor ah, ah                                ; 30 e4
     
    79958008    imul bx                                   ; f7 eb
    79968009    mov bx, ax                                ; 89 c3
    7997     mov al, byte [bx+00df8h]                  ; 8a 87 f8 0d
     8010    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
    79988011    mov byte [bp-012h], al                    ; 88 46 ee
    7999     mov al, byte [bx+00df9h]                  ; 8a 87 f9 0d
    8000     jmp near 057bah                           ; e9 b2 00
     8012    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
     8013    jmp near 057dah                           ; e9 b2 00
    80018014    test AL, strict byte 004h                 ; a8 04
    8002     je short 05726h                           ; 74 1a
     8015    je short 05746h                           ; 74 1a
     8016    mov al, byte [bp-004h]                    ; 8a 46 fc
     8017    xor ah, ah                                ; 30 e4
     8018    mov dx, strict word 0000ah                ; ba 0a 00
     8019    imul dx                                   ; f7 ea
     8020    mov bx, ax                                ; 89 c3
     8021    mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
     8022    mov byte [bp-012h], al                    ; 88 46 ee
     8023    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
     8024    jmp near 057dah                           ; e9 94 00
     8025    mov al, byte [bp-010h]                    ; 8a 46 f0
     8026    and AL, strict byte 002h                  ; 24 02
     8027    test al, al                               ; 84 c0
     8028    jbe short 05769h                          ; 76 1a
     8029    mov al, byte [bp-004h]                    ; 8a 46 fc
     8030    cmp AL, strict byte 047h                  ; 3c 47
     8031    jc short 05769h                           ; 72 13
     8032    cmp AL, strict byte 053h                  ; 3c 53
     8033    jnbe short 05769h                         ; 77 0f
     8034    mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
     8035    xor ah, ah                                ; 30 e4
     8036    mov dx, strict word 0000ah                ; ba 0a 00
     8037    imul dx                                   ; f7 ea
     8038    mov bx, ax                                ; 89 c3
     8039    jmp short 057d6h                          ; eb 6d
     8040    test byte [bp-00eh], 003h                 ; f6 46 f2 03
     8041    je short 057a7h                           ; 74 38
    80038042    mov al, byte [bp-004h]                    ; 8a 46 fc
    80048043    xor ah, ah                                ; 30 e4
     
    80078046    mov bx, ax                                ; 89 c3
    80088047    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    8009     mov byte [bp-012h], al                    ; 88 46 ee
    8010     mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
    8011     jmp near 057bah                           ; e9 94 00
    8012     mov al, byte [bp-010h]                    ; 8a 46 f0
    8013     and AL, strict byte 002h                  ; 24 02
    8014     test al, al                               ; 84 c0
    8015     jbe short 05749h                          ; 76 1a
    8016     mov al, byte [bp-004h]                    ; 8a 46 fc
    8017     cmp AL, strict byte 047h                  ; 3c 47
    8018     jc short 05749h                           ; 72 13
    8019     cmp AL, strict byte 053h                  ; 3c 53
    8020     jnbe short 05749h                         ; 77 0f
    8021     mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
    8022     xor ah, ah                                ; 30 e4
    8023     mov dx, strict word 0000ah                ; ba 0a 00
    8024     imul dx                                   ; f7 ea
    8025     mov bx, ax                                ; 89 c3
    8026     jmp short 057b6h                          ; eb 6d
    8027     test byte [bp-00eh], 003h                 ; f6 46 f2 03
    8028     je short 05787h                           ; 74 38
    8029     mov al, byte [bp-004h]                    ; 8a 46 fc
    8030     xor ah, ah                                ; 30 e4
    8031     mov dx, strict word 0000ah                ; ba 0a 00
    8032     imul dx                                   ; f7 ea
    8033     mov bx, ax                                ; 89 c3
    8034     mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
    80358048    xor ah, ah                                ; 30 e4
    80368049    mov dx, ax                                ; 89 c2
    80378050    mov al, byte [bp-00eh]                    ; 8a 46 f2
    80388051    test ax, dx                               ; 85 d0
    8039     je short 05777h                           ; 74 0d
    8040     mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
     8052    je short 05797h                           ; 74 0d
     8053    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    80418054    mov byte [bp-012h], al                    ; 88 46 ee
    8042     mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
    8043     jmp short 05782h                          ; eb 0b
    8044     mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
     8055    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
     8056    jmp short 057a2h                          ; eb 0b
     8057    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    80458058    mov byte [bp-012h], al                    ; 88 46 ee
    8046     mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
     8059    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    80478060    mov byte [bp-004h], al                    ; 88 46 fc
    8048     jmp short 057bdh                          ; eb 36
     8061    jmp short 057ddh                          ; eb 36
    80498062    mov al, byte [bp-004h]                    ; 8a 46 fc
    80508063    xor ah, ah                                ; 30 e4
     
    80528065    imul bx                                   ; f7 eb
    80538066    mov bx, ax                                ; 89 c3
    8054     mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
     8067    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
    80558068    xor ah, ah                                ; 30 e4
    80568069    mov dx, ax                                ; 89 c2
    80578070    mov al, byte [bp-00eh]                    ; 8a 46 f2
    80588071    test ax, dx                               ; 85 d0
    8059     je short 057afh                           ; 74 0d
    8060     mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
     8072    je short 057cfh                           ; 74 0d
     8073    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    80618074    mov byte [bp-012h], al                    ; 88 46 ee
    8062     mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
    8063     jmp short 057bah                          ; eb 0b
    8064     mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
     8075    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
     8076    jmp short 057dah                          ; eb 0b
     8077    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    80658078    mov byte [bp-012h], al                    ; 88 46 ee
    8066     mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
     8079    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
    80678080    mov byte [bp-004h], al                    ; 88 46 fc
    80688081    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8069     jne short 057e2h                          ; 75 1f
     8082    jne short 05802h                          ; 75 1f
    80708083    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    8071     jne short 057e2h                          ; 75 19
    8072     mov bx, 00da4h                            ; bb a4 0d
     8084    jne short 05802h                          ; 75 19
     8085    mov bx, 00da0h                            ; bb a0 0d
    80738086    mov cx, ds                                ; 8c d9
    80748087    mov ax, strict word 00004h                ; b8 04 00
    8075     call 01933h                               ; e8 5f c1
     8088    call 01933h                               ; e8 3f c1
    80768089    mov ax, 005d8h                            ; b8 d8 05
    80778090    push ax                                   ; 50
    80788091    mov ax, strict word 00004h                ; b8 04 00
    80798092    push ax                                   ; 50
    8080     call 01976h                               ; e8 97 c1
     8093    call 01976h                               ; e8 77 c1
    80818094    add sp, strict byte 00004h                ; 83 c4 04
    80828095    mov bl, byte [bp-012h]                    ; 8a 5e ee
     
    80858098    xor ah, ah                                ; 30 e4
    80868099    mov dx, bx                                ; 89 da
    8087     jmp near 055ddh                           ; e9 ec fd
    8088 dequeue_key_:                                ; 0xf57f1 LB 0x94
     8100    jmp near 055fdh                           ; e9 ec fd
     8101dequeue_key_:                                ; 0xf5811 LB 0x94
    80898102    push bp                                   ; 55
    80908103    mov bp, sp                                ; 89 e5
     
    80998112    mov dx, strict word 0001ah                ; ba 1a 00
    81008113    mov ax, strict word 00040h                ; b8 40 00
    8101     call 0166eh                               ; e8 63 be
     8114    call 0166eh                               ; e8 43 be
    81028115    mov bx, ax                                ; 89 c3
    81038116    mov dx, strict word 0001ch                ; ba 1c 00
    81048117    mov ax, strict word 00040h                ; b8 40 00
    8105     call 0166eh                               ; e8 58 be
     8118    call 0166eh                               ; e8 38 be
    81068119    cmp bx, ax                                ; 39 c3
    8107     je short 05857h                           ; 74 3d
     8120    je short 05877h                           ; 74 3d
    81088121    mov dx, bx                                ; 89 da
    81098122    mov ax, strict word 00040h                ; b8 40 00
    8110     call 01652h                               ; e8 30 be
     8123    call 01652h                               ; e8 10 be
    81118124    mov cl, al                                ; 88 c1
    81128125    lea dx, [bx+001h]                         ; 8d 57 01
    81138126    mov ax, strict word 00040h                ; b8 40 00
    8114     call 01652h                               ; e8 25 be
     8127    call 01652h                               ; e8 05 be
    81158128    mov es, [bp-008h]                         ; 8e 46 f8
    81168129    mov byte [es:si], cl                      ; 26 88 0c
     
    81188131    mov byte [es:di], al                      ; 26 88 05
    81198132    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    8120     je short 05852h                           ; 74 13
     8133    je short 05872h                           ; 74 13
    81218134    inc bx                                    ; 43
    81228135    inc bx                                    ; 43
    81238136    cmp bx, strict byte 0003eh                ; 83 fb 3e
    8124     jc short 05849h                           ; 72 03
     8137    jc short 05869h                           ; 72 03
    81258138    mov bx, strict word 0001eh                ; bb 1e 00
    81268139    mov dx, strict word 0001ah                ; ba 1a 00
    81278140    mov ax, strict word 00040h                ; b8 40 00
    8128     call 0167ch                               ; e8 2a be
     8141    call 0167ch                               ; e8 0a be
    81298142    mov ax, strict word 00001h                ; b8 01 00
    8130     jmp short 05859h                          ; eb 02
     8143    jmp short 05879h                          ; eb 02
    81318144    xor ax, ax                                ; 31 c0
    81328145    lea sp, [bp-004h]                         ; 8d 66 fc
     
    81398152    or cl, byte [bx+di]                       ; 0a 09
    81408153    add ax, 00102h                            ; 05 02 01
    8141     add byte [di+04859h], cl                  ; 00 8d 59 48
     8154    add byte [di+06859h], ch                  ; 00 ad 59 68
    81428155    pop cx                                    ; 59
    8143     fstp qword [bx+di+022h]                   ; dd 59 22
     8156    std                                       ; fd
     8157    pop cx                                    ; 59
     8158    inc dx                                    ; 42
    81448159    pop dx                                    ; 5a
    8145     xor ax, 05c5ah                            ; 35 5a 5c
     8160    push bp                                   ; 55
    81468161    pop dx                                    ; 5a
    8147     pop edx                                   ; 66 5a
    8148     aad 05ah                                  ; d5 5a
    8149     or AL, strict byte 05bh                   ; 0c 5b
    8150     cmp ax, 0745bh                            ; 3d 5b 74
     8162    jl short 058f3h                           ; 7c 5a
     8163    xchg byte [bp+si-00bh], bl                ; 86 5a f5
     8164    pop dx                                    ; 5a
     8165    sub AL, strict byte 05bh                  ; 2c 5b
     8166    pop bp                                    ; 5d
    81518167    pop bx                                    ; 5b
    8152     xlatb                                     ; d7
     8168    xchg sp, ax                               ; 94
     8169    pop bx                                    ; 5b
     8170    db  0f7h
    81538171    pop cx                                    ; 59
    8154 _int16_function:                             ; 0xf5885 LB 0x2fa
     8172_int16_function:                             ; 0xf58a5 LB 0x2fa
    81558173    push bp                                   ; 55
    81568174    mov bp, sp                                ; 89 e5
     
    81598177    mov dx, strict word 00017h                ; ba 17 00
    81608178    mov ax, strict word 00040h                ; b8 40 00
    8161     call 01652h                               ; e8 bd bd
     8179    call 01652h                               ; e8 9d bd
    81628180    mov cl, al                                ; 88 c1
    81638181    mov bl, al                                ; 88 c3
    81648182    mov dx, 00097h                            ; ba 97 00
    81658183    mov ax, strict word 00040h                ; b8 40 00
    8166     call 01652h                               ; e8 b0 bd
     8184    call 01652h                               ; e8 90 bd
    81678185    mov bh, al                                ; 88 c7
    81688186    mov dl, cl                                ; 88 ca
     
    81758193    xor al, dl                                ; 30 d0
    81768194    test ax, ax                               ; 85 c0
    8177     je short 05927h                           ; 74 6e
     8195    je short 05947h                           ; 74 6e
    81788196    cli                                       ; fa
    81798197    mov AL, strict byte 0edh                  ; b0 ed
     
    81858203    ; sub ah, ah                                ; 2a e4
    81868204    test AL, strict byte 001h                 ; a8 01
    8187     jne short 058d2h                          ; 75 08
     8205    jne short 058f2h                          ; 75 08
    81888206    mov AL, strict byte 021h                  ; b0 21
    81898207    mov dx, 00080h                            ; ba 80 00
    81908208    out DX, AL                                ; ee
    8191     jmp short 058c0h                          ; eb ee
     8209    jmp short 058e0h                          ; eb ee
    81928210    mov dx, strict word 00060h                ; ba 60 00
    81938211    in AL, DX                                 ; ec
     
    81958213    ; sub ah, ah                                ; 2a e4
    81968214    cmp ax, 000fah                            ; 3d fa 00
    8197     jne short 05926h                          ; 75 49
     8215    jne short 05946h                          ; 75 49
    81988216    and bh, 0c8h                              ; 80 e7 c8
    81998217    mov al, bl                                ; 88 d8
     
    82188236    ; sub ah, ah                                ; 2a e4
    82198237    test AL, strict byte 001h                 ; a8 01
    8220     jne short 05913h                          ; 75 08
     8238    jne short 05933h                          ; 75 08
    82218239    mov AL, strict byte 021h                  ; b0 21
    82228240    mov dx, 00080h                            ; ba 80 00
    82238241    out DX, AL                                ; ee
    8224     jmp short 05901h                          ; eb ee
     8242    jmp short 05921h                          ; eb ee
    82258243    mov dx, strict word 00060h                ; ba 60 00
    82268244    in AL, DX                                 ; ec
     
    82318249    mov dx, 00097h                            ; ba 97 00
    82328250    mov ax, strict word 00040h                ; b8 40 00
    8233     call 01660h                               ; e8 3a bd
     8251    call 01660h                               ; e8 1a bd
    82348252    sti                                       ; fb
    82358253    mov CL, strict byte 008h                  ; b1 08
     
    82378255    shr ax, CL                                ; d3 e8
    82388256    cmp ax, 000a2h                            ; 3d a2 00
    8239     jnbe short 0598dh                         ; 77 5a
     8257    jnbe short 059adh                         ; 77 5a
    82408258    push CS                                   ; 0e
    82418259    pop ES                                    ; 07
    82428260    mov cx, strict word 0000ch                ; b9 0c 00
    8243     mov di, 05862h                            ; bf 62 58
     8261    mov di, 05882h                            ; bf 82 58
    82448262    repne scasb                               ; f2 ae
    82458263    sal cx, 1                                 ; d1 e1
    82468264    mov di, cx                                ; 89 cf
    8247     mov ax, word [cs:di+0586dh]               ; 2e 8b 85 6d 58
     8265    mov ax, word [cs:di+0588dh]               ; 2e 8b 85 8d 58
    82488266    jmp ax                                    ; ff e0
    82498267    mov ax, strict word 00001h                ; b8 01 00
     
    82538271    mov dx, ss                                ; 8c d2
    82548272    lea ax, [bp-006h]                         ; 8d 46 fa
    8255     call 057f1h                               ; e8 98 fe
     8273    call 05811h                               ; e8 98 fe
    82568274    test ax, ax                               ; 85 c0
    8257     jne short 0596bh                          ; 75 0e
     8275    jne short 0598bh                          ; 75 0e
    82588276    mov ax, 0060fh                            ; b8 0f 06
    82598277    push ax                                   ; 50
    82608278    mov ax, strict word 00007h                ; b8 07 00
    82618279    push ax                                   ; 50
    8262     call 01976h                               ; e8 0e c0
     8280    call 01976h                               ; e8 ee bf
    82638281    add sp, strict byte 00004h                ; 83 c4 04
    82648282    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8265     je short 05977h                           ; 74 06
     8283    je short 05997h                           ; 74 06
    82668284    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8267     je short 0597dh                           ; 74 06
     8285    je short 0599dh                           ; 74 06
    82688286    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    8269     jne short 05981h                          ; 75 04
     8287    jne short 059a1h                          ; 75 04
    82708288    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    82718289    mov ah, byte [bp-006h]                    ; 8a 66 fa
    82728290    mov al, byte [bp-008h]                    ; 8a 46 f8
    82738291    mov word [bp+012h], ax                    ; 89 46 12
    8274     jmp near 059d7h                           ; e9 4a 00
    8275     mov bx, 00da4h                            ; bb a4 0d
     8292    jmp near 059f7h                           ; e9 4a 00
     8293    mov bx, 00da0h                            ; bb a0 0d
    82768294    mov cx, ds                                ; 8c d9
    82778295    mov ax, strict word 00004h                ; b8 04 00
    8278     call 01933h                               ; e8 9b bf
     8296    call 01933h                               ; e8 7b bf
    82798297    mov CL, strict byte 008h                  ; b1 08
    82808298    mov ax, word [bp+012h]                    ; 8b 46 12
     
    82858303    mov ax, strict word 00004h                ; b8 04 00
    82868304    push ax                                   ; 50
    8287     call 01976h                               ; e8 cb bf
     8305    call 01976h                               ; e8 ab bf
    82888306    add sp, strict byte 00006h                ; 83 c4 06
    8289     mov bx, 00da4h                            ; bb a4 0d
     8307    mov bx, 00da0h                            ; bb a0 0d
    82908308    mov cx, ds                                ; 8c d9
    82918309    mov ax, strict word 00004h                ; b8 04 00
    8292     call 01933h                               ; e8 7a bf
     8310    call 01933h                               ; e8 5a bf
    82938311    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82948312    push ax                                   ; 50
     
    83038321    mov ax, strict word 00004h                ; b8 04 00
    83048322    push ax                                   ; 50
    8305     call 01976h                               ; e8 a2 bf
     8323    call 01976h                               ; e8 82 bf
    83068324    add sp, strict byte 0000ch                ; 83 c4 0c
    83078325    lea sp, [bp-002h]                         ; 8d 66 fe
     
    83178335    mov dx, ss                                ; 8c d2
    83188336    lea ax, [bp-006h]                         ; 8d 46 fa
    8319     call 057f1h                               ; e8 fe fd
     8337    call 05811h                               ; e8 fe fd
    83208338    test ax, ax                               ; 85 c0
    8321     jne short 059fdh                          ; 75 06
     8339    jne short 05a1dh                          ; 75 06
    83228340    or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
    8323     jmp short 059d7h                          ; eb da
     8341    jmp short 059f7h                          ; eb da
    83248342    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8325     je short 05a09h                           ; 74 06
     8343    je short 05a29h                           ; 74 06
    83268344    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8327     je short 05a0fh                           ; 74 06
     8345    je short 05a2fh                           ; 74 06
    83288346    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    8329     jne short 05a13h                          ; 75 04
     8347    jne short 05a33h                          ; 75 04
    83308348    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    83318349    mov dh, byte [bp-006h]                    ; 8a 76 fa
     
    83338351    mov word [bp+012h], dx                    ; 89 56 12
    83348352    and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
    8335     jmp short 059d7h                          ; eb b5
     8353    jmp short 059f7h                          ; eb b5
    83368354    mov dx, strict word 00017h                ; ba 17 00
    83378355    mov ax, strict word 00040h                ; b8 40 00
    8338     call 01652h                               ; e8 27 bc
     8356    call 01652h                               ; e8 07 bc
    83398357    mov dx, word [bp+012h]                    ; 8b 56 12
    83408358    mov dl, al                                ; 88 c2
    83418359    mov word [bp+012h], dx                    ; 89 56 12
    8342     jmp short 059d7h                          ; eb a2
     8360    jmp short 059f7h                          ; eb a2
    83438361    mov dl, byte [bp+010h]                    ; 8a 56 10
    83448362    xor dh, dh                                ; 30 f6
     
    83478365    shr ax, CL                                ; d3 e8
    83488366    xor ah, ah                                ; 30 e4
    8349     call 05286h                               ; e8 40 f8
     8367    call 052a6h                               ; e8 40 f8
    83508368    test ax, ax                               ; 85 c0
    8351     jne short 05a54h                          ; 75 0a
     8369    jne short 05a74h                          ; 75 0a
    83528370    mov ax, word [bp+012h]                    ; 8b 46 12
    83538371    xor al, al                                ; 30 c0
    83548372    or AL, strict byte 001h                   ; 0c 01
    8355     jmp near 05987h                           ; e9 33 ff
     8373    jmp near 059a7h                           ; e9 33 ff
    83568374    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8357     jmp near 059d7h                           ; e9 7b ff
     8375    jmp near 059f7h                           ; e9 7b ff
    83588376    mov ax, word [bp+012h]                    ; 8b 46 12
    83598377    xor al, al                                ; 30 c0
    83608378    or AL, strict byte 030h                   ; 0c 30
    8361     jmp near 05987h                           ; e9 21 ff
     8379    jmp near 059a7h                           ; e9 21 ff
    83628380    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    83638381    xor cx, cx                                ; 31 c9
     
    83728390    ; sub ah, ah                                ; 2a e4
    83738391    test AL, strict byte 001h                 ; a8 01
    8374     jne short 05a8dh                          ; 75 0d
     8392    jne short 05aadh                          ; 75 0d
    83758393    dec bx                                    ; 4b
    83768394    test bx, bx                               ; 85 db
    8377     jbe short 05a8dh                          ; 76 08
     8395    jbe short 05aadh                          ; 76 08
    83788396    mov dx, 00080h                            ; ba 80 00
    83798397    in AL, DX                                 ; ec
    83808398    db  02ah, 0e4h
    83818399    ; sub ah, ah                                ; 2a e4
    8382     jmp short 05a76h                          ; eb e9
     8400    jmp short 05a96h                          ; eb e9
    83838401    test bx, bx                               ; 85 db
    8384     jbe short 05acfh                          ; 76 3e
     8402    jbe short 05aefh                          ; 76 3e
    83858403    mov dx, strict word 00060h                ; ba 60 00
    83868404    in AL, DX                                 ; ec
     
    83888406    ; sub ah, ah                                ; 2a e4
    83898407    cmp ax, 000fah                            ; 3d fa 00
    8390     jne short 05acfh                          ; 75 33
     8408    jne short 05aefh                          ; 75 33
    83918409    mov bx, strict word 0ffffh                ; bb ff ff
    83928410    mov dx, strict word 00064h                ; ba 64 00
     
    83958413    ; sub ah, ah                                ; 2a e4
    83968414    test AL, strict byte 001h                 ; a8 01
    8397     jne short 05ab6h                          ; 75 0d
     8415    jne short 05ad6h                          ; 75 0d
    83988416    dec bx                                    ; 4b
    83998417    test bx, bx                               ; 85 db
    8400     jbe short 05ab6h                          ; 76 08
     8418    jbe short 05ad6h                          ; 76 08
    84018419    mov dx, 00080h                            ; ba 80 00
    84028420    in AL, DX                                 ; ec
    84038421    db  02ah, 0e4h
    84048422    ; sub ah, ah                                ; 2a e4
    8405     jmp short 05a9fh                          ; eb e9
     8423    jmp short 05abfh                          ; eb e9
    84068424    test bx, bx                               ; 85 db
    8407     jbe short 05ac6h                          ; 76 0c
     8425    jbe short 05ae6h                          ; 76 0c
    84088426    mov bl, ch                                ; 88 eb
    84098427    mov dx, strict word 00060h                ; ba 60 00
     
    84158433    dec byte [bp-004h]                        ; fe 4e fc
    84168434    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8417     jnbe short 05a9ch                         ; 77 cd
     8435    jnbe short 05abch                         ; 77 cd
    84188436    mov word [bp+00ch], cx                    ; 89 4e 0c
    8419     jmp near 059d7h                           ; e9 02 ff
     8437    jmp near 059f7h                           ; e9 02 ff
    84208438    mov ax, strict word 00001h                ; b8 01 00
    84218439    push ax                                   ; 50
     
    84248442    mov dx, ss                                ; 8c d2
    84258443    lea ax, [bp-006h]                         ; 8d 46 fa
    8426     call 057f1h                               ; e8 0b fd
     8444    call 05811h                               ; e8 0b fd
    84278445    test ax, ax                               ; 85 c0
    8428     jne short 05af8h                          ; 75 0e
     8446    jne short 05b18h                          ; 75 0e
    84298447    mov ax, 0060fh                            ; b8 0f 06
    84308448    push ax                                   ; 50
    84318449    mov ax, strict word 00007h                ; b8 07 00
    84328450    push ax                                   ; 50
    8433     call 01976h                               ; e8 81 be
     8451    call 01976h                               ; e8 61 be
    84348452    add sp, strict byte 00004h                ; 83 c4 04
    84358453    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8436     jne short 05b01h                          ; 75 03
    8437     jmp near 05981h                           ; e9 80 fe
     8454    jne short 05b21h                          ; 75 03
     8455    jmp near 059a1h                           ; e9 80 fe
    84388456    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8439     jne short 05b0ah                          ; 75 03
    8440     jmp near 0597dh                           ; e9 73 fe
    8441     jmp short 05afeh                          ; eb f2
     8457    jne short 05b2ah                          ; 75 03
     8458    jmp near 0599dh                           ; e9 73 fe
     8459    jmp short 05b1eh                          ; eb f2
    84428460    mov ax, word [bp+018h]                    ; 8b 46 18
    84438461    mov word [bp+01eh], ax                    ; 89 46 1e
     
    84488466    mov dx, ss                                ; 8c d2
    84498467    lea ax, [bp-006h]                         ; 8d 46 fa
    8450     call 057f1h                               ; e8 cf fc
     8468    call 05811h                               ; e8 cf fc
    84518469    test ax, ax                               ; 85 c0
    8452     jne short 05b29h                          ; 75 03
    8453     jmp near 059f7h                           ; e9 ce fe
     8470    jne short 05b49h                          ; 75 03
     8471    jmp near 05a17h                           ; e9 ce fe
    84548472    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8455     jne short 05b32h                          ; 75 03
    8456     jmp near 05a13h                           ; e9 e1 fe
     8473    jne short 05b52h                          ; 75 03
     8474    jmp near 05a33h                           ; e9 e1 fe
    84578475    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8458     jne short 05b3bh                          ; 75 03
    8459     jmp near 05a0fh                           ; e9 d4 fe
    8460     jmp short 05b2fh                          ; eb f2
     8476    jne short 05b5bh                          ; 75 03
     8477    jmp near 05a2fh                           ; e9 d4 fe
     8478    jmp short 05b4fh                          ; eb f2
    84618479    mov dx, strict word 00017h                ; ba 17 00
    84628480    mov ax, strict word 00040h                ; b8 40 00
    8463     call 01652h                               ; e8 0c bb
     8481    call 01652h                               ; e8 ec ba
    84648482    mov dx, word [bp+012h]                    ; 8b 56 12
    84658483    mov dl, al                                ; 88 c2
     
    84678485    mov dx, strict word 00018h                ; ba 18 00
    84688486    mov ax, strict word 00040h                ; b8 40 00
    8469     call 01652h                               ; e8 fb ba
     8487    call 01652h                               ; e8 db ba
    84708488    mov bl, al                                ; 88 c3
    84718489    and bl, 073h                              ; 80 e3 73
    84728490    mov dx, 00096h                            ; ba 96 00
    84738491    mov ax, strict word 00040h                ; b8 40 00
    8474     call 01652h                               ; e8 ed ba
     8492    call 01652h                               ; e8 cd ba
    84758493    mov ah, al                                ; 88 c4
    84768494    and ah, 00ch                              ; 80 e4 0c
     
    84788496    mov dx, word [bp+012h]                    ; 8b 56 12
    84798497    mov dh, ah                                ; 88 e6
    8480     jmp near 05a30h                           ; e9 bc fe
     8498    jmp near 05a50h                           ; e9 bc fe
    84818499    mov ax, word [bp+012h]                    ; 8b 46 12
    84828500    xor ah, ah                                ; 30 e4
    84838501    or ah, 080h                               ; 80 cc 80
    8484     jmp near 05987h                           ; e9 08 fe
    8485 set_geom_lba_:                               ; 0xf5b7f LB 0xeb
     8502    jmp near 059a7h                           ; e9 08 fe
     8503set_geom_lba_:                               ; 0xf5b9f LB 0xeb
    84868504    push bx                                   ; 53
    84878505    push cx                                   ; 51
     
    85018519    mov dx, word [bp+00ch]                    ; 8b 56 0c
    85028520    mov si, strict word 00020h                ; be 20 00
    8503     call 0a180h                               ; e8 d2 45
     8521    call 0a1a0h                               ; e8 d2 45
    85048522    test ax, ax                               ; 85 c0
    8505     jne short 05bbeh                          ; 75 0c
     8523    jne short 05bdeh                          ; 75 0c
    85068524    test bx, bx                               ; 85 db
    8507     jne short 05bbeh                          ; 75 08
     8525    jne short 05bdeh                          ; 75 08
    85088526    test cx, cx                               ; 85 c9
    8509     jne short 05bbeh                          ; 75 04
     8527    jne short 05bdeh                          ; 75 04
    85108528    test dx, dx                               ; 85 d2
    8511     je short 05bc5h                           ; 74 07
     8529    je short 05be5h                           ; 74 07
    85128530    mov bx, strict word 0ffffh                ; bb ff ff
    85138531    mov si, bx                                ; 89 de
    8514     jmp short 05bcbh                          ; eb 06
     8532    jmp short 05bebh                          ; eb 06
    85158533    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    85168534    mov si, word [bp+00eh]                    ; 8b 76 0e
    85178535    mov word [bp-004h], bx                    ; 89 5e fc
    85188536    xor bx, bx                                ; 31 db
    8519     jmp short 05bd7h                          ; eb 05
     8537    jmp short 05bf7h                          ; eb 05
    85208538    cmp bx, strict byte 00004h                ; 83 fb 04
    8521     jnl short 05bfah                          ; 7d 23
     8539    jnl short 05c1ah                          ; 7d 23
    85228540    mov ax, word [bp-006h]                    ; 8b 46 fa
    85238541    cmp si, ax                                ; 39 c6
    8524     jc short 05be8h                           ; 72 0a
    8525     jne short 05bf1h                          ; 75 11
     8542    jc short 05c08h                           ; 72 0a
     8543    jne short 05c11h                          ; 75 11
    85268544    mov ax, word [bp-004h]                    ; 8b 46 fc
    85278545    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8528     jnbe short 05bf1h                         ; 77 09
     8546    jnbe short 05c11h                         ; 77 09
    85298547    mov ax, word [bp-002h]                    ; 8b 46 fe
    85308548    inc ax                                    ; 40
     
    85348552    rcr word [bp-008h], 1                     ; d1 5e f8
    85358553    inc bx                                    ; 43
    8536     jmp short 05bd2h                          ; eb d8
     8554    jmp short 05bf2h                          ; eb d8
    85378555    mov ax, word [bp-002h]                    ; 8b 46 fe
    85388556    xor dx, dx                                ; 31 d2
    85398557    mov bx, strict word 0003fh                ; bb 3f 00
    85408558    xor cx, cx                                ; 31 c9
    8541     call 0a130h                               ; e8 29 45
     8559    call 0a150h                               ; e8 29 45
    85428560    mov bx, ax                                ; 89 c3
    85438561    mov cx, dx                                ; 89 d1
    85448562    mov ax, word [bp-004h]                    ; 8b 46 fc
    85458563    mov dx, si                                ; 89 f2
    8546     call 0a150h                               ; e8 3d 45
     8564    call 0a170h                               ; e8 3d 45
    85478565    mov word [es:di+002h], ax                 ; 26 89 45 02
    85488566    cmp ax, 00400h                            ; 3d 00 04
    8549     jbe short 05c22h                          ; 76 06
     8567    jbe short 05c42h                          ; 76 06
    85508568    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    85518569    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    85598577    pop bx                                    ; 5b
    85608578    retn 00008h                               ; c2 08 00
    8561     neg byte [si+007h]                        ; f6 5c 07
     8579    push SS                                   ; 16
    85628580    pop bp                                    ; 5d
    8563     das                                       ; 2f
     8581    daa                                       ; 27
    85648582    pop bp                                    ; 5d
    8565     das                                       ; 2f
     8583    dec di                                    ; 4f
    85668584    pop bp                                    ; 5d
    8567     das                                       ; 2f
     8585    dec di                                    ; 4f
    85688586    pop bp                                    ; 5d
    8569     sbb ax, 0595fh                            ; 1d 5f 59
     8587    dec di                                    ; 4f
     8588    pop bp                                    ; 5d
     8589    cmp ax, 0795fh                            ; 3d 5f 79
    85708590    pushaw                                    ; 60
    8571     pop cx                                    ; 59
     8591    jns short 05cc8h                          ; 79 60
     8592    insw                                      ; 6d
     8593    pop di                                    ; 5f
     8594    push bx                                   ; 53
    85728595    pushaw                                    ; 60
    8573     dec bp                                    ; 4d
    8574     pop di                                    ; 5f
    8575     xor sp, word [bx+si+059h]                 ; 33 60 59
     8596    jns short 05cceh                          ; 79 60
     8597    jns short 05cd0h                          ; 79 60
     8598    push bx                                   ; 53
    85768599    pushaw                                    ; 60
    8577     pop cx                                    ; 59
     8600    push bx                                   ; 53
    85788601    pushaw                                    ; 60
    8579     xor sp, word [bx+si+033h]                 ; 33 60 33
     8602    jns short 05cd6h                          ; 79 60
     8603    jns short 05cd8h                          ; 79 60
     8604    rcr word [bx+053h], CL                    ; d3 5f 53
    85808605    pushaw                                    ; 60
    8581     pop cx                                    ; 59
     8606    jns short 05cdeh                          ; 79 60
     8607    jns short 05ce0h                          ; 79 60
     8608    push bx                                   ; 53
    85828609    pushaw                                    ; 60
    8583     pop cx                                    ; 59
    8584     pushaw                                    ; 60
    8585     mov BL, strict byte 05fh                  ; b3 5f
    8586     xor sp, word [bx+si+059h]                 ; 33 60 59
    8587     pushaw                                    ; 60
    8588     pop cx                                    ; 59
    8589     pushaw                                    ; 60
    8590     xor sp, word [bx+si-01ch]                 ; 33 60 e4
    8591     pop di                                    ; 5f
    8592     pop cx                                    ; 59
    8593     pushaw                                    ; 60
    8594     pop cx                                    ; 59
    8595     pushaw                                    ; 60
    8596     pop cx                                    ; 59
    8597     pushaw                                    ; 60
    8598 _int13_harddisk:                             ; 0xf5c6a LB 0x44a
     8610    add AL, strict byte 060h                  ; 04 60
     8611    jns short 05ce6h                          ; 79 60
     8612    jns short 05ce8h                          ; 79 60
     8613    jns short 05ceah                          ; 79 60
     8614_int13_harddisk:                             ; 0xf5c8a LB 0x44a
    85998615    push bp                                   ; 55
    86008616    mov bp, sp                                ; 89 e5
     
    86038619    mov dx, strict word 0000eh                ; ba 0e 00
    86048620    mov ax, strict word 00040h                ; b8 40 00
    8605     call 0166eh                               ; e8 f1 b9
     8621    call 0166eh                               ; e8 d1 b9
    86068622    mov si, 00122h                            ; be 22 01
    86078623    mov word [bp-006h], ax                    ; 89 46 fa
     
    86098625    mov dx, 0008eh                            ; ba 8e 00
    86108626    mov ax, strict word 00040h                ; b8 40 00
    8611     call 01660h                               ; e8 d2 b9
     8627    call 01660h                               ; e8 b2 b9
    86128628    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86138629    xor ah, ah                                ; 30 e4
    86148630    cmp ax, 00080h                            ; 3d 80 00
    8615     jc short 05c9dh                           ; 72 05
     8631    jc short 05cbdh                           ; 72 05
    86168632    cmp ax, 00090h                            ; 3d 90 00
    8617     jc short 05cbch                           ; 72 1f
     8633    jc short 05cdch                           ; 72 1f
    86188634    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86198635    xor ah, ah                                ; 30 e4
     
    86278643    mov ax, strict word 00004h                ; b8 04 00
    86288644    push ax                                   ; 50
    8629     call 01976h                               ; e8 c0 bc
     8645    call 01976h                               ; e8 a0 bc
    86308646    add sp, strict byte 0000ah                ; 83 c4 0a
    8631     jmp near 06074h                           ; e9 b8 03
     8647    jmp near 06094h                           ; e9 b8 03
    86328648    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86338649    xor ah, ah                                ; 30 e4
     
    86388654    mov byte [bp-002h], dl                    ; 88 56 fe
    86398655    cmp dl, 010h                              ; 80 fa 10
    8640     jc short 05ce3h                           ; 72 0e
     8656    jc short 05d03h                           ; 72 0e
    86418657    push ax                                   ; 50
    86428658    mov al, byte [bp+017h]                    ; 8a 46 17
     
    86458661    push ax                                   ; 50
    86468662    mov ax, 006b8h                            ; b8 b8 06
    8647     jmp short 05caeh                          ; eb cb
     8663    jmp short 05cceh                          ; eb cb
    86488664    mov al, byte [bp+017h]                    ; 8a 46 17
    86498665    xor ah, ah                                ; 30 e4
    86508666    cmp ax, strict word 00018h                ; 3d 18 00
    8651     jnbe short 05d2ch                         ; 77 3f
     8667    jnbe short 05d4ch                         ; 77 3f
    86528668    mov bx, ax                                ; 89 c3
    86538669    sal bx, 1                                 ; d1 e3
    8654     jmp word [cs:bx+05c38h]                   ; 2e ff a7 38 5c
     8670    jmp word [cs:bx+05c58h]                   ; 2e ff a7 58 5c
    86558671    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8656     jnc short 05d04h                          ; 73 08
     8672    jnc short 05d24h                          ; 73 08
    86578673    mov al, byte [bp-002h]                    ; 8a 46 fe
    86588674    xor ah, ah                                ; 30 e4
    8659     call 01db8h                               ; e8 b4 c0
    8660     jmp near 05f36h                           ; e9 2f 02
     8675    call 01db8h                               ; e8 94 c0
     8676    jmp near 05f56h                           ; e9 2f 02
    86618677    mov dx, strict word 00074h                ; ba 74 00
    86628678    mov ax, strict word 00040h                ; b8 40 00
    8663     call 01652h                               ; e8 42 b9
     8679    call 01652h                               ; e8 22 b9
    86648680    mov cl, al                                ; 88 c1
    86658681    mov dx, word [bp+016h]                    ; 8b 56 16
     
    86698685    mov dx, strict word 00074h                ; ba 74 00
    86708686    mov ax, strict word 00040h                ; b8 40 00
    8671     call 01660h                               ; e8 3b b9
     8687    call 01660h                               ; e8 1b b9
    86728688    test cl, cl                               ; 84 c9
    8673     je short 05d8bh                           ; 74 62
    8674     jmp near 0608dh                           ; e9 61 03
    8675     jmp near 06059h                           ; e9 2a 03
     8689    je short 05dabh                           ; 74 62
     8690    jmp near 060adh                           ; e9 61 03
     8691    jmp near 06079h                           ; e9 2a 03
    86768692    mov ax, word [bp+016h]                    ; 8b 46 16
    86778693    xor ah, ah                                ; 30 e4
     
    86928708    mov ax, word [bp-00ah]                    ; 8b 46 f6
    86938709    cmp ax, 00080h                            ; 3d 80 00
    8694     jnbe short 05d65h                         ; 77 04
     8710    jnbe short 05d85h                         ; 77 04
    86958711    test ax, ax                               ; 85 c0
    8696     jne short 05d8eh                          ; 75 29
    8697     mov bx, 00da4h                            ; bb a4 0d
     8712    jne short 05daeh                          ; 75 29
     8713    mov bx, 00da0h                            ; bb a0 0d
    86988714    mov cx, ds                                ; 8c d9
    86998715    mov ax, strict word 00004h                ; b8 04 00
    8700     call 01933h                               ; e8 c3 bb
     8716    call 01933h                               ; e8 a3 bb
    87018717    mov al, byte [bp+017h]                    ; 8a 46 17
    87028718    xor ah, ah                                ; 30 e4
     
    87088724    mov ax, strict word 00004h                ; b8 04 00
    87098725    push ax                                   ; 50
    8710     call 01976h                               ; e8 f1 bb
     8726    call 01976h                               ; e8 d1 bb
    87118727    add sp, strict byte 00008h                ; 83 c4 08
    8712     jmp near 06074h                           ; e9 e9 02
    8713     jmp near 05f3ah                           ; e9 ac 01
     8728    jmp near 06094h                           ; e9 e9 02
     8729    jmp near 05f5ah                           ; e9 ac 01
    87148730    mov al, byte [bp-002h]                    ; 8a 46 fe
    87158731    xor ah, ah                                ; 30 e4
     
    87248740    mov word [bp-00eh], dx                    ; 89 56 f2
    87258741    cmp ax, word [bp-00ch]                    ; 3b 46 f4
    8726     jbe short 05dbch                          ; 76 09
     8742    jbe short 05ddch                          ; 76 09
    87278743    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8728     jbe short 05dbch                          ; 76 04
     8744    jbe short 05ddch                          ; 76 04
    87298745    cmp di, dx                                ; 39 d7
    8730     jbe short 05dedh                          ; 76 31
    8731     mov bx, 00da4h                            ; bb a4 0d
     8746    jbe short 05e0dh                          ; 76 31
     8747    mov bx, 00da0h                            ; bb a0 0d
    87328748    mov cx, ds                                ; 8c d9
    87338749    mov ax, strict word 00004h                ; b8 04 00
    8734     call 01933h                               ; e8 6c bb
     8750    call 01933h                               ; e8 4c bb
    87358751    push di                                   ; 57
    87368752    push word [bp-008h]                       ; ff 76 f8
     
    87478763    mov ax, strict word 00004h                ; b8 04 00
    87488764    push ax                                   ; 50
    8749     call 01976h                               ; e8 8f bb
     8765    call 01976h                               ; e8 6f bb
    87508766    add sp, strict byte 00010h                ; 83 c4 10
    8751     jmp near 06074h                           ; e9 87 02
     8767    jmp near 06094h                           ; e9 87 02
    87528768    mov al, byte [bp+017h]                    ; 8a 46 17
    87538769    xor ah, ah                                ; 30 e4
    87548770    cmp ax, strict word 00004h                ; 3d 04 00
    8755     je short 05e17h                           ; 74 20
     8771    je short 05e37h                           ; 74 20
    87568772    mov al, byte [bp-002h]                    ; 8a 46 fe
    87578773    mov dx, strict word 0001ch                ; ba 1c 00
     
    87618777    add bx, ax                                ; 01 c3
    87628778    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8763     jne short 05e20h                          ; 75 14
     8779    jne short 05e40h                          ; 75 14
    87648780    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    87658781    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    8766     je short 05e1ah                           ; 74 05
    8767     jmp short 05e20h                          ; eb 09
    8768     jmp near 05f36h                           ; e9 1c 01
     8782    je short 05e3ah                           ; 74 05
     8783    jmp short 05e40h                          ; eb 09
     8784    jmp near 05f56h                           ; e9 1c 01
    87698785    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8770     jc short 05e4fh                           ; 72 2f
     8786    jc short 05e6fh                           ; 72 2f
    87718787    mov ax, word [bp-00ch]                    ; 8b 46 f4
    87728788    xor dx, dx                                ; 31 d2
    87738789    mov bx, cx                                ; 89 cb
    87748790    xor cx, cx                                ; 31 c9
    8775     call 0a130h                               ; e8 04 43
     8791    call 0a150h                               ; e8 04 43
    87768792    xor bx, bx                                ; 31 db
    87778793    add ax, word [bp-008h]                    ; 03 46 f8
     
    87798795    mov bx, word [bp-00eh]                    ; 8b 5e f2
    87808796    xor cx, cx                                ; 31 c9
    8781     call 0a130h                               ; e8 f5 42
     8797    call 0a150h                               ; e8 f5 42
    87828798    xor bx, bx                                ; 31 db
    87838799    add ax, di                                ; 01 f8
     
    88368852    mov word [bp+016h], bx                    ; 89 5e 16
    88378853    test dl, dl                               ; 84 d2
    8838     je short 05f36h                           ; 74 4a
    8839     mov bx, 00da4h                            ; bb a4 0d
     8854    je short 05f56h                           ; 74 4a
     8855    mov bx, 00da0h                            ; bb a0 0d
    88408856    mov cx, ds                                ; 8c d9
    88418857    mov ax, strict word 00004h                ; b8 04 00
    8842     call 01933h                               ; e8 3c ba
     8858    call 01933h                               ; e8 1c ba
    88438859    mov al, dl                                ; 88 d0
    88448860    xor ah, ah                                ; 30 e4
     
    88528868    mov ax, strict word 00004h                ; b8 04 00
    88538869    push ax                                   ; 50
    8854     call 01976h                               ; e8 67 ba
     8870    call 01976h                               ; e8 47 ba
    88558871    add sp, strict byte 0000ah                ; 83 c4 0a
    88568872    mov ax, word [bp+016h]                    ; 8b 46 16
    88578873    xor ah, ah                                ; 30 e4
    88588874    or ah, 00ch                               ; 80 cc 0c
    8859     jmp near 0607ch                           ; e9 5f 01
    8860     mov bx, 00da4h                            ; bb a4 0d
     8875    jmp near 0609ch                           ; e9 5f 01
     8876    mov bx, 00da0h                            ; bb a0 0d
    88618877    mov cx, ds                                ; 8c d9
    88628878    mov ax, strict word 00004h                ; b8 04 00
    8863     call 01933h                               ; e8 0b ba
     8879    call 01933h                               ; e8 eb b9
    88648880    mov ax, 0077ah                            ; b8 7a 07
    88658881    push ax                                   ; 50
    88668882    mov ax, strict word 00004h                ; b8 04 00
    88678883    push ax                                   ; 50
    8868     call 01976h                               ; e8 43 ba
     8884    call 01976h                               ; e8 23 ba
    88698885    add sp, strict byte 00004h                ; 83 c4 04
    88708886    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    88728888    mov dx, strict word 00074h                ; ba 74 00
    88738889    mov ax, strict word 00040h                ; b8 40 00
    8874     call 01660h                               ; e8 1b b7
     8890    call 01660h                               ; e8 fb b6
    88758891    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    88768892    mov sp, bp                                ; 89 ec
     
    89158931    or ax, dx                                 ; 09 d0
    89168932    mov word [bp+012h], ax                    ; 89 46 12
    8917     jmp short 05f36h                          ; eb 83
     8933    jmp short 05f56h                          ; eb 83
    89188934    mov al, byte [bp-002h]                    ; 8a 46 fe
    89198935    cwd                                       ; 99
     
    89328948    and AL, strict byte 0c0h                  ; 24 c0
    89338949    cmp AL, strict byte 040h                  ; 3c 40
    8934     jne short 05fd9h                          ; 75 03
    8935     jmp near 05f36h                           ; e9 5d ff
     8950    jne short 05ff9h                          ; 75 03
     8951    jmp near 05f56h                           ; e9 5d ff
    89368952    mov ax, word [bp+016h]                    ; 8b 46 16
    89378953    xor ah, ah                                ; 30 e4
    89388954    or ah, 0aah                               ; 80 cc aa
    8939     jmp near 0607ch                           ; e9 98 00
     8955    jmp near 0609ch                           ; e9 98 00
    89408956    mov al, byte [bp-002h]                    ; 8a 46 fe
    89418957    xor ah, ah                                ; 30 e4
     
    89538969    mov bx, word [bp-008h]                    ; 8b 5e f8
    89548970    xor cx, cx                                ; 31 c9
    8955     call 0a130h                               ; e8 1e 41
     8971    call 0a150h                               ; e8 1e 41
    89568972    mov bx, di                                ; 89 fb
    89578973    xor cx, cx                                ; 31 c9
    8958     call 0a130h                               ; e8 17 41
     8974    call 0a150h                               ; e8 17 41
    89598975    mov word [bp-010h], ax                    ; 89 46 f0
    89608976    mov word [bp-004h], dx                    ; 89 56 fc
     
    89658981    or ah, 003h                               ; 80 cc 03
    89668982    mov word [bp+016h], ax                    ; 89 46 16
    8967     jmp near 05f3ah                           ; e9 07 ff
    8968     mov bx, 00da4h                            ; bb a4 0d
     8983    jmp near 05f5ah                           ; e9 07 ff
     8984    mov bx, 00da0h                            ; bb a0 0d
    89698985    mov cx, ds                                ; 8c d9
    89708986    mov ax, strict word 00004h                ; b8 04 00
    8971     call 01933h                               ; e8 f5 b8
     8987    call 01933h                               ; e8 d5 b8
    89728988    mov al, byte [bp+017h]                    ; 8a 46 17
    89738989    xor ah, ah                                ; 30 e4
     
    89798995    mov ax, strict word 00004h                ; b8 04 00
    89808996    push ax                                   ; 50
    8981     call 01976h                               ; e8 23 b9
     8997    call 01976h                               ; e8 03 b9
    89828998    add sp, strict byte 00008h                ; 83 c4 08
    8983     jmp near 05f36h                           ; e9 dd fe
    8984     mov bx, 00da4h                            ; bb a4 0d
     8999    jmp near 05f56h                           ; e9 dd fe
     9000    mov bx, 00da0h                            ; bb a0 0d
    89859001    mov cx, ds                                ; 8c d9
    89869002    mov ax, strict word 00004h                ; b8 04 00
    8987     call 01933h                               ; e8 cf b8
     9003    call 01933h                               ; e8 af b8
    89889004    mov al, byte [bp+017h]                    ; 8a 46 17
    89899005    xor ah, ah                                ; 30 e4
     
    89929008    push ax                                   ; 50
    89939009    mov ax, 007c7h                            ; b8 c7 07
    8994     jmp near 05d7dh                           ; e9 09 fd
     9010    jmp near 05d9dh                           ; e9 09 fd
    89959011    mov ax, word [bp+016h]                    ; 8b 46 16
    89969012    xor ah, ah                                ; 30 e4
     
    90019017    mov dx, strict word 00074h                ; ba 74 00
    90029018    mov ax, strict word 00040h                ; b8 40 00
    9003     call 01660h                               ; e8 d3 b5
     9019    call 01660h                               ; e8 b3 b5
    90049020    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9005     jmp near 05f49h                           ; e9 b5 fe
    9006     dec si                                    ; 4e
     9021    jmp near 05f69h                           ; e9 b5 fe
     9022    outsb                                     ; 6e
    90079023    popaw                                     ; 61
    9008     and word [bx+di-07fh], 08161h             ; 81 61 81 61 81
     9024    mov ax, word [0a161h]                     ; a1 61 a1
    90099025    popaw                                     ; 61
    9010     xchg bx, ax                               ; 93
    9011     mul byte [gs:bp+si-07fh]                  ; 65 f6 62 81
     9026    mov ax, word [0b361h]                     ; a1 61 b3
     9027    db  065h, 016h
     9028    ; gs push SS                                ; 65 16
     9029    arpl [bx+di+01c61h], sp                   ; 63 a1 61 1c
     9030    arpl [bp+di-0799bh], si                   ; 63 b3 65 86
    90129031    popaw                                     ; 61
    9013     cld                                       ; fc
    9014     bound dx, [bp+di+06665h]                  ; 62 93 65 66
     9032    xchg byte [bx+di-07ah], ah                ; 86 61 86
    90159033    popaw                                     ; 61
    9016     popad                                     ; 66 61
    9017     popad                                     ; 66 61
    9018     popad                                     ; 66 61
    9019     stosb                                     ; aa
    9020     db  065h, 066h, 061h
    9021     ; gs popad                                  ; 65 66 61
    9022     popad                                     ; 66 61
    9023 _int13_harddisk_ext:                         ; 0xf60b4 LB 0x52b
     9034    xchg byte [bx+di-036h], ah                ; 86 61 ca
     9035    xchg byte [gs:bx+di-07ah], ah             ; 65 86 61 86
     9036    popaw                                     ; 61
     9037_int13_harddisk_ext:                         ; 0xf60d4 LB 0x52b
    90249038    push bp                                   ; 55
    90259039    mov bp, sp                                ; 89 e5
     
    90279041    mov dx, strict word 0000eh                ; ba 0e 00
    90289042    mov ax, strict word 00040h                ; b8 40 00
    9029     call 0166eh                               ; e8 ab b5
     9043    call 0166eh                               ; e8 8b b5
    90309044    mov word [bp-018h], ax                    ; 89 46 e8
    90319045    mov dx, strict word 0000eh                ; ba 0e 00
    90329046    mov ax, strict word 00040h                ; b8 40 00
    9033     call 0166eh                               ; e8 9f b5
     9047    call 0166eh                               ; e8 7f b5
    90349048    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    90359049    mov word [bp-006h], ax                    ; 89 46 fa
     
    90379051    mov dx, 0008eh                            ; ba 8e 00
    90389052    mov ax, strict word 00040h                ; b8 40 00
    9039     call 01660h                               ; e8 7e b5
     9053    call 01660h                               ; e8 5e b5
    90409054    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90419055    xor ah, ah                                ; 30 e4
    90429056    cmp ax, 00080h                            ; 3d 80 00
    9043     jc short 060f1h                           ; 72 05
     9057    jc short 06111h                           ; 72 05
    90449058    cmp ax, 00090h                            ; 3d 90 00
    9045     jc short 06110h                           ; 72 1f
     9059    jc short 06130h                           ; 72 1f
    90469060    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90479061    xor ah, ah                                ; 30 e4
     
    90559069    mov ax, strict word 00004h                ; b8 04 00
    90569070    push ax                                   ; 50
    9057     call 01976h                               ; e8 6c b8
     9071    call 01976h                               ; e8 4c b8
    90589072    add sp, strict byte 0000ah                ; 83 c4 0a
    9059     jmp near 065c0h                           ; e9 b0 04
     9073    jmp near 065e0h                           ; e9 b0 04
    90609074    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90619075    xor ah, ah                                ; 30 e4
     
    90659079    mov byte [bp-004h], dl                    ; 88 56 fc
    90669080    cmp dl, 010h                              ; 80 fa 10
    9067     jc short 06135h                           ; 72 0e
     9081    jc short 06155h                           ; 72 0e
    90689082    push ax                                   ; 50
    90699083    mov al, byte [bp+017h]                    ; 8a 46 17
     
    90729086    push ax                                   ; 50
    90739087    mov ax, 006b8h                            ; b8 b8 06
    9074     jmp short 06102h                          ; eb cd
     9088    jmp short 06122h                          ; eb cd
    90759089    mov bl, byte [bp+017h]                    ; 8a 5e 17
    90769090    xor bh, bh                                ; 30 ff
    90779091    sub bx, strict byte 00041h                ; 83 eb 41
    90789092    cmp bx, strict byte 0000fh                ; 83 fb 0f
    9079     jnbe short 06166h                         ; 77 24
     9093    jnbe short 06186h                         ; 77 24
    90809094    sal bx, 1                                 ; d1 e3
    90819095    mov ax, word [bp+016h]                    ; 8b 46 16
    90829096    xor ah, ah                                ; 30 e4
    9083     jmp word [cs:bx+06094h]                   ; 2e ff a7 94 60
     9097    jmp word [cs:bx+060b4h]                   ; 2e ff a7 b4 60
    90849098    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    90859099    mov ax, word [bp+016h]                    ; 8b 46 16
     
    90889102    mov word [bp+016h], ax                    ; 89 46 16
    90899103    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    9090     jmp near 06597h                           ; e9 31 04
    9091     mov bx, 00da4h                            ; bb a4 0d
     9104    jmp near 065b7h                           ; e9 31 04
     9105    mov bx, 00da0h                            ; bb a0 0d
    90929106    mov cx, ds                                ; 8c d9
    90939107    mov ax, strict word 00004h                ; b8 04 00
    9094     call 01933h                               ; e8 c2 b7
     9108    call 01933h                               ; e8 a2 b7
    90959109    mov al, byte [bp+017h]                    ; 8a 46 17
    90969110    xor ah, ah                                ; 30 e4
     
    90999113    push ax                                   ; 50
    91009114    mov ax, 007c7h                            ; b8 c7 07
    9101     jmp near 0621eh                           ; e9 9d 00
     9115    jmp near 0623eh                           ; e9 9d 00
    91029116    mov di, word [bp+00ah]                    ; 8b 7e 0a
    91039117    mov es, [bp+004h]                         ; 8e 46 04
     
    91159129    xor bx, bx                                ; 31 db
    91169130    mov si, strict word 00020h                ; be 20 00
    9117     call 0a190h                               ; e8 dc 3f
     9131    call 0a1b0h                               ; e8 dc 3f
    91189132    mov word [bp-00eh], ax                    ; 89 46 f2
    91199133    mov word [bp-010h], bx                    ; 89 5e f0
     
    91329146    mov dx, word [bp-00eh]                    ; 8b 56 f2
    91339147    cmp dx, word [es:bx+03ch]                 ; 26 3b 57 3c
    9134     jnbe short 06206h                         ; 77 22
    9135     jne short 0622ch                          ; 75 46
     9148    jnbe short 06226h                         ; 77 22
     9149    jne short 0624ch                          ; 75 46
    91369150    mov dx, word [bp-010h]                    ; 8b 56 f0
    91379151    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9138     jnbe short 06206h                         ; 77 17
     9152    jnbe short 06226h                         ; 77 17
    91399153    mov dx, word [bp-010h]                    ; 8b 56 f0
    91409154    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9141     jne short 0622ch                          ; 75 34
     9155    jne short 0624ch                          ; 75 34
    91429156    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
    9143     jnbe short 06206h                         ; 77 08
    9144     jne short 0622ch                          ; 75 2c
     9157    jnbe short 06226h                         ; 77 08
     9158    jne short 0624ch                          ; 75 2c
    91459159    cmp si, word [es:bx+036h]                 ; 26 3b 77 36
    9146     jc short 0622ch                           ; 72 26
    9147     mov bx, 00da4h                            ; bb a4 0d
     9160    jc short 0624ch                           ; 72 26
     9161    mov bx, 00da0h                            ; bb a0 0d
    91489162    mov cx, ds                                ; 8c d9
    91499163    mov ax, strict word 00004h                ; b8 04 00
    9150     call 01933h                               ; e8 22 b7
     9164    call 01933h                               ; e8 02 b7
    91519165    mov al, byte [bp+017h]                    ; 8a 46 17
    91529166    xor ah, ah                                ; 30 e4
     
    91589172    mov ax, strict word 00004h                ; b8 04 00
    91599173    push ax                                   ; 50
    9160     call 01976h                               ; e8 50 b7
     9174    call 01976h                               ; e8 30 b7
    91619175    add sp, strict byte 00008h                ; 83 c4 08
    9162     jmp near 065c0h                           ; e9 94 03
     9176    jmp near 065e0h                           ; e9 94 03
    91639177    mov ah, byte [bp+017h]                    ; 8a 66 17
    91649178    mov byte [bp-012h], ah                    ; 88 66 ee
    91659179    mov byte [bp-011h], 000h                  ; c6 46 ef 00
    91669180    cmp word [bp-012h], strict byte 00044h    ; 83 7e ee 44
    9167     je short 06242h                           ; 74 06
     9181    je short 06262h                           ; 74 06
    91689182    cmp word [bp-012h], strict byte 00047h    ; 83 7e ee 47
    9169     jne short 06245h                          ; 75 03
    9170     jmp near 06593h                           ; e9 4e 03
     9183    jne short 06265h                          ; 75 03
     9184    jmp near 065b3h                           ; e9 4e 03
    91719185    les bx, [bp-008h]                         ; c4 5e f8
    91729186    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     
    92069220    mov word [es:bx+002h], ax                 ; 26 89 47 02
    92079221    test dl, dl                               ; 84 d2
    9208     je short 0631ah                           ; 74 54
    9209     mov bx, 00da4h                            ; bb a4 0d
     9222    je short 0633ah                           ; 74 54
     9223    mov bx, 00da0h                            ; bb a0 0d
    92109224    mov cx, ds                                ; 8c d9
    92119225    mov ax, strict word 00004h                ; b8 04 00
    9212     call 01933h                               ; e8 62 b6
     9226    call 01933h                               ; e8 42 b6
    92139227    mov al, dl                                ; 88 d0
    92149228    xor ah, ah                                ; 30 e4
     
    92219235    mov ax, strict word 00004h                ; b8 04 00
    92229236    push ax                                   ; 50
    9223     call 01976h                               ; e8 8e b6
     9237    call 01976h                               ; e8 6e b6
    92249238    add sp, strict byte 0000ah                ; 83 c4 0a
    92259239    mov ax, word [bp+016h]                    ; 8b 46 16
    92269240    xor ah, ah                                ; 30 e4
    92279241    or ah, 00ch                               ; 80 cc 0c
    9228     jmp near 065c8h                           ; e9 d2 02
     9242    jmp near 065e8h                           ; e9 d2 02
    92299243    or ah, 0b2h                               ; 80 cc b2
    9230     jmp near 065c8h                           ; e9 cc 02
     9244    jmp near 065e8h                           ; e9 cc 02
    92319245    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    92329246    mov ax, word [bp+004h]                    ; 8b 46 04
     
    92389252    mov word [bp-014h], ax                    ; 89 46 ec
    92399253    cmp ax, strict word 0001ah                ; 3d 1a 00
    9240     jnc short 0631dh                          ; 73 06
    9241     jmp near 065c0h                           ; e9 a6 02
    9242     jmp near 06593h                           ; e9 76 02
    9243     jnc short 06322h                          ; 73 03
    9244     jmp near 063b5h                           ; e9 93 00
     9254    jnc short 0633dh                          ; 73 06
     9255    jmp near 065e0h                           ; e9 a6 02
     9256    jmp near 065b3h                           ; e9 76 02
     9257    jnc short 06342h                          ; 73 03
     9258    jmp near 063d5h                           ; e9 93 00
    92459259    mov al, byte [bp-004h]                    ; 8a 46 fc
    92469260    xor ah, ah                                ; 30 e4
     
    92809294    mov dx, si                                ; 89 f2
    92819295    mov si, strict word 00020h                ; be 20 00
    9282     call 0a180h                               ; e8 d5 3d
     9296    call 0a1a0h                               ; e8 d5 3d
    92839297    mov bx, di                                ; 89 fb
    92849298    mov word [es:bx+014h], dx                 ; 26 89 57 14
    92859299    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    92869300    cmp word [bp-014h], strict byte 0001eh    ; 83 7e ec 1e
    9287     jc short 06427h                           ; 72 6c
     9301    jc short 06447h                           ; 72 6c
    92889302    mov es, [bp-00ah]                         ; 8e 46 f6
    92899303    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    93169330    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    93179331    test al, al                               ; 84 c0
    9318     jne short 06418h                          ; 75 04
     9332    jne short 06438h                          ; 75 04
    93199333    xor si, si                                ; 31 f6
    9320     jmp short 0641bh                          ; eb 03
     9334    jmp short 0643bh                          ; eb 03
    93219335    mov si, strict word 00008h                ; be 08 00
    93229336    or si, strict byte 00010h                 ; 83 ce 10
    93239337    cmp AL, strict byte 001h                  ; 3c 01
    9324     jne short 0642ah                          ; 75 08
     9338    jne short 0644ah                          ; 75 08
    93259339    mov dx, strict word 00001h                ; ba 01 00
    9326     jmp short 0642ch                          ; eb 05
    9327     jmp near 064c2h                           ; e9 98 00
     9340    jmp short 0644ch                          ; eb 05
     9341    jmp near 064e2h                           ; e9 98 00
    93289342    xor dx, dx                                ; 31 d2
    93299343    or si, dx                                 ; 09 d6
    93309344    cmp AL, strict byte 003h                  ; 3c 03
    9331     jne short 06437h                          ; 75 05
     9345    jne short 06457h                          ; 75 05
    93329346    mov ax, strict word 00003h                ; b8 03 00
    9333     jmp short 06439h                          ; eb 02
     9347    jmp short 06459h                          ; eb 02
    93349348    xor ax, ax                                ; 31 c0
    93359349    or si, ax                                 ; 09 c6
     
    93609374    xor bl, bl                                ; 30 db
    93619375    xor bh, bh                                ; 30 ff
    9362     jmp short 064a2h                          ; eb 05
     9376    jmp short 064c2h                          ; eb 05
    93639377    cmp bh, 00fh                              ; 80 ff 0f
    9364     jnc short 064b8h                          ; 73 16
     9378    jnc short 064d8h                          ; 73 16
    93659379    mov al, bh                                ; 88 f8
    93669380    xor ah, ah                                ; 30 e4
     
    93689382    add dx, 00356h                            ; 81 c2 56 03
    93699383    mov ax, word [bp-018h]                    ; 8b 46 e8
    9370     call 01652h                               ; e8 a0 b1
     9384    call 01652h                               ; e8 80 b1
    93719385    add bl, al                                ; 00 c3
    93729386    db  0feh, 0c7h
    93739387    ; inc bh                                    ; fe c7
    9374     jmp short 0649dh                          ; eb e5
     9388    jmp short 064bdh                          ; eb e5
    93759389    neg bl                                    ; f6 db
    93769390    les si, [bp-008h]                         ; c4 76 f8
    93779391    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    93789392    cmp word [bp-014h], strict byte 00042h    ; 83 7e ec 42
    9379     jnc short 064cbh                          ; 73 03
    9380     jmp near 06593h                           ; e9 c8 00
     9393    jnc short 064ebh                          ; 73 03
     9394    jmp near 065b3h                           ; e9 c8 00
    93819395    mov al, byte [bp-004h]                    ; 8a 46 fc
    93829396    xor ah, ah                                ; 30 e4
     
    93989412    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    93999413    test al, al                               ; 84 c0
    9400     jne short 06515h                          ; 75 0c
     9414    jne short 06535h                          ; 75 0c
    94019415    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    94029416    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    94079421    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    94089422    test al, al                               ; 84 c0
    9409     jne short 0654ah                          ; 75 16
     9423    jne short 0656ah                          ; 75 16
    94109424    mov word [es:di+030h], dx                 ; 26 89 55 30
    94119425    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    94229436    xor bl, bl                                ; 30 db
    94239437    mov BH, strict byte 01eh                  ; b7 1e
    9424     jmp short 06575h                          ; eb 05
     9438    jmp short 06595h                          ; eb 05
    94259439    cmp bh, 040h                              ; 80 ff 40
    9426     jnc short 0658ah                          ; 73 15
     9440    jnc short 065aah                          ; 73 15
    94279441    mov al, bh                                ; 88 f8
    94289442    xor ah, ah                                ; 30 e4
     
    94309444    add dx, ax                                ; 01 c2
    94319445    mov ax, word [bp+004h]                    ; 8b 46 04
    9432     call 01652h                               ; e8 ce b0
     9446    call 01652h                               ; e8 ae b0
    94339447    add bl, al                                ; 00 c3
    94349448    db  0feh, 0c7h
    94359449    ; inc bh                                    ; fe c7
    9436     jmp short 06570h                          ; eb e6
     9450    jmp short 06590h                          ; eb e6
    94379451    neg bl                                    ; f6 db
    94389452    mov es, [bp-00ah]                         ; 8e 46 f6
     
    94429456    mov dx, strict word 00074h                ; ba 74 00
    94439457    mov ax, strict word 00040h                ; b8 40 00
    9444     call 01660h                               ; e8 be b0
     9458    call 01660h                               ; e8 9e b0
    94459459    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    94469460    mov sp, bp                                ; 89 ec
     
    94489462    retn                                      ; c3
    94499463    cmp ax, strict word 00006h                ; 3d 06 00
    9450     je short 06593h                           ; 74 e4
     9464    je short 065b3h                           ; 74 e4
    94519465    cmp ax, strict word 00001h                ; 3d 01 00
    9452     jc short 065c0h                           ; 72 0c
    9453     jbe short 06593h                          ; 76 dd
     9466    jc short 065e0h                           ; 72 0c
     9467    jbe short 065b3h                          ; 76 dd
    94549468    cmp ax, strict word 00003h                ; 3d 03 00
    9455     jc short 065c0h                           ; 72 05
     9469    jc short 065e0h                           ; 72 05
    94569470    cmp ax, strict word 00004h                ; 3d 04 00
    9457     jbe short 06593h                          ; 76 d3
     9471    jbe short 065b3h                          ; 76 d3
    94589472    mov ax, word [bp+016h]                    ; 8b 46 16
    94599473    xor ah, ah                                ; 30 e4
     
    94649478    mov dx, strict word 00074h                ; ba 74 00
    94659479    mov ax, strict word 00040h                ; b8 40 00
    9466     call 01660h                               ; e8 87 b0
     9480    call 01660h                               ; e8 67 b0
    94679481    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9468     jmp short 065a6h                          ; eb c7
    9469 _int14_function:                             ; 0xf65df LB 0x15c
     9482    jmp short 065c6h                          ; eb c7
     9483_int14_function:                             ; 0xf65ff LB 0x15c
    94709484    push bp                                   ; 55
    94719485    mov bp, sp                                ; 89 e5
     
    94759489    sal dx, 1                                 ; d1 e2
    94769490    mov ax, strict word 00040h                ; b8 40 00
    9477     call 0166eh                               ; e8 7f b0
     9491    call 0166eh                               ; e8 5f b0
    94789492    mov si, ax                                ; 89 c6
    94799493    mov bx, ax                                ; 89 c3
     
    94819495    add dx, strict byte 0007ch                ; 83 c2 7c
    94829496    mov ax, strict word 00040h                ; b8 40 00
    9483     call 01652h                               ; e8 53 b0
     9497    call 01652h                               ; e8 33 b0
    94849498    mov cl, al                                ; 88 c1
    94859499    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9486     jnc short 0660bh                          ; 73 04
     9500    jnc short 0662bh                          ; 73 04
    94879501    test si, si                               ; 85 f6
    9488     jnbe short 0660eh                         ; 77 03
    9489     jmp near 06731h                           ; e9 23 01
     9502    jnbe short 0662eh                         ; 77 03
     9503    jmp near 06751h                           ; e9 23 01
    94909504    mov al, byte [bp+013h]                    ; 8a 46 13
    94919505    cmp AL, strict byte 001h                  ; 3c 01
    9492     jc short 06622h                           ; 72 0d
    9493     jbe short 06682h                          ; 76 6b
     9506    jc short 06642h                           ; 72 0d
     9507    jbe short 066a2h                          ; 76 6b
    94949508    cmp AL, strict byte 003h                  ; 3c 03
    9495     je short 0667ah                           ; 74 5f
     9509    je short 0669ah                           ; 74 5f
    94969510    cmp AL, strict byte 002h                  ; 3c 02
    9497     je short 0667dh                           ; 74 5e
    9498     jmp near 0672bh                           ; e9 09 01
     9511    je short 0669dh                           ; 74 5e
     9512    jmp near 0674bh                           ; e9 09 01
    94999513    test al, al                               ; 84 c0
    9500     jne short 0667fh                          ; 75 59
     9514    jne short 0669fh                          ; 75 59
    95019515    lea dx, [bx+003h]                         ; 8d 57 03
    95029516    in AL, DX                                 ; ec
     
    95089522    mov al, byte [bp+012h]                    ; 8a 46 12
    95099523    test AL, strict byte 0e0h                 ; a8 e0
    9510     jne short 06645h                          ; 75 0c
     9524    jne short 06665h                          ; 75 0c
    95119525    mov AL, strict byte 017h                  ; b0 17
    95129526    mov dx, bx                                ; 89 da
     
    95159529    mov dx, si                                ; 89 f2
    95169530    out DX, AL                                ; ee
    9517     jmp short 0665ch                          ; eb 17
     9531    jmp short 0667ch                          ; eb 17
    95189532    and AL, strict byte 0e0h                  ; 24 e0
    95199533    xor ah, ah                                ; 30 e4
     
    95429556    ; sub ah, ah                                ; 2a e4
    95439557    mov byte [bp+012h], al                    ; 88 46 12
    9544     jmp near 0670ch                           ; e9 92 00
    9545     jmp near 0671ah                           ; e9 9d 00
    9546     jmp short 066d0h                          ; eb 51
    9547     jmp near 0672bh                           ; e9 a9 00
     9558    jmp near 0672ch                           ; e9 92 00
     9559    jmp near 0673ah                           ; e9 9d 00
     9560    jmp short 066f0h                          ; eb 51
     9561    jmp near 0674bh                           ; e9 a9 00
    95489562    mov dx, strict word 0006ch                ; ba 6c 00
    95499563    mov ax, strict word 00040h                ; b8 40 00
    9550     call 0166eh                               ; e8 e3 af
     9564    call 0166eh                               ; e8 c3 af
    95519565    mov si, ax                                ; 89 c6
    95529566    lea dx, [bx+005h]                         ; 8d 57 05
     
    95569570    and ax, strict word 00060h                ; 25 60 00
    95579571    cmp ax, strict word 00060h                ; 3d 60 00
    9558     je short 066b2h                           ; 74 17
     9572    je short 066d2h                           ; 74 17
    95599573    test cl, cl                               ; 84 c9
    9560     je short 066b2h                           ; 74 13
     9574    je short 066d2h                           ; 74 13
    95619575    mov dx, strict word 0006ch                ; ba 6c 00
    95629576    mov ax, strict word 00040h                ; b8 40 00
    9563     call 0166eh                               ; e8 c6 af
     9577    call 0166eh                               ; e8 a6 af
    95649578    cmp ax, si                                ; 39 f0
    9565     je short 0668dh                           ; 74 e1
     9579    je short 066adh                           ; 74 e1
    95669580    mov si, ax                                ; 89 c6
    95679581    db  0feh, 0c9h
    95689582    ; dec cl                                    ; fe c9
    9569     jmp short 0668dh                          ; eb db
     9583    jmp short 066adh                          ; eb db
    95709584    test cl, cl                               ; 84 c9
    9571     je short 066bch                           ; 74 06
     9585    je short 066dch                           ; 74 06
    95729586    mov al, byte [bp+012h]                    ; 8a 46 12
    95739587    mov dx, bx                                ; 89 da
     
    95799593    mov byte [bp+013h], al                    ; 88 46 13
    95809594    test cl, cl                               ; 84 c9
    9581     jne short 0670ch                          ; 75 43
     9595    jne short 0672ch                          ; 75 43
    95829596    or AL, strict byte 080h                   ; 0c 80
    95839597    mov byte [bp+013h], al                    ; 88 46 13
    9584     jmp short 0670ch                          ; eb 3c
     9598    jmp short 0672ch                          ; eb 3c
    95859599    mov dx, strict word 0006ch                ; ba 6c 00
    95869600    mov ax, strict word 00040h                ; b8 40 00
    9587     call 0166eh                               ; e8 95 af
     9601    call 0166eh                               ; e8 75 af
    95889602    mov si, ax                                ; 89 c6
    95899603    lea dx, [bx+005h]                         ; 8d 57 05
     
    95929606    ; sub ah, ah                                ; 2a e4
    95939607    test AL, strict byte 001h                 ; a8 01
    9594     jne short 066fch                          ; 75 17
     9608    jne short 0671ch                          ; 75 17
    95959609    test cl, cl                               ; 84 c9
    9596     je short 066fch                           ; 74 13
     9610    je short 0671ch                           ; 74 13
    95979611    mov dx, strict word 0006ch                ; ba 6c 00
    95989612    mov ax, strict word 00040h                ; b8 40 00
    9599     call 0166eh                               ; e8 7c af
     9613    call 0166eh                               ; e8 5c af
    96009614    cmp ax, si                                ; 39 f0
    9601     je short 066dbh                           ; 74 e5
     9615    je short 066fbh                           ; 74 e5
    96029616    mov si, ax                                ; 89 c6
    96039617    db  0feh, 0c9h
    96049618    ; dec cl                                    ; fe c9
    9605     jmp short 066dbh                          ; eb df
     9619    jmp short 066fbh                          ; eb df
    96069620    test cl, cl                               ; 84 c9
    9607     je short 06712h                           ; 74 12
     9621    je short 06732h                           ; 74 12
    96089622    mov byte [bp+013h], 000h                  ; c6 46 13 00
    96099623    mov dx, bx                                ; 89 da
     
    96139627    mov byte [bp+012h], al                    ; 88 46 12
    96149628    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9615     jmp short 06735h                          ; eb 23
     9629    jmp short 06755h                          ; eb 23
    96169630    lea dx, [bx+005h]                         ; 8d 57 05
    96179631    in AL, DX                                 ; ec
    96189632    db  02ah, 0e4h
    96199633    ; sub ah, ah                                ; 2a e4
    9620     jmp short 066cbh                          ; eb b1
     9634    jmp short 066ebh                          ; eb b1
    96219635    lea dx, [si+005h]                         ; 8d 54 05
    96229636    in AL, DX                                 ; ec
     
    96289642    db  02ah, 0e4h
    96299643    ; sub ah, ah                                ; 2a e4
    9630     jmp short 06709h                          ; eb de
     9644    jmp short 06729h                          ; eb de
    96319645    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9632     jmp short 06735h                          ; eb 04
     9646    jmp short 06755h                          ; eb 04
    96339647    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    96349648    lea sp, [bp-002h]                         ; 8d 66 fe
     
    96369650    pop bp                                    ; 5d
    96379651    retn                                      ; c3
    9638 timer_wait_:                                 ; 0xf673b LB 0x43
     9652timer_wait_:                                 ; 0xf675b LB 0x43
    96399653    push bp                                   ; 55
    96409654    mov bp, sp                                ; 89 e5
     
    96449658    mov bx, strict word 0000fh                ; bb 0f 00
    96459659    xor cx, cx                                ; 31 c9
    9646     call 0a150h                               ; e8 07 3a
     9660    call 0a170h                               ; e8 07 3a
    96479661    mov cx, ax                                ; 89 c1
    96489662    mov bx, dx                                ; 89 d3
     
    96569670    adc bx, strict byte 0ffffh                ; 83 d3 ff
    96579671    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9658     jne short 06768h                          ; 75 05
     9672    jne short 06788h                          ; 75 05
    96599673    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9660     je short 06777h                           ; 74 0f
     9674    je short 06797h                           ; 74 0f
    96619675    mov dx, strict word 00061h                ; ba 61 00
    96629676    in AL, DX                                 ; ec
     
    96659679    and AL, strict byte 010h                  ; 24 10
    96669680    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9667     jne short 06768h                          ; 75 f3
    9668     jmp short 06758h                          ; eb e1
     9681    jne short 06788h                          ; 75 f3
     9682    jmp short 06778h                          ; eb e1
    96699683    lea sp, [bp-004h]                         ; 8d 66 fc
    96709684    pop cx                                    ; 59
     
    96729686    pop bp                                    ; 5d
    96739687    retn                                      ; c3
    9674 set_enable_a20_:                             ; 0xf677e LB 0x30
     9688set_enable_a20_:                             ; 0xf679e LB 0x30
    96759689    push bp                                   ; 55
    96769690    mov bp, sp                                ; 89 e5
     
    96859699    mov cl, al                                ; 88 c1
    96869700    test bx, bx                               ; 85 db
    9687     je short 06797h                           ; 74 05
     9701    je short 067b7h                           ; 74 05
    96889702    or AL, strict byte 002h                   ; 0c 02
    96899703    out DX, AL                                ; ee
    9690     jmp short 0679ah                          ; eb 03
     9704    jmp short 067bah                          ; eb 03
    96919705    and AL, strict byte 0fdh                  ; 24 fd
    96929706    out DX, AL                                ; ee
    96939707    test cl, 002h                             ; f6 c1 02
    9694     je short 067a4h                           ; 74 05
     9708    je short 067c4h                           ; 74 05
    96959709    mov ax, strict word 00001h                ; b8 01 00
    9696     jmp short 067a6h                          ; eb 02
     9710    jmp short 067c6h                          ; eb 02
    96979711    xor ax, ax                                ; 31 c0
    96989712    lea sp, [bp-006h]                         ; 8d 66 fa
     
    97029716    pop bp                                    ; 5d
    97039717    retn                                      ; c3
    9704 set_e820_range_:                             ; 0xf67ae LB 0x88
     9718set_e820_range_:                             ; 0xf67ce LB 0x88
    97059719    push si                                   ; 56
    97069720    push bp                                   ; 55
     
    97329746    retn 0000ah                               ; c2 0a 00
    97339747    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9734     db  043h, 06bh, 072h, 068h, 086h, 068h, 022h, 069h, 028h, 069h, 02dh, 069h, 032h, 069h, 0dah, 069h
    9735     db  0feh, 069h, 01bh, 069h, 01bh, 069h, 0c8h, 06ah, 0f3h, 06ah, 006h, 06bh, 015h, 06bh, 022h, 069h
    9736     db  01eh, 06bh
    9737 _int15_function:                             ; 0xf6836 LB 0x343
     9748    db  063h, 06bh, 092h, 068h, 0a6h, 068h, 042h, 069h, 048h, 069h, 04dh, 069h, 052h, 069h, 0fah, 069h
     9749    db  01eh, 06ah, 03bh, 069h, 03bh, 069h, 0e8h, 06ah, 013h, 06bh, 026h, 06bh, 035h, 06bh, 042h, 069h
     9750    db  03eh, 06bh
     9751_int15_function:                             ; 0xf6856 LB 0x343
    97389752    push bp                                   ; 55
    97399753    mov bp, sp                                ; 89 e5
     
    97449758    mov dx, ax                                ; 89 c2
    97459759    cmp ax, 000ech                            ; 3d ec 00
    9746     jnbe short 0687ch                         ; 77 35
     9760    jnbe short 0689ch                         ; 77 35
    97479761    push CS                                   ; 0e
    97489762    pop ES                                    ; 07
    97499763    mov cx, strict word 00011h                ; b9 11 00
    9750     mov di, 06804h                            ; bf 04 68
     9764    mov di, 06824h                            ; bf 24 68
    97519765    repne scasb                               ; f2 ae
    97529766    sal cx, 1                                 ; d1 e1
    97539767    mov di, cx                                ; 89 cf
    9754     mov si, word [cs:di+06814h]               ; 2e 8b b5 14 68
     9768    mov si, word [cs:di+06834h]               ; 2e 8b b5 34 68
    97559769    mov ax, word [bp+012h]                    ; 8b 46 12
    97569770    xor ah, ah                                ; 30 e4
     
    97659779    xor ah, ah                                ; 30 e4
    97669780    cmp ax, 000c0h                            ; 3d c0 00
    9767     je short 0687fh                           ; 74 03
    9768     jmp near 06b43h                           ; e9 c4 02
     9781    je short 0689fh                           ; 74 03
     9782    jmp near 06b63h                           ; e9 c4 02
    97699783    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9770     jmp near 06aeah                           ; e9 64 02
     9784    jmp near 06b0ah                           ; e9 64 02
    97719785    mov dx, ax                                ; 89 c2
    97729786    cmp ax, strict word 00001h                ; 3d 01 00
    9773     jc short 0689bh                           ; 72 0e
    9774     jbe short 068afh                          ; 76 20
     9787    jc short 068bbh                           ; 72 0e
     9788    jbe short 068cfh                          ; 76 20
    97759789    cmp ax, strict word 00003h                ; 3d 03 00
    9776     je short 068e0h                           ; 74 4c
     9790    je short 06900h                           ; 74 4c
    97779791    cmp ax, strict word 00002h                ; 3d 02 00
    9778     je short 068bfh                           ; 74 26
    9779     jmp short 068edh                          ; eb 52
     9792    je short 068dfh                           ; 74 26
     9793    jmp short 0690dh                          ; eb 52
    97809794    test ax, ax                               ; 85 c0
    9781     jne short 068edh                          ; 75 4e
     9795    jne short 0690dh                          ; 75 4e
    97829796    xor ax, ax                                ; 31 c0
    9783     call 0677eh                               ; e8 da fe
     9797    call 0679eh                               ; e8 da fe
    97849798    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97859799    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9786     jmp near 0691bh                           ; e9 6c 00
     9800    jmp near 0693bh                           ; e9 6c 00
    97879801    mov ax, strict word 00001h                ; b8 01 00
    9788     call 0677eh                               ; e8 c9 fe
     9802    call 0679eh                               ; e8 c9 fe
    97899803    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97909804    mov byte [bp+013h], dh                    ; 88 76 13
    9791     jmp near 0691bh                           ; e9 5c 00
     9805    jmp near 0693bh                           ; e9 5c 00
    97929806    mov dx, 00092h                            ; ba 92 00
    97939807    in AL, DX                                 ; ec
     
    98039817    xor al, dl                                ; 30 d0
    98049818    mov byte [bp+013h], al                    ; 88 46 13
    9805     jmp near 0691bh                           ; e9 3b 00
     9819    jmp near 0693bh                           ; e9 3b 00
    98069820    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98079821    mov byte [bp+013h], ah                    ; 88 66 13
    98089822    mov word [bp+00ch], ax                    ; 89 46 0c
    9809     jmp near 0691bh                           ; e9 2e 00
    9810     mov bx, 00da4h                            ; bb a4 0d
     9823    jmp near 0693bh                           ; e9 2e 00
     9824    mov bx, 00da0h                            ; bb a0 0d
    98119825    mov cx, ds                                ; 8c d9
    98129826    mov ax, strict word 00004h                ; b8 04 00
    9813     call 01933h                               ; e8 3b b0
     9827    call 01933h                               ; e8 1b b0
    98149828    mov ax, word [bp+012h]                    ; 8b 46 12
    98159829    xor ah, ah                                ; 30 e4
     
    98199833    mov ax, strict word 00004h                ; b8 04 00
    98209834    push ax                                   ; 50
    9821     call 01976h                               ; e8 6d b0
     9835    call 01976h                               ; e8 4d b0
    98229836    add sp, strict byte 00006h                ; 83 c4 06
    98239837    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    98329846    retn                                      ; c3
    98339847    mov word [bp+018h], dx                    ; 89 56 18
    9834     jmp near 069d4h                           ; e9 ac 00
     9848    jmp near 069f4h                           ; e9 ac 00
    98359849    mov word [bp+018h], dx                    ; 89 56 18
    9836     jmp short 0691bh                          ; eb ee
     9850    jmp short 0693bh                          ; eb ee
    98379851    mov word [bp+018h], cx                    ; 89 4e 18
    9838     jmp short 06918h                          ; eb e6
     9852    jmp short 06938h                          ; eb e6
    98399853    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9840     jne short 069a7h                          ; 75 6f
     9854    jne short 069c7h                          ; 75 6f
    98419855    mov dx, 000a0h                            ; ba a0 00
    98429856    mov ax, strict word 00040h                ; b8 40 00
    9843     call 01652h                               ; e8 11 ad
     9857    call 01652h                               ; e8 f1 ac
    98449858    test AL, strict byte 001h                 ; a8 01
    9845     jne short 069a4h                          ; 75 5f
     9859    jne short 069c4h                          ; 75 5f
    98469860    mov bx, strict word 00001h                ; bb 01 00
    98479861    mov dx, 000a0h                            ; ba a0 00
    98489862    mov ax, strict word 00040h                ; b8 40 00
    9849     call 01660h                               ; e8 0f ad
     9863    call 01660h                               ; e8 ef ac
    98509864    mov bx, word [bp+014h]                    ; 8b 5e 14
    98519865    mov dx, 00098h                            ; ba 98 00
    98529866    mov ax, strict word 00040h                ; b8 40 00
    9853     call 0167ch                               ; e8 1f ad
     9867    call 0167ch                               ; e8 ff ac
    98549868    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    98559869    mov dx, 0009ah                            ; ba 9a 00
    98569870    mov ax, strict word 00040h                ; b8 40 00
    9857     call 0167ch                               ; e8 13 ad
     9871    call 0167ch                               ; e8 f3 ac
    98589872    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    98599873    mov dx, 0009ch                            ; ba 9c 00
    98609874    mov ax, strict word 00040h                ; b8 40 00
    9861     call 0167ch                               ; e8 07 ad
     9875    call 0167ch                               ; e8 e7 ac
    98629876    mov bx, word [bp+010h]                    ; 8b 5e 10
    98639877    mov dx, 0009eh                            ; ba 9e 00
    98649878    mov ax, strict word 00040h                ; b8 40 00
    9865     call 0167ch                               ; e8 fb ac
     9879    call 0167ch                               ; e8 db ac
    98669880    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98679881    mov dx, 000a1h                            ; ba a1 00
     
    98729886    out DX, AL                                ; ee
    98739887    mov ax, strict word 0000bh                ; b8 0b 00
    9874     call 016aeh                               ; e8 1a ad
     9888    call 016aeh                               ; e8 fa ac
    98759889    mov dl, al                                ; 88 c2
    98769890    or dl, 040h                               ; 80 ca 40
    98779891    xor dh, dh                                ; 30 f6
    98789892    mov ax, strict word 0000bh                ; b8 0b 00
    9879     call 016c9h                               ; e8 28 ad
    9880     jmp near 0691bh                           ; e9 77 ff
    9881     jmp near 06ae1h                           ; e9 3a 01
     9893    call 016c9h                               ; e8 08 ad
     9894    jmp near 0693bh                           ; e9 77 ff
     9895    jmp near 06b01h                           ; e9 3a 01
    98829896    cmp ax, strict word 00001h                ; 3d 01 00
    9883     jne short 069c8h                          ; 75 1c
     9897    jne short 069e8h                          ; 75 1c
    98849898    xor bx, bx                                ; 31 db
    98859899    mov dx, 000a0h                            ; ba a0 00
    98869900    mov ax, strict word 00040h                ; b8 40 00
    9887     call 01660h                               ; e8 a9 ac
     9901    call 01660h                               ; e8 89 ac
    98889902    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98899903    mov ax, strict word 0000bh                ; b8 0b 00
    9890     call 016aeh                               ; e8 ed ac
     9904    call 016aeh                               ; e8 cd ac
    98919905    mov dl, al                                ; 88 c2
    98929906    and dl, 0bfh                              ; 80 e2 bf
    9893     jmp short 06999h                          ; eb d1
     9907    jmp short 069b9h                          ; eb d1
    98949908    mov word [bp+018h], dx                    ; 89 56 18
    98959909    mov ax, bx                                ; 89 d8
     
    98999913    or bx, ax                                 ; 09 c3
    99009914    mov word [bp+012h], bx                    ; 89 5e 12
    9901     jmp near 0691bh                           ; e9 41 ff
     9915    jmp near 0693bh                           ; e9 41 ff
    99029916    mov ax, strict word 00031h                ; b8 31 00
    9903     call 016aeh                               ; e8 ce ac
     9917    call 016aeh                               ; e8 ae ac
    99049918    mov dh, al                                ; 88 c6
    99059919    mov ax, strict word 00030h                ; b8 30 00
    9906     call 016aeh                               ; e8 c6 ac
     9920    call 016aeh                               ; e8 a6 ac
    99079921    mov dl, al                                ; 88 c2
    99089922    mov word [bp+012h], dx                    ; 89 56 12
    99099923    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9910     jbe short 069f7h                          ; 76 05
     9924    jbe short 06a17h                          ; 76 05
    99119925    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    99129926    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9913     jmp near 0691bh                           ; e9 1d ff
     9927    jmp near 0693bh                           ; e9 1d ff
    99149928    cli                                       ; fa
    99159929    mov ax, strict word 00001h                ; b8 01 00
    9916     call 0677eh                               ; e8 79 fd
     9930    call 0679eh                               ; e8 79 fd
    99179931    mov dx, word [bp+006h]                    ; 8b 56 06
    99189932    add dx, strict byte 00038h                ; 83 c2 38
    99199933    mov ax, word [bp+014h]                    ; 8b 46 14
    99209934    mov bx, strict word 0ffffh                ; bb ff ff
    9921     call 0167ch                               ; e8 68 ac
     9935    call 0167ch                               ; e8 48 ac
    99229936    mov dx, word [bp+006h]                    ; 8b 56 06
    99239937    add dx, strict byte 0003ah                ; 83 c2 3a
    99249938    mov ax, word [bp+014h]                    ; 8b 46 14
    99259939    xor bx, bx                                ; 31 db
    9926     call 0167ch                               ; e8 5a ac
     9940    call 0167ch                               ; e8 3a ac
    99279941    mov dx, word [bp+006h]                    ; 8b 56 06
    99289942    add dx, strict byte 0003ch                ; 83 c2 3c
    99299943    mov ax, word [bp+014h]                    ; 8b 46 14
    99309944    mov bx, strict word 0000fh                ; bb 0f 00
    9931     call 01660h                               ; e8 2f ac
     9945    call 01660h                               ; e8 0f ac
    99329946    mov dx, word [bp+006h]                    ; 8b 56 06
    99339947    add dx, strict byte 0003dh                ; 83 c2 3d
    99349948    mov ax, word [bp+014h]                    ; 8b 46 14
    99359949    mov bx, 0009bh                            ; bb 9b 00
    9936     call 01660h                               ; e8 20 ac
     9950    call 01660h                               ; e8 00 ac
    99379951    mov dx, word [bp+006h]                    ; 8b 56 06
    99389952    add dx, strict byte 0003eh                ; 83 c2 3e
    99399953    mov ax, word [bp+014h]                    ; 8b 46 14
    99409954    xor bx, bx                                ; 31 db
    9941     call 0167ch                               ; e8 2e ac
     9955    call 0167ch                               ; e8 0e ac
    99429956    mov AL, strict byte 011h                  ; b0 11
    99439957    mov dx, strict word 00020h                ; ba 20 00
     
    99689982    out DX, AL                                ; ee
    99699983    mov si, word [bp+006h]                    ; 8b 76 06
    9970     call 06a8ch                               ; e8 00 00
     9984    call 06aach                               ; e8 00 00
    99719985    pop di                                    ; 5f
    99729986    add di, strict byte 00018h                ; 83 c7 18
     
    999610010    push cx                                   ; 51
    999710011    retf                                      ; cb
    9998     jmp near 0691bh                           ; e9 53 fe
    9999     mov bx, 00da4h                            ; bb a4 0d
     10012    jmp near 0693bh                           ; e9 53 fe
     10013    mov bx, 00da0h                            ; bb a0 0d
    1000010014    mov cx, ds                                ; 8c d9
    1000110015    mov ax, strict word 00004h                ; b8 04 00
    10002     call 01933h                               ; e8 60 ae
     10016    call 01933h                               ; e8 40 ae
    1000310017    mov ax, 0086eh                            ; b8 6e 08
    1000410018    push ax                                   ; 50
    1000510019    mov ax, strict word 00004h                ; b8 04 00
    1000610020    push ax                                   ; 50
    10007     call 01976h                               ; e8 98 ae
     10021    call 01976h                               ; e8 78 ae
    1000810022    add sp, strict byte 00004h                ; 83 c4 04
    1000910023    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    1001210026    or ah, 086h                               ; 80 cc 86
    1001310027    mov word [bp+012h], ax                    ; 89 46 12
    10014     jmp near 0691bh                           ; e9 28 fe
     10028    jmp near 0693bh                           ; e9 28 fe
    1001510029    mov word [bp+018h], cx                    ; 89 4e 18
    1001610030    mov word [bp+012h], ax                    ; 89 46 12
    1001710031    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    1001810032    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    10019     jmp near 0691bh                           ; e9 15 fe
     10033    jmp near 0693bh                           ; e9 15 fe
    1002010034    mov dx, strict word 0000eh                ; ba 0e 00
    1002110035    mov ax, strict word 00040h                ; b8 40 00
    10022     call 0166eh                               ; e8 5f ab
     10036    call 0166eh                               ; e8 3f ab
    1002310037    mov word [bp+014h], ax                    ; 89 46 14
    10024     jmp near 069f7h                           ; e9 e2 fe
     10038    jmp near 06a17h                           ; e9 e2 fe
    1002510039    mov ax, 0089dh                            ; b8 9d 08
    1002610040    push ax                                   ; 50
    1002710041    mov ax, strict word 00008h                ; b8 08 00
    10028     jmp short 06adah                          ; eb bc
     10042    jmp short 06afah                          ; eb bc
    1002910043    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    10030     jne short 06b43h                          ; 75 1f
     10044    jne short 06b63h                          ; 75 1f
    1003110045    mov word [bp+012h], ax                    ; 89 46 12
    1003210046    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1003310047    xor ah, ah                                ; 30 e4
    1003410048    cmp ax, strict word 00001h                ; 3d 01 00
    10035     jc short 06b3ch                           ; 72 0b
     10049    jc short 06b5ch                           ; 72 0b
    1003610050    cmp ax, strict word 00003h                ; 3d 03 00
    10037     jnbe short 06b3ch                         ; 77 06
     10051    jnbe short 06b5ch                         ; 77 06
    1003810052    mov word [bp+018h], cx                    ; 89 4e 18
    10039     jmp near 0691bh                           ; e9 df fd
     10053    jmp near 0693bh                           ; e9 df fd
    1004010054    or byte [bp+018h], 001h                   ; 80 4e 18 01
    10041     jmp near 0691bh                           ; e9 d8 fd
    10042     mov bx, 00da4h                            ; bb a4 0d
     10055    jmp near 0693bh                           ; e9 d8 fd
     10056    mov bx, 00da0h                            ; bb a0 0d
    1004310057    mov cx, ds                                ; 8c d9
    1004410058    mov ax, strict word 00004h                ; b8 04 00
    10045     call 01933h                               ; e8 e5 ad
     10059    call 01933h                               ; e8 c5 ad
    1004610060    push word [bp+00ch]                       ; ff 76 0c
    1004710061    push word [bp+012h]                       ; ff 76 12
     
    1005010064    mov ax, strict word 00004h                ; b8 04 00
    1005110065    push ax                                   ; 50
    10052     call 01976h                               ; e8 17 ae
     10066    call 01976h                               ; e8 f7 ad
    1005310067    add sp, strict byte 00008h                ; 83 c4 08
    10054     jmp near 06ae1h                           ; e9 7c ff
    10055     loop 06bd3h                               ; e2 6c
    10056     or AL, strict byte 06dh                   ; 0c 6d
    10057     db  064h, 06dh
    10058     ; fs insw                                   ; 64 6d
    10059     mov word [di-057h], bp                    ; 89 6d a9
     10068    jmp near 06b01h                           ; e9 7c ff
     10069    add ch, byte [di+02ch]                    ; 02 6d 2c
    1006010070    insw                                      ; 6d
    10061     enter 0ee6dh, 06dh                        ; c8 6d ee 6d
    10062     adc AL, strict byte 06eh                  ; 14 6e
    10063     push cx                                   ; 51
     10071    test byte [di-057h], ch                   ; 84 6d a9
     10072    insw                                      ; 6d
     10073    leave                                     ; c9
     10074    insw                                      ; 6d
     10075    call 079ffh                               ; e8 6d 0e
    1006410076    outsb                                     ; 6e
    10065     db  085h
     10077    xor AL, strict byte 06eh                  ; 34 6e
     10078    jno short 06c05h                          ; 71 6e
     10079    movsw                                     ; a5
    1006610080    outsb                                     ; 6e
    10067 _int15_function32:                           ; 0xf6b79 LB 0x39e
     10081_int15_function32:                           ; 0xf6b99 LB 0x39e
    1006810082    push bp                                   ; 55
    1006910083    mov bp, sp                                ; 89 e5
     
    1007710091    xor dh, dh                                ; 30 f6
    1007810092    cmp ax, 000e8h                            ; 3d e8 00
    10079     je short 06bdfh                           ; 74 4a
     10093    je short 06bffh                           ; 74 4a
    1008010094    cmp ax, 000d0h                            ; 3d d0 00
    10081     je short 06bach                           ; 74 12
     10095    je short 06bcch                           ; 74 12
    1008210096    cmp ax, 00086h                            ; 3d 86 00
    10083     jne short 06bddh                          ; 75 3e
     10097    jne short 06bfdh                          ; 75 3e
    1008410098    sti                                       ; fb
    1008510099    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1008610100    mov ax, word [bp+018h]                    ; 8b 46 18
    10087     call 0673bh                               ; e8 92 fb
    10088     jmp near 06d5eh                           ; e9 b2 01
     10101    call 0675bh                               ; e8 92 fb
     10102    jmp near 06d7eh                           ; e9 b2 01
    1008910103    cmp dx, strict byte 0004fh                ; 83 fa 4f
    10090     jne short 06bddh                          ; 75 2c
     10104    jne short 06bfdh                          ; 75 2c
    1009110105    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    10092     jne short 06c13h                          ; 75 5b
     10106    jne short 06c33h                          ; 75 5b
    1009310107    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    10094     jne short 06c13h                          ; 75 54
     10108    jne short 06c33h                          ; 75 54
    1009510109    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    10096     jne short 06c13h                          ; 75 4d
     10110    jne short 06c33h                          ; 75 4d
    1009710111    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    10098     jne short 06c13h                          ; 75 46
     10112    jne short 06c33h                          ; 75 46
    1009910113    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1010010114    or ax, word [bp+008h]                     ; 0b 46 08
    10101     jne short 06c13h                          ; 75 3e
     10115    jne short 06c33h                          ; 75 3e
    1010210116    mov ax, word [bp+006h]                    ; 8b 46 06
    1010310117    or ax, word [bp+004h]                     ; 0b 46 04
    10104     je short 06be1h                           ; 74 04
    10105     jmp short 06c13h                          ; eb 34
    10106     jmp short 06c09h                          ; eb 28
     10118    je short 06c01h                           ; 74 04
     10119    jmp short 06c33h                          ; eb 34
     10120    jmp short 06c29h                          ; eb 28
    1010710121    mov word [bp+028h], bx                    ; 89 5e 28
    1010810122    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1011610130    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    1011710131    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    10118     jmp near 06d5eh                           ; e9 55 01
     10132    jmp near 06d7eh                           ; e9 55 01
    1011910133    cmp dx, strict byte 00020h                ; 83 fa 20
    10120     je short 06c19h                           ; 74 0b
     10134    je short 06c39h                           ; 74 0b
    1012110135    cmp dx, strict byte 00001h                ; 83 fa 01
    10122     je short 06c16h                           ; 74 03
    10123     jmp near 06d31h                           ; e9 1b 01
    10124     jmp near 06ed7h                           ; e9 be 02
     10136    je short 06c36h                           ; 74 03
     10137    jmp near 06d51h                           ; e9 1b 01
     10138    jmp near 06ef7h                           ; e9 be 02
    1012510139    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    10126     jne short 06c13h                          ; 75 f3
     10140    jne short 06c33h                          ; 75 f3
    1012710141    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    10128     jne short 06c13h                          ; 75 ec
     10142    jne short 06c33h                          ; 75 ec
    1012910143    mov ax, strict word 00035h                ; b8 35 00
    10130     call 016aeh                               ; e8 81 aa
     10144    call 016aeh                               ; e8 61 aa
    1013110145    mov bl, al                                ; 88 c3
    1013210146    xor bh, bh                                ; 30 ff
     
    1013510149    sal bx, 1                                 ; d1 e3
    1013610150    rcl dx, 1                                 ; d1 d2
    10137     loop 06c36h                               ; e2 fa
     10151    loop 06c56h                               ; e2 fa
    1013810152    mov ax, strict word 00034h                ; b8 34 00
    10139     call 016aeh                               ; e8 6c aa
     10153    call 016aeh                               ; e8 4c aa
    1014010154    xor ah, ah                                ; 30 e4
    1014110155    mov dx, bx                                ; 89 da
     
    1014510159    adc dx, 00100h                            ; 81 d2 00 01
    1014610160    cmp dx, 00100h                            ; 81 fa 00 01
    10147     jc short 06c5ch                           ; 72 06
    10148     jne short 06c8ah                          ; 75 32
     10161    jc short 06c7ch                           ; 72 06
     10162    jne short 06caah                          ; 75 32
    1014910163    test bx, bx                               ; 85 db
    10150     jnbe short 06c8ah                         ; 77 2e
     10164    jnbe short 06caah                         ; 77 2e
    1015110165    mov ax, strict word 00031h                ; b8 31 00
    10152     call 016aeh                               ; e8 4c aa
     10166    call 016aeh                               ; e8 2c aa
    1015310167    mov bl, al                                ; 88 c3
    1015410168    xor bh, bh                                ; 30 ff
     
    1015710171    sal bx, 1                                 ; d1 e3
    1015810172    rcl dx, 1                                 ; d1 d2
    10159     loop 06c6bh                               ; e2 fa
     10173    loop 06c8bh                               ; e2 fa
    1016010174    mov ax, strict word 00030h                ; b8 30 00
    10161     call 016aeh                               ; e8 37 aa
     10175    call 016aeh                               ; e8 17 aa
    1016210176    xor ah, ah                                ; 30 e4
    1016310177    or bx, ax                                 ; 09 c3
     
    1016510179    sal bx, 1                                 ; d1 e3
    1016610180    rcl dx, 1                                 ; d1 d2
    10167     loop 06c7eh                               ; e2 fa
     10181    loop 06c9eh                               ; e2 fa
    1016810182    add bx, strict byte 00000h                ; 83 c3 00
    1016910183    adc dx, strict byte 00010h                ; 83 d2 10
    1017010184    mov ax, strict word 00062h                ; b8 62 00
    10171     call 016aeh                               ; e8 1e aa
     10185    call 016aeh                               ; e8 fe a9
    1017210186    xor ah, ah                                ; 30 e4
    1017310187    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1017710191    sal word [bp-00ah], 1                     ; d1 66 f6
    1017810192    rcl word [bp-008h], 1                     ; d1 56 f8
    10179     loop 06c9dh                               ; e2 f8
     10193    loop 06cbdh                               ; e2 f8
    1018010194    mov ax, strict word 00061h                ; b8 61 00
    10181     call 016aeh                               ; e8 03 aa
     10195    call 016aeh                               ; e8 e3 a9
    1018210196    xor ah, ah                                ; 30 e4
    1018310197    or word [bp-00ah], ax                     ; 09 46 f6
     
    1018610200    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    1018710201    mov ax, strict word 00063h                ; b8 63 00
    10188     call 016aeh                               ; e8 ed a9
     10202    call 016aeh                               ; e8 cd a9
    1018910203    mov byte [bp-004h], al                    ; 88 46 fc
    1019010204    mov byte [bp-006h], al                    ; 88 46 fa
    1019110205    mov ax, word [bp+014h]                    ; 8b 46 14
    1019210206    cmp ax, strict word 00009h                ; 3d 09 00
    10193     jnbe short 06d31h                         ; 77 62
     10207    jnbe short 06d51h                         ; 77 62
    1019410208    mov si, ax                                ; 89 c6
    1019510209    sal si, 1                                 ; d1 e6
     
    1019810212    mov cx, dx                                ; 89 d1
    1019910213    adc cx, strict byte 0ffffh                ; 83 d1 ff
    10200     jmp word [cs:si+06b65h]                   ; 2e ff a4 65 6b
     10214    jmp word [cs:si+06b85h]                   ; 2e ff a4 85 6b
    1020110215    mov ax, strict word 00001h                ; b8 01 00
    1020210216    push ax                                   ; 50
     
    1021210226    xor bx, bx                                ; 31 db
    1021310227    xor cx, cx                                ; 31 c9
    10214     call 067aeh                               ; e8 af fa
     10228    call 067ceh                               ; e8 af fa
    1021510229    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    1021610230    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    10217     jmp near 06ebch                           ; e9 b0 01
     10231    jmp near 06edch                           ; e9 b0 01
    1021810232    mov ax, strict word 00002h                ; b8 02 00
    1021910233    push ax                                   ; 50
     
    1022910243    mov bx, 0fc00h                            ; bb 00 fc
    1023010244    mov cx, strict word 00009h                ; b9 09 00
    10231     call 067aeh                               ; e8 84 fa
     10245    call 067ceh                               ; e8 84 fa
    1023210246    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    10233     jmp short 06d04h                          ; eb d3
    10234     mov bx, 00da4h                            ; bb a4 0d
     10247    jmp short 06d24h                          ; eb d3
     10248    mov bx, 00da0h                            ; bb a0 0d
    1023510249    mov cx, ds                                ; 8c d9
    1023610250    mov ax, strict word 00004h                ; b8 04 00
    10237     call 01933h                               ; e8 f7 ab
     10251    call 01933h                               ; e8 d7 ab
    1023810252    push word [bp+014h]                       ; ff 76 14
    1023910253    push word [bp+020h]                       ; ff 76 20
     
    1024210256    mov ax, strict word 00004h                ; b8 04 00
    1024310257    push ax                                   ; 50
    10244     call 01976h                               ; e8 29 ac
     10258    call 01976h                               ; e8 09 ac
    1024510259    add sp, strict byte 00008h                ; 83 c4 08
    1024610260    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    1026610280    xor bx, bx                                ; 31 db
    1026710281    mov cx, strict word 0000fh                ; b9 0f 00
    10268     call 067aeh                               ; e8 2d fa
     10282    call 067ceh                               ; e8 2d fa
    1026910283    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    10270     jmp near 06d04h                           ; e9 7b ff
     10284    jmp near 06d24h                           ; e9 7b ff
    1027110285    mov dx, strict word 00001h                ; ba 01 00
    1027210286    push dx                                   ; 52
     
    1028010294    xor bx, bx                                ; 31 db
    1028110295    mov cx, strict word 00010h                ; b9 10 00
    10282     call 067aeh                               ; e8 0d fa
     10296    call 067ceh                               ; e8 0d fa
    1028310297    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    10284     jmp near 06d04h                           ; e9 5b ff
     10298    jmp near 06d24h                           ; e9 5b ff
    1028510299    mov si, strict word 00003h                ; be 03 00
    1028610300    push si                                   ; 56
     
    1029410308    mov bx, ax                                ; 89 c3
    1029510309    mov ax, si                                ; 89 f0
    10296     call 067aeh                               ; e8 ee f9
     10310    call 067ceh                               ; e8 ee f9
    1029710311    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    10298     jmp near 06d04h                           ; e9 3c ff
     10312    jmp near 06d24h                           ; e9 3c ff
    1029910313    mov ax, strict word 00002h                ; b8 02 00
    1030010314    push ax                                   ; 50
     
    1031010324    xor bx, bx                                ; 31 db
    1031110325    mov cx, 0fec0h                            ; b9 c0 fe
    10312     call 067aeh                               ; e8 c8 f9
     10326    call 067ceh                               ; e8 c8 f9
    1031310327    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10314     jmp near 06d04h                           ; e9 16 ff
     10328    jmp near 06d24h                           ; e9 16 ff
    1031510329    mov ax, strict word 00002h                ; b8 02 00
    1031610330    push ax                                   ; 50
     
    1032610340    xor bx, bx                                ; 31 db
    1032710341    mov cx, 0fee0h                            ; b9 e0 fe
    10328     call 067aeh                               ; e8 a2 f9
     10342    call 067ceh                               ; e8 a2 f9
    1032910343    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10330     jmp near 06d04h                           ; e9 f0 fe
     10344    jmp near 06d24h                           ; e9 f0 fe
    1033110345    mov ax, strict word 00002h                ; b8 02 00
    1033210346    push ax                                   ; 50
     
    1034010354    xor bx, bx                                ; 31 db
    1034110355    mov cx, strict word 0fffch                ; b9 fc ff
    10342     call 067aeh                               ; e8 82 f9
     10356    call 067ceh                               ; e8 82 f9
    1034310357    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10344     jne short 06e39h                          ; 75 07
     10358    jne short 06e59h                          ; 75 07
    1034510359    mov ax, word [bp-008h]                    ; 8b 46 f8
    1034610360    test ax, ax                               ; 85 c0
    10347     je short 06e49h                           ; 74 10
     10361    je short 06e69h                           ; 74 10
    1034810362    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10349     jmp near 06d04h                           ; e9 c3 fe
     10363    jmp near 06d24h                           ; e9 c3 fe
    1035010364    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10351     jmp near 06d04h                           ; e9 bb fe
     10365    jmp near 06d24h                           ; e9 bb fe
    1035210366    mov word [bp+014h], ax                    ; 89 46 14
    1035310367    mov word [bp+016h], ax                    ; 89 46 16
    10354     jmp short 06ebch                          ; eb 6b
     10368    jmp short 06edch                          ; eb 6b
    1035510369    mov ax, strict word 00002h                ; b8 02 00
    1035610370    push ax                                   ; 50
     
    1036410378    xor bx, bx                                ; 31 db
    1036510379    xor cx, cx                                ; 31 c9
    10366     call 067aeh                               ; e8 46 f9
     10380    call 067ceh                               ; e8 46 f9
    1036710381    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10368     jne short 06e75h                          ; 75 07
     10382    jne short 06e95h                          ; 75 07
    1036910383    mov ax, word [bp-008h]                    ; 8b 46 f8
    1037010384    test ax, ax                               ; 85 c0
    10371     je short 06e7dh                           ; 74 08
     10385    je short 06e9dh                           ; 74 08
    1037210386    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10373     jmp near 06d04h                           ; e9 87 fe
     10387    jmp near 06d24h                           ; e9 87 fe
    1037410388    mov word [bp+014h], ax                    ; 89 46 14
    1037510389    mov word [bp+016h], ax                    ; 89 46 16
    10376     jmp short 06ebch                          ; eb 37
     10390    jmp short 06edch                          ; eb 37
    1037710391    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10378     jne short 06e91h                          ; 75 06
     10392    jne short 06eb1h                          ; 75 06
    1037910393    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10380     je short 06ebch                           ; 74 2b
     10394    je short 06edch                           ; 74 2b
    1038110395    mov ax, strict word 00001h                ; b8 01 00
    1038210396    push ax                                   ; 50
     
    1039410408    xor bx, bx                                ; 31 db
    1039510409    xor cx, cx                                ; 31 c9
    10396     call 067aeh                               ; e8 fa f8
     10410    call 067ceh                               ; e8 fa f8
    1039710411    xor ax, ax                                ; 31 c0
    1039810412    mov word [bp+014h], ax                    ; 89 46 14
     
    1040310417    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1040410418    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10405     jmp near 06d5eh                           ; e9 87 fe
     10419    jmp near 06d7eh                           ; e9 87 fe
    1040610420    mov word [bp+028h], bx                    ; 89 5e 28
    1040710421    mov ax, strict word 00031h                ; b8 31 00
    10408     call 016aeh                               ; e8 ce a7
     10422    call 016aeh                               ; e8 ae a7
    1040910423    mov dh, al                                ; 88 c6
    1041010424    mov ax, strict word 00030h                ; b8 30 00
    10411     call 016aeh                               ; e8 c6 a7
     10425    call 016aeh                               ; e8 a6 a7
    1041210426    mov dl, al                                ; 88 c2
    1041310427    mov word [bp+01ch], dx                    ; 89 56 1c
    1041410428    cmp dx, 03c00h                            ; 81 fa 00 3c
    10415     jbe short 06ef8h                          ; 76 05
     10429    jbe short 06f18h                          ; 76 05
    1041610430    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1041710431    mov ax, strict word 00035h                ; b8 35 00
    10418     call 016aeh                               ; e8 b0 a7
     10432    call 016aeh                               ; e8 90 a7
    1041910433    mov dh, al                                ; 88 c6
    1042010434    mov ax, strict word 00034h                ; b8 34 00
    10421     call 016aeh                               ; e8 a8 a7
     10435    call 016aeh                               ; e8 88 a7
    1042210436    mov dl, al                                ; 88 c2
    1042310437    mov word [bp+018h], dx                    ; 89 56 18
     
    1042510439    mov word [bp+020h], ax                    ; 89 46 20
    1042610440    mov word [bp+014h], dx                    ; 89 56 14
    10427     jmp near 06d5eh                           ; e9 47 fe
    10428 _inv_op_handler:                             ; 0xf6f17 LB 0x18f
     10441    jmp near 06d7eh                           ; e9 47 fe
     10442_inv_op_handler:                             ; 0xf6f37 LB 0x18f
    1042910443    push bp                                   ; 55
    1043010444    mov bp, sp                                ; 89 e5
     
    1043510449    les bx, [bp+018h]                         ; c4 5e 18
    1043610450    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10437     jne short 06f2dh                          ; 75 06
     10451    jne short 06f4dh                          ; 75 06
    1043810452    inc word [bp+018h]                        ; ff 46 18
    10439     jmp near 0709fh                           ; e9 72 01
     10453    jmp near 070bfh                           ; e9 72 01
    1044010454    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10441     je short 06f37h                           ; 74 03
    10442     jmp near 0709bh                           ; e9 64 01
     10455    je short 06f57h                           ; 74 03
     10456    jmp near 070bbh                           ; e9 64 01
    1044310457    mov si, 00800h                            ; be 00 08
    1044410458    xor ax, ax                                ; 31 c0
     
    1046910483    sal ax, 1                                 ; d1 e0
    1047010484    rcl dx, 1                                 ; d1 d2
    10471     loop 06f88h                               ; e2 fa
     10485    loop 06fa8h                               ; e2 fa
    1047210486    cmp bx, dx                                ; 39 d3
    10473     jne short 06f96h                          ; 75 04
     10487    jne short 06fb6h                          ; 75 04
    1047410488    cmp di, ax                                ; 39 c7
    10475     je short 06f9bh                           ; 74 05
     10489    je short 06fbbh                           ; 74 05
    1047610490    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    1047710491    mov es, [bp-008h]                         ; 8e 46 f8
     
    1048410498    sal ax, 1                                 ; d1 e0
    1048510499    rcl dx, 1                                 ; d1 d2
    10486     loop 06fb1h                               ; e2 fa
     10500    loop 06fd1h                               ; e2 fa
    1048710501    cmp bx, dx                                ; 39 d3
    10488     jne short 06fbfh                          ; 75 04
     10502    jne short 06fdfh                          ; 75 04
    1048910503    cmp di, ax                                ; 39 c7
    10490     je short 06fc3h                           ; 74 04
     10504    je short 06fe3h                           ; 74 04
    1049110505    or byte [bp-006h], 002h                   ; 80 4e fa 02
    1049210506    xor ax, ax                                ; 31 c0
     
    1053810552    mov ax, strict word 00008h                ; b8 08 00
    1053910553    test cx, strict word 00001h               ; f7 c1 01 00
    10540     je near 07058h                            ; 0f 84 02 00
     10554    je near 07078h                            ; 0f 84 02 00
    1054110555    mov es, ax                                ; 8e c0
    1054210556    test cx, strict word 00002h               ; f7 c1 02 00
    10543     je near 07080h                            ; 0f 84 20 00
     10557    je near 070a0h                            ; 0f 84 20 00
    1054410558    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1054510559    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1055810572    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1055910573    iret                                      ; cf
    10560     jmp short 0709fh                          ; eb 04
     10574    jmp short 070bfh                          ; eb 04
    1056110575    sti                                       ; fb
    1056210576    hlt                                       ; f4
    10563     jmp short 0709ch                          ; eb fd
     10577    jmp short 070bch                          ; eb fd
    1056410578    lea sp, [bp-004h]                         ; 8d 66 fc
    1056510579    pop di                                    ; 5f
     
    1056710581    pop bp                                    ; 5d
    1056810582    retn                                      ; c3
    10569 init_rtc_:                                   ; 0xf70a6 LB 0x28
     10583init_rtc_:                                   ; 0xf70c6 LB 0x28
    1057010584    push bp                                   ; 55
    1057110585    mov bp, sp                                ; 89 e5
     
    1057310587    mov dx, strict word 00026h                ; ba 26 00
    1057410588    mov ax, strict word 0000ah                ; b8 0a 00
    10575     call 016c9h                               ; e8 16 a6
     10589    call 016c9h                               ; e8 f6 a5
    1057610590    mov dx, strict word 00002h                ; ba 02 00
    1057710591    mov ax, strict word 0000bh                ; b8 0b 00
    10578     call 016c9h                               ; e8 0d a6
     10592    call 016c9h                               ; e8 ed a5
    1057910593    mov ax, strict word 0000ch                ; b8 0c 00
    10580     call 016aeh                               ; e8 ec a5
     10594    call 016aeh                               ; e8 cc a5
    1058110595    mov ax, strict word 0000dh                ; b8 0d 00
    10582     call 016aeh                               ; e8 e6 a5
     10596    call 016aeh                               ; e8 c6 a5
    1058310597    lea sp, [bp-002h]                         ; 8d 66 fe
    1058410598    pop dx                                    ; 5a
    1058510599    pop bp                                    ; 5d
    1058610600    retn                                      ; c3
    10587 rtc_updating_:                               ; 0xf70ce LB 0x21
     10601rtc_updating_:                               ; 0xf70ee LB 0x21
    1058810602    push bp                                   ; 55
    1058910603    mov bp, sp                                ; 89 e5
     
    1059110605    mov dx, 061a8h                            ; ba a8 61
    1059210606    dec dx                                    ; 4a
    10593     je short 070e6h                           ; 74 0e
     10607    je short 07106h                           ; 74 0e
    1059410608    mov ax, strict word 0000ah                ; b8 0a 00
    10595     call 016aeh                               ; e8 d0 a5
     10609    call 016aeh                               ; e8 b0 a5
    1059610610    test AL, strict byte 080h                 ; a8 80
    10597     jne short 070d5h                          ; 75 f3
     10611    jne short 070f5h                          ; 75 f3
    1059810612    xor ax, ax                                ; 31 c0
    10599     jmp short 070e9h                          ; eb 03
     10613    jmp short 07109h                          ; eb 03
    1060010614    mov ax, strict word 00001h                ; b8 01 00
    1060110615    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1060310617    pop bp                                    ; 5d
    1060410618    retn                                      ; c3
    10605 _int70_function:                             ; 0xf70ef LB 0xbf
     10619_int70_function:                             ; 0xf710f LB 0xbf
    1060610620    push bp                                   ; 55
    1060710621    mov bp, sp                                ; 89 e5
     
    1060910623    push ax                                   ; 50
    1061010624    mov ax, strict word 0000bh                ; b8 0b 00
    10611     call 016aeh                               ; e8 b4 a5
     10625    call 016aeh                               ; e8 94 a5
    1061210626    mov bl, al                                ; 88 c3
    1061310627    mov byte [bp-004h], al                    ; 88 46 fc
    1061410628    mov ax, strict word 0000ch                ; b8 0c 00
    10615     call 016aeh                               ; e8 a9 a5
     10629    call 016aeh                               ; e8 89 a5
    1061610630    mov dl, al                                ; 88 c2
    1061710631    test bl, 060h                             ; f6 c3 60
    10618     jne short 0710fh                          ; 75 03
    10619     jmp near 07195h                           ; e9 86 00
     10632    jne short 0712fh                          ; 75 03
     10633    jmp near 071b5h                           ; e9 86 00
    1062010634    test AL, strict byte 020h                 ; a8 20
    10621     je short 07117h                           ; 74 04
     10635    je short 07137h                           ; 74 04
    1062210636    sti                                       ; fb
    1062310637    int 04ah                                  ; cd 4a
    1062410638    cli                                       ; fa
    1062510639    test dl, 040h                             ; f6 c2 40
    10626     je short 0717fh                           ; 74 63
     10640    je short 0719fh                           ; 74 63
    1062710641    mov dx, 000a0h                            ; ba a0 00
    1062810642    mov ax, strict word 00040h                ; b8 40 00
    10629     call 01652h                               ; e8 2d a5
     10643    call 01652h                               ; e8 0d a5
    1063010644    test al, al                               ; 84 c0
    10631     je short 07195h                           ; 74 6c
     10645    je short 071b5h                           ; 74 6c
    1063210646    mov dx, 0009ch                            ; ba 9c 00
    1063310647    mov ax, strict word 00040h                ; b8 40 00
    10634     call 0168ah                               ; e8 58 a5
     10648    call 0168ah                               ; e8 38 a5
    1063510649    test dx, dx                               ; 85 d2
    10636     jne short 07181h                          ; 75 4b
     10650    jne short 071a1h                          ; 75 4b
    1063710651    cmp ax, 003d1h                            ; 3d d1 03
    10638     jnc short 07181h                          ; 73 46
     10652    jnc short 071a1h                          ; 73 46
    1063910653    mov dx, 00098h                            ; ba 98 00
    1064010654    mov ax, strict word 00040h                ; b8 40 00
    10641     call 0166eh                               ; e8 2a a5
     10655    call 0166eh                               ; e8 0a a5
    1064210656    mov si, ax                                ; 89 c6
    1064310657    mov dx, 0009ah                            ; ba 9a 00
    1064410658    mov ax, strict word 00040h                ; b8 40 00
    10645     call 0166eh                               ; e8 1f a5
     10659    call 0166eh                               ; e8 ff a4
    1064610660    mov cx, ax                                ; 89 c1
    1064710661    xor bx, bx                                ; 31 db
    1064810662    mov dx, 000a0h                            ; ba a0 00
    1064910663    mov ax, strict word 00040h                ; b8 40 00
    10650     call 01660h                               ; e8 04 a5
     10664    call 01660h                               ; e8 e4 a4
    1065110665    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1065210666    and dl, 037h                              ; 80 e2 37
    1065310667    xor dh, dh                                ; 30 f6
    1065410668    mov ax, strict word 0000bh                ; b8 0b 00
    10655     call 016c9h                               ; e8 5f a5
     10669    call 016c9h                               ; e8 3f a5
    1065610670    mov dx, cx                                ; 89 ca
    1065710671    mov ax, si                                ; 89 f0
    10658     call 01652h                               ; e8 e1 a4
     10672    call 01652h                               ; e8 c1 a4
    1065910673    mov bl, al                                ; 88 c3
    1066010674    or bl, 080h                               ; 80 cb 80
     
    1066210676    mov dx, cx                                ; 89 ca
    1066310677    mov ax, si                                ; 89 f0
    10664     call 01660h                               ; e8 e1 a4
    10665     jmp short 07195h                          ; eb 14
     10678    call 01660h                               ; e8 c1 a4
     10679    jmp short 071b5h                          ; eb 14
    1066610680    mov bx, ax                                ; 89 c3
    1066710681    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1067010684    mov dx, 0009ch                            ; ba 9c 00
    1067110685    mov ax, strict word 00040h                ; b8 40 00
    10672     call 0169ch                               ; e8 07 a5
    10673     call 0e030h                               ; e8 98 6e
     10686    call 0169ch                               ; e8 e7 a4
     10687    call 0e030h                               ; e8 78 6e
    1067410688    lea sp, [bp-002h]                         ; 8d 66 fe
    1067510689    pop si                                    ; 5e
    1067610690    pop bp                                    ; 5d
    1067710691    retn                                      ; c3
    10678     les si, [bx+di-015h]                      ; c4 71 eb
    10679     jno short 071b3h                          ; 71 10
    10680     jc short 071f1h                           ; 72 4c
    10681     jc short 07145h                           ; 72 9e
    10682     jc short 0717eh                           ; 72 d5
    10683     jc short 071c7h                           ; 72 1c
    10684     jnc short 07224h                          ; 73 77
     10692    in AL, strict byte 071h                   ; e4 71
     10693    or si, word [bp+si+030h]                  ; 0b 72 30
     10694    jc short 07231h                           ; 72 6c
     10695    jc short 07185h                           ; 72 be
     10696    jc short 071beh                           ; 72 f5
     10697    jc short 07207h                           ; 72 3c
     10698    jnc short 07164h                          ; 73 97
    1068510699    db  073h
    10686 _int1a_function:                             ; 0xf71ae LB 0x1d9
     10700_int1a_function:                             ; 0xf71ce LB 0x1d9
    1068710701    push bp                                   ; 55
    1068810702    mov bp, sp                                ; 89 e5
     
    1069010704    mov al, byte [bp+013h]                    ; 8a 46 13
    1069110705    cmp AL, strict byte 007h                  ; 3c 07
    10692     jnbe short 07217h                         ; 77 5e
     10706    jnbe short 07237h                         ; 77 5e
    1069310707    mov bl, al                                ; 88 c3
    1069410708    xor bh, bh                                ; 30 ff
    1069510709    sal bx, 1                                 ; d1 e3
    10696     jmp word [cs:bx+0719eh]                   ; 2e ff a7 9e 71
     10710    jmp word [cs:bx+071beh]                   ; 2e ff a7 be 71
    1069710711    cli                                       ; fa
    1069810712    mov bx, 0046eh                            ; bb 6e 04
     
    1070910723    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1071010724    sti                                       ; fb
    10711     jmp short 07217h                          ; eb 2c
     10725    jmp short 07237h                          ; eb 2c
    1071210726    cli                                       ; fa
    1071310727    mov bx, 0046eh                            ; bb 6e 04
     
    1072310737    sti                                       ; fb
    1072410738    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10725     jmp short 07217h                          ; eb 07
    10726     call 070ceh                               ; e8 bb fe
     10739    jmp short 07237h                          ; eb 07
     10740    call 070eeh                               ; e8 bb fe
    1072710741    test ax, ax                               ; 85 c0
    10728     je short 0721ah                           ; 74 03
    10729     jmp near 07248h                           ; e9 2e 00
     10742    je short 0723ah                           ; 74 03
     10743    jmp near 07268h                           ; e9 2e 00
    1073010744    xor ax, ax                                ; 31 c0
    10731     call 016aeh                               ; e8 8f a4
     10745    call 016aeh                               ; e8 6f a4
    1073210746    mov byte [bp+00fh], al                    ; 88 46 0f
    1073310747    mov ax, strict word 00002h                ; b8 02 00
    10734     call 016aeh                               ; e8 86 a4
     10748    call 016aeh                               ; e8 66 a4
    1073510749    mov byte [bp+010h], al                    ; 88 46 10
    1073610750    mov ax, strict word 00004h                ; b8 04 00
    10737     call 016aeh                               ; e8 7d a4
     10751    call 016aeh                               ; e8 5d a4
    1073810752    mov dl, al                                ; 88 c2
    1073910753    mov byte [bp+011h], al                    ; 88 46 11
    1074010754    mov ax, strict word 0000bh                ; b8 0b 00
    10741     call 016aeh                               ; e8 72 a4
     10755    call 016aeh                               ; e8 52 a4
    1074210756    and AL, strict byte 001h                  ; 24 01
    1074310757    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1074710761    pop bp                                    ; 5d
    1074810762    retn                                      ; c3
    10749     call 070ceh                               ; e8 7f fe
     10763    call 070eeh                               ; e8 7f fe
    1075010764    test ax, ax                               ; 85 c0
    10751     je short 07256h                           ; 74 03
    10752     call 070a6h                               ; e8 50 fe
     10765    je short 07276h                           ; 74 03
     10766    call 070c6h                               ; e8 50 fe
    1075310767    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1075410768    xor dh, dh                                ; 30 f6
    1075510769    xor ax, ax                                ; 31 c0
    10756     call 016c9h                               ; e8 69 a4
     10770    call 016c9h                               ; e8 49 a4
    1075710771    mov dl, byte [bp+010h]                    ; 8a 56 10
    1075810772    xor dh, dh                                ; 30 f6
    1075910773    mov ax, strict word 00002h                ; b8 02 00
    10760     call 016c9h                               ; e8 5e a4
     10774    call 016c9h                               ; e8 3e a4
    1076110775    mov dl, byte [bp+011h]                    ; 8a 56 11
    1076210776    xor dh, dh                                ; 30 f6
    1076310777    mov ax, strict word 00004h                ; b8 04 00
    10764     call 016c9h                               ; e8 53 a4
     10778    call 016c9h                               ; e8 33 a4
    1076510779    mov ax, strict word 0000bh                ; b8 0b 00
    10766     call 016aeh                               ; e8 32 a4
     10780    call 016aeh                               ; e8 12 a4
    1076710781    mov bl, al                                ; 88 c3
    1076810782    and bl, 060h                              ; 80 e3 60
     
    1077410788    xor dh, dh                                ; 30 f6
    1077510789    mov ax, strict word 0000bh                ; b8 0b 00
    10776     call 016c9h                               ; e8 34 a4
     10790    call 016c9h                               ; e8 14 a4
    1077710791    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1077810792    mov byte [bp+012h], bl                    ; 88 5e 12
    10779     jmp short 07248h                          ; eb aa
     10793    jmp short 07268h                          ; eb aa
    1078010794    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10781     call 070ceh                               ; e8 29 fe
     10795    call 070eeh                               ; e8 29 fe
    1078210796    test ax, ax                               ; 85 c0
    10783     je short 072abh                           ; 74 02
    10784     jmp short 07248h                          ; eb 9d
     10797    je short 072cbh                           ; 74 02
     10798    jmp short 07268h                          ; eb 9d
    1078510799    mov ax, strict word 00009h                ; b8 09 00
    10786     call 016aeh                               ; e8 fd a3
     10800    call 016aeh                               ; e8 dd a3
    1078710801    mov byte [bp+010h], al                    ; 88 46 10
    1078810802    mov ax, strict word 00008h                ; b8 08 00
    10789     call 016aeh                               ; e8 f4 a3
     10803    call 016aeh                               ; e8 d4 a3
    1079010804    mov byte [bp+00fh], al                    ; 88 46 0f
    1079110805    mov ax, strict word 00007h                ; b8 07 00
    10792     call 016aeh                               ; e8 eb a3
     10806    call 016aeh                               ; e8 cb a3
    1079310807    mov byte [bp+00eh], al                    ; 88 46 0e
    1079410808    mov ax, strict word 00032h                ; b8 32 00
    10795     call 016aeh                               ; e8 e2 a3
     10809    call 016aeh                               ; e8 c2 a3
    1079610810    mov byte [bp+011h], al                    ; 88 46 11
    1079710811    mov byte [bp+012h], al                    ; 88 46 12
    10798     jmp near 07248h                           ; e9 73 ff
    10799     call 070ceh                               ; e8 f6 fd
     10812    jmp near 07268h                           ; e9 73 ff
     10813    call 070eeh                               ; e8 f6 fd
    1080010814    test ax, ax                               ; 85 c0
    10801     je short 072e2h                           ; 74 06
    10802     call 070a6h                               ; e8 c7 fd
    10803     jmp near 07248h                           ; e9 66 ff
     10815    je short 07302h                           ; 74 06
     10816    call 070c6h                               ; e8 c7 fd
     10817    jmp near 07268h                           ; e9 66 ff
    1080410818    mov dl, byte [bp+010h]                    ; 8a 56 10
    1080510819    xor dh, dh                                ; 30 f6
    1080610820    mov ax, strict word 00009h                ; b8 09 00
    10807     call 016c9h                               ; e8 dc a3
     10821    call 016c9h                               ; e8 bc a3
    1080810822    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1080910823    xor dh, dh                                ; 30 f6
    1081010824    mov ax, strict word 00008h                ; b8 08 00
    10811     call 016c9h                               ; e8 d1 a3
     10825    call 016c9h                               ; e8 b1 a3
    1081210826    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1081310827    xor dh, dh                                ; 30 f6
    1081410828    mov ax, strict word 00007h                ; b8 07 00
    10815     call 016c9h                               ; e8 c6 a3
     10829    call 016c9h                               ; e8 a6 a3
    1081610830    mov dl, byte [bp+011h]                    ; 8a 56 11
    1081710831    xor dh, dh                                ; 30 f6
    1081810832    mov ax, strict word 00032h                ; b8 32 00
    10819     call 016c9h                               ; e8 bb a3
     10833    call 016c9h                               ; e8 9b a3
    1082010834    mov ax, strict word 0000bh                ; b8 0b 00
    10821     call 016aeh                               ; e8 9a a3
     10835    call 016aeh                               ; e8 7a a3
    1082210836    mov bl, al                                ; 88 c3
    1082310837    and bl, 07fh                              ; 80 e3 7f
    10824     jmp near 0728bh                           ; e9 6f ff
     10838    jmp near 072abh                           ; e9 6f ff
    1082510839    mov ax, strict word 0000bh                ; b8 0b 00
    10826     call 016aeh                               ; e8 8c a3
     10840    call 016aeh                               ; e8 6c a3
    1082710841    mov bl, al                                ; 88 c3
    1082810842    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1082910843    test AL, strict byte 020h                 ; a8 20
    10830     je short 07330h                           ; 74 03
    10831     jmp near 07248h                           ; e9 18 ff
    10832     call 070ceh                               ; e8 9b fd
     10844    je short 07350h                           ; 74 03
     10845    jmp near 07268h                           ; e9 18 ff
     10846    call 070eeh                               ; e8 9b fd
    1083310847    test ax, ax                               ; 85 c0
    10834     je short 0733ah                           ; 74 03
    10835     call 070a6h                               ; e8 6c fd
     10848    je short 0735ah                           ; 74 03
     10849    call 070c6h                               ; e8 6c fd
    1083610850    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1083710851    xor dh, dh                                ; 30 f6
    1083810852    mov ax, strict word 00001h                ; b8 01 00
    10839     call 016c9h                               ; e8 84 a3
     10853    call 016c9h                               ; e8 64 a3
    1084010854    mov dl, byte [bp+010h]                    ; 8a 56 10
    1084110855    xor dh, dh                                ; 30 f6
    1084210856    mov ax, strict word 00003h                ; b8 03 00
    10843     call 016c9h                               ; e8 79 a3
     10857    call 016c9h                               ; e8 59 a3
    1084410858    mov dl, byte [bp+011h]                    ; 8a 56 11
    1084510859    xor dh, dh                                ; 30 f6
    1084610860    mov ax, strict word 00005h                ; b8 05 00
    10847     call 016c9h                               ; e8 6e a3
     10861    call 016c9h                               ; e8 4e a3
    1084810862    mov dx, 000a1h                            ; ba a1 00
    1084910863    in AL, DX                                 ; ec
     
    1085710871    xor dh, dh                                ; 30 f6
    1085810872    mov ax, strict word 0000bh                ; b8 0b 00
    10859     call 016c9h                               ; e8 55 a3
    10860     jmp near 07248h                           ; e9 d1 fe
     10873    call 016c9h                               ; e8 35 a3
     10874    jmp near 07268h                           ; e9 d1 fe
    1086110875    mov ax, strict word 0000bh                ; b8 0b 00
    10862     call 016aeh                               ; e8 31 a3
     10876    call 016aeh                               ; e8 11 a3
    1086310877    mov bl, al                                ; 88 c3
    1086410878    mov dl, al                                ; 88 c2
    1086510879    and dl, 057h                              ; 80 e2 57
    10866     jmp near 0728dh                           ; e9 06 ff
    10867 send_to_mouse_ctrl_:                         ; 0xf7387 LB 0x38
     10880    jmp near 072adh                           ; e9 06 ff
     10881send_to_mouse_ctrl_:                         ; 0xf73a7 LB 0x38
    1086810882    push bp                                   ; 55
    1086910883    mov bp, sp                                ; 89 e5
     
    1087610890    ; sub ah, ah                                ; 2a e4
    1087710891    test AL, strict byte 002h                 ; a8 02
    10878     je short 073aah                           ; 74 12
     10892    je short 073cah                           ; 74 12
    1087910893    mov ax, 008eeh                            ; b8 ee 08
    1088010894    push ax                                   ; 50
    10881     mov ax, 0116ch                            ; b8 6c 11
     10895    mov ax, 01168h                            ; b8 68 11
    1088210896    push ax                                   ; 50
    1088310897    mov ax, strict word 00007h                ; b8 07 00
    1088410898    push ax                                   ; 50
    10885     call 01976h                               ; e8 cf a5
     10899    call 01976h                               ; e8 af a5
    1088610900    add sp, strict byte 00006h                ; 83 c4 06
    1088710901    mov AL, strict byte 0d4h                  ; b0 d4
     
    1089710911    pop bp                                    ; 5d
    1089810912    retn                                      ; c3
    10899 get_mouse_data_:                             ; 0xf73bf LB 0x5d
     10913get_mouse_data_:                             ; 0xf73df LB 0x5d
    1090010914    push bp                                   ; 55
    1090110915    mov bp, sp                                ; 89 e5
     
    1091210926    and ax, strict word 00021h                ; 25 21 00
    1091310927    cmp ax, strict word 00021h                ; 3d 21 00
    10914     je short 07402h                           ; 74 28
     10928    je short 07422h                           ; 74 28
    1091510929    test cx, cx                               ; 85 c9
    10916     je short 07402h                           ; 74 24
     10930    je short 07422h                           ; 74 24
    1091710931    mov dx, strict word 00061h                ; ba 61 00
    1091810932    in AL, DX                                 ; ec
     
    1093110945    xor ah, ah                                ; 30 e4
    1093210946    cmp dx, ax                                ; 39 c2
    10933     je short 073e9h                           ; 74 ea
     10947    je short 07409h                           ; 74 ea
    1093410948    dec cx                                    ; 49
    10935     jmp short 073cch                          ; eb ca
     10949    jmp short 073ech                          ; eb ca
    1093610950    test cx, cx                               ; 85 c9
    10937     jne short 0740ah                          ; 75 04
     10951    jne short 0742ah                          ; 75 04
    1093810952    mov AL, strict byte 001h                  ; b0 01
    10939     jmp short 07415h                          ; eb 0b
     10953    jmp short 07435h                          ; eb 0b
    1094010954    mov dx, strict word 00060h                ; ba 60 00
    1094110955    in AL, DX                                 ; ec
     
    1094910963    pop bp                                    ; 5d
    1095010964    retn                                      ; c3
    10951 set_kbd_command_byte_:                       ; 0xf741c LB 0x36
     10965set_kbd_command_byte_:                       ; 0xf743c LB 0x36
    1095210966    push bp                                   ; 55
    1095310967    mov bp, sp                                ; 89 e5
     
    1096010974    ; sub ah, ah                                ; 2a e4
    1096110975    test AL, strict byte 002h                 ; a8 02
    10962     je short 0743fh                           ; 74 12
     10976    je short 0745fh                           ; 74 12
    1096310977    mov ax, 008f8h                            ; b8 f8 08
    1096410978    push ax                                   ; 50
    10965     mov ax, 0116ch                            ; b8 6c 11
     10979    mov ax, 01168h                            ; b8 68 11
    1096610980    push ax                                   ; 50
    1096710981    mov ax, strict word 00007h                ; b8 07 00
    1096810982    push ax                                   ; 50
    10969     call 01976h                               ; e8 3a a5
     10983    call 01976h                               ; e8 1a a5
    1097010984    add sp, strict byte 00006h                ; 83 c4 06
    1097110985    mov AL, strict byte 060h                  ; b0 60
     
    1098010994    pop bp                                    ; 5d
    1098110995    retn                                      ; c3
    10982 _int74_function:                             ; 0xf7452 LB 0xd2
     10996_int74_function:                             ; 0xf7472 LB 0xd2
    1098310997    push bp                                   ; 55
    1098410998    mov bp, sp                                ; 89 e5
     
    1098611000    mov dx, strict word 0000eh                ; ba 0e 00
    1098711001    mov ax, strict word 00040h                ; b8 40 00
    10988     call 0166eh                               ; e8 0d a2
     11002    call 0166eh                               ; e8 ed a1
    1098911003    mov cx, ax                                ; 89 c1
    1099011004    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1099511009    and AL, strict byte 021h                  ; 24 21
    1099611010    cmp AL, strict byte 021h                  ; 3c 21
    10997     jne short 07496h                          ; 75 22
     11011    jne short 074b6h                          ; 75 22
    1099811012    mov dx, strict word 00060h                ; ba 60 00
    1099911013    in AL, DX                                 ; ec
     
    1100311017    mov dx, strict word 00026h                ; ba 26 00
    1100411018    mov ax, cx                                ; 89 c8
    11005     call 01652h                               ; e8 ce a1
     11019    call 01652h                               ; e8 ae a1
    1100611020    mov byte [bp-002h], al                    ; 88 46 fe
    1100711021    mov dx, strict word 00027h                ; ba 27 00
    1100811022    mov ax, cx                                ; 89 c8
    11009     call 01652h                               ; e8 c3 a1
     11023    call 01652h                               ; e8 a3 a1
    1101011024    mov byte [bp-006h], al                    ; 88 46 fa
    1101111025    test AL, strict byte 080h                 ; a8 80
    11012     jne short 07499h                          ; 75 03
    11013     jmp near 07510h                           ; e9 77 00
     11026    jne short 074b9h                          ; 75 03
     11027    jmp near 07530h                           ; e9 77 00
    1101411028    mov al, byte [bp-006h]                    ; 8a 46 fa
    1101511029    and AL, strict byte 007h                  ; 24 07
     
    1102511039    add dx, strict byte 00028h                ; 83 c2 28
    1102611040    mov ax, cx                                ; 89 c8
    11027     call 01660h                               ; e8 a4 a1
     11041    call 01660h                               ; e8 84 a1
    1102811042    mov al, byte [bp-008h]                    ; 8a 46 f8
    1102911043    cmp al, byte [bp-004h]                    ; 3a 46 fc
    11030     jc short 07500h                           ; 72 3c
     11044    jc short 07520h                           ; 72 3c
    1103111045    mov dx, strict word 00028h                ; ba 28 00
    1103211046    mov ax, cx                                ; 89 c8
    11033     call 01652h                               ; e8 86 a1
     11047    call 01652h                               ; e8 66 a1
    1103411048    xor ah, ah                                ; 30 e4
    1103511049    mov word [bp+00ch], ax                    ; 89 46 0c
    1103611050    mov dx, strict word 00029h                ; ba 29 00
    1103711051    mov ax, cx                                ; 89 c8
    11038     call 01652h                               ; e8 79 a1
     11052    call 01652h                               ; e8 59 a1
    1103911053    xor ah, ah                                ; 30 e4
    1104011054    mov word [bp+00ah], ax                    ; 89 46 0a
    1104111055    mov dx, strict word 0002ah                ; ba 2a 00
    1104211056    mov ax, cx                                ; 89 c8
    11043     call 01652h                               ; e8 6c a1
     11057    call 01652h                               ; e8 4c a1
    1104411058    xor ah, ah                                ; 30 e4
    1104511059    mov word [bp+008h], ax                    ; 89 46 08
     
    1104811062    mov byte [bp-002h], ah                    ; 88 66 fe
    1104911063    test byte [bp-006h], 080h                 ; f6 46 fa 80
    11050     je short 07503h                           ; 74 0a
     11064    je short 07523h                           ; 74 0a
    1105111065    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    11052     jmp short 07503h                          ; eb 03
     11066    jmp short 07523h                          ; eb 03
    1105311067    inc byte [bp-002h]                        ; fe 46 fe
    1105411068    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1105611070    mov dx, strict word 00026h                ; ba 26 00
    1105711071    mov ax, cx                                ; 89 c8
    11058     call 01660h                               ; e8 50 a1
     11072    call 01660h                               ; e8 30 a1
    1105911073    mov sp, bp                                ; 89 ec
    1106011074    pop bp                                    ; 5d
    1106111075    retn                                      ; c3
    11062     db  066h, 075h, 0e2h
    11063     ; jne short 074f9h                          ; 66 75 e2
    11064     jne short 0757bh                          ; 75 62
    11065     jbe short 07512h                          ; 76 f7
    11066     jbe short 07586h                          ; 76 69
    11067     jnbe short 074cch                         ; 77 ad
    11068     jne short 074b2h                          ; 75 91
    11069     jnbe short 07581h                         ; 77 5e
     11076    xchg byte [di+002h], dh                   ; 86 75 02
     11077    jbe short 074bbh                          ; 76 82
     11078    jbe short 07552h                          ; 76 17
     11079    jnbe short 074c6h                         ; 77 89
     11080    jnbe short 0750ch                         ; 77 cd
     11081    jne short 074f2h                          ; 75 b1
     11082    jnbe short 075c1h                         ; 77 7e
    1107011083    db  078h
    11071 _int15_function_mouse:                       ; 0xf7524 LB 0x3a0
     11084_int15_function_mouse:                       ; 0xf7544 LB 0x3a0
    1107211085    push bp                                   ; 55
    1107311086    mov bp, sp                                ; 89 e5
     
    1107611089    mov dx, strict word 0000eh                ; ba 0e 00
    1107711090    mov ax, strict word 00040h                ; b8 40 00
    11078     call 0166eh                               ; e8 3a a1
     11091    call 0166eh                               ; e8 1a a1
    1107911092    mov cx, ax                                ; 89 c1
    1108011093    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    11081     jbe short 07547h                          ; 76 0b
     11094    jbe short 07567h                          ; 76 0b
    1108211095    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1108311096    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11084     jmp near 078beh                           ; e9 77 03
     11097    jmp near 078deh                           ; e9 77 03
    1108511098    mov ax, strict word 00065h                ; b8 65 00
    11086     call 0741ch                               ; e8 cf fe
     11099    call 0743ch                               ; e8 cf fe
    1108711100    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1108811101    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1108911102    mov bl, byte [bp+012h]                    ; 8a 5e 12
    1109011103    cmp bl, 007h                              ; 80 fb 07
    11091     jnbe short 075bbh                         ; 77 5e
     11104    jnbe short 075dbh                         ; 77 5e
    1109211105    xor bh, bh                                ; 30 ff
    1109311106    sal bx, 1                                 ; d1 e3
    11094     jmp word [cs:bx+07514h]                   ; 2e ff a7 14 75
     11107    jmp word [cs:bx+07534h]                   ; 2e ff a7 34 75
    1109511108    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    11096     jnbe short 075beh                         ; 77 52
     11109    jnbe short 075deh                         ; 77 52
    1109711110    mov dx, strict word 00027h                ; ba 27 00
    1109811111    mov ax, cx                                ; 89 c8
    11099     call 01652h                               ; e8 de a0
     11112    call 01652h                               ; e8 be a0
    1110011113    test AL, strict byte 080h                 ; a8 80
    11101     jne short 07583h                          ; 75 0b
     11114    jne short 075a3h                          ; 75 0b
    1110211115    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110311116    mov byte [bp+013h], 005h                  ; c6 46 13 05
    11104     jmp near 078b8h                           ; e9 35 03
     11117    jmp near 078d8h                           ; e9 35 03
    1110511118    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    11106     jne short 0758dh                          ; 75 04
     11119    jne short 075adh                          ; 75 04
    1110711120    mov AL, strict byte 0f5h                  ; b0 f5
    11108     jmp short 0758fh                          ; eb 02
     11121    jmp short 075afh                          ; eb 02
    1110911122    mov AL, strict byte 0f4h                  ; b0 f4
    1111011123    xor ah, ah                                ; 30 e4
    11111     call 07387h                               ; e8 f3 fd
     11124    call 073a7h                               ; e8 f3 fd
    1111211125    test al, al                               ; 84 c0
    11113     jne short 075c1h                          ; 75 29
     11126    jne short 075e1h                          ; 75 29
    1111411127    mov dx, ss                                ; 8c d2
    1111511128    lea ax, [bp-006h]                         ; 8d 46 fa
    11116     call 073bfh                               ; e8 1f fe
     11129    call 073dfh                               ; e8 1f fe
    1111711130    test al, al                               ; 84 c0
    11118     je short 075aah                           ; 74 06
     11131    je short 075cah                           ; 74 06
    1111911132    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11120     jne short 075c1h                          ; 75 17
    11121     jmp near 078b8h                           ; e9 0b 03
     11133    jne short 075e1h                          ; 75 17
     11134    jmp near 078d8h                           ; e9 0b 03
    1112211135    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1112311136    cmp AL, strict byte 001h                  ; 3c 01
    11124     jc short 075b8h                           ; 72 04
     11137    jc short 075d8h                           ; 72 04
    1112511138    cmp AL, strict byte 008h                  ; 3c 08
    11126     jbe short 075c4h                          ; 76 0c
    11127     jmp near 0775fh                           ; e9 a4 01
    11128     jmp near 078a2h                           ; e9 e4 02
    11129     jmp near 078b0h                           ; e9 ef 02
    11130     jmp near 07836h                           ; e9 72 02
     11139    jbe short 075e4h                          ; 76 0c
     11140    jmp near 0777fh                           ; e9 a4 01
     11141    jmp near 078c2h                           ; e9 e4 02
     11142    jmp near 078d0h                           ; e9 ef 02
     11143    jmp near 07856h                           ; e9 72 02
    1113111144    mov dx, strict word 00027h                ; ba 27 00
    1113211145    mov ax, cx                                ; 89 c8
    11133     call 01652h                               ; e8 86 a0
     11146    call 01652h                               ; e8 66 a0
    1113411147    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1113511148    db  0feh, 0cch
     
    1114111154    mov dx, strict word 00027h                ; ba 27 00
    1114211155    mov ax, cx                                ; 89 c8
    11143     call 01660h                               ; e8 7e a0
     11156    call 01660h                               ; e8 5e a0
    1114411157    mov dx, strict word 00026h                ; ba 26 00
    1114511158    mov ax, cx                                ; 89 c8
    11146     call 01652h                               ; e8 68 a0
     11159    call 01652h                               ; e8 48 a0
    1114711160    mov bl, al                                ; 88 c3
    1114811161    and bl, 0f8h                              ; 80 e3 f8
     
    1115011163    mov dx, strict word 00026h                ; ba 26 00
    1115111164    mov ax, cx                                ; 89 c8
    11152     call 01660h                               ; e8 67 a0
     11165    call 01660h                               ; e8 47 a0
    1115311166    mov ax, 000ffh                            ; b8 ff 00
    11154     call 07387h                               ; e8 88 fd
     11167    call 073a7h                               ; e8 88 fd
    1115511168    test al, al                               ; 84 c0
    11156     jne short 075c1h                          ; 75 be
     11169    jne short 075e1h                          ; 75 be
    1115711170    mov dx, ss                                ; 8c d2
    1115811171    lea ax, [bp-008h]                         ; 8d 46 f8
    11159     call 073bfh                               ; e8 b4 fd
     11172    call 073dfh                               ; e8 b4 fd
    1116011173    mov cl, al                                ; 88 c1
    1116111174    cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
    11162     jne short 0761dh                          ; 75 0a
     11175    jne short 0763dh                          ; 75 0a
    1116311176    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1116411177    mov byte [bp+013h], 004h                  ; c6 46 13 04
    11165     jmp short 075aah                          ; eb 8d
     11178    jmp short 075cah                          ; eb 8d
    1116611179    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11167     je short 07637h                           ; 74 14
     11180    je short 07657h                           ; 74 14
    1116811181    mov al, byte [bp-008h]                    ; 8a 46 f8
    1116911182    xor ah, ah                                ; 30 e4
     
    1117311186    mov ax, strict word 00007h                ; b8 07 00
    1117411187    push ax                                   ; 50
    11175     call 01976h                               ; e8 42 a3
     11188    call 01976h                               ; e8 22 a3
    1117611189    add sp, strict byte 00006h                ; 83 c4 06
    1117711190    test cl, cl                               ; 84 c9
    11178     jne short 075c1h                          ; 75 86
     11191    jne short 075e1h                          ; 75 86
    1117911192    mov dx, ss                                ; 8c d2
    1118011193    lea ax, [bp-006h]                         ; 8d 46 fa
    11181     call 073bfh                               ; e8 7c fd
     11194    call 073dfh                               ; e8 7c fd
    1118211195    test al, al                               ; 84 c0
    11183     jne short 0769dh                          ; 75 56
     11196    jne short 076bdh                          ; 75 56
    1118411197    mov dx, ss                                ; 8c d2
    1118511198    lea ax, [bp-004h]                         ; 8d 46 fc
    11186     call 073bfh                               ; e8 70 fd
     11199    call 073dfh                               ; e8 70 fd
    1118711200    test al, al                               ; 84 c0
    11188     jne short 0769dh                          ; 75 4a
     11201    jne short 076bdh                          ; 75 4a
    1118911202    mov al, byte [bp-006h]                    ; 8a 46 fa
    1119011203    mov byte [bp+00ch], al                    ; 88 46 0c
    1119111204    mov al, byte [bp-004h]                    ; 8a 46 fc
    1119211205    mov byte [bp+00dh], al                    ; 88 46 0d
    11193     jmp near 078b8h                           ; e9 56 02
     11206    jmp near 078d8h                           ; e9 56 02
    1119411207    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1119511208    cmp AL, strict byte 003h                  ; 3c 03
    11196     jc short 07679h                           ; 72 10
    11197     jbe short 07697h                          ; 76 2c
     11209    jc short 07699h                           ; 72 10
     11210    jbe short 076b7h                          ; 76 2c
    1119811211    cmp AL, strict byte 006h                  ; 3c 06
    11199     je short 076ach                           ; 74 3d
     11212    je short 076cch                           ; 74 3d
    1120011213    cmp AL, strict byte 005h                  ; 3c 05
    11201     je short 076a6h                           ; 74 33
     11214    je short 076c6h                           ; 74 33
    1120211215    cmp AL, strict byte 004h                  ; 3c 04
    11203     je short 076a0h                           ; 74 29
    11204     jmp short 076b2h                          ; eb 39
     11216    je short 076c0h                           ; 74 29
     11217    jmp short 076d2h                          ; eb 39
    1120511218    cmp AL, strict byte 002h                  ; 3c 02
    11206     je short 07691h                           ; 74 14
     11219    je short 076b1h                           ; 74 14
    1120711220    cmp AL, strict byte 001h                  ; 3c 01
    11208     je short 0768bh                           ; 74 0a
     11221    je short 076abh                           ; 74 0a
    1120911222    test al, al                               ; 84 c0
    11210     jne short 076b2h                          ; 75 2d
     11223    jne short 076d2h                          ; 75 2d
    1121111224    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    11212     jmp short 076b6h                          ; eb 2b
     11225    jmp short 076d6h                          ; eb 2b
    1121311226    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    11214     jmp short 076b6h                          ; eb 25
     11227    jmp short 076d6h                          ; eb 25
    1121511228    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    11216     jmp short 076b6h                          ; eb 1f
     11229    jmp short 076d6h                          ; eb 1f
    1121711230    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    11218     jmp short 076b6h                          ; eb 19
    11219     jmp near 07836h                           ; e9 96 01
     11231    jmp short 076d6h                          ; eb 19
     11232    jmp near 07856h                           ; e9 96 01
    1122011233    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    11221     jmp short 076b6h                          ; eb 10
     11234    jmp short 076d6h                          ; eb 10
    1122211235    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    11223     jmp short 076b6h                          ; eb 0a
     11236    jmp short 076d6h                          ; eb 0a
    1122411237    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    11225     jmp short 076b6h                          ; eb 04
     11238    jmp short 076d6h                          ; eb 04
    1122611239    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1122711240    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    11228     jbe short 076ech                          ; 76 30
     11241    jbe short 0770ch                          ; 76 30
    1122911242    mov ax, 000f3h                            ; b8 f3 00
    11230     call 07387h                               ; e8 c5 fc
     11243    call 073a7h                               ; e8 c5 fc
    1123111244    test al, al                               ; 84 c0
    11232     jne short 076e1h                          ; 75 1b
     11245    jne short 07701h                          ; 75 1b
    1123311246    mov dx, ss                                ; 8c d2
    1123411247    lea ax, [bp-004h]                         ; 8d 46 fc
    11235     call 073bfh                               ; e8 f1 fc
     11248    call 073dfh                               ; e8 f1 fc
    1123611249    mov al, byte [bp-006h]                    ; 8a 46 fa
    1123711250    xor ah, ah                                ; 30 e4
    11238     call 07387h                               ; e8 b1 fc
     11251    call 073a7h                               ; e8 b1 fc
    1123911252    mov dx, ss                                ; 8c d2
    1124011253    lea ax, [bp-004h]                         ; 8d 46 fc
    11241     call 073bfh                               ; e8 e1 fc
    11242     jmp near 078b8h                           ; e9 d7 01
     11254    call 073dfh                               ; e8 e1 fc
     11255    jmp near 078d8h                           ; e9 d7 01
    1124311256    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1124411257    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11245     jmp near 078b8h                           ; e9 cc 01
     11258    jmp near 078d8h                           ; e9 cc 01
    1124611259    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1124711260    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11248     jmp near 078b8h                           ; e9 c1 01
     11261    jmp near 078d8h                           ; e9 c1 01
    1124911262    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11250     jnc short 0775fh                          ; 73 62
     11263    jnc short 0777fh                          ; 73 62
    1125111264    mov ax, 000e8h                            ; b8 e8 00
    11252     call 07387h                               ; e8 84 fc
     11265    call 073a7h                               ; e8 84 fc
    1125311266    test al, al                               ; 84 c0
    11254     jne short 07755h                          ; 75 4e
     11267    jne short 07775h                          ; 75 4e
    1125511268    mov dx, ss                                ; 8c d2
    1125611269    lea ax, [bp-006h]                         ; 8d 46 fa
    11257     call 073bfh                               ; e8 b0 fc
     11270    call 073dfh                               ; e8 b0 fc
    1125811271    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11259     je short 07729h                           ; 74 14
     11272    je short 07749h                           ; 74 14
    1126011273    mov al, byte [bp-006h]                    ; 8a 46 fa
    1126111274    xor ah, ah                                ; 30 e4
     
    1126511278    mov ax, strict word 00007h                ; b8 07 00
    1126611279    push ax                                   ; 50
    11267     call 01976h                               ; e8 50 a2
     11280    call 01976h                               ; e8 30 a2
    1126811281    add sp, strict byte 00006h                ; 83 c4 06
    1126911282    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1127011283    xor ah, ah                                ; 30 e4
    11271     call 07387h                               ; e8 56 fc
     11284    call 073a7h                               ; e8 56 fc
    1127211285    mov dx, ss                                ; 8c d2
    1127311286    lea ax, [bp-006h]                         ; 8d 46 fa
    11274     call 073bfh                               ; e8 86 fc
     11287    call 073dfh                               ; e8 86 fc
    1127511288    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11276     je short 0778eh                           ; 74 4f
     11289    je short 077aeh                           ; 74 4f
    1127711290    mov al, byte [bp-006h]                    ; 8a 46 fa
    1127811291    xor ah, ah                                ; 30 e4
     
    1128211295    mov ax, strict word 00007h                ; b8 07 00
    1128311296    push ax                                   ; 50
    11284     call 01976h                               ; e8 26 a2
     11297    call 01976h                               ; e8 06 a2
    1128511298    add sp, strict byte 00006h                ; 83 c4 06
    11286     jmp short 0778eh                          ; eb 39
     11299    jmp short 077aeh                          ; eb 39
    1128711300    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1128811301    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11289     jmp short 0778eh                          ; eb 2f
     11302    jmp short 077aeh                          ; eb 2f
    1129011303    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1129111304    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11292     jmp short 0778eh                          ; eb 25
     11305    jmp short 077aeh                          ; eb 25
    1129311306    mov ax, 000f2h                            ; b8 f2 00
    11294     call 07387h                               ; e8 18 fc
     11307    call 073a7h                               ; e8 18 fc
    1129511308    test al, al                               ; 84 c0
    11296     jne short 07786h                          ; 75 13
     11309    jne short 077a6h                          ; 75 13
    1129711310    mov dx, ss                                ; 8c d2
    1129811311    lea ax, [bp-006h]                         ; 8d 46 fa
    11299     call 073bfh                               ; e8 44 fc
     11312    call 073dfh                               ; e8 44 fc
    1130011313    mov dx, ss                                ; 8c d2
    1130111314    lea ax, [bp-004h]                         ; 8d 46 fc
    11302     call 073bfh                               ; e8 3c fc
    11303     jmp near 07659h                           ; e9 d3 fe
     11315    call 073dfh                               ; e8 3c fc
     11316    jmp near 07679h                           ; e9 d3 fe
    1130411317    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1130511318    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11306     jmp near 078b8h                           ; e9 27 01
     11319    jmp near 078d8h                           ; e9 27 01
    1130711320    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1130811321    test al, al                               ; 84 c0
    11309     jbe short 077a1h                          ; 76 09
     11322    jbe short 077c1h                          ; 76 09
    1131011323    cmp AL, strict byte 002h                  ; 3c 02
    11311     jbe short 0779fh                          ; 76 03
    11312     jmp near 07840h                           ; e9 a1 00
    11313     jmp short 0780bh                          ; eb 6a
     11324    jbe short 077bfh                          ; 76 03
     11325    jmp near 07860h                           ; e9 a1 00
     11326    jmp short 0782bh                          ; eb 6a
    1131411327    mov ax, 000e9h                            ; b8 e9 00
    11315     call 07387h                               ; e8 e0 fb
     11328    call 073a7h                               ; e8 e0 fb
    1131611329    test al, al                               ; 84 c0
    11317     jne short 07814h                          ; 75 69
     11330    jne short 07834h                          ; 75 69
    1131811331    mov dx, ss                                ; 8c d2
    1131911332    lea ax, [bp-006h]                         ; 8d 46 fa
    11320     call 073bfh                               ; e8 0c fc
     11333    call 073dfh                               ; e8 0c fc
    1132111334    mov cl, al                                ; 88 c1
    1132211335    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11323     je short 077cfh                           ; 74 14
     11336    je short 077efh                           ; 74 14
    1132411337    mov al, byte [bp-006h]                    ; 8a 46 fa
    1132511338    xor ah, ah                                ; 30 e4
     
    1132911342    mov ax, strict word 00007h                ; b8 07 00
    1133011343    push ax                                   ; 50
    11331     call 01976h                               ; e8 aa a1
     11344    call 01976h                               ; e8 8a a1
    1133211345    add sp, strict byte 00006h                ; 83 c4 06
    1133311346    test cl, cl                               ; 84 c9
    11334     jne short 07836h                          ; 75 63
     11347    jne short 07856h                          ; 75 63
    1133511348    mov dx, ss                                ; 8c d2
    1133611349    lea ax, [bp-006h]                         ; 8d 46 fa
    11337     call 073bfh                               ; e8 e4 fb
     11350    call 073dfh                               ; e8 e4 fb
    1133811351    test al, al                               ; 84 c0
    11339     jne short 07836h                          ; 75 57
     11352    jne short 07856h                          ; 75 57
    1134011353    mov dx, ss                                ; 8c d2
    1134111354    lea ax, [bp-004h]                         ; 8d 46 fc
    11342     call 073bfh                               ; e8 d8 fb
     11355    call 073dfh                               ; e8 d8 fb
    1134311356    test al, al                               ; 84 c0
    11344     jne short 07836h                          ; 75 4b
     11357    jne short 07856h                          ; 75 4b
    1134511358    mov dx, ss                                ; 8c d2
    1134611359    lea ax, [bp-008h]                         ; 8d 46 f8
    11347     call 073bfh                               ; e8 cc fb
     11360    call 073dfh                               ; e8 cc fb
    1134811361    test al, al                               ; 84 c0
    11349     jne short 07836h                          ; 75 3f
     11362    jne short 07856h                          ; 75 3f
    1135011363    mov al, byte [bp-006h]                    ; 8a 46 fa
    1135111364    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1135411367    mov al, byte [bp-008h]                    ; 8a 46 f8
    1135511368    mov byte [bp+00eh], al                    ; 88 46 0e
    11356     jmp short 0778eh                          ; eb 83
     11369    jmp short 077aeh                          ; eb 83
    1135711370    cmp AL, strict byte 001h                  ; 3c 01
    11358     jne short 07816h                          ; 75 07
     11371    jne short 07836h                          ; 75 07
    1135911372    mov ax, 000e6h                            ; b8 e6 00
    11360     jmp short 07819h                          ; eb 05
    11361     jmp short 07836h                          ; eb 20
     11373    jmp short 07839h                          ; eb 05
     11374    jmp short 07856h                          ; eb 20
    1136211375    mov ax, 000e7h                            ; b8 e7 00
    11363     call 07387h                               ; e8 6b fb
     11376    call 073a7h                               ; e8 6b fb
    1136411377    mov cl, al                                ; 88 c1
    1136511378    test cl, cl                               ; 84 c9
    11366     jne short 07832h                          ; 75 10
     11379    jne short 07852h                          ; 75 10
    1136711380    mov dx, ss                                ; 8c d2
    1136811381    lea ax, [bp-006h]                         ; 8d 46 fa
    11369     call 073bfh                               ; e8 95 fb
     11382    call 073dfh                               ; e8 95 fb
    1137011383    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11371     je short 07832h                           ; 74 02
     11384    je short 07852h                           ; 74 02
    1137211385    mov CL, strict byte 001h                  ; b1 01
    1137311386    test cl, cl                               ; 84 c9
    11374     je short 078a0h                           ; 74 6a
     11387    je short 078c0h                           ; 74 6a
    1137511388    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1137611389    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11377     jmp short 078a0h                          ; eb 60
     11390    jmp short 078c0h                          ; eb 60
    1137811391    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1137911392    xor ah, ah                                ; 30 e4
     
    1138311396    mov ax, strict word 00007h                ; b8 07 00
    1138411397    push ax                                   ; 50
    11385     call 01976h                               ; e8 25 a1
     11398    call 01976h                               ; e8 05 a1
    1138611399    add sp, strict byte 00006h                ; 83 c4 06
    1138711400    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1138811401    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11389     jmp short 078b8h                          ; eb 5a
     11402    jmp short 078d8h                          ; eb 5a
    1139011403    mov si, word [bp+00ch]                    ; 8b 76 0c
    1139111404    mov bx, si                                ; 89 f3
    1139211405    mov dx, strict word 00022h                ; ba 22 00
    1139311406    mov ax, cx                                ; 89 c8
    11394     call 0167ch                               ; e8 11 9e
     11407    call 0167ch                               ; e8 f1 9d
    1139511408    mov bx, word [bp+014h]                    ; 8b 5e 14
    1139611409    mov dx, strict word 00024h                ; ba 24 00
    1139711410    mov ax, cx                                ; 89 c8
    11398     call 0167ch                               ; e8 06 9e
     11411    call 0167ch                               ; e8 e6 9d
    1139911412    mov dx, strict word 00027h                ; ba 27 00
    1140011413    mov ax, cx                                ; 89 c8
    11401     call 01652h                               ; e8 d4 9d
     11414    call 01652h                               ; e8 b4 9d
    1140211415    mov ah, al                                ; 88 c4
    1140311416    test si, si                               ; 85 f6
    11404     jne short 07892h                          ; 75 0e
     11417    jne short 078b2h                          ; 75 0e
    1140511418    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11406     jne short 07892h                          ; 75 08
     11419    jne short 078b2h                          ; 75 08
    1140711420    test AL, strict byte 080h                 ; a8 80
    11408     je short 07894h                           ; 74 06
     11421    je short 078b4h                           ; 74 06
    1140911422    and AL, strict byte 07fh                  ; 24 7f
    11410     jmp short 07894h                          ; eb 02
     11423    jmp short 078b4h                          ; eb 02
    1141111424    or AL, strict byte 080h                   ; 0c 80
    1141211425    mov bl, al                                ; 88 c3
     
    1141411427    mov dx, strict word 00027h                ; ba 27 00
    1141511428    mov ax, cx                                ; 89 c8
    11416     call 01660h                               ; e8 c0 9d
    11417     jmp short 078b8h                          ; eb 16
     11429    call 01660h                               ; e8 a0 9d
     11430    jmp short 078d8h                          ; eb 16
    1141811431    mov ax, 00974h                            ; b8 74 09
    1141911432    push ax                                   ; 50
    1142011433    mov ax, strict word 00007h                ; b8 07 00
    1142111434    push ax                                   ; 50
    11422     call 01976h                               ; e8 c9 a0
     11435    call 01976h                               ; e8 a9 a0
    1142311436    add sp, strict byte 00004h                ; 83 c4 04
    1142411437    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1142511438    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1142611439    mov ax, strict word 00047h                ; b8 47 00
    11427     call 0741ch                               ; e8 5e fb
     11440    call 0743ch                               ; e8 5e fb
    1142811441    lea sp, [bp-002h]                         ; 8d 66 fe
    1142911442    pop si                                    ; 5e
    1143011443    pop bp                                    ; 5d
    1143111444    retn                                      ; c3
    11432 _int17_function:                             ; 0xf78c4 LB 0xac
     11445_int17_function:                             ; 0xf78e4 LB 0xac
    1143311446    push bp                                   ; 55
    1143411447    mov bp, sp                                ; 89 e5
     
    1144011453    add dx, strict byte 00008h                ; 83 c2 08
    1144111454    mov ax, strict word 00040h                ; b8 40 00
    11442     call 0166eh                               ; e8 96 9d
     11455    call 0166eh                               ; e8 76 9d
    1144311456    mov bx, ax                                ; 89 c3
    1144411457    mov si, ax                                ; 89 c6
    1144511458    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11446     jnc short 078eeh                          ; 73 0c
     11459    jnc short 0790eh                          ; 73 0c
    1144711460    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1144811461    cmp ax, strict word 00003h                ; 3d 03 00
    11449     jnc short 078eeh                          ; 73 04
     11462    jnc short 0790eh                          ; 73 04
    1145011463    test bx, bx                               ; 85 db
    11451     jnbe short 078f1h                         ; 77 03
    11452     jmp near 07966h                           ; e9 75 00
     11464    jnbe short 07911h                         ; 77 03
     11465    jmp near 07986h                           ; e9 75 00
    1145311466    mov dx, ax                                ; 89 c2
    1145411467    add dx, strict byte 00078h                ; 83 c2 78
    1145511468    mov ax, strict word 00040h                ; b8 40 00
    11456     call 01652h                               ; e8 56 9d
     11469    call 01652h                               ; e8 36 9d
    1145711470    mov ch, al                                ; 88 c5
    1145811471    xor cl, cl                                ; 30 c9
    1145911472    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11460     jne short 07932h                          ; 75 2c
     11473    jne short 07952h                          ; 75 2c
    1146111474    mov al, byte [bp+012h]                    ; 8a 46 12
    1146211475    mov dx, bx                                ; 89 da
     
    1147811491    ; sub ah, ah                                ; 2a e4
    1147911492    test AL, strict byte 040h                 ; a8 40
    11480     je short 07932h                           ; 74 07
     11493    je short 07952h                           ; 74 07
    1148111494    test cx, cx                               ; 85 c9
    11482     je short 07932h                           ; 74 03
     11495    je short 07952h                           ; 74 03
    1148311496    dec cx                                    ; 49
    11484     jmp short 07921h                          ; eb ef
     11497    jmp short 07941h                          ; eb ef
    1148511498    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11486     jne short 0794dh                          ; 75 15
     11499    jne short 0796dh                          ; 75 15
    1148711500    lea dx, [si+002h]                         ; 8d 54 02
    1148811501    in AL, DX                                 ; ec
     
    1150311516    mov byte [bp+013h], al                    ; 88 46 13
    1150411517    test cx, cx                               ; 85 c9
    11505     jne short 07960h                          ; 75 04
     11518    jne short 07980h                          ; 75 04
    1150611519    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1150711520    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11508     jmp short 0796ah                          ; eb 04
     11521    jmp short 0798ah                          ; eb 04
    1150911522    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1151011523    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1151211525    pop bp                                    ; 5d
    1151311526    retn                                      ; c3
    11514 wait_:                                       ; 0xf7970 LB 0xb2
     11527wait_:                                       ; 0xf7990 LB 0xb2
    1151511528    push bp                                   ; 55
    1151611529    mov bp, sp                                ; 89 e5
     
    1153011543    mov dx, 0046ch                            ; ba 6c 04
    1153111544    xor ax, ax                                ; 31 c0
    11532     call 0168ah                               ; e8 f7 9c
     11545    call 0168ah                               ; e8 d7 9c
    1153311546    mov word [bp-00eh], ax                    ; 89 46 f2
    1153411547    mov bx, dx                                ; 89 d3
     
    1153611549    mov dx, 0046ch                            ; ba 6c 04
    1153711550    xor ax, ax                                ; 31 c0
    11538     call 0168ah                               ; e8 e9 9c
     11551    call 0168ah                               ; e8 c9 9c
    1153911552    mov word [bp-012h], ax                    ; 89 46 ee
    1154011553    mov di, dx                                ; 89 d7
    1154111554    cmp dx, bx                                ; 39 da
    11542     jnbe short 079b1h                         ; 77 07
    11543     jne short 079b8h                          ; 75 0c
     11555    jnbe short 079d1h                         ; 77 07
     11556    jne short 079d8h                          ; 75 0c
    1154411557    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11545     jbe short 079b8h                          ; 76 07
     11558    jbe short 079d8h                          ; 76 07
    1154611559    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1154711560    sbb dx, bx                                ; 19 da
    11548     jmp short 079c3h                          ; eb 0b
     11561    jmp short 079e3h                          ; eb 0b
    1154911562    cmp dx, bx                                ; 39 da
    11550     jc short 079c3h                           ; 72 07
    11551     jne short 079c7h                          ; 75 09
     11563    jc short 079e3h                           ; 72 07
     11564    jne short 079e7h                          ; 75 09
    1155211565    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11553     jnc short 079c7h                          ; 73 04
     11566    jnc short 079e7h                          ; 73 04
    1155411567    sub si, ax                                ; 29 c6
    1155511568    sbb cx, dx                                ; 19 d1
     
    1155911572    mov ax, 00100h                            ; b8 00 01
    1156011573    int 016h                                  ; cd 16
    11561     je short 079dbh                           ; 74 05
     11574    je short 079fbh                           ; 74 05
    1156211575    mov AL, strict byte 001h                  ; b0 01
    11563     jmp near 079ddh                           ; e9 02 00
     11576    jmp near 079fdh                           ; e9 02 00
    1156411577    db  032h, 0c0h
    1156511578    ; xor al, al                                ; 32 c0
    1156611579    test al, al                               ; 84 c0
    11567     je short 07a07h                           ; 74 26
     11580    je short 07a27h                           ; 74 26
    1156811581    db  033h, 0c0h
    1156911582    ; xor ax, ax                                ; 33 c0
     
    1157811591    mov ax, strict word 00004h                ; b8 04 00
    1157911592    push ax                                   ; 50
    11580     call 01976h                               ; e8 7c 9f
     11593    call 01976h                               ; e8 5c 9f
    1158111594    add sp, strict byte 00006h                ; 83 c4 06
    1158211595    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11583     je short 07a07h                           ; 74 04
     11596    je short 07a27h                           ; 74 04
    1158411597    mov al, dl                                ; 88 d0
    11585     jmp short 07a19h                          ; eb 12
     11598    jmp short 07a39h                          ; eb 12
    1158611599    test cx, cx                               ; 85 c9
    11587     jnle short 07998h                         ; 7f 8d
    11588     jne short 07a11h                          ; 75 04
     11600    jnle short 079b8h                         ; 7f 8d
     11601    jne short 07a31h                          ; 75 04
    1158911602    test si, si                               ; 85 f6
    11590     jnbe short 07998h                         ; 77 87
     11603    jnbe short 079b8h                         ; 77 87
    1159111604    mov ax, word [bp-010h]                    ; 8b 46 f0
    1159211605    push ax                                   ; 50
     
    1160011613    pop bp                                    ; 5d
    1160111614    retn                                      ; c3
    11602 read_logo_byte_:                             ; 0xf7a22 LB 0x16
     11615read_logo_byte_:                             ; 0xf7a42 LB 0x16
    1160311616    push bp                                   ; 55
    1160411617    mov bp, sp                                ; 89 e5
     
    1161511628    pop bp                                    ; 5d
    1161611629    retn                                      ; c3
    11617 read_logo_word_:                             ; 0xf7a38 LB 0x14
     11630read_logo_word_:                             ; 0xf7a58 LB 0x14
    1161811631    push bp                                   ; 55
    1161911632    mov bp, sp                                ; 89 e5
     
    1162811641    pop bp                                    ; 5d
    1162911642    retn                                      ; c3
    11630 print_detected_harddisks_:                   ; 0xf7a4c LB 0x15a
     11643print_detected_harddisks_:                   ; 0xf7a6c LB 0x15a
    1163111644    push bp                                   ; 55
    1163211645    mov bp, sp                                ; 89 e5
     
    1163811651    mov dx, strict word 0000eh                ; ba 0e 00
    1163911652    mov ax, strict word 00040h                ; b8 40 00
    11640     call 0166eh                               ; e8 0f 9c
     11653    call 0166eh                               ; e8 ef 9b
    1164111654    mov si, ax                                ; 89 c6
    1164211655    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1164411657    mov byte [bp-00ch], ch                    ; 88 6e f4
    1164511658    mov dx, 00304h                            ; ba 04 03
    11646     call 01652h                               ; e8 e2 9b
     11659    call 01652h                               ; e8 c2 9b
    1164711660    mov byte [bp-00ah], al                    ; 88 46 f6
    1164811661    xor cl, cl                                ; 30 c9
    1164911662    cmp cl, byte [bp-00ah]                    ; 3a 4e f6
    11650     jnc short 07ad8h                          ; 73 5e
     11663    jnc short 07af8h                          ; 73 5e
    1165111664    mov al, cl                                ; 88 c8
    1165211665    xor ah, ah                                ; 30 e4
     
    1165411667    add dx, 00305h                            ; 81 c2 05 03
    1165511668    mov ax, si                                ; 89 f0
    11656     call 01652h                               ; e8 c9 9b
     11669    call 01652h                               ; e8 a9 9b
    1165711670    mov bl, al                                ; 88 c3
    1165811671    cmp AL, strict byte 00ch                  ; 3c 0c
    11659     jc short 07abah                           ; 72 2b
     11672    jc short 07adah                           ; 72 2b
    1166011673    test ch, ch                               ; 84 ed
    11661     jne short 07aa3h                          ; 75 10
     11674    jne short 07ac3h                          ; 75 10
    1166211675    mov ax, 009a7h                            ; b8 a7 09
    1166311676    push ax                                   ; 50
    1166411677    mov ax, strict word 00002h                ; b8 02 00
    1166511678    push ax                                   ; 50
    11666     call 01976h                               ; e8 d8 9e
     11679    call 01976h                               ; e8 b8 9e
    1166711680    add sp, strict byte 00004h                ; 83 c4 04
    1166811681    mov CH, strict byte 001h                  ; b5 01
     
    1167511688    mov ax, strict word 00002h                ; b8 02 00
    1167611689    push ax                                   ; 50
    11677     call 01976h                               ; e8 c2 9e
     11690    call 01976h                               ; e8 a2 9e
    1167811691    add sp, strict byte 00006h                ; 83 c4 06
    11679     jmp near 07b6ch                           ; e9 b2 00
     11692    jmp near 07b8ch                           ; e9 b2 00
    1168011693    cmp AL, strict byte 008h                  ; 3c 08
    11681     jc short 07adbh                           ; 72 1d
     11694    jc short 07afbh                           ; 72 1d
    1168211695    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11683     jne short 07ad6h                          ; 75 12
     11696    jne short 07af6h                          ; 75 12
    1168411697    mov ax, 009cfh                            ; b8 cf 09
    1168511698    push ax                                   ; 50
    1168611699    mov ax, strict word 00002h                ; b8 02 00
    1168711700    push ax                                   ; 50
    11688     call 01976h                               ; e8 a7 9e
     11701    call 01976h                               ; e8 87 9e
    1168911702    add sp, strict byte 00004h                ; 83 c4 04
    1169011703    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11691     jmp short 07aa3h                          ; eb cb
    11692     jmp near 07b71h                           ; e9 96 00
     11704    jmp short 07ac3h                          ; eb cb
     11705    jmp near 07b91h                           ; e9 96 00
    1169311706    cmp AL, strict byte 004h                  ; 3c 04
    11694     jnc short 07af9h                          ; 73 1a
     11707    jnc short 07b19h                          ; 73 1a
    1169511708    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11696     jne short 07af9h                          ; 75 14
     11709    jne short 07b19h                          ; 75 14
    1169711710    mov ax, 009e4h                            ; b8 e4 09
    1169811711    push ax                                   ; 50
    1169911712    mov ax, strict word 00002h                ; b8 02 00
    1170011713    push ax                                   ; 50
    11701     call 01976h                               ; e8 86 9e
     11714    call 01976h                               ; e8 66 9e
    1170211715    add sp, strict byte 00004h                ; 83 c4 04
    1170311716    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11704     jmp short 07b12h                          ; eb 19
     11717    jmp short 07b32h                          ; eb 19
    1170511718    cmp bl, 004h                              ; 80 fb 04
    11706     jc short 07b12h                           ; 72 14
     11719    jc short 07b32h                           ; 72 14
    1170711720    test ch, ch                               ; 84 ed
    11708     jne short 07b12h                          ; 75 10
     11721    jne short 07b32h                          ; 75 10
    1170911722    mov ax, 009f6h                            ; b8 f6 09
    1171011723    push ax                                   ; 50
    1171111724    mov ax, strict word 00002h                ; b8 02 00
    1171211725    push ax                                   ; 50
    11713     call 01976h                               ; e8 69 9e
     11726    call 01976h                               ; e8 49 9e
    1171411727    add sp, strict byte 00004h                ; 83 c4 04
    1171511728    mov CH, strict byte 001h                  ; b5 01
     
    1172211735    mov ax, strict word 00002h                ; b8 02 00
    1172311736    push ax                                   ; 50
    11724     call 01976h                               ; e8 53 9e
     11737    call 01976h                               ; e8 33 9e
    1172511738    add sp, strict byte 00006h                ; 83 c4 06
    1172611739    cmp bl, 004h                              ; 80 fb 04
    11727     jc short 07b2eh                           ; 72 03
     11740    jc short 07b4eh                           ; 72 03
    1172811741    sub bl, 004h                              ; 80 eb 04
    1172911742    mov al, bl                                ; 88 d8
     
    1173411747    sar ax, 1                                 ; d1 f8
    1173511748    test ax, ax                               ; 85 c0
    11736     je short 07b40h                           ; 74 05
     11749    je short 07b60h                           ; 74 05
    1173711750    mov ax, 00a14h                            ; b8 14 0a
    11738     jmp short 07b43h                          ; eb 03
     11751    jmp short 07b63h                          ; eb 03
    1173911752    mov ax, 00a1fh                            ; b8 1f 0a
    1174011753    push ax                                   ; 50
    1174111754    mov ax, strict word 00002h                ; b8 02 00
    1174211755    push ax                                   ; 50
    11743     call 01976h                               ; e8 2b 9e
     11756    call 01976h                               ; e8 0b 9e
    1174411757    add sp, strict byte 00004h                ; 83 c4 04
    1174511758    mov al, bl                                ; 88 d8
     
    1174911762    idiv bx                                   ; f7 fb
    1175011763    test dx, dx                               ; 85 d2
    11751     je short 07b61h                           ; 74 05
     11764    je short 07b81h                           ; 74 05
    1175211765    mov ax, 00a28h                            ; b8 28 0a
    11753     jmp short 07b64h                          ; eb 03
     11766    jmp short 07b84h                          ; eb 03
    1175411767    mov ax, 00a2eh                            ; b8 2e 0a
    1175511768    push ax                                   ; 50
    1175611769    push bx                                   ; 53
    11757     call 01976h                               ; e8 0d 9e
     11770    call 01976h                               ; e8 ed 9d
    1175811771    add sp, strict byte 00004h                ; 83 c4 04
    1175911772    db  0feh, 0c1h
    1176011773    ; inc cl                                    ; fe c1
    11761     jmp near 07a75h                           ; e9 04 ff
     11774    jmp near 07a95h                           ; e9 04 ff
    1176211775    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11763     jne short 07b8fh                          ; 75 18
     11776    jne short 07bafh                          ; 75 18
    1176411777    test ch, ch                               ; 84 ed
    11765     jne short 07b8fh                          ; 75 14
     11778    jne short 07bafh                          ; 75 14
    1176611779    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11767     jne short 07b8fh                          ; 75 0e
     11780    jne short 07bafh                          ; 75 0e
    1176811781    mov ax, 00a35h                            ; b8 35 0a
    1176911782    push ax                                   ; 50
    1177011783    mov ax, strict word 00002h                ; b8 02 00
    1177111784    push ax                                   ; 50
    11772     call 01976h                               ; e8 ea 9d
     11785    call 01976h                               ; e8 ca 9d
    1177311786    add sp, strict byte 00004h                ; 83 c4 04
    1177411787    mov ax, 00a49h                            ; b8 49 0a
     
    1177611789    mov ax, strict word 00002h                ; b8 02 00
    1177711790    push ax                                   ; 50
    11778     call 01976h                               ; e8 dc 9d
     11791    call 01976h                               ; e8 bc 9d
    1177911792    add sp, strict byte 00004h                ; 83 c4 04
    1178011793    lea sp, [bp-008h]                         ; 8d 66 f8
     
    1178511798    pop bp                                    ; 5d
    1178611799    retn                                      ; c3
    11787 get_boot_drive_:                             ; 0xf7ba6 LB 0x28
     11800get_boot_drive_:                             ; 0xf7bc6 LB 0x28
    1178811801    push bp                                   ; 55
    1178911802    mov bp, sp                                ; 89 e5
     
    1179311806    mov dx, strict word 0000eh                ; ba 0e 00
    1179411807    mov ax, strict word 00040h                ; b8 40 00
    11795     call 0166eh                               ; e8 b8 9a
     11808    call 0166eh                               ; e8 98 9a
    1179611809    mov dx, 00304h                            ; ba 04 03
    11797     call 01652h                               ; e8 96 9a
     11810    call 01652h                               ; e8 76 9a
    1179811811    sub bl, 002h                              ; 80 eb 02
    1179911812    cmp bl, al                                ; 38 c3
    11800     jc short 07bc5h                           ; 72 02
     11813    jc short 07be5h                           ; 72 02
    1180111814    mov BL, strict byte 0ffh                  ; b3 ff
    1180211815    mov al, bl                                ; 88 d8
     
    1180611819    pop bp                                    ; 5d
    1180711820    retn                                      ; c3
    11808 show_logo_:                                  ; 0xf7bce LB 0x24f
     11821show_logo_:                                  ; 0xf7bee LB 0x24f
    1180911822    push bp                                   ; 55
    1181011823    mov bp, sp                                ; 89 e5
     
    1181711830    mov dx, strict word 0000eh                ; ba 0e 00
    1181811831    mov ax, strict word 00040h                ; b8 40 00
    11819     call 0166eh                               ; e8 8c 9a
     11832    call 0166eh                               ; e8 6c 9a
    1182011833    mov si, ax                                ; 89 c6
    1182111834    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1182911842    mov al, cl                                ; 88 c8
    1183011843    xor ah, ah                                ; 30 e4
    11831     call 07a38h                               ; e8 3b fe
     11844    call 07a58h                               ; e8 3b fe
    1183211845    cmp ax, 066bbh                            ; 3d bb 66
    11833     jne short 07c14h                          ; 75 12
     11846    jne short 07c34h                          ; 75 12
    1183411847    push SS                                   ; 16
    1183511848    pop ES                                    ; 07
     
    1183911852    mov word [es:di], bx                      ; 26 89 1d
    1184011853    cmp ax, strict word 0004fh                ; 3d 4f 00
    11841     je short 07c17h                           ; 74 03
    11842     jmp near 07cech                           ; e9 d5 00
     11854    je short 07c37h                           ; 74 03
     11855    jmp near 07d0ch                           ; e9 d5 00
    1184311856    mov al, cl                                ; 88 c8
    1184411857    add AL, strict byte 004h                  ; 04 04
    1184511858    xor ah, ah                                ; 30 e4
    11846     call 07a22h                               ; e8 02 fe
     11859    call 07a42h                               ; e8 02 fe
    1184711860    mov bl, al                                ; 88 c3
    1184811861    mov byte [bp-014h], al                    ; 88 46 ec
     
    1185011863    add AL, strict byte 005h                  ; 04 05
    1185111864    xor ah, ah                                ; 30 e4
    11852     call 07a22h                               ; e8 f4 fd
     11865    call 07a42h                               ; e8 f4 fd
    1185311866    mov bh, al                                ; 88 c7
    1185411867    mov byte [bp-012h], al                    ; 88 46 ee
     
    1185611869    add AL, strict byte 002h                  ; 04 02
    1185711870    xor ah, ah                                ; 30 e4
    11858     call 07a38h                               ; e8 fc fd
     11871    call 07a58h                               ; e8 fc fd
    1185911872    mov dx, ax                                ; 89 c2
    1186011873    mov word [bp-016h], ax                    ; 89 46 ea
     
    1186211875    add AL, strict byte 006h                  ; 04 06
    1186311876    xor ah, ah                                ; 30 e4
    11864     call 07a22h                               ; e8 d8 fd
     11877    call 07a42h                               ; e8 d8 fd
    1186511878    mov byte [bp-010h], al                    ; 88 46 f0
    1186611879    test bl, bl                               ; 84 db
    11867     jne short 07c59h                          ; 75 08
     11880    jne short 07c79h                          ; 75 08
    1186811881    test bh, bh                               ; 84 ff
    11869     jne short 07c59h                          ; 75 04
     11882    jne short 07c79h                          ; 75 04
    1187011883    test dx, dx                               ; 85 d2
    11871     je short 07c14h                           ; 74 bb
     11884    je short 07c34h                           ; 74 bb
    1187211885    mov bx, 00142h                            ; bb 42 01
    1187311886    mov ax, 04f02h                            ; b8 02 4f
    1187411887    int 010h                                  ; cd 10
    1187511888    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11876     je short 07c8ch                           ; 74 25
     11889    je short 07cach                           ; 74 25
    1187711890    xor cx, cx                                ; 31 c9
    11878     jmp short 07c71h                          ; eb 06
     11891    jmp short 07c91h                          ; eb 06
    1187911892    inc cx                                    ; 41
    1188011893    cmp cx, strict byte 00010h                ; 83 f9 10
    11881     jnbe short 07c93h                         ; 77 22
     11894    jnbe short 07cb3h                         ; 77 22
    1188211895    mov ax, cx                                ; 89 c8
    1188311896    or ah, 002h                               ; 80 cc 02
     
    1188611899    xor dx, dx                                ; 31 d2
    1188711900    mov ax, strict word 00001h                ; b8 01 00
    11888     call 07970h                               ; e8 ee fc
     11901    call 07990h                               ; e8 ee fc
    1188911902    cmp AL, strict byte 086h                  ; 3c 86
    11890     jne short 07c6bh                          ; 75 e5
     11903    jne short 07c8bh                          ; 75 e5
    1189111904    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11892     jmp short 07c93h                          ; eb 07
     11905    jmp short 07cb3h                          ; eb 07
    1189311906    mov ax, 00210h                            ; b8 10 02
    1189411907    mov dx, 003b8h                            ; ba b8 03
    1189511908    out DX, ax                                ; ef
    1189611909    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11897     jne short 07caeh                          ; 75 15
     11910    jne short 07cceh                          ; 75 15
    1189811911    mov CL, strict byte 004h                  ; b1 04
    1189911912    mov ax, word [bp-016h]                    ; 8b 46 ea
    1190011913    shr ax, CL                                ; d3 e8
    1190111914    mov dx, strict word 00001h                ; ba 01 00
    11902     call 07970h                               ; e8 ca fc
     11915    call 07990h                               ; e8 ca fc
    1190311916    cmp AL, strict byte 086h                  ; 3c 86
    11904     jne short 07caeh                          ; 75 04
     11917    jne short 07cceh                          ; 75 04
    1190511918    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1190611919    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11907     je short 07cdfh                           ; 74 2b
     11920    je short 07cffh                           ; 74 2b
    1190811921    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11909     jne short 07cdfh                          ; 75 25
     11922    jne short 07cffh                          ; 75 25
    1191011923    mov cx, strict word 00010h                ; b9 10 00
    11911     jmp short 07cc4h                          ; eb 05
     11924    jmp short 07ce4h                          ; eb 05
    1191211925    dec cx                                    ; 49
    1191311926    test cx, cx                               ; 85 c9
    11914     jbe short 07cech                          ; 76 28
     11927    jbe short 07d0ch                          ; 76 28
    1191511928    mov ax, cx                                ; 89 c8
    1191611929    or ah, 002h                               ; 80 cc 02
     
    1191911932    xor dx, dx                                ; 31 d2
    1192011933    mov ax, strict word 00001h                ; b8 01 00
    11921     call 07970h                               ; e8 9b fc
     11934    call 07990h                               ; e8 9b fc
    1192211935    cmp AL, strict byte 086h                  ; 3c 86
    11923     jne short 07cbfh                          ; 75 e6
     11936    jne short 07cdfh                          ; 75 e6
    1192411937    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11925     jmp short 07cech                          ; eb 0d
     11938    jmp short 07d0ch                          ; eb 0d
    1192611939    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11927     jne short 07cech                          ; 75 07
     11940    jne short 07d0ch                          ; 75 07
    1192811941    mov ax, 00200h                            ; b8 00 02
    1192911942    mov dx, 003b8h                            ; ba b8 03
     
    1193211945    mov dx, 0037dh                            ; ba 7d 03
    1193311946    mov ax, si                                ; 89 f0
    11934     call 01660h                               ; e8 6a 99
     11947    call 01660h                               ; e8 4a 99
    1193511948    mov AL, strict byte 003h                  ; b0 03
    1193611949    mov AH, strict byte 000h                  ; b4 00
    1193711950    int 010h                                  ; cd 10
    1193811951    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11939     je short 07d16h                           ; 74 14
     11952    je short 07d36h                           ; 74 14
    1194011953    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11941     jne short 07d44h                          ; 75 3c
     11954    jne short 07d64h                          ; 75 3c
    1194211955    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11943     jne short 07d44h                          ; 75 36
     11956    jne short 07d64h                          ; 75 36
    1194411957    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11945     je short 07d19h                           ; 74 05
    11946     jmp short 07d44h                          ; eb 2e
    11947     jmp near 07e00h                           ; e9 e7 00
     11958    je short 07d39h                           ; 74 05
     11959    jmp short 07d64h                          ; eb 2e
     11960    jmp near 07e20h                           ; e9 e7 00
    1194811961    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    11949     jne short 07d2dh                          ; 75 0e
     11962    jne short 07d4dh                          ; 75 0e
    1195011963    mov ax, 00a4bh                            ; b8 4b 0a
    1195111964    push ax                                   ; 50
    1195211965    mov ax, strict word 00002h                ; b8 02 00
    1195311966    push ax                                   ; 50
    11954     call 01976h                               ; e8 4c 9c
     11967    call 01976h                               ; e8 2c 9c
    1195511968    add sp, strict byte 00004h                ; 83 c4 04
    1195611969    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11957     jne short 07d44h                          ; 75 11
     11970    jne short 07d64h                          ; 75 11
    1195811971    mov dx, strict word 00001h                ; ba 01 00
    1195911972    mov ax, 000c0h                            ; b8 c0 00
    11960     call 07970h                               ; e8 34 fc
     11973    call 07990h                               ; e8 34 fc
    1196111974    cmp AL, strict byte 086h                  ; 3c 86
    11962     jne short 07d44h                          ; 75 04
     11975    jne short 07d64h                          ; 75 04
    1196311976    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1196411977    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11965     je short 07d16h                           ; 74 cc
     11978    je short 07d36h                           ; 74 cc
    1196611979    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1196711980    mov ax, 00100h                            ; b8 00 01
     
    1198411997    mov ax, strict word 00002h                ; b8 02 00
    1198511998    push ax                                   ; 50
    11986     call 01976h                               ; e8 00 9c
     11999    call 01976h                               ; e8 e0 9b
    1198712000    add sp, strict byte 00004h                ; 83 c4 04
    11988     call 07a4ch                               ; e8 d0 fc
     12001    call 07a6ch                               ; e8 d0 fc
    1198912002    mov ax, 00ab1h                            ; b8 b1 0a
    1199012003    push ax                                   ; 50
    1199112004    mov ax, strict word 00002h                ; b8 02 00
    1199212005    push ax                                   ; 50
    11993     call 01976h                               ; e8 ef 9b
     12006    call 01976h                               ; e8 cf 9b
    1199412007    add sp, strict byte 00004h                ; 83 c4 04
    1199512008    mov dx, strict word 00001h                ; ba 01 00
    1199612009    mov ax, strict word 00040h                ; b8 40 00
    11997     call 07970h                               ; e8 dd fb
     12010    call 07990h                               ; e8 dd fb
    1199812011    mov cl, al                                ; 88 c1
    1199912012    test al, al                               ; 84 c0
    12000     je short 07d8ah                           ; 74 f1
     12013    je short 07daah                           ; 74 f1
    1200112014    cmp AL, strict byte 030h                  ; 3c 30
    12002     je short 07dedh                           ; 74 50
     12015    je short 07e0dh                           ; 74 50
    1200312016    cmp cl, 002h                              ; 80 f9 02
    12004     jc short 07dc6h                           ; 72 24
     12017    jc short 07de6h                           ; 72 24
    1200512018    cmp cl, 009h                              ; 80 f9 09
    12006     jnbe short 07dc6h                         ; 77 1f
     12019    jnbe short 07de6h                         ; 77 1f
    1200712020    mov al, cl                                ; 88 c8
    1200812021    xor ah, ah                                ; 30 e4
    12009     call 07ba6h                               ; e8 f8 fd
     12022    call 07bc6h                               ; e8 f8 fd
    1201012023    cmp AL, strict byte 0ffh                  ; 3c ff
    12011     jne short 07db4h                          ; 75 02
    12012     jmp short 07d8ah                          ; eb d6
     12024    jne short 07dd4h                          ; 75 02
     12025    jmp short 07daah                          ; eb d6
    1201312026    mov bl, al                                ; 88 c3
    1201412027    xor bh, bh                                ; 30 ff
    1201512028    mov dx, 0037ch                            ; ba 7c 03
    1201612029    mov ax, si                                ; 89 f0
    12017     call 01660h                               ; e8 a0 98
     12030    call 01660h                               ; e8 80 98
    1201812031    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    12019     jmp short 07dedh                          ; eb 27
     12032    jmp short 07e0dh                          ; eb 27
    1202012033    cmp cl, 02eh                              ; 80 f9 2e
    12021     je short 07ddbh                           ; 74 10
     12034    je short 07dfbh                           ; 74 10
    1202212035    cmp cl, 026h                              ; 80 f9 26
    12023     je short 07de1h                           ; 74 11
     12036    je short 07e01h                           ; 74 11
    1202412037    cmp cl, 021h                              ; 80 f9 21
    12025     jne short 07de7h                          ; 75 12
     12038    jne short 07e07h                          ; 75 12
    1202612039    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    12027     jmp short 07dedh                          ; eb 12
     12040    jmp short 07e0dh                          ; eb 12
    1202812041    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    12029     jmp short 07dedh                          ; eb 0c
     12042    jmp short 07e0dh                          ; eb 0c
    1203012043    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    12031     jmp short 07dedh                          ; eb 06
     12044    jmp short 07e0dh                          ; eb 06
    1203212045    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    12033     je short 07d8ah                           ; 74 9d
     12046    je short 07daah                           ; 74 9d
    1203412047    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1203512048    xor bh, bh                                ; 30 ff
    1203612049    mov dx, 0037dh                            ; ba 7d 03
    1203712050    mov ax, si                                ; 89 f0
    12038     call 01660h                               ; e8 66 98
     12051    call 01660h                               ; e8 46 98
    1203912052    mov AL, strict byte 003h                  ; b0 03
    1204012053    mov AH, strict byte 000h                  ; b4 00
     
    1204912062    push DS                                   ; 1e
    1205012063    mov ds, ax                                ; 8e d8
    12051     call 0ede3h                               ; e8 d2 6f
     12064    call 0ede3h                               ; e8 b2 6f
    1205212065    pop DS                                    ; 1f
    1205312066    pop bp                                    ; 5d
     
    1206012073    pop bp                                    ; 5d
    1206112074    retn                                      ; c3
    12062 delay_boot_:                                 ; 0xf7e1d LB 0x72
     12075delay_boot_:                                 ; 0xf7e3d LB 0x72
    1206312076    push bp                                   ; 55
    1206412077    mov bp, sp                                ; 89 e5
     
    1207012083    mov bx, ax                                ; 89 c3
    1207112084    test ax, ax                               ; 85 c0
    12072     je short 07e85h                           ; 74 5a
     12085    je short 07ea5h                           ; 74 5a
    1207312086    mov AL, strict byte 034h                  ; b0 34
    1207412087    out strict byte 043h, AL                  ; e6 43
     
    1208212095    mov ax, strict word 00002h                ; b8 02 00
    1208312096    push ax                                   ; 50
    12084     call 01976h                               ; e8 33 9b
     12097    call 01976h                               ; e8 13 9b
    1208512098    add sp, strict byte 00006h                ; 83 c4 06
    1208612099    test bx, bx                               ; 85 db
    12087     jbe short 07e64h                          ; 76 1a
     12100    jbe short 07e84h                          ; 76 1a
    1208812101    push bx                                   ; 53
    1208912102    mov ax, 00b19h                            ; b8 19 0b
     
    1209112104    mov ax, strict word 00002h                ; b8 02 00
    1209212105    push ax                                   ; 50
    12093     call 01976h                               ; e8 20 9b
     12106    call 01976h                               ; e8 00 9b
    1209412107    add sp, strict byte 00006h                ; 83 c4 06
    1209512108    xor dx, dx                                ; 31 d2
    1209612109    mov ax, strict word 00040h                ; b8 40 00
    12097     call 07970h                               ; e8 0f fb
     12110    call 07990h                               ; e8 0f fb
    1209812111    dec bx                                    ; 4b
    12099     jmp short 07e46h                          ; eb e2
     12112    jmp short 07e66h                          ; eb e2
    1210012113    mov bx, 00a49h                            ; bb 49 0a
    1210112114    push bx                                   ; 53
    1210212115    mov bx, strict word 00002h                ; bb 02 00
    1210312116    push bx                                   ; 53
    12104     call 01976h                               ; e8 07 9b
     12117    call 01976h                               ; e8 e7 9a
    1210512118    add sp, strict byte 00004h                ; 83 c4 04
    1210612119    mov AL, strict byte 034h                  ; b0 34
     
    1211312126    push DS                                   ; 1e
    1211412127    mov ds, ax                                ; 8e d8
    12115     call 0ede3h                               ; e8 60 6f
     12128    call 0ede3h                               ; e8 40 6f
    1211612129    pop DS                                    ; 1f
    1211712130    pop bp                                    ; 5d
     
    1212412137    pop bp                                    ; 5d
    1212512138    retn                                      ; c3
    12126 scsi_cmd_data_in_:                           ; 0xf7e8f LB 0xd5
     12139scsi_cmd_data_in_:                           ; 0xf7eaf LB 0xd5
    1212712140    push bp                                   ; 55
    1212812141    mov bp, sp                                ; 89 e5
     
    1214012153    ; sub ah, ah                                ; 2a e4
    1214112154    test AL, strict byte 001h                 ; a8 01
    12142     jne short 07ea5h                          ; 75 f7
     12155    jne short 07ec5h                          ; 75 f7
    1214312156    mov al, byte [bp+004h]                    ; 8a 46 04
    1214412157    cmp AL, strict byte 010h                  ; 3c 10
    12145     jne short 07eb9h                          ; 75 04
     12158    jne short 07ed9h                          ; 75 04
    1214612159    xor ax, ax                                ; 31 c0
    12147     jmp short 07ebbh                          ; eb 02
     12160    jmp short 07edbh                          ; eb 02
    1214812161    xor ah, ah                                ; 30 e4
    1214912162    mov di, ax                                ; 89 c7
     
    1215312166    shr dx, 1                                 ; d1 ea
    1215412167    rcr ax, 1                                 ; d1 d8
    12155     loop 07ec5h                               ; e2 fa
     12168    loop 07ee5h                               ; e2 fa
    1215612169    mov cx, ax                                ; 89 c1
    1215712170    and cx, 000f0h                            ; 81 e1 f0 00
     
    1217112184    shr dx, 1                                 ; d1 ea
    1217212185    rcr ax, 1                                 ; d1 d8
    12173     loop 07eeah                               ; e2 fa
     12186    loop 07f0ah                               ; e2 fa
    1217412187    mov dx, si                                ; 89 f2
    1217512188    out DX, AL                                ; ee
     
    1217812191    xor ah, ah                                ; 30 e4
    1217912192    cmp cx, ax                                ; 39 c1
    12180     jnc short 07f0ch                          ; 73 0e
     12193    jnc short 07f2ch                          ; 73 0e
    1218112194    les di, [bp-00ah]                         ; c4 7e f6
    1218212195    add di, cx                                ; 01 cf
     
    1218512198    out DX, AL                                ; ee
    1218612199    inc cx                                    ; 41
    12187     jmp short 07ef5h                          ; eb e9
     12200    jmp short 07f15h                          ; eb e9
    1218812201    mov dx, si                                ; 89 f2
    1218912202    in AL, DX                                 ; ec
     
    1219112204    ; sub ah, ah                                ; 2a e4
    1219212205    test AL, strict byte 001h                 ; a8 01
    12193     jne short 07f0ch                          ; 75 f7
     12206    jne short 07f2ch                          ; 75 f7
    1219412207    test AL, strict byte 002h                 ; a8 02
    12195     je short 07f27h                           ; 74 0e
     12208    je short 07f47h                           ; 74 0e
    1219612209    lea dx, [si+003h]                         ; 8d 54 03
    1219712210    xor al, al                                ; 30 c0
     
    1220112214    ; sub ah, ah                                ; 2a e4
    1220212215    mov di, strict word 00004h                ; bf 04 00
    12203     jmp short 07f59h                          ; eb 32
     12216    jmp short 07f79h                          ; eb 32
    1220412217    lea dx, [si+001h]                         ; 8d 54 01
    1220512218    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12206     jne short 07f36h                          ; 75 06
     12219    jne short 07f56h                          ; 75 06
    1220712220    cmp bx, 08000h                            ; 81 fb 00 80
    12208     jbe short 07f50h                          ; 76 1a
     12221    jbe short 07f70h                          ; 76 1a
    1220912222    mov cx, 08000h                            ; b9 00 80
    1221012223    les di, [bp+006h]                         ; c4 7e 06
     
    1221512228    add ax, 00800h                            ; 05 00 08
    1221612229    mov word [bp+008h], ax                    ; 89 46 08
    12217     jmp short 07f27h                          ; eb d7
     12230    jmp short 07f47h                          ; eb d7
    1221812231    mov cx, bx                                ; 89 d9
    1221912232    les di, [bp+006h]                         ; c4 7e 06
     
    1222612239    pop bp                                    ; 5d
    1222712240    retn 0000ah                               ; c2 0a 00
    12228 scsi_cmd_data_out_:                          ; 0xf7f64 LB 0xd5
     12241scsi_cmd_data_out_:                          ; 0xf7f84 LB 0xd5
    1222912242    push bp                                   ; 55
    1223012243    mov bp, sp                                ; 89 e5
     
    1224212255    ; sub ah, ah                                ; 2a e4
    1224312256    test AL, strict byte 001h                 ; a8 01
    12244     jne short 07f7ah                          ; 75 f7
     12257    jne short 07f9ah                          ; 75 f7
    1224512258    mov al, byte [bp+004h]                    ; 8a 46 04
    1224612259    cmp AL, strict byte 010h                  ; 3c 10
    12247     jne short 07f8eh                          ; 75 04
     12260    jne short 07faeh                          ; 75 04
    1224812261    xor ax, ax                                ; 31 c0
    12249     jmp short 07f90h                          ; eb 02
     12262    jmp short 07fb0h                          ; eb 02
    1225012263    xor ah, ah                                ; 30 e4
    1225112264    mov si, ax                                ; 89 c6
     
    1225512268    shr dx, 1                                 ; d1 ea
    1225612269    rcr ax, 1                                 ; d1 d8
    12257     loop 07f9ah                               ; e2 fa
     12270    loop 07fbah                               ; e2 fa
    1225812271    mov cx, ax                                ; 89 c1
    1225912272    and cx, 000f0h                            ; 81 e1 f0 00
     
    1227312286    shr dx, 1                                 ; d1 ea
    1227412287    rcr ax, 1                                 ; d1 d8
    12275     loop 07fbfh                               ; e2 fa
     12288    loop 07fdfh                               ; e2 fa
    1227612289    mov dx, di                                ; 89 fa
    1227712290    out DX, AL                                ; ee
     
    1228012293    xor ah, ah                                ; 30 e4
    1228112294    cmp cx, ax                                ; 39 c1
    12282     jnc short 07fe1h                          ; 73 0e
     12295    jnc short 08001h                          ; 73 0e
    1228312296    les si, [bp-00ah]                         ; c4 76 f6
    1228412297    add si, cx                                ; 01 ce
     
    1228712300    out DX, AL                                ; ee
    1228812301    inc cx                                    ; 41
    12289     jmp short 07fcah                          ; eb e9
     12302    jmp short 07feah                          ; eb e9
    1229012303    lea dx, [di+001h]                         ; 8d 55 01
    1229112304    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12292     jne short 07ff0h                          ; 75 06
     12305    jne short 08010h                          ; 75 06
    1229312306    cmp bx, 08000h                            ; 81 fb 00 80
    12294     jbe short 0800bh                          ; 76 1b
     12307    jbe short 0802bh                          ; 76 1b
    1229512308    mov cx, 08000h                            ; b9 00 80
    1229612309    les si, [bp+006h]                         ; c4 76 06
     
    1230212315    add ax, 00800h                            ; 05 00 08
    1230312316    mov word [bp+008h], ax                    ; 89 46 08
    12304     jmp short 07fe1h                          ; eb d6
     12317    jmp short 08001h                          ; eb d6
    1230512318    mov cx, bx                                ; 89 d9
    1230612319    les si, [bp+006h]                         ; c4 76 06
     
    1231212325    ; sub ah, ah                                ; 2a e4
    1231312326    test AL, strict byte 001h                 ; a8 01
    12314     jne short 08013h                          ; 75 f7
     12327    jne short 08033h                          ; 75 f7
    1231512328    test AL, strict byte 002h                 ; a8 02
    12316     je short 0802eh                           ; 74 0e
     12329    je short 0804eh                           ; 74 0e
    1231712330    lea dx, [di+003h]                         ; 8d 55 03
    1231812331    xor al, al                                ; 30 c0
     
    1232212335    ; sub ah, ah                                ; 2a e4
    1232312336    mov ax, strict word 00004h                ; b8 04 00
    12324     jmp short 08030h                          ; eb 02
     12337    jmp short 08050h                          ; eb 02
    1232512338    xor ax, ax                                ; 31 c0
    1232612339    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1232912342    pop bp                                    ; 5d
    1233012343    retn 0000ah                               ; c2 0a 00
    12331 @scsi_read_sectors:                          ; 0xf8039 LB 0xe9
     12344@scsi_read_sectors:                          ; 0xf8059 LB 0xe9
    1233212345    push bp                                   ; 55
    1233312346    mov bp, sp                                ; 89 e5
     
    1234112354    mov byte [bp-006h], al                    ; 88 46 fa
    1234212355    cmp AL, strict byte 004h                  ; 3c 04
    12343     jbe short 08069h                          ; 76 15
     12356    jbe short 08089h                          ; 76 15
    1234412357    xor ah, ah                                ; 30 e4
    1234512358    push ax                                   ; 50
     
    1235012363    mov ax, strict word 00007h                ; b8 07 00
    1235112364    push ax                                   ; 50
    12352     call 01976h                               ; e8 10 99
     12365    call 01976h                               ; e8 f0 98
    1235312366    add sp, strict byte 00008h                ; 83 c4 08
    1235412367    mov es, [bp+006h]                         ; 8e 46 06
     
    1239112404    sal word [bp-00ah], 1                     ; d1 66 f6
    1239212405    rcl word [bp-008h], 1                     ; d1 56 f8
    12393     loop 080d4h                               ; e2 f8
     12406    loop 080f4h                               ; e2 f8
    1239412407    push word [bp-008h]                       ; ff 76 f8
    1239512408    push word [bp-00ah]                       ; ff 76 f6
     
    1240212415    mov cx, ss                                ; 8c d1
    1240312416    lea bx, [bp-01ah]                         ; 8d 5e e6
    12404     call 07e8fh                               ; e8 95 fd
     12417    call 07eafh                               ; e8 95 fd
    1240512418    mov ah, al                                ; 88 c4
    1240612419    test al, al                               ; 84 c0
    12407     jne short 08115h                          ; 75 15
     12420    jne short 08135h                          ; 75 15
    1240812421    mov es, [bp+006h]                         ; 8e 46 06
    1240912422    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1241912432    pop bp                                    ; 5d
    1242012433    retn 00004h                               ; c2 04 00
    12421 @scsi_write_sectors:                         ; 0xf8122 LB 0xe9
     12434@scsi_write_sectors:                         ; 0xf8142 LB 0xe9
    1242212435    push bp                                   ; 55
    1242312436    mov bp, sp                                ; 89 e5
     
    1243112444    mov byte [bp-006h], al                    ; 88 46 fa
    1243212445    cmp AL, strict byte 004h                  ; 3c 04
    12433     jbe short 08152h                          ; 76 15
     12446    jbe short 08172h                          ; 76 15
    1243412447    xor ah, ah                                ; 30 e4
    1243512448    push ax                                   ; 50
     
    1244012453    mov ax, strict word 00007h                ; b8 07 00
    1244112454    push ax                                   ; 50
    12442     call 01976h                               ; e8 27 98
     12455    call 01976h                               ; e8 07 98
    1244312456    add sp, strict byte 00008h                ; 83 c4 08
    1244412457    mov es, [bp+006h]                         ; 8e 46 06
     
    1248112494    sal word [bp-00ah], 1                     ; d1 66 f6
    1248212495    rcl word [bp-008h], 1                     ; d1 56 f8
    12483     loop 081bdh                               ; e2 f8
     12496    loop 081ddh                               ; e2 f8
    1248412497    push word [bp-008h]                       ; ff 76 f8
    1248512498    push word [bp-00ah]                       ; ff 76 f6
     
    1249212505    mov cx, ss                                ; 8c d1
    1249312506    lea bx, [bp-01ah]                         ; 8d 5e e6
    12494     call 07f64h                               ; e8 81 fd
     12507    call 07f84h                               ; e8 81 fd
    1249512508    mov ah, al                                ; 88 c4
    1249612509    test al, al                               ; 84 c0
    12497     jne short 081feh                          ; 75 15
     12510    jne short 0821eh                          ; 75 15
    1249812511    mov es, [bp+006h]                         ; 8e 46 06
    1249912512    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1250912522    pop bp                                    ; 5d
    1251012523    retn 00004h                               ; c2 04 00
    12511 scsi_cmd_packet_:                            ; 0xf820b LB 0x170
     12524scsi_cmd_packet_:                            ; 0xf822b LB 0x170
    1251212525    push bp                                   ; 55
    1251312526    mov bp, sp                                ; 89 e5
     
    1252112534    mov dx, strict word 0000eh                ; ba 0e 00
    1252212535    mov ax, strict word 00040h                ; b8 40 00
    12523     call 0166eh                               ; e8 47 94
     12536    call 0166eh                               ; e8 27 94
    1252412537    mov si, 00122h                            ; be 22 01
    1252512538    mov word [bp-00ch], ax                    ; 89 46 f4
    1252612539    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12527     jne short 08256h                          ; 75 23
    12528     mov bx, 00da4h                            ; bb a4 0d
     12540    jne short 08276h                          ; 75 23
     12541    mov bx, 00da0h                            ; bb a0 0d
    1252912542    mov cx, ds                                ; 8c d9
    1253012543    mov ax, strict word 00004h                ; b8 04 00
    12531     call 01933h                               ; e8 f5 96
     12544    call 01933h                               ; e8 d5 96
    1253212545    mov ax, 00b62h                            ; b8 62 0b
    1253312546    push ax                                   ; 50
     
    1253612549    mov ax, strict word 00004h                ; b8 04 00
    1253712550    push ax                                   ; 50
    12538     call 01976h                               ; e8 29 97
     12551    call 01976h                               ; e8 09 97
    1253912552    add sp, strict byte 00006h                ; 83 c4 06
    1254012553    mov dx, strict word 00001h                ; ba 01 00
    12541     jmp near 08370h                           ; e9 1a 01
     12554    jmp near 08390h                           ; e9 1a 01
    1254212555    sub di, strict byte 00008h                ; 83 ef 08
    1254312556    sal di, 1                                 ; d1 e7
     
    1255412567    ; sub ah, ah                                ; 2a e4
    1255512568    test AL, strict byte 001h                 ; a8 01
    12556     jne short 08273h                          ; 75 f7
     12569    jne short 08293h                          ; 75 f7
    1255712570    xor dx, bx                                ; 31 da
    1255812571    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1257012583    shr dx, 1                                 ; d1 ea
    1257112584    rcr ax, 1                                 ; d1 d8
    12572     loop 0829eh                               ; e2 fa
     12585    loop 082beh                               ; e2 fa
    1257312586    and ax, 000f0h                            ; 25 f0 00
    1257412587    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1258912602    shr dx, 1                                 ; d1 ea
    1259012603    rcr ax, 1                                 ; d1 d8
    12591     loop 082c6h                               ; e2 fa
     12604    loop 082e6h                               ; e2 fa
    1259212605    mov dx, bx                                ; 89 da
    1259312606    out DX, AL                                ; ee
     
    1259612609    xor ah, ah                                ; 30 e4
    1259712610    cmp cx, ax                                ; 39 c1
    12598     jnc short 082ebh                          ; 73 11
     12611    jnc short 0830bh                          ; 73 11
    1259912612    mov es, [bp-00ah]                         ; 8e 46 f6
    1260012613    mov di, word [bp-00eh]                    ; 8b 7e f2
     
    1260412617    out DX, AL                                ; ee
    1260512618    inc cx                                    ; 41
    12606     jmp short 082d1h                          ; eb e6
     12619    jmp short 082f1h                          ; eb e6
    1260712620    mov dx, bx                                ; 89 da
    1260812621    in AL, DX                                 ; ec
     
    1261012623    ; sub ah, ah                                ; 2a e4
    1261112624    test AL, strict byte 001h                 ; a8 01
    12612     jne short 082ebh                          ; 75 f7
     12625    jne short 0830bh                          ; 75 f7
    1261312626    test AL, strict byte 002h                 ; a8 02
    12614     je short 08306h                           ; 74 0e
     12627    je short 08326h                           ; 74 0e
    1261512628    lea dx, [bx+003h]                         ; 8d 57 03
    1261612629    xor al, al                                ; 30 c0
     
    1262012633    ; sub ah, ah                                ; 2a e4
    1262112634    mov dx, strict word 00003h                ; ba 03 00
    12622     jmp short 08370h                          ; eb 6a
     12635    jmp short 08390h                          ; eb 6a
    1262312636    mov ax, word [bp+004h]                    ; 8b 46 04
    1262412637    test ax, ax                               ; 85 c0
    12625     je short 08315h                           ; 74 08
     12638    je short 08335h                           ; 74 08
    1262612639    lea dx, [bx+001h]                         ; 8d 57 01
    1262712640    mov cx, ax                                ; 89 c1
    1262812641    in AL, DX                                 ; ec
    12629     loop 08312h                               ; e2 fd
     12642    loop 08332h                               ; e2 fd
    1263012643    mov ax, word [bp+006h]                    ; 8b 46 06
    1263112644    mov es, [bp-00ch]                         ; 8e 46 f4
     
    1263512648    lea ax, [bx+001h]                         ; 8d 47 01
    1263612649    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12637     jne short 08336h                          ; 75 07
     12650    jne short 08356h                          ; 75 07
    1263812651    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12639     jbe short 08353h                          ; 76 1d
     12652    jbe short 08373h                          ; 76 1d
    1264012653    mov dx, ax                                ; 89 c2
    1264112654    mov cx, 08000h                            ; b9 00 80
     
    1264712660    add ax, 00800h                            ; 05 00 08
    1264812661    mov word [bp+00eh], ax                    ; 89 46 0e
    12649     jmp short 08326h                          ; eb d3
     12662    jmp short 08346h                          ; eb d3
    1265012663    mov dx, ax                                ; 89 c2
    1265112664    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1265412667    mov es, [bp-00ch]                         ; 8e 46 f4
    1265512668    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12656     je short 0836eh                           ; 74 07
     12669    je short 0838eh                           ; 74 07
    1265712670    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1265812671    in AL, DX                                 ; ec
    12659     loop 0836bh                               ; e2 fd
     12672    loop 0838bh                               ; e2 fd
    1266012673    xor dx, dx                                ; 31 d2
    1266112674    mov ax, dx                                ; 89 d0
     
    1266512678    pop bp                                    ; 5d
    1266612679    retn 0000ch                               ; c2 0c 00
    12667 scsi_enumerate_attached_devices_:            ; 0xf837b LB 0x4cb
     12680scsi_enumerate_attached_devices_:            ; 0xf839b LB 0x4cb
    1266812681    push bp                                   ; 55
    1266912682    mov bp, sp                                ; 89 e5
     
    1267712690    mov dx, strict word 0000eh                ; ba 0e 00
    1267812691    mov ax, strict word 00040h                ; b8 40 00
    12679     call 0166eh                               ; e8 dd 92
     12692    call 0166eh                               ; e8 bd 92
    1268012693    mov di, 00122h                            ; bf 22 01
    1268112694    mov word [bp-016h], ax                    ; 89 46 ea
    1268212695    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    12683     jmp near 087b9h                           ; e9 1a 04
     12696    jmp near 087d9h                           ; e9 1a 04
    1268412697    cmp AL, strict byte 004h                  ; 3c 04
    12685     jc short 083a6h                           ; 72 03
    12686     jmp near 0883ch                           ; e9 96 04
     12698    jc short 083c6h                           ; 72 03
     12699    jmp near 0885ch                           ; e9 96 04
    1268712700    mov cx, strict word 00010h                ; b9 10 00
    1268812701    xor bx, bx                                ; 31 db
    1268912702    mov dx, ss                                ; 8c d2
    1269012703    lea ax, [bp-048h]                         ; 8d 46 b8
    12691     call 0a1a0h                               ; e8 ed 1d
     12704    call 0a1c0h                               ; e8 ed 1d
    1269212705    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1269312706    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1270712720    lea bx, [bp-048h]                         ; 8d 5e b8
    1270812721    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    12709     call 07e8fh                               ; e8 ae fa
     12722    call 07eafh                               ; e8 ae fa
    1271012723    test al, al                               ; 84 c0
    12711     je short 083f7h                           ; 74 12
     12724    je short 08417h                           ; 74 12
    1271212725    mov ax, 00b92h                            ; b8 92 0b
    1271312726    push ax                                   ; 50
     
    1271612729    mov ax, strict word 00007h                ; b8 07 00
    1271712730    push ax                                   ; 50
    12718     call 01976h                               ; e8 82 95
     12731    call 01976h                               ; e8 62 95
    1271912732    add sp, strict byte 00006h                ; 83 c4 06
    1272012733    mov ax, word [bp-00242h]                  ; 8b 86 be fd
     
    1274812761    sal ax, 1                                 ; d1 e0
    1274912762    rcl dx, 1                                 ; d1 d2
    12750     loop 08445h                               ; e2 fa
     12763    loop 08465h                               ; e2 fa
    1275112764    or bx, ax                                 ; 09 c3
    1275212765    or dx, si                                 ; 09 f2
     
    1275612769    mov word [bp-01ch], bx                    ; 89 5e e4
    1275712770    test dx, dx                               ; 85 d2
    12758     jne short 08464h                          ; 75 06
     12771    jne short 08484h                          ; 75 06
    1275912772    cmp bx, 00200h                            ; 81 fb 00 02
    12760     je short 08487h                           ; 74 23
    12761     mov bx, 00da4h                            ; bb a4 0d
     12773    je short 084a7h                           ; 74 23
     12774    mov bx, 00da0h                            ; bb a0 0d
    1276212775    mov cx, ds                                ; 8c d9
    1276312776    mov ax, strict word 00004h                ; b8 04 00
    12764     call 01933h                               ; e8 c4 94
     12777    call 01933h                               ; e8 a4 94
    1276512778    push dx                                   ; 52
    1276612779    push word [bp-01ch]                       ; ff 76 e4
     
    1277012783    mov ax, strict word 00004h                ; b8 04 00
    1277112784    push ax                                   ; 50
    12772     call 01976h                               ; e8 f5 94
     12785    call 01976h                               ; e8 d5 94
    1277312786    add sp, strict byte 0000ah                ; 83 c4 0a
    12774     jmp near 087adh                           ; e9 26 03
     12787    jmp near 087cdh                           ; e9 26 03
    1277512788    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1277612789    cmp AL, strict byte 001h                  ; 3c 01
    12777     jc short 0849ah                           ; 72 0c
    12778     jbe short 084a2h                          ; 76 12
     12790    jc short 084bah                           ; 72 0c
     12791    jbe short 084c2h                          ; 76 12
    1277912792    cmp AL, strict byte 003h                  ; 3c 03
    12780     je short 084aah                           ; 74 16
     12793    je short 084cah                           ; 74 16
    1278112794    cmp AL, strict byte 002h                  ; 3c 02
    12782     je short 084a6h                           ; 74 0e
    12783     jmp short 084f1h                          ; eb 57
     12795    je short 084c6h                           ; 74 0e
     12796    jmp short 08511h                          ; eb 57
    1278412797    test al, al                               ; 84 c0
    12785     jne short 084f1h                          ; 75 53
     12798    jne short 08511h                          ; 75 53
    1278612799    mov BL, strict byte 090h                  ; b3 90
    12787     jmp short 084ach                          ; eb 0a
     12800    jmp short 084cch                          ; eb 0a
    1278812801    mov BL, strict byte 098h                  ; b3 98
    12789     jmp short 084ach                          ; eb 06
     12802    jmp short 084cch                          ; eb 06
    1279012803    mov BL, strict byte 0a0h                  ; b3 a0
    12791     jmp short 084ach                          ; eb 02
     12804    jmp short 084cch                          ; eb 02
    1279212805    mov BL, strict byte 0a8h                  ; b3 a8
    1279312806    mov cl, bl                                ; 88 d9
     
    1279512808    xor ch, ch                                ; 30 ed
    1279612809    mov ax, cx                                ; 89 c8
    12797     call 016aeh                               ; e8 f6 91
     12810    call 016aeh                               ; e8 d6 91
    1279812811    test al, al                               ; 84 c0
    12799     je short 084f1h                           ; 74 35
     12812    je short 08511h                           ; 74 35
    1280012813    mov al, bl                                ; 88 d8
    1280112814    db  0feh, 0c0h
    1280212815    ; inc al                                    ; fe c0
    1280312816    xor ah, ah                                ; 30 e4
    12804     call 016aeh                               ; e8 e9 91
     12817    call 016aeh                               ; e8 c9 91
    1280512818    mov dh, al                                ; 88 c6
    1280612819    mov al, bl                                ; 88 d8
    1280712820    xor ah, ah                                ; 30 e4
    12808     call 016aeh                               ; e8 e0 91
     12821    call 016aeh                               ; e8 c0 91
    1280912822    mov ah, dh                                ; 88 f4
    1281012823    cwd                                       ; 99
     
    1281412827    add AL, strict byte 002h                  ; 04 02
    1281512828    xor ah, ah                                ; 30 e4
    12816     call 016aeh                               ; e8 cf 91
     12829    call 016aeh                               ; e8 af 91
    1281712830    xor ah, ah                                ; 30 e4
    1281812831    mov word [bp-028h], ax                    ; 89 46 d8
    1281912832    mov ax, cx                                ; 89 c8
    12820     call 016aeh                               ; e8 c5 91
     12833    call 016aeh                               ; e8 a5 91
    1282112834    xor ah, ah                                ; 30 e4
    1282212835    mov word [bp-01ah], ax                    ; 89 46 e6
    12823     jmp near 085deh                           ; e9 ed 00
     12836    jmp near 085feh                           ; e9 ed 00
    1282412837    mov ax, word [bp-020h]                    ; 8b 46 e0
    1282512838    mov bx, word [bp-022h]                    ; 8b 5e de
     
    1282712840    mov dx, word [bp-024h]                    ; 8b 56 dc
    1282812841    mov si, strict word 0000ch                ; be 0c 00
    12829     call 0a180h                               ; e8 7d 1c
     12842    call 0a1a0h                               ; e8 7d 1c
    1283012843    mov word [bp-02ah], ax                    ; 89 46 d6
    1283112844    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1283412847    mov ax, word [bp-020h]                    ; 8b 46 e0
    1283512848    test ax, ax                               ; 85 c0
    12836     jnbe short 0852bh                         ; 77 15
    12837     je short 0851bh                           ; 74 03
    12838     jmp near 0859eh                           ; e9 83 00
     12849    jnbe short 0854bh                         ; 77 15
     12850    je short 0853bh                           ; 74 03
     12851    jmp near 085beh                           ; e9 83 00
    1283912852    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12840     jnbe short 0852bh                         ; 77 0a
    12841     jne short 08518h                          ; 75 f5
     12853    jnbe short 0854bh                         ; 77 0a
     12854    jne short 08538h                          ; 75 f5
    1284212855    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12843     jnbe short 0852bh                         ; 77 02
    12844     jne short 0859eh                          ; 75 73
     12856    jnbe short 0854bh                         ; 77 02
     12857    jne short 085beh                          ; 75 73
    1284512858    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
    1284612859    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
     
    1284912862    mov dx, word [bp-024h]                    ; 8b 56 dc
    1285012863    mov si, strict word 00006h                ; be 06 00
    12851     call 0a180h                               ; e8 3c 1c
     12864    call 0a1a0h                               ; e8 3c 1c
    1285212865    mov si, word [bp-018h]                    ; 8b 76 e8
    1285312866    add si, dx                                ; 01 d6
     
    1286712880    mov dx, si                                ; 89 f2
    1286812881    mov si, strict word 00008h                ; be 08 00
    12869     call 0a180h                               ; e8 0c 1c
     12882    call 0a1a0h                               ; e8 0c 1c
    1287012883    mov word [bp-02eh], bx                    ; 89 5e d2
    1287112884    mov word [bp-030h], cx                    ; 89 4e d0
     
    1287612889    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1287712890    mov si, strict word 00010h                ; be 10 00
    12878     call 0a180h                               ; e8 f1 1b
     12891    call 0a1a0h                               ; e8 f1 1b
    1287912892    mov si, word [bp-032h]                    ; 8b 76 ce
    1288012893    add si, dx                                ; 01 d6
     
    1288212895    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1288312896    adc ax, bx                                ; 11 d8
    12884     jmp short 085dbh                          ; eb 3d
     12897    jmp short 085fbh                          ; eb 3d
    1288512898    test ax, ax                               ; 85 c0
    12886     jnbe short 085b4h                         ; 77 12
    12887     jne short 085c0h                          ; 75 1c
     12899    jnbe short 085d4h                         ; 77 12
     12900    jne short 085e0h                          ; 75 1c
    1288812901    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12889     jnbe short 085b4h                         ; 77 0a
    12890     jne short 085c0h                          ; 75 14
     12902    jnbe short 085d4h                         ; 77 0a
     12903    jne short 085e0h                          ; 75 14
    1289112904    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12892     jnbe short 085b4h                         ; 77 02
    12893     jne short 085c0h                          ; 75 0c
     12905    jnbe short 085d4h                         ; 77 02
     12906    jne short 085e0h                          ; 75 0c
    1289412907    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
    1289512908    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
    12896     jmp short 085d9h                          ; eb 19
     12909    jmp short 085f9h                          ; eb 19
    1289712910    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
    1289812911    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
     
    1290112914    mov dx, word [bp-024h]                    ; 8b 56 dc
    1290212915    mov si, strict word 0000bh                ; be 0b 00
    12903     call 0a180h                               ; e8 a7 1b
     12916    call 0a1a0h                               ; e8 a7 1b
    1290412917    mov si, dx                                ; 89 d6
    1290512918    mov word [bp-026h], cx                    ; 89 4e da
     
    1293812951    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1293912952    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    12940     jne short 08655h                          ; 75 06
     12953    jne short 08675h                          ; 75 06
    1294112954    cmp si, 00400h                            ; 81 fe 00 04
    12942     jbe short 08663h                          ; 76 0e
     12955    jbe short 08683h                          ; 76 0e
    1294312956    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1294412957    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12945     jmp short 0866bh                          ; eb 08
     12958    jmp short 0868bh                          ; eb 08
    1294612959    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1294712960    mov word [es:bx+032h], si                 ; 26 89 77 32
    12948     mov bx, 00da4h                            ; bb a4 0d
     12961    mov bx, 00da0h                            ; bb a0 0d
    1294912962    mov cx, ds                                ; 8c d9
    1295012963    mov ax, strict word 00004h                ; b8 04 00
    12951     call 01933h                               ; e8 bd 92
     12964    call 01933h                               ; e8 9d 92
    1295212965    push word [bp-020h]                       ; ff 76 e0
    1295312966    push word [bp-022h]                       ; ff 76 de
     
    1296612979    mov ax, strict word 00004h                ; b8 04 00
    1296712980    push ax                                   ; 50
    12968     call 01976h                               ; e8 d6 92
     12981    call 01976h                               ; e8 b6 92
    1296912982    add sp, strict byte 00018h                ; 83 c4 18
    1297012983    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1299513008    mov dx, strict word 00075h                ; ba 75 00
    1299613009    mov ax, strict word 00040h                ; b8 40 00
    12997     call 01652h                               ; e8 5c 8f
     13010    call 01652h                               ; e8 3c 8f
    1299813011    mov bl, al                                ; 88 c3
    1299913012    db  0feh, 0c3h
     
    1300213015    mov dx, strict word 00075h                ; ba 75 00
    1300313016    mov ax, strict word 00040h                ; b8 40 00
    13004     call 01660h                               ; e8 5b 8f
     13017    call 01660h                               ; e8 3b 8f
    1300513018    inc byte [bp-00ch]                        ; fe 46 f4
    13006     jmp near 087a2h                           ; e9 97 00
    13007     mov bx, 00da4h                            ; bb a4 0d
     13019    jmp near 087c2h                           ; e9 97 00
     13020    mov bx, 00da0h                            ; bb a0 0d
    1300813021    mov cx, ds                                ; 8c d9
    1300913022    mov ax, strict word 00004h                ; b8 04 00
    13010     call 01933h                               ; e8 1d 92
     13023    call 01933h                               ; e8 fd 91
    1301113024    push word [bp-014h]                       ; ff 76 ec
    1301213025    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1301713030    mov ax, strict word 00004h                ; b8 04 00
    1301813031    push ax                                   ; 50
    13019     call 01976h                               ; e8 4c 92
     13032    call 01976h                               ; e8 2c 92
    1302013033    add sp, strict byte 00008h                ; 83 c4 08
    1302113034    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1302313036    mov byte [bp-00eh], al                    ; 88 46 f2
    1302413037    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
    13025     je short 08741h                           ; 74 05
     13038    je short 08761h                           ; 74 05
    1302613039    mov cx, strict word 00001h                ; b9 01 00
    13027     jmp short 08743h                          ; eb 02
     13040    jmp short 08763h                          ; eb 02
    1302813041    xor cx, cx                                ; 31 c9
    1302913042    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1306313076    inc word [bp-014h]                        ; ff 46 ec
    1306413077    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    13065     jl short 087b9h                           ; 7c 03
    13066     jmp near 0883ch                           ; e9 83 00
     13078    jl short 087d9h                           ; 7c 03
     13079    jmp near 0885ch                           ; e9 83 00
    1306713080    mov byte [bp-048h], 012h                  ; c6 46 b8 12
    1306813081    xor al, al                                ; 30 c0
     
    1308613099    lea bx, [bp-048h]                         ; 8d 5e b8
    1308713100    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    13088     call 07e8fh                               ; e8 9e f6
     13101    call 07eafh                               ; e8 9e f6
    1308913102    test al, al                               ; 84 c0
    13090     je short 08807h                           ; 74 12
     13103    je short 08827h                           ; 74 12
    1309113104    mov ax, 00b92h                            ; b8 92 0b
    1309213105    push ax                                   ; 50
     
    1309513108    mov ax, strict word 00007h                ; b8 07 00
    1309613109    push ax                                   ; 50
    13097     call 01976h                               ; e8 72 91
     13110    call 01976h                               ; e8 52 91
    1309813111    add sp, strict byte 00006h                ; 83 c4 06
    1309913112    mov es, [bp-016h]                         ; 8e 46 ea
     
    1310113114    mov byte [bp-00ch], al                    ; 88 46 f4
    1310213115    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13103     jne short 08823h                          ; 75 0a
     13116    jne short 08843h                          ; 75 0a
    1310413117    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
    13105     jne short 08823h                          ; 75 03
    13106     jmp near 0839fh                           ; e9 7c fb
     13118    jne short 08843h                          ; 75 03
     13119    jmp near 083bfh                           ; e9 7c fb
    1310713120    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13108     je short 0882dh                           ; 74 03
    13109     jmp near 087a2h                           ; e9 75 ff
     13121    je short 0884dh                           ; 74 03
     13122    jmp near 087c2h                           ; e9 75 ff
    1311013123    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
    1311113124    and AL, strict byte 01fh                  ; 24 1f
    1311213125    cmp AL, strict byte 005h                  ; 3c 05
    13113     jne short 0883ah                          ; 75 03
    13114     jmp near 0870bh                           ; e9 d1 fe
    13115     jmp short 0882ah                          ; eb ee
     13126    jne short 0885ah                          ; 75 03
     13127    jmp near 0872bh                           ; e9 d1 fe
     13128    jmp short 0884ah                          ; eb ee
    1311613129    lea sp, [bp-00ah]                         ; 8d 66 f6
    1311713130    pop di                                    ; 5f
     
    1312213135    pop bp                                    ; 5d
    1312313136    retn                                      ; c3
    13124 scsi_pci_init_:                              ; 0xf8846 LB 0x2b
     13137scsi_pci_init_:                              ; 0xf8866 LB 0x2b
    1312513138    push bp                                   ; 55
    1312613139    mov bp, sp                                ; 89 e5
     
    1312813141    push cx                                   ; 51
    1312913142    push si                                   ; 56
    13130     call 09f84h                               ; e8 35 17
     13143    call 09fa4h                               ; e8 35 17
    1313113144    mov dx, ax                                ; 89 c2
    1313213145    cmp ax, strict word 0ffffh                ; 3d ff ff
    13133     je short 08869h                           ; 74 13
     13146    je short 08889h                           ; 74 13
    1313413147    mov al, dl                                ; 88 d0
    1313513148    xor ah, ah                                ; 30 e4
     
    1313913152    mov bx, strict word 00004h                ; bb 04 00
    1314013153    mov dx, si                                ; 89 f2
    13141     call 0a032h                               ; e8 c9 17
     13154    call 0a052h                               ; e8 c9 17
    1314213155    lea sp, [bp-006h]                         ; 8d 66 fa
    1314313156    pop si                                    ; 5e
     
    1314613159    pop bp                                    ; 5d
    1314713160    retn                                      ; c3
    13148 _scsi_init:                                  ; 0xf8871 LB 0x81
     13161_scsi_init:                                  ; 0xf8891 LB 0x81
    1314913162    push bp                                   ; 55
    1315013163    mov bp, sp                                ; 89 e5
    1315113164    mov dx, strict word 0000eh                ; ba 0e 00
    1315213165    mov ax, strict word 00040h                ; b8 40 00
    13153     call 0166eh                               ; e8 f1 8d
     13166    call 0166eh                               ; e8 d1 8d
    1315413167    mov bx, 00122h                            ; bb 22 01
    1315513168    mov es, ax                                ; 8e c0
     
    1316213175    ; sub ah, ah                                ; 2a e4
    1316313176    cmp AL, strict byte 055h                  ; 3c 55
    13164     jne short 088aah                          ; 75 15
     13177    jne short 088cah                          ; 75 15
    1316513178    xor al, al                                ; 30 c0
    1316613179    mov dx, 00433h                            ; ba 33 04
    1316713180    out DX, AL                                ; ee
    1316813181    mov ax, 00430h                            ; b8 30 04
    13169     call 0837bh                               ; e8 da fa
     13182    call 0839bh                               ; e8 da fa
    1317013183    mov dx, 01040h                            ; ba 40 10
    1317113184    mov ax, 0104bh                            ; b8 4b 10
    13172     call 08846h                               ; e8 9c ff
     13185    call 08866h                               ; e8 9c ff
    1317313186    mov AL, strict byte 055h                  ; b0 55
    1317413187    mov dx, 00436h                            ; ba 36 04
     
    1317813191    ; sub ah, ah                                ; 2a e4
    1317913192    cmp AL, strict byte 055h                  ; 3c 55
    13180     jne short 088cch                          ; 75 15
     13193    jne short 088ech                          ; 75 15
    1318113194    xor al, al                                ; 30 c0
    1318213195    mov dx, 00437h                            ; ba 37 04
    1318313196    out DX, AL                                ; ee
    1318413197    mov ax, 00434h                            ; b8 34 04
    13185     call 0837bh                               ; e8 b8 fa
     13198    call 0839bh                               ; e8 b8 fa
    1318613199    mov dx, strict word 00030h                ; ba 30 00
    1318713200    mov ax, 01000h                            ; b8 00 10
    13188     call 08846h                               ; e8 7a ff
     13201    call 08866h                               ; e8 7a ff
    1318913202    mov AL, strict byte 055h                  ; b0 55
    1319013203    mov dx, 0043ah                            ; ba 3a 04
     
    1319413207    ; sub ah, ah                                ; 2a e4
    1319513208    cmp AL, strict byte 055h                  ; 3c 55
    13196     jne short 088eeh                          ; 75 15
     13209    jne short 0890eh                          ; 75 15
    1319713210    xor al, al                                ; 30 c0
    1319813211    mov dx, 0043bh                            ; ba 3b 04
    1319913212    out DX, AL                                ; ee
    1320013213    mov ax, 00438h                            ; b8 38 04
    13201     call 0837bh                               ; e8 96 fa
     13214    call 0839bh                               ; e8 96 fa
    1320213215    mov dx, strict word 00054h                ; ba 54 00
    1320313216    mov ax, 01000h                            ; b8 00 10
    13204     call 08846h                               ; e8 58 ff
     13217    call 08866h                               ; e8 58 ff
    1320513218    mov sp, bp                                ; 89 ec
    1320613219    pop bp                                    ; 5d
    1320713220    retn                                      ; c3
    13208 ahci_ctrl_extract_bits_:                     ; 0xf88f2 LB 0x1c
     13221ahci_ctrl_extract_bits_:                     ; 0xf8912 LB 0x1c
    1320913222    push si                                   ; 56
    1321013223    push bp                                   ; 55
     
    1321513228    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1321613229    xor ch, ch                                ; 30 ed
    13217     jcxz 08909h                               ; e3 06
     13230    jcxz 08929h                               ; e3 06
    1321813231    shr dx, 1                                 ; d1 ea
    1321913232    rcr ax, 1                                 ; d1 d8
    13220     loop 08903h                               ; e2 fa
     13233    loop 08923h                               ; e2 fa
    1322113234    pop bp                                    ; 5d
    1322213235    pop si                                    ; 5e
    1322313236    retn 00002h                               ; c2 02 00
    13224 ahci_addr_to_phys_:                          ; 0xf890e LB 0x1e
     13237ahci_addr_to_phys_:                          ; 0xf892e LB 0x1e
    1322513238    push bx                                   ; 53
    1322613239    push cx                                   ; 51
     
    1323313246    sal ax, 1                                 ; d1 e0
    1323413247    rcl dx, 1                                 ; d1 d2
    13235     loop 0891ch                               ; e2 fa
     13248    loop 0893ch                               ; e2 fa
    1323613249    xor cx, cx                                ; 31 c9
    1323713250    add ax, bx                                ; 01 d8
     
    1324113254    pop bx                                    ; 5b
    1324213255    retn                                      ; c3
    13243 ahci_port_cmd_sync_:                         ; 0xf892c LB 0x159
     13256ahci_port_cmd_sync_:                         ; 0xf894c LB 0x159
    1324413257    push bp                                   ; 55
    1324513258    mov bp, sp                                ; 89 e5
     
    1325613269    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1325713270    cmp AL, strict byte 0ffh                  ; 3c ff
    13258     jne short 0894fh                          ; 75 03
    13259     jmp near 08a7dh                           ; e9 2e 01
     13271    jne short 0896fh                          ; 75 03
     13272    jmp near 08a9dh                           ; e9 2e 01
    1326013273    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1326113274    xor ah, ah                                ; 30 e4
     
    1327013283    lea ax, [si+00080h]                       ; 8d 84 80 00
    1327113284    mov dx, cx                                ; 89 ca
    13272     call 0890eh                               ; e8 92 ff
     13285    call 0892eh                               ; e8 92 ff
    1327313286    mov es, cx                                ; 8e c1
    1327413287    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1333813351    xchg dx, ax                               ; 92
    1333913352    test dh, 040h                             ; f6 c6 40
    13340     jne short 08a0fh                          ; 75 04
     13353    jne short 08a2fh                          ; 75 04
    1334113354    test AL, strict byte 001h                 ; a8 01
    13342     je short 08a13h                           ; 74 04
     13355    je short 08a33h                           ; 74 04
    1334313356    mov AL, strict byte 001h                  ; b0 01
    13344     jmp short 08a15h                          ; eb 02
     13357    jmp short 08a35h                          ; eb 02
    1334513358    xor al, al                                ; 30 c0
    1334613359    test al, al                               ; 84 c0
    13347     je short 089e1h                           ; 74 c8
     13360    je short 08a01h                           ; 74 c8
    1334813361    mov al, byte [bp-008h]                    ; 8a 46 f8
    1334913362    xor ah, ah                                ; 30 e4
     
    1340213415    pop bp                                    ; 5d
    1340313416    retn                                      ; c3
    13404 ahci_cmd_data_:                              ; 0xf8a85 LB 0x262
     13417ahci_cmd_data_:                              ; 0xf8aa5 LB 0x262
    1340513418    push bp                                   ; 55
    1340613419    mov bp, sp                                ; 89 e5
     
    1342713440    mov ax, 00080h                            ; b8 80 00
    1342813441    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13429     call 0a1a0h                               ; e8 dd 16
     13442    call 0a1c0h                               ; e8 dd 16
    1343013443    mov es, [bp-00ah]                         ; 8e 46 f6
    1343113444    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1344513458    mov dx, word [es:si]                      ; 26 8b 14
    1344613459    mov si, strict word 00008h                ; be 08 00
    13447     call 0a180h                               ; e8 79 16
     13460    call 0a1a0h                               ; e8 79 16
    1344813461    mov es, [bp-00ah]                         ; 8e 46 f6
    1344913462    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1345613469    mov dx, word [es:si]                      ; 26 8b 14
    1345713470    mov si, strict word 00010h                ; be 10 00
    13458     call 0a180h                               ; e8 53 16
     13471    call 0a1a0h                               ; e8 53 16
    1345913472    mov es, [bp-00ah]                         ; 8e 46 f6
    1346013473    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1346813481    mov dx, word [es:si]                      ; 26 8b 14
    1346913482    mov si, strict word 00018h                ; be 18 00
    13470     call 0a180h                               ; e8 27 16
     13483    call 0a1a0h                               ; e8 27 16
    1347113484    mov es, [bp-00ah]                         ; 8e 46 f6
    1347213485    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1347913492    mov dx, word [es:si]                      ; 26 8b 14
    1348013493    mov si, strict word 00020h                ; be 20 00
    13481     call 0a180h                               ; e8 01 16
     13494    call 0a1a0h                               ; e8 01 16
    1348213495    mov es, [bp-00ah]                         ; 8e 46 f6
    1348313496    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1349013503    mov dx, word [es:si]                      ; 26 8b 14
    1349113504    mov si, strict word 00028h                ; be 28 00
    13492     call 0a180h                               ; e8 db 15
     13505    call 0a1a0h                               ; e8 db 15
    1349313506    mov es, [bp-00ah]                         ; 8e 46 f6
    1349413507    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1350313516    mov bx, word [bp-012h]                    ; 8b 5e ee
    1350413517    xor cx, cx                                ; 31 c9
    13505     call 0a130h                               ; e8 59 15
     13518    call 0a150h                               ; e8 59 15
    1350613519    push dx                                   ; 52
    1350713520    push ax                                   ; 50
     
    1351313526    mov ax, 0026ah                            ; b8 6a 02
    1351413527    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13515     call 0a08bh                               ; e8 98 14
     13528    call 0a0abh                               ; e8 98 14
    1351613529    mov es, [bp-00ah]                         ; 8e 46 f6
    1351713530    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1353713550    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1353813551    test ax, ax                               ; 85 c0
    13539     je short 08c83h                           ; 74 39
     13552    je short 08ca3h                           ; 74 39
    1354013553    dec ax                                    ; 48
    1354113554    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1355513568    mov al, byte [bp-008h]                    ; 8a 46 f8
    1355613569    cmp AL, strict byte 035h                  ; 3c 35
    13557     jne short 08c90h                          ; 75 06
     13570    jne short 08cb0h                          ; 75 06
    1355813571    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13559     jmp short 08ca7h                          ; eb 17
     13572    jmp short 08cc7h                          ; eb 17
    1356013573    cmp AL, strict byte 0a0h                  ; 3c a0
    13561     jne short 08ca3h                          ; 75 0f
     13574    jne short 08cc3h                          ; 75 0f
    1356213575    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1356313576    les bx, [bp-00eh]                         ; c4 5e f2
    1356413577    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13565     jmp short 08ca7h                          ; eb 04
     13578    jmp short 08cc7h                          ; eb 04
    1356613579    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1356713580    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1357013583    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1357113584    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13572     call 0892ch                               ; e8 73 fc
     13585    call 0894ch                               ; e8 73 fc
    1357313586    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1357413587    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1357713590    add ax, 0026ah                            ; 05 6a 02
    1357813591    mov dx, cx                                ; 89 ca
    13579     call 0a102h                               ; e8 34 14
     13592    call 0a122h                               ; e8 34 14
    1358013593    mov es, cx                                ; 8e c1
    1358113594    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1358213595    test al, al                               ; 84 c0
    13583     je short 08cddh                           ; 74 05
     13596    je short 08cfdh                           ; 74 05
    1358413597    mov ax, strict word 00004h                ; b8 04 00
    13585     jmp short 08cdfh                          ; eb 02
     13598    jmp short 08cffh                          ; eb 02
    1358613599    xor ah, ah                                ; 30 e4
    1358713600    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1359113604    pop bp                                    ; 5d
    1359213605    retn                                      ; c3
    13593 ahci_port_deinit_current_:                   ; 0xf8ce7 LB 0x183
     13606ahci_port_deinit_current_:                   ; 0xf8d07 LB 0x183
    1359413607    push bp                                   ; 55
    1359513608    mov bp, sp                                ; 89 e5
     
    1360613619    mov byte [bp-00ah], al                    ; 88 46 f6
    1360713620    cmp AL, strict byte 0ffh                  ; 3c ff
    13608     je short 08d6ah                           ; 74 61
     13621    je short 08d8ah                           ; 74 61
    1360913622    xor ah, ah                                ; 30 e4
    1361013623    mov CL, strict byte 007h                  ; b1 07
     
    1365213665    xchg dx, ax                               ; 92
    1365313666    test ax, 0c011h                           ; a9 11 c0
    13654     je short 08d6dh                           ; 74 07
     13667    je short 08d8dh                           ; 74 07
    1365513668    mov AL, strict byte 001h                  ; b0 01
    13656     jmp short 08d6fh                          ; eb 05
    13657     jmp near 08e61h                           ; e9 f4 00
     13669    jmp short 08d8fh                          ; eb 05
     13670    jmp near 08e81h                           ; e9 f4 00
    1365813671    xor al, al                                ; 30 c0
    1365913672    cmp AL, strict byte 001h                  ; 3c 01
    13660     je short 08d3ch                           ; 74 c9
     13673    je short 08d5ch                           ; 74 c9
    1366113674    mov cx, strict word 00020h                ; b9 20 00
    1366213675    xor bx, bx                                ; 31 db
    1366313676    mov ax, di                                ; 89 f8
    1366413677    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13665     call 0a1a0h                               ; e8 20 14
     13678    call 0a1c0h                               ; e8 20 14
    1366613679    lea ax, [di+00080h]                       ; 8d 85 80 00
    1366713680    mov cx, strict word 00040h                ; b9 40 00
    1366813681    xor bx, bx                                ; 31 db
    1366913682    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13670     call 0a1a0h                               ; e8 11 14
     13683    call 0a1c0h                               ; e8 11 14
    1367113684    lea ax, [di+00200h]                       ; 8d 85 00 02
    1367213685    mov cx, strict word 00060h                ; b9 60 00
    1367313686    xor bx, bx                                ; 31 db
    1367413687    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13675     call 0a1a0h                               ; e8 02 14
     13688    call 0a1c0h                               ; e8 02 14
    1367613689    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1367713690    xor ah, ah                                ; 30 e4
     
    1377913792    pop bp                                    ; 5d
    1378013793    retn                                      ; c3
    13781 ahci_port_init_:                             ; 0xf8e6a LB 0x250
     13794ahci_port_init_:                             ; 0xf8e8a LB 0x250
    1378213795    push bp                                   ; 55
    1378313796    mov bp, sp                                ; 89 e5
     
    1378913802    mov word [bp-00ah], dx                    ; 89 56 f6
    1379013803    mov byte [bp-008h], bl                    ; 88 5e f8
    13791     call 08ce7h                               ; e8 69 fe
     13804    call 08d07h                               ; e8 69 fe
    1379213805    mov al, bl                                ; 88 d8
    1379313806    xor ah, ah                                ; 30 e4
     
    1384013853    xchg dx, ax                               ; 92
    1384113854    test ax, 0c011h                           ; a9 11 c0
    13842     je short 08ef1h                           ; 74 04
     13855    je short 08f11h                           ; 74 04
    1384313856    mov AL, strict byte 001h                  ; b0 01
    13844     jmp short 08ef3h                          ; eb 02
     13857    jmp short 08f13h                          ; eb 02
    1384513858    xor al, al                                ; 30 c0
    1384613859    cmp AL, strict byte 001h                  ; 3c 01
    13847     je short 08ebbh                           ; 74 c4
     13860    je short 08edbh                           ; 74 c4
    1384813861    mov cx, strict word 00020h                ; b9 20 00
    1384913862    xor bx, bx                                ; 31 db
    1385013863    mov ax, si                                ; 89 f0
    1385113864    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13852     call 0a1a0h                               ; e8 9c 12
     13865    call 0a1c0h                               ; e8 9c 12
    1385313866    lea ax, [si+00080h]                       ; 8d 84 80 00
    1385413867    mov cx, strict word 00040h                ; b9 40 00
    1385513868    xor bx, bx                                ; 31 db
    1385613869    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13857     call 0a1a0h                               ; e8 8d 12
     13870    call 0a1c0h                               ; e8 8d 12
    1385813871    lea di, [si+00200h]                       ; 8d bc 00 02
    1385913872    mov cx, strict word 00060h                ; b9 60 00
     
    1386113874    mov ax, di                                ; 89 f8
    1386213875    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13863     call 0a1a0h                               ; e8 7c 12
     13876    call 0a1c0h                               ; e8 7c 12
    1386413877    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1386513878    xor bh, bh                                ; 30 ff
     
    1388013893    mov ax, di                                ; 89 f8
    1388113894    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13882     call 0890eh                               ; e8 bb f9
     13895    call 0892eh                               ; e8 bb f9
    1388313896    mov es, [bp-00ah]                         ; 8e 46 f6
    1388413897    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1392513938    mov ax, si                                ; 89 f0
    1392613939    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13927     call 0890eh                               ; e8 4f f9
     13940    call 0892eh                               ; e8 4f f9
    1392813941    mov es, [bp-00ah]                         ; 8e 46 f6
    1392913942    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1403014043    pop bp                                    ; 5d
    1403114044    retn                                      ; c3
    14032 @ahci_read_sectors:                          ; 0xf90ba LB 0xaa
     14045@ahci_read_sectors:                          ; 0xf90da LB 0xaa
    1403314046    push bp                                   ; 55
    1403414047    mov bp, sp                                ; 89 e5
     
    1404114054    sub di, strict byte 0000ch                ; 83 ef 0c
    1404214055    cmp di, strict byte 00004h                ; 83 ff 04
    14043     jbe short 090e5h                          ; 76 13
     14056    jbe short 09105h                          ; 76 13
    1404414057    push di                                   ; 57
    1404514058    mov ax, 00c62h                            ; b8 62 0c
     
    1404914062    mov ax, strict word 00007h                ; b8 07 00
    1405014063    push ax                                   ; 50
    14051     call 01976h                               ; e8 94 88
     14064    call 01976h                               ; e8 74 88
    1405214065    add sp, strict byte 00008h                ; 83 c4 08
    1405314066    xor bx, bx                                ; 31 db
     
    1406314076    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1406414077    xor ax, ax                                ; 31 c0
    14065     call 08e6ah                               ; e8 5a fd
     14078    call 08e8ah                               ; e8 5a fd
    1406614079    mov bx, strict word 00025h                ; bb 25 00
    1406714080    mov ax, si                                ; 89 f0
    1406814081    mov dx, word [bp+006h]                    ; 8b 56 06
    14069     call 08a85h                               ; e8 6a f9
     14082    call 08aa5h                               ; e8 6a f9
    1407014083    mov bx, ax                                ; 89 c3
    1407114084    mov es, [bp+006h]                         ; 8e 46 06
     
    1409714110    pop bp                                    ; 5d
    1409814111    retn 00004h                               ; c2 04 00
    14099 @ahci_write_sectors:                         ; 0xf9164 LB 0x88
     14112@ahci_write_sectors:                         ; 0xf9184 LB 0x88
    1410014113    push bp                                   ; 55
    1410114114    mov bp, sp                                ; 89 e5
     
    1410914122    sub bx, strict byte 0000ch                ; 83 eb 0c
    1411014123    cmp bx, strict byte 00004h                ; 83 fb 04
    14111     jbe short 09192h                          ; 76 13
     14124    jbe short 091b2h                          ; 76 13
    1411214125    push bx                                   ; 53
    1411314126    mov ax, 00c93h                            ; b8 93 0c
     
    1411714130    mov ax, strict word 00007h                ; b8 07 00
    1411814131    push ax                                   ; 50
    14119     call 01976h                               ; e8 e7 87
     14132    call 01976h                               ; e8 c7 87
    1412014133    add sp, strict byte 00008h                ; 83 c4 08
    1412114134    xor di, di                                ; 31 ff
     
    1413114144    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1413214145    xor ax, ax                                ; 31 c0
    14133     call 08e6ah                               ; e8 af fc
     14146    call 08e8ah                               ; e8 af fc
    1413414147    mov bx, strict word 00035h                ; bb 35 00
    1413514148    mov ax, si                                ; 89 f0
    1413614149    mov dx, cx                                ; 89 ca
    14137     call 08a85h                               ; e8 c0 f8
     14150    call 08aa5h                               ; e8 c0 f8
    1413814151    mov dx, ax                                ; 89 c2
    1413914152    mov es, cx                                ; 8e c1
     
    1415014163    pop bp                                    ; 5d
    1415114164    retn 00004h                               ; c2 04 00
    14152 ahci_cmd_packet_:                            ; 0xf91ec LB 0x18c
     14165ahci_cmd_packet_:                            ; 0xf920c LB 0x18c
    1415314166    push bp                                   ; 55
    1415414167    mov bp, sp                                ; 89 e5
     
    1416214175    mov dx, strict word 0000eh                ; ba 0e 00
    1416314176    mov ax, strict word 00040h                ; b8 40 00
    14164     call 0166eh                               ; e8 67 84
     14177    call 0166eh                               ; e8 47 84
    1416514178    mov si, 00122h                            ; be 22 01
    1416614179    mov word [bp-008h], ax                    ; 89 46 f8
    1416714180    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14168     jne short 09236h                          ; 75 23
    14169     mov bx, 00da4h                            ; bb a4 0d
     14181    jne short 09256h                          ; 75 23
     14182    mov bx, 00da0h                            ; bb a0 0d
    1417014183    mov cx, ds                                ; 8c d9
    1417114184    mov ax, strict word 00004h                ; b8 04 00
    14172     call 01933h                               ; e8 15 87
     14185    call 01933h                               ; e8 f5 86
    1417314186    mov ax, 00ca6h                            ; b8 a6 0c
    1417414187    push ax                                   ; 50
     
    1417714190    mov ax, strict word 00004h                ; b8 04 00
    1417814191    push ax                                   ; 50
    14179     call 01976h                               ; e8 49 87
     14192    call 01976h                               ; e8 29 87
    1418014193    add sp, strict byte 00006h                ; 83 c4 06
    1418114194    mov ax, strict word 00001h                ; b8 01 00
    14182     jmp near 0936fh                           ; e9 39 01
     14195    jmp near 0938fh                           ; e9 39 01
    1418314196    test byte [bp+004h], 001h                 ; f6 46 04 01
    14184     jne short 09230h                          ; 75 f4
     14197    jne short 09250h                          ; 75 f4
    1418514198    mov bx, word [bp+006h]                    ; 8b 5e 06
    1418614199    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1418814201    sal bx, 1                                 ; d1 e3
    1418914202    rcl di, 1                                 ; d1 d7
    14190     loop 09245h                               ; e2 fa
     14203    loop 09265h                               ; e2 fa
    1419114204    mov es, [bp-008h]                         ; 8e 46 f8
    1419214205    mov word [es:si], bx                      ; 26 89 1c
     
    1420214215    mov dx, word [bp+008h]                    ; 8b 56 08
    1420314216    xor cx, cx                                ; 31 c9
    14204     call 0a150h                               ; e8 d2 0e
     14217    call 0a170h                               ; e8 d2 0e
    1420514218    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1420614219    xor di, di                                ; 31 ff
     
    1422014233    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1422114234    xor ax, ax                                ; 31 c0
    14222     call 08e6ah                               ; e8 af fb
     14235    call 08e8ah                               ; e8 af fb
    1422314236    mov al, byte [bp-006h]                    ; 8a 46 fa
    1422414237    xor ah, ah                                ; 30 e4
     
    1422814241    mov ax, 000c0h                            ; b8 c0 00
    1422914242    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14230     call 0a1b0h                               ; e8 e0 0e
     14243    call 0a1d0h                               ; e8 e0 0e
    1423114244    mov es, [bp-008h]                         ; 8e 46 f8
    1423214245    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1423514248    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1423614249    test ax, ax                               ; 85 c0
    14237     je short 0930eh                           ; 74 27
     14250    je short 0932eh                           ; 74 27
    1423814251    dec ax                                    ; 48
    1423914252    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1424814261    mov ax, si                                ; 89 f0
    1424914262    mov dx, word [bp-008h]                    ; 8b 56 f8
    14250     call 08a85h                               ; e8 6c f7
     14263    call 08aa5h                               ; e8 6c f7
    1425114264    les bx, [bp-00eh]                         ; c4 5e f2
    1425214265    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1427514288    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1427614289    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14277     jne short 0936dh                          ; 75 05
     14290    jne short 0938dh                          ; 75 05
    1427814291    mov ax, strict word 00004h                ; b8 04 00
    14279     jmp short 0936fh                          ; eb 02
     14292    jmp short 0938fh                          ; eb 02
    1428014293    xor ax, ax                                ; 31 c0
    1428114294    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1428414297    pop bp                                    ; 5d
    1428514298    retn 0000ch                               ; c2 0c 00
    14286 wait_ticks_device_init_:                     ; 0xf9378 LB 0x5
     14299wait_ticks_device_init_:                     ; 0xf9398 LB 0x5
    1428714300    push bp                                   ; 55
    1428814301    mov bp, sp                                ; 89 e5
    1428914302    pop bp                                    ; 5d
    1429014303    retn                                      ; c3
    14291 ahci_port_detect_device_:                    ; 0xf937d LB 0x4f6
     14304ahci_port_detect_device_:                    ; 0xf939d LB 0x4f6
    1429214305    push bp                                   ; 55
    1429314306    mov bp, sp                                ; 89 e5
     
    1430614319    mov bx, word [bp-02ah]                    ; 8b 5e d6
    1430714320    mov ax, si                                ; 89 f0
    14308     call 08e6ah                               ; e8 c4 fa
     14321    call 08e8ah                               ; e8 c4 fa
    1430914322    mov dx, strict word 0000eh                ; ba 0e 00
    1431014323    mov ax, strict word 00040h                ; b8 40 00
    14311     call 0166eh                               ; e8 bf 82
     14324    call 0166eh                               ; e8 9f 82
    1431214325    mov word [bp-026h], 00122h                ; c7 46 da 22 01
    1431314326    mov word [bp-024h], ax                    ; 89 46 dc
     
    1436914382    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1437014383    cmp ax, word [bp-028h]                    ; 3b 46 d8
    14371     jc short 0945ah                           ; 72 11
     14384    jc short 0947ah                           ; 72 11
    1437214385    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1437314386    cmp ax, word [bp-028h]                    ; 3b 46 d8
    14374     jne short 094a8h                          ; 75 56
     14387    jne short 094c8h                          ; 75 56
    1437514388    mov ax, word [es:di]                      ; 26 8b 05
    1437614389    cmp ax, word [bp-01ch]                    ; 3b 46 e4
    14377     jnc short 094a8h                          ; 73 4e
     14390    jnc short 094c8h                          ; 73 4e
    1437814391    mov al, byte [bp-008h]                    ; 8a 46 f8
    1437914392    xor ah, ah                                ; 30 e4
     
    1440514418    mov bx, strict word 0000fh                ; bb 0f 00
    1440614419    xor cx, cx                                ; 31 c9
    14407     call 088f2h                               ; e8 51 f4
     14420    call 08912h                               ; e8 51 f4
    1440814421    cmp ax, strict word 00003h                ; 3d 03 00
    14409     jne short 0943dh                          ; 75 97
    14410     jmp short 094b1h                          ; eb 09
     14422    jne short 0945dh                          ; 75 97
     14423    jmp short 094d1h                          ; eb 09
    1441114424    cmp word [bp-01eh], strict byte 00000h    ; 83 7e e2 00
    14412     jne short 094b1h                          ; 75 03
    14413     jmp near 0986bh                           ; e9 ba 03
     14425    jne short 094d1h                          ; 75 03
     14426    jmp near 0988bh                           ; e9 ba 03
    1441414427    xor ax, ax                                ; 31 c0
    1441514428    push ax                                   ; 50
     
    1441814431    mov ax, word [bp-022h]                    ; 8b 46 de
    1441914432    mov dx, word [bp-020h]                    ; 8b 56 e0
    14420     call 088f2h                               ; e8 30 f4
     14433    call 08912h                               ; e8 30 f4
    1442114434    cmp ax, strict word 00003h                ; 3d 03 00
    14422     jne short 094aeh                          ; 75 e7
     14435    jne short 094ceh                          ; 75 e7
    1442314436    mov al, byte [bp-008h]                    ; 8a 46 f8
    1442414437    xor ah, ah                                ; 30 e4
     
    1445114464    mov byte [bp-00ch], al                    ; 88 46 f4
    1445214465    cmp AL, strict byte 004h                  ; 3c 04
    14453     jnc short 094aeh                          ; 73 9a
     14466    jnc short 094ceh                          ; 73 9a
    1445414467    lea ax, [di+00118h]                       ; 8d 85 18 01
    1445514468    mov es, [bp-01ah]                         ; 8e 46 e6
     
    1450014513    mov byte [bp-00eh], bl                    ; 88 5e f2
    1450114514    test dx, dx                               ; 85 d2
    14502     jne short 095d9h                          ; 75 54
     14515    jne short 095f9h                          ; 75 54
    1450314516    cmp ax, 00101h                            ; 3d 01 01
    14504     jne short 095d9h                          ; 75 4f
     14517    jne short 095f9h                          ; 75 4f
    1450514518    les bx, [bp-026h]                         ; c4 5e da
    1450614519    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
     
    1451614529    mov ax, word [bp-026h]                    ; 8b 46 da
    1451714530    mov dx, es                                ; 8c c2
    14518     call 08a85h                               ; e8 be f4
     14531    call 08aa5h                               ; e8 be f4
    1451914532    mov al, byte [bp-00eh]                    ; 8a 46 f2
    1452014533    mov byte [bp-00ah], al                    ; 88 46 f6
    1452114534    test byte [bp-00232h], 080h               ; f6 86 ce fd 80
    14522     je short 095dch                           ; 74 08
     14535    je short 095fch                           ; 74 08
    1452314536    mov ax, strict word 00001h                ; b8 01 00
    14524     jmp short 095deh                          ; eb 05
    14525     jmp near 097aah                           ; e9 ce 01
     14537    jmp short 095feh                          ; eb 05
     14538    jmp near 097cah                           ; e9 ce 01
    1452614539    xor ax, ax                                ; 31 c0
    1452714540    mov cl, al                                ; 88 c1
     
    1453814551    mov word [bp-010h], ax                    ; 89 46 f0
    1453914552    cmp si, 00fffh                            ; 81 fe ff 0f
    14540     jne short 09626h                          ; 75 1b
     14553    jne short 09646h                          ; 75 1b
    1454114554    cmp di, strict byte 0ffffh                ; 83 ff ff
    14542     jne short 09626h                          ; 75 16
     14555    jne short 09646h                          ; 75 16
    1454314556    mov ax, word [bp-00164h]                  ; 8b 86 9c fe
    1454414557    mov word [bp-010h], ax                    ; 89 46 f0
     
    1457814591    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1457914592    cmp AL, strict byte 001h                  ; 3c 01
    14580     jc short 096a0h                           ; 72 0c
    14581     jbe short 096a8h                          ; 76 12
     14593    jc short 096c0h                           ; 72 0c
     14594    jbe short 096c8h                          ; 76 12
    1458214595    cmp AL, strict byte 003h                  ; 3c 03
    14583     je short 096b0h                           ; 74 16
     14596    je short 096d0h                           ; 74 16
    1458414597    cmp AL, strict byte 002h                  ; 3c 02
    14585     je short 096ach                           ; 74 0e
    14586     jmp short 096fah                          ; eb 5a
     14598    je short 096cch                           ; 74 0e
     14599    jmp short 0971ah                          ; eb 5a
    1458714600    test al, al                               ; 84 c0
    14588     jne short 096fah                          ; 75 56
     14601    jne short 0971ah                          ; 75 56
    1458914602    mov BL, strict byte 040h                  ; b3 40
    14590     jmp short 096b2h                          ; eb 0a
     14603    jmp short 096d2h                          ; eb 0a
    1459114604    mov BL, strict byte 048h                  ; b3 48
    14592     jmp short 096b2h                          ; eb 06
     14605    jmp short 096d2h                          ; eb 06
    1459314606    mov BL, strict byte 050h                  ; b3 50
    14594     jmp short 096b2h                          ; eb 02
     14607    jmp short 096d2h                          ; eb 02
    1459514608    mov BL, strict byte 058h                  ; b3 58
    1459614609    mov dl, bl                                ; 88 da
     
    1459814611    xor dh, dh                                ; 30 f6
    1459914612    mov ax, dx                                ; 89 d0
    14600     call 016aeh                               ; e8 f0 7f
     14613    call 016aeh                               ; e8 d0 7f
    1460114614    test al, al                               ; 84 c0
    14602     je short 096fah                           ; 74 38
     14615    je short 0971ah                           ; 74 38
    1460314616    mov al, bl                                ; 88 d8
    1460414617    db  0feh, 0c0h
    1460514618    ; inc al                                    ; fe c0
    1460614619    xor ah, ah                                ; 30 e4
    14607     call 016aeh                               ; e8 e3 7f
     14620    call 016aeh                               ; e8 c3 7f
    1460814621    mov byte [bp-029h], al                    ; 88 46 d7
    1460914622    mov byte [bp-02ah], dh                    ; 88 76 d6
    1461014623    mov al, bl                                ; 88 d8
    1461114624    xor ah, ah                                ; 30 e4
    14612     call 016aeh                               ; e8 d6 7f
     14625    call 016aeh                               ; e8 b6 7f
    1461314626    xor ah, ah                                ; 30 e4
    1461414627    mov cx, word [bp-02ah]                    ; 8b 4e d6
     
    1461714630    mov al, bl                                ; 88 d8
    1461814631    add AL, strict byte 002h                  ; 04 02
    14619     call 016aeh                               ; e8 c5 7f
     14632    call 016aeh                               ; e8 a5 7f
    1462014633    xor ah, ah                                ; 30 e4
    1462114634    mov word [bp-032h], ax                    ; 89 46 ce
    1462214635    mov ax, dx                                ; 89 d0
    14623     call 016aeh                               ; e8 bb 7f
     14636    call 016aeh                               ; e8 9b 7f
    1462414637    xor ah, ah                                ; 30 e4
    1462514638    mov word [bp-02eh], ax                    ; 89 46 d2
    14626     jmp short 0970ah                          ; eb 10
     14639    jmp short 0972ah                          ; eb 10
    1462714640    push word [bp-010h]                       ; ff 76 f0
    1462814641    push word [bp-012h]                       ; ff 76 ee
     
    1463114644    mov dx, ss                                ; 8c d2
    1463214645    lea ax, [bp-032h]                         ; 8d 46 ce
    14633     call 05b7fh                               ; e8 75 c4
    14634     mov bx, 00da4h                            ; bb a4 0d
     14646    call 05b9fh                               ; e8 75 c4
     14647    mov bx, 00da0h                            ; bb a0 0d
    1463514648    mov cx, ds                                ; 8c d9
    1463614649    mov ax, strict word 00004h                ; b8 04 00
    14637     call 01933h                               ; e8 1e 82
     14650    call 01933h                               ; e8 fe 81
    1463814651    push word [bp-010h]                       ; ff 76 f0
    1463914652    push word [bp-012h]                       ; ff 76 ee
     
    1465814671    mov ax, strict word 00004h                ; b8 04 00
    1465914672    push ax                                   ; 50
    14660     call 01976h                               ; e8 2f 82
     14673    call 01976h                               ; e8 0f 82
    1466114674    add sp, strict byte 0001ch                ; 83 c4 1c
    1466214675    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1469114704    mov dx, strict word 00075h                ; ba 75 00
    1469214705    mov ax, strict word 00040h                ; b8 40 00
    14693     call 01652h                               ; e8 ba 7e
     14706    call 01652h                               ; e8 9a 7e
    1469414707    mov bl, al                                ; 88 c3
    1469514708    db  0feh, 0c3h
     
    1469814711    mov dx, strict word 00075h                ; ba 75 00
    1469914712    mov ax, strict word 00040h                ; b8 40 00
    14700     call 01660h                               ; e8 b9 7e
    14701     jmp near 0985dh                           ; e9 b3 00
     14713    call 01660h                               ; e8 99 7e
     14714    jmp near 0987dh                           ; e9 b3 00
    1470214715    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14703     jne short 09804h                          ; 75 54
     14716    jne short 09824h                          ; 75 54
    1470414717    cmp ax, 00101h                            ; 3d 01 01
    14705     jne short 09804h                          ; 75 4f
     14718    jne short 09824h                          ; 75 4f
    1470614719    les bx, [bp-026h]                         ; c4 5e da
    1470714720    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
     
    1471714730    mov ax, word [bp-026h]                    ; 8b 46 da
    1471814731    mov dx, es                                ; 8c c2
    14719     call 08a85h                               ; e8 93 f2
     14732    call 08aa5h                               ; e8 93 f2
    1472014733    mov al, byte [bp-00eh]                    ; 8a 46 f2
    1472114734    mov byte [bp-00ah], al                    ; 88 46 f6
    1472214735    test byte [bp-00232h], 080h               ; f6 86 ce fd 80
    14723     je short 09806h                           ; 74 07
     14736    je short 09826h                           ; 74 07
    1472414737    mov cx, strict word 00001h                ; b9 01 00
    14725     jmp short 09808h                          ; eb 04
    14726     jmp short 0985dh                          ; eb 57
     14738    jmp short 09828h                          ; eb 04
     14739    jmp short 0987dh                          ; eb 57
    1472714740    xor cx, cx                                ; 31 c9
    1472814741    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1476314776    pop bp                                    ; 5d
    1476414777    retn                                      ; c3
    14765 ahci_mem_alloc_:                             ; 0xf9873 LB 0x43
     14778ahci_mem_alloc_:                             ; 0xf9893 LB 0x43
    1476614779    push bp                                   ; 55
    1476714780    mov bp, sp                                ; 89 e5
     
    1477314786    mov dx, 00413h                            ; ba 13 04
    1477414787    xor ax, ax                                ; 31 c0
    14775     call 0166eh                               ; e8 eb 7d
     14788    call 0166eh                               ; e8 cb 7d
    1477614789    test ax, ax                               ; 85 c0
    14777     je short 098ach                           ; 74 25
     14790    je short 098cch                           ; 74 25
    1477814791    dec ax                                    ; 48
    1477914792    mov bx, ax                                ; 89 c3
     
    1478214795    sal ax, 1                                 ; d1 e0
    1478314796    rcl dx, 1                                 ; d1 d2
    14784     loop 0988fh                               ; e2 fa
     14797    loop 098afh                               ; e2 fa
    1478514798    mov si, ax                                ; 89 c6
    1478614799    mov di, dx                                ; 89 d7
     
    1478814801    shr di, 1                                 ; d1 ef
    1478914802    rcr si, 1                                 ; d1 de
    14790     loop 0989ch                               ; e2 fa
     14803    loop 098bch                               ; e2 fa
    1479114804    mov dx, 00413h                            ; ba 13 04
    1479214805    xor ax, ax                                ; 31 c0
    14793     call 0167ch                               ; e8 d2 7d
     14806    call 0167ch                               ; e8 b2 7d
    1479414807    mov ax, si                                ; 89 f0
    1479514808    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1480114814    pop bp                                    ; 5d
    1480214815    retn                                      ; c3
    14803 ahci_hba_init_:                              ; 0xf98b6 LB 0x16e
     14816ahci_hba_init_:                              ; 0xf98d6 LB 0x16e
    1480414817    push bp                                   ; 55
    1480514818    mov bp, sp                                ; 89 e5
     
    1481314826    mov dx, strict word 0000eh                ; ba 0e 00
    1481414827    mov ax, strict word 00040h                ; b8 40 00
    14815     call 0166eh                               ; e8 a2 7d
     14828    call 0166eh                               ; e8 82 7d
    1481614829    mov bx, 00122h                            ; bb 22 01
    1481714830    mov di, ax                                ; 89 c7
     
    1483014843    shr eax, 010h                             ; 66 c1 e8 10
    1483114844    xchg dx, ax                               ; 92
    14832     call 09873h                               ; e8 83 ff
     14845    call 09893h                               ; e8 83 ff
    1483314846    mov word [bp-010h], ax                    ; 89 46 f0
    1483414847    test ax, ax                               ; 85 c0
    14835     jne short 098fah                          ; 75 03
    14836     jmp near 09a03h                           ; e9 09 01
     14848    jne short 0991ah                          ; 75 03
     14849    jmp near 09a23h                           ; e9 09 01
    1483714850    mov ax, word [bp-010h]                    ; 8b 46 f0
    1483814851    mov es, di                                ; 8e c7
     
    1488414897    xchg dx, ax                               ; 92
    1488514898    test AL, strict byte 001h                 ; a8 01
    14886     jne short 09954h                          ; 75 de
     14899    jne short 09974h                          ; 75 de
    1488714900    xor ax, ax                                ; 31 c0
    1488814901    xor cx, cx                                ; 31 c9
     
    1490314916    mov bx, strict word 0001fh                ; bb 1f 00
    1490414917    xor cx, cx                                ; 31 c9
    14905     call 088f2h                               ; e8 57 ef
     14918    call 08912h                               ; e8 57 ef
    1490614919    db  0feh, 0c0h
    1490714920    ; inc al                                    ; fe c0
    1490814921    mov byte [bp-00eh], al                    ; 88 46 f2
    1490914922    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14910     jmp short 099c7h                          ; eb 21
     14923    jmp short 099e7h                          ; eb 21
    1491114924    xor al, al                                ; 30 c0
    1491214925    test al, al                               ; 84 c0
    14913     je short 099beh                           ; 74 12
     14926    je short 099deh                           ; 74 12
    1491414927    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1491514928    xor bh, bh                                ; 30 ff
    1491614929    xor ax, ax                                ; 31 c0
    1491714930    mov dx, word [bp-010h]                    ; 8b 56 f0
    14918     call 0937dh                               ; e8 c4 f9
     14931    call 0939dh                               ; e8 c4 f9
    1491914932    dec byte [bp-00eh]                        ; fe 4e f2
    14920     je short 09a01h                           ; 74 43
     14933    je short 09a21h                           ; 74 43
    1492114934    inc byte [bp-00ch]                        ; fe 46 f4
    1492214935    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14923     jnc short 09a01h                          ; 73 3a
     14936    jnc short 09a21h                          ; 73 3a
    1492414937    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1492514938    xor ch, ch                                ; 30 ed
    1492614939    mov bx, strict word 00001h                ; bb 01 00
    1492714940    xor di, di                                ; 31 ff
    14928     jcxz 099d9h                               ; e3 06
     14941    jcxz 099f9h                               ; e3 06
    1492914942    sal bx, 1                                 ; d1 e3
    1493014943    rcl di, 1                                 ; d1 d7
    14931     loop 099d3h                               ; e2 fa
     14944    loop 099f3h                               ; e2 fa
    1493214945    mov ax, strict word 0000ch                ; b8 0c 00
    1493314946    xor cx, cx                                ; 31 c9
     
    1494514958    xchg dx, ax                               ; 92
    1494614959    test dx, di                               ; 85 fa
    14947     jne short 099fdh                          ; 75 04
     14960    jne short 09a1dh                          ; 75 04
    1494814961    test ax, bx                               ; 85 d8
    14949     je short 099a6h                           ; 74 a9
     14962    je short 099c6h                           ; 74 a9
    1495014963    mov AL, strict byte 001h                  ; b0 01
    14951     jmp short 099a8h                          ; eb a7
     14964    jmp short 099c8h                          ; eb a7
    1495214965    xor ax, ax                                ; 31 c0
    1495314966    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1495914972    pop bp                                    ; 5d
    1496014973    retn                                      ; c3
    14961     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 00ah, 09bh, 0e8h, 09ah, 0eeh, 09ah, 0f4h, 09ah, 0fah
    14962     db  09ah, 000h, 09bh, 006h, 09bh, 00ah, 09bh
    14963 _ahci_init:                                  ; 0xf9a24 LB 0x139
     14974    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 02ah, 09bh, 008h, 09bh, 00eh, 09bh, 014h, 09bh, 01ah
     14975    db  09bh, 020h, 09bh, 026h, 09bh, 02ah, 09bh
     14976_ahci_init:                                  ; 0xf9a44 LB 0x139
    1496414977    push bp                                   ; 55
    1496514978    mov bp, sp                                ; 89 e5
     
    1496914982    mov ax, 00601h                            ; b8 01 06
    1497014983    mov dx, strict word 00001h                ; ba 01 00
    14971     call 09f7ch                               ; e8 47 05
     14984    call 09f9ch                               ; e8 47 05
    1497214985    mov dx, ax                                ; 89 c2
    1497314986    cmp ax, strict word 0ffffh                ; 3d ff ff
    14974     je short 09a85h                           ; 74 49
     14987    je short 09aa5h                           ; 74 49
    1497514988    mov al, ah                                ; 88 e0
    1497614989    mov byte [bp-008h], ah                    ; 88 66 f8
     
    1497914992    xor ah, ah                                ; 30 e4
    1498014993    mov bx, strict word 00034h                ; bb 34 00
    14981     call 09fa7h                               ; e8 59 05
     14994    call 09fc7h                               ; e8 59 05
    1498214995    mov cl, al                                ; 88 c1
    1498314996    test cl, cl                               ; 84 c9
    14984     je short 09a88h                           ; 74 34
     14997    je short 09aa8h                           ; 74 34
    1498514998    mov bl, cl                                ; 88 cb
    1498614999    xor bh, bh                                ; 30 ff
     
    1499315006    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1499415007    mov ax, word [bp-012h]                    ; 8b 46 ee
    14995     call 09fa7h                               ; e8 34 05
     15008    call 09fc7h                               ; e8 34 05
    1499615009    cmp AL, strict byte 012h                  ; 3c 12
    14997     je short 09a88h                           ; 74 11
     15010    je short 09aa8h                           ; 74 11
    1499815011    mov bl, cl                                ; 88 cb
    1499915012    db  0feh, 0c3h
     
    1500215015    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1500315016    mov ax, word [bp-012h]                    ; 8b 46 ee
    15004     jmp short 09a4bh                          ; eb c6
    15005     jmp near 09b56h                           ; e9 ce 00
     15017    jmp short 09a6bh                          ; eb c6
     15018    jmp near 09b76h                           ; e9 ce 00
    1500615019    test cl, cl                               ; 84 c9
    15007     je short 09a85h                           ; 74 f9
     15020    je short 09aa5h                           ; 74 f9
    1500815021    add cl, 002h                              ; 80 c1 02
    1500915022    mov bl, cl                                ; 88 cb
     
    1501715030    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1501815031    mov ax, word [bp-014h]                    ; 8b 46 ec
    15019     call 09fa7h                               ; e8 f9 04
     15032    call 09fc7h                               ; e8 f9 04
    1502015033    cmp AL, strict byte 010h                  ; 3c 10
    15021     jne short 09a85h                          ; 75 d3
     15034    jne short 09aa5h                          ; 75 d3
    1502215035    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1502315036    mov bl, cl                                ; 88 cb
     
    1502615039    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1502715040    mov ax, word [bp-014h]                    ; 8b 46 ec
    15028     call 09fceh                               ; e8 08 05
     15041    call 09feeh                               ; e8 08 05
    1502915042    mov dx, ax                                ; 89 c2
    1503015043    and ax, strict word 0000fh                ; 25 0f 00
    1503115044    sub ax, strict word 00004h                ; 2d 04 00
    1503215045    cmp ax, strict word 0000bh                ; 3d 0b 00
    15033     jnbe short 09b0ah                         ; 77 37
     15046    jnbe short 09b2ah                         ; 77 37
    1503415047    push CS                                   ; 0e
    1503515048    pop ES                                    ; 07
    1503615049    mov cx, strict word 00008h                ; b9 08 00
    15037     mov di, 09a0dh                            ; bf 0d 9a
     15050    mov di, 09a2dh                            ; bf 2d 9a
    1503815051    repne scasb                               ; f2 ae
    1503915052    sal cx, 1                                 ; d1 e1
    1504015053    mov di, cx                                ; 89 cf
    15041     mov ax, word [cs:di-065ech]               ; 2e 8b 85 14 9a
     15054    mov ax, word [cs:di-065cch]               ; 2e 8b 85 34 9a
    1504215055    jmp ax                                    ; ff e0
    1504315056    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    15044     jmp short 09b0ah                          ; eb 1c
     15057    jmp short 09b2ah                          ; eb 1c
    1504515058    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    15046     jmp short 09b0ah                          ; eb 16
     15059    jmp short 09b2ah                          ; eb 16
    1504715060    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    15048     jmp short 09b0ah                          ; eb 10
     15061    jmp short 09b2ah                          ; eb 10
    1504915062    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    15050     jmp short 09b0ah                          ; eb 0a
     15063    jmp short 09b2ah                          ; eb 0a
    1505115064    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    15052     jmp short 09b0ah                          ; eb 04
     15065    jmp short 09b2ah                          ; eb 04
    1505315066    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1505415067    mov CL, strict byte 004h                  ; b1 04
     
    1505915072    mov al, byte [bp-006h]                    ; 8a 46 fa
    1506015073    test al, al                               ; 84 c0
    15061     je short 09b56h                           ; 74 3b
     15074    je short 09b76h                           ; 74 3b
    1506215075    mov bl, al                                ; 88 c3
    1506315076    xor bh, bh                                ; 30 ff
     
    1507015083    mov dx, word [bp-010h]                    ; 8b 56 f0
    1507115084    mov ax, word [bp-016h]                    ; 8b 46 ea
    15072     call 09ff3h                               ; e8 b9 04
     15085    call 0a013h                               ; e8 b9 04
    1507315086    test AL, strict byte 001h                 ; a8 01
    15074     je short 09b56h                           ; 74 18
     15087    je short 09b76h                           ; 74 18
    1507515088    and AL, strict byte 0f0h                  ; 24 f0
    1507615089    add si, ax                                ; 01 c6
     
    1507915092    mov dx, word [bp-010h]                    ; 8b 56 f0
    1508015093    mov ax, word [bp-016h]                    ; 8b 46 ea
    15081     call 0a032h                               ; e8 e1 04
     15094    call 0a052h                               ; e8 e1 04
    1508215095    mov ax, si                                ; 89 f0
    15083     call 098b6h                               ; e8 60 fd
     15096    call 098d6h                               ; e8 60 fd
    1508415097    lea sp, [bp-004h]                         ; 8d 66 fc
    1508515098    pop di                                    ; 5f
     
    1508715100    pop bp                                    ; 5d
    1508815101    retn                                      ; c3
    15089 apm_out_str_:                                ; 0xf9b5d LB 0x39
     15102apm_out_str_:                                ; 0xf9b7d LB 0x39
    1509015103    push bp                                   ; 55
    1509115104    mov bp, sp                                ; 89 e5
     
    1509315106    mov bx, ax                                ; 89 c3
    1509415107    cmp byte [bx], 000h                       ; 80 3f 00
    15095     je short 09b72h                           ; 74 0a
     15108    je short 09b92h                           ; 74 0a
    1509615109    mov al, byte [bx]                         ; 8a 07
    1509715110    out DX, AL                                ; ee
     
    1510015113    db  00ah, 0c0h
    1510115114    ; or al, al                                 ; 0a c0
    15102     jne short 09b6ah                          ; 75 f8
     15115    jne short 09b8ah                          ; 75 f8
    1510315116    lea sp, [bp-002h]                         ; 8d 66 fe
    1510415117    pop bx                                    ; 5b
    1510515118    pop bp                                    ; 5d
    1510615119    retn                                      ; c3
    15107     mov BH, strict byte 09bh                  ; b7 9b
    15108     inc dx                                    ; 42
     15120    xlatb                                     ; d7
     15121    wait                                      ; 9b
     15122    bound bx, [si-06417h]                     ; 62 9c e9 9b
     15123    add AL, strict byte 09ch                  ; 04 9c
     15124    bound bx, [si-063d1h]                     ; 62 9c 2f 9c
     15125    bound bx, [si-06398h]                     ; 62 9c 68 9c
     15126    xor AL, strict byte 09ch                  ; 34 9c
     15127    xor AL, strict byte 09ch                  ; 34 9c
     15128    xor AL, strict byte 09ch                  ; 34 9c
     15129    cmpsw                                     ; a7
    1510915130    pushfw                                    ; 9c
    15110     leave                                     ; c9
    15111     wait                                      ; 9b
    15112     in AL, strict byte 09bh                   ; e4 9b
    15113     inc dx                                    ; 42
     15131    xor AL, strict byte 09ch                  ; 34 9c
     15132    xor AL, strict byte 09ch                  ; 34 9c
     15133    db  0a0h
    1511415134    pushfw                                    ; 9c
    15115     db  00fh, 09ch, 042h, 09ch
    15116     ; setl byte [bp+si-064h]                    ; 0f 9c 42 9c
    15117     dec ax                                    ; 48
    15118     pushfw                                    ; 9c
    15119     adc AL, strict byte 09ch                  ; 14 9c
    15120     adc AL, strict byte 09ch                  ; 14 9c
    15121     adc AL, strict byte 09ch                  ; 14 9c
    15122     xchg word [si-063ech], bx                 ; 87 9c 14 9c
    15123     adc AL, strict byte 09ch                  ; 14 9c
    15124     db  080h
    15125     pushfw                                    ; 9c
    15126 _apm_function:                               ; 0xf9b96 LB 0xf6
     15135_apm_function:                               ; 0xf9bb6 LB 0xf6
    1512715136    push bp                                   ; 55
    1512815137    mov bp, sp                                ; 89 e5
     
    1513215141    xor ah, ah                                ; 30 e4
    1513315142    cmp ax, strict word 0000eh                ; 3d 0e 00
    15134     jnbe short 09c14h                         ; 77 6c
     15143    jnbe short 09c34h                         ; 77 6c
    1513515144    mov bx, ax                                ; 89 c3
    1513615145    sal bx, 1                                 ; d1 e3
    1513715146    mov dx, word [bp+018h]                    ; 8b 56 18
    1513815147    or dl, 001h                               ; 80 ca 01
    15139     jmp word [cs:bx-06488h]                   ; 2e ff a7 78 9b
     15148    jmp word [cs:bx-06468h]                   ; 2e ff a7 98 9b
    1514015149    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1514115150    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1514215151    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15143     jmp near 09c42h                           ; e9 79 00
     15152    jmp near 09c62h                           ; e9 79 00
    1514415153    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15145     mov word [bp+00ch], 0a224h                ; c7 46 0c 24 a2
     15154    mov word [bp+00ch], 0a244h                ; c7 46 0c 44 a2
    1514615155    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1514715156    mov ax, strict word 0fff0h                ; b8 f0 ff
    1514815157    mov word [bp+006h], ax                    ; 89 46 06
    1514915158    mov word [bp+004h], ax                    ; 89 46 04
    15150     jmp near 09c42h                           ; e9 5e 00
     15159    jmp near 09c62h                           ; e9 5e 00
    1515115160    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1515215161    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1516115170    mov si, ax                                ; 89 c6
    1516215171    sal esi, 010h                             ; 66 c1 e6 10
    15163     jmp near 09c42h                           ; e9 33 00
     15172    jmp near 09c62h                           ; e9 33 00
    1516415173    sti                                       ; fb
    1516515174    hlt                                       ; f4
    15166     jmp near 09c42h                           ; e9 2e 00
    15167     mov bx, 00da4h                            ; bb a4 0d
     15175    jmp near 09c62h                           ; e9 2e 00
     15176    mov bx, 00da0h                            ; bb a0 0d
    1516815177    mov cx, ds                                ; 8c d9
    1516915178    mov ax, strict word 00004h                ; b8 04 00
    15170     call 01933h                               ; e8 14 7d
     15179    call 01933h                               ; e8 f4 7c
    1517115180    push word [bp+00ch]                       ; ff 76 0c
    1517215181    push word [bp+012h]                       ; ff 76 12
     
    1517515184    mov ax, strict word 00004h                ; b8 04 00
    1517615185    push ax                                   ; 50
    15177     call 01976h                               ; e8 46 7d
     15186    call 01976h                               ; e8 26 7d
    1517815187    add sp, strict byte 00008h                ; 83 c4 08
    1517915188    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1518715196    retn                                      ; c3
    1518815197    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15189     je short 09c6dh                           ; 74 1f
     15198    je short 09c8dh                           ; 74 1f
    1519015199    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15191     je short 09c65h                           ; 74 11
     15200    je short 09c85h                           ; 74 11
    1519215201    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15193     jne short 09c75h                          ; 75 1b
     15202    jne short 09c95h                          ; 75 1b
    1519415203    mov dx, 0040fh                            ; ba 0f 04
    1519515204    mov ax, 00d10h                            ; b8 10 0d
    15196     call 09b5dh                               ; e8 fa fe
    15197     jmp short 09c42h                          ; eb dd
     15205    call 09b7dh                               ; e8 fa fe
     15206    jmp short 09c62h                          ; eb dd
    1519815207    mov dx, 0040fh                            ; ba 0f 04
    1519915208    mov ax, 00d18h                            ; b8 18 0d
    15200     jmp short 09c60h                          ; eb f3
     15209    jmp short 09c80h                          ; eb f3
    1520115210    mov dx, 0040fh                            ; ba 0f 04
    1520215211    mov ax, 00d20h                            ; b8 20 0d
    15203     jmp short 09c60h                          ; eb eb
     15212    jmp short 09c80h                          ; eb eb
    1520415213    or ah, 00ah                               ; 80 cc 0a
    1520515214    mov word [bp+012h], ax                    ; 89 46 12
    1520615215    mov word [bp+018h], dx                    ; 89 56 18
    15207     jmp short 09c42h                          ; eb c2
     15216    jmp short 09c62h                          ; eb c2
    1520815217    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15209     jmp short 09c42h                          ; eb bb
     15218    jmp short 09c62h                          ; eb bb
    1521015219    or ah, 080h                               ; 80 cc 80
    15211     jmp short 09c78h                          ; eb ec
    15212 pci16_select_reg_:                           ; 0xf9c8c LB 0x24
     15220    jmp short 09c98h                          ; eb ec
     15221pci16_select_reg_:                           ; 0xf9cac LB 0x24
    1521315222    push bp                                   ; 55
    1521415223    mov bp, sp                                ; 89 e5
     
    1522715236    pop bp                                    ; 5d
    1522815237    retn                                      ; c3
    15229 pci16_find_device_:                          ; 0xf9cb0 LB 0xf7
     15238pci16_find_device_:                          ; 0xf9cd0 LB 0xf7
    1523015239    push bp                                   ; 55
    1523115240    mov bp, sp                                ; 89 e5
     
    1524115250    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1524215251    test bl, 007h                             ; f6 c3 07
    15243     jne short 09cf8h                          ; 75 2d
     15252    jne short 09d18h                          ; 75 2d
    1524415253    mov dx, strict word 0000eh                ; ba 0e 00
    1524515254    mov ax, bx                                ; 89 d8
    15246     call 09c8ch                               ; e8 b9 ff
     15255    call 09cach                               ; e8 b9 ff
    1524715256    mov dx, 00cfeh                            ; ba fe 0c
    1524815257    in AL, DX                                 ; ec
     
    1525115260    mov byte [bp-008h], al                    ; 88 46 f8
    1525215261    cmp AL, strict byte 0ffh                  ; 3c ff
    15253     jne short 09ce6h                          ; 75 06
     15262    jne short 09d06h                          ; 75 06
    1525415263    add bx, strict byte 00008h                ; 83 c3 08
    15255     jmp near 09d78h                           ; e9 92 00
     15264    jmp near 09d98h                           ; e9 92 00
    1525615265    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15257     je short 09cf3h                           ; 74 07
     15266    je short 09d13h                           ; 74 07
    1525815267    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15259     jmp short 09cf8h                          ; eb 05
     15268    jmp short 09d18h                          ; eb 05
    1526015269    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1526115270    mov al, byte [bp-008h]                    ; 8a 46 f8
    1526215271    and AL, strict byte 007h                  ; 24 07
    1526315272    cmp AL, strict byte 001h                  ; 3c 01
    15264     jne short 09d1fh                          ; 75 1e
     15273    jne short 09d3fh                          ; 75 1e
    1526515274    mov al, bh                                ; 88 f8
    1526615275    xor ah, ah                                ; 30 e4
    1526715276    test ax, ax                               ; 85 c0
    15268     jne short 09d1fh                          ; 75 16
     15277    jne short 09d3fh                          ; 75 16
    1526915278    mov dx, strict word 0001ah                ; ba 1a 00
    1527015279    mov ax, bx                                ; 89 d8
    15271     call 09c8ch                               ; e8 7b ff
     15280    call 09cach                               ; e8 7b ff
    1527215281    mov dx, 00cfeh                            ; ba fe 0c
    1527315282    in AL, DX                                 ; ec
     
    1527515284    ; sub ah, ah                                ; 2a e4
    1527615285    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15277     jbe short 09d1fh                          ; 76 03
     15286    jbe short 09d3fh                          ; 76 03
    1527815287    mov byte [bp-006h], al                    ; 88 46 fa
    1527915288    test di, di                               ; 85 ff
    15280     je short 09d28h                           ; 74 05
     15289    je short 09d48h                           ; 74 05
    1528115290    mov dx, strict word 00008h                ; ba 08 00
    15282     jmp short 09d2ah                          ; eb 02
     15291    jmp short 09d4ah                          ; eb 02
    1528315292    xor dx, dx                                ; 31 d2
    1528415293    mov ax, bx                                ; 89 d8
    15285     call 09c8ch                               ; e8 5d ff
     15294    call 09cach                               ; e8 5d ff
    1528615295    mov dx, 00cfch                            ; ba fc 0c
    1528715296    in eax, DX                                ; 66 ed
     
    1529415303    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1529515304    test di, di                               ; 85 ff
    15296     je short 09d59h                           ; 74 0f
     15305    je short 09d79h                           ; 74 0f
    1529715306    mov cx, strict word 00008h                ; b9 08 00
    1529815307    shr dx, 1                                 ; d1 ea
    1529915308    rcr ax, 1                                 ; d1 d8
    15300     loop 09d4dh                               ; e2 fa
     15309    loop 09d6dh                               ; e2 fa
    1530115310    mov word [bp-00ah], ax                    ; 89 46 f6
    1530215311    mov word [bp-010h], dx                    ; 89 56 f0
    1530315312    mov ax, word [bp-010h]                    ; 8b 46 f0
    1530415313    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15305     jne short 09d69h                          ; 75 08
     15314    jne short 09d89h                          ; 75 08
    1530615315    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1530715316    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15308     je short 09d6fh                           ; 74 06
     15317    je short 09d8fh                           ; 74 06
    1530915318    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15310     je short 09d75h                           ; 74 06
     15319    je short 09d95h                           ; 74 06
    1531115320    dec si                                    ; 4e
    1531215321    cmp si, strict byte 0ffffh                ; 83 fe ff
    15313     je short 09d88h                           ; 74 13
     15322    je short 09da8h                           ; 74 13
    1531415323    add bx, word [bp-00eh]                    ; 03 5e f2
    1531515324    mov al, bh                                ; 88 f8
     
    1531815327    xor dh, dh                                ; 30 f6
    1531915328    cmp ax, dx                                ; 39 d0
    15320     jnbe short 09d88h                         ; 77 03
    15321     jmp near 09cc6h                           ; e9 3e ff
     15329    jnbe short 09da8h                         ; 77 03
     15330    jmp near 09ce6h                           ; e9 3e ff
    1532215331    cmp si, strict byte 0ffffh                ; 83 fe ff
    15323     jne short 09d91h                          ; 75 04
     15332    jne short 09db1h                          ; 75 04
    1532415333    mov ax, bx                                ; 89 d8
    15325     jmp short 09d94h                          ; eb 03
     15334    jmp short 09db4h                          ; eb 03
    1532615335    mov ax, strict word 0ffffh                ; b8 ff ff
    1532715336    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1533015339    pop bp                                    ; 5d
    1533115340    retn                                      ; c3
    15332     mov byte [bp-0615fh], bl                  ; 88 9e a1 9e
    15333     mov BL, strict byte 09eh                  ; b3 9e
    15334     db  0c7h, 09eh, 0d9h, 09eh, 0ech, 09eh
    15335     ; mov word [bp-06127h], 09eech              ; c7 9e d9 9e ec 9e
    15336 _pci16_function:                             ; 0xf9da7 LB 0x1d5
     15341    test AL, strict byte 09eh                 ; a8 9e
     15342    rcr word [bp-0612dh], 0e7h                ; c1 9e d3 9e e7
     15343    sahf                                      ; 9e
     15344    stc                                       ; f9
     15345    sahf                                      ; 9e
     15346    or AL, strict byte 09fh                   ; 0c 9f
     15347_pci16_function:                             ; 0xf9dc7 LB 0x1d5
    1533715348    push bp                                   ; 55
    1533815349    mov bp, sp                                ; 89 e5
     
    1534815359    xor ah, ah                                ; 30 e4
    1534915360    cmp bx, strict byte 00003h                ; 83 fb 03
    15350     jc short 09dd9h                           ; 72 13
    15351     jbe short 09e2ch                          ; 76 64
     15361    jc short 09df9h                           ; 72 13
     15362    jbe short 09e4ch                          ; 76 64
    1535215363    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15353     je short 09e34h                           ; 74 67
     15364    je short 09e54h                           ; 74 67
    1535415365    cmp bx, strict byte 00008h                ; 83 fb 08
    15355     jc short 09de3h                           ; 72 11
     15366    jc short 09e03h                           ; 72 11
    1535615367    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15357     jbe short 09e37h                          ; 76 60
    15358     jmp short 09de3h                          ; eb 0a
     15368    jbe short 09e57h                          ; 76 60
     15369    jmp short 09e03h                          ; eb 0a
    1535915370    cmp bx, strict byte 00002h                ; 83 fb 02
    15360     je short 09e02h                           ; 74 24
     15371    je short 09e22h                           ; 74 24
    1536115372    cmp bx, strict byte 00001h                ; 83 fb 01
    15362     je short 09de6h                           ; 74 03
    15363     jmp near 09f45h                           ; e9 5f 01
     15373    je short 09e06h                           ; 74 03
     15374    jmp near 09f65h                           ; e9 5f 01
    1536415375    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1536515376    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1536715378    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1536815379    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15369     jmp near 09f75h                           ; e9 73 01
     15380    jmp near 09f95h                           ; e9 73 01
    1537015381    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15371     jne short 09e0eh                          ; 75 06
     15382    jne short 09e2eh                          ; 75 06
    1537215383    or ah, 083h                               ; 80 cc 83
    15373     jmp near 09f6eh                           ; e9 60 01
     15384    jmp near 09f8eh                           ; e9 60 01
    1537415385    mov bx, word [bp+008h]                    ; 8b 5e 08
    1537515386    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1537615387    mov ax, word [bp+018h]                    ; 8b 46 18
    1537715388    xor cx, cx                                ; 31 c9
    15378     call 09cb0h                               ; e8 94 fe
     15389    call 09cd0h                               ; e8 94 fe
    1537915390    cmp ax, strict word 0ffffh                ; 3d ff ff
    15380     jne short 09e2eh                          ; 75 0d
     15391    jne short 09e4eh                          ; 75 0d
    1538115392    mov ax, word [bp+020h]                    ; 8b 46 20
    1538215393    xor ah, ah                                ; 30 e4
    1538315394    or ah, 086h                               ; 80 cc 86
    15384     jmp near 09f6eh                           ; e9 42 01
    15385     jmp short 09e39h                          ; eb 0b
     15395    jmp near 09f8eh                           ; e9 42 01
     15396    jmp short 09e59h                          ; eb 0b
    1538615397    mov word [bp+014h], ax                    ; 89 46 14
    15387     jmp near 09f75h                           ; e9 41 01
    15388     jmp near 09f00h                           ; e9 c9 00
    15389     jmp short 09e5eh                          ; eb 25
     15398    jmp near 09f95h                           ; e9 41 01
     15399    jmp near 09f20h                           ; e9 c9 00
     15400    jmp short 09e7eh                          ; eb 25
    1539015401    mov bx, word [bp+008h]                    ; 8b 5e 08
    1539115402    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539215403    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1539315404    mov cx, strict word 00001h                ; b9 01 00
    15394     call 09cb0h                               ; e8 68 fe
     15405    call 09cd0h                               ; e8 68 fe
    1539515406    cmp ax, strict word 0ffffh                ; 3d ff ff
    15396     jne short 09e58h                          ; 75 0b
     15407    jne short 09e78h                          ; 75 0b
    1539715408    mov ax, word [bp+020h]                    ; 8b 46 20
    1539815409    xor ah, ah                                ; 30 e4
    1539915410    or ah, 086h                               ; 80 cc 86
    15400     jmp near 09f6eh                           ; e9 16 01
     15411    jmp near 09f8eh                           ; e9 16 01
    1540115412    mov word [bp+014h], ax                    ; 89 46 14
    15402     jmp near 09f75h                           ; e9 17 01
     15413    jmp near 09f95h                           ; e9 17 01
    1540315414    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15404     jc short 09e6bh                           ; 72 06
     15415    jc short 09e8bh                           ; 72 06
    1540515416    or ah, 087h                               ; 80 cc 87
    15406     jmp near 09f6eh                           ; e9 03 01
     15417    jmp near 09f8eh                           ; e9 03 01
    1540715418    mov dx, word [bp+004h]                    ; 8b 56 04
    1540815419    mov ax, word [bp+014h]                    ; 8b 46 14
    15409     call 09c8ch                               ; e8 18 fe
     15420    call 09cach                               ; e8 18 fe
    1541015421    mov bx, word [bp+020h]                    ; 8b 5e 20
    1541115422    xor bh, bh                                ; 30 ff
    1541215423    sub bx, strict byte 00008h                ; 83 eb 08
    1541315424    cmp bx, strict byte 00005h                ; 83 fb 05
    15414     jnbe short 09ee9h                         ; 77 68
     15425    jnbe short 09f09h                         ; 77 68
    1541515426    sal bx, 1                                 ; d1 e3
    15416     jmp word [cs:bx-06265h]                   ; 2e ff a7 9b 9d
     15427    jmp word [cs:bx-06245h]                   ; 2e ff a7 bb 9d
    1541715428    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1541815429    xor bl, bl                                ; 30 db
     
    1542515436    or bx, ax                                 ; 09 c3
    1542615437    mov word [bp+01ch], bx                    ; 89 5e 1c
    15427     jmp short 09ee9h                          ; eb 48
     15438    jmp short 09f09h                          ; eb 48
    1542815439    mov dx, word [bp+004h]                    ; 8b 56 04
    1542915440    xor dh, dh                                ; 30 f6
     
    1543215443    in ax, DX                                 ; ed
    1543315444    mov word [bp+01ch], ax                    ; 89 46 1c
    15434     jmp short 09ee9h                          ; eb 36
     15445    jmp short 09f09h                          ; eb 36
    1543515446    mov dx, 00cfch                            ; ba fc 0c
    1543615447    in eax, DX                                ; 66 ed
     
    1544115452    mov word [bp+01ch], ax                    ; 89 46 1c
    1544215453    mov word [bp+01eh], dx                    ; 89 56 1e
    15443     jmp short 09ee9h                          ; eb 22
     15454    jmp short 09f09h                          ; eb 22
    1544415455    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1544515456    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1544815459    add dx, 00cfch                            ; 81 c2 fc 0c
    1544915460    out DX, AL                                ; ee
    15450     jmp short 09ee9h                          ; eb 10
     15461    jmp short 09f09h                          ; eb 10
    1545115462    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1545215463    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1545515466    add dx, 00cfch                            ; 81 c2 fc 0c
    1545615467    out DX, ax                                ; ef
    15457     jmp near 09f75h                           ; e9 89 00
     15468    jmp near 09f95h                           ; e9 89 00
    1545815469    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1545915470    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1546415475    ; mov ax, cx                                ; 8b c1
    1546515476    out DX, eax                               ; 66 ef
    15466     jmp short 09f75h                          ; eb 75
     15477    jmp short 09f95h                          ; eb 75
    1546715478    mov bx, word [bp+004h]                    ; 8b 5e 04
    1546815479    mov es, [bp+026h]                         ; 8e 46 26
     
    1547115482    mov cx, word [0f380h]                     ; 8b 0e 80 f3
    1547215483    cmp cx, word [es:bx]                      ; 26 3b 0f
    15473     jbe short 09f26h                          ; 76 11
     15484    jbe short 09f46h                          ; 76 11
    1547415485    mov ax, word [bp+020h]                    ; 8b 46 20
    1547515486    xor ah, ah                                ; 30 e4
     
    1547715488    mov word [bp+020h], ax                    ; 89 46 20
    1547815489    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15479     jmp short 09f3ah                          ; eb 14
     15490    jmp short 09f5ah                          ; eb 14
    1548015491    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1548115492    mov si, 0f1a0h                            ; be a0 f1
     
    1548915500    les bx, [bp-008h]                         ; c4 5e f8
    1549015501    mov word [es:bx], ax                      ; 26 89 07
    15491     jmp short 09f75h                          ; eb 30
    15492     mov bx, 00da4h                            ; bb a4 0d
     15502    jmp short 09f95h                          ; eb 30
     15503    mov bx, 00da0h                            ; bb a0 0d
    1549315504    mov cx, ds                                ; 8c d9
    1549415505    mov ax, strict word 00004h                ; b8 04 00
    15495     call 01933h                               ; e8 e3 79
     15506    call 01933h                               ; e8 c3 79
    1549615507    mov ax, word [bp+014h]                    ; 8b 46 14
    1549715508    push ax                                   ; 50
     
    1550215513    mov ax, strict word 00004h                ; b8 04 00
    1550315514    push ax                                   ; 50
    15504     call 01976h                               ; e8 13 7a
     15515    call 01976h                               ; e8 f3 79
    1550515516    add sp, strict byte 00008h                ; 83 c4 08
    1550615517    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1551415525    pop bp                                    ; 5d
    1551515526    retn                                      ; c3
    15516 pci_find_classcode_:                         ; 0xf9f7c LB 0x8
     15527pci_find_classcode_:                         ; 0xf9f9c LB 0x8
    1551715528    push bp                                   ; 55
    1551815529    mov bp, sp                                ; 89 e5
     
    1552015531    pop bp                                    ; 5d
    1552115532    retn                                      ; c3
    15522 pci_find_device_:                            ; 0xf9f84 LB 0x23
     15533pci_find_device_:                            ; 0xf9fa4 LB 0x23
    1552315534    push bp                                   ; 55
    1552415535    mov bp, sp                                ; 89 e5
     
    1553215543    int 01ah                                  ; cd 1a
    1553315544    cmp ah, 000h                              ; 80 fc 00
    15534     je short 09f9dh                           ; 74 03
     15545    je short 09fbdh                           ; 74 03
    1553515546    mov bx, strict word 0ffffh                ; bb ff ff
    1553615547    mov ax, bx                                ; 89 d8
     
    1554115552    pop bp                                    ; 5d
    1554215553    retn                                      ; c3
    15543 pci_read_config_byte_:                       ; 0xf9fa7 LB 0x27
     15554pci_read_config_byte_:                       ; 0xf9fc7 LB 0x27
    1554415555    push bp                                   ; 55
    1554515556    mov bp, sp                                ; 89 e5
     
    1556415575    pop bp                                    ; 5d
    1556515576    retn                                      ; c3
    15566 pci_read_config_word_:                       ; 0xf9fce LB 0x25
     15577pci_read_config_word_:                       ; 0xf9fee LB 0x25
    1556715578    push bp                                   ; 55
    1556815579    mov bp, sp                                ; 89 e5
     
    1558615597    pop bp                                    ; 5d
    1558715598    retn                                      ; c3
    15588 pci_read_config_dword_:                      ; 0xf9ff3 LB 0x3f
     15599pci_read_config_dword_:                      ; 0xfa013 LB 0x3f
    1558915600    push bp                                   ; 55
    1559015601    mov bp, sp                                ; 89 e5
     
    1560115612    int 01ah                                  ; cd 1a
    1560215613    test cx, cx                               ; 85 c9
    15603     jne short 0a023h                          ; 75 14
     15614    jne short 0a043h                          ; 75 14
    1560415615    mov al, byte [bp-006h]                    ; 8a 46 fa
    1560515616    xor ah, ah                                ; 30 e4
     
    1561115622    int 01ah                                  ; cd 1a
    1561215623    test cx, cx                               ; 85 c9
    15613     je short 0a028h                           ; 74 05
     15624    je short 0a048h                           ; 74 05
    1561415625    mov ax, strict word 00001h                ; b8 01 00
    15615     jmp short 0a02ah                          ; eb 02
     15626    jmp short 0a04ah                          ; eb 02
    1561615627    xor ax, ax                                ; 31 c0
    1561715628    cwd                                       ; 99
     
    1562115632    pop bp                                    ; 5d
    1562215633    retn                                      ; c3
    15623 pci_write_config_word_:                      ; 0xfa032 LB 0x1e
     15634pci_write_config_word_:                      ; 0xfa052 LB 0x1e
    1562415635    push bp                                   ; 55
    1562515636    mov bp, sp                                ; 89 e5
     
    1563815649    pop bp                                    ; 5d
    1563915650    retn                                      ; c3
    15640 vds_is_present_:                             ; 0xfa050 LB 0x1d
     15651vds_is_present_:                             ; 0xfa070 LB 0x1d
    1564115652    push bx                                   ; 53
    1564215653    push bp                                   ; 55
     
    1564615657    mov es, ax                                ; 8e c0
    1564715658    test byte [es:bx], 020h                   ; 26 f6 07 20
    15648     je short 0a068h                           ; 74 06
     15659    je short 0a088h                           ; 74 06
    1564915660    mov ax, strict word 00001h                ; b8 01 00
    1565015661    pop bp                                    ; 5d
     
    1565515666    pop bx                                    ; 5b
    1565615667    retn                                      ; c3
    15657 vds_real_to_lin_:                            ; 0xfa06d LB 0x1e
     15668vds_real_to_lin_:                            ; 0xfa08d LB 0x1e
    1565815669    push bx                                   ; 53
    1565915670    push cx                                   ; 51
     
    1566615677    sal ax, 1                                 ; d1 e0
    1566715678    rcl dx, 1                                 ; d1 d2
    15668     loop 0a07bh                               ; e2 fa
     15679    loop 0a09bh                               ; e2 fa
    1566915680    xor cx, cx                                ; 31 c9
    1567015681    add ax, bx                                ; 01 d8
     
    1567415685    pop bx                                    ; 5b
    1567515686    retn                                      ; c3
    15676 vds_build_sg_list_:                          ; 0xfa08b LB 0x77
     15687vds_build_sg_list_:                          ; 0xfa0ab LB 0x77
    1567715688    push bp                                   ; 55
    1567815689    mov bp, sp                                ; 89 e5
     
    1568815699    mov bx, word [bp+006h]                    ; 8b 5e 06
    1568915700    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15690     call 0a06dh                               ; e8 c3 ff
     15701    call 0a08dh                               ; e8 c3 ff
    1569115702    mov es, si                                ; 8e c6
    1569215703    mov word [es:di+004h], ax                 ; 26 89 45 04
    1569315704    mov word [es:di+006h], dx                 ; 26 89 55 06
    1569415705    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15695     call 0a050h                               ; e8 93 ff
     15706    call 0a070h                               ; e8 93 ff
    1569615707    test ax, ax                               ; 85 c0
    15697     je short 0a0d2h                           ; 74 11
     15708    je short 0a0f2h                           ; 74 11
    1569815709    mov es, si                                ; 8e c6
    1569915710    mov ax, 08105h                            ; b8 05 81
    1570015711    mov dx, strict word 00000h                ; ba 00 00
    1570115712    int 04bh                                  ; cd 4b
    15702     jc short 0a0cfh                           ; 72 02
     15713    jc short 0a0efh                           ; 72 02
    1570315714    db  032h, 0c0h
    1570415715    ; xor al, al                                ; 32 c0
    1570515716    cbw                                       ; 98
    15706     jmp short 0a0f9h                          ; eb 27
     15717    jmp short 0a119h                          ; eb 27
    1570715718    mov es, si                                ; 8e c6
    1570815719    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1572115732    pop bp                                    ; 5d
    1572215733    retn 00004h                               ; c2 04 00
    15723 vds_free_sg_list_:                           ; 0xfa102 LB 0x2e
     15734vds_free_sg_list_:                           ; 0xfa122 LB 0x2e
    1572415735    push bp                                   ; 55
    1572515736    mov bp, sp                                ; 89 e5
     
    1572715738    push di                                   ; 57
    1572815739    mov bx, ax                                ; 89 c3
    15729     call 0a050h                               ; e8 44 ff
     15740    call 0a070h                               ; e8 44 ff
    1573015741    test ax, ax                               ; 85 c0
    15731     je short 0a121h                           ; 74 11
     15742    je short 0a141h                           ; 74 11
    1573215743    mov di, bx                                ; 89 df
    1573315744    mov es, dx                                ; 8e c2
     
    1573515746    mov dx, strict word 00000h                ; ba 00 00
    1573615747    int 04bh                                  ; cd 4b
    15737     jc short 0a120h                           ; 72 02
     15748    jc short 0a140h                           ; 72 02
    1573815749    db  032h, 0c0h
    1573915750    ; xor al, al                                ; 32 c0
     
    1574615757    pop bp                                    ; 5d
    1574715758    retn                                      ; c3
    15748 __U4M:                                       ; 0xfa130 LB 0x20
     15759__U4M:                                       ; 0xfa150 LB 0x20
    1574915760    pushfw                                    ; 9c
    1575015761    push si                                   ; 56
     
    1577315784    retn                                      ; c3
    1577415785    times 0x4 db 0
    15775 __U4D:                                       ; 0xfa150 LB 0x30
     15786__U4D:                                       ; 0xfa170 LB 0x30
    1577615787    pushfw                                    ; 9c
    1577715788    push DS                                   ; 1e
     
    1578815799    push dx                                   ; 52
    1578915800    push ax                                   ; 50
    15790     call 0a235h                               ; e8 d0 00
     15801    call 0a255h                               ; e8 d0 00
    1579115802    mov cx, word [bp-002h]                    ; 8b 4e fe
    1579215803    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1579915810    retn                                      ; c3
    1580015811    times 0xe db 0
    15801 __U8RS:                                      ; 0xfa180 LB 0x10
     15812__U8RS:                                      ; 0xfa1a0 LB 0x10
    1580215813    test si, si                               ; 85 f6
    15803     je short 0a18fh                           ; 74 0b
     15814    je short 0a1afh                           ; 74 0b
    1580415815    shr ax, 1                                 ; d1 e8
    1580515816    rcr bx, 1                                 ; d1 db
     
    1580715818    rcr dx, 1                                 ; d1 da
    1580815819    dec si                                    ; 4e
    15809     jne short 0a184h                          ; 75 f5
     15820    jne short 0a1a4h                          ; 75 f5
    1581015821    retn                                      ; c3
    15811 __U8LS:                                      ; 0xfa190 LB 0x10
     15822__U8LS:                                      ; 0xfa1b0 LB 0x10
    1581215823    test si, si                               ; 85 f6
    15813     je short 0a19fh                           ; 74 0b
     15824    je short 0a1bfh                           ; 74 0b
    1581415825    sal dx, 1                                 ; d1 e2
    1581515826    rcl cx, 1                                 ; d1 d1
     
    1581715828    rcl ax, 1                                 ; d1 d0
    1581815829    dec si                                    ; 4e
    15819     jne short 0a194h                          ; 75 f5
     15830    jne short 0a1b4h                          ; 75 f5
    1582015831    retn                                      ; c3
    15821 _fmemset_:                                   ; 0xfa1a0 LB 0x10
     15832_fmemset_:                                   ; 0xfa1c0 LB 0x10
    1582215833    push di                                   ; 57
    1582315834    mov es, dx                                ; 8e c2
     
    1583015841    retn                                      ; c3
    1583115842    times 0x3 db 0
    15832 _fmemcpy_:                                   ; 0xfa1b0 LB 0x3a
     15843_fmemcpy_:                                   ; 0xfa1d0 LB 0x3a
    1583315844    push bp                                   ; 55
    1583415845    db  08bh, 0ech
     
    1585515866    add byte [bx+si], al                      ; 00 00
    1585615867    add byte [bx+si], al                      ; 00 00
    15857     add byte [bp+si-05dfeh], ah               ; 00 a2 02 a2
    15858     push ES                                   ; 06
    15859     mov byte [0a206h], AL                     ; a2 06 a2
    15860     push ES                                   ; 06
    15861     mov byte [0a208h], AL                     ; a2 08 a2
    15862     or byte [bp+si-05df6h], ah                ; 08 a2 0a a2
    15863     push CS                                   ; 0e
    15864     mov byte [0a20eh], AL                     ; a2 0e a2
    15865     adc byte [bp+si-05debh], ah               ; 10 a2 15 a2
    15866     pop SS                                    ; 17
     15868    and byte [bp+si-05ddeh], ah               ; 20 a2 22 a2
     15869    mov byte [es:0a226h], AL                  ; 26 a2 26 a2
     15870    mov byte [es:0a228h], AL                  ; 26 a2 28 a2
     15871    sub byte [bp+si-05dd6h], ah               ; 28 a2 2a a2
     15872    mov byte [cs:0a22eh], AL                  ; 2e a2 2e a2
     15873    xor byte [bp+si-05dcbh], ah               ; 30 a2 35 a2
     15874    aaa                                       ; 37
    1586715875    db  0a2h
    15868 apm_worker:                                  ; 0xfa1ea LB 0x3a
     15876apm_worker:                                  ; 0xfa20a LB 0x3a
    1586915877    sti                                       ; fb
    1587015878    push ax                                   ; 50
     
    1587815886    pop ax                                    ; 58
    1587915887    mov AH, strict byte 053h                  ; b4 53
    15880     jnc short 0a220h                          ; 73 25
    15881     jmp word [cs:bp-05e30h]                   ; 2e ff a6 d0 a1
    15882     jmp short 0a21eh                          ; eb 1c
     15888    jnc short 0a240h                          ; 73 25
     15889    jmp word [cs:bp-05e10h]                   ; 2e ff a6 f0 a1
     15890    jmp short 0a23eh                          ; eb 1c
    1588315891    sti                                       ; fb
    1588415892    hlt                                       ; f4
    15885     jmp short 0a21eh                          ; eb 18
    15886     jmp short 0a21eh                          ; eb 16
    15887     jmp short 0a220h                          ; eb 16
     15893    jmp short 0a23eh                          ; eb 18
     15894    jmp short 0a23eh                          ; eb 16
     15895    jmp short 0a240h                          ; eb 16
    1588815896    mov AH, strict byte 080h                  ; b4 80
    15889     jmp short 0a222h                          ; eb 14
    15890     jmp short 0a220h                          ; eb 10
     15897    jmp short 0a242h                          ; eb 14
     15898    jmp short 0a240h                          ; eb 10
    1589115899    mov ax, 00102h                            ; b8 02 01
    15892     jmp short 0a21eh                          ; eb 09
    15893     jmp short 0a21eh                          ; eb 07
     15900    jmp short 0a23eh                          ; eb 09
     15901    jmp short 0a23eh                          ; eb 07
    1589415902    mov BL, strict byte 000h                  ; b3 00
    1589515903    mov cx, strict word 00000h                ; b9 00 00
    15896     jmp short 0a21eh                          ; eb 00
     15904    jmp short 0a23eh                          ; eb 00
    1589715905    clc                                       ; f8
    1589815906    retn                                      ; c3
     
    1590015908    stc                                       ; f9
    1590115909    retn                                      ; c3
    15902 apm_pm16_entry:                              ; 0xfa224 LB 0x11
     15910apm_pm16_entry:                              ; 0xfa244 LB 0x11
    1590315911    mov AH, strict byte 002h                  ; b4 02
    1590415912    push DS                                   ; 1e
     
    1590815916    add bp, strict byte 00008h                ; 83 c5 08
    1590915917    mov ds, bp                                ; 8e dd
    15910     call 0a1eah                               ; e8 b8 ff
     15918    call 0a20ah                               ; e8 b8 ff
    1591115919    pop bp                                    ; 5d
    1591215920    pop DS                                    ; 1f
    1591315921    retf                                      ; cb
    15914 _DoUInt32Div:                                ; 0xfa235 LB 0x26b
     15922_DoUInt32Div:                                ; 0xfa255 LB 0x26b
    1591515923    push bp                                   ; 55
    1591615924    mov bp, sp                                ; 89 e5
     
    1593015938    mov [bp-006h], ds                         ; 8c 5e fa
    1593115939    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15932     jne short 0a285h                          ; 75 22
     15940    jne short 0a2a5h                          ; 75 22
    1593315941    mov ax, word [bx]                         ; 8b 07
    1593415942    test ax, ax                               ; 85 c0
    15935     je short 0a282h                           ; 74 19
     15943    je short 0a2a2h                           ; 74 19
    1593615944    cmp ax, strict word 00001h                ; 3d 01 00
    15937     jne short 0a285h                          ; 75 17
     15945    jne short 0a2a5h                          ; 75 17
    1593815946    xor ax, ax                                ; 31 c0
    1593915947    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1594315951    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1594415952    mov word [bp+006h], ax                    ; 89 46 06
    15945     jmp near 0a48dh                           ; e9 08 02
     15953    jmp near 0a4adh                           ; e9 08 02
    1594615954    lds bx, [bp-00ch]                         ; c5 5e f4
    1594715955    mov ax, word [bx+002h]                    ; 8b 47 02
    1594815956    mov ds, [bp-006h]                         ; 8e 5e fa
    1594915957    cmp ax, word [si+002h]                    ; 3b 44 02
    15950     je short 0a2abh                           ; 74 18
     15958    je short 0a2cbh                           ; 74 18
    1595115959    mov ds, [bp-00ah]                         ; 8e 5e f6
    1595215960    mov ax, word [bx+002h]                    ; 8b 47 02
    1595315961    mov ds, [bp-006h]                         ; 8e 5e fa
    1595415962    cmp ax, word [si+002h]                    ; 3b 44 02
    15955     jbe short 0a2a6h                          ; 76 05
     15963    jbe short 0a2c6h                          ; 76 05
    1595615964    mov ax, strict word 00001h                ; b8 01 00
    15957     jmp short 0a2cch                          ; eb 26
     15965    jmp short 0a2ech                          ; eb 26
    1595815966    mov ax, strict word 0ffffh                ; b8 ff ff
    15959     jmp short 0a2cch                          ; eb 21
     15967    jmp short 0a2ech                          ; eb 21
    1596015968    mov ds, [bp-00ah]                         ; 8e 5e f6
    1596115969    mov ax, word [bx]                         ; 8b 07
    1596215970    mov ds, [bp-006h]                         ; 8e 5e fa
    1596315971    cmp ax, word [si]                         ; 3b 04
    15964     je short 0a2cah                           ; 74 13
     15972    je short 0a2eah                           ; 74 13
    1596515973    mov ds, [bp-00ah]                         ; 8e 5e f6
    1596615974    mov ax, word [bx]                         ; 8b 07
    1596715975    mov ds, [bp-006h]                         ; 8e 5e fa
    1596815976    cmp ax, word [si]                         ; 3b 04
    15969     jbe short 0a2c5h                          ; 76 02
    15970     jmp short 0a2a1h                          ; eb dc
     15977    jbe short 0a2e5h                          ; 76 02
     15978    jmp short 0a2c1h                          ; eb dc
    1597115979    mov ax, strict word 0ffffh                ; b8 ff ff
    15972     jmp short 0a2cch                          ; eb 02
     15980    jmp short 0a2ech                          ; eb 02
    1597315981    xor ax, ax                                ; 31 c0
    1597415982    test ax, ax                               ; 85 c0
    15975     jnl short 0a2eeh                          ; 7d 1e
     15983    jnl short 0a30eh                          ; 7d 1e
    1597615984    lds bx, [bp-00ch]                         ; c5 5e f4
    1597715985    mov ax, word [bx]                         ; 8b 07
     
    1598315991    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1598415992    mov word [bx], strict word 00000h         ; c7 07 00 00
    15985     jmp short 0a282h                          ; eb 94
    15986     jne short 0a305h                          ; 75 15
     15993    jmp short 0a2a2h                          ; eb 94
     15994    jne short 0a325h                          ; 75 15
    1598715995    mov ds, [bp-008h]                         ; 8e 5e f8
    1598815996    mov word [di+002h], ax                    ; 89 45 02
     
    1599115999    mov word [bx], strict word 00001h         ; c7 07 01 00
    1599216000    mov word [bx+002h], ax                    ; 89 47 02
    15993     jmp near 0a48dh                           ; e9 88 01
     16001    jmp near 0a4adh                           ; e9 88 01
    1599416002    lds bx, [bp-00ch]                         ; c5 5e f4
    1599516003    mov ax, word [bx+002h]                    ; 8b 47 02
    1599616004    test ax, ax                               ; 85 c0
    15997     je short 0a320h                           ; 74 11
     16005    je short 0a340h                           ; 74 11
    1599816006    push ax                                   ; 50
    1599916007    mov ax, 0f000h                            ; b8 00 f0
    1600016008    mov ds, ax                                ; 8e d8
    16001     call 0a4a0h                               ; e8 88 01
     16009    call 0a4c0h                               ; e8 88 01
    1600216010    add sp, strict byte 00002h                ; 83 c4 02
    1600316011    add ax, strict word 00010h                ; 05 10 00
    16004     jmp short 0a32dh                          ; eb 0d
     16012    jmp short 0a34dh                          ; eb 0d
    1600516013    push word [bx]                            ; ff 37
    1600616014    mov ax, 0f000h                            ; b8 00 f0
    1600716015    mov ds, ax                                ; 8e d8
    16008     call 0a4a0h                               ; e8 76 01
     16016    call 0a4c0h                               ; e8 76 01
    1600916017    add sp, strict byte 00002h                ; 83 c4 02
    1601016018    mov word [bp-014h], ax                    ; 89 46 ec
     
    1601216020    mov ax, word [si+002h]                    ; 8b 44 02
    1601316021    test ax, ax                               ; 85 c0
    16014     je short 0a34bh                           ; 74 11
     16022    je short 0a36bh                           ; 74 11
    1601516023    push ax                                   ; 50
    1601616024    mov ax, 0f000h                            ; b8 00 f0
    1601716025    mov ds, ax                                ; 8e d8
    16018     call 0a4a0h                               ; e8 5d 01
     16026    call 0a4c0h                               ; e8 5d 01
    1601916027    add sp, strict byte 00002h                ; 83 c4 02
    1602016028    add ax, strict word 00010h                ; 05 10 00
    16021     jmp short 0a358h                          ; eb 0d
     16029    jmp short 0a378h                          ; eb 0d
    1602216030    push word [si]                            ; ff 34
    1602316031    mov ax, 0f000h                            ; b8 00 f0
    1602416032    mov ds, ax                                ; 8e d8
    16025     call 0a4a0h                               ; e8 4b 01
     16033    call 0a4c0h                               ; e8 4b 01
    1602616034    add sp, strict byte 00002h                ; 83 c4 02
    1602716035    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1603416042    mov word [bp-016h], ax                    ; 89 46 ea
    1603516043    test dx, dx                               ; 85 d2
    16036     je short 0a3c8h                           ; 74 56
     16044    je short 0a3e8h                           ; 74 56
    1603716045    mov cx, dx                                ; 89 d1
    1603816046    xor ch, dh                                ; 30 f5
     
    1604016048    mov ax, word [si]                         ; 8b 04
    1604116049    mov dx, word [si+002h]                    ; 8b 54 02
    16042     jcxz 0a386h                               ; e3 06
     16050    jcxz 0a3a6h                               ; e3 06
    1604316051    sal ax, 1                                 ; d1 e0
    1604416052    rcl dx, 1                                 ; d1 d2
    16045     loop 0a380h                               ; e2 fa
     16053    loop 0a3a0h                               ; e2 fa
    1604616054    mov word [bp-018h], ax                    ; 89 46 e8
    1604716055    mov word [bp-016h], dx                    ; 89 56 ea
     
    1604916057    lds bx, [bp-00ch]                         ; c5 5e f4
    1605016058    cmp ax, word [bx+002h]                    ; 3b 47 02
    16051     jnbe short 0a3a6h                         ; 77 0f
     16059    jnbe short 0a3c6h                         ; 77 0f
    1605216060    mov ax, word [bp-016h]                    ; 8b 46 ea
    1605316061    cmp ax, word [bx+002h]                    ; 3b 47 02
    16054     jne short 0a3aah                          ; 75 0b
     16062    jne short 0a3cah                          ; 75 0b
    1605516063    mov ax, word [bp-018h]                    ; 8b 46 e8
    1605616064    cmp ax, word [bx]                         ; 3b 07
    16057     jbe short 0a3aah                          ; 76 04
     16065    jbe short 0a3cah                          ; 76 04
    1605816066    mov AL, strict byte 001h                  ; b0 01
    16059     jmp short 0a3ach                          ; eb 02
     16067    jmp short 0a3cch                          ; eb 02
    1606016068    xor al, al                                ; 30 c0
    1606116069    test al, al                               ; 84 c0
    16062     je short 0a3d3h                           ; 74 23
     16070    je short 0a3f3h                           ; 74 23
    1606316071    shr word [bp-016h], 1                     ; d1 6e ea
    1606416072    rcr word [bp-018h], 1                     ; d1 5e e8
    1606516073    dec word [bp-012h]                        ; ff 4e ee
    16066     jmp short 0a3d3h                          ; eb 18
     16074    jmp short 0a3f3h                          ; eb 18
    1606716075    mov cx, strict word 0001fh                ; b9 1f 00
    1606816076    sal word [bp-018h], 1                     ; d1 66 e8
    1606916077    rcl word [bp-016h], 1                     ; d1 56 ea
    16070     loop 0a3beh                               ; e2 f8
    16071     jmp short 0a3b6h                          ; eb ee
     16078    loop 0a3deh                               ; e2 f8
     16079    jmp short 0a3d6h                          ; eb ee
    1607216080    mov ax, word [si]                         ; 8b 04
    1607316081    mov word [bp-018h], ax                    ; 89 46 e8
     
    1608616094    mov ds, [bp-006h]                         ; 8e 5e fa
    1608716095    cmp ax, word [si+002h]                    ; 3b 44 02
    16088     jnbe short 0a3ffh                         ; 77 06
    16089     jne short 0a403h                          ; 75 08
     16096    jnbe short 0a41fh                         ; 77 06
     16097    jne short 0a423h                          ; 75 08
    1609016098    cmp dx, word [si]                         ; 3b 14
    16091     jc short 0a403h                           ; 72 04
     16099    jc short 0a423h                           ; 72 04
    1609216100    mov AL, strict byte 001h                  ; b0 01
    16093     jmp short 0a405h                          ; eb 02
     16101    jmp short 0a425h                          ; eb 02
    1609416102    xor al, al                                ; 30 c0
    1609516103    test al, al                               ; 84 c0
    16096     je short 0a46ah                           ; 74 61
     16104    je short 0a48ah                           ; 74 61
    1609716105    mov ds, [bp-008h]                         ; 8e 5e f8
    1609816106    mov ax, word [di+002h]                    ; 8b 45 02
    1609916107    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16100     jnbe short 0a420h                         ; 77 0c
     16108    jnbe short 0a440h                         ; 77 0c
    1610116109    cmp ax, word [bp-016h]                    ; 3b 46 ea
    16102     jne short 0a424h                          ; 75 0b
     16110    jne short 0a444h                          ; 75 0b
    1610316111    mov ax, word [di]                         ; 8b 05
    1610416112    cmp ax, word [bp-018h]                    ; 3b 46 e8
    16105     jc short 0a424h                           ; 72 04
     16113    jc short 0a444h                           ; 72 04
    1610616114    mov AL, strict byte 001h                  ; b0 01
    16107     jmp short 0a426h                          ; eb 02
     16115    jmp short 0a446h                          ; eb 02
    1610816116    xor al, al                                ; 30 c0
    1610916117    test al, al                               ; 84 c0
    16110     je short 0a450h                           ; 74 26
     16118    je short 0a470h                           ; 74 26
    1611116119    mov ax, word [bp-018h]                    ; 8b 46 e8
    1611216120    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1611716125    xor dx, dx                                ; 31 d2
    1611816126    mov cx, word [bp-012h]                    ; 8b 4e ee
    16119     jcxz 0a448h                               ; e3 06
     16127    jcxz 0a468h                               ; e3 06
    1612016128    sal ax, 1                                 ; d1 e0
    1612116129    rcl dx, 1                                 ; d1 d2
    16122     loop 0a442h                               ; e2 fa
     16130    loop 0a462h                               ; e2 fa
    1612316131    lds bx, [bp-010h]                         ; c5 5e f0
    1612416132    or word [bx], ax                          ; 09 07
     
    1612916137    mov ds, [bp-006h]                         ; 8e 5e fa
    1613016138    cmp ax, word [si+002h]                    ; 3b 44 02
    16131     jc short 0a466h                           ; 72 06
    16132     jne short 0a46ch                          ; 75 0a
     16139    jc short 0a486h                           ; 72 06
     16140    jne short 0a48ch                          ; 75 0a
    1613316141    cmp dx, word [si]                         ; 3b 14
    16134     jnc short 0a46ch                          ; 73 06
     16142    jnc short 0a48ch                          ; 73 06
    1613516143    mov AL, strict byte 001h                  ; b0 01
    16136     jmp short 0a46eh                          ; eb 04
    16137     jmp short 0a48dh                          ; eb 21
     16144    jmp short 0a48eh                          ; eb 04
     16145    jmp short 0a4adh                          ; eb 21
    1613816146    xor al, al                                ; 30 c0
    1613916147    test al, al                               ; 84 c0
    16140     je short 0a481h                           ; 74 0f
    16141     jmp short 0a48dh                          ; eb 19
     16148    je short 0a4a1h                           ; 74 0f
     16149    jmp short 0a4adh                          ; eb 19
    1614216150    mov cx, strict word 0001fh                ; b9 1f 00
    1614316151    sal word [bp-018h], 1                     ; d1 66 e8
    1614416152    rcl word [bp-016h], 1                     ; d1 56 ea
    16145     loop 0a477h                               ; e2 f8
    16146     jmp short 0a487h                          ; eb 06
     16153    loop 0a497h                               ; e2 f8
     16154    jmp short 0a4a7h                          ; eb 06
    1614716155    shr word [bp-016h], 1                     ; d1 6e ea
    1614816156    rcr word [bp-018h], 1                     ; d1 5e e8
    1614916157    dec word [bp-012h]                        ; ff 4e ee
    16150     jmp near 0a409h                           ; e9 7c ff
     16158    jmp near 0a429h                           ; e9 7c ff
    1615116159    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1615216160    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1615716165    retn                                      ; c3
    1615816166    times 0x6 db 0
    16159 _ASMBitLastSetU16:                           ; 0xfa4a0 LB 0x18
     16167_ASMBitLastSetU16:                           ; 0xfa4c0 LB 0x18
    1616016168    push bp                                   ; 55
    1616116169    db  08bh, 0ech
     
    1616316171    mov cx, word [bp+004h]                    ; 8b 4e 04
    1616416172    test cx, cx                               ; 85 c9
    16165     je short 0a4b4h                           ; 74 0a
     16173    je short 0a4d4h                           ; 74 0a
    1616616174    mov ax, strict word 00010h                ; b8 10 00
    1616716175    sal cx, 1                                 ; d1 e1
    16168     jc short 0a4b6h                           ; 72 05
     16176    jc short 0a4d6h                           ; 72 05
    1616916177    dec ax                                    ; 48
    16170     jmp short 0a4adh                          ; eb f9
     16178    jmp short 0a4cdh                          ; eb f9
    1617116179    db  033h, 0c0h
    1617216180    ; xor ax, ax                                ; 33 c0
     
    1617416182    retn                                      ; c3
    1617516183
    16176   ; Padding 0x3548 bytes at 0xfa4b8
    16177   times 13640 db 0
     16184  ; Padding 0x3528 bytes at 0xfa4d8
     16185  times 13608 db 0
    1617816186
    1617916187section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1622216230    add bp, strict byte 00008h                ; 83 c5 08
    1622316231    push ebp                                  ; 66 55
    16224     mov bp, 0a226h                            ; bd 26 a2
     16232    mov bp, 0a246h                            ; bd 46 a2
    1622516233    add byte [bx+si], al                      ; 00 00
    1622616234    push ebp                                  ; 66 55
     
    1668616694    cmp AL, strict byte 009h                  ; 3c 09
    1668716695    jne short 0e0b6h                          ; 75 03
    16688     jmp near 0e368h                           ; e9 b2 02
     16696    jmp near 0e350h                           ; e9 9a 02
    1668916697    cmp AL, strict byte 005h                  ; 3c 05
    1669016698    je short 0e044h                           ; 74 8a
     
    1682916837    mov dx, 0c800h                            ; ba 00 c8
    1683016838    call 01600h                               ; e8 f0 33
    16831     call 0501ch                               ; e8 09 6e
     16839    call 0503ch                               ; e8 29 6e
    1683216840    pop DS                                    ; 1f
    1683316841    mov ax, 0ff53h                            ; b8 53 ff
     
    1689516903    mov word [001c2h], ax                     ; a3 c2 01
    1689616904    call 0ede3h                               ; e8 32 0b
    16897     jmp short 0e31bh                          ; eb 68
     16905    jmp short 0e303h                          ; eb 50
    1689816906biosorg_check_before_or_at_0E2C1h:           ; 0xfe2b3 LB 0x10
    1689916907    times 0xe db 0
     
    1691016918    int 002h                                  ; cd 02
    1691116919    iret                                      ; cf
    16912 hard_drive_post:                             ; 0xfe2d2 LB 0xbf
     16920hard_drive_post:                             ; 0xfe2d2 LB 0xa7
    1691316921    db  033h, 0c0h
    1691416922    ; xor ax, ax                                ; 33 c0
     
    1692916937    mov ax, 0f000h                            ; b8 00 f0
    1693016938    mov word [001dah], ax                     ; a3 da 01
    16931     mov ax, strict word 0003dh                ; b8 3d 00
    16932     mov word [00104h], ax                     ; a3 04 01
    16933     mov ax, 09fc0h                            ; b8 c0 9f
    16934     mov word [00106h], ax                     ; a3 06 01
    16935     mov ax, strict word 0004dh                ; b8 4d 00
    16936     mov word [00118h], ax                     ; a3 18 01
    16937     mov ax, 09fc0h                            ; b8 c0 9f
    16938     mov word [0011ah], ax                     ; a3 1a 01
    1693916939    retn                                      ; c3
    1694016940    mov ax, 0f8c9h                            ; b8 c9 f8
     
    1694616946    mov ax, 0f000h                            ; b8 00 f0
    1694716947    mov word [001d6h], ax                     ; a3 d6 01
    16948     call 0e76fh                               ; e8 39 04
     16948    call 0e76fh                               ; e8 51 04
    1694916949    push CS                                   ; 0e
    1695016950    pop DS                                    ; 1f
    1695116951    cld                                       ; fc
    16952     call 01cc5h                               ; e8 89 39
    16953     call 02154h                               ; e8 15 3e
     16952    call 01cc5h                               ; e8 a1 39
     16953    call 02154h                               ; e8 2d 3e
    1695416954    sti                                       ; fb
    16955     call 09a24h                               ; e8 e1 b6
     16955    call 09a44h                               ; e8 19 b7
    1695616956    cli                                       ; fa
    16957     call 08871h                               ; e8 2a a5
    16958     call 0ed4ch                               ; e8 02 0a
    16959     call 0e2d2h                               ; e8 85 ff
     16957    call 08891h                               ; e8 62 a5
     16958    call 0ed4ch                               ; e8 1a 0a
     16959    call 0e2d2h                               ; e8 9d ff
    1696016960    push CS                                   ; 0e
    1696116961    pop DS                                    ; 1f
     
    1696316963    mov ax, 0c800h                            ; b8 00 c8
    1696416964    mov dx, 0f000h                            ; ba 00 f0
    16965     call 01600h                               ; e8 a7 32
    16966     call 01799h                               ; e8 3d 34
    16967     call 03c35h                               ; e8 d6 58
     16965    call 01600h                               ; e8 bf 32
     16966    call 01799h                               ; e8 55 34
     16967    call 03c55h                               ; e8 0e 59
    1696816968    sti                                       ; fb
    1696916969    int 019h                                  ; cd 19
    1697016970    sti                                       ; fb
    1697116971    hlt                                       ; f4
    16972     jmp short 0e363h                          ; eb fd
     16972    jmp short 0e34bh                          ; eb fd
    1697316973    cli                                       ; fa
    1697416974    hlt                                       ; f4
     
    1699216992    sti                                       ; fb
    1699316993    retf 00002h                               ; ca 02 00
    16994 biosorg_check_before_or_at_0E3FCh:           ; 0xfe391 LB 0x6d
    16995     times 0x6b db 0
     16994biosorg_check_before_or_at_0E3FCh:           ; 0xfe379 LB 0x85
     16995    times 0x83 db 0
    1699616996    db  'XM'
    1699716997int13_handler:                               ; 0xfe3fe LB 0x3
     
    1707417074    pop DS                                    ; 1f
    1707517075    cld                                       ; fc
    17076     call 065dfh                               ; e8 96 7e
     17076    call 065ffh                               ; e8 b6 7e
    1707717077    pop di                                    ; 5f
    1707817078    pop si                                    ; 5e
     
    1718317183    pop DS                                    ; 1f
    1718417184    cld                                       ; fc
    17185     call 05885h                               ; e8 3b 70
     17185    call 058a5h                               ; e8 5b 70
    1718617186    pop di                                    ; 5f
    1718717187    pop si                                    ; 5e
     
    1720817208    pop DS                                    ; 1f
    1720917209    cld                                       ; fc
    17210     call 05885h                               ; e8 13 70
     17210    call 058a5h                               ; e8 33 70
    1721117211    pop di                                    ; 5f
    1721217212    pop si                                    ; 5e
     
    1726317263    pop DS                                    ; 1f
    1726417264    cld                                       ; fc
    17265     call 05324h                               ; e8 5e 69
     17265    call 05344h                               ; e8 7e 69
    1726617266    pop ES                                    ; 07
    1726717267    pop di                                    ; 5f
     
    1729317293    pop DS                                    ; 1f
    1729417294    cld                                       ; fc
    17295     call 06f17h                               ; e8 2d 85
     17295    call 06f37h                               ; e8 4d 85
    1729617296    pop DS                                    ; 1f
    1729717297    pop ES                                    ; 07
     
    1732917329    cld                                       ; fc
    1733017330    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17331     jmp near 03c79h                           ; e9 ff 4f
     17331    jmp near 03c99h                           ; e9 1f 50
    1733217332jmp_call_ret_int13_out:                      ; 0xfec7a LB 0x4a
    1733317333    db  0ffh
     
    1733817338    push cx                                   ; 51
    1733917339    push dx                                   ; 52
    17340     call 03c4dh                               ; e8 c9 4f
     17340    call 03c6dh                               ; e8 e9 4f
    1734117341    cmp AL, strict byte 000h                  ; 3c 00
    1734217342    je short 0ecbfh                           ; 74 37
    17343     call 03c63h                               ; e8 d8 4f
     17343    call 03c83h                               ; e8 f8 4f
    1734417344    pop dx                                    ; 5a
    1734517345    push dx                                   ; 52
     
    1736617366    cld                                       ; fc
    1736717367    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17368     jmp near 04287h                           ; e9 dc 55
     17368    jmp near 042a7h                           ; e9 fc 55
    1736917369    and dl, 0e0h                              ; 80 e2 e0
    1737017370    db  03ah, 0c2h
     
    1740617406    jne short 0ecdeh                          ; 75 08
    1740717407    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17408     jmp near 031ffh                           ; e9 21 45
     17408    jmp near 0321fh                           ; e9 41 45
    1740917409int13_notfloppy:                             ; 0xfecde LB 0x14
    1741017410    cmp dl, 0e0h                              ; 80 fa e0
     
    1741217412    shr ebx, 010h                             ; 66 c1 eb 10
    1741317413    push bx                                   ; 53
    17414     call 046dah                               ; e8 ef 59
     17414    call 046fah                               ; e8 0f 5a
    1741517415    pop bx                                    ; 5b
    1741617416    sal ebx, 010h                             ; 66 c1 e3 10
     
    1741917419    cmp ah, 040h                              ; 80 fc 40
    1742017420    jnbe short 0ecfch                         ; 77 05
    17421     call 05c6ah                               ; e8 70 6f
     17421    call 05c8ah                               ; e8 90 6f
    1742217422    jmp short 0ecffh                          ; eb 03
    17423     call 060b4h                               ; e8 b5 73
     17423    call 060d4h                               ; e8 d5 73
    1742417424int13_out:                                   ; 0xfecff LB 0xb
    1742517425    pop DS                                    ; 1f
     
    1765517655    pop DS                                    ; 1f
    1765617656    cld                                       ; fc
    17657     call 078c4h                               ; e8 e0 88
     17657    call 078e4h                               ; e8 00 89
    1765817658    pop di                                    ; 5f
    1765917659    pop si                                    ; 5e
     
    1771317713    mov ax, strict word 00001h                ; b8 01 00
    1771417714    push ax                                   ; 50
    17715     call 04d79h                               ; e8 a9 5c
     17715    call 04d99h                               ; e8 c9 5c
    1771617716    inc sp                                    ; 44
    1771717717    inc sp                                    ; 44
     
    1772017720    mov ax, strict word 00002h                ; b8 02 00
    1772117721    push ax                                   ; 50
    17722     call 04d79h                               ; e8 9c 5c
     17722    call 04d99h                               ; e8 bc 5c
    1772317723    inc sp                                    ; 44
    1772417724    inc sp                                    ; 44
     
    1772717727    mov ax, strict word 00003h                ; b8 03 00
    1772817728    push ax                                   ; 50
    17729     call 04d79h                               ; e8 8f 5c
     17729    call 04d99h                               ; e8 af 5c
    1773017730    inc sp                                    ; 44
    1773117731    inc sp                                    ; 44
     
    1773417734    mov ax, strict word 00004h                ; b8 04 00
    1773517735    push ax                                   ; 50
    17736     call 04d79h                               ; e8 82 5c
     17736    call 04d99h                               ; e8 a2 5c
    1773717737    inc sp                                    ; 44
    1773817738    inc sp                                    ; 44
     
    1790117901    cmp ah, 0c2h                              ; 80 fc c2
    1790217902    je short 0f895h                           ; 74 15
    17903     call 06836h                               ; e8 b3 6f
     17903    call 06856h                               ; e8 d3 6f
    1790417904    pop di                                    ; 5f
    1790517905    pop si                                    ; 5e
     
    1791417914    popfw                                     ; 9d
    1791517915    jmp short 0f8afh                          ; eb 1f
    17916     call 09b96h                               ; e8 03 a3
     17916    call 09bb6h                               ; e8 23 a3
    1791717917    jmp short 0f883h                          ; eb ee
    1791817918int15_handler_mouse:                         ; 0xff895 LB 0x5
    17919     call 07524h                               ; e8 8c 7c
     17919    call 07544h                               ; e8 ac 7c
    1792017920    jmp short 0f883h                          ; eb e9
    1792117921int15_handler32:                             ; 0xff89a LB 0x15
     
    1792817928    push si                                   ; 56
    1792917929    push di                                   ; 57
    17930     call 06b79h                               ; e8 d4 72
     17930    call 06b99h                               ; e8 f4 72
    1793117931    pop di                                    ; 5f
    1793217932    pop si                                    ; 5e
     
    1797517975    pop DS                                    ; 1f
    1797617976    cld                                       ; fc
    17977     call 07452h                               ; e8 71 7b
     17977    call 07472h                               ; e8 91 7b
    1797817978    pop cx                                    ; 59
    1797917979    jcxz 0f8f1h                               ; e3 0d
     
    1802318023    pop DS                                    ; 1f
    1802418024    cld                                       ; fc
    18025     call 070efh                               ; e8 ca 77
     18025    call 0710fh                               ; e8 ea 77
    1802618026    pop di                                    ; 5f
    1802718027    pop si                                    ; 5e
     
    1812618126    pop DS                                    ; 1f
    1812718127    cld                                       ; fc
    18128     call 071aeh                               ; e8 30 73
     18128    call 071ceh                               ; e8 50 73
    1812918129    pop di                                    ; 5f
    1813018130    pop si                                    ; 5e
     
    1823818238cpu_reset:                                   ; 0xffff0 LB 0x10
    1823918239    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18240     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0bah
     18240    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 03eh
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum

    r68934 r69128  
    1 395b7dc64d6a9731ef4cbcdc422c13c7 *VBoxPcBios8086.rom
     18c9d346ad1de9d89b0099b21159482dd *VBoxPcBios8086.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