VirtualBox

Ignore:
Timestamp:
Apr 11, 2016 9:31:34 PM (9 years ago)
Author:
vboxsync
Message:

PCBIOS: regenerated alternative bios.

File:
1 edited

Legend:

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

    r60422 r60443  
    856856    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    857857_pktacc:                                     ; 0xf006a LB 0xc
    858     db  000h, 000h, 000h, 000h, 000h, 000h, 040h, 02bh, 05ch, 081h, 0c2h, 090h
     858    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e5h, 080h, 04bh, 090h
    859859_softrst:                                    ; 0xf0076 LB 0xc
    860     db  000h, 000h, 000h, 000h, 000h, 000h, 0c9h, 02dh, 008h, 03bh, 008h, 03bh
     860    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 0c8h, 03ah, 0c8h, 03ah
    861861_dskacc:                                     ; 0xf0082 LB 0x2e
    862     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 02ah, 0e5h, 02ah, 000h, 000h, 000h, 000h
    863     db  09ch, 07fh, 07ch, 080h, 094h, 08fh, 03ch, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     862    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
     863    db  025h, 07fh, 005h, 080h, 01dh, 08fh, 0c5h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    864864    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    865865
     
    10581058  times 1144 db 0
    10591059
    1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ac5 class=CODE group=AUTO
     1060section _TEXT progbits vstart=0x1600 align=1 ; size=0x8a45 class=CODE group=AUTO
    10611061rom_scan_:                                   ; 0xf1600 LB 0x50
    10621062    push bp                                   ; 55
     
    13081308    int 010h                                  ; cd 10
    13091309    jmp short 017b7h                          ; eb 03
    1310     call 07b63h                               ; e8 ac 63
     1310    call 07aeah                               ; e8 33 63
    13111311    mov sp, bp                                ; 89 ec
    13121312    pop bp                                    ; 5d
     
    14531453    mov bx, strict word 0000ah                ; bb 0a 00
    14541454    xor cx, cx                                ; 31 c9
    1455     call 09fb0h                               ; e8 e3 86
     1455    call 09f30h                               ; e8 63 86
    14561456    mov word [bp-008h], ax                    ; 89 46 f8
    14571457    mov cx, dx                                ; 89 d1
     
    16831683    mov dx, word [bp-026h]                    ; 8b 56 da
    16841684    mov si, word [bp-01eh]                    ; 8b 76 e2
    1685     call 0a02ah                               ; e8 2d 85
     1685    call 09faah                               ; e8 ad 84
    16861686    mov ax, dx                                ; 89 d0
    16871687    xor ah, dh                                ; 30 f4
     
    21222122    mov dx, word [es:si]                      ; 26 8b 14
    21232123    mov si, strict word 00018h                ; be 18 00
    2124     call 0a02ah                               ; e8 da 80
     2124    call 09faah                               ; e8 5a 80
    21252125    xor dh, dh                                ; 30 f6
    21262126    mov word [bp-014h], dx                    ; 89 56 ec
     
    21322132    mov dx, word [es:si]                      ; 26 8b 14
    21332133    mov si, strict word 00020h                ; be 20 00
    2134     call 0a02ah                               ; e8 ba 80
     2134    call 09faah                               ; e8 3a 80
    21352135    mov bx, dx                                ; 89 d3
    21362136    mov ax, word [bp-01ch]                    ; 8b 46 e4
     
    21632163    mov dx, word [es:si]                      ; 26 8b 14
    21642164    mov si, strict word 00008h                ; be 08 00
    2165     call 0a02ah                               ; e8 69 80
     2165    call 09faah                               ; e8 e9 7f
    21662166    mov word [bp-012h], dx                    ; 89 56 ee
    21672167    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    21722172    mov dx, word [es:si]                      ; 26 8b 14
    21732173    mov si, strict word 00018h                ; be 18 00
    2174     call 0a02ah                               ; e8 4b 80
     2174    call 09faah                               ; e8 cb 7f
    21752175    mov ah, dl                                ; 88 d4
    21762176    and ah, 00fh                              ; 80 e4 0f
     
    23072307    pop bp                                    ; 5d
    23082308    retn                                      ; c3
    2309 _ata_detect:                                 ; 0xf2118 LB 0x68e
     2309_ata_detect:                                 ; 0xf2118 LB 0x64e
    23102310    push bp                                   ; 55
    23112311    mov bp, sp                                ; 89 e5
     
    23162316    mov ax, strict word 00040h                ; b8 40 00
    23172317    call 0166ch                               ; e8 42 f5
    2318     mov word [bp-01ah], ax                    ; 89 46 e6
     2318    mov word [bp-026h], ax                    ; 89 46 da
    23192319    mov di, 00122h                            ; bf 22 01
    23202320    mov es, ax                                ; 8e c0
    2321     mov word [bp-01ch], di                    ; 89 7e e4
    2322     mov word [bp-01eh], ax                    ; 89 46 e2
     2321    mov word [bp-022h], di                    ; 89 7e de
     2322    mov word [bp-020h], ax                    ; 89 46 e0
    23232323    mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
    23242324    mov word [es:di+00206h], 001f0h           ; 26 c7 85 06 02 f0 01
     
    23302330    mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
    23312331    xor al, al                                ; 30 c0
    2332     mov byte [bp-00ch], al                    ; 88 46 f4
     2332    mov byte [bp-008h], al                    ; 88 46 f8
    23332333    mov byte [bp-012h], al                    ; 88 46 ee
    2334     mov byte [bp-00eh], al                    ; 88 46 f2
    2335     jmp near 02726h                           ; e9 ac 05
     2334    mov byte [bp-00ah], al                    ; 88 46 f6
     2335    jmp near 026ech                           ; e9 72 05
    23362336    mov ax, 000a0h                            ; b8 a0 00
    23372337    lea dx, [si+006h]                         ; 8d 54 06
    23382338    out DX, AL                                ; ee
    2339     lea bx, [si+002h]                         ; 8d 5c 02
     2339    lea di, [si+002h]                         ; 8d 7c 02
     2340    mov AL, strict byte 055h                  ; b0 55
     2341    mov dx, di                                ; 89 fa
     2342    out DX, AL                                ; ee
     2343    lea bx, [si+003h]                         ; 8d 5c 03
     2344    mov AL, strict byte 0aah                  ; b0 aa
     2345    mov dx, bx                                ; 89 da
     2346    out DX, AL                                ; ee
     2347    mov dx, di                                ; 89 fa
     2348    out DX, AL                                ; ee
    23402349    mov AL, strict byte 055h                  ; b0 55
    23412350    mov dx, bx                                ; 89 da
    23422351    out DX, AL                                ; ee
    2343     lea di, [si+003h]                         ; 8d 7c 03
     2352    mov dx, di                                ; 89 fa
     2353    out DX, AL                                ; ee
    23442354    mov AL, strict byte 0aah                  ; b0 aa
     2355    mov dx, bx                                ; 89 da
     2356    out DX, AL                                ; ee
    23452357    mov dx, di                                ; 89 fa
    2346     out DX, AL                                ; ee
    2347     mov dx, bx                                ; 89 da
    2348     out DX, AL                                ; ee
    2349     mov AL, strict byte 055h                  ; b0 55
    2350     mov dx, di                                ; 89 fa
    2351     out DX, AL                                ; ee
    2352     mov dx, bx                                ; 89 da
    2353     out DX, AL                                ; ee
    2354     mov AL, strict byte 0aah                  ; b0 aa
    2355     mov dx, di                                ; 89 fa
    2356     out DX, AL                                ; ee
     2358    in AL, DX                                 ; ec
     2359    db  02ah, 0e4h
     2360    ; sub ah, ah                                ; 2a e4
     2361    mov cx, ax                                ; 89 c1
    23572362    mov dx, bx                                ; 89 da
    23582363    in AL, DX                                 ; ec
    23592364    db  02ah, 0e4h
    23602365    ; sub ah, ah                                ; 2a e4
    2361     mov bx, ax                                ; 89 c3
    2362     mov dx, di                                ; 89 fa
    2363     in AL, DX                                 ; ec
    2364     db  02ah, 0e4h
    2365     ; sub ah, ah                                ; 2a e4
    2366     cmp bl, 055h                              ; 80 fb 55
    2367     jne short 021fch                          ; 75 4a
     2366    cmp cl, 055h                              ; 80 f9 55
     2367    jne short 021f9h                          ; 75 47
    23682368    cmp AL, strict byte 0aah                  ; 3c aa
    2369     jne short 021fch                          ; 75 46
    2370     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2369    jne short 021f9h                          ; 75 43
     2370    mov al, byte [bp-00ah]                    ; 8a 46 f6
    23712371    xor ah, ah                                ; 30 e4
    23722372    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2373     mov es, [bp-01eh]                         ; 8e 46 e2
    2374     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2373    les bx, [bp-022h]                         ; c4 5e de
    23752374    add bx, ax                                ; 01 c3
    23762375    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
    2377     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2378     xor ah, ah                                ; 30 e4
    2379     call 01d85h                               ; e8 b2 fb
    2380     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    2381     je short 021deh                           ; 74 05
     2376    mov al, byte [bp-00ah]                    ; 8a 46 f6
     2377    xor ah, ah                                ; 30 e4
     2378    call 01d85h                               ; e8 b5 fb
     2379    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2380    je short 021dbh                           ; 74 05
    23822381    mov ax, 000b0h                            ; b8 b0 00
    2383     jmp short 021e1h                          ; eb 03
     2382    jmp short 021deh                          ; eb 03
    23842383    mov ax, 000a0h                            ; b8 a0 00
    23852384    lea dx, [si+006h]                         ; 8d 54 06
     
    23952394    ; sub ah, ah                                ; 2a e4
    23962395    cmp bl, 001h                              ; 80 fb 01
    2397     jne short 02238h                          ; 75 40
     2396    jne short 02232h                          ; 75 3d
    23982397    cmp al, bl                                ; 38 d8
    2399     je short 021feh                           ; 74 02
    2400     jmp short 02238h                          ; eb 3a
     2398    je short 021fbh                           ; 74 02
     2399    jmp short 02232h                          ; eb 37
    24012400    lea dx, [si+004h]                         ; 8d 54 04
    2402     in AL, DX                                 ; ec
    2403     db  02ah, 0e4h
    2404     ; sub ah, ah                                ; 2a e4
    2405     mov cx, ax                                ; 89 c1
    2406     mov ch, al                                ; 88 c5
    2407     lea dx, [si+005h]                         ; 8d 54 05
    24082401    in AL, DX                                 ; ec
    24092402    db  02ah, 0e4h
     
    24112404    mov bx, ax                                ; 89 c3
    24122405    mov byte [bp-006h], al                    ; 88 46 fa
     2406    lea dx, [si+005h]                         ; 8d 54 05
     2407    in AL, DX                                 ; ec
     2408    db  02ah, 0e4h
     2409    ; sub ah, ah                                ; 2a e4
     2410    mov cx, ax                                ; 89 c1
     2411    mov bh, al                                ; 88 c7
    24132412    lea dx, [si+007h]                         ; 8d 54 07
    24142413    in AL, DX                                 ; ec
    24152414    db  02ah, 0e4h
    24162415    ; sub ah, ah                                ; 2a e4
    2417     cmp cl, 014h                              ; 80 f9 14
    2418     jne short 0223ah                          ; 75 1c
    2419     cmp bl, 0ebh                              ; 80 fb eb
    2420     jne short 0223ah                          ; 75 17
    2421     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2416    cmp bl, 014h                              ; 80 fb 14
     2417    jne short 02234h                          ; 75 19
     2418    cmp cl, 0ebh                              ; 80 f9 eb
     2419    jne short 02234h                          ; 75 14
     2420    mov al, byte [bp-00ah]                    ; 8a 46 f6
    24222421    xor ah, ah                                ; 30 e4
    24232422    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2424     mov es, [bp-01eh]                         ; 8e 46 e2
    2425     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2423    les bx, [bp-022h]                         ; c4 5e de
    24262424    add bx, ax                                ; 01 c3
    24272425    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
    2428     jmp short 0227eh                          ; eb 44
    2429     test ch, ch                               ; 84 ed
    2430     jne short 0225fh                          ; 75 21
     2426    jmp short 02273h                          ; eb 3f
    24312427    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2432     jne short 0225fh                          ; 75 1b
     2428    jne short 02256h                          ; 75 1c
     2429    test bh, bh                               ; 84 ff
     2430    jne short 02256h                          ; 75 18
    24332431    test al, al                               ; 84 c0
    2434     je short 0225fh                           ; 74 17
    2435     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2432    je short 02256h                           ; 74 14
     2433    mov al, byte [bp-00ah]                    ; 8a 46 f6
    24362434    xor ah, ah                                ; 30 e4
    24372435    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2438     mov es, [bp-01eh]                         ; 8e 46 e2
    2439     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2436    les bx, [bp-022h]                         ; c4 5e de
    24402437    add bx, ax                                ; 01 c3
    24412438    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
    2442     jmp short 0227eh                          ; eb 1f
    2443     cmp ch, 0ffh                              ; 80 fd ff
    2444     jne short 0227eh                          ; 75 1a
    2445     cmp ch, byte [bp-006h]                    ; 3a 6e fa
    2446     jne short 0227eh                          ; 75 15
    2447     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2439    jmp short 02273h                          ; eb 1d
     2440    mov al, byte [bp-006h]                    ; 8a 46 fa
     2441    cmp AL, strict byte 0ffh                  ; 3c ff
     2442    jne short 02273h                          ; 75 16
     2443    cmp bh, al                                ; 38 c7
     2444    jne short 02273h                          ; 75 12
     2445    mov al, byte [bp-00ah]                    ; 8a 46 f6
    24482446    xor ah, ah                                ; 30 e4
    24492447    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2450     mov es, [bp-01eh]                         ; 8e 46 e2
    2451     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2448    les bx, [bp-022h]                         ; c4 5e de
    24522449    add bx, ax                                ; 01 c3
    24532450    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    2454     mov dx, word [bp-02ah]                    ; 8b 56 d6
     2451    mov dx, word [bp-01ah]                    ; 8b 56 e6
    24552452    add dx, strict byte 00006h                ; 83 c2 06
    24562453    mov AL, strict byte 008h                  ; b0 08
    24572454    out DX, AL                                ; ee
    2458     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2455    mov al, byte [bp-00ah]                    ; 8a 46 f6
    24592456    xor ah, ah                                ; 30 e4
    24602457    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2461     mov es, [bp-01eh]                         ; 8e 46 e2
    2462     mov si, word [bp-01ch]                    ; 8b 76 e4
     2458    les si, [bp-022h]                         ; c4 76 de
    24632459    add si, ax                                ; 01 c6
    24642460    mov al, byte [es:si+022h]                 ; 26 8a 44 22
    2465     mov byte [bp-008h], al                    ; 88 46 f8
     2461    mov byte [bp-00ch], al                    ; 88 46 f4
    24662462    cmp AL, strict byte 002h                  ; 3c 02
    2467     jne short 022fdh                          ; 75 5b
     2463    jne short 022ddh                          ; 75 49
    24682464    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
    24692465    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
    24702466    lea dx, [bp-00264h]                       ; 8d 96 9c fd
    2471     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2467    mov bx, word [bp-022h]                    ; 8b 5e de
    24722468    mov word [es:bx+008h], dx                 ; 26 89 57 08
    24732469    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
    2474     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2470    mov al, byte [bp-00ah]                    ; 8a 46 f6
    24752471    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    24762472    mov cx, strict word 00001h                ; b9 01 00
    24772473    mov bx, 000ech                            ; bb ec 00
    2478     mov ax, word [bp-01ch]                    ; 8b 46 e4
     2474    mov ax, word [bp-022h]                    ; 8b 46 de
    24792475    mov dx, es                                ; 8c c2
    2480     call 01e63h                               ; e8 93 fb
     2476    call 01e63h                               ; e8 a1 fb
    24812477    test ax, ax                               ; 85 c0
    2482     je short 022dfh                           ; 74 0b
     2478    je short 022d1h                           ; 74 0b
    24832479    push 00124h                               ; 68 24 01
    24842480    push strict byte 00007h                   ; 6a 07
    2485     call 01966h                               ; e8 8a f6
     2481    call 01966h                               ; e8 98 f6
    24862482    add sp, strict byte 00004h                ; 83 c4 04
    24872483    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
    2488     je short 022ebh                           ; 74 05
     2484    je short 022e0h                           ; 74 08
    24892485    mov ax, strict word 00001h                ; b8 01 00
    2490     jmp short 022edh                          ; eb 02
     2486    jmp short 022e2h                          ; eb 05
     2487    jmp near 024bfh                           ; e9 df 01
    24912488    xor ax, ax                                ; 31 c0
    24922489    mov byte [bp-016h], al                    ; 88 46 ea
    2493     mov al, byte [bp-00204h]                  ; 8a 86 fc fd
    2494     test al, al                               ; 84 c0
    2495     je short 02300h                           ; 74 08
    2496     mov ax, strict word 00001h                ; b8 01 00
    2497     jmp short 02302h                          ; eb 05
    2498     jmp near 024deh                           ; e9 de 01
    2499     xor ah, ah                                ; 30 e4
    2500     mov byte [bp-018h], al                    ; 88 46 e8
     2490    mov byte [bp-018h], 000h                  ; c6 46 e8 00
    25012491    mov word [bp-034h], 00200h                ; c7 46 cc 00 02
    25022492    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
    2503     mov word [bp-024h], ax                    ; 89 46 dc
     2493    mov word [bp-01ch], ax                    ; 89 46 e4
    25042494    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
    2505     mov word [bp-026h], ax                    ; 89 46 da
     2495    mov word [bp-030h], ax                    ; 89 46 d0
    25062496    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
    2507     mov word [bp-022h], ax                    ; 89 46 de
     2497    mov word [bp-02ah], ax                    ; 89 46 d6
    25082498    mov si, word [bp-001ech]                  ; 8b b6 14 fe
    25092499    mov ax, word [bp-001eah]                  ; 8b 86 16 fe
    2510     mov word [bp-020h], ax                    ; 89 46 e0
     2500    mov word [bp-028h], ax                    ; 89 46 d8
    25112501    xor ax, ax                                ; 31 c0
    2512     mov word [bp-030h], ax                    ; 89 46 d0
     2502    mov word [bp-01eh], ax                    ; 89 46 e2
     2503    mov word [bp-02ch], ax                    ; 89 46 d4
     2504    cmp word [bp-028h], 00fffh                ; 81 7e d8 ff 0f
     2505    jne short 0233bh                          ; 75 1e
     2506    cmp si, strict byte 0ffffh                ; 83 fe ff
     2507    jne short 0233bh                          ; 75 19
     2508    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
     2509    mov word [bp-02ch], ax                    ; 89 46 d4
     2510    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
     2511    mov word [bp-01eh], ax                    ; 89 46 e2
     2512    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
    25132513    mov word [bp-028h], ax                    ; 89 46 d8
    2514     cmp word [bp-020h], 00fffh                ; 81 7e e0 ff 0f
    2515     jne short 02357h                          ; 75 1e
    2516     cmp si, strict byte 0ffffh                ; 83 fe ff
    2517     jne short 02357h                          ; 75 19
    2518     mov ax, word [bp-00196h]                  ; 8b 86 6a fe
    2519     mov word [bp-028h], ax                    ; 89 46 d8
    2520     mov ax, word [bp-00198h]                  ; 8b 86 68 fe
    2521     mov word [bp-030h], ax                    ; 89 46 d0
    2522     mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
    2523     mov word [bp-020h], ax                    ; 89 46 e0
    25242514    mov si, word [bp-0019ch]                  ; 8b b6 64 fe
    2525     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2515    mov al, byte [bp-00ah]                    ; 8a 46 f6
    25262516    cmp AL, strict byte 001h                  ; 3c 01
    2527     jc short 0236ah                           ; 72 0c
    2528     jbe short 02372h                          ; 76 12
     2517    jc short 0234eh                           ; 72 0c
     2518    jbe short 02356h                          ; 76 12
    25292519    cmp AL, strict byte 003h                  ; 3c 03
    2530     je short 0237ah                           ; 74 16
     2520    je short 0235eh                           ; 74 16
    25312521    cmp AL, strict byte 002h                  ; 3c 02
    2532     je short 02376h                           ; 74 0e
    2533     jmp short 023b4h                          ; eb 4a
     2522    je short 0235ah                           ; 74 0e
     2523    jmp short 02398h                          ; eb 4a
    25342524    test al, al                               ; 84 c0
    2535     jne short 023b4h                          ; 75 46
     2525    jne short 02398h                          ; 75 46
    25362526    mov BL, strict byte 01eh                  ; b3 1e
    2537     jmp short 0237ch                          ; eb 0a
     2527    jmp short 02360h                          ; eb 0a
    25382528    mov BL, strict byte 026h                  ; b3 26
    2539     jmp short 0237ch                          ; eb 06
     2529    jmp short 02360h                          ; eb 06
    25402530    mov BL, strict byte 067h                  ; b3 67
    2541     jmp short 0237ch                          ; eb 02
     2531    jmp short 02360h                          ; eb 02
    25422532    mov BL, strict byte 070h                  ; b3 70
    25432533    mov al, bl                                ; 88 d8
     
    25452535    ; inc al                                    ; fe c0
    25462536    xor ah, ah                                ; 30 e4
    2547     call 016ach                               ; e8 27 f3
     2537    call 016ach                               ; e8 43 f3
    25482538    xor ah, ah                                ; 30 e4
    25492539    mov dx, ax                                ; 89 c2
    25502540    sal dx, 008h                              ; c1 e2 08
    25512541    mov al, bl                                ; 88 d8
    2552     call 016ach                               ; e8 1b f3
     2542    call 016ach                               ; e8 37 f3
    25532543    xor ah, ah                                ; 30 e4
    25542544    add ax, dx                                ; 01 d0
     
    25572547    add AL, strict byte 002h                  ; 04 02
    25582548    xor ah, ah                                ; 30 e4
    2559     call 016ach                               ; e8 0b f3
     2549    call 016ach                               ; e8 27 f3
    25602550    xor ah, ah                                ; 30 e4
    25612551    mov word [bp-03ah], ax                    ; 89 46 c6
    25622552    mov al, bl                                ; 88 d8
    25632553    add AL, strict byte 007h                  ; 04 07
    2564     call 016ach                               ; e8 ff f2
     2554    call 016ach                               ; e8 1b f3
    25652555    xor ah, ah                                ; 30 e4
    25662556    mov word [bp-036h], ax                    ; 89 46 ca
    2567     jmp short 023c6h                          ; eb 12
     2557    jmp short 023aah                          ; eb 12
     2558    push word [bp-02ch]                       ; ff 76 d4
     2559    push word [bp-01eh]                       ; ff 76 e2
    25682560    push word [bp-028h]                       ; ff 76 d8
    2569     push word [bp-030h]                       ; ff 76 d0
    2570     push word [bp-020h]                       ; ff 76 e0
    25712561    push si                                   ; 56
    25722562    mov dx, ss                                ; 8c d2
    25732563    lea ax, [bp-03ah]                         ; 8d 46 c6
    2574     call 059d2h                               ; e8 0c 36
     2564    call 05977h                               ; e8 cd 35
    25752565    mov bx, 00da0h                            ; bb a0 0d
    25762566    mov cx, ds                                ; 8c d9
    25772567    mov ax, strict word 00004h                ; b8 04 00
    2578     call 01923h                               ; e8 52 f5
     2568    call 01923h                               ; e8 6e f5
    25792569    mov ax, word [bp-036h]                    ; 8b 46 ca
    25802570    push ax                                   ; 50
     
    25832573    mov ax, word [bp-038h]                    ; 8b 46 c8
    25842574    push ax                                   ; 50
    2585     push word [bp-022h]                       ; ff 76 de
    2586     push word [bp-026h]                       ; ff 76 da
    2587     push word [bp-024h]                       ; ff 76 dc
    2588     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2575    push word [bp-02ah]                       ; ff 76 d6
     2576    push word [bp-030h]                       ; ff 76 d0
     2577    push word [bp-01ch]                       ; ff 76 e4
     2578    mov al, byte [bp-010h]                    ; 8a 46 f0
    25892579    xor ah, ah                                ; 30 e4
    25902580    push ax                                   ; 50
     
    25932583    push 0014dh                               ; 68 4d 01
    25942584    push strict byte 00004h                   ; 6a 04
    2595     call 01966h                               ; e8 6e f5
     2585    call 01966h                               ; e8 8a f5
    25962586    add sp, strict byte 00014h                ; 83 c4 14
    2597     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2587    mov al, byte [bp-00ah]                    ; 8a 46 f6
    25982588    xor ah, ah                                ; 30 e4
    25992589    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2600     mov es, [bp-01eh]                         ; 8e 46 e2
    2601     mov di, word [bp-01ch]                    ; 8b 7e e4
     2590    les di, [bp-022h]                         ; c4 7e de
    26022591    add di, ax                                ; 01 c7
    26032592    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
     
    26082597    mov ax, word [bp-034h]                    ; 8b 46 cc
    26092598    mov word [es:di+028h], ax                 ; 26 89 45 28
    2610     mov ax, word [bp-026h]                    ; 8b 46 da
     2599    mov ax, word [bp-030h]                    ; 8b 46 d0
    26112600    mov word [es:di+030h], ax                 ; 26 89 45 30
    2612     mov ax, word [bp-024h]                    ; 8b 46 dc
     2601    mov ax, word [bp-01ch]                    ; 8b 46 e4
    26132602    mov word [es:di+032h], ax                 ; 26 89 45 32
    2614     mov ax, word [bp-022h]                    ; 8b 46 de
     2603    mov ax, word [bp-02ah]                    ; 8b 46 d6
    26152604    mov word [es:di+034h], ax                 ; 26 89 45 34
     2605    mov ax, word [bp-02ch]                    ; 8b 46 d4
     2606    mov word [es:di+03ch], ax                 ; 26 89 45 3c
     2607    mov ax, word [bp-01eh]                    ; 8b 46 e2
     2608    mov word [es:di+03ah], ax                 ; 26 89 45 3a
    26162609    mov ax, word [bp-028h]                    ; 8b 46 d8
    2617     mov word [es:di+03ch], ax                 ; 26 89 45 3c
    2618     mov ax, word [bp-030h]                    ; 8b 46 d0
    2619     mov word [es:di+03ah], ax                 ; 26 89 45 3a
    2620     mov ax, word [bp-020h]                    ; 8b 46 e0
    26212610    mov word [es:di+038h], ax                 ; 26 89 45 38
    26222611    mov word [es:di+036h], si                 ; 26 89 75 36
     
    26302619    movsw                                     ; a5
    26312620    pop DS                                    ; 1f
    2632     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2621    mov al, byte [bp-00ah]                    ; 8a 46 f6
    26332622    cmp AL, strict byte 002h                  ; 3c 02
    2634     jnc short 024c8h                          ; 73 61
     2623    jnc short 024a9h                          ; 73 61
    26352624    test al, al                               ; 84 c0
    2636     jne short 02470h                          ; 75 05
     2625    jne short 02451h                          ; 75 05
    26372626    mov di, strict word 0003dh                ; bf 3d 00
    2638     jmp short 02473h                          ; eb 03
     2627    jmp short 02454h                          ; eb 03
    26392628    mov di, strict word 0004dh                ; bf 4d 00
    2640     mov dx, word [bp-01ah]                    ; 8b 56 e6
     2629    mov dx, word [bp-026h]                    ; 8b 56 da
    26412630    mov ax, word [bp-038h]                    ; 8b 46 c8
    26422631    mov es, dx                                ; 8e c2
     
    26452634    mov byte [es:di+002h], al                 ; 26 88 45 02
    26462635    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
    2647     mov al, byte [bp-022h]                    ; 8a 46 de
     2636    mov al, byte [bp-02ah]                    ; 8a 46 d6
    26482637    mov byte [es:di+004h], al                 ; 26 88 45 04
    2649     mov ax, word [bp-024h]                    ; 8b 46 dc
     2638    mov ax, word [bp-01ch]                    ; 8b 46 e4
    26502639    mov word [es:di+009h], ax                 ; 26 89 45 09
    2651     mov al, byte [bp-026h]                    ; 8a 46 da
     2640    mov al, byte [bp-030h]                    ; 8a 46 d0
    26522641    mov byte [es:di+00bh], al                 ; 26 88 45 0b
    2653     mov al, byte [bp-022h]                    ; 8a 46 de
     2642    mov al, byte [bp-02ah]                    ; 8a 46 d6
    26542643    mov byte [es:di+00eh], al                 ; 26 88 45 0e
    26552644    xor al, al                                ; 30 c0
    26562645    xor ah, ah                                ; 30 e4
    2657     jmp short 024b1h                          ; eb 05
     2646    jmp short 02492h                          ; eb 05
    26582647    cmp ah, 00fh                              ; 80 fc 0f
    2659     jnc short 024c0h                          ; 73 0f
     2648    jnc short 024a1h                          ; 73 0f
    26602649    mov bl, ah                                ; 88 e3
    26612650    xor bh, bh                                ; 30 ff
     
    26652654    db  0feh, 0c4h
    26662655    ; inc ah                                    ; fe c4
    2667     jmp short 024ach                          ; eb ec
     2656    jmp short 0248dh                          ; eb ec
    26682657    neg al                                    ; f6 d8
    26692658    mov es, dx                                ; 8e c2
     
    26712660    mov bl, byte [bp-012h]                    ; 8a 5e ee
    26722661    xor bh, bh                                ; 30 ff
    2673     mov es, [bp-01eh]                         ; 8e 46 e2
    2674     add bx, word [bp-01ch]                    ; 03 5e e4
    2675     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2662    mov es, [bp-020h]                         ; 8e 46 e0
     2663    add bx, word [bp-022h]                    ; 03 5e de
     2664    mov al, byte [bp-00ah]                    ; 8a 46 f6
    26762665    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
    26772666    inc byte [bp-012h]                        ; fe 46 ee
    2678     cmp byte [bp-008h], 003h                  ; 80 7e f8 03
    2679     jne short 02554h                          ; 75 70
    2680     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2667    cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
     2668    jne short 02522h                          ; 75 5d
     2669    mov al, byte [bp-00ah]                    ; 8a 46 f6
    26812670    xor ah, ah                                ; 30 e4
    26822671    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2683     mov es, [bp-01eh]                         ; 8e 46 e2
    2684     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2672    les bx, [bp-022h]                         ; c4 5e de
    26852673    add bx, ax                                ; 01 c3
    26862674    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
    26872675    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    26882676    lea dx, [bp-00264h]                       ; 8d 96 9c fd
    2689     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2677    mov bx, word [bp-022h]                    ; 8b 5e de
    26902678    mov word [es:bx+008h], dx                 ; 26 89 57 08
    26912679    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
    2692     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2680    mov al, byte [bp-00ah]                    ; 8a 46 f6
    26932681    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    26942682    mov cx, strict word 00001h                ; b9 01 00
    26952683    mov bx, 000a1h                            ; bb a1 00
    2696     mov ax, word [bp-01ch]                    ; 8b 46 e4
     2684    mov ax, word [bp-022h]                    ; 8b 46 de
    26972685    mov dx, es                                ; 8c c2
    2698     call 01e63h                               ; e8 41 f9
     2686    call 01e63h                               ; e8 63 f9
    26992687    test ax, ax                               ; 85 c0
    2700     je short 02531h                           ; 74 0b
     2688    je short 0250fh                           ; 74 0b
    27012689    push 00174h                               ; 68 74 01
    27022690    push strict byte 00007h                   ; 6a 07
    2703     call 01966h                               ; e8 38 f4
     2691    call 01966h                               ; e8 5a f4
    27042692    add sp, strict byte 00004h                ; 83 c4 04
    2705     mov bh, byte [bp-00263h]                  ; 8a be 9d fd
    2706     and bh, 01fh                              ; 80 e7 1f
     2693    mov bl, byte [bp-00263h]                  ; 8a 9e 9d fd
     2694    and bl, 01fh                              ; 80 e3 1f
    27072695    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
    2708     je short 02544h                           ; 74 05
     2696    je short 02524h                           ; 74 07
    27092697    mov ax, strict word 00001h                ; b8 01 00
    2710     jmp short 02546h                          ; eb 02
     2698    jmp short 02526h                          ; eb 04
     2699    jmp short 02559h                          ; eb 35
    27112700    xor ax, ax                                ; 31 c0
    2712     mov bl, al                                ; 88 c3
    2713     cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
    2714     je short 02556h                           ; 74 07
    2715     mov dx, strict word 00001h                ; ba 01 00
    2716     jmp short 02558h                          ; eb 04
    2717     jmp short 0258dh                          ; eb 37
    2718     xor dx, dx                                ; 31 d2
    2719     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2701    mov dl, byte [bp-00ah]                    ; 8a 56 f6
     2702    xor dh, dh                                ; 30 f6
     2703    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     2704    les si, [bp-022h]                         ; c4 76 de
     2705    add si, dx                                ; 01 d6
     2706    mov byte [es:si+023h], bl                 ; 26 88 5c 23
     2707    mov byte [es:si+024h], al                 ; 26 88 44 24
     2708    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
     2709    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
     2710    mov bl, byte [bp-008h]                    ; 8a 5e f8
     2711    xor bh, bh                                ; 30 ff
     2712    add bx, word [bp-022h]                    ; 03 5e de
     2713    mov al, byte [bp-00ah]                    ; 8a 46 f6
     2714    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
     2715    inc byte [bp-008h]                        ; fe 46 f8
     2716    mov al, byte [bp-00ch]                    ; 8a 46 f4
     2717    cmp AL, strict byte 003h                  ; 3c 03
     2718    je short 0258dh                           ; 74 2d
     2719    cmp AL, strict byte 002h                  ; 3c 02
     2720    jne short 025bdh                          ; 75 59
     2721    mov al, byte [bp-00ah]                    ; 8a 46 f6
    27202722    xor ah, ah                                ; 30 e4
    27212723    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2722     mov es, [bp-01eh]                         ; 8e 46 e2
    2723     mov di, word [bp-01ch]                    ; 8b 7e e4
    2724     add di, ax                                ; 01 c7
    2725     mov byte [es:di+023h], bh                 ; 26 88 7d 23
    2726     mov byte [es:di+024h], bl                 ; 26 88 5d 24
    2727     mov byte [es:di+026h], dl                 ; 26 88 55 26
    2728     mov word [es:di+028h], 00800h             ; 26 c7 45 28 00 08
    2729     mov bl, byte [bp-00ch]                    ; 8a 5e f4
    2730     xor bh, bh                                ; 30 ff
    2731     add bx, word [bp-01ch]                    ; 03 5e e4
    2732     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2733     mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
    2734     inc byte [bp-00ch]                        ; fe 46 f4
    2735     mov al, byte [bp-008h]                    ; 8a 46 f8
    2736     cmp AL, strict byte 003h                  ; 3c 03
    2737     je short 025c4h                           ; 74 30
    2738     cmp AL, strict byte 002h                  ; 3c 02
    2739     jne short 025f4h                          ; 75 5c
    2740     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2741     xor ah, ah                                ; 30 e4
    2742     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2743     mov es, [bp-01eh]                         ; 8e 46 e2
    2744     mov di, word [bp-01ch]                    ; 8b 7e e4
     2724    les di, [bp-022h]                         ; c4 7e de
    27452725    add di, ax                                ; 01 c7
    27462726    mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
     
    27492729    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    27502730    mov si, strict word 0000bh                ; be 0b 00
    2751     call 0a02ah                               ; e8 6c 7a
    2752     mov word [bp-02eh], dx                    ; 89 56 d2
    2753     mov word [bp-02ch], cx                    ; 89 4e d4
     2731    call 09faah                               ; e8 23 7a
     2732    mov word [bp-024h], dx                    ; 89 56 dc
     2733    mov word [bp-032h], cx                    ; 89 4e ce
    27542734    mov al, byte [bp-001c3h]                  ; 8a 86 3d fe
    27552735    xor ah, ah                                ; 30 e4
     
    27582738    mov al, byte [bp-001c4h]                  ; 8a 86 3c fe
    27592739    or dx, ax                                 ; 09 c2
    2760     mov byte [bp-010h], 00fh                  ; c6 46 f0 0f
    2761     jmp short 025e4h                          ; eb 09
    2762     dec byte [bp-010h]                        ; fe 4e f0
    2763     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    2764     jbe short 025f0h                          ; 76 0c
    2765     mov cl, byte [bp-010h]                    ; 8a 4e f0
     2740    mov byte [bp-00eh], 00fh                  ; c6 46 f2 0f
     2741    jmp short 025adh                          ; eb 09
     2742    dec byte [bp-00eh]                        ; fe 4e f2
     2743    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     2744    jbe short 025b9h                          ; 76 0c
     2745    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    27662746    mov ax, strict word 00001h                ; b8 01 00
    27672747    sal ax, CL                                ; d3 e0
    27682748    test dx, ax                               ; 85 c2
    2769     je short 025dbh                           ; 74 eb
     2749    je short 025a4h                           ; 74 eb
    27702750    xor di, di                                ; 31 ff
    2771     jmp short 025fbh                          ; eb 07
    2772     jmp short 0262ah                          ; eb 34
     2751    jmp short 025c4h                          ; eb 07
     2752    jmp short 025f3h                          ; eb 34
    27732753    cmp di, strict byte 00014h                ; 83 ff 14
    2774     jnl short 02610h                          ; 7d 15
     2754    jnl short 025d9h                          ; 7d 15
    27752755    mov si, di                                ; 89 fe
    27762756    add si, di                                ; 01 fe
     
    27802760    mov byte [bp+si-063h], al                 ; 88 42 9d
    27812761    inc di                                    ; 47
    2782     jmp short 025f6h                          ; eb e6
     2762    jmp short 025bfh                          ; eb e6
    27832763    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
    27842764    mov di, strict word 00027h                ; bf 27 00
    2785     jmp short 0261eh                          ; eb 05
     2765    jmp short 025e7h                          ; eb 05
    27862766    dec di                                    ; 4f
    27872767    test di, di                               ; 85 ff
    2788     jle short 0262ah                          ; 7e 0c
     2768    jle short 025f3h                          ; 7e 0c
    27892769    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
    2790     jne short 0262ah                          ; 75 06
     2770    jne short 025f3h                          ; 75 06
    27912771    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
    2792     jmp short 02619h                          ; eb ef
    2793     mov al, byte [bp-008h]                    ; 8a 46 f8
     2772    jmp short 025e2h                          ; eb ef
     2773    mov al, byte [bp-00ch]                    ; 8a 46 f4
    27942774    cmp AL, strict byte 003h                  ; 3c 03
    2795     je short 0268eh                           ; 74 5d
     2775    je short 02657h                           ; 74 5d
    27962776    cmp AL, strict byte 002h                  ; 3c 02
    2797     je short 0263ch                           ; 74 07
     2777    je short 02605h                           ; 74 07
    27982778    cmp AL, strict byte 001h                  ; 3c 01
    2799     je short 02699h                           ; 74 60
    2800     jmp near 0271dh                           ; e9 e1 00
    2801     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    2802     je short 02647h                           ; 74 05
     2779    je short 02662h                           ; 74 60
     2780    jmp near 026e3h                           ; e9 de 00
     2781    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2782    je short 02610h                           ; 74 05
    28032783    mov ax, 0019fh                            ; b8 9f 01
    2804     jmp short 0264ah                          ; eb 03
     2784    jmp short 02613h                          ; eb 03
    28052785    mov ax, 001a6h                            ; b8 a6 01
    28062786    push ax                                   ; 50
     
    28102790    push 001adh                               ; 68 ad 01
    28112791    push strict byte 00002h                   ; 6a 02
    2812     call 01966h                               ; e8 0d f3
     2792    call 01966h                               ; e8 44 f3
    28132793    add sp, strict byte 00008h                ; 83 c4 08
    28142794    xor di, di                                ; 31 ff
     
    28172797    inc di                                    ; 47
    28182798    test ax, ax                               ; 85 c0
    2819     je short 02676h                           ; 74 0e
     2799    je short 0263fh                           ; 74 0e
    28202800    push ax                                   ; 50
    28212801    push 001b8h                               ; 68 b8 01
    28222802    push strict byte 00002h                   ; 6a 02
    2823     call 01966h                               ; e8 f5 f2
     2803    call 01966h                               ; e8 2c f3
    28242804    add sp, strict byte 00006h                ; 83 c4 06
    2825     jmp short 0265eh                          ; eb e8
    2826     push word [bp-02ch]                       ; ff 76 d4
    2827     push word [bp-02eh]                       ; ff 76 d2
    2828     mov al, byte [bp-010h]                    ; 8a 46 f0
     2805    jmp short 02627h                          ; eb e8
     2806    push word [bp-032h]                       ; ff 76 ce
     2807    push word [bp-024h]                       ; ff 76 dc
     2808    mov al, byte [bp-00eh]                    ; 8a 46 f2
    28292809    push ax                                   ; 50
    28302810    push 001bbh                               ; 68 bb 01
    28312811    push strict byte 00002h                   ; 6a 02
    2832     call 01966h                               ; e8 de f2
     2812    call 01966h                               ; e8 15 f3
    28332813    add sp, strict byte 0000ah                ; 83 c4 0a
    2834     jmp near 0271dh                           ; e9 8f 00
    2835     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    2836     je short 0269bh                           ; 74 07
     2814    jmp near 026e3h                           ; e9 8c 00
     2815    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2816    je short 02664h                           ; 74 07
    28372817    mov ax, 0019fh                            ; b8 9f 01
    2838     jmp short 0269eh                          ; eb 05
    2839     jmp short 026fdh                          ; eb 62
     2818    jmp short 02667h                          ; eb 05
     2819    jmp short 026c3h                          ; eb 5f
    28402820    mov ax, 001a6h                            ; b8 a6 01
    28412821    push ax                                   ; 50
     
    28452825    push 001adh                               ; 68 ad 01
    28462826    push strict byte 00002h                   ; 6a 02
    2847     call 01966h                               ; e8 b9 f2
     2827    call 01966h                               ; e8 f0 f2
    28482828    add sp, strict byte 00008h                ; 83 c4 08
    28492829    xor di, di                                ; 31 ff
     
    28522832    inc di                                    ; 47
    28532833    test ax, ax                               ; 85 c0
    2854     je short 026cah                           ; 74 0e
     2834    je short 02693h                           ; 74 0e
    28552835    push ax                                   ; 50
    28562836    push 001b8h                               ; 68 b8 01
    28572837    push strict byte 00002h                   ; 6a 02
    2858     call 01966h                               ; e8 a1 f2
     2838    call 01966h                               ; e8 d8 f2
    28592839    add sp, strict byte 00006h                ; 83 c4 06
    2860     jmp short 026b2h                          ; eb e8
    2861     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2840    jmp short 0267bh                          ; eb e8
     2841    mov al, byte [bp-00ah]                    ; 8a 46 f6
    28622842    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    2863     mov es, [bp-01eh]                         ; 8e 46 e2
    2864     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2843    les bx, [bp-022h]                         ; c4 5e de
    28652844    add bx, ax                                ; 01 c3
    28662845    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    2867     jne short 026eah                          ; 75 0b
    2868     mov al, byte [bp-010h]                    ; 8a 46 f0
     2846    jne short 026b0h                          ; 75 0b
     2847    mov al, byte [bp-00eh]                    ; 8a 46 f2
    28692848    xor ah, ah                                ; 30 e4
    28702849    push ax                                   ; 50
    28712850    push 001dbh                               ; 68 db 01
    2872     jmp short 026f3h                          ; eb 09
    2873     mov al, byte [bp-010h]                    ; 8a 46 f0
     2851    jmp short 026b9h                          ; eb 09
     2852    mov al, byte [bp-00eh]                    ; 8a 46 f2
    28742853    xor ah, ah                                ; 30 e4
    28752854    push ax                                   ; 50
    28762855    push 001f5h                               ; 68 f5 01
    28772856    push strict byte 00002h                   ; 6a 02
    2878     call 01966h                               ; e8 6e f2
     2857    call 01966h                               ; e8 a8 f2
    28792858    add sp, strict byte 00006h                ; 83 c4 06
    2880     jmp short 0271dh                          ; eb 20
    2881     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    2882     je short 02708h                           ; 74 05
     2859    jmp short 026e3h                          ; eb 20
     2860    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     2861    je short 026ceh                           ; 74 05
    28832862    mov ax, 0019fh                            ; b8 9f 01
    2884     jmp short 0270bh                          ; eb 03
     2863    jmp short 026d1h                          ; eb 03
    28852864    mov ax, 001a6h                            ; b8 a6 01
    28862865    push ax                                   ; 50
     
    28902869    push 00207h                               ; 68 07 02
    28912870    push strict byte 00002h                   ; 6a 02
    2892     call 01966h                               ; e8 4c f2
     2871    call 01966h                               ; e8 86 f2
    28932872    add sp, strict byte 00008h                ; 83 c4 08
    2894     inc byte [bp-00eh]                        ; fe 46 f2
    2895     cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
    2896     jnc short 0277bh                          ; 73 55
    2897     mov bl, byte [bp-00eh]                    ; 8a 5e f2
     2873    inc byte [bp-00ah]                        ; fe 46 f6
     2874    cmp byte [bp-00ah], 008h                  ; 80 7e f6 08
     2875    jnc short 0273eh                          ; 73 52
     2876    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    28982877    xor bh, bh                                ; 30 ff
    28992878    mov ax, bx                                ; 89 d8
     
    29082887    mov bx, strict word 00002h                ; bb 02 00
    29092888    idiv bx                                   ; f7 fb
    2910     mov word [bp-032h], dx                    ; 89 56 ce
    2911     mov al, byte [bp-032h]                    ; 8a 46 ce
    2912     mov byte [bp-00ah], al                    ; 88 46 f6
     2889    mov word [bp-02eh], dx                    ; 89 56 d2
     2890    mov al, byte [bp-02eh]                    ; 8a 46 d2
     2891    mov byte [bp-010h], al                    ; 88 46 f0
    29132892    mov al, cl                                ; 88 c8
    29142893    xor ah, ah                                ; 30 e4
    29152894    imul ax, ax, strict byte 00006h           ; 6b c0 06
    2916     mov es, [bp-01eh]                         ; 8e 46 e2
    2917     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2895    les bx, [bp-022h]                         ; c4 5e de
    29182896    add bx, ax                                ; 01 c3
    29192897    mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
    29202898    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
    2921     mov word [bp-02ah], ax                    ; 89 46 d6
     2899    mov word [bp-01ah], ax                    ; 89 46 e6
    29222900    mov dx, ax                                ; 89 c2
    29232901    add dx, strict byte 00006h                ; 83 c2 06
    29242902    mov AL, strict byte 00ah                  ; b0 0a
    29252903    out DX, AL                                ; ee
    2926     cmp byte [bp-032h], 000h                  ; 80 7e ce 00
    2927     jne short 02775h                          ; 75 03
    2928     jmp near 0217ah                           ; e9 05 fa
     2904    cmp byte [bp-02eh], 000h                  ; 80 7e d2 00
     2905    jne short 02738h                          ; 75 03
     2906    jmp near 0217ah                           ; e9 42 fa
    29292907    mov ax, 000b0h                            ; b8 b0 00
    2930     jmp near 0217dh                           ; e9 02 fa
     2908    jmp near 0217dh                           ; e9 3f fa
    29312909    mov al, byte [bp-012h]                    ; 8a 46 ee
    2932     mov es, [bp-01eh]                         ; 8e 46 e2
    2933     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2910    les bx, [bp-022h]                         ; c4 5e de
    29342911    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
    2935     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2912    mov al, byte [bp-008h]                    ; 8a 46 f8
    29362913    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
    29372914    mov bl, byte [bp-012h]                    ; 8a 5e ee
     
    29392916    mov dx, strict word 00075h                ; ba 75 00
    29402917    mov ax, strict word 00040h                ; b8 40 00
    2941     call 0165eh                               ; e8 bf ee
     2918    call 0165eh                               ; e8 ff ee
    29422919    lea sp, [bp-004h]                         ; 8d 66 fc
    29432920    pop di                                    ; 5f
     
    29452922    pop bp                                    ; 5d
    29462923    retn                                      ; c3
    2947 ata_cmd_data_out_:                           ; 0xf27a6 LB 0x28a
     2924ata_cmd_data_out_:                           ; 0xf2766 LB 0x28a
    29482925    push bp                                   ; 55
    29492926    mov bp, sp                                ; 89 e5
     
    29772954    ; sub ah, ah                                ; 2a e4
    29782955    test AL, strict byte 080h                 ; a8 80
    2979     je short 02805h                           ; 74 0f
     2956    je short 027c5h                           ; 74 0f
    29802957    mov dx, word [bp-01ah]                    ; 8b 56 e6
    29812958    add dx, strict byte 00006h                ; 83 c2 06
     
    29832960    out DX, AL                                ; ee
    29842961    mov ax, strict word 00001h                ; b8 01 00
    2985     jmp near 02a29h                           ; e9 24 02
     2962    jmp near 029e9h                           ; e9 24 02
    29862963    mov es, [bp-00ah]                         ; 8e 46 f6
    29872964    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     
    30052982    mov ax, word [bp-014h]                    ; 8b 46 ec
    30062983    test ax, ax                               ; 85 c0
    3007     je short 02850h                           ; 74 03
    3008     jmp near 02917h                           ; e9 c7 00
     2984    je short 02810h                           ; 74 03
     2985    jmp near 028d7h                           ; e9 c7 00
    30092986    xor bx, bx                                ; 31 db
    30102987    xor dx, dx                                ; 31 d2
     
    30152992    adc dx, word [bp-00ch]                    ; 13 56 f4
    30162993    test dx, dx                               ; 85 d2
    3017     jnbe short 02877h                         ; 77 10
    3018     jne short 028dah                          ; 75 71
     2994    jnbe short 02837h                         ; 77 10
     2995    jne short 0289ah                          ; 75 71
    30192996    test ax, ax                               ; 85 c0
    3020     jnbe short 02877h                         ; 77 0a
    3021     jne short 028dah                          ; 75 6b
     2997    jnbe short 02837h                         ; 77 0a
     2998    jne short 0289ah                          ; 75 6b
    30222999    cmp bx, 01000h                            ; 81 fb 00 10
    3023     jnbe short 02877h                         ; 77 02
    3024     jne short 028dah                          ; 75 63
     3000    jnbe short 02837h                         ; 77 02
     3001    jne short 0289ah                          ; 75 63
    30253002    mov ax, word [bp-00ch]                    ; 8b 46 f4
    30263003    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    30283005    mov dx, word [bp-024h]                    ; 8b 56 dc
    30293006    mov si, strict word 00018h                ; be 18 00
    3030     call 0a02ah                               ; e8 a1 77
     3007    call 09faah                               ; e8 61 77
    30313008    xor dh, dh                                ; 30 f6
    30323009    mov word [bp-014h], dx                    ; 89 56 ec
     
    30363013    mov dx, word [bp-024h]                    ; 8b 56 dc
    30373014    mov si, strict word 00020h                ; be 20 00
    3038     call 0a02ah                               ; e8 8a 77
     3015    call 09faah                               ; e8 4a 77
    30393016    mov bx, dx                                ; 89 d3
    30403017    mov ax, word [bp-022h]                    ; 8b 46 de
     
    30703047    mov dx, word [bp-024h]                    ; 8b 56 dc
    30713048    mov si, strict word 00008h                ; be 08 00
    3072     call 0a02ah                               ; e8 36 77
     3049    call 09faah                               ; e8 f6 76
    30733050    mov word [bp-00ch], ax                    ; 89 46 f4
    30743051    mov word [bp-00eh], bx                    ; 89 5e f2
     
    30773054    mov word [bp-018h], dx                    ; 89 56 e8
    30783055    mov si, strict word 00010h                ; be 10 00
    3079     call 0a02ah                               ; e8 21 77
     3056    call 09faah                               ; e8 e1 76
    30803057    mov word [bp-024h], dx                    ; 89 56 dc
    30813058    mov ax, dx                                ; 89 d0
     
    31103087    out DX, AL                                ; ee
    31113088    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3112     je short 02959h                           ; 74 05
     3089    je short 02919h                           ; 74 05
    31133090    mov ax, 000b0h                            ; b8 b0 00
    3114     jmp short 0295ch                          ; eb 03
     3091    jmp short 0291ch                          ; eb 03
    31153092    mov ax, 000a0h                            ; b8 a0 00
    31163093    mov dl, byte [bp-01ch]                    ; 8a 56 e4
     
    31313108    mov bl, al                                ; 88 c3
    31323109    test AL, strict byte 080h                 ; a8 80
    3133     jne short 02974h                          ; 75 f1
     3110    jne short 02934h                          ; 75 f1
    31343111    test AL, strict byte 001h                 ; a8 01
    3135     je short 02996h                           ; 74 0f
     3112    je short 02956h                           ; 74 0f
    31363113    mov dx, word [bp-01ah]                    ; 8b 56 e6
    31373114    add dx, strict byte 00006h                ; 83 c2 06
     
    31393116    out DX, AL                                ; ee
    31403117    mov ax, strict word 00002h                ; b8 02 00
    3141     jmp near 02a29h                           ; e9 93 00
     3118    jmp near 029e9h                           ; e9 93 00
    31423119    test bl, 008h                             ; f6 c3 08
    3143     jne short 029aah                          ; 75 0f
     3120    jne short 0296ah                          ; 75 0f
    31443121    mov dx, word [bp-01ah]                    ; 8b 56 e6
    31453122    add dx, strict byte 00006h                ; 83 c2 06
     
    31473124    out DX, AL                                ; ee
    31483125    mov ax, strict word 00003h                ; b8 03 00
    3149     jmp near 02a29h                           ; e9 7f 00
     3126    jmp near 029e9h                           ; e9 7f 00
    31503127    sti                                       ; fb
    31513128    mov ax, word [bp-016h]                    ; 8b 46 ea
    31523129    cmp ax, 0f800h                            ; 3d 00 f8
    3153     jc short 029c3h                           ; 72 10
     3130    jc short 02983h                           ; 72 10
    31543131    sub ax, 00800h                            ; 2d 00 08
    31553132    mov dx, word [bp-012h]                    ; 8b 56 ee
     
    31743151    mov bl, al                                ; 88 c3
    31753152    test AL, strict byte 080h                 ; a8 80
    3176     jne short 029dfh                          ; 75 f1
     3153    jne short 0299fh                          ; 75 f1
    31773154    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    3178     jne short 02a08h                          ; 75 14
     3155    jne short 029c8h                          ; 75 14
    31793156    and AL, strict byte 0e9h                  ; 24 e9
    31803157    cmp AL, strict byte 040h                  ; 3c 40
    3181     je short 02a1eh                           ; 74 24
     3158    je short 029deh                           ; 74 24
    31823159    mov dx, word [bp-01ah]                    ; 8b 56 e6
    31833160    add dx, strict byte 00006h                ; 83 c2 06
     
    31853162    out DX, AL                                ; ee
    31863163    mov ax, strict word 00006h                ; b8 06 00
    3187     jmp short 02a29h                          ; eb 21
     3164    jmp short 029e9h                          ; eb 21
    31883165    mov al, bl                                ; 88 d8
    31893166    and AL, strict byte 0c9h                  ; 24 c9
    31903167    cmp AL, strict byte 048h                  ; 3c 48
    3191     je short 029abh                           ; 74 9b
     3168    je short 0296bh                           ; 74 9b
    31923169    mov dx, word [bp-01ah]                    ; 8b 56 e6
    31933170    add dx, strict byte 00006h                ; 83 c2 06
     
    31953172    out DX, AL                                ; ee
    31963173    mov ax, strict word 00007h                ; b8 07 00
    3197     jmp short 02a29h                          ; eb 0b
     3174    jmp short 029e9h                          ; eb 0b
    31983175    mov dx, word [bp-01ah]                    ; 8b 56 e6
    31993176    add dx, strict byte 00006h                ; 83 c2 06
     
    32063183    pop bp                                    ; 5d
    32073184    retn                                      ; c3
    3208 @ata_read_sectors:                           ; 0xf2a30 LB 0xb5
     3185@ata_read_sectors:                           ; 0xf29f0 LB 0xb5
    32093186    push bp                                   ; 55
    32103187    mov bp, sp                                ; 89 e5
     
    32193196    sal dx, 009h                              ; c1 e2 09
    32203197    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3221     je short 02a71h                           ; 74 1f
     3198    je short 02a31h                           ; 74 1f
    32223199    xor ah, ah                                ; 30 e4
    32233200    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    32293206    mov ax, si                                ; 89 f0
    32303207    mov dx, es                                ; 8c c2
    3231     call 01e63h                               ; e8 f7 f3
     3208    call 01e63h                               ; e8 37 f4
    32323209    mov es, [bp-00ch]                         ; 8e 46 f4
    3233     jmp short 02ad6h                          ; eb 65
     3210    jmp short 02a96h                          ; eb 65
    32343211    xor bx, bx                                ; 31 db
    32353212    mov word [bp-00ch], bx                    ; 89 5e f4
     
    32463223    adc di, word [bp-006h]                    ; 13 7e fa
    32473224    test di, di                               ; 85 ff
    3248     jnbe short 02aadh                         ; 77 11
    3249     jne short 02ab9h                          ; 75 1b
     3225    jnbe short 02a6dh                         ; 77 11
     3226    jne short 02a79h                          ; 75 1b
    32503227    test bx, bx                               ; 85 db
    3251     jnbe short 02aadh                         ; 77 0b
    3252     jne short 02ab9h                          ; 75 15
     3228    jnbe short 02a6dh                         ; 77 0b
     3229    jne short 02a79h                          ; 75 15
    32533230    cmp word [bp-008h], 01000h                ; 81 7e f8 00 10
    3254     jnbe short 02aadh                         ; 77 02
    3255     jne short 02ab9h                          ; 75 0c
     3231    jnbe short 02a6dh                         ; 77 02
     3232    jne short 02a79h                          ; 75 0c
    32563233    mov bx, strict word 00024h                ; bb 24 00
    32573234    mov ax, si                                ; 89 f0
    32583235    mov dx, es                                ; 8c c2
    3259     call 01e63h                               ; e8 ac f3
    3260     jmp short 02adch                          ; eb 23
     3236    call 01e63h                               ; e8 ec f3
     3237    jmp short 02a9ch                          ; eb 23
    32613238    xor ah, ah                                ; 30 e4
    32623239    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    32683245    mov ax, si                                ; 89 f0
    32693246    mov dx, es                                ; 8c c2
    3270     call 01e63h                               ; e8 90 f3
     3247    call 01e63h                               ; e8 d0 f3
    32713248    mov es, [bp-006h]                         ; 8e 46 fa
    32723249    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
     
    32763253    pop bp                                    ; 5d
    32773254    retn 00004h                               ; c2 04 00
    3278 @ata_write_sectors:                          ; 0xf2ae5 LB 0x5b
     3255@ata_write_sectors:                          ; 0xf2aa5 LB 0x5b
    32793256    push bp                                   ; 55
    32803257    mov bp, sp                                ; 89 e5
     
    32853262    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
    32863263    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3287     je short 02b05h                           ; 74 0c
     3264    je short 02ac5h                           ; 74 0c
    32883265    mov bx, strict word 00030h                ; bb 30 00
    32893266    mov ax, si                                ; 89 f0
    32903267    mov dx, es                                ; 8c c2
    3291     call 027a6h                               ; e8 a3 fc
    3292     jmp short 02b37h                          ; eb 32
     3268    call 02766h                               ; e8 a3 fc
     3269    jmp short 02af7h                          ; eb 32
    32933270    xor ax, ax                                ; 31 c0
    32943271    xor bx, bx                                ; 31 db
     
    33013278    adc dx, word [es:si+006h]                 ; 26 13 54 06
    33023279    test dx, dx                               ; 85 d2
    3303     jnbe short 02b32h                         ; 77 0f
    3304     jne short 02af9h                          ; 75 d4
     3280    jnbe short 02af2h                         ; 77 0f
     3281    jne short 02ab9h                          ; 75 d4
    33053282    test bx, bx                               ; 85 db
    3306     jnbe short 02b32h                         ; 77 09
    3307     jne short 02af9h                          ; 75 ce
     3283    jnbe short 02af2h                         ; 77 09
     3284    jne short 02ab9h                          ; 75 ce
    33083285    cmp ax, 01000h                            ; 3d 00 10
    3309     jnbe short 02b32h                         ; 77 02
    3310     jne short 02af9h                          ; 75 c7
     3286    jnbe short 02af2h                         ; 77 02
     3287    jne short 02ab9h                          ; 75 c7
    33113288    mov bx, strict word 00034h                ; bb 34 00
    3312     jmp short 02afch                          ; eb c5
     3289    jmp short 02abch                          ; eb c5
    33133290    lea sp, [bp-004h]                         ; 8d 66 fc
    33143291    pop di                                    ; 5f
     
    33163293    pop bp                                    ; 5d
    33173294    retn 00004h                               ; c2 04 00
    3318 ata_cmd_packet_:                             ; 0xf2b40 LB 0x289
     3295ata_cmd_packet_:                             ; 0xf2b00 LB 0x289
    33193296    push bp                                   ; 55
    33203297    mov bp, sp                                ; 89 e5
     
    33273304    mov dx, strict word 0000eh                ; ba 0e 00
    33283305    mov ax, strict word 00040h                ; b8 40 00
    3329     call 0166ch                               ; e8 15 eb
     3306    call 0166ch                               ; e8 55 eb
    33303307    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    33313308    mov word [bp-012h], ax                    ; 89 46 ee
     
    33363313    mov byte [bp-008h], ah                    ; 88 66 f8
    33373314    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3338     jne short 02b92h                          ; 75 1f
     3315    jne short 02b52h                          ; 75 1f
    33393316    mov bx, 00da0h                            ; bb a0 0d
    33403317    mov cx, ds                                ; 8c d9
    33413318    mov ax, strict word 00004h                ; b8 04 00
    3342     call 01923h                               ; e8 a5 ed
     3319    call 01923h                               ; e8 e5 ed
    33433320    push 00221h                               ; 68 21 02
    33443321    push 00230h                               ; 68 30 02
    33453322    push strict byte 00004h                   ; 6a 04
    3346     call 01966h                               ; e8 dd ed
     3323    call 01966h                               ; e8 1d ee
    33473324    add sp, strict byte 00006h                ; 83 c4 06
    33483325    mov ax, strict word 00001h                ; b8 01 00
    3349     jmp near 02dc0h                           ; e9 2e 02
     3326    jmp near 02d80h                           ; e9 2e 02
    33503327    test byte [bp+004h], 001h                 ; f6 46 04 01
    3351     jne short 02b8ch                          ; 75 f4
     3328    jne short 02b4ch                          ; 75 f4
    33523329    xor ah, ah                                ; 30 e4
    33533330    imul ax, ax, strict byte 00006h           ; 6b c0 06
     
    33643341    mov al, byte [bp-006h]                    ; 8a 46 fa
    33653342    cmp AL, strict byte 00ch                  ; 3c 0c
    3366     jnc short 02bcah                          ; 73 06
     3343    jnc short 02b8ah                          ; 73 06
    33673344    mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
    3368     jmp short 02bd0h                          ; eb 06
    3369     jbe short 02bd0h                          ; 76 04
     3345    jmp short 02b90h                          ; eb 06
     3346    jbe short 02b90h                          ; 76 04
    33703347    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    33713348    shr byte [bp-006h], 1                     ; d0 6e fa
     
    33813358    ; sub ah, ah                                ; 2a e4
    33823359    test AL, strict byte 080h                 ; a8 80
    3383     je short 02bfeh                           ; 74 06
     3360    je short 02bbeh                           ; 74 06
    33843361    mov ax, strict word 00002h                ; b8 02 00
    3385     jmp near 02dc0h                           ; e9 c2 01
     3362    jmp near 02d80h                           ; e9 c2 01
    33863363    mov dx, word [bp-00eh]                    ; 8b 56 f2
    33873364    add dx, strict byte 00006h                ; 83 c2 06
     
    33973374    out DX, AL                                ; ee
    33983375    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3399     je short 02c24h                           ; 74 05
     3376    je short 02be4h                           ; 74 05
    34003377    mov ax, 000b0h                            ; b8 b0 00
    3401     jmp short 02c27h                          ; eb 03
     3378    jmp short 02be7h                          ; eb 03
    34023379    mov ax, 000a0h                            ; b8 a0 00
    34033380    mov dx, word [bp-00ah]                    ; 8b 56 f6
     
    34153392    mov bx, ax                                ; 89 c3
    34163393    test AL, strict byte 080h                 ; a8 80
    3417     jne short 02c37h                          ; 75 f1
     3394    jne short 02bf7h                          ; 75 f1
    34183395    test AL, strict byte 001h                 ; a8 01
    3419     je short 02c59h                           ; 74 0f
     3396    je short 02c19h                           ; 74 0f
    34203397    mov dx, word [bp-00eh]                    ; 8b 56 f2
    34213398    add dx, strict byte 00006h                ; 83 c2 06
     
    34233400    out DX, AL                                ; ee
    34243401    mov ax, strict word 00003h                ; b8 03 00
    3425     jmp near 02dc0h                           ; e9 67 01
     3402    jmp near 02d80h                           ; e9 67 01
    34263403    test AL, strict byte 008h                 ; a8 08
    3427     jne short 02c6ch                          ; 75 0f
     3404    jne short 02c2ch                          ; 75 0f
    34283405    mov dx, word [bp-00eh]                    ; 8b 56 f2
    34293406    add dx, strict byte 00006h                ; 83 c2 06
     
    34313408    out DX, AL                                ; ee
    34323409    mov ax, strict word 00004h                ; b8 04 00
    3433     jmp near 02dc0h                           ; e9 54 01
     3410    jmp near 02d80h                           ; e9 54 01
    34343411    sti                                       ; fb
    34353412    mov ax, si                                ; 89 f0
     
    34443421    ; rep es outsw                              ; f3 26 6f
    34453422    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3446     jne short 02c93h                          ; 75 09
     3423    jne short 02c53h                          ; 75 09
    34473424    add dx, strict byte 00007h                ; 83 c2 07
    34483425    in AL, DX                                 ; ec
    34493426    db  02ah, 0e4h
    34503427    ; sub ah, ah                                ; 2a e4
    3451     jmp near 02da3h                           ; e9 10 01
     3428    jmp near 02d63h                           ; e9 10 01
    34523429    mov dx, word [bp-00ah]                    ; 8b 56 f6
    34533430    add dx, strict byte 00007h                ; 83 c2 07
     
    34573434    mov bx, ax                                ; 89 c3
    34583435    test AL, strict byte 080h                 ; a8 80
    3459     jne short 02c93h                          ; 75 f1
     3436    jne short 02c53h                          ; 75 f1
    34603437    test AL, strict byte 088h                 ; a8 88
    3461     je short 02d06h                           ; 74 60
     3438    je short 02cc6h                           ; 74 60
    34623439    test AL, strict byte 001h                 ; a8 01
    3463     je short 02cb5h                           ; 74 0b
     3440    je short 02c75h                           ; 74 0b
    34643441    mov dx, word [bp-00eh]                    ; 8b 56 f2
    34653442    add dx, strict byte 00006h                ; 83 c2 06
    34663443    mov AL, strict byte 008h                  ; b0 08
    34673444    out DX, AL                                ; ee
    3468     jmp short 02c53h                          ; eb 9e
     3445    jmp short 02c13h                          ; eb 9e
    34693446    and AL, strict byte 0c9h                  ; 24 c9
    34703447    cmp AL, strict byte 048h                  ; 3c 48
    3471     je short 02cc6h                           ; 74 0b
     3448    je short 02c86h                           ; 74 0b
    34723449    mov dx, word [bp-00eh]                    ; 8b 56 f2
    34733450    add dx, strict byte 00006h                ; 83 c2 06
    34743451    mov AL, strict byte 008h                  ; b0 08
    34753452    out DX, AL                                ; ee
    3476     jmp short 02c66h                          ; eb a0
     3453    jmp short 02c26h                          ; eb a0
    34773454    mov ax, word [bp+00ch]                    ; 8b 46 0c
    34783455    shr ax, 004h                              ; c1 e8 04
     
    34983475    mov ax, word [bp+004h]                    ; 8b 46 04
    34993476    cmp bx, ax                                ; 39 c3
    3500     jnc short 02d09h                          ; 73 0c
     3477    jnc short 02cc9h                          ; 73 0c
    35013478    mov cx, bx                                ; 89 d9
    35023479    sub word [bp+004h], bx                    ; 29 5e 04
    35033480    xor bx, bx                                ; 31 db
    3504     jmp short 02d12h                          ; eb 0c
    3505     jmp near 02da3h                           ; e9 9a 00
     3481    jmp short 02cd2h                          ; eb 0c
     3482    jmp near 02d63h                           ; e9 9a 00
    35063483    mov cx, ax                                ; 89 c1
    35073484    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    35093486    xor ax, ax                                ; 31 c0
    35103487    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3511     jne short 02d30h                          ; 75 16
     3488    jne short 02cf0h                          ; 75 16
    35123489    cmp bx, word [bp+006h]                    ; 3b 5e 06
    3513     jbe short 02d30h                          ; 76 11
     3490    jbe short 02cf0h                          ; 76 11
    35143491    sub bx, word [bp+006h]                    ; 2b 5e 06
    35153492    mov word [bp-00ch], bx                    ; 89 5e f4
     
    35173494    mov word [bp+006h], ax                    ; 89 46 06
    35183495    mov word [bp+008h], ax                    ; 89 46 08
    3519     jmp short 02d39h                          ; eb 09
     3496    jmp short 02cf9h                          ; eb 09
    35203497    mov word [bp-00ch], ax                    ; 89 46 f4
    35213498    sub word [bp+006h], bx                    ; 29 5e 06
     
    35263503    test byte [bp-00ch], 003h                 ; f6 46 f4 03
    35273504    test bl, 001h                             ; f6 c3 01
    3528     je short 02d5ah                           ; 74 10
     3505    je short 02d1ah                           ; 74 10
    35293506    inc bx                                    ; 43
    35303507    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    3531     jbe short 02d5ah                          ; 76 09
     3508    jbe short 02d1ah                          ; 76 09
    35323509    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    3533     je short 02d5ah                           ; 74 03
     3510    je short 02d1ah                           ; 74 03
    35343511    dec word [bp-00ch]                        ; ff 4e f4
    35353512    shr bx, 1                                 ; d1 eb
     
    35373514    shr word [bp-00ch], 1                     ; d1 6e f4
    35383515    test cx, cx                               ; 85 c9
    3539     je short 02d6bh                           ; 74 06
     3516    je short 02d2bh                           ; 74 06
    35403517    mov dx, word [bp-00ah]                    ; 8b 56 f6
    35413518    in ax, DX                                 ; ed
    3542     loop 02d68h                               ; e2 fd
     3519    loop 02d28h                               ; e2 fd
    35433520    mov dx, word [bp-00ah]                    ; 8b 56 f6
    35443521    mov cx, bx                                ; 89 d9
     
    35473524    mov ax, word [bp-00ch]                    ; 8b 46 f4
    35483525    test ax, ax                               ; 85 c0
    3549     je short 02d81h                           ; 74 05
     3526    je short 02d41h                           ; 74 05
    35503527    mov cx, ax                                ; 89 c1
    35513528    in ax, DX                                 ; ed
    3552     loop 02d7eh                               ; e2 fd
     3529    loop 02d3eh                               ; e2 fd
    35533530    add word [bp+00ch], si                    ; 01 76 0c
    35543531    xor ax, ax                                ; 31 c0
     
    35613538    mov ax, word [bp-014h]                    ; 8b 46 ec
    35623539    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    3563     jmp near 02c93h                           ; e9 f0 fe
     3540    jmp near 02c53h                           ; e9 f0 fe
    35643541    and AL, strict byte 0e9h                  ; 24 e9
    35653542    cmp AL, strict byte 040h                  ; 3c 40
    3566     je short 02db5h                           ; 74 0c
     3543    je short 02d75h                           ; 74 0c
    35673544    mov dx, word [bp-00eh]                    ; 8b 56 f2
    35683545    add dx, strict byte 00006h                ; 83 c2 06
    35693546    mov AL, strict byte 008h                  ; b0 08
    35703547    out DX, AL                                ; ee
    3571     jmp near 02c66h                           ; e9 b1 fe
     3548    jmp near 02c26h                           ; e9 b1 fe
    35723549    mov dx, word [bp-00eh]                    ; 8b 56 f2
    35733550    add dx, strict byte 00006h                ; 83 c2 06
     
    35803557    pop bp                                    ; 5d
    35813558    retn 0000ch                               ; c2 0c 00
    3582 ata_soft_reset_:                             ; 0xf2dc9 LB 0x80
     3559ata_soft_reset_:                             ; 0xf2d89 LB 0x80
    35833560    push bp                                   ; 55
    35843561    mov bp, sp                                ; 89 e5
     
    35903567    mov dx, strict word 0000eh                ; ba 0e 00
    35913568    mov ax, strict word 00040h                ; b8 40 00
    3592     call 0166ch                               ; e8 91 e8
     3569    call 0166ch                               ; e8 d1 e8
    35933570    mov dx, bx                                ; 89 da
    35943571    shr dx, 1                                 ; d1 ea
     
    36053582    out DX, AL                                ; ee
    36063583    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3607     je short 02e0bh                           ; 74 05
     3584    je short 02dcbh                           ; 74 05
    36083585    mov ax, 000b0h                            ; b8 b0 00
    3609     jmp short 02e0eh                          ; eb 03
     3586    jmp short 02dceh                          ; eb 03
    36103587    mov ax, 000a0h                            ; b8 a0 00
    36113588    mov dx, cx                                ; 89 ca
     
    36223599    ; sub ah, ah                                ; 2a e4
    36233600    test AL, strict byte 080h                 ; a8 80
    3624     jne short 02e1ch                          ; 75 f4
     3601    jne short 02ddch                          ; 75 f4
    36253602    and AL, strict byte 0e9h                  ; 24 e9
    36263603    cmp AL, strict byte 040h                  ; 3c 40
    3627     je short 02e39h                           ; 74 0b
     3604    je short 02df9h                           ; 74 0b
    36283605    lea dx, [bx+006h]                         ; 8d 57 06
    36293606    mov AL, strict byte 008h                  ; b0 08
    36303607    out DX, AL                                ; ee
    36313608    mov ax, strict word 00001h                ; b8 01 00
    3632     jmp short 02e41h                          ; eb 08
     3609    jmp short 02e01h                          ; eb 08
    36333610    lea dx, [bx+006h]                         ; 8d 57 06
    36343611    mov AL, strict byte 008h                  ; b0 08
     
    36413618    pop bp                                    ; 5d
    36423619    retn                                      ; c3
    3643 set_diskette_ret_status_:                    ; 0xf2e49 LB 0x19
     3620set_diskette_ret_status_:                    ; 0xf2e09 LB 0x19
    36443621    push bp                                   ; 55
    36453622    mov bp, sp                                ; 89 e5
     
    36503627    mov dx, strict word 00041h                ; ba 41 00
    36513628    mov ax, strict word 00040h                ; b8 40 00
    3652     call 0165eh                               ; e8 03 e8
     3629    call 0165eh                               ; e8 43 e8
    36533630    lea sp, [bp-004h]                         ; 8d 66 fc
    36543631    pop dx                                    ; 5a
     
    36563633    pop bp                                    ; 5d
    36573634    retn                                      ; c3
    3658 set_diskette_current_cyl_:                   ; 0xf2e62 LB 0x30
     3635set_diskette_current_cyl_:                   ; 0xf2e22 LB 0x30
    36593636    push bp                                   ; 55
    36603637    mov bp, sp                                ; 89 e5
     
    36623639    mov bl, al                                ; 88 c3
    36633640    cmp AL, strict byte 001h                  ; 3c 01
    3664     jbe short 02e77h                          ; 76 0b
     3641    jbe short 02e37h                          ; 76 0b
    36653642    push 00250h                               ; 68 50 02
    36663643    push strict byte 00007h                   ; 6a 07
    3667     call 01966h                               ; e8 f2 ea
     3644    call 01966h                               ; e8 32 eb
    36683645    add sp, strict byte 00004h                ; 83 c4 04
    36693646    mov al, dl                                ; 88 d0
     
    36753652    mov dx, ax                                ; 89 c2
    36763653    mov ax, strict word 00040h                ; b8 40 00
    3677     call 0165eh                               ; e8 d2 e7
     3654    call 0165eh                               ; e8 12 e8
    36783655    lea sp, [bp-002h]                         ; 8d 66 fe
    36793656    pop bx                                    ; 5b
    36803657    pop bp                                    ; 5d
    36813658    retn                                      ; c3
    3682 floppy_wait_for_interrupt_:                  ; 0xf2e92 LB 0x21
     3659floppy_wait_for_interrupt_:                  ; 0xf2e52 LB 0x21
    36833660    push bp                                   ; 55
    36843661    mov bp, sp                                ; 89 e5
     
    36873664    mov dx, strict word 0003eh                ; ba 3e 00
    36883665    mov ax, strict word 00040h                ; b8 40 00
    3689     call 01650h                               ; e8 b0 e7
     3666    call 01650h                               ; e8 f0 e7
    36903667    test AL, strict byte 080h                 ; a8 80
    3691     je short 02ea8h                           ; 74 04
     3668    je short 02e68h                           ; 74 04
    36923669    and AL, strict byte 080h                  ; 24 80
    3693     jmp short 02eadh                          ; eb 05
     3670    jmp short 02e6dh                          ; eb 05
    36943671    sti                                       ; fb
    36953672    hlt                                       ; f4
    36963673    cli                                       ; fa
    3697     jmp short 02e97h                          ; eb ea
     3674    jmp short 02e57h                          ; eb ea
    36983675    lea sp, [bp-002h]                         ; 8d 66 fe
    36993676    pop dx                                    ; 5a
    37003677    pop bp                                    ; 5d
    37013678    retn                                      ; c3
    3702 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2eb3 LB 0x47
     3679floppy_wait_for_interrupt_or_timeout_:       ; 0xf2e73 LB 0x47
    37033680    push bp                                   ; 55
    37043681    mov bp, sp                                ; 89 e5
     
    37093686    mov dx, strict word 00040h                ; ba 40 00
    37103687    mov ax, dx                                ; 89 d0
    3711     call 01650h                               ; e8 8e e7
     3688    call 01650h                               ; e8 ce e7
    37123689    test al, al                               ; 84 c0
    3713     jne short 02ecbh                          ; 75 05
     3690    jne short 02e8bh                          ; 75 05
    37143691    sti                                       ; fb
    37153692    xor cl, cl                                ; 30 c9
    3716     jmp short 02ef0h                          ; eb 25
     3693    jmp short 02eb0h                          ; eb 25
    37173694    mov dx, strict word 0003eh                ; ba 3e 00
    37183695    mov ax, strict word 00040h                ; b8 40 00
    3719     call 01650h                               ; e8 7c e7
     3696    call 01650h                               ; e8 bc e7
    37203697    mov cl, al                                ; 88 c1
    37213698    test AL, strict byte 080h                 ; a8 80
    3722     je short 02eebh                           ; 74 11
     3699    je short 02eabh                           ; 74 11
    37233700    and AL, strict byte 07fh                  ; 24 7f
    37243701    xor ah, ah                                ; 30 e4
     
    37263703    mov dx, strict word 0003eh                ; ba 3e 00
    37273704    mov ax, strict word 00040h                ; b8 40 00
    3728     call 0165eh                               ; e8 75 e7
    3729     jmp short 02ef0h                          ; eb 05
     3705    call 0165eh                               ; e8 b5 e7
     3706    jmp short 02eb0h                          ; eb 05
    37303707    sti                                       ; fb
    37313708    hlt                                       ; f4
    37323709    cli                                       ; fa
    3733     jmp short 02ebah                          ; eb ca
     3710    jmp short 02e7ah                          ; eb ca
    37343711    mov al, cl                                ; 88 c8
    37353712    lea sp, [bp-006h]                         ; 8d 66 fa
     
    37393716    pop bp                                    ; 5d
    37403717    retn                                      ; c3
    3741 floppy_reset_controller_:                    ; 0xf2efa LB 0x28
     3718floppy_reset_controller_:                    ; 0xf2eba LB 0x28
    37423719    push bp                                   ; 55
    37433720    mov bp, sp                                ; 89 e5
     
    37603737    and AL, strict byte 0c0h                  ; 24 c0
    37613738    cmp AL, strict byte 080h                  ; 3c 80
    3762     jne short 02f0fh                          ; 75 f4
     3739    jne short 02ecfh                          ; 75 f4
    37633740    lea sp, [bp-004h]                         ; 8d 66 fc
    37643741    pop dx                                    ; 5a
     
    37663743    pop bp                                    ; 5d
    37673744    retn                                      ; c3
    3768 floppy_prepare_controller_:                  ; 0xf2f22 LB 0x83
     3745floppy_prepare_controller_:                  ; 0xf2ee2 LB 0x83
    37693746    push bp                                   ; 55
    37703747    mov bp, sp                                ; 89 e5
     
    37763753    mov dx, strict word 0003eh                ; ba 3e 00
    37773754    mov ax, strict word 00040h                ; b8 40 00
    3778     call 01650h                               ; e8 1c e7
     3755    call 01650h                               ; e8 5c e7
    37793756    and AL, strict byte 07fh                  ; 24 7f
    37803757    xor ah, ah                                ; 30 e4
     
    37823759    mov dx, strict word 0003eh                ; ba 3e 00
    37833760    mov ax, strict word 00040h                ; b8 40 00
    3784     call 0165eh                               ; e8 1b e7
     3761    call 0165eh                               ; e8 5b e7
    37853762    mov dx, 003f2h                            ; ba f2 03
    37863763    in AL, DX                                 ; ec
     
    37903767    mov byte [bp-008h], al                    ; 88 46 f8
    37913768    test cx, cx                               ; 85 c9
    3792     je short 02f56h                           ; 74 04
     3769    je short 02f16h                           ; 74 04
    37933770    mov AL, strict byte 020h                  ; b0 20
    3794     jmp short 02f58h                          ; eb 02
     3771    jmp short 02f18h                          ; eb 02
    37953772    mov AL, strict byte 010h                  ; b0 10
    37963773    or AL, strict byte 00ch                   ; 0c 0c
     
    38013778    mov dx, strict word 00040h                ; ba 40 00
    38023779    mov ax, dx                                ; 89 d0
    3803     call 0165eh                               ; e8 f3 e6
     3780    call 0165eh                               ; e8 33 e7
    38043781    mov dx, 0008bh                            ; ba 8b 00
    38053782    mov ax, strict word 00040h                ; b8 40 00
    3806     call 01650h                               ; e8 dc e6
     3783    call 01650h                               ; e8 1c e7
    38073784    shr al, 006h                              ; c0 e8 06
    38083785    mov dx, 003f7h                            ; ba f7 03
     
    38143791    and AL, strict byte 0c0h                  ; 24 c0
    38153792    cmp AL, strict byte 080h                  ; 3c 80
    3816     jne short 02f7bh                          ; 75 f4
     3793    jne short 02f3bh                          ; 75 f4
    38173794    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3818     jne short 02f9dh                          ; 75 10
    3819     call 02e92h                               ; e8 02 ff
     3795    jne short 02f5dh                          ; 75 10
     3796    call 02e52h                               ; e8 02 ff
    38203797    mov bl, al                                ; 88 c3
    38213798    xor bh, bh                                ; 30 ff
    38223799    mov dx, strict word 0003eh                ; ba 3e 00
    38233800    mov ax, strict word 00040h                ; b8 40 00
    3824     call 0165eh                               ; e8 c1 e6
     3801    call 0165eh                               ; e8 01 e7
    38253802    lea sp, [bp-006h]                         ; 8d 66 fa
    38263803    pop dx                                    ; 5a
     
    38293806    pop bp                                    ; 5d
    38303807    retn                                      ; c3
    3831 floppy_media_known_:                         ; 0xf2fa5 LB 0x43
     3808floppy_media_known_:                         ; 0xf2f65 LB 0x43
    38323809    push bp                                   ; 55
    38333810    mov bp, sp                                ; 89 e5
     
    38373814    mov dx, strict word 0003eh                ; ba 3e 00
    38383815    mov ax, strict word 00040h                ; b8 40 00
    3839     call 01650h                               ; e8 9b e6
     3816    call 01650h                               ; e8 db e6
    38403817    mov ah, al                                ; 88 c4
    38413818    test bx, bx                               ; 85 db
    3842     je short 02fbdh                           ; 74 02
     3819    je short 02f7dh                           ; 74 02
    38433820    shr al, 1                                 ; d0 e8
    38443821    and AL, strict byte 001h                  ; 24 01
    3845     jne short 02fc5h                          ; 75 04
    3846     xor ah, ah                                ; 30 e4
    3847     jmp short 02fe1h                          ; eb 1c
     3822    jne short 02f85h                          ; 75 04
     3823    xor ah, ah                                ; 30 e4
     3824    jmp short 02fa1h                          ; eb 1c
    38483825    mov dx, 00090h                            ; ba 90 00
    38493826    test bx, bx                               ; 85 db
    3850     je short 02fcfh                           ; 74 03
     3827    je short 02f8fh                           ; 74 03
    38513828    mov dx, 00091h                            ; ba 91 00
    38523829    mov ax, strict word 00040h                ; b8 40 00
    3853     call 01650h                               ; e8 7b e6
     3830    call 01650h                               ; e8 bb e6
    38543831    xor ah, ah                                ; 30 e4
    38553832    sar ax, 004h                              ; c1 f8 04
    38563833    and AL, strict byte 001h                  ; 24 01
    3857     je short 02fc1h                           ; 74 e3
     3834    je short 02f81h                           ; 74 e3
    38583835    mov ax, strict word 00001h                ; b8 01 00
    38593836    lea sp, [bp-004h]                         ; 8d 66 fc
     
    38623839    pop bp                                    ; 5d
    38633840    retn                                      ; c3
    3864 floppy_read_id_:                             ; 0xf2fe8 LB 0x44
     3841floppy_read_id_:                             ; 0xf2fa8 LB 0x44
    38653842    push bp                                   ; 55
    38663843    mov bp, sp                                ; 89 e5
     
    38703847    sub sp, strict byte 00008h                ; 83 ec 08
    38713848    mov bx, ax                                ; 89 c3
    3872     call 02f22h                               ; e8 2c ff
     3849    call 02ee2h                               ; e8 2c ff
    38733850    mov AL, strict byte 04ah                  ; b0 4a
    38743851    mov dx, 003f5h                            ; ba f5 03
     
    38763853    mov al, bl                                ; 88 d8
    38773854    out DX, AL                                ; ee
    3878     call 02e92h                               ; e8 90 fe
     3855    call 02e52h                               ; e8 90 fe
    38793856    xor si, si                                ; 31 f6
    3880     jmp short 0300bh                          ; eb 05
     3857    jmp short 02fcbh                          ; eb 05
    38813858    cmp si, strict byte 00007h                ; 83 fe 07
    3882     jnl short 03017h                          ; 7d 0c
     3859    jnl short 02fd7h                          ; 7d 0c
    38833860    mov dx, 003f5h                            ; ba f5 03
    38843861    in AL, DX                                 ; ec
     
    38873864    mov byte [bp+si-00eh], al                 ; 88 42 f2
    38883865    inc si                                    ; 46
    3889     jmp short 03006h                          ; eb ef
     3866    jmp short 02fc6h                          ; eb ef
    38903867    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    3891     je short 03021h                           ; 74 04
     3868    je short 02fe1h                           ; 74 04
    38923869    xor ax, ax                                ; 31 c0
    3893     jmp short 03024h                          ; eb 03
     3870    jmp short 02fe4h                          ; eb 03
    38943871    mov ax, strict word 00001h                ; b8 01 00
    38953872    lea sp, [bp-006h]                         ; 8d 66 fa
     
    38993876    pop bp                                    ; 5d
    39003877    retn                                      ; c3
    3901 floppy_drive_recal_:                         ; 0xf302c LB 0x4d
     3878floppy_drive_recal_:                         ; 0xf2fec LB 0x4d
    39023879    push bp                                   ; 55
    39033880    mov bp, sp                                ; 89 e5
     
    39063883    push dx                                   ; 52
    39073884    mov bx, ax                                ; 89 c3
    3908     call 02f22h                               ; e8 eb fe
     3885    call 02ee2h                               ; e8 eb fe
    39093886    mov AL, strict byte 007h                  ; b0 07
    39103887    mov dx, 003f5h                            ; ba f5 03
     
    39123889    mov al, bl                                ; 88 d8
    39133890    out DX, AL                                ; ee
    3914     call 02e92h                               ; e8 4f fe
     3891    call 02e52h                               ; e8 4f fe
    39153892    test bx, bx                               ; 85 db
    3916     je short 03051h                           ; 74 0a
     3893    je short 03011h                           ; 74 0a
    39173894    mov bl, al                                ; 88 c3
    39183895    or bl, 002h                               ; 80 cb 02
    39193896    mov cx, 00095h                            ; b9 95 00
    3920     jmp short 03059h                          ; eb 08
     3897    jmp short 03019h                          ; eb 08
    39213898    mov bl, al                                ; 88 c3
    39223899    or bl, 001h                               ; 80 cb 01
     
    39253902    mov dx, strict word 0003eh                ; ba 3e 00
    39263903    mov ax, strict word 00040h                ; b8 40 00
    3927     call 0165eh                               ; e8 fa e5
     3904    call 0165eh                               ; e8 3a e6
    39283905    xor bx, bx                                ; 31 db
    39293906    mov dx, cx                                ; 89 ca
    39303907    mov ax, strict word 00040h                ; b8 40 00
    3931     call 0165eh                               ; e8 f0 e5
     3908    call 0165eh                               ; e8 30 e6
    39323909    mov ax, strict word 00001h                ; b8 01 00
    39333910    lea sp, [bp-006h]                         ; 8d 66 fa
     
    39373914    pop bp                                    ; 5d
    39383915    retn                                      ; c3
    3939 floppy_media_sense_:                         ; 0xf3079 LB 0xf9
     3916floppy_media_sense_:                         ; 0xf3039 LB 0xf9
    39403917    push bp                                   ; 55
    39413918    mov bp, sp                                ; 89 e5
     
    39463923    push di                                   ; 57
    39473924    mov di, ax                                ; 89 c7
    3948     call 0302ch                               ; e8 a6 ff
     3925    call 02fech                               ; e8 a6 ff
    39493926    test ax, ax                               ; 85 c0
    3950     jne short 0308fh                          ; 75 05
     3927    jne short 0304fh                          ; 75 05
    39513928    xor cx, cx                                ; 31 c9
    3952     jmp near 03166h                           ; e9 d7 00
     3929    jmp near 03126h                           ; e9 d7 00
    39533930    mov ax, strict word 00010h                ; b8 10 00
    3954     call 016ach                               ; e8 17 e6
     3931    call 016ach                               ; e8 57 e6
    39553932    test di, di                               ; 85 ff
    3956     jne short 030a0h                          ; 75 07
     3933    jne short 03060h                          ; 75 07
    39573934    mov cl, al                                ; 88 c1
    39583935    shr cl, 004h                              ; c0 e9 04
    3959     jmp short 030a5h                          ; eb 05
     3936    jmp short 03065h                          ; eb 05
    39603937    mov cl, al                                ; 88 c1
    39613938    and cl, 00fh                              ; 80 e1 0f
    39623939    cmp cl, 001h                              ; 80 f9 01
    3963     jne short 030b3h                          ; 75 09
     3940    jne short 03073h                          ; 75 09
    39643941    xor cl, cl                                ; 30 c9
    39653942    mov CH, strict byte 015h                  ; b5 15
    39663943    mov si, strict word 00001h                ; be 01 00
    3967     jmp short 030f1h                          ; eb 3e
     3944    jmp short 030b1h                          ; eb 3e
    39683945    cmp cl, 002h                              ; 80 f9 02
    3969     jne short 030beh                          ; 75 06
     3946    jne short 0307eh                          ; 75 06
    39703947    xor cl, cl                                ; 30 c9
    39713948    mov CH, strict byte 035h                  ; b5 35
    3972     jmp short 030aeh                          ; eb f0
     3949    jmp short 0306eh                          ; eb f0
    39733950    cmp cl, 003h                              ; 80 f9 03
    3974     jne short 030c9h                          ; 75 06
     3951    jne short 03089h                          ; 75 06
    39753952    xor cl, cl                                ; 30 c9
    39763953    mov CH, strict byte 017h                  ; b5 17
    3977     jmp short 030aeh                          ; eb e5
     3954    jmp short 0306eh                          ; eb e5
    39783955    cmp cl, 004h                              ; 80 f9 04
    3979     jne short 030d4h                          ; 75 06
     3956    jne short 03094h                          ; 75 06
    39803957    xor cl, cl                                ; 30 c9
    39813958    mov CH, strict byte 017h                  ; b5 17
    3982     jmp short 030aeh                          ; eb da
     3959    jmp short 0306eh                          ; eb da
    39833960    cmp cl, 005h                              ; 80 f9 05
    3984     jne short 030dfh                          ; 75 06
     3961    jne short 0309fh                          ; 75 06
    39853962    mov CL, strict byte 0cch                  ; b1 cc
    39863963    mov CH, strict byte 0d7h                  ; b5 d7
    3987     jmp short 030aeh                          ; eb cf
     3964    jmp short 0306eh                          ; eb cf
    39883965    cmp cl, 00eh                              ; 80 f9 0e
    3989     je short 030e9h                           ; 74 05
     3966    je short 030a9h                           ; 74 05
    39903967    cmp cl, 00fh                              ; 80 f9 0f
    3991     jne short 030ebh                          ; 75 02
    3992     jmp short 030d9h                          ; eb ee
     3968    jne short 030abh                          ; 75 02
     3969    jmp short 03099h                          ; eb ee
    39933970    xor cl, cl                                ; 30 c9
    39943971    xor ch, ch                                ; 30 ed
     
    39993976    mov dx, 0008bh                            ; ba 8b 00
    40003977    mov ax, strict word 00040h                ; b8 40 00
    4001     call 0165eh                               ; e8 5e e5
     3978    call 0165eh                               ; e8 9e e5
    40023979    mov ax, di                                ; 89 f8
    4003     call 02fe8h                               ; e8 e3 fe
     3980    call 02fa8h                               ; e8 e3 fe
    40043981    test ax, ax                               ; 85 c0
    4005     jne short 0313bh                          ; 75 32
     3982    jne short 030fbh                          ; 75 32
    40063983    mov al, cl                                ; 88 c8
    40073984    and AL, strict byte 0c0h                  ; 24 c0
    40083985    cmp AL, strict byte 080h                  ; 3c 80
    4009     je short 0313bh                           ; 74 2a
     3986    je short 030fbh                           ; 74 2a
    40103987    mov al, cl                                ; 88 c8
    40113988    and AL, strict byte 0c0h                  ; 24 c0
    40123989    cmp AL, strict byte 0c0h                  ; 3c c0
    4013     je short 03128h                           ; 74 0f
     3990    je short 030e8h                           ; 74 0f
    40143991    mov ah, cl                                ; 88 cc
    40153992    and ah, 03fh                              ; 80 e4 3f
    40163993    cmp AL, strict byte 040h                  ; 3c 40
    4017     je short 03134h                           ; 74 12
     3994    je short 030f4h                           ; 74 12
    40183995    test al, al                               ; 84 c0
    4019     je short 0312dh                           ; 74 07
    4020     jmp short 030f1h                          ; eb c9
     3996    je short 030edh                           ; 74 07
     3997    jmp short 030b1h                          ; eb c9
    40213998    and cl, 03fh                              ; 80 e1 3f
    4022     jmp short 030f1h                          ; eb c4
     3999    jmp short 030b1h                          ; eb c4
    40234000    mov cl, ah                                ; 88 e1
    40244001    or cl, 040h                               ; 80 c9 40
    4025     jmp short 030f1h                          ; eb bd
     4002    jmp short 030b1h                          ; eb bd
    40264003    mov cl, ah                                ; 88 e1
    40274004    or cl, 080h                               ; 80 c9 80
    4028     jmp short 030f1h                          ; eb b6
     4005    jmp short 030b1h                          ; eb b6
    40294006    test di, di                               ; 85 ff
    4030     jne short 03144h                          ; 75 05
     4007    jne short 03104h                          ; 75 05
    40314008    mov di, 00090h                            ; bf 90 00
    4032     jmp short 03147h                          ; eb 03
     4009    jmp short 03107h                          ; eb 03
    40334010    mov di, 00091h                            ; bf 91 00
    40344011    mov al, cl                                ; 88 c8
     
    40374014    mov dx, 0008bh                            ; ba 8b 00
    40384015    mov ax, strict word 00040h                ; b8 40 00
    4039     call 0165eh                               ; e8 08 e5
     4016    call 0165eh                               ; e8 48 e5
    40404017    mov al, ch                                ; 88 e8
    40414018    xor ah, ah                                ; 30 e4
     
    40434020    mov dx, di                                ; 89 fa
    40444021    mov ax, strict word 00040h                ; b8 40 00
    4045     call 0165eh                               ; e8 fa e4
     4022    call 0165eh                               ; e8 3a e5
    40464023    mov cx, si                                ; 89 f1
    40474024    mov ax, cx                                ; 89 c8
     
    40544031    pop bp                                    ; 5d
    40554032    retn                                      ; c3
    4056 floppy_drive_exists_:                        ; 0xf3172 LB 0x28
     4033floppy_drive_exists_:                        ; 0xf3132 LB 0x28
    40574034    push bp                                   ; 55
    40584035    mov bp, sp                                ; 89 e5
     
    40604037    mov dx, ax                                ; 89 c2
    40614038    mov ax, strict word 00010h                ; b8 10 00
    4062     call 016ach                               ; e8 2e e5
     4039    call 016ach                               ; e8 6e e5
    40634040    test dx, dx                               ; 85 d2
    4064     jne short 03187h                          ; 75 05
     4041    jne short 03147h                          ; 75 05
    40654042    shr al, 004h                              ; c0 e8 04
    4066     jmp short 03189h                          ; eb 02
     4043    jmp short 03149h                          ; eb 02
    40674044    and AL, strict byte 00fh                  ; 24 0f
    40684045    test al, al                               ; 84 c0
    4069     je short 03192h                           ; 74 05
     4046    je short 03152h                           ; 74 05
    40704047    mov ax, strict word 00001h                ; b8 01 00
    4071     jmp short 03194h                          ; eb 02
     4048    jmp short 03154h                          ; eb 02
    40724049    xor ah, ah                                ; 30 e4
    40734050    lea sp, [bp-002h]                         ; 8d 66 fe
     
    40754052    pop bp                                    ; 5d
    40764053    retn                                      ; c3
    4077 _int13_diskette_function:                    ; 0xf319a LB 0x93e
     4054_int13_diskette_function:                    ; 0xf315a LB 0x93e
    40784055    push bp                                   ; 55
    40794056    mov bp, sp                                ; 89 e5
     
    40934070    mov word [bp-010h], dx                    ; 89 56 f0
    40944071    cmp bl, 008h                              ; 80 fb 08
    4095     jc short 031f7h                           ; 72 2e
     4072    jc short 031b7h                           ; 72 2e
    40964073    mov dx, word [bp+01ch]                    ; 8b 56 1c
    40974074    or dl, 001h                               ; 80 ca 01
    40984075    cmp bl, 008h                              ; 80 fb 08
    4099     jbe short 0322dh                          ; 76 59
     4076    jbe short 031edh                          ; 76 59
    41004077    cmp bl, 016h                              ; 80 fb 16
    4101     jc short 031efh                           ; 72 16
     4078    jc short 031afh                           ; 72 16
    41024079    or si, 00100h                             ; 81 ce 00 01
    41034080    cmp bl, 016h                              ; 80 fb 16
    4104     jbe short 03230h                          ; 76 4e
     4081    jbe short 031f0h                          ; 76 4e
    41054082    cmp bl, 018h                              ; 80 fb 18
    4106     je short 03233h                           ; 74 4c
     4083    je short 031f3h                           ; 74 4c
    41074084    cmp bl, 017h                              ; 80 fb 17
    4108     je short 03249h                           ; 74 5d
    4109     jmp near 03ab5h                           ; e9 c6 08
     4085    je short 03209h                           ; 74 5d
     4086    jmp near 03a75h                           ; e9 c6 08
    41104087    cmp bl, 015h                              ; 80 fb 15
    4111     je short 0324ch                           ; 74 58
    4112     jmp near 03ab5h                           ; e9 be 08
     4088    je short 0320ch                           ; 74 58
     4089    jmp near 03a75h                           ; e9 be 08
    41134090    cmp bl, 001h                              ; 80 fb 01
    4114     jc short 0320bh                           ; 72 0f
    4115     jbe short 0324fh                          ; 76 51
     4091    jc short 031cbh                           ; 72 0f
     4092    jbe short 0320fh                          ; 76 51
    41164093    cmp bl, 005h                              ; 80 fb 05
    4117     je short 0326ah                           ; 74 67
     4094    je short 0322ah                           ; 74 67
    41184095    cmp bl, 004h                              ; 80 fb 04
    4119     jbe short 0326dh                          ; 76 65
    4120     jmp near 03ab5h                           ; e9 aa 08
     4096    jbe short 0322dh                          ; 76 65
     4097    jmp near 03a75h                           ; e9 aa 08
    41214098    test bl, bl                               ; 84 db
    4122     jne short 0326fh                          ; 75 60
     4099    jne short 0322fh                          ; 75 60
    41234100    mov al, byte [bp+00eh]                    ; 8a 46 0e
    41244101    mov byte [bp-006h], al                    ; 88 46 fa
    41254102    cmp AL, strict byte 001h                  ; 3c 01
    4126     jbe short 03236h                          ; 76 1d
     4103    jbe short 031f6h                          ; 76 1d
    41274104    mov ax, word [bp+016h]                    ; 8b 46 16
    41284105    xor ah, ah                                ; 30 e4
     
    41304107    mov word [bp+016h], ax                    ; 89 46 16
    41314108    mov ax, strict word 00001h                ; b8 01 00
    4132     call 02e49h                               ; e8 1f fc
    4133     jmp near 035d9h                           ; e9 ac 03
    4134     jmp near 03797h                           ; e9 67 05
    4135     jmp near 038cbh                           ; e9 98 06
    4136     jmp near 03964h                           ; e9 2e 07
     4109    call 02e09h                               ; e8 1f fc
     4110    jmp near 03599h                           ; e9 ac 03
     4111    jmp near 03757h                           ; e9 67 05
     4112    jmp near 0388bh                           ; e9 98 06
     4113    jmp near 03924h                           ; e9 2e 07
    41374114    mov ax, strict word 00010h                ; b8 10 00
    4138     call 016ach                               ; e8 70 e4
     4115    call 016ach                               ; e8 b0 e4
    41394116    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4140     jne short 03251h                          ; 75 0f
     4117    jne short 03211h                          ; 75 0f
    41414118    mov cl, al                                ; 88 c1
    41424119    shr cl, 004h                              ; c0 e9 04
    4143     jmp short 03256h                          ; eb 0d
    4144     jmp near 038efh                           ; e9 a3 06
    4145     jmp near 03887h                           ; e9 38 06
    4146     jmp short 03298h                          ; eb 47
     4120    jmp short 03216h                          ; eb 0d
     4121    jmp near 038afh                           ; e9 a3 06
     4122    jmp near 03847h                           ; e9 38 06
     4123    jmp short 03258h                          ; eb 47
    41474124    mov cl, al                                ; 88 c1
    41484125    and cl, 00fh                              ; 80 e1 0f
    41494126    test cl, cl                               ; 84 c9
    4150     jne short 03272h                          ; 75 18
     4127    jne short 03232h                          ; 75 18
    41514128    mov ax, word [bp+016h]                    ; 8b 46 16
    41524129    xor ah, ah                                ; 30 e4
     
    41544131    mov word [bp+016h], ax                    ; 89 46 16
    41554132    mov ax, 00080h                            ; b8 80 00
    4156     jmp short 03227h                          ; eb bd
    4157     jmp near 03603h                           ; e9 96 03
    4158     jmp short 032b7h                          ; eb 48
    4159     jmp near 03ab5h                           ; e9 43 08
     4133    jmp short 031e7h                          ; eb bd
     4134    jmp near 035c3h                           ; e9 96 03
     4135    jmp short 03277h                          ; eb 48
     4136    jmp near 03a75h                           ; e9 43 08
    41604137    xor bx, bx                                ; 31 db
    41614138    mov dx, strict word 0003eh                ; ba 3e 00
    41624139    mov ax, strict word 00040h                ; b8 40 00
    4163     call 0165eh                               ; e8 e1 e3
     4140    call 0165eh                               ; e8 21 e4
    41644141    xor al, al                                ; 30 c0
    41654142    mov byte [bp+017h], al                    ; 88 46 17
    41664143    xor ah, ah                                ; 30 e4
    4167     call 02e49h                               ; e8 c2 fb
     4144    call 02e09h                               ; e8 c2 fb
    41684145    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    41694146    mov al, byte [bp-006h]                    ; 8a 46 fa
    41704147    xor ah, ah                                ; 30 e4
    41714148    xor dx, dx                                ; 31 d2
    4172     call 02e62h                               ; e8 cd fb
    4173     jmp near 035fch                           ; e9 64 03
     4149    call 02e22h                               ; e8 cd fb
     4150    jmp near 035bch                           ; e9 64 03
    41744151    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    41754152    mov dx, 00441h                            ; ba 41 04
    41764153    xor ax, ax                                ; 31 c0
    4177     call 01650h                               ; e8 ac e3
     4154    call 01650h                               ; e8 ec e3
    41784155    mov dl, al                                ; 88 c2
    41794156    xor dh, dh                                ; 30 f6
     
    41824159    mov word [bp+016h], si                    ; 89 76 16
    41834160    test al, al                               ; 84 c0
    4184     je short 0330ah                           ; 74 56
    4185     jmp near 035d9h                           ; e9 22 03
     4161    je short 032cah                           ; 74 56
     4162    jmp near 03599h                           ; e9 22 03
    41864163    mov ch, cl                                ; 88 cd
    41874164    mov dl, byte [bp-010h]                    ; 8a 56 f0
     
    41934170    mov byte [bp-006h], al                    ; 88 46 fa
    41944171    cmp AL, strict byte 001h                  ; 3c 01
    4195     jnbe short 032e0h                         ; 77 0e
     4172    jnbe short 032a0h                         ; 77 0e
    41964173    cmp dl, 001h                              ; 80 fa 01
    4197     jnbe short 032e0h                         ; 77 09
     4174    jnbe short 032a0h                         ; 77 09
    41984175    test cl, cl                               ; 84 c9
    4199     je short 032e0h                           ; 74 05
     4176    je short 032a0h                           ; 74 05
    42004177    cmp cl, 048h                              ; 80 f9 48
    4201     jbe short 0330dh                          ; 76 2d
     4178    jbe short 032cdh                          ; 76 2d
    42024179    mov bx, 00da0h                            ; bb a0 0d
    42034180    mov cx, ds                                ; 8c d9
    42044181    mov ax, strict word 00004h                ; b8 04 00
    4205     call 01923h                               ; e8 38 e6
     4182    call 01923h                               ; e8 78 e6
    42064183    push 00275h                               ; 68 75 02
    42074184    push 0028dh                               ; 68 8d 02
    42084185    push strict byte 00004h                   ; 6a 04
    4209     call 01966h                               ; e8 70 e6
     4186    call 01966h                               ; e8 b0 e6
    42104187    add sp, strict byte 00006h                ; 83 c4 06
    42114188    mov ax, word [bp+016h]                    ; 8b 46 16
     
    42144191    mov word [bp+016h], ax                    ; 89 46 16
    42154192    mov ax, strict word 00001h                ; b8 01 00
    4216     jmp near 0338eh                           ; e9 84 00
    4217     jmp near 035fch                           ; e9 ef 02
     4193    jmp near 0334eh                           ; e9 84 00
     4194    jmp near 035bch                           ; e9 ef 02
    42184195    mov al, byte [bp-006h]                    ; 8a 46 fa
    42194196    xor ah, ah                                ; 30 e4
    4220     call 03172h                               ; e8 5d fe
     4197    call 03132h                               ; e8 5d fe
    42214198    test ax, ax                               ; 85 c0
    4222     je short 03347h                           ; 74 2e
     4199    je short 03307h                           ; 74 2e
    42234200    mov dl, byte [bp-006h]                    ; 8a 56 fa
    42244201    xor dh, dh                                ; 30 f6
    42254202    mov ax, dx                                ; 89 d0
    4226     call 02fa5h                               ; e8 82 fc
     4203    call 02f65h                               ; e8 82 fc
    42274204    test ax, ax                               ; 85 c0
    4228     jne short 0334ah                          ; 75 23
     4205    jne short 0330ah                          ; 75 23
    42294206    mov ax, dx                                ; 89 d0
    4230     call 03079h                               ; e8 4d fd
     4207    call 03039h                               ; e8 4d fd
    42314208    test ax, ax                               ; 85 c0
    4232     jne short 0334ah                          ; 75 1a
     4209    jne short 0330ah                          ; 75 1a
    42334210    mov ax, word [bp+016h]                    ; 8b 46 16
    42344211    xor ah, ah                                ; 30 e4
     
    42364213    mov word [bp+016h], ax                    ; 89 46 16
    42374214    mov ax, strict word 0000ch                ; b8 0c 00
    4238     call 02e49h                               ; e8 08 fb
     4215    call 02e09h                               ; e8 08 fb
    42394216    mov byte [bp+016h], dh                    ; 88 76 16
    4240     jmp near 035d9h                           ; e9 92 02
    4241     jmp near 03429h                           ; e9 df 00
     4217    jmp near 03599h                           ; e9 92 02
     4218    jmp near 033e9h                           ; e9 df 00
    42424219    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    4243     jne short 03398h                          ; 75 48
     4220    jne short 03358h                          ; 75 48
    42444221    mov ax, word [bp+006h]                    ; 8b 46 06
    42454222    shr ax, 00ch                              ; c1 e8 0c
     
    42514228    mov word [bp-012h], bx                    ; 89 5e ee
    42524229    cmp dx, bx                                ; 39 da
    4253     jbe short 0336ch                          ; 76 02
     4230    jbe short 0332ch                          ; 76 02
    42544231    db  0feh, 0c1h
    42554232    ; inc cl                                    ; fe c1
     
    42624239    add ax, bx                                ; 01 d8
    42634240    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4264     jnc short 0339bh                          ; 73 1b
     4241    jnc short 0335bh                          ; 73 1b
    42654242    mov ax, word [bp+016h]                    ; 8b 46 16
    42664243    xor ah, ah                                ; 30 e4
     
    42684245    mov word [bp+016h], ax                    ; 89 46 16
    42694246    mov ax, strict word 00009h                ; b8 09 00
    4270     call 02e49h                               ; e8 b8 fa
     4247    call 02e09h                               ; e8 b8 fa
    42714248    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4272     jmp near 035d9h                           ; e9 41 02
    4273     jmp near 034bfh                           ; e9 24 01
     4249    jmp near 03599h                           ; e9 41 02
     4250    jmp near 0347fh                           ; e9 24 01
    42744251    mov AL, strict byte 006h                  ; b0 06
    42754252    mov dx, strict word 0000ah                ; ba 0a 00
     
    43044281    mov al, byte [bp-006h]                    ; 8a 46 fa
    43054282    xor ah, ah                                ; 30 e4
    4306     call 02f22h                               ; e8 41 fb
     4283    call 02ee2h                               ; e8 41 fb
    43074284    mov AL, strict byte 0e6h                  ; b0 e6
    43084285    mov dx, 003f5h                            ; ba f5 03
     
    43364313    mov AL, strict byte 0ffh                  ; b0 ff
    43374314    out DX, AL                                ; ee
    4338     call 02eb3h                               ; e8 91 fa
     4315    call 02e73h                               ; e8 91 fa
    43394316    test al, al                               ; 84 c0
    4340     jne short 0343ah                          ; 75 14
    4341     call 02efah                               ; e8 d1 fa
     4317    jne short 033fah                          ; 75 14
     4318    call 02ebah                               ; e8 d1 fa
    43424319    mov ax, word [bp+016h]                    ; 8b 46 16
    43434320    xor ah, ah                                ; 30 e4
     
    43454322    mov word [bp+016h], ax                    ; 89 46 16
    43464323    mov ax, 00080h                            ; b8 80 00
    4347     jmp near 0338eh                           ; e9 54 ff
     4324    jmp near 0334eh                           ; e9 54 ff
    43484325    mov dx, 003f4h                            ; ba f4 03
    43494326    in AL, DX                                 ; ec
     
    43524329    and AL, strict byte 0c0h                  ; 24 c0
    43534330    cmp AL, strict byte 0c0h                  ; 3c c0
    4354     je short 03454h                           ; 74 0e
     4331    je short 03414h                           ; 74 0e
    43554332    push 00275h                               ; 68 75 02
    43564333    push 002a8h                               ; 68 a8 02
    43574334    push strict byte 00007h                   ; 6a 07
    4358     call 01966h                               ; e8 15 e5
     4335    call 01966h                               ; e8 55 e5
    43594336    add sp, strict byte 00006h                ; 83 c4 06
    43604337    xor si, si                                ; 31 f6
    4361     jmp short 0345dh                          ; eb 05
     4338    jmp short 0341dh                          ; eb 05
    43624339    cmp si, strict byte 00007h                ; 83 fe 07
    4363     jnl short 03476h                          ; 7d 19
     4340    jnl short 03436h                          ; 7d 19
    43644341    mov dx, 003f5h                            ; ba f5 03
    43654342    in AL, DX                                 ; ec
     
    43714348    lea dx, [si+042h]                         ; 8d 54 42
    43724349    mov ax, strict word 00040h                ; b8 40 00
    4373     call 0165eh                               ; e8 eb e1
     4350    call 0165eh                               ; e8 2b e2
    43744351    inc si                                    ; 46
    4375     jmp short 03458h                          ; eb e2
     4352    jmp short 03418h                          ; eb e2
    43764353    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4377     je short 0348dh                           ; 74 11
     4354    je short 0344dh                           ; 74 11
    43784355    mov ax, word [bp+016h]                    ; 8b 46 16
    43794356    xor ah, ah                                ; 30 e4
     
    43814358    mov word [bp+016h], ax                    ; 89 46 16
    43824359    mov ax, strict word 00020h                ; b8 20 00
    4383     jmp near 0338eh                           ; e9 01 ff
     4360    jmp near 0334eh                           ; e9 01 ff
    43844361    mov al, ch                                ; 88 e8
    43854362    xor ah, ah                                ; 30 e4
     
    44024379    mov al, byte [bp-006h]                    ; 8a 46 fa
    44034380    xor ah, ah                                ; 30 e4
    4404     call 02e62h                               ; e8 aa f9
     4381    call 02e22h                               ; e8 aa f9
    44054382    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4406     jmp near 0395dh                           ; e9 9e 04
     4383    jmp near 0391dh                           ; e9 9e 04
    44074384    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
    4408     je short 034c8h                           ; 74 03
    4409     jmp near 035e7h                           ; e9 1f 01
     4385    je short 03488h                           ; 74 03
     4386    jmp near 035a7h                           ; e9 1f 01
    44104387    mov dx, word [bp+006h]                    ; 8b 56 06
    44114388    shr dx, 00ch                              ; c1 ea 0c
     
    44174394    mov word [bp-012h], bx                    ; 89 5e ee
    44184395    cmp ax, bx                                ; 39 d8
    4419     jbe short 034e4h                          ; 76 02
     4396    jbe short 034a4h                          ; 76 02
    44204397    db  0feh, 0c1h
    44214398    ; inc cl                                    ; fe c1
     
    44284405    add ax, bx                                ; 01 d8
    44294406    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4430     jnc short 034fbh                          ; 73 03
    4431     jmp near 03380h                           ; e9 85 fe
     4407    jnc short 034bbh                          ; 73 03
     4408    jmp near 03340h                           ; e9 85 fe
    44324409    mov AL, strict byte 006h                  ; b0 06
    44334410    mov dx, strict word 0000ah                ; ba 0a 00
     
    44624439    mov al, byte [bp-006h]                    ; 8a 46 fa
    44634440    xor ah, ah                                ; 30 e4
    4464     call 02f22h                               ; e8 e1 f9
     4441    call 02ee2h                               ; e8 e1 f9
    44654442    mov AL, strict byte 0c5h                  ; b0 c5
    44664443    mov dx, 003f5h                            ; ba f5 03
     
    44944471    mov AL, strict byte 0ffh                  ; b0 ff
    44954472    out DX, AL                                ; ee
    4496     call 02eb3h                               ; e8 31 f9
     4473    call 02e73h                               ; e8 31 f9
    44974474    test al, al                               ; 84 c0
    4498     jne short 03589h                          ; 75 03
    4499     jmp near 03426h                           ; e9 9d fe
     4475    jne short 03549h                          ; 75 03
     4476    jmp near 033e6h                           ; e9 9d fe
    45004477    mov dx, 003f4h                            ; ba f4 03
    45014478    in AL, DX                                 ; ec
     
    45044481    and AL, strict byte 0c0h                  ; 24 c0
    45054482    cmp AL, strict byte 0c0h                  ; 3c c0
    4506     je short 035a3h                           ; 74 0e
     4483    je short 03563h                           ; 74 0e
    45074484    push 00275h                               ; 68 75 02
    45084485    push 002a8h                               ; 68 a8 02
    45094486    push strict byte 00007h                   ; 6a 07
    4510     call 01966h                               ; e8 c6 e3
     4487    call 01966h                               ; e8 06 e4
    45114488    add sp, strict byte 00006h                ; 83 c4 06
    45124489    xor si, si                                ; 31 f6
    4513     jmp short 035ach                          ; eb 05
     4490    jmp short 0356ch                          ; eb 05
    45144491    cmp si, strict byte 00007h                ; 83 fe 07
    4515     jnl short 035c5h                          ; 7d 19
     4492    jnl short 03585h                          ; 7d 19
    45164493    mov dx, 003f5h                            ; ba f5 03
    45174494    in AL, DX                                 ; ec
     
    45234500    lea dx, [si+042h]                         ; 8d 54 42
    45244501    mov ax, strict word 00040h                ; b8 40 00
    4525     call 0165eh                               ; e8 9c e0
     4502    call 0165eh                               ; e8 dc e0
    45264503    inc si                                    ; 46
    4527     jmp short 035a7h                          ; eb e2
     4504    jmp short 03567h                          ; eb e2
    45284505    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4529     jne short 035ceh                          ; 75 03
    4530     jmp near 034abh                           ; e9 dd fe
     4506    jne short 0358eh                          ; 75 03
     4507    jmp near 0346bh                           ; e9 dd fe
    45314508    test byte [bp-019h], 002h                 ; f6 46 e7 02
    4532     je short 035e0h                           ; 74 0c
     4509    je short 035a0h                           ; 74 0c
    45334510    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    45344511    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4535     jmp near 035fch                           ; e9 1c 00
     4512    jmp near 035bch                           ; e9 1c 00
    45364513    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4537     jmp short 035d9h                          ; eb f2
     4514    jmp short 03599h                          ; eb f2
    45384515    mov dl, byte [bp-008h]                    ; 8a 56 f8
    45394516    xor dh, dh                                ; 30 f6
    45404517    mov al, byte [bp-006h]                    ; 8a 46 fa
    45414518    xor ah, ah                                ; 30 e4
    4542     call 02e62h                               ; e8 6e f8
     4519    call 02e22h                               ; e8 6e f8
    45434520    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    45444521    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    45584535    mov byte [bp-006h], bl                    ; 88 5e fa
    45594536    cmp bl, 001h                              ; 80 fb 01
    4560     jnbe short 03635h                         ; 77 12
     4537    jnbe short 035f5h                         ; 77 12
    45614538    cmp dl, 001h                              ; 80 fa 01
    4562     jnbe short 03635h                         ; 77 0d
     4539    jnbe short 035f5h                         ; 77 0d
    45634540    cmp AL, strict byte 04fh                  ; 3c 4f
    4564     jnbe short 03635h                         ; 77 09
     4541    jnbe short 035f5h                         ; 77 09
    45654542    test ch, ch                               ; 84 ed
    4566     je short 03635h                           ; 74 05
     4543    je short 035f5h                           ; 74 05
    45674544    cmp ch, 012h                              ; 80 fd 12
    4568     jbe short 0364ah                          ; 76 15
     4545    jbe short 0360ah                          ; 76 15
    45694546    mov ax, word [bp+016h]                    ; 8b 46 16
    45704547    xor ah, ah                                ; 30 e4
     
    45724549    mov word [bp+016h], ax                    ; 89 46 16
    45734550    mov ax, strict word 00001h                ; b8 01 00
    4574     call 02e49h                               ; e8 03 f8
     4551    call 02e09h                               ; e8 03 f8
    45754552    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    45764553    mov al, byte [bp-006h]                    ; 8a 46 fa
    45774554    xor ah, ah                                ; 30 e4
    4578     call 03172h                               ; e8 20 fb
     4555    call 03132h                               ; e8 20 fb
    45794556    test ax, ax                               ; 85 c0
    4580     jne short 03659h                          ; 75 03
    4581     jmp near 0325ah                           ; e9 01 fc
     4557    jne short 03619h                          ; 75 03
     4558    jmp near 0321ah                           ; e9 01 fc
    45824559    mov dl, byte [bp-006h]                    ; 8a 56 fa
    45834560    xor dh, dh                                ; 30 f6
    45844561    mov ax, dx                                ; 89 d0
    4585     call 02fa5h                               ; e8 42 f9
     4562    call 02f65h                               ; e8 42 f9
    45864563    test ax, ax                               ; 85 c0
    4587     jne short 03673h                          ; 75 0c
     4564    jne short 03633h                          ; 75 0c
    45884565    mov ax, dx                                ; 89 d0
    4589     call 03079h                               ; e8 0d fa
     4566    call 03039h                               ; e8 0d fa
    45904567    test ax, ax                               ; 85 c0
    4591     jne short 03673h                          ; 75 03
    4592     jmp near 03330h                           ; e9 bd fc
     4568    jne short 03633h                          ; 75 03
     4569    jmp near 032f0h                           ; e9 bd fc
    45934570    mov dx, word [bp+006h]                    ; 8b 56 06
    45944571    shr dx, 00ch                              ; c1 ea 0c
     
    46004577    mov word [bp-012h], bx                    ; 89 5e ee
    46014578    cmp ax, bx                                ; 39 d8
    4602     jbe short 0368fh                          ; 76 02
     4579    jbe short 0364fh                          ; 76 02
    46034580    db  0feh, 0c1h
    46044581    ; inc cl                                    ; fe c1
     
    46114588    add ax, bx                                ; 01 d8
    46124589    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4613     jnc short 036a6h                          ; 73 03
    4614     jmp near 03380h                           ; e9 da fc
     4590    jnc short 03666h                          ; 73 03
     4591    jmp near 03340h                           ; e9 da fc
    46154592    mov AL, strict byte 006h                  ; b0 06
    46164593    mov dx, strict word 0000ah                ; ba 0a 00
     
    46454622    mov al, byte [bp-006h]                    ; 8a 46 fa
    46464623    xor ah, ah                                ; 30 e4
    4647     call 02f22h                               ; e8 36 f8
     4624    call 02ee2h                               ; e8 36 f8
    46484625    mov AL, strict byte 00fh                  ; b0 0f
    46494626    mov dx, 003f5h                            ; ba f5 03
     
    46714648    mov AL, strict byte 0f6h                  ; b0 f6
    46724649    out DX, AL                                ; ee
    4673     call 02eb3h                               ; e8 96 f7
     4650    call 02e73h                               ; e8 96 f7
    46744651    test al, al                               ; 84 c0
    4675     jne short 03727h                          ; 75 06
    4676     call 02efah                               ; e8 d6 f7
    4677     jmp near 0325ah                           ; e9 33 fb
     4652    jne short 036e7h                          ; 75 06
     4653    call 02ebah                               ; e8 d6 f7
     4654    jmp near 0321ah                           ; e9 33 fb
    46784655    mov dx, 003f4h                            ; ba f4 03
    46794656    in AL, DX                                 ; ec
     
    46824659    and AL, strict byte 0c0h                  ; 24 c0
    46834660    cmp AL, strict byte 0c0h                  ; 3c c0
    4684     je short 03741h                           ; 74 0e
     4661    je short 03701h                           ; 74 0e
    46854662    push 00275h                               ; 68 75 02
    46864663    push 002a8h                               ; 68 a8 02
    46874664    push strict byte 00007h                   ; 6a 07
    4688     call 01966h                               ; e8 28 e2
     4665    call 01966h                               ; e8 68 e2
    46894666    add sp, strict byte 00006h                ; 83 c4 06
    46904667    xor si, si                                ; 31 f6
    4691     jmp short 0374ah                          ; eb 05
     4668    jmp short 0370ah                          ; eb 05
    46924669    cmp si, strict byte 00007h                ; 83 fe 07
    4693     jnl short 03763h                          ; 7d 19
     4670    jnl short 03723h                          ; 7d 19
    46944671    mov dx, 003f5h                            ; ba f5 03
    46954672    in AL, DX                                 ; ec
     
    47014678    lea dx, [si+042h]                         ; 8d 54 42
    47024679    mov ax, strict word 00040h                ; b8 40 00
    4703     call 0165eh                               ; e8 fe de
     4680    call 0165eh                               ; e8 3e df
    47044681    inc si                                    ; 46
    4705     jmp short 03745h                          ; eb e2
     4682    jmp short 03705h                          ; eb e2
    47064683    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4707     je short 03780h                           ; 74 17
     4684    je short 03740h                           ; 74 17
    47084685    test byte [bp-019h], 002h                 ; f6 46 e7 02
    4709     je short 03772h                           ; 74 03
    4710     jmp near 035d4h                           ; e9 62 fe
     4686    je short 03732h                           ; 74 03
     4687    jmp near 03594h                           ; e9 62 fe
    47114688    push 00275h                               ; 68 75 02
    47124689    push 002bch                               ; 68 bc 02
    47134690    push strict byte 00007h                   ; 6a 07
    4714     call 01966h                               ; e8 e9 e1
     4691    call 01966h                               ; e8 29 e2
    47154692    add sp, strict byte 00006h                ; 83 c4 06
    47164693    xor al, al                                ; 30 c0
    47174694    mov byte [bp+017h], al                    ; 88 46 17
    47184695    xor ah, ah                                ; 30 e4
    4719     call 02e49h                               ; e8 bf f6
     4696    call 02e09h                               ; e8 bf f6
    47204697    mov al, byte [bp-006h]                    ; 8a 46 fa
    47214698    xor ah, ah                                ; 30 e4
    47224699    xor dx, dx                                ; 31 d2
    4723     call 02e62h                               ; e8 ce f6
    4724     jmp near 0395dh                           ; e9 c6 01
     4700    call 02e22h                               ; e8 ce f6
     4701    jmp near 0391dh                           ; e9 c6 01
    47254702    mov byte [bp-006h], al                    ; 88 46 fa
    47264703    cmp AL, strict byte 001h                  ; 3c 01
    4727     jbe short 037bch                          ; 76 1e
     4704    jbe short 0377ch                          ; 76 1e
    47284705    xor ax, ax                                ; 31 c0
    47294706    mov word [bp+016h], ax                    ; 89 46 16
     
    47364713    xor ah, ah                                ; 30 e4
    47374714    mov word [bp+012h], ax                    ; 89 46 12
    4738     jmp near 038d8h                           ; e9 1c 01
     4715    jmp near 03898h                           ; e9 1c 01
    47394716    mov ax, strict word 00010h                ; b8 10 00
    4740     call 016ach                               ; e8 ea de
     4717    call 016ach                               ; e8 2a df
    47414718    mov cl, al                                ; 88 c1
    47424719    xor ch, ch                                ; 30 ed
    47434720    test AL, strict byte 0f0h                 ; a8 f0
    4744     je short 037cch                           ; 74 02
     4721    je short 0378ch                           ; 74 02
    47454722    mov CH, strict byte 001h                  ; b5 01
    47464723    test cl, 00fh                             ; f6 c1 0f
    4747     je short 037d3h                           ; 74 02
     4724    je short 03793h                           ; 74 02
    47484725    db  0feh, 0c5h
    47494726    ; inc ch                                    ; fe c5
    47504727    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4751     jne short 037deh                          ; 75 05
     4728    jne short 0379eh                          ; 75 05
    47524729    shr cl, 004h                              ; c0 e9 04
    4753     jmp short 037e1h                          ; eb 03
     4730    jmp short 037a1h                          ; eb 03
    47544731    and cl, 00fh                              ; 80 e1 0f
    47554732    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    47674744    mov word [bp+012h], ax                    ; 89 46 12
    47684745    cmp cl, 003h                              ; 80 f9 03
    4769     jc short 0381dh                           ; 72 15
    4770     jbe short 03844h                          ; 76 3a
     4746    jc short 037ddh                           ; 72 15
     4747    jbe short 03804h                          ; 76 3a
    47714748    cmp cl, 005h                              ; 80 f9 05
    4772     jc short 0384bh                           ; 72 3c
    4773     jbe short 03852h                          ; 76 41
     4749    jc short 0380bh                           ; 72 3c
     4750    jbe short 03812h                          ; 76 41
    47744751    cmp cl, 00fh                              ; 80 f9 0f
    4775     je short 03860h                           ; 74 4a
     4752    je short 03820h                           ; 74 4a
    47764753    cmp cl, 00eh                              ; 80 f9 0e
    4777     je short 03859h                           ; 74 3e
    4778     jmp short 03867h                          ; eb 4a
     4754    je short 03819h                           ; 74 3e
     4755    jmp short 03827h                          ; eb 4a
    47794756    cmp cl, 002h                              ; 80 f9 02
    4780     je short 0383dh                           ; 74 1b
     4757    je short 037fdh                           ; 74 1b
    47814758    cmp cl, 001h                              ; 80 f9 01
    4782     je short 03836h                           ; 74 0f
     4759    je short 037f6h                           ; 74 0f
    47834760    test cl, cl                               ; 84 c9
    4784     jne short 03867h                          ; 75 3c
     4761    jne short 03827h                          ; 75 3c
    47854762    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    47864763    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4787     jmp short 03875h                          ; eb 3f
     4764    jmp short 03835h                          ; eb 3f
    47884765    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4789     jmp short 03875h                          ; eb 38
     4766    jmp short 03835h                          ; eb 38
    47904767    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4791     jmp short 03875h                          ; eb 31
     4768    jmp short 03835h                          ; eb 31
    47924769    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4793     jmp short 03875h                          ; eb 2a
     4770    jmp short 03835h                          ; eb 2a
    47944771    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4795     jmp short 03875h                          ; eb 23
     4772    jmp short 03835h                          ; eb 23
    47964773    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4797     jmp short 03875h                          ; eb 1c
     4774    jmp short 03835h                          ; eb 1c
    47984775    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4799     jmp short 03875h                          ; eb 15
     4776    jmp short 03835h                          ; eb 15
    48004777    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4801     jmp short 03875h                          ; eb 0e
     4778    jmp short 03835h                          ; eb 0e
    48024779    push 00275h                               ; 68 75 02
    48034780    push 002cdh                               ; 68 cd 02
    48044781    push strict byte 00007h                   ; 6a 07
    4805     call 01966h                               ; e8 f4 e0
     4782    call 01966h                               ; e8 34 e1
    48064783    add sp, strict byte 00006h                ; 83 c4 06
    48074784    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    48084785    mov al, cl                                ; 88 c8
    48094786    xor ah, ah                                ; 30 e4
    4810     call 03ad8h                               ; e8 57 02
     4787    call 03a98h                               ; e8 57 02
    48114788    mov word [bp+008h], ax                    ; 89 46 08
    4812     jmp near 0395dh                           ; e9 d6 00
     4789    jmp near 0391dh                           ; e9 d6 00
    48134790    mov byte [bp-006h], al                    ; 88 46 fa
    48144791    cmp AL, strict byte 001h                  ; 3c 01
    4815     jbe short 03893h                          ; 76 05
     4792    jbe short 03853h                          ; 76 05
    48164793    mov word [bp+016h], si                    ; 89 76 16
    4817     jmp short 038d8h                          ; eb 45
     4794    jmp short 03898h                          ; eb 45
    48184795    mov ax, strict word 00010h                ; b8 10 00
    4819     call 016ach                               ; e8 13 de
     4796    call 016ach                               ; e8 53 de
    48204797    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4821     jne short 038a6h                          ; 75 07
     4798    jne short 03866h                          ; 75 07
    48224799    mov cl, al                                ; 88 c1
    48234800    shr cl, 004h                              ; c0 e9 04
    4824     jmp short 038abh                          ; eb 05
     4801    jmp short 0386bh                          ; eb 05
    48254802    mov cl, al                                ; 88 c1
    48264803    and cl, 00fh                              ; 80 e1 0f
     
    48294806    xor ah, ah                                ; 30 e4
    48304807    test cl, cl                               ; 84 c9
    4831     je short 038c5h                           ; 74 0d
     4808    je short 03885h                           ; 74 0d
    48324809    cmp cl, 001h                              ; 80 f9 01
    4833     jbe short 038c2h                          ; 76 05
     4810    jbe short 03882h                          ; 76 05
    48344811    or ah, 002h                               ; 80 cc 02
    4835     jmp short 038c5h                          ; eb 03
     4812    jmp short 03885h                          ; eb 03
    48364813    or ah, 001h                               ; 80 cc 01
    48374814    mov word [bp+016h], ax                    ; 89 46 16
    4838     jmp near 035fch                           ; e9 31 fd
     4815    jmp near 035bch                           ; e9 31 fd
    48394816    cmp AL, strict byte 001h                  ; 3c 01
    4840     jbe short 038deh                          ; 76 0f
     4817    jbe short 0389eh                          ; 76 0f
    48414818    mov word [bp+016h], si                    ; 89 76 16
    48424819    mov ax, strict word 00001h                ; b8 01 00
    4843     call 02e49h                               ; e8 71 f5
     4820    call 02e09h                               ; e8 71 f5
    48444821    mov word [bp+01ch], dx                    ; 89 56 1c
    4845     jmp near 035fch                           ; e9 1e fd
     4822    jmp near 035bch                           ; e9 1e fd
    48464823    mov ax, word [bp+016h]                    ; 8b 46 16
    48474824    xor ah, ah                                ; 30 e4
     
    48494826    mov word [bp+016h], ax                    ; 89 46 16
    48504827    mov ax, strict word 00006h                ; b8 06 00
    4851     jmp near 03227h                           ; e9 38 f9
     4828    jmp near 031e7h                           ; e9 38 f9
    48524829    mov byte [bp-006h], al                    ; 88 46 fa
    48534830    mov bl, cl                                ; 88 cb
    48544831    cmp AL, strict byte 001h                  ; 3c 01
    4855     jnbe short 038cfh                         ; 77 d7
     4832    jnbe short 0388fh                         ; 77 d7
    48564833    mov al, byte [bp-006h]                    ; 8a 46 fa
    48574834    xor ah, ah                                ; 30 e4
    4858     call 03172h                               ; e8 72 f8
     4835    call 03132h                               ; e8 72 f8
    48594836    test ax, ax                               ; 85 c0
    4860     jne short 03907h                          ; 75 03
    4861     jmp near 0325ah                           ; e9 53 f9
     4837    jne short 038c7h                          ; 75 03
     4838    jmp near 0321ah                           ; e9 53 f9
    48624839    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4863     je short 03912h                           ; 74 05
     4840    je short 038d2h                           ; 74 05
    48644841    mov dx, 00091h                            ; ba 91 00
    4865     jmp short 03915h                          ; eb 03
     4842    jmp short 038d5h                          ; eb 03
    48664843    mov dx, 00090h                            ; ba 90 00
    48674844    mov word [bp-012h], dx                    ; 89 56 ee
    48684845    mov ax, strict word 00040h                ; b8 40 00
    4869     call 01650h                               ; e8 32 dd
     4846    call 01650h                               ; e8 72 dd
    48704847    and AL, strict byte 00fh                  ; 24 0f
    48714848    cmp bl, 002h                              ; 80 fb 02
    4872     jc short 03934h                           ; 72 0f
    4873     jbe short 03940h                          ; 76 19
     4849    jc short 038f4h                           ; 72 0f
     4850    jbe short 03900h                          ; 76 19
    48744851    cmp bl, 004h                              ; 80 fb 04
    4875     je short 0393ch                           ; 74 10
     4852    je short 038fch                           ; 74 10
    48764853    cmp bl, 003h                              ; 80 fb 03
    4877     je short 03944h                           ; 74 13
    4878     jmp near 03219h                           ; e9 e5 f8
     4854    je short 03904h                           ; 74 13
     4855    jmp near 031d9h                           ; e9 e5 f8
    48794856    cmp bl, 001h                              ; 80 fb 01
    4880     je short 0393ch                           ; 74 03
    4881     jmp near 03219h                           ; e9 dd f8
     4857    je short 038fch                           ; 74 03
     4858    jmp near 031d9h                           ; e9 dd f8
    48824859    or AL, strict byte 090h                   ; 0c 90
    4883     jmp short 03946h                          ; eb 06
     4860    jmp short 03906h                          ; eb 06
    48844861    or AL, strict byte 070h                   ; 0c 70
    4885     jmp short 03946h                          ; eb 02
     4862    jmp short 03906h                          ; eb 02
    48864863    or AL, strict byte 010h                   ; 0c 10
    48874864    mov bl, al                                ; 88 c3
     
    48894866    mov dx, word [bp-012h]                    ; 8b 56 ee
    48904867    mov ax, strict word 00040h                ; b8 40 00
    4891     call 0165eh                               ; e8 0b dd
     4868    call 0165eh                               ; e8 4b dd
    48924869    xor al, al                                ; 30 c0
    48934870    mov byte [bp+017h], al                    ; 88 46 17
    48944871    xor ah, ah                                ; 30 e4
    4895     call 02e49h                               ; e8 ec f4
     4872    call 02e09h                               ; e8 ec f4
    48964873    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4897     jmp near 035fch                           ; e9 98 fc
     4874    jmp near 035bch                           ; e9 98 fc
    48984875    mov byte [bp-006h], al                    ; 88 46 fa
    48994876    mov ch, ah                                ; 88 e5
     
    49064883    mov byte [bp-008h], bl                    ; 88 5e f8
    49074884    cmp AL, strict byte 001h                  ; 3c 01
    4908     jbe short 03983h                          ; 76 03
    4909     jmp near 038cfh                           ; e9 4c ff
     4885    jbe short 03943h                          ; 76 03
     4886    jmp near 0388fh                           ; e9 4c ff
    49104887    mov al, byte [bp-006h]                    ; 8a 46 fa
    49114888    xor ah, ah                                ; 30 e4
    4912     call 03172h                               ; e8 e7 f7
     4889    call 03132h                               ; e8 e7 f7
    49134890    test ax, ax                               ; 85 c0
    4914     jne short 03992h                          ; 75 03
    4915     jmp near 0325ah                           ; e9 c8 f8
     4891    jne short 03952h                          ; 75 03
     4892    jmp near 0321ah                           ; e9 c8 f8
    49164893    mov dl, byte [bp-006h]                    ; 8a 56 fa
    49174894    xor dh, dh                                ; 30 f6
    49184895    mov ax, dx                                ; 89 d0
    4919     call 02fa5h                               ; e8 09 f6
     4896    call 02f65h                               ; e8 09 f6
    49204897    test ax, ax                               ; 85 c0
    4921     jne short 039bah                          ; 75 1a
     4898    jne short 0397ah                          ; 75 1a
    49224899    mov ax, dx                                ; 89 d0
    4923     call 03079h                               ; e8 d4 f6
     4900    call 03039h                               ; e8 d4 f6
    49244901    test ax, ax                               ; 85 c0
    4925     jne short 039bah                          ; 75 11
     4902    jne short 0397ah                          ; 75 11
    49264903    mov ax, word [bp+016h]                    ; 8b 46 16
    49274904    xor ah, ah                                ; 30 e4
     
    49294906    mov word [bp+016h], ax                    ; 89 46 16
    49304907    mov ax, strict word 0000ch                ; b8 0c 00
    4931     jmp near 03227h                           ; e9 6d f8
     4908    jmp near 031e7h                           ; e9 6d f8
    49324909    mov ax, strict word 00010h                ; b8 10 00
    4933     call 016ach                               ; e8 ec dc
     4910    call 016ach                               ; e8 2c dd
    49344911    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4935     jne short 039cdh                          ; 75 07
     4912    jne short 0398dh                          ; 75 07
    49364913    mov cl, al                                ; 88 c1
    49374914    shr cl, 004h                              ; c0 e9 04
    4938     jmp short 039d2h                          ; eb 05
     4915    jmp short 03992h                          ; eb 05
    49394916    mov cl, al                                ; 88 c1
    49404917    and cl, 00fh                              ; 80 e1 0f
    49414918    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4942     je short 039ddh                           ; 74 05
     4919    je short 0399dh                           ; 74 05
    49434920    mov dx, 00091h                            ; ba 91 00
    4944     jmp short 039e0h                          ; eb 03
     4921    jmp short 039a0h                          ; eb 03
    49454922    mov dx, 00090h                            ; ba 90 00
    49464923    mov word [bp-012h], dx                    ; 89 56 ee
    49474924    mov ax, strict word 00040h                ; b8 40 00
    4948     call 01650h                               ; e8 67 dc
     4925    call 01650h                               ; e8 a7 dc
    49494926    and AL, strict byte 00fh                  ; 24 0f
    49504927    cmp cl, 003h                              ; 80 f9 03
    4951     jc short 03a0ch                           ; 72 1c
     4928    jc short 039cch                           ; 72 1c
    49524929    mov ah, al                                ; 88 c4
    49534930    or ah, 090h                               ; 80 cc 90
    49544931    cmp cl, 003h                              ; 80 f9 03
    4955     jbe short 03a43h                          ; 76 49
     4932    jbe short 03a03h                          ; 76 49
    49564933    mov dl, al                                ; 88 c2
    49574934    or dl, 010h                               ; 80 ca 10
    49584935    cmp cl, 005h                              ; 80 f9 05
    4959     je short 03a50h                           ; 74 4c
     4936    je short 03a10h                           ; 74 4c
    49604937    cmp cl, 004h                              ; 80 f9 04
    4961     je short 03a56h                           ; 74 4d
    4962     jmp near 03a87h                           ; e9 7b 00
     4938    je short 03a16h                           ; 74 4d
     4939    jmp near 03a47h                           ; e9 7b 00
    49634940    cmp cl, 002h                              ; 80 f9 02
    4964     je short 03a25h                           ; 74 14
     4941    je short 039e5h                           ; 74 14
    49654942    cmp cl, 001h                              ; 80 f9 01
    4966     jne short 03a54h                          ; 75 3e
     4943    jne short 03a14h                          ; 75 3e
    49674944    cmp byte [bp-008h], 027h                  ; 80 7e f8 27
    4968     jne short 03a54h                          ; 75 38
     4945    jne short 03a14h                          ; 75 38
    49694946    cmp ch, 009h                              ; 80 fd 09
    4970     jne short 03a6ah                          ; 75 49
     4947    jne short 03a2ah                          ; 75 49
    49714948    or AL, strict byte 090h                   ; 0c 90
    4972     jmp short 03a6ah                          ; eb 45
     4949    jmp short 03a2ah                          ; eb 45
    49734950    cmp byte [bp-008h], 027h                  ; 80 7e f8 27
    4974     jne short 03a34h                          ; 75 09
     4951    jne short 039f4h                          ; 75 09
    49754952    cmp ch, 009h                              ; 80 fd 09
    4976     jne short 03a34h                          ; 75 04
     4953    jne short 039f4h                          ; 75 04
    49774954    or AL, strict byte 070h                   ; 0c 70
    4978     jmp short 03a6ah                          ; eb 36
     4955    jmp short 03a2ah                          ; eb 36
    49794956    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    4980     jne short 03a87h                          ; 75 4d
     4957    jne short 03a47h                          ; 75 4d
    49814958    cmp ch, 00fh                              ; 80 fd 0f
    4982     jne short 03a87h                          ; 75 48
     4959    jne short 03a47h                          ; 75 48
    49834960    or AL, strict byte 010h                   ; 0c 10
    4984     jmp short 03a87h                          ; eb 44
     4961    jmp short 03a47h                          ; eb 44
    49854962    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    4986     jne short 03a87h                          ; 75 3e
     4963    jne short 03a47h                          ; 75 3e
    49874964    cmp ch, 009h                              ; 80 fd 09
    4988     je short 03a52h                           ; 74 04
    4989     jmp short 03a87h                          ; eb 37
    4990     jmp short 03a6ch                          ; eb 1a
     4965    je short 03a12h                           ; 74 04
     4966    jmp short 03a47h                          ; eb 37
     4967    jmp short 03a2ch                          ; eb 1a
    49914968    mov al, ah                                ; 88 e0
    4992     jmp short 03a87h                          ; eb 31
     4969    jmp short 03a47h                          ; eb 31
    49934970    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    4994     jne short 03a87h                          ; 75 2b
     4971    jne short 03a47h                          ; 75 2b
    49954972    cmp ch, 009h                              ; 80 fd 09
    4996     jne short 03a63h                          ; 75 02
    4997     jmp short 03a52h                          ; eb ef
     4973    jne short 03a23h                          ; 75 02
     4974    jmp short 03a12h                          ; eb ef
    49984975    cmp ch, 012h                              ; 80 fd 12
    4999     jne short 03a87h                          ; 75 1f
     4976    jne short 03a47h                          ; 75 1f
    50004977    mov al, dl                                ; 88 d0
    5001     jmp short 03a87h                          ; eb 1b
     4978    jmp short 03a47h                          ; eb 1b
    50024979    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5003     jne short 03a87h                          ; 75 15
     4980    jne short 03a47h                          ; 75 15
    50044981    cmp ch, 009h                              ; 80 fd 09
    5005     jne short 03a79h                          ; 75 02
    5006     jmp short 03a52h                          ; eb d9
     4982    jne short 03a39h                          ; 75 02
     4983    jmp short 03a12h                          ; eb d9
    50074984    cmp ch, 012h                              ; 80 fd 12
    5008     jne short 03a80h                          ; 75 02
    5009     jmp short 03a68h                          ; eb e8
     4985    jne short 03a40h                          ; 75 02
     4986    jmp short 03a28h                          ; eb e8
    50104987    cmp ch, 024h                              ; 80 fd 24
    5011     jne short 03a87h                          ; 75 02
     4988    jne short 03a47h                          ; 75 02
    50124989    or AL, strict byte 0d0h                   ; 0c d0
    50134990    mov dl, al                                ; 88 c2
     
    50154992    sar dx, 004h                              ; c1 fa 04
    50164993    test dl, 001h                             ; f6 c2 01
    5017     jne short 03a96h                          ; 75 03
    5018     jmp near 039a9h                           ; e9 13 ff
     4994    jne short 03a56h                          ; 75 03
     4995    jmp near 03969h                           ; e9 13 ff
    50194996    mov bl, al                                ; 88 c3
    50204997    xor bh, bh                                ; 30 ff
    50214998    mov dx, word [bp-012h]                    ; 8b 56 ee
    50224999    mov ax, strict word 00040h                ; b8 40 00
    5023     call 0165eh                               ; e8 bb db
     5000    call 0165eh                               ; e8 fb db
    50245001    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    50255002    mov al, cl                                ; 88 c8
    50265003    xor ah, ah                                ; 30 e4
    5027     call 03ad8h                               ; e8 29 00
     5004    call 03a98h                               ; e8 29 00
    50285005    mov word [bp+008h], ax                    ; 89 46 08
    5029     jmp near 03953h                           ; e9 9e fe
     5006    jmp near 03913h                           ; e9 9e fe
    50305007    mov bx, 00da0h                            ; bb a0 0d
    50315008    mov cx, ds                                ; 8c d9
    50325009    mov ax, strict word 00004h                ; b8 04 00
    5033     call 01923h                               ; e8 63 de
     5010    call 01923h                               ; e8 a3 de
    50345011    mov ax, word [bp+016h]                    ; 8b 46 16
    50355012    shr ax, 008h                              ; c1 e8 08
     
    50385015    push 002e2h                               ; 68 e2 02
    50395016    push strict byte 00004h                   ; 6a 04
    5040     call 01966h                               ; e8 94 de
     5017    call 01966h                               ; e8 d4 de
    50415018    add sp, strict byte 00008h                ; 83 c4 08
    5042     jmp near 03219h                           ; e9 41 f7
    5043 get_floppy_dpt_:                             ; 0xf3ad8 LB 0x30
     5019    jmp near 031d9h                           ; e9 41 f7
     5020get_floppy_dpt_:                             ; 0xf3a98 LB 0x30
    50445021    push bx                                   ; 53
    50455022    push dx                                   ; 52
     
    50485025    mov dl, al                                ; 88 c2
    50495026    xor ax, ax                                ; 31 c0
    5050     jmp short 03ae9h                          ; eb 06
     5027    jmp short 03aa9h                          ; eb 06
    50515028    inc ax                                    ; 40
    50525029    cmp ax, strict word 00007h                ; 3d 07 00
    5053     jnc short 03b01h                          ; 73 18
     5030    jnc short 03ac1h                          ; 73 18
    50545031    mov bx, ax                                ; 89 c3
    50555032    add bx, ax                                ; 01 c3
    50565033    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5057     jne short 03ae3h                          ; 75 f0
     5034    jne short 03aa3h                          ; 75 f0
    50585035    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    50595036    xor ah, ah                                ; 30 e4
    50605037    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    50615038    add ax, strict word 00000h                ; 05 00 00
    5062     jmp short 03b04h                          ; eb 03
     5039    jmp short 03ac4h                          ; eb 03
    50635040    mov ax, strict word 00041h                ; b8 41 00
    50645041    pop bp                                    ; 5d
     
    50665043    pop bx                                    ; 5b
    50675044    retn                                      ; c3
    5068 dummy_soft_reset_:                           ; 0xf3b08 LB 0x7
     5045dummy_soft_reset_:                           ; 0xf3ac8 LB 0x7
    50695046    push bp                                   ; 55
    50705047    mov bp, sp                                ; 89 e5
     
    50725049    pop bp                                    ; 5d
    50735050    retn                                      ; c3
    5074 _cdemu_init:                                 ; 0xf3b0f LB 0x18
     5051_cdemu_init:                                 ; 0xf3acf LB 0x18
    50755052    push bp                                   ; 55
    50765053    mov bp, sp                                ; 89 e5
    50775054    mov dx, strict word 0000eh                ; ba 0e 00
    50785055    mov ax, strict word 00040h                ; b8 40 00
    5079     call 0166ch                               ; e8 51 db
     5056    call 0166ch                               ; e8 91 db
    50805057    xor bx, bx                                ; 31 db
    50815058    mov dx, 00366h                            ; ba 66 03
    5082     call 0165eh                               ; e8 3b db
     5059    call 0165eh                               ; e8 7b db
    50835060    mov sp, bp                                ; 89 ec
    50845061    pop bp                                    ; 5d
    50855062    retn                                      ; c3
    5086 _cdemu_isactive:                             ; 0xf3b27 LB 0x16
     5063_cdemu_isactive:                             ; 0xf3ae7 LB 0x16
    50875064    push bp                                   ; 55
    50885065    mov bp, sp                                ; 89 e5
    50895066    mov dx, strict word 0000eh                ; ba 0e 00
    50905067    mov ax, strict word 00040h                ; b8 40 00
    5091     call 0166ch                               ; e8 39 db
     5068    call 0166ch                               ; e8 79 db
    50925069    mov dx, 00366h                            ; ba 66 03
    5093     call 01650h                               ; e8 17 db
     5070    call 01650h                               ; e8 57 db
    50945071    mov sp, bp                                ; 89 ec
    50955072    pop bp                                    ; 5d
    50965073    retn                                      ; c3
    5097 _cdemu_emulated_drive:                       ; 0xf3b3d LB 0x16
     5074_cdemu_emulated_drive:                       ; 0xf3afd LB 0x16
    50985075    push bp                                   ; 55
    50995076    mov bp, sp                                ; 89 e5
    51005077    mov dx, strict word 0000eh                ; ba 0e 00
    51015078    mov ax, strict word 00040h                ; b8 40 00
    5102     call 0166ch                               ; e8 23 db
     5079    call 0166ch                               ; e8 63 db
    51035080    mov dx, 00368h                            ; ba 68 03
    5104     call 01650h                               ; e8 01 db
     5081    call 01650h                               ; e8 41 db
    51055082    mov sp, bp                                ; 89 ec
    51065083    pop bp                                    ; 5d
    51075084    retn                                      ; c3
    5108 _int13_eltorito:                             ; 0xf3b53 LB 0x190
     5085_int13_eltorito:                             ; 0xf3b13 LB 0x190
    51095086    push bp                                   ; 55
    51105087    mov bp, sp                                ; 89 e5
     
    51135090    mov dx, strict word 0000eh                ; ba 0e 00
    51145091    mov ax, strict word 00040h                ; b8 40 00
    5115     call 0166ch                               ; e8 0b db
     5092    call 0166ch                               ; e8 4b db
    51165093    mov si, 00366h                            ; be 66 03
    51175094    mov di, ax                                ; 89 c7
     
    51195096    shr ax, 008h                              ; c1 e8 08
    51205097    cmp ax, strict word 0004bh                ; 3d 4b 00
    5121     jc short 03b7bh                           ; 72 0a
    5122     jbe short 03ba2h                          ; 76 2f
     5098    jc short 03b3bh                           ; 72 0a
     5099    jbe short 03b62h                          ; 76 2f
    51235100    cmp ax, strict word 0004dh                ; 3d 4d 00
    5124     jbe short 03b80h                          ; 76 08
    5125     jmp near 03ca7h                           ; e9 2c 01
     5101    jbe short 03b40h                          ; 76 08
     5102    jmp near 03c67h                           ; e9 2c 01
    51265103    cmp ax, strict word 0004ah                ; 3d 4a 00
    5127     jne short 03b9fh                          ; 75 1f
     5104    jne short 03b5fh                          ; 75 1f
    51285105    mov bx, 00da0h                            ; bb a0 0d
    51295106    mov cx, ds                                ; 8c d9
    51305107    mov ax, strict word 00004h                ; b8 04 00
    5131     call 01923h                               ; e8 98 dd
     5108    call 01923h                               ; e8 d8 dd
    51325109    push word [bp+016h]                       ; ff 76 16
    51335110    push 002fch                               ; 68 fc 02
    51345111    push 0030bh                               ; 68 0b 03
    51355112    push strict byte 00004h                   ; 6a 04
    5136     call 01966h                               ; e8 cd dd
     5113    call 01966h                               ; e8 0d de
    51375114    add sp, strict byte 00008h                ; 83 c4 08
    5138     jmp near 03cc2h                           ; e9 23 01
    5139     jmp near 03ca7h                           ; e9 05 01
     5115    jmp near 03c82h                           ; e9 23 01
     5116    jmp near 03c67h                           ; e9 05 01
    51405117    mov dx, word [bp+00ah]                    ; 8b 56 0a
    51415118    mov ax, word [bp+004h]                    ; 8b 46 04
    51425119    mov bx, strict word 00013h                ; bb 13 00
    5143     call 0165eh                               ; e8 b0 da
     5120    call 0165eh                               ; e8 f0 da
    51445121    mov es, di                                ; 8e c7
    51455122    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    51485125    inc dx                                    ; 42
    51495126    mov ax, word [bp+004h]                    ; 8b 46 04
    5150     call 0165eh                               ; e8 9e da
     5127    call 0165eh                               ; e8 de da
    51515128    mov es, di                                ; 8e c7
    51525129    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    51565133    inc dx                                    ; 42
    51575134    mov ax, word [bp+004h]                    ; 8b 46 04
    5158     call 0165eh                               ; e8 8b da
     5135    call 0165eh                               ; e8 cb da
    51595136    mov es, di                                ; 8e c7
    51605137    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    51635140    add dx, strict byte 00003h                ; 83 c2 03
    51645141    mov ax, word [bp+004h]                    ; 8b 46 04
    5165     call 0165eh                               ; e8 77 da
     5142    call 0165eh                               ; e8 b7 da
    51665143    mov es, di                                ; 8e c7
    51675144    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    51705147    add dx, strict byte 00004h                ; 83 c2 04
    51715148    mov ax, word [bp+004h]                    ; 8b 46 04
    5172     call 0169ah                               ; e8 9d da
     5149    call 0169ah                               ; e8 dd da
    51735150    mov es, di                                ; 8e c7
    51745151    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    51765153    add dx, strict byte 00008h                ; 83 c2 08
    51775154    mov ax, word [bp+004h]                    ; 8b 46 04
    5178     call 0167ah                               ; e8 6b da
     5155    call 0167ah                               ; e8 ab da
    51795156    mov es, di                                ; 8e c7
    51805157    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    51825159    add dx, strict byte 0000ah                ; 83 c2 0a
    51835160    mov ax, word [bp+004h]                    ; 8b 46 04
    5184     call 0167ah                               ; e8 59 da
     5161    call 0167ah                               ; e8 99 da
    51855162    mov es, di                                ; 8e c7
    51865163    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    51885165    add dx, strict byte 0000ch                ; 83 c2 0c
    51895166    mov ax, word [bp+004h]                    ; 8b 46 04
    5190     call 0167ah                               ; e8 47 da
     5167    call 0167ah                               ; e8 87 da
    51915168    mov es, di                                ; 8e c7
    51925169    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    51945171    add dx, strict byte 0000eh                ; 83 c2 0e
    51955172    mov ax, word [bp+004h]                    ; 8b 46 04
    5196     call 0167ah                               ; e8 35 da
     5173    call 0167ah                               ; e8 75 da
    51975174    mov es, di                                ; 8e c7
    51985175    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    52015178    add dx, strict byte 00010h                ; 83 c2 10
    52025179    mov ax, word [bp+004h]                    ; 8b 46 04
    5203     call 0165eh                               ; e8 05 da
     5180    call 0165eh                               ; e8 45 da
    52045181    mov es, di                                ; 8e c7
    52055182    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    52085185    add dx, strict byte 00011h                ; 83 c2 11
    52095186    mov ax, word [bp+004h]                    ; 8b 46 04
    5210     call 0165eh                               ; e8 f1 d9
     5187    call 0165eh                               ; e8 31 da
    52115188    mov es, di                                ; 8e c7
    52125189    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    52155192    add dx, strict byte 00012h                ; 83 c2 12
    52165193    mov ax, word [bp+004h]                    ; 8b 46 04
    5217     call 0165eh                               ; e8 dd d9
     5194    call 0165eh                               ; e8 1d da
    52185195    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5219     jne short 03c8dh                          ; 75 06
     5196    jne short 03c4dh                          ; 75 06
    52205197    mov es, di                                ; 8e c7
    52215198    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    52245201    mov dx, strict word 00074h                ; ba 74 00
    52255202    mov ax, strict word 00040h                ; b8 40 00
    5226     call 0165eh                               ; e8 c2 d9
     5203    call 0165eh                               ; e8 02 da
    52275204    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    52285205    lea sp, [bp-004h]                         ; 8d 66 fc
     
    52345211    mov cx, ds                                ; 8c d9
    52355212    mov ax, strict word 00004h                ; b8 04 00
    5236     call 01923h                               ; e8 71 dc
     5213    call 01923h                               ; e8 b1 dc
    52375214    mov ax, word [bp+016h]                    ; 8b 46 16
    52385215    shr ax, 008h                              ; c1 e8 08
     
    52405217    push 002fch                               ; 68 fc 02
    52415218    push 00333h                               ; 68 33 03
    5242     jmp near 03b94h                           ; e9 d2 fe
     5219    jmp near 03b54h                           ; e9 d2 fe
    52435220    mov ax, word [bp+016h]                    ; 8b 46 16
    52445221    xor ah, ah                                ; 30 e4
     
    52505227    mov dx, strict word 00074h                ; ba 74 00
    52515228    mov ax, strict word 00040h                ; b8 40 00
    5252     call 0165eh                               ; e8 81 d9
     5229    call 0165eh                               ; e8 c1 d9
    52535230    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5254     jmp short 03ca0h                          ; eb bd
    5255 device_is_cdrom_:                            ; 0xf3ce3 LB 0x35
     5231    jmp short 03c60h                          ; eb bd
     5232device_is_cdrom_:                            ; 0xf3ca3 LB 0x35
    52565233    push bp                                   ; 55
    52575234    mov bp, sp                                ; 89 e5
     
    52615238    mov dx, strict word 0000eh                ; ba 0e 00
    52625239    mov ax, strict word 00040h                ; b8 40 00
    5263     call 0166ch                               ; e8 79 d9
     5240    call 0166ch                               ; e8 b9 d9
    52645241    cmp bl, 010h                              ; 80 fb 10
    5265     jc short 03cfch                           ; 72 04
     5242    jc short 03cbch                           ; 72 04
    52665243    xor ax, ax                                ; 31 c0
    5267     jmp short 03d11h                          ; eb 15
     5244    jmp short 03cd1h                          ; eb 15
    52685245    xor bh, bh                                ; 30 ff
    52695246    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    52715248    add bx, 00122h                            ; 81 c3 22 01
    52725249    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5273     jne short 03cf8h                          ; 75 ea
     5250    jne short 03cb8h                          ; 75 ea
    52745251    mov ax, strict word 00001h                ; b8 01 00
    52755252    lea sp, [bp-004h]                         ; 8d 66 fc
     
    52785255    pop bp                                    ; 5d
    52795256    retn                                      ; c3
    5280 cdrom_boot_:                                 ; 0xf3d18 LB 0x434
     5257cdrom_boot_:                                 ; 0xf3cd8 LB 0x434
    52815258    push bp                                   ; 55
    52825259    mov bp, sp                                ; 89 e5
     
    52895266    mov dx, strict word 0000eh                ; ba 0e 00
    52905267    mov ax, strict word 00040h                ; b8 40 00
    5291     call 0166ch                               ; e8 3f d9
     5268    call 0166ch                               ; e8 7f d9
    52925269    mov word [bp-01ah], ax                    ; 89 46 e6
    52935270    mov si, 00366h                            ; be 66 03
     
    52965273    mov word [bp-012h], ax                    ; 89 46 ee
    52975274    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5298     jmp short 03d4dh                          ; eb 09
     5275    jmp short 03d0dh                          ; eb 09
    52995276    inc byte [bp-00ch]                        ; fe 46 f4
    53005277    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5301     jnc short 03d59h                          ; 73 0c
     5278    jnc short 03d19h                          ; 73 0c
    53025279    mov al, byte [bp-00ch]                    ; 8a 46 f4
    53035280    xor ah, ah                                ; 30 e4
    5304     call 03ce3h                               ; e8 8e ff
     5281    call 03ca3h                               ; e8 8e ff
    53055282    test ax, ax                               ; 85 c0
    5306     je short 03d44h                           ; 74 eb
     5283    je short 03d04h                           ; 74 eb
    53075284    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5308     jc short 03d65h                           ; 72 06
     5285    jc short 03d25h                           ; 72 06
    53095286    mov ax, strict word 00002h                ; b8 02 00
    5310     jmp near 040e9h                           ; e9 84 03
     5287    jmp near 040a9h                           ; e9 84 03
    53115288    mov cx, strict word 0000ch                ; b9 0c 00
    53125289    xor bx, bx                                ; 31 db
    53135290    mov dx, ss                                ; 8c d2
    53145291    lea ax, [bp-026h]                         ; 8d 46 da
    5315     call 0a03ah                               ; e8 c8 62
     5292    call 09fbah                               ; e8 88 62
    53165293    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    53175294    mov ax, strict word 00011h                ; b8 11 00
     
    53305307    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    53315308    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5332     jmp short 03db0h                          ; eb 09
     5309    jmp short 03d70h                          ; eb 09
    53335310    inc byte [bp-00eh]                        ; fe 46 f2
    53345311    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5335     jnbe short 03dech                         ; 77 3c
     5312    jnbe short 03dach                         ; 77 3c
    53365313    mov al, byte [bp-00ch]                    ; 8a 46 f4
    53375314    xor ah, ah                                ; 30 e4
     
    53575334    call word [word di+0006ah]                ; ff 95 6a 00
    53585335    test ax, ax                               ; 85 c0
    5359     jne short 03da7h                          ; 75 bb
     5336    jne short 03d67h                          ; 75 bb
    53605337    test ax, ax                               ; 85 c0
    5361     je short 03df6h                           ; 74 06
     5338    je short 03db6h                           ; 74 06
    53625339    mov ax, strict word 00003h                ; b8 03 00
    5363     jmp near 040e9h                           ; e9 f3 02
     5340    jmp near 040a9h                           ; e9 f3 02
    53645341    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5365     je short 03e03h                           ; 74 06
     5342    je short 03dc3h                           ; 74 06
    53665343    mov ax, strict word 00004h                ; b8 04 00
    5367     jmp near 040e9h                           ; e9 e6 02
     5344    jmp near 040a9h                           ; e9 e6 02
    53685345    xor di, di                                ; 31 ff
    5369     jmp short 03e0dh                          ; eb 06
     5346    jmp short 03dcdh                          ; eb 06
    53705347    inc di                                    ; 47
    53715348    cmp di, strict byte 00005h                ; 83 ff 05
    5372     jnc short 03e1dh                          ; 73 10
     5349    jnc short 03dddh                          ; 73 10
    53735350    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    53745351    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5375     je short 03e07h                           ; 74 f0
     5352    je short 03dc7h                           ; 74 f0
    53765353    mov ax, strict word 00005h                ; b8 05 00
    5377     jmp near 040e9h                           ; e9 cc 02
     5354    jmp near 040a9h                           ; e9 cc 02
    53785355    xor di, di                                ; 31 ff
    5379     jmp short 03e27h                          ; eb 06
     5356    jmp short 03de7h                          ; eb 06
    53805357    inc di                                    ; 47
    53815358    cmp di, strict byte 00017h                ; 83 ff 17
    5382     jnc short 03e37h                          ; 73 10
     5359    jnc short 03df7h                          ; 73 10
    53835360    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    53845361    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5385     je short 03e21h                           ; 74 f0
     5362    je short 03de1h                           ; 74 f0
    53865363    mov ax, strict word 00006h                ; b8 06 00
    5387     jmp near 040e9h                           ; e9 b2 02
     5364    jmp near 040a9h                           ; e9 b2 02
    53885365    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    53895366    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    54205397    call word [word di+0006ah]                ; ff 95 6a 00
    54215398    test ax, ax                               ; 85 c0
    5422     je short 03e99h                           ; 74 06
     5399    je short 03e59h                           ; 74 06
    54235400    mov ax, strict word 00007h                ; b8 07 00
    5424     jmp near 040e9h                           ; e9 50 02
     5401    jmp near 040a9h                           ; e9 50 02
    54255402    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5426     je short 03ea6h                           ; 74 06
     5403    je short 03e66h                           ; 74 06
    54275404    mov ax, strict word 00008h                ; b8 08 00
    5428     jmp near 040e9h                           ; e9 43 02
     5405    jmp near 040a9h                           ; e9 43 02
    54295406    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5430     je short 03eb3h                           ; 74 06
     5407    je short 03e73h                           ; 74 06
    54315408    mov ax, strict word 00009h                ; b8 09 00
    5432     jmp near 040e9h                           ; e9 36 02
     5409    jmp near 040a9h                           ; e9 36 02
    54335410    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5434     je short 03ec0h                           ; 74 06
     5411    je short 03e80h                           ; 74 06
    54355412    mov ax, strict word 0000ah                ; b8 0a 00
    5436     jmp near 040e9h                           ; e9 29 02
     5413    jmp near 040a9h                           ; e9 29 02
    54375414    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5438     jne short 03ebah                          ; 75 f3
     5415    jne short 03e7ah                          ; 75 f3
    54395416    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5440     je short 03ed4h                           ; 74 06
     5417    je short 03e94h                           ; 74 06
    54415418    mov ax, strict word 0000bh                ; b8 0b 00
    5442     jmp near 040e9h                           ; e9 15 02
     5419    jmp near 040a9h                           ; e9 15 02
    54435420    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    54445421    mov es, [bp-016h]                         ; 8e 46 ea
    54455422    mov byte [es:si+001h], al                 ; 26 88 44 01
    54465423    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5447     jne short 03eedh                          ; 75 07
     5424    jne short 03eadh                          ; 75 07
    54485425    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5449     jmp short 03f00h                          ; eb 13
     5426    jmp short 03ec0h                          ; eb 13
    54505427    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5451     jnc short 03efbh                          ; 73 07
     5428    jnc short 03ebbh                          ; 73 07
    54525429    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5453     jmp short 03f00h                          ; eb 05
     5430    jmp short 03ec0h                          ; eb 05
    54545431    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    54555432    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    54705447    mov word [bp-010h], ax                    ; 89 46 f0
    54715448    test ax, ax                               ; 85 c0
    5472     jne short 03f2fh                          ; 75 05
     5449    jne short 03eefh                          ; 75 05
    54735450    mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
    54745451    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    54795456    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    54805457    test di, di                               ; 85 ff
    5481     je short 03f51h                           ; 74 06
     5458    je short 03f11h                           ; 74 06
    54825459    cmp di, 00400h                            ; 81 ff 00 04
    5483     jbe short 03f57h                          ; 76 06
     5460    jbe short 03f17h                          ; 76 06
    54845461    mov ax, strict word 0000ch                ; b8 0c 00
    5485     jmp near 040e9h                           ; e9 92 01
     5462    jmp near 040a9h                           ; e9 92 01
    54865463    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    54875464    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    55275504    sal ax, 1                                 ; d1 e0
    55285505    rcl di, 1                                 ; d1 d7
    5529     loop 03fcbh                               ; e2 fa
     5506    loop 03f8bh                               ; e2 fa
    55305507    push di                                   ; 57
    55315508    push ax                                   ; 50
     
    55425519    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    55435520    test ax, ax                               ; 85 c0
    5544     je short 03fffh                           ; 74 06
     5521    je short 03fbfh                           ; 74 06
    55455522    mov ax, strict word 0000dh                ; b8 0d 00
    5546     jmp near 040e9h                           ; e9 ea 00
     5523    jmp near 040a9h                           ; e9 ea 00
    55475524    mov es, [bp-016h]                         ; 8e 46 ea
    55485525    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    55495526    cmp AL, strict byte 002h                  ; 3c 02
    5550     jc short 04017h                           ; 72 0d
    5551     jbe short 04032h                          ; 76 26
     5527    jc short 03fd7h                           ; 72 0d
     5528    jbe short 03ff2h                          ; 76 26
    55525529    cmp AL, strict byte 004h                  ; 3c 04
    5553     je short 04042h                           ; 74 32
     5530    je short 04002h                           ; 74 32
    55545531    cmp AL, strict byte 003h                  ; 3c 03
    5555     je short 0403ah                           ; 74 26
    5556     jmp near 0408eh                           ; e9 77 00
     5532    je short 03ffah                           ; 74 26
     5533    jmp near 0404eh                           ; e9 77 00
    55575534    cmp AL, strict byte 001h                  ; 3c 01
    5558     jne short 0408eh                          ; 75 73
     5535    jne short 0404eh                          ; 75 73
    55595536    mov es, [bp-016h]                         ; 8e 46 ea
    55605537    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    55615538    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    55625539    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5563     jmp short 0408eh                          ; eb 5c
     5540    jmp short 0404eh                          ; eb 5c
    55645541    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5565     jmp short 04024h                          ; eb ea
     5542    jmp short 03fe4h                          ; eb ea
    55665543    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5567     jmp short 04024h                          ; eb e2
     5544    jmp short 03fe4h                          ; eb e2
    55685545    mov dx, 001c4h                            ; ba c4 01
    55695546    mov ax, word [bp-010h]                    ; 8b 46 f0
    5570     call 01650h                               ; e8 05 d6
     5547    call 01650h                               ; e8 45 d6
    55715548    and AL, strict byte 03fh                  ; 24 3f
    55725549    xor ah, ah                                ; 30 e4
     
    55755552    mov dx, 001c4h                            ; ba c4 01
    55765553    mov ax, word [bp-010h]                    ; 8b 46 f0
    5577     call 01650h                               ; e8 f1 d5
     5554    call 01650h                               ; e8 31 d6
    55785555    xor ah, ah                                ; 30 e4
    55795556    mov bx, ax                                ; 89 c3
     
    55815558    mov dx, 001c5h                            ; ba c5 01
    55825559    mov ax, word [bp-010h]                    ; 8b 46 f0
    5583     call 01650h                               ; e8 e1 d5
     5560    call 01650h                               ; e8 21 d6
    55845561    xor ah, ah                                ; 30 e4
    55855562    add ax, bx                                ; 01 d8
     
    55895566    mov dx, 001c3h                            ; ba c3 01
    55905567    mov ax, word [bp-010h]                    ; 8b 46 f0
    5591     call 01650h                               ; e8 cc d5
     5568    call 01650h                               ; e8 0c d6
    55925569    xor ah, ah                                ; 30 e4
    55935570    inc ax                                    ; 40
     
    55965573    mov es, [bp-016h]                         ; 8e 46 ea
    55975574    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5598     je short 040cfh                           ; 74 37
     5575    je short 0408fh                           ; 74 37
    55995576    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5600     jne short 040b7h                          ; 75 18
     5577    jne short 04077h                          ; 75 18
    56015578    mov dx, strict word 00010h                ; ba 10 00
    56025579    mov ax, strict word 00040h                ; b8 40 00
    5603     call 01650h                               ; e8 a8 d5
     5580    call 01650h                               ; e8 e8 d5
    56045581    mov bl, al                                ; 88 c3
    56055582    or bl, 041h                               ; 80 cb 41
     
    56075584    mov dx, strict word 00010h                ; ba 10 00
    56085585    mov ax, strict word 00040h                ; b8 40 00
    5609     jmp short 040cch                          ; eb 15
     5586    jmp short 0408ch                          ; eb 15
    56105587    mov dx, 00304h                            ; ba 04 03
    56115588    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5612     call 01650h                               ; e8 90 d5
     5589    call 01650h                               ; e8 d0 d5
    56135590    mov bl, al                                ; 88 c3
    56145591    db  0feh, 0c3h
     
    56175594    mov dx, 00304h                            ; ba 04 03
    56185595    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5619     call 0165eh                               ; e8 8f d5
     5596    call 0165eh                               ; e8 cf d5
    56205597    mov es, [bp-016h]                         ; 8e 46 ea
    56215598    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5622     je short 040ddh                           ; 74 04
     5599    je short 0409dh                           ; 74 04
    56235600    mov byte [es:si], 001h                    ; 26 c6 04 01
    56245601    mov es, [bp-016h]                         ; 8e 46 ea
     
    56355612    retn                                      ; c3
    56365613    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5637     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0f2h, 044h, 0f1h
    5638     db  041h, 024h, 042h, 04eh, 042h, 019h, 042h, 04eh, 042h, 019h, 042h, 040h, 044h, 026h, 044h, 0f2h
    5639     db  044h, 0f2h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 0e9h, 044h, 026h
    5640     db  044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h
    5641     db  044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h
    5642 _int13_cdemu:                                ; 0xf414c LB 0x442
     5614    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0b2h, 044h, 0b1h
     5615    db  041h, 0e4h, 041h, 00eh, 042h, 0d9h, 041h, 00eh, 042h, 0d9h, 041h, 000h, 044h, 0e6h, 043h, 0b2h
     5616    db  044h, 0b2h, 044h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0a9h, 044h, 0e6h
     5617    db  043h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h
     5618    db  044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h
     5619_int13_cdemu:                                ; 0xf410c LB 0x442
    56435620    push bp                                   ; 55
    56445621    mov bp, sp                                ; 89 e5
     
    56485625    mov dx, strict word 0000eh                ; ba 0e 00
    56495626    mov ax, strict word 00040h                ; b8 40 00
    5650     call 0166ch                               ; e8 0f d5
     5627    call 0166ch                               ; e8 4f d5
    56515628    mov di, 00366h                            ; bf 66 03
    56525629    mov cx, ax                                ; 89 c1
     
    56645641    mov dx, strict word 00074h                ; ba 74 00
    56655642    mov ax, strict word 00040h                ; b8 40 00
    5666     call 0165eh                               ; e8 d2 d4
     5643    call 0165eh                               ; e8 12 d5
    56675644    mov es, cx                                ; 8e c1
    56685645    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5669     je short 041a3h                           ; 74 0f
     5646    je short 04163h                           ; 74 0f
    56705647    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    56715648    xor ah, ah                                ; 30 e4
     
    56735650    xor dh, dh                                ; 30 f6
    56745651    cmp ax, dx                                ; 39 d0
    5675     je short 041cch                           ; 74 29
     5652    je short 0418ch                           ; 74 29
    56765653    mov bx, 00da0h                            ; bb a0 0d
    56775654    mov cx, ds                                ; 8c d9
    56785655    mov ax, strict word 00004h                ; b8 04 00
    5679     call 01923h                               ; e8 75 d7
     5656    call 01923h                               ; e8 b5 d7
    56805657    mov ax, word [bp+012h]                    ; 8b 46 12
    56815658    xor ah, ah                                ; 30 e4
     
    56875664    push 00358h                               ; 68 58 03
    56885665    push strict byte 00004h                   ; 6a 04
    5689     call 01966h                               ; e8 a0 d7
     5666    call 01966h                               ; e8 e0 d7
    56905667    add sp, strict byte 0000ah                ; 83 c4 0a
    5691     jmp near 04512h                           ; e9 46 03
     5668    jmp near 044d2h                           ; e9 46 03
    56925669    mov ax, word [bp+016h]                    ; 8b 46 16
    56935670    shr ax, 008h                              ; c1 e8 08
    56945671    cmp ax, strict word 00050h                ; 3d 50 00
    5695     jnbe short 0424bh                         ; 77 74
     5672    jnbe short 0420bh                         ; 77 74
    56965673    push CS                                   ; 0e
    56975674    pop ES                                    ; 07
    56985675    mov cx, strict word 0001eh                ; b9 1e 00
    5699     mov di, 040f3h                            ; bf f3 40
     5676    mov di, 040b3h                            ; bf b3 40
    57005677    repne scasb                               ; f2 ae
    57015678    sal cx, 1                                 ; d1 e1
    57025679    mov di, cx                                ; 89 cf
    5703     mov ax, word [cs:di+04110h]               ; 2e 8b 85 10 41
     5680    mov ax, word [cs:di+040d0h]               ; 2e 8b 85 d0 40
    57045681    mov bx, word [bp+016h]                    ; 8b 5e 16
    57055682    xor bh, bh                                ; 30 ff
     
    57145691    add bx, bx                                ; 01 db
    57155692    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5716     je short 04216h                           ; 74 09
     5693    je short 041d6h                           ; 74 09
    57175694    mov al, byte [bp-006h]                    ; 8a 46 fa
    57185695    xor ah, ah                                ; 30 e4
    57195696    call word [word bx+00076h]                ; ff 97 76 00
    5720     jmp near 04426h                           ; e9 0d 02
     5697    jmp near 043e6h                           ; e9 0d 02
    57215698    mov ax, word [bp+016h]                    ; 8b 46 16
    57225699    xor ah, ah                                ; 30 e4
    57235700    or ah, 003h                               ; 80 cc 03
    5724     jmp near 0451ah                           ; e9 f6 02
     5701    jmp near 044dah                           ; e9 f6 02
    57255702    mov dx, strict word 00074h                ; ba 74 00
    57265703    mov ax, strict word 00040h                ; b8 40 00
    5727     call 01650h                               ; e8 23 d4
     5704    call 01650h                               ; e8 63 d4
    57285705    mov cl, al                                ; 88 c1
    57295706    xor ah, ah                                ; 30 e4
     
    57345711    mov dx, strict word 00074h                ; ba 74 00
    57355712    mov ax, strict word 00040h                ; b8 40 00
    5736     call 0165eh                               ; e8 1a d4
     5713    call 0165eh                               ; e8 5a d4
    57375714    test cl, cl                               ; 84 c9
    5738     je short 042a8h                           ; 74 60
    5739     jmp near 0452eh                           ; e9 e3 02
    5740     jmp near 044f2h                           ; e9 a4 02
     5715    je short 04268h                           ; 74 60
     5716    jmp near 044eeh                           ; e9 e3 02
     5717    jmp near 044b2h                           ; e9 a4 02
    57415718    mov es, [bp-008h]                         ; 8e 46 f8
    57425719    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    57625739    mov word [bp-00ah], cx                    ; 89 4e f6
    57635740    test cx, cx                               ; 85 c9
    5764     je short 042b6h                           ; 74 1e
     5741    je short 04276h                           ; 74 1e
    57655742    cmp di, word [bp-010h]                    ; 3b 7e f0
    5766     jc short 042a5h                           ; 72 08
     5743    jc short 04265h                           ; 72 08
    57675744    cmp ax, dx                                ; 39 d0
    5768     jnc short 042a5h                          ; 73 04
     5745    jnc short 04265h                          ; 73 04
    57695746    cmp si, bx                                ; 39 de
    5770     jc short 042abh                           ; 72 06
    5771     jmp near 04512h                           ; e9 6a 02
    5772     jmp near 0442ah                           ; e9 7f 01
     5747    jc short 0426bh                           ; 72 06
     5748    jmp near 044d2h                           ; e9 6a 02
     5749    jmp near 043eah                           ; e9 7f 01
    57735750    mov dx, word [bp+016h]                    ; 8b 56 16
    57745751    shr dx, 008h                              ; c1 ea 08
    57755752    cmp dx, strict byte 00004h                ; 83 fa 04
    5776     jne short 042b9h                          ; 75 03
    5777     jmp near 04426h                           ; e9 6d 01
     5753    jne short 04279h                          ; 75 03
     5754    jmp near 043e6h                           ; e9 6d 01
    57785755    mov dx, word [bp+010h]                    ; 8b 56 10
    57795756    shr dx, 004h                              ; c1 ea 04
     
    57865763    xor dl, dl                                ; 30 d2
    57875764    xor cx, cx                                ; 31 c9
    5788     call 09fe9h                               ; e8 12 5d
     5765    call 09f69h                               ; e8 d2 5c
    57895766    xor bx, bx                                ; 31 db
    57905767    add ax, si                                ; 01 f0
     
    57925769    mov bx, di                                ; 89 fb
    57935770    xor cx, cx                                ; 31 c9
    5794     call 09fe9h                               ; e8 05 5d
     5771    call 09f69h                               ; e8 c5 5c
    57955772    mov bx, ax                                ; 89 c3
    57965773    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    58275804    mov dx, ss                                ; 8c d2
    58285805    lea ax, [bp-02eh]                         ; 8d 46 d2
    5829     call 0a03ah                               ; e8 ff 5c
     5806    call 09fbah                               ; e8 bf 5c
    58305807    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    58315808    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    58775854    sal si, 1                                 ; d1 e6
    58785855    rcl di, 1                                 ; d1 d7
    5879     loop 043bdh                               ; e2 fa
     5856    loop 0437dh                               ; e2 fa
    58805857    push di                                   ; 57
    58815858    push si                                   ; 56
     
    58935870    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    58945871    test al, al                               ; 84 c0
    5895     je short 04426h                           ; 74 37
     5872    je short 043e6h                           ; 74 37
    58965873    mov bx, 00da0h                            ; bb a0 0d
    58975874    mov cx, ds                                ; 8c d9
    58985875    mov ax, strict word 00004h                ; b8 04 00
    5899     call 01923h                               ; e8 29 d5
     5876    call 01923h                               ; e8 69 d5
    59005877    mov al, dl                                ; 88 d0
    59015878    xor ah, ah                                ; 30 e4
     
    59075884    push 0038eh                               ; 68 8e 03
    59085885    push strict byte 00004h                   ; 6a 04
    5909     call 01966h                               ; e8 55 d5
     5886    call 01966h                               ; e8 95 d5
    59105887    add sp, strict byte 0000ah                ; 83 c4 0a
    59115888    mov ax, word [bp+016h]                    ; 8b 46 16
     
    59145891    mov word [bp+016h], ax                    ; 89 46 16
    59155892    mov byte [bp+016h], 000h                  ; c6 46 16 00
    5916     jmp near 0451dh                           ; e9 f7 00
     5893    jmp near 044ddh                           ; e9 f7 00
    59175894    mov byte [bp+017h], 000h                  ; c6 46 17 00
    59185895    xor bx, bx                                ; 31 db
    59195896    mov dx, strict word 00074h                ; ba 74 00
    59205897    mov ax, strict word 00040h                ; b8 40 00
    5921     call 0165eh                               ; e8 29 d2
     5898    call 0165eh                               ; e8 69 d2
    59225899    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    59235900    lea sp, [bp-004h]                         ; 8d 66 fc
     
    59675944    mov word [bp+010h], ax                    ; 89 46 10
    59685945    cmp dl, 003h                              ; 80 fa 03
    5969     je short 044cch                           ; 74 1a
     5946    je short 0448ch                           ; 74 1a
    59705947    cmp dl, 002h                              ; 80 fa 02
    5971     je short 044c8h                           ; 74 11
     5948    je short 04488h                           ; 74 11
    59725949    cmp dl, 001h                              ; 80 fa 01
    5973     jne short 044d0h                          ; 75 14
     5950    jne short 04490h                          ; 75 14
    59745951    mov ax, word [bp+010h]                    ; 8b 46 10
    59755952    xor al, al                                ; 30 c0
    59765953    or AL, strict byte 002h                   ; 0c 02
    59775954    mov word [bp+010h], ax                    ; 89 46 10
    5978     jmp short 044d0h                          ; eb 08
     5955    jmp short 04490h                          ; eb 08
    59795956    or AL, strict byte 004h                   ; 0c 04
    5980     jmp short 044c3h                          ; eb f7
     5957    jmp short 04483h                          ; eb f7
    59815958    or AL, strict byte 005h                   ; 0c 05
    5982     jmp short 044c3h                          ; eb f3
     5959    jmp short 04483h                          ; eb f3
    59835960    mov es, [bp-008h]                         ; 8e 46 f8
    59845961    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    5985     jc short 044ddh                           ; 72 03
    5986     jmp near 04426h                           ; e9 49 ff
     5962    jc short 0449dh                           ; 72 03
     5963    jmp near 043e6h                           ; e9 49 ff
    59875964    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    59885965    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5989     jmp short 044dah                          ; eb f1
     5966    jmp short 0449ah                          ; eb f1
    59905967    or bh, 003h                               ; 80 cf 03
    59915968    mov word [bp+016h], bx                    ; 89 5e 16
    5992     jmp near 0442ah                           ; e9 38 ff
     5969    jmp near 043eah                           ; e9 38 ff
    59935970    mov bx, 00da0h                            ; bb a0 0d
    59945971    mov cx, ds                                ; 8c d9
    59955972    mov ax, strict word 00004h                ; b8 04 00
    5996     call 01923h                               ; e8 26 d4
     5973    call 01923h                               ; e8 66 d4
    59975974    mov ax, word [bp+016h]                    ; 8b 46 16
    59985975    shr ax, 008h                              ; c1 e8 08
     
    60015978    push 003afh                               ; 68 af 03
    60025979    push strict byte 00004h                   ; 6a 04
    6003     call 01966h                               ; e8 57 d4
     5980    call 01966h                               ; e8 97 d4
    60045981    add sp, strict byte 00008h                ; 83 c4 08
    60055982    mov ax, word [bp+016h]                    ; 8b 46 16
     
    60125989    mov dx, strict word 00074h                ; ba 74 00
    60135990    mov ax, strict word 00040h                ; b8 40 00
    6014     call 0165eh                               ; e8 30 d1
     5991    call 0165eh                               ; e8 70 d1
    60155992    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6016     jmp near 04439h                           ; e9 04 ff
     5993    jmp near 043f9h                           ; e9 04 ff
    60175994    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6018     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 07ch, 046h, 0cch
    6019     db  04ah, 039h, 046h, 07ch, 046h, 02eh, 046h, 07ch, 046h, 02eh, 046h, 07ch, 046h, 0cch, 04ah, 07ch
    6020     db  046h, 07ch, 046h, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 060h, 046h, 0cch
    6021     db  04ah, 07ch, 046h, 069h, 046h, 098h, 046h, 02eh, 046h, 098h, 046h, 0d8h, 047h, 073h, 048h, 098h
    6022     db  046h, 09bh, 048h, 0e6h, 04ah, 0eeh, 04ah, 07ch, 046h
    6023 _int13_cdrom:                                ; 0xf458e LB 0x598
     5995    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 03ch, 046h, 071h
     5996    db  04ah, 0f9h, 045h, 03ch, 046h, 0eeh, 045h, 03ch, 046h, 0eeh, 045h, 03ch, 046h, 071h, 04ah, 03ch
     5997    db  046h, 03ch, 046h, 071h, 04ah, 071h, 04ah, 071h, 04ah, 071h, 04ah, 071h, 04ah, 020h, 046h, 071h
     5998    db  04ah, 03ch, 046h, 029h, 046h, 058h, 046h, 0eeh, 045h, 058h, 046h, 09ah, 047h, 035h, 048h, 058h
     5999    db  046h, 05dh, 048h, 08bh, 04ah, 093h, 04ah, 03ch, 046h
     6000_int13_cdrom:                                ; 0xf454e LB 0x57d
    60246001    push bp                                   ; 55
    60256002    mov bp, sp                                ; 89 e5
    60266003    push si                                   ; 56
    60276004    push di                                   ; 57
    6028     sub sp, strict byte 0002ah                ; 83 ec 2a
     6005    sub sp, strict byte 0002ch                ; 83 ec 2c
    60296006    mov dx, strict word 0000eh                ; ba 0e 00
    60306007    mov ax, strict word 00040h                ; b8 40 00
    6031     call 0166ch                               ; e8 cd d0
    6032     mov word [bp-01ah], ax                    ; 89 46 e6
     6008    call 0166ch                               ; e8 0d d1
     6009    mov word [bp-016h], ax                    ; 89 46 ea
    60336010    mov si, 00122h                            ; be 22 01
    6034     mov word [bp-00ch], ax                    ; 89 46 f4
     6011    mov word [bp-01eh], ax                    ; 89 46 e2
    60356012    xor bx, bx                                ; 31 db
    60366013    mov dx, strict word 00074h                ; ba 74 00
    60376014    mov ax, strict word 00040h                ; b8 40 00
    6038     call 0165eh                               ; e8 ab d0
     6015    call 0165eh                               ; e8 eb d0
    60396016    mov ax, word [bp+010h]                    ; 8b 46 10
    60406017    xor ah, ah                                ; 30 e4
    60416018    cmp ax, 000e0h                            ; 3d e0 00
    6042     jc short 045c2h                           ; 72 05
     6019    jc short 04582h                           ; 72 05
    60436020    cmp ax, 000f0h                            ; 3d f0 00
    6044     jc short 045e0h                           ; 72 1e
     6021    jc short 045a0h                           ; 72 1e
    60456022    mov ax, word [bp+010h]                    ; 8b 46 10
    60466023    xor ah, ah                                ; 30 e4
     
    60526029    push 003ebh                               ; 68 eb 03
    60536030    push strict byte 00004h                   ; 6a 04
    6054     call 01966h                               ; e8 8c d3
     6031    call 01966h                               ; e8 cc d3
    60556032    add sp, strict byte 0000ah                ; 83 c4 0a
    6056     jmp near 04b04h                           ; e9 24 05
     6033    jmp near 04aa9h                           ; e9 09 05
    60576034    mov ax, word [bp+010h]                    ; 8b 46 10
    60586035    xor ah, ah                                ; 30 e4
    6059     mov es, [bp-00ch]                         ; 8e 46 f4
     6036    mov es, [bp-01eh]                         ; 8e 46 e2
    60606037    mov bx, si                                ; 89 f3
    60616038    add bx, ax                                ; 01 c3
    60626039    mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
    6063     mov byte [bp-008h], dl                    ; 88 56 f8
     6040    mov byte [bp-006h], dl                    ; 88 56 fa
    60646041    cmp dl, 010h                              ; 80 fa 10
    6065     jc short 04609h                           ; 72 10
     6042    jc short 045c9h                           ; 72 10
    60666043    push ax                                   ; 50
    60676044    mov ax, word [bp+018h]                    ; 8b 46 18
     
    60706047    push 003dfh                               ; 68 df 03
    60716048    push 00416h                               ; 68 16 04
    6072     jmp short 045d5h                          ; eb cc
     6049    jmp short 04595h                          ; eb cc
    60736050    mov ax, word [bp+018h]                    ; 8b 46 18
    60746051    shr ax, 008h                              ; c1 e8 08
    60756052    cmp ax, strict word 00050h                ; 3d 50 00
    6076     jnbe short 0467ch                         ; 77 68
     6053    jnbe short 0463ch                         ; 77 68
    60776054    push CS                                   ; 0e
    60786055    pop ES                                    ; 07
    60796056    mov cx, strict word 0001eh                ; b9 1e 00
    6080     mov di, 04535h                            ; bf 35 45
     6057    mov di, 044f5h                            ; bf f5 44
    60816058    repne scasb                               ; f2 ae
    60826059    sal cx, 1                                 ; d1 e1
    60836060    mov di, cx                                ; 89 cf
    6084     mov ax, word [cs:di+04552h]               ; 2e 8b 85 52 45
     6061    mov ax, word [cs:di+04512h]               ; 2e 8b 85 12 45
    60856062    mov bx, word [bp+018h]                    ; 8b 5e 18
    60866063    xor bh, bh                                ; 30 ff
     
    60896066    xor ah, ah                                ; 30 e4
    60906067    or ah, 003h                               ; 80 cc 03
    6091     jmp near 04b0ch                           ; e9 d3 04
     6068    jmp near 04ab1h                           ; e9 b8 04
    60926069    mov dx, strict word 00074h                ; ba 74 00
    60936070    mov ax, strict word 00040h                ; b8 40 00
    6094     call 01650h                               ; e8 0e d0
     6071    call 01650h                               ; e8 4e d0
    60956072    mov cl, al                                ; 88 c1
    60966073    xor ah, ah                                ; 30 e4
     
    61016078    mov dx, strict word 00074h                ; ba 74 00
    61026079    mov ax, strict word 00040h                ; b8 40 00
    6103     call 0165eh                               ; e8 05 d0
     6080    call 0165eh                               ; e8 45 d0
    61046081    test cl, cl                               ; 84 c9
    6105     je short 04679h                           ; 74 1c
    6106     jmp near 04b20h                           ; e9 c0 04
     6082    je short 04639h                           ; 74 1c
     6083    jmp near 04ac5h                           ; e9 a5 04
    61076084    or bh, 002h                               ; 80 cf 02
    61086085    mov word [bp+018h], bx                    ; 89 5e 18
    6109     jmp near 04b0fh                           ; e9 a6 04
     6086    jmp near 04ab4h                           ; e9 8b 04
    61106087    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    61116088    or bh, 030h                               ; 80 cf 30
    61126089    mov word [bp+018h], bx                    ; 89 5e 18
    61136090    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6114     jmp near 04ad0h                           ; e9 54 04
     6091    jmp near 04a75h                           ; e9 39 04
    61156092    mov bx, 00da0h                            ; bb a0 0d
    61166093    mov cx, ds                                ; 8c d9
    61176094    mov ax, strict word 00004h                ; b8 04 00
    6118     call 01923h                               ; e8 9c d2
     6095    call 01923h                               ; e8 dc d2
    61196096    mov ax, word [bp+018h]                    ; 8b 46 18
    61206097    shr ax, 008h                              ; c1 e8 08
     
    61236100    push 00333h                               ; 68 33 03
    61246101    push strict byte 00004h                   ; 6a 04
    6125     jmp short 046d7h                          ; eb 3f
     6102    jmp short 04698h                          ; eb 40
    61266103    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    61276104    mov es, [bp+006h]                         ; 8e 46 06
    6128     mov word [bp-018h], bx                    ; 89 5e e8
    6129     mov [bp-012h], es                         ; 8c 46 ee
    6130     mov ax, word [es:bx+002h]                 ; 26 8b 47 02
    6131     mov word [bp-010h], ax                    ; 89 46 f0
     6105    mov word [bp-014h], bx                    ; 89 5e ec
     6106    mov [bp-010h], es                         ; 8c 46 f0
     6107    mov di, word [es:bx+002h]                 ; 26 8b 7f 02
    61326108    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     6109    mov word [bp-01ah], ax                    ; 89 46 e6
     6110    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     6111    mov word [bp-01ch], ax                    ; 89 46 e4
     6112    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
     6113    mov word [bp-00eh], ax                    ; 89 46 f2
     6114    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    61336115    mov word [bp-022h], ax                    ; 89 46 de
    6134     mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    6135     mov word [bp-01eh], ax                    ; 89 46 e2
    6136     mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
    6137     mov word [bp-016h], ax                    ; 89 46 ea
    6138     mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    6139     or di, ax                                 ; 09 c7
    6140     je short 046e0h                           ; 74 18
     6116    or ax, word [bp-00eh]                     ; 0b 46 f2
     6117    je short 046a1h                           ; 74 18
    61416118    mov ax, word [bp+018h]                    ; 8b 46 18
    61426119    shr ax, 008h                              ; c1 e8 08
     
    61456122    push 00448h                               ; 68 48 04
    61466123    push strict byte 00007h                   ; 6a 07
    6147     call 01966h                               ; e8 8c d2
     6124    call 01966h                               ; e8 cb d2
    61486125    add sp, strict byte 00008h                ; 83 c4 08
    6149     jmp near 04b04h                           ; e9 24 04
    6150     mov es, [bp-012h]                         ; 8e 46 ee
    6151     mov bx, word [bp-018h]                    ; 8b 5e e8
     6126    jmp near 04aa9h                           ; e9 08 04
     6127    mov es, [bp-010h]                         ; 8e 46 f0
     6128    mov bx, word [bp-014h]                    ; 8b 5e ec
    61526129    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
    6153     mov word [bp-016h], ax                    ; 89 46 ea
    6154     mov di, bx                                ; 89 df
    6155     mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
     6130    mov word [bp-00eh], ax                    ; 89 46 f2
     6131    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
     6132    mov word [bp-022h], ax                    ; 89 46 de
    61566133    mov ax, word [bp+018h]                    ; 8b 46 18
    61576134    shr ax, 008h                              ; c1 e8 08
    6158     mov word [bp-014h], ax                    ; 89 46 ec
     6135    mov word [bp-012h], ax                    ; 89 46 ee
    61596136    cmp ax, strict word 00044h                ; 3d 44 00
    6160     je short 04706h                           ; 74 05
     6137    je short 046c8h                           ; 74 05
    61616138    cmp ax, strict word 00047h                ; 3d 47 00
    6162     jne short 04709h                          ; 75 03
    6163     jmp near 04acch                           ; e9 c3 03
     6139    jne short 046cbh                          ; 75 03
     6140    jmp near 04a71h                           ; e9 a6 03
    61646141    mov cx, strict word 0000ch                ; b9 0c 00
    61656142    xor bx, bx                                ; 31 db
    61666143    mov dx, ss                                ; 8c d2
    6167     lea ax, [bp-02eh]                         ; 8d 46 d2
    6168     call 0a03ah                               ; e8 24 59
    6169     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    6170     mov ax, word [bp-016h]                    ; 8b 46 ea
    6171     mov dx, di                                ; 89 fa
     6144    lea ax, [bp-030h]                         ; 8d 46 d0
     6145    call 09fbah                               ; e8 e2 58
     6146    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
     6147    mov ax, word [bp-00eh]                    ; 8b 46 f2
     6148    mov dx, word [bp-022h]                    ; 8b 56 de
    61726149    xchg ah, al                               ; 86 c4
    61736150    xchg dh, dl                               ; 86 d6
    61746151    xchg dx, ax                               ; 92
    6175     mov word [bp-02ch], ax                    ; 89 46 d4
    6176     mov word [bp-02ah], dx                    ; 89 56 d6
    6177     mov ax, word [bp-010h]                    ; 8b 46 f0
     6152    mov word [bp-02eh], ax                    ; 89 46 d2
     6153    mov word [bp-02ch], dx                    ; 89 56 d4
     6154    mov ax, di                                ; 89 f8
    61786155    xchg ah, al                               ; 86 c4
    6179     mov word [bp-027h], ax                    ; 89 46 d9
    6180     mov ax, word [bp-010h]                    ; 8b 46 f0
    6181     mov es, [bp-00ch]                         ; 8e 46 f4
    6182     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     6156    mov word [bp-029h], ax                    ; 89 46 d7
     6157    mov es, [bp-01eh]                         ; 8e 46 e2
     6158    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    61836159    mov word [es:si+010h], 00800h             ; 26 c7 44 10 00 08
    6184     mov al, byte [bp-008h]                    ; 8a 46 f8
     6160    mov al, byte [bp-006h]                    ; 8a 46 fa
    61856161    xor ah, ah                                ; 30 e4
    61866162    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    61896165    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
    61906166    xor ah, ah                                ; 30 e4
    6191     mov di, ax                                ; 89 c7
    6192     add di, ax                                ; 01 c7
    6193     push word [bp-022h]                       ; ff 76 de
    6194     push word [bp-01eh]                       ; ff 76 e2
     6167    add ax, ax                                ; 01 c0
     6168    mov word [bp-020h], ax                    ; 89 46 e0
     6169    push word [bp-01ah]                       ; ff 76 e6
     6170    push word [bp-01ch]                       ; ff 76 e4
    61956171    push strict byte 00001h                   ; 6a 01
    6196     mov ax, word [bp-010h]                    ; 8b 46 f0
     6172    mov ax, di                                ; 89 f8
    61976173    xor dx, dx                                ; 31 d2
    61986174    mov cx, strict word 0000bh                ; b9 0b 00
    61996175    sal ax, 1                                 ; d1 e0
    62006176    rcl dx, 1                                 ; d1 d2
    6201     loop 04769h                               ; e2 fa
     6177    loop 04728h                               ; e2 fa
    62026178    push dx                                   ; 52
    62036179    push ax                                   ; 50
    62046180    push strict byte 00000h                   ; 6a 00
    6205     mov al, byte [bp-008h]                    ; 8a 46 f8
     6181    mov al, byte [bp-006h]                    ; 8a 46 fa
    62066182    xor ah, ah                                ; 30 e4
    62076183    mov cx, ss                                ; 8c d1
    6208     lea bx, [bp-02eh]                         ; 8d 5e d2
     6184    lea bx, [bp-030h]                         ; 8d 5e d0
    62096185    mov dx, strict word 0000ch                ; ba 0c 00
     6186    mov di, word [bp-020h]                    ; 8b 7e e0
    62106187    call word [word di+0006ah]                ; ff 95 6a 00
    6211     mov word [bp-01ch], ax                    ; 89 46 e4
    6212     mov es, [bp-00ch]                         ; 8e 46 f4
     6188    mov word [bp-018h], ax                    ; 89 46 e8
     6189    mov es, [bp-01eh]                         ; 8e 46 e2
    62136190    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    62146191    mov dx, word [es:si+01ch]                 ; 26 8b 54 1c
     
    62166193    shr dx, 1                                 ; d1 ea
    62176194    rcr ax, 1                                 ; d1 d8
    6218     loop 04795h                               ; e2 fa
    6219     mov es, [bp-012h]                         ; 8e 46 ee
    6220     mov bx, word [bp-018h]                    ; 8b 5e e8
     6195    loop 04757h                               ; e2 fa
     6196    mov es, [bp-010h]                         ; 8e 46 f0
     6197    mov bx, word [bp-014h]                    ; 8b 5e ec
    62216198    mov word [es:bx+002h], ax                 ; 26 89 47 02
    6222     cmp byte [bp-01ch], 000h                  ; 80 7e e4 00
    6223     je short 047feh                           ; 74 53
     6199    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
     6200    je short 047c0h                           ; 74 53
    62246201    mov bx, 00da0h                            ; bb a0 0d
    62256202    mov cx, ds                                ; 8c d9
    62266203    mov ax, strict word 00004h                ; b8 04 00
    6227     call 01923h                               ; e8 6d d1
    6228     mov al, byte [bp-01ch]                    ; 8a 46 e4
     6204    call 01923h                               ; e8 ab d1
     6205    mov al, byte [bp-018h]                    ; 8a 46 e8
    62296206    xor ah, ah                                ; 30 e4
    62306207    push ax                                   ; 50
    6231     push word [bp-014h]                       ; ff 76 ec
     6208    push word [bp-012h]                       ; ff 76 ee
    62326209    push 003dfh                               ; 68 df 03
    62336210    push 00471h                               ; 68 71 04
    62346211    push strict byte 00004h                   ; 6a 04
    6235     call 01966h                               ; e8 9c d1
     6212    call 01966h                               ; e8 da d1
    62366213    add sp, strict byte 0000ah                ; 83 c4 0a
    62376214    mov ax, word [bp+018h]                    ; 8b 46 18
    62386215    xor ah, ah                                ; 30 e4
    62396216    or ah, 00ch                               ; 80 cc 0c
    6240     jmp near 04b0ch                           ; e9 34 03
     6217    jmp near 04ab1h                           ; e9 17 03
    62416218    cmp bx, strict byte 00002h                ; 83 fb 02
    6242     jnbe short 04846h                         ; 77 69
    6243     mov al, byte [bp-008h]                    ; 8a 46 f8
     6219    jnbe short 04808h                         ; 77 69
     6220    mov al, byte [bp-006h]                    ; 8a 46 fa
    62446221    xor ah, ah                                ; 30 e4
    62456222    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    6246     mov es, [bp-00ch]                         ; 8e 46 f4
     6223    mov es, [bp-01eh]                         ; 8e 46 e2
    62476224    mov di, si                                ; 89 f7
    62486225    add di, ax                                ; 01 c7
    62496226    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    62506227    cmp bx, strict byte 00002h                ; 83 fb 02
    6251     je short 0485ch                           ; 74 67
     6228    je short 0481eh                           ; 74 67
    62526229    cmp bx, strict byte 00001h                ; 83 fb 01
    6253     je short 04836h                           ; 74 3c
     6230    je short 047f8h                           ; 74 3c
    62546231    test bx, bx                               ; 85 db
    6255     je short 04801h                           ; 74 03
    6256     jmp near 04acch                           ; e9 cb 02
     6232    je short 047c3h                           ; 74 03
     6233    jmp near 04a71h                           ; e9 ae 02
    62576234    cmp AL, strict byte 0ffh                  ; 3c ff
    6258     jne short 04817h                          ; 75 12
     6235    jne short 047d9h                          ; 75 12
    62596236    mov ax, word [bp+018h]                    ; 8b 46 18
    62606237    xor ah, ah                                ; 30 e4
     
    62636240    xor al, al                                ; 30 c0
    62646241    or AL, strict byte 001h                   ; 0c 01
    6265     jmp near 04b0ch                           ; e9 f5 02
    6266     mov dl, byte [bp-008h]                    ; 8a 56 f8
     6242    jmp near 04ab1h                           ; e9 d8 02
     6243    mov dl, byte [bp-006h]                    ; 8a 56 fa
    62676244    xor dh, dh                                ; 30 f6
    62686245    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
    62696246    db  0feh, 0c0h
    62706247    ; inc al                                    ; fe c0
    6271     mov es, [bp-00ch]                         ; 8e 46 f4
     6248    mov es, [bp-01eh]                         ; 8e 46 e2
    62726249    add si, dx                                ; 01 d6
    62736250    mov byte [es:si+025h], al                 ; 26 88 44 25
     
    62766253    or AL, strict byte 001h                   ; 0c 01
    62776254    mov word [bp+018h], ax                    ; 89 46 18
    6278     jmp short 047feh                          ; eb c8
     6255    jmp short 047c0h                          ; eb c8
    62796256    test al, al                               ; 84 c0
    6280     jne short 04849h                          ; 75 0f
     6257    jne short 0480bh                          ; 75 0f
    62816258    or bh, 0b0h                               ; 80 cf b0
    62826259    mov word [bp+018h], bx                    ; 89 5e 18
    62836260    mov byte [bp+018h], al                    ; 88 46 18
    6284     jmp near 04b0fh                           ; e9 c9 02
    6285     jmp near 04b04h                           ; e9 bb 02
    6286     mov dl, byte [bp-008h]                    ; 8a 56 f8
     6261    jmp near 04ab4h                           ; e9 ac 02
     6262    jmp near 04aa9h                           ; e9 9e 02
     6263    mov dl, byte [bp-006h]                    ; 8a 56 fa
    62876264    xor dh, dh                                ; 30 f6
    62886265    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
    62896266    db  0feh, 0c8h
    62906267    ; dec al                                    ; fe c8
    6291     mov es, [bp-00ch]                         ; 8e 46 f4
     6268    mov es, [bp-01eh]                         ; 8e 46 e2
    62926269    add si, dx                                ; 01 d6
    62936270    mov byte [es:si+025h], al                 ; 26 88 44 25
    62946271    test al, al                               ; 84 c0
    6295     jne short 0486eh                          ; 75 0e
     6272    jne short 04830h                          ; 75 0e
    62966273    xor ah, ah                                ; 30 e4
    62976274    mov dx, word [bp+018h]                    ; 8b 56 18
     
    62996276    or dx, ax                                 ; 09 c2
    63006277    mov word [bp+018h], dx                    ; 89 56 18
    6301     jmp short 047feh                          ; eb 90
     6278    jmp short 047c0h                          ; eb 90
    63026279    mov ax, strict word 00001h                ; b8 01 00
    6303     jmp short 04862h                          ; eb ef
    6304     mov al, byte [bp-008h]                    ; 8a 46 f8
     6280    jmp short 04824h                          ; eb ef
     6281    mov al, byte [bp-006h]                    ; 8a 46 fa
    63056282    xor ah, ah                                ; 30 e4
    63066283    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    6307     mov es, [bp-00ch]                         ; 8e 46 f4
     6284    mov es, [bp-01eh]                         ; 8e 46 e2
    63086285    add si, ax                                ; 01 c6
    63096286    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    63106287    test al, al                               ; 84 c0
    6311     je short 0488eh                           ; 74 06
     6288    je short 04850h                           ; 74 06
    63126289    or bh, 0b1h                               ; 80 cf b1
    6313     jmp near 04663h                           ; e9 d5 fd
    6314     je short 048b7h                           ; 74 27
     6290    jmp near 04623h                           ; e9 d3 fd
     6291    je short 04879h                           ; 74 27
    63156292    mov ax, word [bp+018h]                    ; 8b 46 18
    63166293    xor ah, ah                                ; 30 e4
    63176294    or ah, 0b1h                               ; 80 cc b1
    6318     jmp near 04b0ch                           ; e9 71 02
     6295    jmp near 04ab1h                           ; e9 54 02
    63196296    mov dx, word [bp+00ch]                    ; 8b 56 0c
    63206297    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    63246301    mov di, dx                                ; 89 d7
    63256302    mov ax, word [es:di]                      ; 26 8b 05
    6326     mov word [bp-00eh], ax                    ; 89 46 f2
     6303    mov word [bp-00ch], ax                    ; 89 46 f4
    63276304    cmp ax, strict word 0001ah                ; 3d 1a 00
    6328     jnc short 048bah                          ; 73 05
    6329     jmp short 04846h                          ; eb 8f
    6330     jmp near 04acch                           ; e9 12 02
    6331     jc short 0491eh                           ; 72 62
    6332     mov al, byte [bp-008h]                    ; 8a 46 f8
     6305    jnc short 0487ch                          ; 73 05
     6306    jmp short 04808h                          ; eb 8f
     6307    jmp near 04a71h                           ; e9 f5 01
     6308    jc short 048e0h                           ; 72 62
     6309    mov al, byte [bp-006h]                    ; 8a 46 fa
    63336310    xor ah, ah                                ; 30 e4
    63346311    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    6335     mov es, [bp-00ch]                         ; 8e 46 f4
     6312    mov es, [bp-01eh]                         ; 8e 46 e2
    63366313    mov di, si                                ; 89 f7
    63376314    add di, ax                                ; 01 c7
     
    63526329    mov word [es:di+014h], strict word 0ffffh ; 26 c7 45 14 ff ff
    63536330    mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff
    6354     cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    6355     jc short 0497dh                           ; 72 59
     6331    cmp word [bp-00ch], strict byte 0001eh    ; 83 7e f4 1e
     6332    jnc short 048e9h                          ; 73 03
     6333    jmp near 049a5h                           ; e9 bc 00
    63566334    mov es, [bp-00ah]                         ; 8e 46 f6
    63576335    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
    6358     mov ax, word [bp-01ah]                    ; 8b 46 e6
     6336    mov ax, word [bp-016h]                    ; 8b 46 ea
    63596337    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    63606338    mov word [es:bx+01ah], 00356h             ; 26 c7 47 1a 56 03
    6361     mov cl, byte [bp-008h]                    ; 8a 4e f8
     6339    mov cl, byte [bp-006h]                    ; 8a 4e fa
    63626340    xor ch, ch                                ; 30 ed
    63636341    mov ax, cx                                ; 89 c8
     
    63686346    xor ah, ah                                ; 30 e4
    63696347    imul ax, ax, strict byte 00006h           ; 6b c0 06
    6370     mov es, [bp-00ch]                         ; 8e 46 f4
     6348    mov es, [bp-01eh]                         ; 8e 46 e2
    63716349    mov di, si                                ; 89 f7
    63726350    add di, ax                                ; 01 c7
    6373     mov dx, word [es:di+00206h]               ; 26 8b 95 06 02
    6374     mov ax, word [es:di+00208h]               ; 26 8b 85 08 02
    6375     mov word [bp-020h], ax                    ; 89 46 e0
    6376     mov al, byte [es:di+00205h]               ; 26 8a 85 05 02
    6377     mov byte [bp-006h], al                    ; 88 46 fa
    6378     imul cx, cx, strict byte 0001ch           ; 6b c9 1c
    6379     mov di, si                                ; 89 f7
    6380     add di, cx                                ; 01 cf
    6381     mov al, byte [es:di+026h]                 ; 26 8a 45 26
    6382     mov cx, strict word 00070h                ; b9 70 00
    6383     cmp AL, strict byte 001h                  ; 3c 01
    6384     jne short 04980h                          ; 75 08
    6385     mov ax, strict word 00001h                ; b8 01 00
    6386     jmp short 04982h                          ; eb 05
    6387     jmp near 04a00h                           ; e9 80 00
    6388     xor ax, ax                                ; 31 c0
    6389     or cx, ax                                 ; 09 c1
    6390     mov es, [bp-00ch]                         ; 8e 46 f4
    6391     mov word [es:si+00234h], dx               ; 26 89 94 34 02
    6392     mov ax, word [bp-020h]                    ; 8b 46 e0
     6351    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
     6352    mov dx, word [es:di+00208h]               ; 26 8b 95 08 02
     6353    mov word [bp-024h], dx                    ; 89 56 dc
     6354    mov dl, byte [es:di+00205h]               ; 26 8a 95 05 02
     6355    mov byte [bp-008h], dl                    ; 88 56 f8
     6356    mov word [es:si+00234h], ax               ; 26 89 84 34 02
     6357    mov ax, word [bp-024h]                    ; 8b 46 dc
    63936358    mov word [es:si+00236h], ax               ; 26 89 84 36 02
    6394     mov al, byte [bp-008h]                    ; 8a 46 f8
    6395     xor ah, ah                                ; 30 e4
     6359    mov ax, cx                                ; 89 c8
    63966360    cwd                                       ; 99
    6397     mov di, strict word 00002h                ; bf 02 00
    6398     idiv di                                   ; f7 ff
     6361    mov cx, strict word 00002h                ; b9 02 00
     6362    idiv cx                                   ; f7 f9
    63996363    or dl, 00eh                               ; 80 ca 0e
    64006364    sal dx, 004h                              ; c1 e2 04
    64016365    mov byte [es:si+00238h], dl               ; 26 88 94 38 02
    64026366    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
    6403     mov al, byte [bp-006h]                    ; 8a 46 fa
     6367    mov al, byte [bp-008h]                    ; 8a 46 f8
    64046368    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
    64056369    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
    64066370    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
    6407     mov word [es:si+0023eh], cx               ; 26 89 8c 3e 02
     6371    mov word [es:si+0023eh], strict word 00070h ; 26 c7 84 3e 02 70 00
    64086372    mov word [es:si+00240h], strict word 00000h ; 26 c7 84 40 02 00 00
    64096373    mov byte [es:si+00242h], 011h             ; 26 c6 84 42 02 11
    64106374    xor cl, cl                                ; 30 c9
    64116375    xor ch, ch                                ; 30 ed
    6412     jmp short 049e2h                          ; eb 05
     6376    jmp short 04985h                          ; eb 05
    64136377    cmp ch, 00fh                              ; 80 fd 0f
    6414     jnc short 049f6h                          ; 73 14
    6415     mov dl, ch                                ; 88 ea
    6416     xor dh, dh                                ; 30 f6
     6378    jnc short 0499bh                          ; 73 16
     6379    mov al, ch                                ; 88 e8
     6380    xor ah, ah                                ; 30 e4
     6381    mov dx, ax                                ; 89 c2
    64176382    add dx, 00356h                            ; 81 c2 56 03
    6418     mov ax, word [bp-01ah]                    ; 8b 46 e6
    6419     call 01650h                               ; e8 60 cc
     6383    mov ax, word [bp-016h]                    ; 8b 46 ea
     6384    call 01650h                               ; e8 bb cc
    64206385    add cl, al                                ; 00 c1
    64216386    db  0feh, 0c5h
    64226387    ; inc ch                                    ; fe c5
    6423     jmp short 049ddh                          ; eb e7
     6388    jmp short 04980h                          ; eb e5
    64246389    neg cl                                    ; f6 d9
    6425     mov es, [bp-00ch]                         ; 8e 46 f4
     6390    mov es, [bp-01eh]                         ; 8e 46 e2
    64266391    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    6427     cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    6428     jnc short 04a09h                          ; 73 03
    6429     jmp near 04acch                           ; e9 c3 00
    6430     mov al, byte [bp-008h]                    ; 8a 46 f8
     6392    cmp word [bp-00ch], strict byte 00042h    ; 83 7e f4 42
     6393    jnc short 049aeh                          ; 73 03
     6394    jmp near 04a71h                           ; e9 c3 00
     6395    mov al, byte [bp-006h]                    ; 8a 46 fa
    64316396    xor ah, ah                                ; 30 e4
    64326397    cwd                                       ; 99
     
    64366401    xor ah, ah                                ; 30 e4
    64376402    imul ax, ax, strict byte 00006h           ; 6b c0 06
    6438     mov es, [bp-00ch]                         ; 8e 46 f4
     6403    mov es, [bp-01eh]                         ; 8e 46 e2
    64396404    add si, ax                                ; 01 c6
    64406405    mov al, byte [es:si+00204h]               ; 26 8a 84 04 02
     
    64466411    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    64476412    test al, al                               ; 84 c0
    6448     jne short 04a51h                          ; 75 0c
     6413    jne short 049f6h                          ; 75 0c
    64496414    mov word [es:bx+024h], 05349h             ; 26 c7 47 24 49 53
    64506415    mov word [es:bx+026h], 02041h             ; 26 c7 47 26 41 20
     
    64556420    mov word [es:bx+02eh], 02020h             ; 26 c7 47 2e 20 20
    64566421    test al, al                               ; 84 c0
    6457     jne short 04a86h                          ; 75 16
     6422    jne short 04a2bh                          ; 75 16
    64586423    mov word [es:bx+030h], dx                 ; 26 89 57 30
    64596424    mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
    64606425    mov word [es:bx+034h], strict word 00000h ; 26 c7 47 34 00 00
    64616426    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
    6462     mov al, byte [bp-008h]                    ; 8a 46 f8
     6427    mov al, byte [bp-006h]                    ; 8a 46 fa
    64636428    and AL, strict byte 001h                  ; 24 01
    64646429    xor ah, ah                                ; 30 e4
     
    64706435    xor al, al                                ; 30 c0
    64716436    mov AH, strict byte 01eh                  ; b4 1e
    6472     jmp short 04ab1h                          ; eb 05
     6437    jmp short 04a56h                          ; eb 05
    64736438    cmp ah, 040h                              ; 80 fc 40
    6474     jnc short 04ac3h                          ; 73 12
     6439    jnc short 04a68h                          ; 73 12
    64756440    mov dl, ah                                ; 88 e2
    64766441    xor dh, dh                                ; 30 f6
     
    64816446    db  0feh, 0c4h
    64826447    ; inc ah                                    ; fe c4
    6483     jmp short 04aach                          ; eb e9
     6448    jmp short 04a51h                          ; eb e9
    64846449    neg al                                    ; f6 d8
    64856450    mov es, [bp-00ah]                         ; 8e 46 f6
     
    64896454    mov dx, strict word 00074h                ; ba 74 00
    64906455    mov ax, strict word 00040h                ; b8 40 00
    6491     call 0165eh                               ; e8 83 cb
     6456    call 0165eh                               ; e8 de cb
    64926457    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    64936458    lea sp, [bp-004h]                         ; 8d 66 fc
     
    64986463    or bh, 006h                               ; 80 cf 06
    64996464    mov word [bp+018h], bx                    ; 89 5e 18
    6500     jmp short 04b20h                          ; eb 32
     6465    jmp short 04ac5h                          ; eb 32
    65016466    cmp bx, strict byte 00006h                ; 83 fb 06
    6502     je short 04acch                           ; 74 d9
     6467    je short 04a71h                           ; 74 d9
    65036468    cmp bx, strict byte 00001h                ; 83 fb 01
    6504     jc short 04b04h                           ; 72 0c
    6505     jbe short 04acch                          ; 76 d2
     6469    jc short 04aa9h                           ; 72 0c
     6470    jbe short 04a71h                          ; 76 d2
    65066471    cmp bx, strict byte 00003h                ; 83 fb 03
    6507     jc short 04b04h                           ; 72 05
     6472    jc short 04aa9h                           ; 72 05
    65086473    cmp bx, strict byte 00004h                ; 83 fb 04
    6509     jbe short 04acch                          ; 76 c8
     6474    jbe short 04a71h                          ; 76 c8
    65106475    mov ax, word [bp+018h]                    ; 8b 46 18
    65116476    xor ah, ah                                ; 30 e4
     
    65176482    mov dx, strict word 00074h                ; ba 74 00
    65186483    mov ax, strict word 00040h                ; b8 40 00
    6519     call 0165eh                               ; e8 3e cb
     6484    call 0165eh                               ; e8 99 cb
    65206485    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6521     jmp short 04adfh                          ; eb b9
    6522 print_boot_device_:                          ; 0xf4b26 LB 0x4b
     6486    jmp short 04a84h                          ; eb b9
     6487print_boot_device_:                          ; 0xf4acb LB 0x4b
    65236488    push bp                                   ; 55
    65246489    mov bp, sp                                ; 89 e5
    65256490    push cx                                   ; 51
    65266491    test al, al                               ; 84 c0
    6527     je short 04b33h                           ; 74 05
     6492    je short 04ad8h                           ; 74 05
    65286493    mov dx, strict word 00002h                ; ba 02 00
    6529     jmp short 04b4dh                          ; eb 1a
     6494    jmp short 04af2h                          ; eb 1a
    65306495    test dl, dl                               ; 84 d2
    6531     je short 04b3ch                           ; 74 05
     6496    je short 04ae1h                           ; 74 05
    65326497    mov dx, strict word 00003h                ; ba 03 00
    6533     jmp short 04b4dh                          ; eb 11
     6498    jmp short 04af2h                          ; eb 11
    65346499    test bl, 080h                             ; f6 c3 80
    6535     jne short 04b45h                          ; 75 04
     6500    jne short 04aeah                          ; 75 04
    65366501    xor dh, dh                                ; 30 f6
    6537     jmp short 04b4dh                          ; eb 08
     6502    jmp short 04af2h                          ; eb 08
    65386503    test bl, 080h                             ; f6 c3 80
    6539     je short 04b6bh                           ; 74 21
     6504    je short 04b10h                           ; 74 21
    65406505    mov dx, strict word 00001h                ; ba 01 00
    65416506    mov bx, 00da0h                            ; bb a0 0d
    65426507    mov cx, ds                                ; 8c d9
    65436508    mov ax, strict word 00004h                ; b8 04 00
    6544     call 01923h                               ; e8 cb cd
     6509    call 01923h                               ; e8 26 ce
    65456510    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    65466511    add dx, 00dc6h                            ; 81 c2 c6 0d
     
    65486513    push 00494h                               ; 68 94 04
    65496514    push strict byte 00004h                   ; 6a 04
    6550     call 01966h                               ; e8 fe cd
     6515    call 01966h                               ; e8 59 ce
    65516516    add sp, strict byte 00006h                ; 83 c4 06
    65526517    lea sp, [bp-002h]                         ; 8d 66 fe
     
    65546519    pop bp                                    ; 5d
    65556520    retn                                      ; c3
    6556 print_boot_failure_:                         ; 0xf4b71 LB 0x96
     6521print_boot_failure_:                         ; 0xf4b16 LB 0x96
    65576522    push bp                                   ; 55
    65586523    mov bp, sp                                ; 89 e5
     
    65656530    mov si, cx                                ; 89 ce
    65666531    test al, al                               ; 84 c0
    6567     je short 04ba1h                           ; 74 1b
     6532    je short 04b46h                           ; 74 1b
    65686533    mov bx, 00da0h                            ; bb a0 0d
    65696534    mov cx, ds                                ; 8c d9
    65706535    mov ax, strict word 00004h                ; b8 04 00
    6571     call 01923h                               ; e8 92 cd
     6536    call 01923h                               ; e8 ed cd
    65726537    push 00ddah                               ; 68 da 0d
    65736538    push 004a8h                               ; 68 a8 04
    65746539    push strict byte 00004h                   ; 6a 04
    6575     call 01966h                               ; e8 ca cd
     6540    call 01966h                               ; e8 25 ce
    65766541    add sp, strict byte 00006h                ; 83 c4 06
    6577     jmp short 04be5h                          ; eb 44
     6542    jmp short 04b8ah                          ; eb 44
    65786543    test ah, ah                               ; 84 e4
    6579     je short 04bb5h                           ; 74 10
     6544    je short 04b5ah                           ; 74 10
    65806545    mov bx, 00da0h                            ; bb a0 0d
    65816546    mov cx, ds                                ; 8c d9
    65826547    mov ax, strict word 00004h                ; b8 04 00
    6583     call 01923h                               ; e8 73 cd
     6548    call 01923h                               ; e8 ce cd
    65846549    push 00de4h                               ; 68 e4 0d
    6585     jmp short 04b94h                          ; eb df
     6550    jmp short 04b39h                          ; eb df
    65866551    test bl, 080h                             ; f6 c3 80
    6587     je short 04bcbh                           ; 74 11
     6552    je short 04b70h                           ; 74 11
    65886553    mov bx, 00da0h                            ; bb a0 0d
    65896554    mov cx, ds                                ; 8c d9
    65906555    mov ax, strict word 00004h                ; b8 04 00
    6591     call 01923h                               ; e8 5e cd
     6556    call 01923h                               ; e8 b9 cd
    65926557    push si                                   ; 56
    65936558    push 00dd0h                               ; 68 d0 0d
    6594     jmp short 04bdah                          ; eb 0f
     6559    jmp short 04b7fh                          ; eb 0f
    65956560    mov bx, 00da0h                            ; bb a0 0d
    65966561    mov cx, ds                                ; 8c d9
    65976562    mov ax, strict word 00004h                ; b8 04 00
    6598     call 01923h                               ; e8 4d cd
     6563    call 01923h                               ; e8 a8 cd
    65996564    push si                                   ; 56
    66006565    push 00dc6h                               ; 68 c6 0d
    66016566    push 004bdh                               ; 68 bd 04
    66026567    push strict byte 00004h                   ; 6a 04
    6603     call 01966h                               ; e8 84 cd
     6568    call 01966h                               ; e8 df cd
    66046569    add sp, strict byte 00008h                ; 83 c4 08
    66056570    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6606     jne short 04bffh                          ; 75 14
     6571    jne short 04ba4h                          ; 75 14
    66076572    test dl, dl                               ; 84 d2
    6608     jne short 04bf4h                          ; 75 05
     6573    jne short 04b99h                          ; 75 05
    66096574    push 004d5h                               ; 68 d5 04
    6610     jmp short 04bf7h                          ; eb 03
     6575    jmp short 04b9ch                          ; eb 03
    66116576    push 004ffh                               ; 68 ff 04
    66126577    push strict byte 00007h                   ; 6a 07
    6613     call 01966h                               ; e8 6a cd
     6578    call 01966h                               ; e8 c5 cd
    66146579    add sp, strict byte 00004h                ; 83 c4 04
    66156580    lea sp, [bp-002h]                         ; 8d 66 fe
     
    66176582    pop bp                                    ; 5d
    66186583    retn 00002h                               ; c2 02 00
    6619 print_cdromboot_failure_:                    ; 0xf4c07 LB 0x27
     6584print_cdromboot_failure_:                    ; 0xf4bac LB 0x27
    66206585    push bp                                   ; 55
    66216586    mov bp, sp                                ; 89 e5
     
    66276592    mov cx, ds                                ; 8c d9
    66286593    mov ax, strict word 00004h                ; b8 04 00
    6629     call 01923h                               ; e8 09 cd
     6594    call 01923h                               ; e8 64 cd
    66306595    push dx                                   ; 52
    66316596    push 00534h                               ; 68 34 05
    66326597    push strict byte 00004h                   ; 6a 04
    6633     call 01966h                               ; e8 43 cd
     6598    call 01966h                               ; e8 9e cd
    66346599    add sp, strict byte 00006h                ; 83 c4 06
    66356600    lea sp, [bp-006h]                         ; 8d 66 fa
     
    66396604    pop bp                                    ; 5d
    66406605    retn                                      ; c3
    6641 _int19_function:                             ; 0xf4c2e LB 0x271
     6606_int19_function:                             ; 0xf4bd3 LB 0x271
    66426607    push bp                                   ; 55
    66436608    mov bp, sp                                ; 89 e5
     
    66476612    mov dx, strict word 0000eh                ; ba 0e 00
    66486613    mov ax, strict word 00040h                ; b8 40 00
    6649     call 0166ch                               ; e8 2d ca
     6614    call 0166ch                               ; e8 88 ca
    66506615    mov bx, ax                                ; 89 c3
    66516616    mov word [bp-00eh], ax                    ; 89 46 f2
    66526617    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    66536618    mov ax, strict word 0003dh                ; b8 3d 00
    6654     call 016ach                               ; e8 5e ca
     6619    call 016ach                               ; e8 b9 ca
    66556620    mov dl, al                                ; 88 c2
    66566621    xor dh, dh                                ; 30 f6
    66576622    mov ax, strict word 00038h                ; b8 38 00
    6658     call 016ach                               ; e8 54 ca
     6623    call 016ach                               ; e8 af ca
    66596624    and AL, strict byte 0f0h                  ; 24 f0
    66606625    xor ah, ah                                ; 30 e4
     
    66636628    or si, ax                                 ; 09 c6
    66646629    mov ax, strict word 0003ch                ; b8 3c 00
    6665     call 016ach                               ; e8 43 ca
     6630    call 016ach                               ; e8 9e ca
    66666631    and AL, strict byte 00fh                  ; 24 0f
    66676632    xor ah, ah                                ; 30 e4
     
    66706635    mov dx, 0037dh                            ; ba 7d 03
    66716636    mov ax, bx                                ; 89 d8
    6672     call 01650h                               ; e8 d6 c9
     6637    call 01650h                               ; e8 31 ca
    66736638    test al, al                               ; 84 c0
    6674     je short 04c8ah                           ; 74 0c
     6639    je short 04c2fh                           ; 74 0c
    66756640    mov dx, 0037dh                            ; ba 7d 03
    66766641    mov ax, bx                                ; 89 d8
    6677     call 01650h                               ; e8 ca c9
     6642    call 01650h                               ; e8 25 ca
    66786643    xor ah, ah                                ; 30 e4
    66796644    mov si, ax                                ; 89 c6
    66806645    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6681     jne short 04ca0h                          ; 75 10
     6646    jne short 04c45h                          ; 75 10
    66826647    mov ax, strict word 0003ch                ; b8 3c 00
    6683     call 016ach                               ; e8 16 ca
     6648    call 016ach                               ; e8 71 ca
    66846649    and AL, strict byte 0f0h                  ; 24 f0
    66856650    xor ah, ah                                ; 30 e4
    66866651    sar ax, 004h                              ; c1 f8 04
    6687     call 07d8bh                               ; e8 eb 30
     6652    call 07d10h                               ; e8 cb 30
    66886653    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6689     jne short 04ca9h                          ; 75 03
     6654    jne short 04c4eh                          ; 75 03
    66906655    shr si, 004h                              ; c1 ee 04
    66916656    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6692     jne short 04cb2h                          ; 75 03
     6657    jne short 04c57h                          ; 75 03
    66936658    shr si, 008h                              ; c1 ee 08
    66946659    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6695     jne short 04cbbh                          ; 75 03
     6660    jne short 04c60h                          ; 75 03
    66966661    shr si, 00ch                              ; c1 ee 0c
    66976662    cmp si, strict byte 00010h                ; 83 fe 10
    6698     jnc short 04cc4h                          ; 73 04
     6663    jnc short 04c69h                          ; 73 04
    66996664    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    67006665    xor al, al                                ; 30 c0
     
    67056670    mov cx, ds                                ; 8c d9
    67066671    mov ax, strict word 00004h                ; b8 04 00
    6707     call 01923h                               ; e8 49 cc
     6672    call 01923h                               ; e8 a4 cc
    67086673    push si                                   ; 56
    67096674    mov al, byte [bp+004h]                    ; 8a 46 04
     
    67126677    push 00554h                               ; 68 54 05
    67136678    push strict byte 00004h                   ; 6a 04
    6714     call 01966h                               ; e8 7d cc
     6679    call 01966h                               ; e8 d8 cc
    67156680    add sp, strict byte 00008h                ; 83 c4 08
    67166681    and si, strict byte 0000fh                ; 83 e6 0f
    67176682    cmp si, strict byte 00002h                ; 83 fe 02
    6718     jc short 04d02h                           ; 72 0e
    6719     jbe short 04d11h                          ; 76 1b
     6683    jc short 04ca7h                           ; 72 0e
     6684    jbe short 04cb6h                          ; 76 1b
    67206685    cmp si, strict byte 00004h                ; 83 fe 04
    6721     je short 04d2fh                           ; 74 34
     6686    je short 04cd4h                           ; 74 34
    67226687    cmp si, strict byte 00003h                ; 83 fe 03
    6723     je short 04d25h                           ; 74 25
    6724     jmp short 04d5eh                          ; eb 5c
     6688    je short 04ccah                           ; 74 25
     6689    jmp short 04d03h                          ; eb 5c
    67256690    cmp si, strict byte 00001h                ; 83 fe 01
    6726     jne short 04d5eh                          ; 75 57
     6691    jne short 04d03h                          ; 75 57
    67276692    xor al, al                                ; 30 c0
    67286693    mov byte [bp-006h], al                    ; 88 46 fa
    67296694    mov byte [bp-008h], al                    ; 88 46 f8
    6730     jmp short 04d76h                          ; eb 65
     6695    jmp short 04d1bh                          ; eb 65
    67316696    mov dx, 0037ch                            ; ba 7c 03
    67326697    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6733     call 01650h                               ; e8 36 c9
     6698    call 01650h                               ; e8 91 c9
    67346699    add AL, strict byte 080h                  ; 04 80
    67356700    mov byte [bp-006h], al                    ; 88 46 fa
    67366701    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    6737     jmp short 04d76h                          ; eb 51
     6702    jmp short 04d1bh                          ; eb 51
    67386703    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    67396704    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    6740     jmp short 04d39h                          ; eb 0a
     6705    jmp short 04cdeh                          ; eb 0a
    67416706    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    67426707    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6743     je short 04d76h                           ; 74 3d
    6744     call 03d18h                               ; e8 dc ef
     6708    je short 04d1bh                           ; 74 3d
     6709    call 03cd8h                               ; e8 f7 ef
    67456710    mov bx, ax                                ; 89 c3
    67466711    test AL, strict byte 0ffh                 ; a8 ff
    6747     je short 04d65h                           ; 74 23
    6748     call 04c07h                               ; e8 c2 fe
     6712    je short 04d0ah                           ; 74 23
     6713    call 04bach                               ; e8 c2 fe
    67496714    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67506715    xor ah, ah                                ; 30 e4
     
    67566721    mov al, byte [bp-008h]                    ; 8a 46 f8
    67576722    mov cx, strict word 00001h                ; b9 01 00
    6758     call 04b71h                               ; e8 13 fe
     6723    call 04b16h                               ; e8 13 fe
    67596724    xor ax, ax                                ; 31 c0
    67606725    xor dx, dx                                ; 31 d2
    6761     jmp near 04e98h                           ; e9 33 01
     6726    jmp near 04e3dh                           ; e9 33 01
    67626727    mov dx, 00372h                            ; ba 72 03
    67636728    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6764     call 0166ch                               ; e8 fe c8
     6729    call 0166ch                               ; e8 59 c9
    67656730    mov di, ax                                ; 89 c7
    67666731    shr bx, 008h                              ; c1 eb 08
    67676732    mov byte [bp-006h], bl                    ; 88 5e fa
    67686733    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    6769     jne short 04dd1h                          ; 75 55
     6734    jne short 04d76h                          ; 75 55
    67706735    xor si, si                                ; 31 f6
    67716736    mov ax, 0e200h                            ; b8 00 e2
    67726737    mov es, ax                                ; 8e c0
    67736738    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6774     jne short 04d45h                          ; 75 bb
     6739    jne short 04ceah                          ; 75 bb
    67756740    mov cx, ax                                ; 89 c1
    67766741    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    67776742    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6778     jne short 04d45h                          ; 75 ad
     6743    jne short 04ceah                          ; 75 ad
    67796744    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6780     jne short 04d45h                          ; 75 a6
     6745    jne short 04ceah                          ; 75 a6
    67816746    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    67826747    mov dx, word [es:di]                      ; 26 8b 15
    67836748    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    67846749    cmp ax, 06568h                            ; 3d 68 65
    6785     jne short 04dd3h                          ; 75 24
     6750    jne short 04d78h                          ; 75 24
    67866751    cmp dx, 07445h                            ; 81 fa 45 74
    6787     jne short 04dd3h                          ; 75 1e
     6752    jne short 04d78h                          ; 75 1e
    67886753    mov bl, byte [bp-006h]                    ; 8a 5e fa
    67896754    xor bh, bh                                ; 30 ff
     
    67926757    mov al, byte [bp-008h]                    ; 8a 46 f8
    67936758    xor ah, ah                                ; 30 e4
    6794     call 04b26h                               ; e8 5f fd
     6759    call 04acbh                               ; e8 5f fd
    67956760    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    67966761    mov word [bp-010h], cx                    ; 89 4e f0
    6797     jmp short 04df2h                          ; eb 21
    6798     jmp short 04df8h                          ; eb 25
     6762    jmp short 04d97h                          ; eb 21
     6763    jmp short 04d9dh                          ; eb 25
    67996764    mov bl, byte [bp-006h]                    ; 8a 5e fa
    68006765    xor bh, bh                                ; 30 ff
     
    68036768    mov al, byte [bp-008h]                    ; 8a 46 f8
    68046769    xor ah, ah                                ; 30 e4
    6805     call 04b26h                               ; e8 41 fd
     6770    call 04acbh                               ; e8 41 fd
    68066771    sti                                       ; fb
    68076772    mov word [bp-010h], cx                    ; 89 4e f0
     
    68106775    mov word [bp-012h], ax                    ; 89 46 ee
    68116776    call far [bp-012h]                        ; ff 5e ee
    6812     jmp near 04d45h                           ; e9 4d ff
     6777    jmp near 04ceah                           ; e9 4d ff
    68136778    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6814     jne short 04e25h                          ; 75 27
     6779    jne short 04dcah                          ; 75 27
    68156780    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6816     jne short 04e25h                          ; 75 21
     6781    jne short 04dcah                          ; 75 21
    68176782    mov di, 007c0h                            ; bf c0 07
    68186783    mov es, di                                ; 8e c7
     
    68276792    sbb ax, strict byte 00000h                ; 83 d8 00
    68286793    test ax, ax                               ; 85 c0
    6829     je short 04e25h                           ; 74 03
    6830     jmp near 04d45h                           ; e9 20 ff
     6794    je short 04dcah                           ; 74 03
     6795    jmp near 04ceah                           ; e9 20 ff
    68316796    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6832     je short 04e2fh                           ; 74 04
     6797    je short 04dd4h                           ; 74 04
    68336798    xor bl, bl                                ; 30 db
    6834     jmp short 04e31h                          ; eb 02
     6799    jmp short 04dd6h                          ; eb 02
    68356800    mov BL, strict byte 001h                  ; b3 01
    68366801    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6837     je short 04e39h                           ; 74 02
     6802    je short 04ddeh                           ; 74 02
    68386803    mov BL, strict byte 001h                  ; b3 01
    68396804    xor dx, dx                                ; 31 d2
    68406805    mov ax, di                                ; 89 f8
    6841     call 0166ch                               ; e8 2c c8
     6806    call 0166ch                               ; e8 87 c8
    68426807    mov si, ax                                ; 89 c6
    68436808    mov dx, strict word 00002h                ; ba 02 00
    68446809    mov ax, di                                ; 89 f8
    6845     call 0166ch                               ; e8 22 c8
     6810    call 0166ch                               ; e8 7d c8
    68466811    cmp si, ax                                ; 39 c6
    6847     je short 04e5fh                           ; 74 11
     6812    je short 04e04h                           ; 74 11
    68486813    test bl, bl                               ; 84 db
    6849     jne short 04e77h                          ; 75 25
     6814    jne short 04e1ch                          ; 75 25
    68506815    mov dx, 001feh                            ; ba fe 01
    68516816    mov ax, di                                ; 89 f8
    6852     call 0166ch                               ; e8 12 c8
     6817    call 0166ch                               ; e8 6d c8
    68536818    cmp ax, 0aa55h                            ; 3d 55 aa
    6854     je short 04e77h                           ; 74 18
     6819    je short 04e1ch                           ; 74 18
    68556820    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68566821    xor ah, ah                                ; 30 e4
     
    68626827    mov al, byte [bp-008h]                    ; 8a 46 f8
    68636828    xor cx, cx                                ; 31 c9
    6864     jmp near 04d5bh                           ; e9 e4 fe
     6829    jmp near 04d00h                           ; e9 e4 fe
    68656830    mov bl, byte [bp-006h]                    ; 8a 5e fa
    68666831    xor bh, bh                                ; 30 ff
     
    68696834    mov al, byte [bp-008h]                    ; 8a 46 f8
    68706835    xor ah, ah                                ; 30 e4
    6871     call 04b26h                               ; e8 9d fc
     6836    call 04acbh                               ; e8 9d fc
    68726837    mov al, byte [bp-006h]                    ; 8a 46 fa
    68736838    xor ah, ah                                ; 30 e4
     
    68826847    pop bp                                    ; 5d
    68836848    retn                                      ; c3
    6884 keyboard_panic_:                             ; 0xf4e9f LB 0x13
     6849keyboard_panic_:                             ; 0xf4e44 LB 0x13
    68856850    push bp                                   ; 55
    68866851    mov bp, sp                                ; 89 e5
     
    68886853    push 00574h                               ; 68 74 05
    68896854    push strict byte 00007h                   ; 6a 07
    6890     call 01966h                               ; e8 bb ca
     6855    call 01966h                               ; e8 16 cb
    68916856    add sp, strict byte 00006h                ; 83 c4 06
    68926857    mov sp, bp                                ; 89 ec
    68936858    pop bp                                    ; 5d
    68946859    retn                                      ; c3
    6895 _keyboard_init:                              ; 0xf4eb2 LB 0x26a
     6860_keyboard_init:                              ; 0xf4e57 LB 0x26a
    68966861    push bp                                   ; 55
    68976862    mov bp, sp                                ; 89 e5
     
    69056870    ; sub ah, ah                                ; 2a e4
    69066871    test AL, strict byte 002h                 ; a8 02
    6907     je short 04ed5h                           ; 74 0d
     6872    je short 04e7ah                           ; 74 0d
    69086873    dec bx                                    ; 4b
    69096874    test bx, bx                               ; 85 db
    6910     jbe short 04ed5h                          ; 76 08
     6875    jbe short 04e7ah                          ; 76 08
    69116876    xor al, al                                ; 30 c0
    69126877    mov dx, 00080h                            ; ba 80 00
    69136878    out DX, AL                                ; ee
    6914     jmp short 04ebeh                          ; eb e9
     6879    jmp short 04e63h                          ; eb e9
    69156880    test bx, bx                               ; 85 db
    6916     jne short 04edeh                          ; 75 05
     6881    jne short 04e83h                          ; 75 05
    69176882    xor ax, ax                                ; 31 c0
    6918     call 04e9fh                               ; e8 c1 ff
     6883    call 04e44h                               ; e8 c1 ff
    69196884    mov bx, strict word 0ffffh                ; bb ff ff
    69206885    mov dx, strict word 00064h                ; ba 64 00
     
    69236888    ; sub ah, ah                                ; 2a e4
    69246889    test AL, strict byte 001h                 ; a8 01
    6925     jne short 04ef8h                          ; 75 0d
     6890    jne short 04e9dh                          ; 75 0d
    69266891    dec bx                                    ; 4b
    69276892    test bx, bx                               ; 85 db
    6928     jbe short 04ef8h                          ; 76 08
     6893    jbe short 04e9dh                          ; 76 08
    69296894    mov AL, strict byte 001h                  ; b0 01
    69306895    mov dx, 00080h                            ; ba 80 00
    69316896    out DX, AL                                ; ee
    6932     jmp short 04ee1h                          ; eb e9
     6897    jmp short 04e86h                          ; eb e9
    69336898    test bx, bx                               ; 85 db
    6934     jne short 04f02h                          ; 75 06
     6899    jne short 04ea7h                          ; 75 06
    69356900    mov ax, strict word 00001h                ; b8 01 00
    6936     call 04e9fh                               ; e8 9d ff
     6901    call 04e44h                               ; e8 9d ff
    69376902    mov dx, strict word 00060h                ; ba 60 00
    69386903    in AL, DX                                 ; ec
     
    69406905    ; sub ah, ah                                ; 2a e4
    69416906    cmp ax, strict word 00055h                ; 3d 55 00
    6942     je short 04f13h                           ; 74 06
     6907    je short 04eb8h                           ; 74 06
    69436908    mov ax, 003dfh                            ; b8 df 03
    6944     call 04e9fh                               ; e8 8c ff
     6909    call 04e44h                               ; e8 8c ff
    69456910    mov AL, strict byte 0abh                  ; b0 ab
    69466911    mov dx, strict word 00064h                ; ba 64 00
     
    69526917    ; sub ah, ah                                ; 2a e4
    69536918    test AL, strict byte 002h                 ; a8 02
    6954     je short 04f33h                           ; 74 0d
     6919    je short 04ed8h                           ; 74 0d
    69556920    dec bx                                    ; 4b
    69566921    test bx, bx                               ; 85 db
    6957     jbe short 04f33h                          ; 76 08
     6922    jbe short 04ed8h                          ; 76 08
    69586923    mov AL, strict byte 010h                  ; b0 10
    69596924    mov dx, 00080h                            ; ba 80 00
    69606925    out DX, AL                                ; ee
    6961     jmp short 04f1ch                          ; eb e9
     6926    jmp short 04ec1h                          ; eb e9
    69626927    test bx, bx                               ; 85 db
    6963     jne short 04f3dh                          ; 75 06
     6928    jne short 04ee2h                          ; 75 06
    69646929    mov ax, strict word 0000ah                ; b8 0a 00
    6965     call 04e9fh                               ; e8 62 ff
     6930    call 04e44h                               ; e8 62 ff
    69666931    mov bx, strict word 0ffffh                ; bb ff ff
    69676932    mov dx, strict word 00064h                ; ba 64 00
     
    69706935    ; sub ah, ah                                ; 2a e4
    69716936    test AL, strict byte 001h                 ; a8 01
    6972     jne short 04f57h                          ; 75 0d
     6937    jne short 04efch                          ; 75 0d
    69736938    dec bx                                    ; 4b
    69746939    test bx, bx                               ; 85 db
    6975     jbe short 04f57h                          ; 76 08
     6940    jbe short 04efch                          ; 76 08
    69766941    mov AL, strict byte 011h                  ; b0 11
    69776942    mov dx, 00080h                            ; ba 80 00
    69786943    out DX, AL                                ; ee
    6979     jmp short 04f40h                          ; eb e9
     6944    jmp short 04ee5h                          ; eb e9
    69806945    test bx, bx                               ; 85 db
    6981     jne short 04f61h                          ; 75 06
     6946    jne short 04f06h                          ; 75 06
    69826947    mov ax, strict word 0000bh                ; b8 0b 00
    6983     call 04e9fh                               ; e8 3e ff
     6948    call 04e44h                               ; e8 3e ff
    69846949    mov dx, strict word 00060h                ; ba 60 00
    69856950    in AL, DX                                 ; ec
     
    69876952    ; sub ah, ah                                ; 2a e4
    69886953    test ax, ax                               ; 85 c0
    6989     je short 04f71h                           ; 74 06
     6954    je short 04f16h                           ; 74 06
    69906955    mov ax, 003e0h                            ; b8 e0 03
    6991     call 04e9fh                               ; e8 2e ff
     6956    call 04e44h                               ; e8 2e ff
    69926957    mov AL, strict byte 0ffh                  ; b0 ff
    69936958    mov dx, strict word 00060h                ; ba 60 00
     
    69996964    ; sub ah, ah                                ; 2a e4
    70006965    test AL, strict byte 002h                 ; a8 02
    7001     je short 04f91h                           ; 74 0d
     6966    je short 04f36h                           ; 74 0d
    70026967    dec bx                                    ; 4b
    70036968    test bx, bx                               ; 85 db
    7004     jbe short 04f91h                          ; 76 08
     6969    jbe short 04f36h                          ; 76 08
    70056970    mov AL, strict byte 020h                  ; b0 20
    70066971    mov dx, 00080h                            ; ba 80 00
    70076972    out DX, AL                                ; ee
    7008     jmp short 04f7ah                          ; eb e9
     6973    jmp short 04f1fh                          ; eb e9
    70096974    test bx, bx                               ; 85 db
    7010     jne short 04f9bh                          ; 75 06
     6975    jne short 04f40h                          ; 75 06
    70116976    mov ax, strict word 00014h                ; b8 14 00
    7012     call 04e9fh                               ; e8 04 ff
     6977    call 04e44h                               ; e8 04 ff
    70136978    mov bx, strict word 0ffffh                ; bb ff ff
    70146979    mov dx, strict word 00064h                ; ba 64 00
     
    70176982    ; sub ah, ah                                ; 2a e4
    70186983    test AL, strict byte 001h                 ; a8 01
    7019     jne short 04fb5h                          ; 75 0d
     6984    jne short 04f5ah                          ; 75 0d
    70206985    dec bx                                    ; 4b
    70216986    test bx, bx                               ; 85 db
    7022     jbe short 04fb5h                          ; 76 08
     6987    jbe short 04f5ah                          ; 76 08
    70236988    mov AL, strict byte 021h                  ; b0 21
    70246989    mov dx, 00080h                            ; ba 80 00
    70256990    out DX, AL                                ; ee
    7026     jmp short 04f9eh                          ; eb e9
     6991    jmp short 04f43h                          ; eb e9
    70276992    test bx, bx                               ; 85 db
    7028     jne short 04fbfh                          ; 75 06
     6993    jne short 04f64h                          ; 75 06
    70296994    mov ax, strict word 00015h                ; b8 15 00
    7030     call 04e9fh                               ; e8 e0 fe
     6995    call 04e44h                               ; e8 e0 fe
    70316996    mov dx, strict word 00060h                ; ba 60 00
    70326997    in AL, DX                                 ; ec
     
    70346999    ; sub ah, ah                                ; 2a e4
    70357000    cmp ax, 000fah                            ; 3d fa 00
    7036     je short 04fd0h                           ; 74 06
     7001    je short 04f75h                           ; 74 06
    70377002    mov ax, 003e1h                            ; b8 e1 03
    7038     call 04e9fh                               ; e8 cf fe
     7003    call 04e44h                               ; e8 cf fe
    70397004    mov dx, strict word 00064h                ; ba 64 00
    70407005    in AL, DX                                 ; ec
     
    70427007    ; sub ah, ah                                ; 2a e4
    70437008    test AL, strict byte 001h                 ; a8 01
    7044     jne short 04fe2h                          ; 75 08
     7009    jne short 04f87h                          ; 75 08
    70457010    mov AL, strict byte 031h                  ; b0 31
    70467011    mov dx, 00080h                            ; ba 80 00
    70477012    out DX, AL                                ; ee
    7048     jmp short 04fd0h                          ; eb ee
     7013    jmp short 04f75h                          ; eb ee
    70497014    mov dx, strict word 00060h                ; ba 60 00
    70507015    in AL, DX                                 ; ec
     
    70527017    ; sub ah, ah                                ; 2a e4
    70537018    cmp ax, 000aah                            ; 3d aa 00
    7054     je short 04ffbh                           ; 74 0e
     7019    je short 04fa0h                           ; 74 0e
    70557020    in AL, DX                                 ; ec
    70567021    db  02ah, 0e4h
    70577022    ; sub ah, ah                                ; 2a e4
    70587023    cmp ax, 000aah                            ; 3d aa 00
    7059     je short 04ffbh                           ; 74 06
     7024    je short 04fa0h                           ; 74 06
    70607025    mov ax, 003e2h                            ; b8 e2 03
    7061     call 04e9fh                               ; e8 a4 fe
     7026    call 04e44h                               ; e8 a4 fe
    70627027    mov AL, strict byte 0f5h                  ; b0 f5
    70637028    mov dx, strict word 00060h                ; ba 60 00
     
    70697034    ; sub ah, ah                                ; 2a e4
    70707035    test AL, strict byte 002h                 ; a8 02
    7071     je short 0501bh                           ; 74 0d
     7036    je short 04fc0h                           ; 74 0d
    70727037    dec bx                                    ; 4b
    70737038    test bx, bx                               ; 85 db
    7074     jbe short 0501bh                          ; 76 08
     7039    jbe short 04fc0h                          ; 76 08
    70757040    mov AL, strict byte 040h                  ; b0 40
    70767041    mov dx, 00080h                            ; ba 80 00
    70777042    out DX, AL                                ; ee
    7078     jmp short 05004h                          ; eb e9
     7043    jmp short 04fa9h                          ; eb e9
    70797044    test bx, bx                               ; 85 db
    7080     jne short 05025h                          ; 75 06
     7045    jne short 04fcah                          ; 75 06
    70817046    mov ax, strict word 00028h                ; b8 28 00
    7082     call 04e9fh                               ; e8 7a fe
     7047    call 04e44h                               ; e8 7a fe
    70837048    mov bx, strict word 0ffffh                ; bb ff ff
    70847049    mov dx, strict word 00064h                ; ba 64 00
     
    70877052    ; sub ah, ah                                ; 2a e4
    70887053    test AL, strict byte 001h                 ; a8 01
    7089     jne short 0503fh                          ; 75 0d
     7054    jne short 04fe4h                          ; 75 0d
    70907055    dec bx                                    ; 4b
    70917056    test bx, bx                               ; 85 db
    7092     jbe short 0503fh                          ; 76 08
     7057    jbe short 04fe4h                          ; 76 08
    70937058    mov AL, strict byte 041h                  ; b0 41
    70947059    mov dx, 00080h                            ; ba 80 00
    70957060    out DX, AL                                ; ee
    7096     jmp short 05028h                          ; eb e9
     7061    jmp short 04fcdh                          ; eb e9
    70977062    test bx, bx                               ; 85 db
    7098     jne short 05049h                          ; 75 06
     7063    jne short 04feeh                          ; 75 06
    70997064    mov ax, strict word 00029h                ; b8 29 00
    7100     call 04e9fh                               ; e8 56 fe
     7065    call 04e44h                               ; e8 56 fe
    71017066    mov dx, strict word 00060h                ; ba 60 00
    71027067    in AL, DX                                 ; ec
     
    71047069    ; sub ah, ah                                ; 2a e4
    71057070    cmp ax, 000fah                            ; 3d fa 00
    7106     je short 0505ah                           ; 74 06
     7071    je short 04fffh                           ; 74 06
    71077072    mov ax, 003e3h                            ; b8 e3 03
    7108     call 04e9fh                               ; e8 45 fe
     7073    call 04e44h                               ; e8 45 fe
    71097074    mov AL, strict byte 060h                  ; b0 60
    71107075    mov dx, strict word 00064h                ; ba 64 00
     
    71167081    ; sub ah, ah                                ; 2a e4
    71177082    test AL, strict byte 002h                 ; a8 02
    7118     je short 0507ah                           ; 74 0d
     7083    je short 0501fh                           ; 74 0d
    71197084    dec bx                                    ; 4b
    71207085    test bx, bx                               ; 85 db
    7121     jbe short 0507ah                          ; 76 08
     7086    jbe short 0501fh                          ; 76 08
    71227087    mov AL, strict byte 050h                  ; b0 50
    71237088    mov dx, 00080h                            ; ba 80 00
    71247089    out DX, AL                                ; ee
    7125     jmp short 05063h                          ; eb e9
     7090    jmp short 05008h                          ; eb e9
    71267091    test bx, bx                               ; 85 db
    7127     jne short 05084h                          ; 75 06
     7092    jne short 05029h                          ; 75 06
    71287093    mov ax, strict word 00032h                ; b8 32 00
    7129     call 04e9fh                               ; e8 1b fe
     7094    call 04e44h                               ; e8 1b fe
    71307095    mov AL, strict byte 065h                  ; b0 65
    71317096    mov dx, strict word 00060h                ; ba 60 00
     
    71377102    ; sub ah, ah                                ; 2a e4
    71387103    test AL, strict byte 002h                 ; a8 02
    7139     je short 050a4h                           ; 74 0d
     7104    je short 05049h                           ; 74 0d
    71407105    dec bx                                    ; 4b
    71417106    test bx, bx                               ; 85 db
    7142     jbe short 050a4h                          ; 76 08
     7107    jbe short 05049h                          ; 76 08
    71437108    mov AL, strict byte 060h                  ; b0 60
    71447109    mov dx, 00080h                            ; ba 80 00
    71457110    out DX, AL                                ; ee
    7146     jmp short 0508dh                          ; eb e9
     7111    jmp short 05032h                          ; eb e9
    71477112    test bx, bx                               ; 85 db
    7148     jne short 050aeh                          ; 75 06
     7113    jne short 05053h                          ; 75 06
    71497114    mov ax, strict word 0003ch                ; b8 3c 00
    7150     call 04e9fh                               ; e8 f1 fd
     7115    call 04e44h                               ; e8 f1 fd
    71517116    mov AL, strict byte 0f4h                  ; b0 f4
    71527117    mov dx, strict word 00060h                ; ba 60 00
     
    71587123    ; sub ah, ah                                ; 2a e4
    71597124    test AL, strict byte 002h                 ; a8 02
    7160     je short 050ceh                           ; 74 0d
     7125    je short 05073h                           ; 74 0d
    71617126    dec bx                                    ; 4b
    71627127    test bx, bx                               ; 85 db
    7163     jbe short 050ceh                          ; 76 08
     7128    jbe short 05073h                          ; 76 08
    71647129    mov AL, strict byte 070h                  ; b0 70
    71657130    mov dx, 00080h                            ; ba 80 00
    71667131    out DX, AL                                ; ee
    7167     jmp short 050b7h                          ; eb e9
     7132    jmp short 0505ch                          ; eb e9
    71687133    test bx, bx                               ; 85 db
    7169     jne short 050d8h                          ; 75 06
     7134    jne short 0507dh                          ; 75 06
    71707135    mov ax, strict word 00046h                ; b8 46 00
    7171     call 04e9fh                               ; e8 c7 fd
     7136    call 04e44h                               ; e8 c7 fd
    71727137    mov bx, strict word 0ffffh                ; bb ff ff
    71737138    mov dx, strict word 00064h                ; ba 64 00
     
    71767141    ; sub ah, ah                                ; 2a e4
    71777142    test AL, strict byte 001h                 ; a8 01
    7178     jne short 050f2h                          ; 75 0d
     7143    jne short 05097h                          ; 75 0d
    71797144    dec bx                                    ; 4b
    71807145    test bx, bx                               ; 85 db
    7181     jbe short 050f2h                          ; 76 08
     7146    jbe short 05097h                          ; 76 08
    71827147    mov AL, strict byte 071h                  ; b0 71
    71837148    mov dx, 00080h                            ; ba 80 00
    71847149    out DX, AL                                ; ee
    7185     jmp short 050dbh                          ; eb e9
     7150    jmp short 05080h                          ; eb e9
    71867151    test bx, bx                               ; 85 db
    7187     jne short 050fch                          ; 75 06
     7152    jne short 050a1h                          ; 75 06
    71887153    mov ax, strict word 00046h                ; b8 46 00
    7189     call 04e9fh                               ; e8 a3 fd
     7154    call 04e44h                               ; e8 a3 fd
    71907155    mov dx, strict word 00060h                ; ba 60 00
    71917156    in AL, DX                                 ; ec
     
    71937158    ; sub ah, ah                                ; 2a e4
    71947159    cmp ax, 000fah                            ; 3d fa 00
    7195     je short 0510dh                           ; 74 06
     7160    je short 050b2h                           ; 74 06
    71967161    mov ax, 003e4h                            ; b8 e4 03
    7197     call 04e9fh                               ; e8 92 fd
     7162    call 04e44h                               ; e8 92 fd
    71987163    mov AL, strict byte 0a8h                  ; b0 a8
    71997164    mov dx, strict word 00064h                ; ba 64 00
    72007165    out DX, AL                                ; ee
    72017166    xor ax, ax                                ; 31 c0
    7202     call 0658ch                               ; e8 74 14
     7167    call 06513h                               ; e8 56 14
    72037168    mov sp, bp                                ; 89 ec
    72047169    pop bp                                    ; 5d
    72057170    retn                                      ; c3
    7206 enqueue_key_:                                ; 0xf511c LB 0x9e
     7171enqueue_key_:                                ; 0xf50c1 LB 0x9e
    72077172    push bp                                   ; 55
    72087173    mov bp, sp                                ; 89 e5
     
    72167181    mov dx, strict word 0001ah                ; ba 1a 00
    72177182    mov ax, strict word 00040h                ; b8 40 00
    7218     call 0166ch                               ; e8 3a c5
     7183    call 0166ch                               ; e8 95 c5
    72197184    mov di, ax                                ; 89 c7
    72207185    mov dx, strict word 0001ch                ; ba 1c 00
    72217186    mov ax, strict word 00040h                ; b8 40 00
    7222     call 0166ch                               ; e8 2f c5
     7187    call 0166ch                               ; e8 8a c5
    72237188    mov si, ax                                ; 89 c6
    72247189    lea cx, [si+002h]                         ; 8d 4c 02
    72257190    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7226     jc short 0514ah                           ; 72 03
     7191    jc short 050efh                           ; 72 03
    72277192    mov cx, strict word 0001eh                ; b9 1e 00
    72287193    cmp cx, di                                ; 39 f9
    7229     jne short 05152h                          ; 75 04
     7194    jne short 050f7h                          ; 75 04
    72307195    xor ax, ax                                ; 31 c0
    7231     jmp short 0517ch                          ; eb 2a
     7196    jmp short 05121h                          ; eb 2a
    72327197    mov al, bl                                ; 88 d8
    72337198    xor ah, ah                                ; 30 e4
     
    72357200    mov dx, si                                ; 89 f2
    72367201    mov ax, strict word 00040h                ; b8 40 00
    7237     call 0165eh                               ; e8 fe c4
     7202    call 0165eh                               ; e8 59 c5
    72387203    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    72397204    xor bh, bh                                ; 30 ff
    72407205    lea dx, [si+001h]                         ; 8d 54 01
    72417206    mov ax, strict word 00040h                ; b8 40 00
    7242     call 0165eh                               ; e8 f0 c4
     7207    call 0165eh                               ; e8 4b c5
    72437208    mov bx, cx                                ; 89 cb
    72447209    mov dx, strict word 0001ch                ; ba 1c 00
    72457210    mov ax, strict word 00040h                ; b8 40 00
    7246     call 0167ah                               ; e8 01 c5
     7211    call 0167ah                               ; e8 5c c5
    72477212    mov ax, strict word 00001h                ; b8 01 00
    72487213    lea sp, [bp-008h]                         ; 8d 66 f8
     
    72637228    cmp bh, byte [bx+si]                      ; 3a 38
    72647229    sub bl, byte [ss:di]                      ; 36 2a 1d
    7265     clc                                       ; f8
     7230    popfw                                     ; 9d
    72667231    push sp                                   ; 54
    7267     mov AL, strict byte 052h                  ; b0 52
     7232    push bp                                   ; 55
    72687233    push dx                                   ; 52
     7234    not word [bx+di-009h]                     ; f7 51 f7
     7235    push cx                                   ; 51
     7236    in AL, strict byte 052h                   ; e4 52
     7237    into                                      ; ce
     7238    push cx                                   ; 51
     7239    push 0dc53h                               ; 68 53 dc
     7240    push bx                                   ; 53
     7241    adc word [si+061h], strict byte 00054h    ; 83 54 61 54
     7242    pushfw                                    ; 9c
    72697243    push dx                                   ; 52
    7270     push dx                                   ; 52
    7271     push dx                                   ; 52
    7272     aas                                       ; 3f
    7273     push bx                                   ; 53
    7274     sub word [bp+si-03dh], dx                 ; 29 52 c3
    7275     push bx                                   ; 53
    7276     aaa                                       ; 37
     7244    not word [bx+di-009h]                     ; f7 51 f7
     7245    push cx                                   ; 51
     7246    db  026h, 053h
     7247    ; es push bx                                ; 26 53
     7248    in AL, DX                                 ; ec
     7249    push cx                                   ; 51
     7250    mov sp, 04153h                            ; bc 53 41
    72777251    push sp                                   ; 54
    7278     ficom word [si-044h]                      ; de 54 bc
    7279     push sp                                   ; 54
    7280     not word [bp+si+052h]                     ; f7 52 52
    7281     push dx                                   ; 52
    7282     push dx                                   ; 52
    7283     push dx                                   ; 52
    7284     adc word [bp+di+047h], 01752h             ; 81 53 47 52 17
    7285     push sp                                   ; 54
    7286     pushfw                                    ; 9c
    7287     push sp                                   ; 54
    7288     xlatb                                     ; d7
    7289     push sp                                   ; 54
    7290 _int09_function:                             ; 0xf51ba LB 0x494
     7252    jl short 051b3h                           ; 7c 54
     7253_int09_function:                             ; 0xf515f LB 0x494
    72917254    push bp                                   ; 55
    72927255    mov bp, sp                                ; 89 e5
     
    72967259    mov byte [bp-00ah], al                    ; 88 46 f6
    72977260    test al, al                               ; 84 c0
    7298     jne short 051e4h                          ; 75 19
     7261    jne short 05189h                          ; 75 19
    72997262    mov bx, 00da0h                            ; bb a0 0d
    73007263    mov cx, ds                                ; 8c d9
    73017264    mov ax, strict word 00004h                ; b8 04 00
    7302     call 01923h                               ; e8 4d c7
     7265    call 01923h                               ; e8 a8 c7
    73037266    push 00587h                               ; 68 87 05
    73047267    push strict byte 00004h                   ; 6a 04
    7305     call 01966h                               ; e8 88 c7
     7268    call 01966h                               ; e8 e3 c7
    73067269    add sp, strict byte 00004h                ; 83 c4 04
    7307     jmp near 052aah                           ; e9 c6 00
     7270    jmp near 0524fh                           ; e9 c6 00
    73087271    mov dx, strict word 00018h                ; ba 18 00
    73097272    mov ax, strict word 00040h                ; b8 40 00
    7310     call 01650h                               ; e8 63 c4
     7273    call 01650h                               ; e8 be c4
    73117274    mov byte [bp-010h], al                    ; 88 46 f0
    73127275    mov byte [bp-008h], al                    ; 88 46 f8
    73137276    mov dx, 00096h                            ; ba 96 00
    73147277    mov ax, strict word 00040h                ; b8 40 00
    7315     call 01650h                               ; e8 54 c4
     7278    call 01650h                               ; e8 af c4
    73167279    mov byte [bp-004h], al                    ; 88 46 fc
    73177280    mov byte [bp-00ch], al                    ; 88 46 f4
    73187281    mov dx, strict word 00017h                ; ba 17 00
    73197282    mov ax, strict word 00040h                ; b8 40 00
    7320     call 01650h                               ; e8 45 c4
     7283    call 01650h                               ; e8 a0 c4
    73217284    mov byte [bp-006h], al                    ; 88 46 fa
    73227285    mov byte [bp-00eh], al                    ; 88 46 f2
     
    73257288    pop ES                                    ; 07
    73267289    mov cx, strict word 00012h                ; b9 12 00
    7327     mov di, 05185h                            ; bf 85 51
     7290    mov di, 0512ah                            ; bf 2a 51
    73287291    repne scasb                               ; f2 ae
    73297292    sal cx, 1                                 ; d1 e1
    73307293    mov di, cx                                ; 89 cf
    7331     mov ax, word [cs:di+05196h]               ; 2e 8b 85 96 51
     7294    mov ax, word [cs:di+0513bh]               ; 2e 8b 85 3b 51
    73327295    jmp ax                                    ; ff e0
    73337296    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    73377300    mov dx, strict word 00017h                ; ba 17 00
    73387301    mov ax, strict word 00040h                ; b8 40 00
    7339     call 0165eh                               ; e8 21 c4
     7302    call 0165eh                               ; e8 7c c4
    73407303    or byte [bp-008h], 040h                   ; 80 4e f8 40
    73417304    mov al, byte [bp-008h]                    ; 8a 46 f8
    7342     jmp near 054c8h                           ; e9 81 02
     7305    jmp near 0546dh                           ; e9 81 02
    73437306    mov al, byte [bp-010h]                    ; 8a 46 f0
    73447307    and AL, strict byte 0bfh                  ; 24 bf
    73457308    mov byte [bp-008h], al                    ; 88 46 f8
    7346     jmp near 054c8h                           ; e9 76 02
     7309    jmp near 0546dh                           ; e9 76 02
    73477310    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    7348     jne short 0528bh                          ; 75 33
     7311    jne short 05230h                          ; 75 33
    73497312    mov al, byte [bp-00ah]                    ; 8a 46 f6
    73507313    and AL, strict byte 07fh                  ; 24 7f
    73517314    cmp AL, strict byte 02ah                  ; 3c 2a
    7352     jne short 05266h                          ; 75 05
     7315    jne short 0520bh                          ; 75 05
    73537316    mov dx, strict word 00002h                ; ba 02 00
    7354     jmp short 05269h                          ; eb 03
     7317    jmp short 0520eh                          ; eb 03
    73557318    mov dx, strict word 00001h                ; ba 01 00
    73567319    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    7357     je short 05278h                           ; 74 09
     7320    je short 0521dh                           ; 74 09
    73587321    mov al, dl                                ; 88 d0
    73597322    not al                                    ; f6 d0
    73607323    and byte [bp-00eh], al                    ; 20 46 f2
    7361     jmp short 0527bh                          ; eb 03
     7324    jmp short 05220h                          ; eb 03
    73627325    or byte [bp-00eh], dl                     ; 08 56 f2
    73637326    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    73667329    mov dx, strict word 00017h                ; ba 17 00
    73677330    mov ax, strict word 00040h                ; b8 40 00
    7368     call 0165eh                               ; e8 d3 c3
     7331    call 0165eh                               ; e8 2e c4
    73697332    mov al, byte [bp-00ah]                    ; 8a 46 f6
    73707333    and AL, strict byte 07fh                  ; 24 7f
    73717334    cmp AL, strict byte 01dh                  ; 3c 1d
    7372     je short 05298h                           ; 74 04
     7335    je short 0523dh                           ; 74 04
    73737336    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
    73747337    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
     
    73777340    mov dx, 00096h                            ; ba 96 00
    73787341    mov ax, strict word 00040h                ; b8 40 00
    7379     call 0165eh                               ; e8 b4 c3
     7342    call 0165eh                               ; e8 0f c4
    73807343    lea sp, [bp-002h]                         ; 8d 66 fe
    73817344    pop di                                    ; 5f
     
    73837346    retn                                      ; c3
    73847347    test byte [bp-004h], 001h                 ; f6 46 fc 01
    7385     jne short 0528bh                          ; 75 d5
     7348    jne short 05230h                          ; 75 d5
    73867349    mov al, byte [bp-006h]                    ; 8a 46 fa
    73877350    or AL, strict byte 004h                   ; 0c 04
     
    73917354    mov dx, strict word 00017h                ; ba 17 00
    73927355    mov ax, strict word 00040h                ; b8 40 00
    7393     call 0165eh                               ; e8 93 c3
     7356    call 0165eh                               ; e8 ee c3
    73947357    mov al, byte [bp-004h]                    ; 8a 46 fc
    73957358    test AL, strict byte 002h                 ; a8 02
    7396     je short 052e0h                           ; 74 0e
     7359    je short 05285h                           ; 74 0e
    73977360    or AL, strict byte 004h                   ; 0c 04
    73987361    mov byte [bp-00ch], al                    ; 88 46 f4
     
    74007363    mov bx, ax                                ; 89 c3
    74017364    mov dx, 00096h                            ; ba 96 00
    7402     jmp short 052efh                          ; eb 0f
     7365    jmp short 05294h                          ; eb 0f
    74037366    mov al, byte [bp-010h]                    ; 8a 46 f0
    74047367    or AL, strict byte 001h                   ; 0c 01
     
    74087371    mov dx, strict word 00018h                ; ba 18 00
    74097372    mov ax, strict word 00040h                ; b8 40 00
    7410     call 0165eh                               ; e8 69 c3
    7411     jmp short 0528bh                          ; eb 94
     7373    call 0165eh                               ; e8 c4 c3
     7374    jmp short 05230h                          ; eb 94
    74127375    test byte [bp-004h], 001h                 ; f6 46 fc 01
    7413     jne short 0528bh                          ; 75 8e
     7376    jne short 05230h                          ; 75 8e
    74147377    mov al, byte [bp-006h]                    ; 8a 46 fa
    74157378    and AL, strict byte 0fbh                  ; 24 fb
     
    74197382    mov dx, strict word 00017h                ; ba 17 00
    74207383    mov ax, strict word 00040h                ; b8 40 00
    7421     call 0165eh                               ; e8 4c c3
     7384    call 0165eh                               ; e8 a7 c3
    74227385    mov al, byte [bp-004h]                    ; 8a 46 fc
    74237386    test AL, strict byte 002h                 ; a8 02
    7424     je short 05327h                           ; 74 0e
     7387    je short 052cch                           ; 74 0e
    74257388    and AL, strict byte 0fbh                  ; 24 fb
    74267389    mov byte [bp-00ch], al                    ; 88 46 f4
     
    74287391    mov bx, ax                                ; 89 c3
    74297392    mov dx, 00096h                            ; ba 96 00
    7430     jmp short 05336h                          ; eb 0f
     7393    jmp short 052dbh                          ; eb 0f
    74317394    mov al, byte [bp-010h]                    ; 8a 46 f0
    74327395    and AL, strict byte 0feh                  ; 24 fe
     
    74367399    mov dx, strict word 00018h                ; ba 18 00
    74377400    mov ax, strict word 00040h                ; b8 40 00
    7438     call 0165eh                               ; e8 22 c3
    7439     jmp near 0528bh                           ; e9 4c ff
     7401    call 0165eh                               ; e8 7d c3
     7402    jmp near 05230h                           ; e9 4c ff
    74407403    mov al, byte [bp-006h]                    ; 8a 46 fa
    74417404    or AL, strict byte 008h                   ; 0c 08
     
    74457408    mov dx, strict word 00017h                ; ba 17 00
    74467409    mov ax, strict word 00040h                ; b8 40 00
    7447     call 0165eh                               ; e8 0a c3
     7410    call 0165eh                               ; e8 65 c3
    74487411    mov al, byte [bp-004h]                    ; 8a 46 fc
    74497412    test AL, strict byte 002h                 ; a8 02
    7450     je short 05369h                           ; 74 0e
     7413    je short 0530eh                           ; 74 0e
    74517414    or AL, strict byte 008h                   ; 0c 08
    74527415    mov byte [bp-00ch], al                    ; 88 46 f4
     
    74547417    mov bx, ax                                ; 89 c3
    74557418    mov dx, 00096h                            ; ba 96 00
    7456     jmp short 05378h                          ; eb 0f
     7419    jmp short 0531dh                          ; eb 0f
    74577420    mov al, byte [bp-010h]                    ; 8a 46 f0
    74587421    or AL, strict byte 002h                   ; 0c 02
     
    74627425    mov dx, strict word 00018h                ; ba 18 00
    74637426    mov ax, strict word 00040h                ; b8 40 00
    7464     call 0165eh                               ; e8 e0 c2
    7465     jmp near 0528bh                           ; e9 0a ff
     7427    call 0165eh                               ; e8 3b c3
     7428    jmp near 05230h                           ; e9 0a ff
    74667429    mov al, byte [bp-006h]                    ; 8a 46 fa
    74677430    and AL, strict byte 0f7h                  ; 24 f7
     
    74717434    mov dx, strict word 00017h                ; ba 17 00
    74727435    mov ax, strict word 00040h                ; b8 40 00
    7473     call 0165eh                               ; e8 c8 c2
     7436    call 0165eh                               ; e8 23 c3
    74747437    mov al, byte [bp-004h]                    ; 8a 46 fc
    74757438    test AL, strict byte 002h                 ; a8 02
    7476     je short 053abh                           ; 74 0e
     7439    je short 05350h                           ; 74 0e
    74777440    and AL, strict byte 0f7h                  ; 24 f7
    74787441    mov byte [bp-00ch], al                    ; 88 46 f4
     
    74807443    mov bx, ax                                ; 89 c3
    74817444    mov dx, 00096h                            ; ba 96 00
    7482     jmp short 053bah                          ; eb 0f
     7445    jmp short 0535fh                          ; eb 0f
    74837446    mov al, byte [bp-010h]                    ; 8a 46 f0
    74847447    and AL, strict byte 0fdh                  ; 24 fd
     
    74887451    mov dx, strict word 00018h                ; ba 18 00
    74897452    mov ax, strict word 00040h                ; b8 40 00
    7490     call 0165eh                               ; e8 9e c2
    7491     jmp near 0528bh                           ; e9 c8 fe
     7453    call 0165eh                               ; e8 f9 c2
     7454    jmp near 05230h                           ; e9 c8 fe
    74927455    test byte [bp-004h], 003h                 ; f6 46 fc 03
    7493     jne short 053e9h                          ; 75 20
     7456    jne short 0538eh                          ; 75 20
    74947457    mov al, byte [bp-010h]                    ; 8a 46 f0
    74957458    or AL, strict byte 020h                   ; 0c 20
     
    74997462    mov dx, strict word 00018h                ; ba 18 00
    75007463    mov ax, strict word 00040h                ; b8 40 00
    7501     call 0165eh                               ; e8 80 c2
     7464    call 0165eh                               ; e8 db c2
    75027465    mov al, byte [bp-006h]                    ; 8a 46 fa
    75037466    xor AL, strict byte 020h                  ; 34 20
    75047467    mov byte [bp-00eh], al                    ; 88 46 f2
    7505     jmp near 0527eh                           ; e9 95 fe
     7468    jmp near 05223h                           ; e9 95 fe
    75067469    mov al, byte [bp-010h]                    ; 8a 46 f0
    75077470    or AL, strict byte 008h                   ; 0c 08
     
    75117474    mov dx, strict word 00018h                ; ba 18 00
    75127475    mov ax, strict word 00040h                ; b8 40 00
    7513     call 0165eh                               ; e8 60 c2
     7476    call 0165eh                               ; e8 bb c2
    75147477    mov AL, strict byte 0aeh                  ; b0 ae
    75157478    mov dx, strict word 00064h                ; ba 64 00
    75167479    out DX, AL                                ; ee
    7517     call 0e034h                               ; e8 2d 8c
     7480    call 0e034h                               ; e8 88 8c
    75187481    mov dx, strict word 00018h                ; ba 18 00
    75197482    mov ax, strict word 00040h                ; b8 40 00
    7520     call 01650h                               ; e8 40 c2
     7483    call 01650h                               ; e8 9b c2
    75217484    test AL, strict byte 008h                 ; a8 08
    7522     jne short 05407h                          ; 75 f3
    7523     jmp near 0528bh                           ; e9 74 fe
     7485    jne short 053ach                          ; 75 f3
     7486    jmp near 05230h                           ; e9 74 fe
    75247487    test byte [bp-004h], 003h                 ; f6 46 fc 03
    7525     je short 05420h                           ; 74 03
    7526     jmp near 0528bh                           ; e9 6b fe
     7488    je short 053c5h                           ; 74 03
     7489    jmp near 05230h                           ; e9 6b fe
    75277490    mov al, byte [bp-010h]                    ; 8a 46 f0
    75287491    and AL, strict byte 0dfh                  ; 24 df
     
    75327495    mov dx, strict word 00018h                ; ba 18 00
    75337496    mov ax, strict word 00040h                ; b8 40 00
    7534     call 0165eh                               ; e8 29 c2
    7535     jmp short 0541dh                          ; eb e6
     7497    call 0165eh                               ; e8 84 c2
     7498    jmp short 053c2h                          ; eb e6
    75367499    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7537     je short 05470h                           ; 74 33
     7500    je short 05415h                           ; 74 33
    75387501    mov dx, strict word 0001ah                ; ba 1a 00
    75397502    mov ax, strict word 00040h                ; b8 40 00
    7540     call 0166ch                               ; e8 26 c2
     7503    call 0166ch                               ; e8 81 c2
    75417504    mov bx, ax                                ; 89 c3
    75427505    mov dx, strict word 0001ch                ; ba 1c 00
    75437506    mov ax, strict word 00040h                ; b8 40 00
    7544     call 0167ah                               ; e8 29 c2
     7507    call 0167ah                               ; e8 84 c2
    75457508    mov bx, 00080h                            ; bb 80 00
    75467509    mov dx, strict word 00071h                ; ba 71 00
    75477510    mov ax, strict word 00040h                ; b8 40 00
    7548     call 0165eh                               ; e8 01 c2
     7511    call 0165eh                               ; e8 5c c2
    75497512    mov AL, strict byte 0aeh                  ; b0 ae
    75507513    mov dx, strict word 00064h                ; ba 64 00
     
    75557518    xor dx, dx                                ; 31 d2
    75567519    xor ax, ax                                ; 31 c0
    7557     call 0511ch                               ; e8 ae fc
    7558     jmp short 0541dh                          ; eb ad
     7520    call 050c1h                               ; e8 ae fc
     7521    jmp short 053c2h                          ; eb ad
    75597522    mov al, byte [bp-010h]                    ; 8a 46 f0
    75607523    or AL, strict byte 010h                   ; 0c 10
     
    75647527    mov dx, strict word 00018h                ; ba 18 00
    75657528    mov ax, strict word 00040h                ; b8 40 00
    7566     call 0165eh                               ; e8 d9 c1
     7529    call 0165eh                               ; e8 34 c2
    75677530    mov al, byte [bp-006h]                    ; 8a 46 fa
    75687531    xor AL, strict byte 010h                  ; 34 10
     
    75727535    mov dx, strict word 00017h                ; ba 17 00
    75737536    mov ax, strict word 00040h                ; b8 40 00
    7574     call 0165eh                               ; e8 c4 c1
    7575     jmp short 0541dh                          ; eb 81
     7537    call 0165eh                               ; e8 1f c2
     7538    jmp short 053c2h                          ; eb 81
    75767539    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7577     je short 054a5h                           ; 74 03
    7578     jmp near 0528bh                           ; e9 e6 fd
     7540    je short 0544ah                           ; 74 03
     7541    jmp near 05230h                           ; e9 e6 fd
    75797542    mov al, byte [bp-010h]                    ; 8a 46 f0
    75807543    and AL, strict byte 0efh                  ; 24 ef
     
    75847547    mov dx, strict word 00018h                ; ba 18 00
    75857548    mov ax, strict word 00040h                ; b8 40 00
    7586     call 0165eh                               ; e8 a4 c1
    7587     jmp short 054a2h                          ; eb e6
     7549    call 0165eh                               ; e8 ff c1
     7550    jmp short 05447h                          ; eb e6
    75887551    mov al, byte [bp-010h]                    ; 8a 46 f0
    75897552    test AL, strict byte 004h                 ; a8 04
    7590     jne short 054a2h                          ; 75 df
     7553    jne short 05447h                          ; 75 df
    75917554    or AL, strict byte 004h                   ; 0c 04
    75927555    mov byte [bp-008h], al                    ; 88 46 f8
     
    75957558    mov dx, strict word 00018h                ; ba 18 00
    75967559    mov ax, strict word 00040h                ; b8 40 00
    7597     call 0165eh                               ; e8 89 c1
    7598     jmp short 054a2h                          ; eb cb
     7560    call 0165eh                               ; e8 e4 c1
     7561    jmp short 05447h                          ; eb cb
    75997562    mov al, byte [bp-010h]                    ; 8a 46 f0
    76007563    and AL, strict byte 0fbh                  ; 24 fb
    7601     jmp short 054aah                          ; eb cc
     7564    jmp short 0544fh                          ; eb cc
    76027565    mov al, byte [bp-006h]                    ; 8a 46 fa
    76037566    and AL, strict byte 00ch                  ; 24 0c
    76047567    cmp AL, strict byte 00ch                  ; 3c 0c
    7605     jne short 054f8h                          ; 75 11
     7568    jne short 0549dh                          ; 75 11
    76067569    mov bx, 01234h                            ; bb 34 12
    76077570    mov dx, strict word 00072h                ; ba 72 00
    76087571    mov ax, strict word 00040h                ; b8 40 00
    7609     call 0167ah                               ; e8 87 c1
     7572    call 0167ah                               ; e8 e2 c1
    76107573    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    76117574    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7612     je short 0550dh                           ; 74 0f
     7575    je short 054b2h                           ; 74 0f
    76137576    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    76147577    mov bl, byte [bp-008h]                    ; 8a 5e f8
    76157578    xor bh, bh                                ; 30 ff
    76167579    mov dx, strict word 00018h                ; ba 18 00
    7617     jmp near 052a4h                           ; e9 97 fd
     7580    jmp near 05249h                           ; e9 97 fd
    76187581    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76197582    test AL, strict byte 080h                 ; a8 80
    7620     je short 0554bh                           ; 74 37
     7583    je short 054f0h                           ; 74 37
    76217584    cmp AL, strict byte 0fah                  ; 3c fa
    7622     jne short 0552ah                          ; 75 12
     7585    jne short 054cfh                          ; 75 12
    76237586    mov dx, 00097h                            ; ba 97 00
    76247587    mov ax, strict word 00040h                ; b8 40 00
    7625     call 01650h                               ; e8 2f c1
     7588    call 01650h                               ; e8 8a c1
    76267589    mov bl, al                                ; 88 c3
    76277590    or bl, 010h                               ; 80 cb 10
    76287591    xor bh, bh                                ; 30 ff
    7629     jmp short 05540h                          ; eb 16
     7592    jmp short 054e5h                          ; eb 16
    76307593    cmp AL, strict byte 0feh                  ; 3c fe
    7631     je short 05531h                           ; 74 03
    7632     jmp near 0528bh                           ; e9 5a fd
     7594    je short 054d6h                           ; 74 03
     7595    jmp near 05230h                           ; e9 5a fd
    76337596    mov dx, 00097h                            ; ba 97 00
    76347597    mov ax, strict word 00040h                ; b8 40 00
    7635     call 01650h                               ; e8 16 c1
     7598    call 01650h                               ; e8 71 c1
    76367599    or AL, strict byte 020h                   ; 0c 20
    76377600    xor ah, ah                                ; 30 e4
     
    76397602    mov dx, 00097h                            ; ba 97 00
    76407603    mov ax, strict word 00040h                ; b8 40 00
    7641     call 0165eh                               ; e8 15 c1
    7642     jmp short 0552eh                          ; eb e3
     7604    call 0165eh                               ; e8 70 c1
     7605    jmp short 054d3h                          ; eb e3
    76437606    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    7644     jbe short 05570h                          ; 76 1f
     7607    jbe short 05515h                          ; 76 1f
    76457608    mov bx, 00da0h                            ; bb a0 0d
    76467609    mov cx, ds                                ; 8c d9
    76477610    mov ax, strict word 00004h                ; b8 04 00
    7648     call 01923h                               ; e8 c7 c3
     7611    call 01923h                               ; e8 22 c4
    76497612    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76507613    xor ah, ah                                ; 30 e4
     
    76527615    push 005a1h                               ; 68 a1 05
    76537616    push strict byte 00004h                   ; 6a 04
    7654     call 01966h                               ; e8 fc c3
     7617    call 01966h                               ; e8 57 c4
    76557618    add sp, strict byte 00006h                ; 83 c4 06
    7656     jmp near 052aah                           ; e9 3a fd
     7619    jmp near 0524fh                           ; e9 3a fd
    76577620    mov al, byte [bp-00eh]                    ; 8a 46 f2
    76587621    test AL, strict byte 008h                 ; a8 08
    7659     je short 0558ah                           ; 74 13
     7622    je short 0552fh                           ; 74 13
    76607623    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76617624    xor ah, ah                                ; 30 e4
     
    76637626    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    76647627    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7665     jmp near 0561ah                           ; e9 90 00
     7628    jmp near 055bfh                           ; e9 90 00
    76667629    test AL, strict byte 004h                 ; a8 04
    7667     je short 055a1h                           ; 74 13
     7630    je short 05546h                           ; 74 13
    76687631    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76697632    xor ah, ah                                ; 30 e4
     
    76717634    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    76727635    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7673     jmp near 0561ah                           ; e9 79 00
     7636    jmp near 055bfh                           ; e9 79 00
    76747637    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76757638    and AL, strict byte 002h                  ; 24 02
    76767639    test al, al                               ; 84 c0
    7677     jbe short 055beh                          ; 76 14
     7640    jbe short 05563h                          ; 76 14
    76787641    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76797642    cmp AL, strict byte 047h                  ; 3c 47
    7680     jc short 055beh                           ; 72 0d
     7643    jc short 05563h                           ; 72 0d
    76817644    cmp AL, strict byte 053h                  ; 3c 53
    7682     jnbe short 055beh                         ; 77 09
     7645    jnbe short 05563h                         ; 77 09
    76837646    mov DL, strict byte 0e0h                  ; b2 e0
    76847647    xor ah, ah                                ; 30 e4
    76857648    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7686     jmp short 05616h                          ; eb 58
     7649    jmp short 055bbh                          ; eb 58
    76877650    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7688     je short 055f3h                           ; 74 2f
     7651    je short 05598h                           ; 74 2f
    76897652    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76907653    xor ah, ah                                ; 30 e4
     
    76947657    mov al, byte [bp-00eh]                    ; 8a 46 f2
    76957658    test ax, dx                               ; 85 d0
    7696     je short 055e3h                           ; 74 0a
     7659    je short 05588h                           ; 74 0a
    76977660    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    76987661    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
    7699     jmp short 055ebh                          ; eb 08
     7662    jmp short 05590h                          ; eb 08
    77007663    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    77017664    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    77027665    shr ax, 008h                              ; c1 e8 08
    77037666    mov byte [bp-00ah], al                    ; 88 46 f6
    7704     jmp short 05620h                          ; eb 2d
     7667    jmp short 055c5h                          ; eb 2d
    77057668    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77067669    xor ah, ah                                ; 30 e4
     
    77107673    mov al, byte [bp-00eh]                    ; 8a 46 f2
    77117674    test ax, dx                               ; 85 d0
    7712     je short 05612h                           ; 74 0a
     7675    je short 055b7h                           ; 74 0a
    77137676    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    77147677    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    7715     jmp short 0561ah                          ; eb 08
     7678    jmp short 055bfh                          ; eb 08
    77167679    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    77177680    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     
    77197682    mov byte [bp-00ah], al                    ; 88 46 f6
    77207683    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7721     jne short 05640h                          ; 75 1a
     7684    jne short 055e5h                          ; 75 1a
    77227685    test dl, dl                               ; 84 d2
    7723     jne short 05640h                          ; 75 16
     7686    jne short 055e5h                          ; 75 16
    77247687    mov bx, 00da0h                            ; bb a0 0d
    77257688    mov cx, ds                                ; 8c d9
    77267689    mov ax, strict word 00004h                ; b8 04 00
    7727     call 01923h                               ; e8 ee c2
     7690    call 01923h                               ; e8 49 c3
    77287691    push 005d8h                               ; 68 d8 05
    77297692    push strict byte 00004h                   ; 6a 04
    7730     call 01966h                               ; e8 29 c3
     7693    call 01966h                               ; e8 84 c3
    77317694    add sp, strict byte 00004h                ; 83 c4 04
    77327695    mov bl, dl                                ; 88 d3
     
    77357698    xor ah, ah                                ; 30 e4
    77367699    mov dx, bx                                ; 89 da
    7737     jmp near 0546bh                           ; e9 1d fe
    7738 dequeue_key_:                                ; 0xf564e LB 0x94
     7700    jmp near 05410h                           ; e9 1d fe
     7701dequeue_key_:                                ; 0xf55f3 LB 0x94
    77397702    push bp                                   ; 55
    77407703    mov bp, sp                                ; 89 e5
     
    77497712    mov dx, strict word 0001ah                ; ba 1a 00
    77507713    mov ax, strict word 00040h                ; b8 40 00
    7751     call 0166ch                               ; e8 04 c0
     7714    call 0166ch                               ; e8 5f c0
    77527715    mov bx, ax                                ; 89 c3
    77537716    mov dx, strict word 0001ch                ; ba 1c 00
    77547717    mov ax, strict word 00040h                ; b8 40 00
    7755     call 0166ch                               ; e8 f9 bf
     7718    call 0166ch                               ; e8 54 c0
    77567719    cmp bx, ax                                ; 39 c3
    7757     je short 056b4h                           ; 74 3d
     7720    je short 05659h                           ; 74 3d
    77587721    mov dx, bx                                ; 89 da
    77597722    mov ax, strict word 00040h                ; b8 40 00
    7760     call 01650h                               ; e8 d1 bf
     7723    call 01650h                               ; e8 2c c0
    77617724    mov cl, al                                ; 88 c1
    77627725    lea dx, [bx+001h]                         ; 8d 57 01
    77637726    mov ax, strict word 00040h                ; b8 40 00
    7764     call 01650h                               ; e8 c6 bf
     7727    call 01650h                               ; e8 21 c0
    77657728    mov es, [bp-008h]                         ; 8e 46 f8
    77667729    mov byte [es:si], cl                      ; 26 88 0c
     
    77687731    mov byte [es:di], al                      ; 26 88 05
    77697732    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7770     je short 056afh                           ; 74 13
     7733    je short 05654h                           ; 74 13
    77717734    inc bx                                    ; 43
    77727735    inc bx                                    ; 43
    77737736    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7774     jc short 056a6h                           ; 72 03
     7737    jc short 0564bh                           ; 72 03
    77757738    mov bx, strict word 0001eh                ; bb 1e 00
    77767739    mov dx, strict word 0001ah                ; ba 1a 00
    77777740    mov ax, strict word 00040h                ; b8 40 00
    7778     call 0167ah                               ; e8 cb bf
     7741    call 0167ah                               ; e8 26 c0
    77797742    mov ax, strict word 00001h                ; b8 01 00
    7780     jmp short 056b6h                          ; eb 02
     7743    jmp short 0565bh                          ; eb 02
    77817744    xor ax, ax                                ; 31 c0
    77827745    lea sp, [bp-004h]                         ; 8d 66 fc
     
    77897752    or cl, byte [bx+di]                       ; 0a 09
    77907753    add ax, 00102h                            ; 05 02 01
    7791     add ah, ah                                ; 00 e4
     7754    add byte [bx+di+04057h], cl               ; 00 89 57 40
    77927755    push di                                   ; 57
    7793     wait                                      ; 9b
     7756    rcl byte [bx+01eh], CL                    ; d2 57 1e
     7757    pop ax                                    ; 58
     7758    das                                       ; 2f
     7759    pop ax                                    ; 58
     7760    pop ax                                    ; 58
     7761    pop ax                                    ; 58
     7762    popaw                                     ; 61
     7763    pop ax                                    ; 58
     7764    rcr byte [bx+si+004h], CL                 ; d2 58 04
     7765    pop cx                                    ; 59
     7766    xor bx, word [bx+di+06ch]                 ; 33 59 6c
     7767    pop cx                                    ; 59
     7768    int3                                      ; cc
    77947769    push di                                   ; 57
    7795     sub ax, 07958h                            ; 2d 58 79
    7796     pop ax                                    ; 58
    7797     mov bl, byte [bx+si-04dh]                 ; 8a 58 b3
    7798     pop ax                                    ; 58
    7799     mov sp, 02d58h                            ; bc 58 2d
    7800     pop cx                                    ; 59
    7801     pop di                                    ; 5f
    7802     pop cx                                    ; 59
    7803     mov ds, [bx+di-039h]                      ; 8e 59 c7
    7804     pop cx                                    ; 59
    7805     daa                                       ; 27
    7806     pop ax                                    ; 58
    7807 _int16_function:                             ; 0xf56e2 LB 0x2f0
     7770_int16_function:                             ; 0xf5687 LB 0x2f0
    78087771    push bp                                   ; 55
    78097772    mov bp, sp                                ; 89 e5
     
    78127775    mov dx, strict word 00017h                ; ba 17 00
    78137776    mov ax, strict word 00040h                ; b8 40 00
    7814     call 01650h                               ; e8 5e bf
     7777    call 01650h                               ; e8 b9 bf
    78157778    mov cl, al                                ; 88 c1
    78167779    mov bh, al                                ; 88 c7
    78177780    mov dx, 00097h                            ; ba 97 00
    78187781    mov ax, strict word 00040h                ; b8 40 00
    7819     call 01650h                               ; e8 51 bf
     7782    call 01650h                               ; e8 ac bf
    78207783    mov bl, al                                ; 88 c3
    78217784    mov dl, cl                                ; 88 ca
     
    78277790    xor al, dl                                ; 30 d0
    78287791    test ax, ax                               ; 85 c0
    7829     je short 0577bh                           ; 74 66
     7792    je short 05720h                           ; 74 66
    78307793    cli                                       ; fa
    78317794    mov AL, strict byte 0edh                  ; b0 ed
     
    78377800    ; sub ah, ah                                ; 2a e4
    78387801    test AL, strict byte 001h                 ; a8 01
    7839     jne short 0572eh                          ; 75 08
     7802    jne short 056d3h                          ; 75 08
    78407803    mov AL, strict byte 021h                  ; b0 21
    78417804    mov dx, 00080h                            ; ba 80 00
    78427805    out DX, AL                                ; ee
    7843     jmp short 0571ch                          ; eb ee
     7806    jmp short 056c1h                          ; eb ee
    78447807    mov dx, strict word 00060h                ; ba 60 00
    78457808    in AL, DX                                 ; ec
     
    78477810    ; sub ah, ah                                ; 2a e4
    78487811    cmp ax, 000fah                            ; 3d fa 00
    7849     jne short 0577ah                          ; 75 41
     7812    jne short 0571fh                          ; 75 41
    78507813    mov dl, bl                                ; 88 da
    78517814    and dl, 0c8h                              ; 80 e2 c8
     
    78677830    ; sub ah, ah                                ; 2a e4
    78687831    test AL, strict byte 001h                 ; a8 01
    7869     jne short 05769h                          ; 75 08
     7832    jne short 0570eh                          ; 75 08
    78707833    mov AL, strict byte 021h                  ; b0 21
    78717834    mov dx, 00080h                            ; ba 80 00
    78727835    out DX, AL                                ; ee
    7873     jmp short 05757h                          ; eb ee
     7836    jmp short 056fch                          ; eb ee
    78747837    mov dx, strict word 00060h                ; ba 60 00
    78757838    in AL, DX                                 ; ec
     
    78797842    mov dx, 00097h                            ; ba 97 00
    78807843    mov ax, strict word 00040h                ; b8 40 00
    7881     call 0165eh                               ; e8 e4 be
     7844    call 0165eh                               ; e8 3f bf
    78827845    sti                                       ; fb
    78837846    mov ax, word [bp+012h]                    ; 8b 46 12
    78847847    shr ax, 008h                              ; c1 e8 08
    78857848    cmp ax, 000a2h                            ; 3d a2 00
    7886     jnbe short 057e4h                         ; 77 5e
     7849    jnbe short 05789h                         ; 77 5e
    78877850    push CS                                   ; 0e
    78887851    pop ES                                    ; 07
    78897852    mov cx, strict word 0000ch                ; b9 0c 00
    7890     mov di, 056bfh                            ; bf bf 56
     7853    mov di, 05664h                            ; bf 64 56
    78917854    repne scasb                               ; f2 ae
    78927855    sal cx, 1                                 ; d1 e1
    78937856    mov di, cx                                ; 89 cf
    7894     mov ax, word [cs:di+056cah]               ; 2e 8b 85 ca 56
     7857    mov ax, word [cs:di+0566fh]               ; 2e 8b 85 6f 56
    78957858    jmp ax                                    ; ff e0
    78967859    push strict byte 00001h                   ; 6a 01
     
    78997862    mov dx, ss                                ; 8c d2
    79007863    lea ax, [bp-006h]                         ; 8d 46 fa
    7901     call 0564eh                               ; e8 a4 fe
     7864    call 055f3h                               ; e8 a4 fe
    79027865    test ax, ax                               ; 85 c0
    7903     jne short 057b9h                          ; 75 0b
     7866    jne short 0575eh                          ; 75 0b
    79047867    push 0060fh                               ; 68 0f 06
    79057868    push strict byte 00007h                   ; 6a 07
    7906     call 01966h                               ; e8 b0 c1
     7869    call 01966h                               ; e8 0b c2
    79077870    add sp, strict byte 00004h                ; 83 c4 04
    79087871    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7909     je short 057c5h                           ; 74 06
     7872    je short 0576ah                           ; 74 06
    79107873    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7911     je short 057cbh                           ; 74 06
     7874    je short 05770h                           ; 74 06
    79127875    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7913     jne short 057cfh                          ; 75 04
     7876    jne short 05774h                          ; 75 04
    79147877    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    79157878    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    79207883    or dx, ax                                 ; 09 c2
    79217884    mov word [bp+012h], dx                    ; 89 56 12
    7922     jmp near 05827h                           ; e9 43 00
     7885    jmp near 057cch                           ; e9 43 00
    79237886    mov bx, 00da0h                            ; bb a0 0d
    79247887    mov cx, ds                                ; 8c d9
    79257888    mov ax, strict word 00004h                ; b8 04 00
    7926     call 01923h                               ; e8 34 c1
     7889    call 01923h                               ; e8 8f c1
    79277890    mov ax, word [bp+012h]                    ; 8b 46 12
    79287891    shr ax, 008h                              ; c1 e8 08
     
    79307893    push 00633h                               ; 68 33 06
    79317894    push strict byte 00004h                   ; 6a 04
    7932     call 01966h                               ; e8 68 c1
     7895    call 01966h                               ; e8 c3 c1
    79337896    add sp, strict byte 00006h                ; 83 c4 06
    79347897    mov bx, 00da0h                            ; bb a0 0d
    79357898    mov cx, ds                                ; 8c d9
    79367899    mov ax, strict word 00004h                ; b8 04 00
    7937     call 01923h                               ; e8 17 c1
     7900    call 01923h                               ; e8 72 c1
    79387901    mov ax, word [bp+00eh]                    ; 8b 46 0e
    79397902    push ax                                   ; 50
     
    79467909    push 0065bh                               ; 68 5b 06
    79477910    push strict byte 00004h                   ; 6a 04
    7948     call 01966h                               ; e8 42 c1
     7911    call 01966h                               ; e8 9d c1
    79497912    add sp, strict byte 0000ch                ; 83 c4 0c
    79507913    lea sp, [bp-002h]                         ; 8d 66 fe
     
    79587921    mov dx, ss                                ; 8c d2
    79597922    lea ax, [bp-006h]                         ; 8d 46 fa
    7960     call 0564eh                               ; e8 0d fe
     7923    call 055f3h                               ; e8 0d fe
    79617924    test ax, ax                               ; 85 c0
    7962     jne short 0584bh                          ; 75 06
     7925    jne short 057f0h                          ; 75 06
    79637926    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7964     jmp short 05827h                          ; eb dc
     7927    jmp short 057cch                          ; eb dc
    79657928    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7966     je short 05857h                           ; 74 06
     7929    je short 057fch                           ; 74 06
    79677930    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7968     je short 0585dh                           ; 74 06
     7931    je short 05802h                           ; 74 06
    79697932    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7970     jne short 05861h                          ; 75 04
     7933    jne short 05806h                          ; 75 04
    79717934    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    79727935    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    79787941    mov word [bp+012h], dx                    ; 89 56 12
    79797942    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7980     jmp short 05827h                          ; eb ae
     7943    jmp short 057cch                          ; eb ae
    79817944    mov dx, strict word 00017h                ; ba 17 00
    79827945    mov ax, strict word 00040h                ; b8 40 00
    7983     call 01650h                               ; e8 ce bd
     7946    call 01650h                               ; e8 29 be
    79847947    mov dx, word [bp+012h]                    ; 8b 56 12
    79857948    mov dl, al                                ; 88 c2
    7986     jmp near 057deh                           ; e9 54 ff
     7949    jmp near 05783h                           ; e9 54 ff
    79877950    mov dl, byte [bp+010h]                    ; 8a 56 10
    79887951    xor dh, dh                                ; 30 f6
     
    79907953    shr ax, 008h                              ; c1 e8 08
    79917954    xor ah, ah                                ; 30 e4
    7992     call 0511ch                               ; e8 82 f8
     7955    call 050c1h                               ; e8 82 f8
    79937956    test ax, ax                               ; 85 c0
    7994     jne short 058abh                          ; 75 0d
     7957    jne short 05850h                          ; 75 0d
    79957958    mov ax, word [bp+012h]                    ; 8b 46 12
    79967959    xor al, al                                ; 30 c0
    79977960    or AL, strict byte 001h                   ; 0c 01
    79987961    mov word [bp+012h], ax                    ; 89 46 12
    7999     jmp near 05827h                           ; e9 7c ff
     7962    jmp near 057cch                           ; e9 7c ff
    80007963    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8001     jmp near 05827h                           ; e9 74 ff
     7964    jmp near 057cch                           ; e9 74 ff
    80027965    mov ax, word [bp+012h]                    ; 8b 46 12
    80037966    xor al, al                                ; 30 c0
    80047967    or AL, strict byte 030h                   ; 0c 30
    8005     jmp short 058a5h                          ; eb e9
     7968    jmp short 0584ah                          ; eb e9
    80067969    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    80077970    xor cx, cx                                ; 31 c9
     
    80167979    ; sub ah, ah                                ; 2a e4
    80177980    test AL, strict byte 001h                 ; a8 01
    8018     jne short 058e3h                          ; 75 0d
     7981    jne short 05888h                          ; 75 0d
    80197982    dec bx                                    ; 4b
    80207983    test bx, bx                               ; 85 db
    8021     jbe short 058e3h                          ; 76 08
     7984    jbe short 05888h                          ; 76 08
    80227985    mov dx, 00080h                            ; ba 80 00
    80237986    in AL, DX                                 ; ec
    80247987    db  02ah, 0e4h
    80257988    ; sub ah, ah                                ; 2a e4
    8026     jmp short 058cch                          ; eb e9
     7989    jmp short 05871h                          ; eb e9
    80277990    test bx, bx                               ; 85 db
    8028     jbe short 05927h                          ; 76 40
     7991    jbe short 058cch                          ; 76 40
    80297992    mov dx, strict word 00060h                ; ba 60 00
    80307993    in AL, DX                                 ; ec
     
    80327995    ; sub ah, ah                                ; 2a e4
    80337996    cmp ax, 000fah                            ; 3d fa 00
    8034     jne short 05927h                          ; 75 35
     7997    jne short 058cch                          ; 75 35
    80357998    mov bx, strict word 0ffffh                ; bb ff ff
    80367999    mov dx, strict word 00064h                ; ba 64 00
     
    80398002    ; sub ah, ah                                ; 2a e4
    80408003    test AL, strict byte 001h                 ; a8 01
    8041     jne short 0590ch                          ; 75 0d
     8004    jne short 058b1h                          ; 75 0d
    80428005    dec bx                                    ; 4b
    80438006    test bx, bx                               ; 85 db
    8044     jbe short 0590ch                          ; 76 08
     8007    jbe short 058b1h                          ; 76 08
    80458008    mov dx, 00080h                            ; ba 80 00
    80468009    in AL, DX                                 ; ec
    80478010    db  02ah, 0e4h
    80488011    ; sub ah, ah                                ; 2a e4
    8049     jmp short 058f5h                          ; eb e9
     8012    jmp short 0589ah                          ; eb e9
    80508013    test bx, bx                               ; 85 db
    8051     jbe short 0591eh                          ; 76 0e
     8014    jbe short 058c3h                          ; 76 0e
    80528015    shr cx, 008h                              ; c1 e9 08
    80538016    mov dx, strict word 00060h                ; ba 60 00
     
    80598022    dec byte [bp-004h]                        ; fe 4e fc
    80608023    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8061     jnbe short 058f2h                         ; 77 cb
     8024    jnbe short 05897h                         ; 77 cb
    80628025    mov word [bp+00ch], cx                    ; 89 4e 0c
    8063     jmp near 05827h                           ; e9 fa fe
     8026    jmp near 057cch                           ; e9 fa fe
    80648027    push strict byte 00001h                   ; 6a 01
    80658028    mov cx, ss                                ; 8c d1
     
    80678030    mov dx, ss                                ; 8c d2
    80688031    lea ax, [bp-006h]                         ; 8d 46 fa
    8069     call 0564eh                               ; e8 12 fd
     8032    call 055f3h                               ; e8 12 fd
    80708033    test ax, ax                               ; 85 c0
    8071     jne short 0594bh                          ; 75 0b
     8034    jne short 058f0h                          ; 75 0b
    80728035    push 0060fh                               ; 68 0f 06
    80738036    push strict byte 00007h                   ; 6a 07
    8074     call 01966h                               ; e8 1e c0
     8037    call 01966h                               ; e8 79 c0
    80758038    add sp, strict byte 00004h                ; 83 c4 04
    80768039    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8077     jne short 05954h                          ; 75 03
    8078     jmp near 057cfh                           ; e9 7b fe
     8040    jne short 058f9h                          ; 75 03
     8041    jmp near 05774h                           ; e9 7b fe
    80798042    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8080     jne short 0595dh                          ; 75 03
    8081     jmp near 057cbh                           ; e9 6e fe
    8082     jmp short 05951h                          ; eb f2
     8043    jne short 05902h                          ; 75 03
     8044    jmp near 05770h                           ; e9 6e fe
     8045    jmp short 058f6h                          ; eb f2
    80838046    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    80848047    push strict byte 00000h                   ; 6a 00
     
    80878050    mov dx, ss                                ; 8c d2
    80888051    lea ax, [bp-006h]                         ; 8d 46 fa
    8089     call 0564eh                               ; e8 db fc
     8052    call 055f3h                               ; e8 db fc
    80908053    test ax, ax                               ; 85 c0
    8091     jne short 0597ah                          ; 75 03
    8092     jmp near 05845h                           ; e9 cb fe
     8054    jne short 0591fh                          ; 75 03
     8055    jmp near 057eah                           ; e9 cb fe
    80938056    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8094     jne short 05983h                          ; 75 03
    8095     jmp near 05861h                           ; e9 de fe
     8057    jne short 05928h                          ; 75 03
     8058    jmp near 05806h                           ; e9 de fe
    80968059    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8097     jne short 0598ch                          ; 75 03
    8098     jmp near 0585dh                           ; e9 d1 fe
    8099     jmp short 05980h                          ; eb f2
     8060    jne short 05931h                          ; 75 03
     8061    jmp near 05802h                           ; e9 d1 fe
     8062    jmp short 05925h                          ; eb f2
    81008063    mov dx, strict word 00017h                ; ba 17 00
    81018064    mov ax, strict word 00040h                ; b8 40 00
    8102     call 01650h                               ; e8 b9 bc
     8065    call 01650h                               ; e8 14 bd
    81038066    mov dx, word [bp+012h]                    ; 8b 56 12
    81048067    mov dl, al                                ; 88 c2
     
    81068069    mov dx, strict word 00018h                ; ba 18 00
    81078070    mov ax, strict word 00040h                ; b8 40 00
    8108     call 01650h                               ; e8 a8 bc
     8071    call 01650h                               ; e8 03 bd
    81098072    mov bh, al                                ; 88 c7
    81108073    and bh, 073h                              ; 80 e7 73
    81118074    mov dx, 00096h                            ; ba 96 00
    81128075    mov ax, strict word 00040h                ; b8 40 00
    8113     call 01650h                               ; e8 9a bc
     8076    call 01650h                               ; e8 f5 bc
    81148077    and AL, strict byte 00ch                  ; 24 0c
    81158078    or al, bh                                 ; 08 f8
     
    81188081    xor ah, ah                                ; 30 e4
    81198082    sal ax, 008h                              ; c1 e0 08
    8120     jmp near 057dch                           ; e9 15 fe
     8083    jmp near 05781h                           ; e9 15 fe
    81218084    mov ax, word [bp+012h]                    ; 8b 46 12
    81228085    xor ah, ah                                ; 30 e4
    81238086    or ah, 080h                               ; 80 cc 80
    8124     jmp near 058a5h                           ; e9 d3 fe
    8125 set_geom_lba_:                               ; 0xf59d2 LB 0xe7
     8087    jmp near 0584ah                           ; e9 d3 fe
     8088set_geom_lba_:                               ; 0xf5977 LB 0xe7
    81268089    push bx                                   ; 53
    81278090    push cx                                   ; 51
     
    81398102    mov dx, word [bp+00ch]                    ; 8b 56 0c
    81408103    mov si, strict word 00020h                ; be 20 00
    8141     call 0a02ah                               ; e8 2b 46
     8104    call 09faah                               ; e8 06 46
    81428105    test ax, ax                               ; 85 c0
    8143     jne short 05a0fh                          ; 75 0c
     8106    jne short 059b4h                          ; 75 0c
    81448107    test bx, bx                               ; 85 db
    8145     jne short 05a0fh                          ; 75 08
     8108    jne short 059b4h                          ; 75 08
    81468109    test cx, cx                               ; 85 c9
    8147     jne short 05a0fh                          ; 75 04
     8110    jne short 059b4h                          ; 75 04
    81488111    test dx, dx                               ; 85 d2
    8149     je short 05a16h                           ; 74 07
     8112    je short 059bbh                           ; 74 07
    81508113    mov bx, strict word 0ffffh                ; bb ff ff
    81518114    mov si, bx                                ; 89 de
    8152     jmp short 05a1ch                          ; eb 06
     8115    jmp short 059c1h                          ; eb 06
    81538116    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    81548117    mov si, word [bp+00eh]                    ; 8b 76 0e
    81558118    mov word [bp-004h], bx                    ; 89 5e fc
    81568119    xor bx, bx                                ; 31 db
    8157     jmp short 05a28h                          ; eb 05
     8120    jmp short 059cdh                          ; eb 05
    81588121    cmp bx, strict byte 00004h                ; 83 fb 04
    8159     jnl short 05a4bh                          ; 7d 23
     8122    jnl short 059f0h                          ; 7d 23
    81608123    mov ax, word [bp-006h]                    ; 8b 46 fa
    81618124    cmp si, ax                                ; 39 c6
    8162     jc short 05a39h                           ; 72 0a
    8163     jne short 05a42h                          ; 75 11
     8125    jc short 059deh                           ; 72 0a
     8126    jne short 059e7h                          ; 75 11
    81648127    mov ax, word [bp-004h]                    ; 8b 46 fc
    81658128    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8166     jnbe short 05a42h                         ; 77 09
     8129    jnbe short 059e7h                         ; 77 09
    81678130    mov ax, word [bp-002h]                    ; 8b 46 fe
    81688131    inc ax                                    ; 40
     
    81728135    rcr word [bp-008h], 1                     ; d1 5e f8
    81738136    inc bx                                    ; 43
    8174     jmp short 05a23h                          ; eb d8
     8137    jmp short 059c8h                          ; eb d8
    81758138    mov ax, word [bp-002h]                    ; 8b 46 fe
    81768139    xor dx, dx                                ; 31 d2
    81778140    mov bx, strict word 0003fh                ; bb 3f 00
    81788141    xor cx, cx                                ; 31 c9
    8179     call 09fe9h                               ; e8 91 45
     8142    call 09f69h                               ; e8 6c 45
    81808143    mov bx, ax                                ; 89 c3
    81818144    mov cx, dx                                ; 89 d1
    81828145    mov ax, word [bp-004h]                    ; 8b 46 fc
    81838146    mov dx, si                                ; 89 f2
    8184     call 09fb0h                               ; e8 4c 45
     8147    call 09f30h                               ; e8 27 45
    81858148    mov word [es:di+002h], ax                 ; 26 89 45 02
    81868149    cmp ax, 00400h                            ; 3d 00 04
    8187     jbe short 05a73h                          ; 76 06
     8150    jbe short 05a18h                          ; 76 06
    81888151    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    81898152    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    81968159    pop bx                                    ; 5b
    81978160    retn 00008h                               ; c2 08 00
    8198     inc cx                                    ; 41
     8161    out strict byte 05ah, AL                  ; e6 5a
     8162    neg word [bp+si+026h]                     ; f7 5a 26
    81998163    pop bx                                    ; 5b
    8200     push dx                                   ; 52
    8201     pop bx                                    ; 5b
    8202     sbb word [bp+di-07fh], 0815bh             ; 81 5b 81 5b 81
    8203     pop bx                                    ; 5b
    8204     jno short 05af0h                          ; 71 5d
    8205     stosb                                     ; aa
     8164    db  026h, 05bh
     8165    ; es pop bx                                 ; 26 5b
     8166    db  026h, 05bh
     8167    ; es pop bx                                 ; 26 5b
     8168    push SS                                   ; 16
     8169    pop bp                                    ; 5d
     8170    dec di                                    ; 4f
    82068171    pop si                                    ; 5e
    8207     stosb                                     ; aa
     8172    dec di                                    ; 4f
    82088173    pop si                                    ; 5e
    8209     sahf                                      ; 9e
     8174    inc bx                                    ; 43
    82108175    pop bp                                    ; 5d
    8211     xchg word [bp-056h], bx                   ; 87 5e aa
     8176    sub AL, strict byte 05eh                  ; 2c 5e
     8177    dec di                                    ; 4f
    82128178    pop si                                    ; 5e
    8213     stosb                                     ; aa
     8179    dec di                                    ; 4f
    82148180    pop si                                    ; 5e
    8215     xchg word [bp-079h], bx                   ; 87 5e 87
     8181    sub AL, strict byte 05eh                  ; 2c 5e
     8182    sub AL, strict byte 05eh                  ; 2c 5e
     8183    dec di                                    ; 4f
    82168184    pop si                                    ; 5e
    8217     stosb                                     ; aa
     8185    dec di                                    ; 4f
    82188186    pop si                                    ; 5e
    8219     stosb                                     ; aa
     8187    scasb                                     ; ae
     8188    pop bp                                    ; 5d
     8189    sub AL, strict byte 05eh                  ; 2c 5e
     8190    dec di                                    ; 4f
    82208191    pop si                                    ; 5e
    8221     or word [bp-079h], bx                     ; 09 5e 87
     8192    dec di                                    ; 4f
    82228193    pop si                                    ; 5e
    8223     stosb                                     ; aa
     8194    sub AL, strict byte 05eh                  ; 2c 5e
     8195    fistp word [di+04fh]                      ; df 5d 4f
    82248196    pop si                                    ; 5e
    8225     stosb                                     ; aa
     8197    dec di                                    ; 4f
    82268198    pop si                                    ; 5e
    8227     xchg word [bp+03ah], bx                   ; 87 5e 3a
     8199    dec di                                    ; 4f
    82288200    pop si                                    ; 5e
    8229     stosb                                     ; aa
    8230     pop si                                    ; 5e
    8231     stosb                                     ; aa
    8232     pop si                                    ; 5e
    8233     stosb                                     ; aa
    8234     pop si                                    ; 5e
    8235 _int13_harddisk:                             ; 0xf5ab9 LB 0x44f
     8201_int13_harddisk:                             ; 0xf5a5e LB 0x44f
    82368202    push bp                                   ; 55
    82378203    mov bp, sp                                ; 89 e5
     
    82398205    mov dx, strict word 0000eh                ; ba 0e 00
    82408206    mov ax, strict word 00040h                ; b8 40 00
    8241     call 0166ch                               ; e8 a4 bb
     8207    call 0166ch                               ; e8 ff bb
    82428208    mov si, 00122h                            ; be 22 01
    82438209    mov word [bp-004h], ax                    ; 89 46 fc
     
    82458211    mov dx, 0008eh                            ; ba 8e 00
    82468212    mov ax, strict word 00040h                ; b8 40 00
    8247     call 0165eh                               ; e8 85 bb
     8213    call 0165eh                               ; e8 e0 bb
    82488214    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82498215    xor ah, ah                                ; 30 e4
    82508216    cmp ax, 00080h                            ; 3d 80 00
    8251     jc short 05ae8h                           ; 72 05
     8217    jc short 05a8dh                           ; 72 05
    82528218    cmp ax, 00090h                            ; 3d 90 00
    8253     jc short 05b06h                           ; 72 1e
     8219    jc short 05aabh                           ; 72 1e
    82548220    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82558221    xor ah, ah                                ; 30 e4
     
    82618227    push 0068dh                               ; 68 8d 06
    82628228    push strict byte 00004h                   ; 6a 04
    8263     call 01966h                               ; e8 66 be
     8229    call 01966h                               ; e8 c1 be
    82648230    add sp, strict byte 0000ah                ; 83 c4 0a
    8265     jmp near 05ec5h                           ; e9 bf 03
     8231    jmp near 05e6ah                           ; e9 bf 03
    82668232    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82678233    xor ah, ah                                ; 30 e4
     
    82728238    mov byte [bp-002h], dl                    ; 88 56 fe
    82738239    cmp dl, 010h                              ; 80 fa 10
    8274     jc short 05b2fh                           ; 72 10
     8240    jc short 05ad4h                           ; 72 10
    82758241    push ax                                   ; 50
    82768242    mov ax, word [bp+016h]                    ; 8b 46 16
     
    82798245    push 0067eh                               ; 68 7e 06
    82808246    push 006b8h                               ; 68 b8 06
    8281     jmp short 05afbh                          ; eb cc
     8247    jmp short 05aa0h                          ; eb cc
    82828248    mov bx, word [bp+016h]                    ; 8b 5e 16
    82838249    shr bx, 008h                              ; c1 eb 08
    82848250    cmp bx, strict byte 00018h                ; 83 fb 18
    8285     jnbe short 05b7eh                         ; 77 44
     8251    jnbe short 05b23h                         ; 77 44
    82868252    add bx, bx                                ; 01 db
    8287     jmp word [cs:bx+05a87h]                   ; 2e ff a7 87 5a
     8253    jmp word [cs:bx+05a2ch]                   ; 2e ff a7 2c 5a
    82888254    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8289     jnc short 05b4fh                          ; 73 08
     8255    jnc short 05af4h                          ; 73 08
    82908256    mov al, byte [bp-002h]                    ; 8a 46 fe
    82918257    xor ah, ah                                ; 30 e4
    8292     call 01d85h                               ; e8 36 c2
    8293     jmp near 05d87h                           ; e9 35 02
     8258    call 01d85h                               ; e8 91 c2
     8259    jmp near 05d2ch                           ; e9 35 02
    82948260    mov dx, strict word 00074h                ; ba 74 00
    82958261    mov ax, strict word 00040h                ; b8 40 00
    8296     call 01650h                               ; e8 f5 ba
     8262    call 01650h                               ; e8 50 bb
    82978263    mov cl, al                                ; 88 c1
    82988264    mov dx, word [bp+016h]                    ; 8b 56 16
     
    83058271    mov dx, strict word 00074h                ; ba 74 00
    83068272    mov ax, strict word 00040h                ; b8 40 00
    8307     call 0165eh                               ; e8 e7 ba
     8273    call 0165eh                               ; e8 42 bb
    83088274    test cl, cl                               ; 84 c9
    8309     je short 05bdfh                           ; 74 64
    8310     jmp near 05ee1h                           ; e9 63 03
    8311     jmp near 05eaah                           ; e9 29 03
     8275    je short 05b84h                           ; 74 64
     8276    jmp near 05e86h                           ; e9 63 03
     8277    jmp near 05e4fh                           ; e9 29 03
    83128278    mov ax, word [bp+016h]                    ; 8b 46 16
    83138279    xor ah, ah                                ; 30 e4
     
    83298295    mov ax, word [bp-00eh]                    ; 8b 46 f2
    83308296    cmp ax, 00080h                            ; 3d 80 00
    8331     jnbe short 05bbch                         ; 77 04
     8297    jnbe short 05b61h                         ; 77 04
    83328298    test ax, ax                               ; 85 c0
    8333     jne short 05be2h                          ; 75 26
     8299    jne short 05b87h                          ; 75 26
    83348300    mov bx, 00da0h                            ; bb a0 0d
    83358301    mov cx, ds                                ; 8c d9
    83368302    mov ax, strict word 00004h                ; b8 04 00
    8337     call 01923h                               ; e8 5c bd
     8303    call 01923h                               ; e8 b7 bd
    83388304    mov ax, word [bp+016h]                    ; 8b 46 16
    83398305    shr ax, 008h                              ; c1 e8 08
     
    83428308    push 006eah                               ; 68 ea 06
    83438309    push strict byte 00004h                   ; 6a 04
    8344     call 01966h                               ; e8 8d bd
     8310    call 01966h                               ; e8 e8 bd
    83458311    add sp, strict byte 00008h                ; 83 c4 08
    8346     jmp near 05ec5h                           ; e9 e6 02
    8347     jmp near 05d8bh                           ; e9 a9 01
     8312    jmp near 05e6ah                           ; e9 e6 02
     8313    jmp near 05d30h                           ; e9 a9 01
    83488314    mov al, byte [bp-002h]                    ; 8a 46 fe
    83498315    xor ah, ah                                ; 30 e4
     
    83578323    mov word [bp-00ah], dx                    ; 89 56 f6
    83588324    cmp di, ax                                ; 39 c7
    8359     jnc short 05c10h                          ; 73 0c
     8325    jnc short 05bb5h                          ; 73 0c
    83608326    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8361     jbe short 05c10h                          ; 76 07
     8327    jbe short 05bb5h                          ; 76 07
    83628328    mov ax, word [bp-006h]                    ; 8b 46 fa
    83638329    cmp ax, dx                                ; 39 d0
    8364     jbe short 05c40h                          ; 76 30
     8330    jbe short 05be5h                          ; 76 30
    83658331    mov bx, 00da0h                            ; bb a0 0d
    83668332    mov cx, ds                                ; 8c d9
    83678333    mov ax, strict word 00004h                ; b8 04 00
    8368     call 01923h                               ; e8 08 bd
     8334    call 01923h                               ; e8 63 bd
    83698335    push word [bp-006h]                       ; ff 76 fa
    83708336    push word [bp-008h]                       ; ff 76 f8
     
    83798345    push 00712h                               ; 68 12 07
    83808346    push strict byte 00004h                   ; 6a 04
    8381     call 01966h                               ; e8 2c bd
     8347    call 01966h                               ; e8 87 bd
    83828348    add sp, strict byte 00010h                ; 83 c4 10
    8383     jmp near 05ec5h                           ; e9 85 02
     8349    jmp near 05e6ah                           ; e9 85 02
    83848350    mov ax, word [bp+016h]                    ; 8b 46 16
    83858351    shr ax, 008h                              ; c1 e8 08
    83868352    cmp ax, strict word 00004h                ; 3d 04 00
    8387     je short 05c6bh                           ; 74 20
     8353    je short 05c10h                           ; 74 20
    83888354    mov al, byte [bp-002h]                    ; 8a 46 fe
    83898355    xor ah, ah                                ; 30 e4
     
    83938359    add bx, ax                                ; 01 c3
    83948360    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8395     jne short 05c74h                          ; 75 14
     8361    jne short 05c19h                          ; 75 14
    83968362    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    83978363    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8398     je short 05c6eh                           ; 74 05
    8399     jmp short 05c74h                          ; eb 09
    8400     jmp near 05d87h                           ; e9 19 01
     8364    je short 05c13h                           ; 74 05
     8365    jmp short 05c19h                          ; eb 09
     8366    jmp near 05d2ch                           ; e9 19 01
    84018367    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8402     jc short 05ca4h                           ; 72 30
     8368    jc short 05c49h                           ; 72 30
    84038369    mov ax, di                                ; 89 f8
    84048370    xor dx, dx                                ; 31 d2
    84058371    mov bx, cx                                ; 89 cb
    84068372    xor cx, cx                                ; 31 c9
    8407     call 09fe9h                               ; e8 6a 43
     8373    call 09f69h                               ; e8 45 43
    84088374    xor bx, bx                                ; 31 db
    84098375    add ax, word [bp-008h]                    ; 03 46 f8
     
    84118377    mov bx, word [bp-00ah]                    ; 8b 5e f6
    84128378    xor cx, cx                                ; 31 c9
    8413     call 09fe9h                               ; e8 5b 43
     8379    call 09f69h                               ; e8 36 43
    84148380    xor bx, bx                                ; 31 db
    84158381    add ax, word [bp-006h]                    ; 03 46 fa
     
    84678433    mov word [bp+016h], bx                    ; 89 5e 16
    84688434    test dl, dl                               ; 84 d2
    8469     je short 05d87h                           ; 74 46
     8435    je short 05d2ch                           ; 74 46
    84708436    mov bx, 00da0h                            ; bb a0 0d
    84718437    mov cx, ds                                ; 8c d9
    84728438    mov ax, strict word 00004h                ; b8 04 00
    8473     call 01923h                               ; e8 d7 bb
     8439    call 01923h                               ; e8 32 bc
    84748440    mov al, dl                                ; 88 d0
    84758441    xor ah, ah                                ; 30 e4
     
    84818447    push 00759h                               ; 68 59 07
    84828448    push strict byte 00004h                   ; 6a 04
    8483     call 01966h                               ; e8 03 bc
     8449    call 01966h                               ; e8 5e bc
    84848450    add sp, strict byte 0000ah                ; 83 c4 0a
    84858451    mov ax, word [bp+016h]                    ; 8b 46 16
    84868452    xor ah, ah                                ; 30 e4
    84878453    or ah, 00ch                               ; 80 cc 0c
    8488     jmp near 05ecdh                           ; e9 5c 01
     8454    jmp near 05e72h                           ; e9 5c 01
    84898455    mov bx, 00da0h                            ; bb a0 0d
    84908456    mov cx, ds                                ; 8c d9
    84918457    mov ax, strict word 00004h                ; b8 04 00
    8492     call 01923h                               ; e8 a7 bb
     8458    call 01923h                               ; e8 02 bc
    84938459    push 0077ah                               ; 68 7a 07
    84948460    push strict byte 00004h                   ; 6a 04
    8495     call 01966h                               ; e8 e2 bb
     8461    call 01966h                               ; e8 3d bc
    84968462    add sp, strict byte 00004h                ; 83 c4 04
    84978463    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    84998465    mov dx, strict word 00074h                ; ba 74 00
    85008466    mov ax, strict word 00040h                ; b8 40 00
    8501     call 0165eh                               ; e8 c8 b8
     8467    call 0165eh                               ; e8 23 b9
    85028468    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    85038469    mov sp, bp                                ; 89 ec
     
    85428508    mov dl, al                                ; 88 c2
    85438509    mov word [bp+012h], dx                    ; 89 56 12
    8544     jmp near 05d87h                           ; e9 7e ff
     8510    jmp near 05d2ch                           ; e9 7e ff
    85458511    mov al, byte [bp-002h]                    ; 8a 46 fe
    85468512    xor ah, ah                                ; 30 e4
     
    85598525    and AL, strict byte 0c0h                  ; 24 c0
    85608526    cmp AL, strict byte 040h                  ; 3c 40
    8561     jne short 05e2fh                          ; 75 03
    8562     jmp near 05d87h                           ; e9 58 ff
     8527    jne short 05dd4h                          ; 75 03
     8528    jmp near 05d2ch                           ; e9 58 ff
    85638529    mov ax, word [bp+016h]                    ; 8b 46 16
    85648530    xor ah, ah                                ; 30 e4
    85658531    or ah, 0aah                               ; 80 cc aa
    8566     jmp near 05ecdh                           ; e9 93 00
     8532    jmp near 05e72h                           ; e9 93 00
    85678533    mov al, byte [bp-002h]                    ; 8a 46 fe
    85688534    xor ah, ah                                ; 30 e4
     
    85798545    mov bx, word [bp-008h]                    ; 8b 5e f8
    85808546    xor cx, cx                                ; 31 c9
    8581     call 09fe9h                               ; e8 84 41
     8547    call 09f69h                               ; e8 5f 41
    85828548    mov bx, word [bp-006h]                    ; 8b 5e fa
    85838549    xor cx, cx                                ; 31 c9
    8584     call 09fe9h                               ; e8 7c 41
     8550    call 09f69h                               ; e8 57 41
    85858551    mov word [bp-010h], ax                    ; 89 46 f0
    85868552    mov word [bp-00ch], dx                    ; 89 56 f4
     
    85918557    or ah, 003h                               ; 80 cc 03
    85928558    mov word [bp+016h], ax                    ; 89 46 16
    8593     jmp near 05d8bh                           ; e9 04 ff
     8559    jmp near 05d30h                           ; e9 04 ff
    85948560    mov bx, 00da0h                            ; bb a0 0d
    85958561    mov cx, ds                                ; 8c d9
    85968562    mov ax, strict word 00004h                ; b8 04 00
    8597     call 01923h                               ; e8 91 ba
     8563    call 01923h                               ; e8 ec ba
    85988564    mov ax, word [bp+016h]                    ; 8b 46 16
    85998565    shr ax, 008h                              ; c1 e8 08
     
    86028568    push 00794h                               ; 68 94 07
    86038569    push strict byte 00004h                   ; 6a 04
    8604     call 01966h                               ; e8 c2 ba
     8570    call 01966h                               ; e8 1d bb
    86058571    add sp, strict byte 00008h                ; 83 c4 08
    8606     jmp near 05d87h                           ; e9 dd fe
     8572    jmp near 05d2ch                           ; e9 dd fe
    86078573    mov bx, 00da0h                            ; bb a0 0d
    86088574    mov cx, ds                                ; 8c d9
    86098575    mov ax, strict word 00004h                ; b8 04 00
    8610     call 01923h                               ; e8 6e ba
     8576    call 01923h                               ; e8 c9 ba
    86118577    mov ax, word [bp+016h]                    ; 8b 46 16
    86128578    shr ax, 008h                              ; c1 e8 08
     
    86148580    push 0067eh                               ; 68 7e 06
    86158581    push 007c7h                               ; 68 c7 07
    8616     jmp near 05bd4h                           ; e9 0f fd
     8582    jmp near 05b79h                           ; e9 0f fd
    86178583    mov ax, word [bp+016h]                    ; 8b 46 16
    86188584    xor ah, ah                                ; 30 e4
     
    86248590    mov dx, strict word 00074h                ; ba 74 00
    86258591    mov ax, strict word 00040h                ; b8 40 00
    8626     call 0165eh                               ; e8 7d b7
     8592    call 0165eh                               ; e8 d8 b7
    86278593    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8628     jmp near 05d9ah                           ; e9 b2 fe
    8629     movsb                                     ; a4
     8594    jmp near 05d3fh                           ; e9 b2 fe
     8595    dec cx                                    ; 49
    86308596    pop di                                    ; 5f
    8631     xlatb                                     ; d7
     8597    jl short 05ef0h                           ; 7c 5f
     8598    jl short 05ef2h                           ; 7c 5f
     8599    jl short 05ef4h                           ; 7c 5f
     8600    insw                                      ; 6d
     8601    arpl di, dx                               ; 63 d7
     8602    pushaw                                    ; 60
     8603    jl short 05efah                           ; 7c 5f
     8604    loopne 05efdh                             ; e0 60
     8605    insw                                      ; 6d
     8606    arpl [bx+di+05fh], sp                     ; 63 61 5f
     8607    popaw                                     ; 61
    86328608    pop di                                    ; 5f
    8633     xlatb                                     ; d7
     8609    popaw                                     ; 61
    86348610    pop di                                    ; 5f
    8635     xlatb                                     ; d7
     8611    popaw                                     ; 61
    86368612    pop di                                    ; 5f
    8637     out strict byte 063h, AL                  ; e6 63
    8638     cmp word [bx+di-029h], sp                 ; 39 61 d7
     8613    test byte [bp+di+061h], ah                ; 84 63 61
    86398614    pop di                                    ; 5f
    8640     aas                                       ; 3f
    86418615    popaw                                     ; 61
    8642     out strict byte 063h, AL                  ; e6 63
    8643     mov sp, 0bc5fh                            ; bc 5f bc
    86448616    pop di                                    ; 5f
    8645     mov sp, 0bc5fh                            ; bc 5f bc
    8646     pop di                                    ; 5f
    8647     std                                       ; fd
    8648     arpl [si-043a1h], di                      ; 63 bc 5f bc
    8649     pop di                                    ; 5f
    8650 _int13_harddisk_ext:                         ; 0xf5f08 LB 0x52d
     8617_int13_harddisk_ext:                         ; 0xf5ead LB 0x50f
    86518618    push bp                                   ; 55
    86528619    mov bp, sp                                ; 89 e5
    8653     sub sp, strict byte 0002ah                ; 83 ec 2a
     8620    sub sp, strict byte 00028h                ; 83 ec 28
    86548621    mov dx, strict word 0000eh                ; ba 0e 00
    86558622    mov ax, strict word 00040h                ; b8 40 00
    8656     call 0166ch                               ; e8 55 b7
    8657     mov word [bp-014h], ax                    ; 89 46 ec
     8623    call 0166ch                               ; e8 b0 b7
     8624    mov word [bp-012h], ax                    ; 89 46 ee
    86588625    mov dx, strict word 0000eh                ; ba 0e 00
    86598626    mov ax, strict word 00040h                ; b8 40 00
    8660     call 0166ch                               ; e8 49 b7
     8627    call 0166ch                               ; e8 a4 b7
    86618628    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    86628629    mov word [bp-006h], ax                    ; 89 46 fa
     
    86648631    mov dx, 0008eh                            ; ba 8e 00
    86658632    mov ax, strict word 00040h                ; b8 40 00
    8666     call 0165eh                               ; e8 28 b7
     8633    call 0165eh                               ; e8 83 b7
    86678634    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86688635    xor ah, ah                                ; 30 e4
    86698636    cmp ax, 00080h                            ; 3d 80 00
    8670     jc short 05f45h                           ; 72 05
     8637    jc short 05eeah                           ; 72 05
    86718638    cmp ax, 00090h                            ; 3d 90 00
    8672     jc short 05f63h                           ; 72 1e
     8639    jc short 05f08h                           ; 72 1e
    86738640    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86748641    xor ah, ah                                ; 30 e4
     
    86808647    push 0068dh                               ; 68 8d 06
    86818648    push strict byte 00004h                   ; 6a 04
    8682     call 01966h                               ; e8 09 ba
     8649    call 01966h                               ; e8 64 ba
    86838650    add sp, strict byte 0000ah                ; 83 c4 0a
    8684     jmp near 06413h                           ; e9 b0 04
     8651    jmp near 0639ah                           ; e9 92 04
    86858652    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86868653    xor ah, ah                                ; 30 e4
     
    86908657    mov byte [bp-004h], dl                    ; 88 56 fc
    86918658    cmp dl, 010h                              ; 80 fa 10
    8692     jc short 05f8ah                           ; 72 10
     8659    jc short 05f2fh                           ; 72 10
    86938660    push ax                                   ; 50
    86948661    mov ax, word [bp+016h]                    ; 8b 46 16
     
    86978664    push 007f5h                               ; 68 f5 07
    86988665    push 006b8h                               ; 68 b8 06
    8699     jmp short 05f58h                          ; eb ce
     8666    jmp short 05efdh                          ; eb ce
    87008667    mov bx, word [bp+016h]                    ; 8b 5e 16
    87018668    shr bx, 008h                              ; c1 eb 08
    87028669    sub bx, strict byte 00041h                ; 83 eb 41
    87038670    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8704     jnbe short 05fbch                         ; 77 24
     8671    jnbe short 05f61h                         ; 77 24
    87058672    add bx, bx                                ; 01 db
    8706     mov ax, word [bp+016h]                    ; 8b 46 16
    8707     xor ah, ah                                ; 30 e4
    8708     jmp word [cs:bx+05ee8h]                   ; 2e ff a7 e8 5e
     8673    mov dx, word [bp+016h]                    ; 8b 56 16
     8674    xor dh, dh                                ; 30 f6
     8675    jmp word [cs:bx+05e8dh]                   ; 2e ff a7 8d 5e
    87098676    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    87108677    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87138680    mov word [bp+016h], ax                    ; 89 46 16
    87148681    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8715     jmp near 063eah                           ; e9 2e 04
     8682    jmp near 06371h                           ; e9 10 04
    87168683    mov bx, 00da0h                            ; bb a0 0d
    87178684    mov cx, ds                                ; 8c d9
    87188685    mov ax, strict word 00004h                ; b8 04 00
    8719     call 01923h                               ; e8 5c b9
     8686    call 01923h                               ; e8 b7 b9
    87208687    mov ax, word [bp+016h]                    ; 8b 46 16
    87218688    shr ax, 008h                              ; c1 e8 08
     
    87238690    push 007f5h                               ; 68 f5 07
    87248691    push 007c7h                               ; 68 c7 07
    8725     jmp near 06071h                           ; e9 9a 00
     8692    jmp near 06011h                           ; e9 95 00
    87268693    mov di, word [bp+00ah]                    ; 8b 7e 0a
    87278694    mov es, [bp+004h]                         ; 8e 46 04
    8728     mov word [bp-01eh], di                    ; 89 7e e2
    8729     mov [bp-01ah], es                         ; 8c 46 e6
     8695    mov word [bp-01ah], di                    ; 89 7e e6
     8696    mov [bp-018h], es                         ; 8c 46 e8
    87308697    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    8731     mov word [bp-012h], ax                    ; 89 46 ee
     8698    mov word [bp-010h], ax                    ; 89 46 f0
    87328699    mov ax, word [es:di+006h]                 ; 26 8b 45 06
    8733     mov word [bp-018h], ax                    ; 89 46 e8
     8700    mov word [bp-016h], ax                    ; 89 46 ea
    87348701    mov ax, word [es:di+004h]                 ; 26 8b 45 04
    8735     mov word [bp-016h], ax                    ; 89 46 ea
     8702    mov word [bp-014h], ax                    ; 89 46 ec
    87368703    mov dx, word [es:di+00ch]                 ; 26 8b 55 0c
    87378704    mov cx, word [es:di+00eh]                 ; 26 8b 4d 0e
     
    87398706    xor bx, bx                                ; 31 db
    87408707    mov si, strict word 00020h                ; be 20 00
    8741     call 0a01ah                               ; e8 10 40
    8742     mov word [bp-00eh], bx                    ; 89 5e f2
    8743     mov bx, word [es:di+008h]                 ; 26 8b 5d 08
    8744     mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
    8745     or dx, bx                                 ; 09 da
    8746     or cx, di                                 ; 09 f9
    8747     mov bl, byte [bp-004h]                    ; 8a 5e fc
    8748     mov byte [bp-022h], bl                    ; 88 5e de
    8749     mov byte [bp-021h], 000h                  ; c6 46 df 00
    8750     imul di, word [bp-022h], strict byte 0001ch ; 6b 7e de 1c
    8751     mov es, [bp-006h]                         ; 8e 46 fa
    8752     add di, word [bp-008h]                    ; 03 7e f8
    8753     mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
    8754     cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
    8755     jnbe short 06059h                         ; 77 22
    8756     jne short 0607ch                          ; 75 43
    8757     mov si, word [bp-00eh]                    ; 8b 76 f2
    8758     cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8759     jnbe short 06059h                         ; 77 17
    8760     mov si, word [bp-00eh]                    ; 8b 76 f2
    8761     cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8762     jne short 0607ch                          ; 75 31
    8763     cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
    8764     jnbe short 06059h                         ; 77 08
    8765     jne short 0607ch                          ; 75 29
    8766     cmp dx, word [es:di+036h]                 ; 26 3b 55 36
    8767     jc short 0607ch                           ; 72 23
     8708    call 09f9ah                               ; e8 eb 3f
     8709    mov si, ax                                ; 89 c6
     8710    mov word [bp-00ch], bx                    ; 89 5e f4
     8711    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     8712    mov bx, word [es:di+00ah]                 ; 26 8b 5d 0a
     8713    or dx, ax                                 ; 09 c2
     8714    or cx, bx                                 ; 09 d9
     8715    mov al, byte [bp-004h]                    ; 8a 46 fc
     8716    xor ah, ah                                ; 30 e4
     8717    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     8718    les bx, [bp-008h]                         ; c4 5e f8
     8719    add bx, ax                                ; 01 c3
     8720    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
     8721    cmp si, word [es:bx+03ch]                 ; 26 3b 77 3c
     8722    jnbe short 05ff9h                         ; 77 22
     8723    jne short 0601ch                          ; 75 43
     8724    mov di, word [bp-00ch]                    ; 8b 7e f4
     8725    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
     8726    jnbe short 05ff9h                         ; 77 17
     8727    mov di, word [bp-00ch]                    ; 8b 7e f4
     8728    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
     8729    jne short 0601ch                          ; 75 31
     8730    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
     8731    jnbe short 05ff9h                         ; 77 08
     8732    jne short 0601ch                          ; 75 29
     8733    cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
     8734    jc short 0601ch                           ; 72 23
    87688735    mov bx, 00da0h                            ; bb a0 0d
    87698736    mov cx, ds                                ; 8c d9
    87708737    mov ax, strict word 00004h                ; b8 04 00
    8771     call 01923h                               ; e8 bf b8
     8738    call 01923h                               ; e8 1f b9
    87728739    mov ax, word [bp+016h]                    ; 8b 46 16
    87738740    shr ax, 008h                              ; c1 e8 08
     
    87768743    push 00808h                               ; 68 08 08
    87778744    push strict byte 00004h                   ; 6a 04
    8778     call 01966h                               ; e8 f0 b8
     8745    call 01966h                               ; e8 50 b9
    87798746    add sp, strict byte 00008h                ; 83 c4 08
    8780     jmp near 06413h                           ; e9 97 03
     8747    jmp near 0639ah                           ; e9 7e 03
    87818748    mov di, word [bp+016h]                    ; 8b 7e 16
    87828749    shr di, 008h                              ; c1 ef 08
    87838750    cmp di, strict byte 00044h                ; 83 ff 44
    8784     je short 0608ch                           ; 74 05
     8751    je short 0602ch                           ; 74 05
    87858752    cmp di, strict byte 00047h                ; 83 ff 47
    8786     jne short 0608fh                          ; 75 03
    8787     jmp near 063e6h                           ; e9 57 03
    8788     les si, [bp-008h]                         ; c4 76 f8
    8789     mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
    8790     mov word [es:si+01ah], strict word 00000h ; 26 c7 44 1a 00 00
    8791     mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
    8792     mov word [es:si+006h], ax                 ; 26 89 44 06
    8793     mov ax, word [bp-00eh]                    ; 8b 46 f2
    8794     mov word [es:si+004h], ax                 ; 26 89 44 04
    8795     mov word [es:si+002h], cx                 ; 26 89 4c 02
    8796     mov word [es:si], dx                      ; 26 89 14
    8797     mov ax, word [bp-016h]                    ; 8b 46 ea
    8798     mov word [es:si+008h], ax                 ; 26 89 44 08
    8799     mov ax, word [bp-018h]                    ; 8b 46 e8
    8800     mov word [es:si+00ah], ax                 ; 26 89 44 0a
    8801     mov ax, word [bp-012h]                    ; 8b 46 ee
    8802     mov word [es:si+00eh], ax                 ; 26 89 44 0e
    8803     mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
    8804     mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00
    8805     mov al, byte [bp-004h]                    ; 8a 46 fc
    8806     mov byte [es:si+00ch], al                 ; 26 88 44 0c
    8807     mov dx, di                                ; 89 fa
    8808     add dx, di                                ; 01 fa
    8809     mov al, bl                                ; 88 d8
    8810     xor ah, ah                                ; 30 e4
    8811     mov bx, ax                                ; 89 c3
    8812     sal bx, 002h                              ; c1 e3 02
    8813     add bx, dx                                ; 01 d3
     8753    jne short 0602fh                          ; 75 03
     8754    jmp near 0636dh                           ; e9 3e 03
     8755    les bx, [bp-008h]                         ; c4 5e f8
     8756    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     8757    mov word [es:bx+01ah], strict word 00000h ; 26 c7 47 1a 00 00
     8758    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
     8759    mov word [es:bx+006h], si                 ; 26 89 77 06
     8760    mov bx, word [bp-00ch]                    ; 8b 5e f4
     8761    mov si, word [bp-008h]                    ; 8b 76 f8
     8762    mov word [es:si+004h], bx                 ; 26 89 5c 04
     8763    mov bx, si                                ; 89 f3
     8764    mov word [es:bx+002h], cx                 ; 26 89 4f 02
     8765    mov word [es:bx], dx                      ; 26 89 17
     8766    mov dx, word [bp-014h]                    ; 8b 56 ec
     8767    mov word [es:bx+008h], dx                 ; 26 89 57 08
     8768    mov dx, word [bp-016h]                    ; 8b 56 ea
     8769    mov word [es:bx+00ah], dx                 ; 26 89 57 0a
     8770    mov dx, word [bp-010h]                    ; 8b 56 f0
     8771    mov word [es:bx+00eh], dx                 ; 26 89 57 0e
     8772    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
     8773    mov word [es:bx+016h], strict word 00000h ; 26 c7 47 16 00 00
     8774    mov ah, byte [bp-004h]                    ; 8a 66 fc
     8775    mov byte [es:bx+00ch], ah                 ; 26 88 67 0c
     8776    mov bx, di                                ; 89 fb
     8777    add bx, di                                ; 01 fb
     8778    xor ah, ah                                ; 30 e4
     8779    sal ax, 002h                              ; c1 e0 02
     8780    add bx, ax                                ; 01 c3
    88148781    push ES                                   ; 06
    88158782    push si                                   ; 56
     
    88198786    mov bx, si                                ; 89 f3
    88208787    mov ax, word [es:bx+018h]                 ; 26 8b 47 18
    8821     mov word [bp-012h], ax                    ; 89 46 ee
    8822     mov es, [bp-01ah]                         ; 8e 46 e6
    8823     mov bx, word [bp-01eh]                    ; 8b 5e e2
     8788    mov word [bp-010h], ax                    ; 89 46 f0
     8789    les bx, [bp-01ah]                         ; c4 5e e6
    88248790    mov word [es:bx+002h], ax                 ; 26 89 47 02
    88258791    test dl, dl                               ; 84 d2
    8826     je short 0615dh                           ; 74 4e
     8792    je short 060feh                           ; 74 51
    88278793    mov bx, 00da0h                            ; bb a0 0d
    88288794    mov cx, ds                                ; 8c d9
    88298795    mov ax, strict word 00004h                ; b8 04 00
    8830     call 01923h                               ; e8 09 b8
     8796    call 01923h                               ; e8 6b b8
    88318797    mov al, dl                                ; 88 d0
    88328798    xor ah, ah                                ; 30 e4
     
    88368802    push 00759h                               ; 68 59 07
    88378803    push strict byte 00004h                   ; 6a 04
    8838     call 01966h                               ; e8 3b b8
     8804    call 01966h                               ; e8 9d b8
    88398805    add sp, strict byte 0000ah                ; 83 c4 0a
    88408806    mov ax, word [bp+016h]                    ; 8b 46 16
    88418807    xor ah, ah                                ; 30 e4
    88428808    or ah, 00ch                               ; 80 cc 0c
    8843     jmp near 0641bh                           ; e9 e2 02
    8844     or ah, 0b2h                               ; 80 cc b2
    8845     jmp near 0641bh                           ; e9 dc 02
     8809    jmp near 063a2h                           ; e9 cb 02
     8810    or dh, 0b2h                               ; 80 ce b2
     8811    mov word [bp+016h], dx                    ; 89 56 16
     8812    jmp near 063a5h                           ; e9 c5 02
    88468813    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    88478814    mov ax, word [bp+004h]                    ; 8b 46 04
    8848     mov word [bp-00ch], ax                    ; 89 46 f4
     8815    mov word [bp-024h], ax                    ; 89 46 dc
    88498816    mov di, bx                                ; 89 df
    88508817    mov word [bp-00ah], ax                    ; 89 46 f6
    88518818    mov es, ax                                ; 8e c0
    88528819    mov ax, word [es:bx]                      ; 26 8b 07
    8853     mov word [bp-010h], ax                    ; 89 46 f0
     8820    mov word [bp-00eh], ax                    ; 89 46 f2
    88548821    cmp ax, strict word 0001ah                ; 3d 1a 00
    8855     jnc short 06160h                          ; 73 06
    8856     jmp near 06413h                           ; e9 b6 02
    8857     jmp near 063e6h                           ; e9 86 02
    8858     jnc short 06165h                          ; 73 03
    8859     jmp near 06204h                           ; e9 9f 00
     8822    jnc short 06101h                          ; 73 06
     8823    jmp near 0639ah                           ; e9 9c 02
     8824    jmp near 0636dh                           ; e9 6c 02
     8825    jnc short 06106h                          ; 73 03
     8826    jmp near 0619dh                           ; e9 97 00
    88608827    mov al, byte [bp-004h]                    ; 8a 46 fc
    88618828    xor ah, ah                                ; 30 e4
     
    88648831    add bx, ax                                ; 01 c3
    88658832    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
    8866     mov word [bp-02ah], ax                    ; 89 46 d6
     8833    mov word [bp-028h], ax                    ; 89 46 d8
    88678834    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    8868     mov word [bp-028h], ax                    ; 89 46 d8
     8835    mov word [bp-026h], ax                    ; 89 46 da
    88698836    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    8870     mov word [bp-024h], ax                    ; 89 46 dc
    8871     mov ax, word [es:bx+03ch]                 ; 26 8b 47 3c
    8872     mov dx, word [es:bx+03ah]                 ; 26 8b 57 3a
    8873     mov word [bp-00eh], dx                    ; 89 56 f2
     8837    mov word [bp-020h], ax                    ; 89 46 e0
     8838    mov si, word [es:bx+03ch]                 ; 26 8b 77 3c
     8839    mov ax, word [es:bx+03ah]                 ; 26 8b 47 3a
     8840    mov word [bp-00ch], ax                    ; 89 46 f4
    88748841    mov cx, word [es:bx+038h]                 ; 26 8b 4f 38
    88758842    mov dx, word [es:bx+036h]                 ; 26 8b 57 36
    8876     mov bx, word [es:bx+028h]                 ; 26 8b 5f 28
    8877     mov word [bp-026h], bx                    ; 89 5e da
    8878     mov es, [bp-00ch]                         ; 8e 46 f4
     8843    mov ax, word [es:bx+028h]                 ; 26 8b 47 28
     8844    mov word [bp-022h], ax                    ; 89 46 de
     8845    mov es, [bp-024h]                         ; 8e 46 dc
    88798846    mov bx, di                                ; 89 fb
    88808847    mov word [es:bx], strict word 0001ah      ; 26 c7 07 1a 00
    88818848    mov word [es:bx+002h], strict word 00002h ; 26 c7 47 02 02 00
    8882     mov bx, word [bp-02ah]                    ; 8b 5e d6
    8883     mov si, di                                ; 89 fe
    8884     mov word [es:si+004h], bx                 ; 26 89 5c 04
    8885     mov bx, si                                ; 89 f3
     8849    mov ax, word [bp-028h]                    ; 8b 46 d8
     8850    mov word [es:bx+004h], ax                 ; 26 89 47 04
    88868851    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
    8887     mov bx, word [bp-028h]                    ; 8b 5e d8
    8888     mov word [es:si+008h], bx                 ; 26 89 5c 08
    8889     mov bx, si                                ; 89 f3
     8852    mov ax, word [bp-026h]                    ; 8b 46 da
     8853    mov word [es:bx+008h], ax                 ; 26 89 47 08
    88908854    mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
    8891     mov bx, word [bp-024h]                    ; 8b 5e dc
    8892     mov word [es:si+00ch], bx                 ; 26 89 5c 0c
    8893     mov bx, si                                ; 89 f3
     8855    mov ax, word [bp-020h]                    ; 8b 46 e0
     8856    mov word [es:bx+00ch], ax                 ; 26 89 47 0c
    88948857    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
    8895     mov bx, word [bp-026h]                    ; 8b 5e da
    8896     mov word [es:si+018h], bx                 ; 26 89 5c 18
    8897     mov bx, si                                ; 89 f3
     8858    mov ax, word [bp-022h]                    ; 8b 46 de
     8859    mov word [es:bx+018h], ax                 ; 26 89 47 18
    88988860    mov word [es:bx+010h], dx                 ; 26 89 57 10
    88998861    mov word [es:bx+012h], cx                 ; 26 89 4f 12
    8900     mov bx, word [bp-00eh]                    ; 8b 5e f2
     8862    mov ax, si                                ; 89 f0
     8863    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89018864    mov si, strict word 00020h                ; be 20 00
    8902     call 0a02ah                               ; e8 30 3e
     8865    call 09faah                               ; e8 17 3e
    89038866    mov bx, di                                ; 89 fb
    89048867    mov word [es:bx+014h], dx                 ; 26 89 57 14
    89058868    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    8906     cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
    8907     jc short 06273h                           ; 72 69
     8869    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
     8870    jc short 06208h                           ; 72 65
    89088871    mov es, [bp-00ah]                         ; 8e 46 f6
    89098872    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
    8910     mov ax, word [bp-014h]                    ; 8b 46 ec
     8873    mov ax, word [bp-012h]                    ; 8b 46 ee
    89118874    mov word [es:di+01ch], ax                 ; 26 89 45 1c
    89128875    mov word [es:di+01ah], 00356h             ; 26 c7 45 1a 56 03
     
    89258888    mov word [bp-01ch], ax                    ; 89 46 e4
    89268889    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
    8927     mov word [bp-020h], ax                    ; 89 46 e0
     8890    mov word [bp-01eh], ax                    ; 89 46 e2
    89288891    mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
    89298892    mov byte [bp-002h], al                    ; 88 46 fe
    89308893    imul bx, cx, strict byte 0001ch           ; 6b d9 1c
    89318894    add bx, word [bp-008h]                    ; 03 5e f8
    8932     mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
    8933     mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    8934     test al, al                               ; 84 c0
    8935     jne short 06263h                          ; 75 04
     8895    mov dl, byte [es:bx+027h]                 ; 26 8a 57 27
     8896    test dl, dl                               ; 84 d2
     8897    jne short 061f8h                          ; 75 04
    89368898    xor bx, bx                                ; 31 db
    8937     jmp short 06266h                          ; eb 03
     8899    jmp short 061fbh                          ; eb 03
    89388900    mov bx, strict word 00008h                ; bb 08 00
    89398901    or bl, 010h                               ; 80 cb 10
    8940     cmp ah, 001h                              ; 80 fc 01
    8941     jne short 06276h                          ; 75 08
    8942     mov dx, strict word 00001h                ; ba 01 00
    8943     jmp short 06278h                          ; eb 05
    8944     jmp near 06317h                           ; e9 a1 00
    8945     xor dx, dx                                ; 31 d2
    8946     or bx, dx                                 ; 09 d3
    8947     cmp AL, strict byte 001h                  ; 3c 01
    8948     jne short 06283h                          ; 75 05
    8949     mov dx, strict word 00001h                ; ba 01 00
    8950     jmp short 06285h                          ; eb 02
    8951     xor dx, dx                                ; 31 d2
    8952     or bx, dx                                 ; 09 d3
    8953     cmp AL, strict byte 003h                  ; 3c 03
    8954     jne short 06290h                          ; 75 05
     8902    cmp dl, 001h                              ; 80 fa 01
     8903    jne short 0620bh                          ; 75 08
     8904    mov ax, strict word 00001h                ; b8 01 00
     8905    jmp short 0620dh                          ; eb 05
     8906    jmp near 0629eh                           ; e9 93 00
     8907    xor ax, ax                                ; 31 c0
     8908    or bx, ax                                 ; 09 c3
     8909    cmp dl, 003h                              ; 80 fa 03
     8910    jne short 06219h                          ; 75 05
    89558911    mov ax, strict word 00003h                ; b8 03 00
    8956     jmp short 06292h                          ; eb 02
     8912    jmp short 0621bh                          ; eb 02
    89578913    xor ax, ax                                ; 31 c0
    89588914    or bx, ax                                 ; 09 c3
     
    89608916    les si, [bp-008h]                         ; c4 76 f8
    89618917    mov word [es:si+00234h], ax               ; 26 89 84 34 02
    8962     mov ax, word [bp-020h]                    ; 8b 46 e0
     8918    mov ax, word [bp-01eh]                    ; 8b 46 e2
    89638919    mov word [es:si+00236h], ax               ; 26 89 84 36 02
    89648920    mov al, byte [bp-004h]                    ; 8a 46 fc
     
    89818937    xor bl, bl                                ; 30 db
    89828938    xor bh, bh                                ; 30 ff
    8983     jmp short 062f7h                          ; eb 05
     8939    jmp short 06280h                          ; eb 05
    89848940    cmp bh, 00fh                              ; 80 ff 0f
    8985     jnc short 0630dh                          ; 73 16
    8986     mov al, bh                                ; 88 f8
    8987     xor ah, ah                                ; 30 e4
    8988     mov dx, ax                                ; 89 c2
     8941    jnc short 06294h                          ; 73 14
     8942    mov dl, bh                                ; 88 fa
     8943    xor dh, dh                                ; 30 f6
    89898944    add dx, 00356h                            ; 81 c2 56 03
    8990     mov ax, word [bp-014h]                    ; 8b 46 ec
    8991     call 01650h                               ; e8 49 b3
     8945    mov ax, word [bp-012h]                    ; 8b 46 ee
     8946    call 01650h                               ; e8 c2 b3
    89928947    add bl, al                                ; 00 c3
    89938948    db  0feh, 0c7h
    89948949    ; inc bh                                    ; fe c7
    8995     jmp short 062f2h                          ; eb e5
     8950    jmp short 0627bh                          ; eb e7
    89968951    neg bl                                    ; f6 db
    89978952    les si, [bp-008h]                         ; c4 76 f8
    89988953    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    8999     cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
    9000     jnc short 06320h                          ; 73 03
    9001     jmp near 063e6h                           ; e9 c6 00
     8954    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
     8955    jnc short 062a7h                          ; 73 03
     8956    jmp near 0636dh                           ; e9 c6 00
    90028957    mov al, byte [bp-004h]                    ; 8a 46 fc
    90038958    xor ah, ah                                ; 30 e4
     
    90188973    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    90198974    test al, al                               ; 84 c0
    9020     jne short 06368h                          ; 75 0c
     8975    jne short 062efh                          ; 75 0c
    90218976    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    90228977    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    90278982    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    90288983    test al, al                               ; 84 c0
    9029     jne short 0639dh                          ; 75 16
     8984    jne short 06324h                          ; 75 16
    90308985    mov word [es:di+030h], dx                 ; 26 89 55 30
    90318986    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    90428997    xor bl, bl                                ; 30 db
    90438998    mov BH, strict byte 01eh                  ; b7 1e
    9044     jmp short 063c8h                          ; eb 05
     8999    jmp short 0634fh                          ; eb 05
    90459000    cmp bh, 040h                              ; 80 ff 40
    9046     jnc short 063ddh                          ; 73 15
     9001    jnc short 06364h                          ; 73 15
    90479002    mov al, bh                                ; 88 f8
    90489003    xor ah, ah                                ; 30 e4
     
    90509005    add dx, ax                                ; 01 c2
    90519006    mov ax, word [bp+004h]                    ; 8b 46 04
    9052     call 01650h                               ; e8 79 b2
     9007    call 01650h                               ; e8 f2 b2
    90539008    add bl, al                                ; 00 c3
    90549009    db  0feh, 0c7h
    90559010    ; inc bh                                    ; fe c7
    9056     jmp short 063c3h                          ; eb e6
     9011    jmp short 0634ah                          ; eb e6
    90579012    neg bl                                    ; f6 db
    90589013    mov es, [bp-00ah]                         ; 8e 46 f6
     
    90629017    mov dx, strict word 00074h                ; ba 74 00
    90639018    mov ax, strict word 00040h                ; b8 40 00
    9064     call 0165eh                               ; e8 69 b2
     9019    call 0165eh                               ; e8 e2 b2
    90659020    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    90669021    mov sp, bp                                ; 89 ec
    90679022    pop bp                                    ; 5d
    90689023    retn                                      ; c3
    9069     cmp ax, strict word 00006h                ; 3d 06 00
    9070     je short 063e6h                           ; 74 e4
    9071     cmp ax, strict word 00001h                ; 3d 01 00
    9072     jc short 06413h                           ; 72 0c
    9073     jbe short 063e6h                          ; 76 dd
    9074     cmp ax, strict word 00003h                ; 3d 03 00
    9075     jc short 06413h                           ; 72 05
    9076     cmp ax, strict word 00004h                ; 3d 04 00
    9077     jbe short 063e6h                          ; 76 d3
     9024    cmp dx, strict byte 00006h                ; 83 fa 06
     9025    je short 0636dh                           ; 74 e4
     9026    cmp dx, strict byte 00001h                ; 83 fa 01
     9027    jc short 0639ah                           ; 72 0c
     9028    jbe short 0636dh                          ; 76 dd
     9029    cmp dx, strict byte 00003h                ; 83 fa 03
     9030    jc short 0639ah                           ; 72 05
     9031    cmp dx, strict byte 00004h                ; 83 fa 04
     9032    jbe short 0636dh                          ; 76 d3
    90789033    mov ax, word [bp+016h]                    ; 8b 46 16
    90799034    xor ah, ah                                ; 30 e4
     
    90859040    mov dx, strict word 00074h                ; ba 74 00
    90869041    mov ax, strict word 00040h                ; b8 40 00
    9087     call 0165eh                               ; e8 2f b2
     9042    call 0165eh                               ; e8 a8 b2
    90889043    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9089     jmp short 063f9h                          ; eb c4
    9090 _int14_function:                             ; 0xf6435 LB 0x157
     9044    jmp short 06380h                          ; eb c4
     9045_int14_function:                             ; 0xf63bc LB 0x157
    90919046    push bp                                   ; 55
    90929047    mov bp, sp                                ; 89 e5
     
    90969051    add dx, dx                                ; 01 d2
    90979052    mov ax, strict word 00040h                ; b8 40 00
    9098     call 0166ch                               ; e8 27 b2
     9053    call 0166ch                               ; e8 a0 b2
    90999054    mov si, ax                                ; 89 c6
    91009055    mov bx, ax                                ; 89 c3
     
    91029057    add dx, strict byte 0007ch                ; 83 c2 7c
    91039058    mov ax, strict word 00040h                ; b8 40 00
    9104     call 01650h                               ; e8 fb b1
     9059    call 01650h                               ; e8 74 b2
    91059060    mov cl, al                                ; 88 c1
    91069061    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9107     jnc short 06461h                          ; 73 04
     9062    jnc short 063e8h                          ; 73 04
    91089063    test si, si                               ; 85 f6
    9109     jnbe short 06464h                         ; 77 03
    9110     jmp near 06582h                           ; e9 1e 01
     9064    jnbe short 063ebh                         ; 77 03
     9065    jmp near 06509h                           ; e9 1e 01
    91119066    mov al, byte [bp+013h]                    ; 8a 46 13
    91129067    cmp AL, strict byte 001h                  ; 3c 01
    9113     jc short 06478h                           ; 72 0d
    9114     jbe short 064d3h                          ; 76 66
     9068    jc short 063ffh                           ; 72 0d
     9069    jbe short 0645ah                          ; 76 66
    91159070    cmp AL, strict byte 003h                  ; 3c 03
    9116     je short 064cbh                           ; 74 5a
     9071    je short 06452h                           ; 74 5a
    91179072    cmp AL, strict byte 002h                  ; 3c 02
    9118     je short 064ceh                           ; 74 59
    9119     jmp near 0657ch                           ; e9 04 01
     9073    je short 06455h                           ; 74 59
     9074    jmp near 06503h                           ; e9 04 01
    91209075    test al, al                               ; 84 c0
    9121     jne short 064d0h                          ; 75 54
     9076    jne short 06457h                          ; 75 54
    91229077    lea dx, [bx+003h]                         ; 8d 57 03
    91239078    in AL, DX                                 ; ec
     
    91529107    ; sub ah, ah                                ; 2a e4
    91539108    mov byte [bp+012h], al                    ; 88 46 12
    9154     jmp near 0655dh                           ; e9 9f 00
     9109    jmp near 064e4h                           ; e9 9f 00
    91559110    mov AL, strict byte 017h                  ; b0 17
    91569111    mov dx, bx                                ; 89 da
     
    91599114    mov AL, strict byte 004h                  ; b0 04
    91609115    out DX, AL                                ; ee
    9161     jmp short 064a0h                          ; eb d5
    9162     jmp near 0656bh                           ; e9 9d 00
    9163     jmp short 06521h                          ; eb 51
    9164     jmp near 0657ch                           ; e9 a9 00
     9116    jmp short 06427h                          ; eb d5
     9117    jmp near 064f2h                           ; e9 9d 00
     9118    jmp short 064a8h                          ; eb 51
     9119    jmp near 06503h                           ; e9 a9 00
    91659120    mov dx, strict word 0006ch                ; ba 6c 00
    91669121    mov ax, strict word 00040h                ; b8 40 00
    9167     call 0166ch                               ; e8 90 b1
     9122    call 0166ch                               ; e8 09 b2
    91689123    mov si, ax                                ; 89 c6
    91699124    lea dx, [bx+005h]                         ; 8d 57 05
     
    91739128    and ax, strict word 00060h                ; 25 60 00
    91749129    cmp ax, strict word 00060h                ; 3d 60 00
    9175     je short 06503h                           ; 74 17
     9130    je short 0648ah                           ; 74 17
    91769131    test cl, cl                               ; 84 c9
    9177     je short 06503h                           ; 74 13
     9132    je short 0648ah                           ; 74 13
    91789133    mov dx, strict word 0006ch                ; ba 6c 00
    91799134    mov ax, strict word 00040h                ; b8 40 00
    9180     call 0166ch                               ; e8 73 b1
     9135    call 0166ch                               ; e8 ec b1
    91819136    cmp ax, si                                ; 39 f0
    9182     je short 064deh                           ; 74 e1
     9137    je short 06465h                           ; 74 e1
    91839138    mov si, ax                                ; 89 c6
    91849139    db  0feh, 0c9h
    91859140    ; dec cl                                    ; fe c9
    9186     jmp short 064deh                          ; eb db
     9141    jmp short 06465h                          ; eb db
    91879142    test cl, cl                               ; 84 c9
    9188     je short 0650dh                           ; 74 06
     9143    je short 06494h                           ; 74 06
    91899144    mov al, byte [bp+012h]                    ; 8a 46 12
    91909145    mov dx, bx                                ; 89 da
     
    91969151    mov byte [bp+013h], al                    ; 88 46 13
    91979152    test cl, cl                               ; 84 c9
    9198     jne short 0655dh                          ; 75 43
     9153    jne short 064e4h                          ; 75 43
    91999154    or AL, strict byte 080h                   ; 0c 80
    92009155    mov byte [bp+013h], al                    ; 88 46 13
    9201     jmp short 0655dh                          ; eb 3c
     9156    jmp short 064e4h                          ; eb 3c
    92029157    mov dx, strict word 0006ch                ; ba 6c 00
    92039158    mov ax, strict word 00040h                ; b8 40 00
    9204     call 0166ch                               ; e8 42 b1
     9159    call 0166ch                               ; e8 bb b1
    92059160    mov si, ax                                ; 89 c6
    92069161    lea dx, [bx+005h]                         ; 8d 57 05
     
    92099164    ; sub ah, ah                                ; 2a e4
    92109165    test AL, strict byte 001h                 ; a8 01
    9211     jne short 0654dh                          ; 75 17
     9166    jne short 064d4h                          ; 75 17
    92129167    test cl, cl                               ; 84 c9
    9213     je short 0654dh                           ; 74 13
     9168    je short 064d4h                           ; 74 13
    92149169    mov dx, strict word 0006ch                ; ba 6c 00
    92159170    mov ax, strict word 00040h                ; b8 40 00
    9216     call 0166ch                               ; e8 29 b1
     9171    call 0166ch                               ; e8 a2 b1
    92179172    cmp ax, si                                ; 39 f0
    9218     je short 0652ch                           ; 74 e5
     9173    je short 064b3h                           ; 74 e5
    92199174    mov si, ax                                ; 89 c6
    92209175    db  0feh, 0c9h
    92219176    ; dec cl                                    ; fe c9
    9222     jmp short 0652ch                          ; eb df
     9177    jmp short 064b3h                          ; eb df
    92239178    test cl, cl                               ; 84 c9
    9224     je short 06563h                           ; 74 12
     9179    je short 064eah                           ; 74 12
    92259180    mov byte [bp+013h], 000h                  ; c6 46 13 00
    92269181    mov dx, bx                                ; 89 da
     
    92309185    mov byte [bp+012h], al                    ; 88 46 12
    92319186    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9232     jmp short 06586h                          ; eb 23
     9187    jmp short 0650dh                          ; eb 23
    92339188    lea dx, [bx+005h]                         ; 8d 57 05
    92349189    in AL, DX                                 ; ec
    92359190    db  02ah, 0e4h
    92369191    ; sub ah, ah                                ; 2a e4
    9237     jmp short 0651ch                          ; eb b1
     9192    jmp short 064a3h                          ; eb b1
    92389193    lea dx, [si+005h]                         ; 8d 54 05
    92399194    in AL, DX                                 ; ec
     
    92459200    db  02ah, 0e4h
    92469201    ; sub ah, ah                                ; 2a e4
    9247     jmp short 0655ah                          ; eb de
     9202    jmp short 064e1h                          ; eb de
    92489203    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9249     jmp short 06586h                          ; eb 04
     9204    jmp short 0650dh                          ; eb 04
    92509205    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    92519206    lea sp, [bp-002h]                         ; 8d 66 fe
     
    92539208    pop bp                                    ; 5d
    92549209    retn                                      ; c3
    9255 set_enable_a20_:                             ; 0xf658c LB 0x30
     9210set_enable_a20_:                             ; 0xf6513 LB 0x30
    92569211    push bp                                   ; 55
    92579212    mov bp, sp                                ; 89 e5
     
    92669221    mov cl, al                                ; 88 c1
    92679222    test bx, bx                               ; 85 db
    9268     je short 065a5h                           ; 74 05
     9223    je short 0652ch                           ; 74 05
    92699224    or AL, strict byte 002h                   ; 0c 02
    92709225    out DX, AL                                ; ee
    9271     jmp short 065a8h                          ; eb 03
     9226    jmp short 0652fh                          ; eb 03
    92729227    and AL, strict byte 0fdh                  ; 24 fd
    92739228    out DX, AL                                ; ee
    92749229    test cl, 002h                             ; f6 c1 02
    9275     je short 065b2h                           ; 74 05
     9230    je short 06539h                           ; 74 05
    92769231    mov ax, strict word 00001h                ; b8 01 00
    9277     jmp short 065b4h                          ; eb 02
     9232    jmp short 0653bh                          ; eb 02
    92789233    xor ax, ax                                ; 31 c0
    92799234    lea sp, [bp-006h]                         ; 8d 66 fa
     
    92839238    pop bp                                    ; 5d
    92849239    retn                                      ; c3
    9285 set_e820_range_:                             ; 0xf65bc LB 0x8b
     9240set_e820_range_:                             ; 0xf6543 LB 0x8b
    92869241    push si                                   ; 56
    92879242    push bp                                   ; 55
     
    93139268    retn 0000ah                               ; c2 0a 00
    93149269    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
    9315     db  000h, 0edh, 06ah, 084h, 066h, 098h, 066h, 02dh, 067h, 033h, 067h, 038h, 067h, 03dh, 067h, 0e5h
    9316     db  067h, 084h, 069h, 0aah, 069h, 026h, 067h, 026h, 067h, 077h, 06ah, 09fh, 06ah, 0b2h, 06ah, 0c1h
    9317     db  06ah, 02dh, 067h, 0c8h, 06ah
    9318 _int15_function:                             ; 0xf6647 LB 0x4d8
     9270    db  000h, 074h, 06ah, 00bh, 066h, 01fh, 066h, 0b4h, 066h, 0bah, 066h, 0bfh, 066h, 0c4h, 066h, 06ch
     9271    db  067h, 00bh, 069h, 031h, 069h, 0adh, 066h, 0adh, 066h, 0feh, 069h, 026h, 06ah, 039h, 06ah, 048h
     9272    db  06ah, 0b4h, 066h, 04fh, 06ah
     9273_int15_function:                             ; 0xf65ce LB 0x4d8
    93199274    push bp                                   ; 55
    93209275    mov bp, sp                                ; 89 e5
     
    93269281    shr ax, 008h                              ; c1 e8 08
    93279282    cmp ax, 000ech                            ; 3d ec 00
    9328     jnbe short 0668eh                         ; 77 35
     9283    jnbe short 06615h                         ; 77 35
    93299284    push CS                                   ; 0e
    93309285    pop ES                                    ; 07
    93319286    mov cx, strict word 00012h                ; b9 12 00
    9332     mov di, 06612h                            ; bf 12 66
     9287    mov di, 06599h                            ; bf 99 65
    93339288    repne scasb                               ; f2 ae
    93349289    sal cx, 1                                 ; d1 e1
    93359290    mov di, cx                                ; 89 cf
    9336     mov si, word [cs:di+06623h]               ; 2e 8b b5 23 66
     9291    mov si, word [cs:di+065aah]               ; 2e 8b b5 aa 65
    93379292    mov ax, word [bp+012h]                    ; 8b 46 12
    93389293    xor ah, ah                                ; 30 e4
     
    93479302    xor ah, ah                                ; 30 e4
    93489303    cmp ax, 000c0h                            ; 3d c0 00
    9349     je short 06691h                           ; 74 03
    9350     jmp near 06aedh                           ; e9 5c 04
     9304    je short 06618h                           ; 74 03
     9305    jmp near 06a74h                           ; e9 5c 04
    93519306    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9352     jmp near 06a96h                           ; e9 fe 03
     9307    jmp near 06a1dh                           ; e9 fe 03
    93539308    mov dx, ax                                ; 89 c2
    93549309    cmp ax, strict word 00001h                ; 3d 01 00
    9355     jc short 066adh                           ; 72 0e
    9356     jbe short 066c1h                          ; 76 20
     9310    jc short 06634h                           ; 72 0e
     9311    jbe short 06648h                          ; 76 20
    93579312    cmp ax, strict word 00003h                ; 3d 03 00
    9358     je short 066eeh                           ; 74 48
     9313    je short 06675h                           ; 74 48
    93599314    cmp ax, strict word 00002h                ; 3d 02 00
    9360     je short 066d1h                           ; 74 26
    9361     jmp short 066fbh                          ; eb 4e
     9315    je short 06658h                           ; 74 26
     9316    jmp short 06682h                          ; eb 4e
    93629317    test ax, ax                               ; 85 c0
    9363     jne short 066fbh                          ; 75 4a
     9318    jne short 06682h                          ; 75 4a
    93649319    xor ax, ax                                ; 31 c0
    9365     call 0658ch                               ; e8 d6 fe
     9320    call 06513h                               ; e8 d6 fe
    93669321    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93679322    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9368     jmp near 06726h                           ; e9 65 00
     9323    jmp near 066adh                           ; e9 65 00
    93699324    mov ax, strict word 00001h                ; b8 01 00
    9370     call 0658ch                               ; e8 c5 fe
     9325    call 06513h                               ; e8 c5 fe
    93719326    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93729327    mov byte [bp+013h], dh                    ; 88 76 13
    9373     jmp near 06726h                           ; e9 55 00
     9328    jmp near 066adh                           ; e9 55 00
    93749329    mov dx, 00092h                            ; ba 92 00
    93759330    in AL, DX                                 ; ec
     
    93839338    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93849339    mov byte [bp+013h], ah                    ; 88 66 13
    9385     jmp near 06726h                           ; e9 38 00
     9340    jmp near 066adh                           ; e9 38 00
    93869341    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93879342    mov byte [bp+013h], ah                    ; 88 66 13
    93889343    mov word [bp+00ch], ax                    ; 89 46 0c
    9389     jmp near 06726h                           ; e9 2b 00
     9344    jmp near 066adh                           ; e9 2b 00
    93909345    mov bx, 00da0h                            ; bb a0 0d
    93919346    mov cx, ds                                ; 8c d9
    93929347    mov ax, strict word 00004h                ; b8 04 00
    9393     call 01923h                               ; e8 1d b2
     9348    call 01923h                               ; e8 96 b2
    93949349    mov ax, word [bp+012h]                    ; 8b 46 12
    93959350    xor ah, ah                                ; 30 e4
     
    93979352    push 0082eh                               ; 68 2e 08
    93989353    push strict byte 00004h                   ; 6a 04
    9399     call 01966h                               ; e8 52 b2
     9354    call 01966h                               ; e8 cb b2
    94009355    add sp, strict byte 00006h                ; 83 c4 06
    94019356    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    94109365    retn                                      ; c3
    94119366    mov word [bp+018h], dx                    ; 89 56 18
    9412     jmp near 067dfh                           ; e9 ac 00
     9367    jmp near 06766h                           ; e9 ac 00
    94139368    mov word [bp+018h], dx                    ; 89 56 18
    9414     jmp short 06726h                          ; eb ee
     9369    jmp short 066adh                          ; eb ee
    94159370    mov word [bp+018h], cx                    ; 89 4e 18
    9416     jmp short 06723h                          ; eb e6
     9371    jmp short 066aah                          ; eb e6
    94179372    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9418     jne short 067b2h                          ; 75 6f
     9373    jne short 06739h                          ; 75 6f
    94199374    mov dx, 000a0h                            ; ba a0 00
    94209375    mov ax, strict word 00040h                ; b8 40 00
    9421     call 01650h                               ; e8 04 af
     9376    call 01650h                               ; e8 7d af
    94229377    test AL, strict byte 001h                 ; a8 01
    9423     jne short 067afh                          ; 75 5f
     9378    jne short 06736h                          ; 75 5f
    94249379    mov bx, strict word 00001h                ; bb 01 00
    94259380    mov dx, 000a0h                            ; ba a0 00
    94269381    mov ax, strict word 00040h                ; b8 40 00
    9427     call 0165eh                               ; e8 02 af
     9382    call 0165eh                               ; e8 7b af
    94289383    mov bx, word [bp+014h]                    ; 8b 5e 14
    94299384    mov dx, 00098h                            ; ba 98 00
    94309385    mov ax, strict word 00040h                ; b8 40 00
    9431     call 0167ah                               ; e8 12 af
     9386    call 0167ah                               ; e8 8b af
    94329387    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    94339388    mov dx, 0009ah                            ; ba 9a 00
    94349389    mov ax, strict word 00040h                ; b8 40 00
    9435     call 0167ah                               ; e8 06 af
     9390    call 0167ah                               ; e8 7f af
    94369391    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    94379392    mov dx, 0009ch                            ; ba 9c 00
    94389393    mov ax, strict word 00040h                ; b8 40 00
    9439     call 0167ah                               ; e8 fa ae
     9394    call 0167ah                               ; e8 73 af
    94409395    mov bx, word [bp+010h]                    ; 8b 5e 10
    94419396    mov dx, 0009eh                            ; ba 9e 00
    94429397    mov ax, strict word 00040h                ; b8 40 00
    9443     call 0167ah                               ; e8 ee ae
     9398    call 0167ah                               ; e8 67 af
    94449399    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94459400    mov dx, 000a1h                            ; ba a1 00
     
    94509405    out DX, AL                                ; ee
    94519406    mov ax, strict word 0000bh                ; b8 0b 00
    9452     call 016ach                               ; e8 0d af
     9407    call 016ach                               ; e8 86 af
    94539408    mov dl, al                                ; 88 c2
    94549409    or dl, 040h                               ; 80 ca 40
    94559410    xor dh, dh                                ; 30 f6
    94569411    mov ax, strict word 0000bh                ; b8 0b 00
    9457     call 016c7h                               ; e8 1b af
    9458     jmp near 06726h                           ; e9 77 ff
    9459     jmp near 06a8dh                           ; e9 db 02
     9412    call 016c7h                               ; e8 94 af
     9413    jmp near 066adh                           ; e9 77 ff
     9414    jmp near 06a14h                           ; e9 db 02
    94609415    cmp ax, strict word 00001h                ; 3d 01 00
    9461     jne short 067d3h                          ; 75 1c
     9416    jne short 0675ah                          ; 75 1c
    94629417    xor bx, bx                                ; 31 db
    94639418    mov dx, 000a0h                            ; ba a0 00
    94649419    mov ax, strict word 00040h                ; b8 40 00
    9465     call 0165eh                               ; e8 9c ae
     9420    call 0165eh                               ; e8 15 af
    94669421    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94679422    mov ax, strict word 0000bh                ; b8 0b 00
    9468     call 016ach                               ; e8 e0 ae
     9423    call 016ach                               ; e8 59 af
    94699424    mov dl, al                                ; 88 c2
    94709425    and dl, 0bfh                              ; 80 e2 bf
    9471     jmp short 067a4h                          ; eb d1
     9426    jmp short 0672bh                          ; eb d1
    94729427    mov word [bp+018h], dx                    ; 89 56 18
    94739428    mov ax, bx                                ; 89 d8
     
    94779432    or bx, ax                                 ; 09 c3
    94789433    mov word [bp+012h], bx                    ; 89 5e 12
    9479     jmp near 06726h                           ; e9 41 ff
     9434    jmp near 066adh                           ; e9 41 ff
    94809435    cli                                       ; fa
    94819436    mov ax, strict word 00001h                ; b8 01 00
    9482     call 0658ch                               ; e8 a0 fd
     9437    call 06513h                               ; e8 a0 fd
    94839438    mov di, ax                                ; 89 c7
    94849439    mov ax, word [bp+014h]                    ; 8b 46 14
     
    94909445    mov byte [bp-006h], dl                    ; 88 56 fa
    94919446    cmp cx, ax                                ; 39 c1
    9492     jnc short 0680bh                          ; 73 05
     9447    jnc short 06792h                          ; 73 05
    94939448    db  0feh, 0c2h
    94949449    ; inc dl                                    ; fe c2
     
    94989453    mov ax, word [bp+014h]                    ; 8b 46 14
    94999454    mov bx, strict word 0002fh                ; bb 2f 00
    9500     call 0167ah                               ; e8 60 ae
     9455    call 0167ah                               ; e8 d9 ae
    95019456    mov dx, word [bp+006h]                    ; 8b 56 06
    95029457    add dx, strict byte 0000ah                ; 83 c2 0a
    95039458    mov ax, word [bp+014h]                    ; 8b 46 14
    95049459    mov bx, cx                                ; 89 cb
    9505     call 0167ah                               ; e8 52 ae
     9460    call 0167ah                               ; e8 cb ae
    95069461    mov bl, byte [bp-006h]                    ; 8a 5e fa
    95079462    xor bh, bh                                ; 30 ff
     
    95099464    add dx, strict byte 0000ch                ; 83 c2 0c
    95109465    mov ax, word [bp+014h]                    ; 8b 46 14
    9511     call 0165eh                               ; e8 25 ae
     9466    call 0165eh                               ; e8 9e ae
    95129467    mov dx, word [bp+006h]                    ; 8b 56 06
    95139468    add dx, strict byte 0000dh                ; 83 c2 0d
    95149469    mov ax, word [bp+014h]                    ; 8b 46 14
    95159470    mov bx, 00093h                            ; bb 93 00
    9516     call 0165eh                               ; e8 16 ae
     9471    call 0165eh                               ; e8 8f ae
    95179472    mov dx, word [bp+006h]                    ; 8b 56 06
    95189473    add dx, strict byte 0000eh                ; 83 c2 0e
    95199474    mov ax, word [bp+014h]                    ; 8b 46 14
    95209475    xor bx, bx                                ; 31 db
    9521     call 0167ah                               ; e8 24 ae
     9476    call 0167ah                               ; e8 9d ae
    95229477    mov dx, word [bp+006h]                    ; 8b 56 06
    95239478    add dx, strict byte 00020h                ; 83 c2 20
    95249479    mov ax, word [bp+014h]                    ; 8b 46 14
    95259480    mov bx, strict word 0ffffh                ; bb ff ff
    9526     call 0167ah                               ; e8 15 ae
     9481    call 0167ah                               ; e8 8e ae
    95279482    mov dx, word [bp+006h]                    ; 8b 56 06
    95289483    add dx, strict byte 00022h                ; 83 c2 22
    95299484    mov ax, word [bp+014h]                    ; 8b 46 14
    95309485    xor bx, bx                                ; 31 db
    9531     call 0167ah                               ; e8 07 ae
     9486    call 0167ah                               ; e8 80 ae
    95329487    mov dx, word [bp+006h]                    ; 8b 56 06
    95339488    add dx, strict byte 00024h                ; 83 c2 24
    95349489    mov ax, word [bp+014h]                    ; 8b 46 14
    95359490    mov bx, strict word 0000fh                ; bb 0f 00
    9536     call 0165eh                               ; e8 dc ad
     9491    call 0165eh                               ; e8 55 ae
    95379492    mov dx, word [bp+006h]                    ; 8b 56 06
    95389493    add dx, strict byte 00025h                ; 83 c2 25
    95399494    mov ax, word [bp+014h]                    ; 8b 46 14
    95409495    mov bx, 0009bh                            ; bb 9b 00
    9541     call 0165eh                               ; e8 cd ad
     9496    call 0165eh                               ; e8 46 ae
    95429497    mov dx, word [bp+006h]                    ; 8b 56 06
    95439498    add dx, strict byte 00026h                ; 83 c2 26
    95449499    mov ax, word [bp+014h]                    ; 8b 46 14
    95459500    xor bx, bx                                ; 31 db
    9546     call 0167ah                               ; e8 db ad
     9501    call 0167ah                               ; e8 54 ae
    95479502    mov ax, ss                                ; 8c d0
    95489503    mov cx, ax                                ; 89 c1
     
    95549509    mov ax, word [bp+014h]                    ; 8b 46 14
    95559510    mov bx, strict word 0ffffh                ; bb ff ff
    9556     call 0167ah                               ; e8 bf ad
     9511    call 0167ah                               ; e8 38 ae
    95579512    mov dx, word [bp+006h]                    ; 8b 56 06
    95589513    add dx, strict byte 0002ah                ; 83 c2 2a
    95599514    mov ax, word [bp+014h]                    ; 8b 46 14
    95609515    mov bx, cx                                ; 89 cb
    9561     call 0167ah                               ; e8 b1 ad
     9516    call 0167ah                               ; e8 2a ae
    95629517    mov bl, byte [bp-008h]                    ; 8a 5e f8
    95639518    xor bh, bh                                ; 30 ff
     
    95659520    add dx, strict byte 0002ch                ; 83 c2 2c
    95669521    mov ax, word [bp+014h]                    ; 8b 46 14
    9567     call 0165eh                               ; e8 84 ad
     9522    call 0165eh                               ; e8 fd ad
    95689523    mov dx, word [bp+006h]                    ; 8b 56 06
    95699524    add dx, strict byte 0002dh                ; 83 c2 2d
    95709525    mov ax, word [bp+014h]                    ; 8b 46 14
    95719526    mov bx, 00093h                            ; bb 93 00
    9572     call 0165eh                               ; e8 75 ad
     9527    call 0165eh                               ; e8 ee ad
    95739528    mov dx, word [bp+006h]                    ; 8b 56 06
    95749529    add dx, strict byte 0002eh                ; 83 c2 2e
    95759530    mov ax, word [bp+014h]                    ; 8b 46 14
    95769531    xor bx, bx                                ; 31 db
    9577     call 0167ah                               ; e8 83 ad
     9532    call 0167ah                               ; e8 fc ad
    95789533    mov si, word [bp+006h]                    ; 8b 76 06
    95799534    mov es, [bp+014h]                         ; 8e 46 14
     
    95869541    mov word [00467h], sp                     ; 89 26 67 04
    95879542    mov [00469h], ss                          ; 8c 16 69 04
    9588     call 06913h                               ; e8 00 00
     9543    call 0689ah                               ; e8 00 00
    95899544    pop di                                    ; 5f
    95909545    add di, strict byte 0001bh                ; 83 c7 1b
     
    96099564    cld                                       ; fc
    96109565    rep movsw                                 ; f3 a5
    9611     call 06947h                               ; e8 00 00
     9566    call 068ceh                               ; e8 00 00
    96129567    pop ax                                    ; 58
    96139568    push 0f000h                               ; 68 00 f0
     
    96309585    pop DS                                    ; 1f
    96319586    mov ax, di                                ; 89 f8
    9632     call 0658ch                               ; e8 14 fc
     9587    call 06513h                               ; e8 14 fc
    96339588    sti                                       ; fb
    96349589    mov byte [bp+013h], 000h                  ; c6 46 13 00
    96359590    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9636     jmp near 06726h                           ; e9 a2 fd
     9591    jmp near 066adh                           ; e9 a2 fd
    96379592    mov ax, strict word 00031h                ; b8 31 00
    9638     call 016ach                               ; e8 22 ad
     9593    call 016ach                               ; e8 9b ad
    96399594    xor ah, ah                                ; 30 e4
    96409595    mov dx, ax                                ; 89 c2
    96419596    sal dx, 008h                              ; c1 e2 08
    96429597    mov ax, strict word 00030h                ; b8 30 00
    9643     call 016ach                               ; e8 15 ad
     9598    call 016ach                               ; e8 8e ad
    96449599    xor ah, ah                                ; 30 e4
    96459600    or dx, ax                                 ; 09 c2
    96469601    mov word [bp+012h], dx                    ; 89 56 12
    96479602    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9648     jbe short 0697dh                          ; 76 da
     9603    jbe short 06904h                          ; 76 da
    96499604    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    9650     jmp short 0697dh                          ; eb d3
     9605    jmp short 06904h                          ; eb d3
    96519606    cli                                       ; fa
    96529607    mov ax, strict word 00001h                ; b8 01 00
    9653     call 0658ch                               ; e8 db fb
     9608    call 06513h                               ; e8 db fb
    96549609    mov dx, word [bp+006h]                    ; 8b 56 06
    96559610    add dx, strict byte 00038h                ; 83 c2 38
    96569611    mov ax, word [bp+014h]                    ; 8b 46 14
    96579612    mov bx, strict word 0ffffh                ; bb ff ff
    9658     call 0167ah                               ; e8 ba ac
     9613    call 0167ah                               ; e8 33 ad
    96599614    mov dx, word [bp+006h]                    ; 8b 56 06
    96609615    add dx, strict byte 0003ah                ; 83 c2 3a
    96619616    mov ax, word [bp+014h]                    ; 8b 46 14
    96629617    xor bx, bx                                ; 31 db
    9663     call 0167ah                               ; e8 ac ac
     9618    call 0167ah                               ; e8 25 ad
    96649619    mov dx, word [bp+006h]                    ; 8b 56 06
    96659620    add dx, strict byte 0003ch                ; 83 c2 3c
    96669621    mov ax, word [bp+014h]                    ; 8b 46 14
    96679622    mov bx, strict word 0000fh                ; bb 0f 00
    9668     call 0165eh                               ; e8 81 ac
     9623    call 0165eh                               ; e8 fa ac
    96699624    mov dx, word [bp+006h]                    ; 8b 56 06
    96709625    add dx, strict byte 0003dh                ; 83 c2 3d
    96719626    mov ax, word [bp+014h]                    ; 8b 46 14
    96729627    mov bx, 0009bh                            ; bb 9b 00
    9673     call 0165eh                               ; e8 72 ac
     9628    call 0165eh                               ; e8 eb ac
    96749629    mov dx, word [bp+006h]                    ; 8b 56 06
    96759630    add dx, strict byte 0003eh                ; 83 c2 3e
    96769631    mov ax, word [bp+014h]                    ; 8b 46 14
    96779632    xor bx, bx                                ; 31 db
    9678     call 0167ah                               ; e8 80 ac
     9633    call 0167ah                               ; e8 f9 ac
    96799634    mov AL, strict byte 011h                  ; b0 11
    96809635    mov dx, strict word 00020h                ; ba 20 00
     
    97069661    out DX, AL                                ; ee
    97079662    mov si, word [bp+006h]                    ; 8b 76 06
    9708     call 06a3bh                               ; e8 00 00
     9663    call 069c2h                               ; e8 00 00
    97099664    pop di                                    ; 5f
    97109665    add di, strict byte 00018h                ; 83 c7 18
     
    97349689    push cx                                   ; 51
    97359690    retf                                      ; cb
    9736     jmp near 06726h                           ; e9 af fc
     9691    jmp near 066adh                           ; e9 af fc
    97379692    mov bx, 00da0h                            ; bb a0 0d
    97389693    mov cx, ds                                ; 8c d9
    97399694    mov ax, strict word 00004h                ; b8 04 00
    9740     call 01923h                               ; e8 a1 ae
     9695    call 01923h                               ; e8 1a af
    97419696    push 0086eh                               ; 68 6e 08
    97429697    push strict byte 00004h                   ; 6a 04
    9743     call 01966h                               ; e8 dc ae
     9698    call 01966h                               ; e8 55 af
    97449699    add sp, strict byte 00004h                ; 83 c4 04
    97459700    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    97489703    or ah, 086h                               ; 80 cc 86
    97499704    mov word [bp+012h], ax                    ; 89 46 12
    9750     jmp near 06726h                           ; e9 87 fc
     9705    jmp near 066adh                           ; e9 87 fc
    97519706    mov word [bp+018h], cx                    ; 89 4e 18
    97529707    mov word [bp+012h], ax                    ; 89 46 12
    97539708    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    97549709    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9755     jmp near 06726h                           ; e9 74 fc
     9710    jmp near 066adh                           ; e9 74 fc
    97569711    mov dx, strict word 0000eh                ; ba 0e 00
    97579712    mov ax, strict word 00040h                ; b8 40 00
    9758     call 0166ch                               ; e8 b1 ab
     9713    call 0166ch                               ; e8 2a ac
    97599714    mov word [bp+014h], ax                    ; 89 46 14
    9760     jmp near 0697dh                           ; e9 bc fe
     9715    jmp near 06904h                           ; e9 bc fe
    97619716    push 0089dh                               ; 68 9d 08
    97629717    push strict byte 00008h                   ; 6a 08
    9763     jmp short 06a87h                          ; eb bf
     9718    jmp short 06a0eh                          ; eb bf
    97649719    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9765     jne short 06aedh                          ; 75 1f
     9720    jne short 06a74h                          ; 75 1f
    97669721    mov word [bp+012h], ax                    ; 89 46 12
    97679722    mov ax, word [bp+00ch]                    ; 8b 46 0c
    97689723    xor ah, ah                                ; 30 e4
    97699724    cmp ax, strict word 00001h                ; 3d 01 00
    9770     jc short 06ae6h                           ; 72 0b
     9725    jc short 06a6dh                           ; 72 0b
    97719726    cmp ax, strict word 00003h                ; 3d 03 00
    9772     jnbe short 06ae6h                         ; 77 06
     9727    jnbe short 06a6dh                         ; 77 06
    97739728    mov word [bp+018h], cx                    ; 89 4e 18
    9774     jmp near 06726h                           ; e9 40 fc
     9729    jmp near 066adh                           ; e9 40 fc
    97759730    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9776     jmp near 06726h                           ; e9 39 fc
     9731    jmp near 066adh                           ; e9 39 fc
    97779732    mov bx, 00da0h                            ; bb a0 0d
    97789733    mov cx, ds                                ; 8c d9
    97799734    mov ax, strict word 00004h                ; b8 04 00
    9780     call 01923h                               ; e8 2b ae
     9735    call 01923h                               ; e8 a4 ae
    97819736    push word [bp+00ch]                       ; ff 76 0c
    97829737    push word [bp+012h]                       ; ff 76 12
    97839738    push 008b4h                               ; 68 b4 08
    97849739    push strict byte 00004h                   ; 6a 04
    9785     call 01966h                               ; e8 60 ae
     9740    call 01966h                               ; e8 d9 ae
    97869741    add sp, strict byte 00008h                ; 83 c4 08
    9787     jmp short 06a8dh                          ; eb 82
    9788     mov bx, 0e06ch                            ; bb 6c e0
     9742    jmp short 06a14h                          ; eb 82
     9743    inc dx                                    ; 42
    97899744    insb                                      ; 6c
    9790     add byte [di+04fh], ch                    ; 00 6d 4f
     9745    a32 insb                                  ; 67 6c
     9746    xchg word [si-02ah], bp                   ; 87 6c d6
     9747    insb                                      ; 6c
     9748    hlt                                       ; f4
     9749    insb                                      ; 6c
     9750    adc word [di+033h], bp                    ; 11 6d 33
    97919751    insw                                      ; 6d
     9752    push bp                                   ; 55
    97929753    insw                                      ; 6d
     9754    xchg dx, ax                               ; 92
    97939755    insw                                      ; 6d
    9794     mov ch, byte [di-054h]                    ; 8a 6d ac
     9756    db  0c6h
    97959757    insw                                      ; 6d
    9796     into                                      ; ce
    9797     insw                                      ; 6d
    9798     or bp, word [bp+03fh]                     ; 0b 6e 3f
    9799     outsb                                     ; 6e
    9800 _int15_function32:                           ; 0xf6b1f LB 0x3bc
     9758_int15_function32:                           ; 0xf6aa6 LB 0x3bc
    98019759    push bp                                   ; 55
    98029760    mov bp, sp                                ; 89 e5
     
    98109768    xor ah, ah                                ; 30 e4
    98119769    cmp dx, 000e8h                            ; 81 fa e8 00
    9812     je short 06b8ah                           ; 74 4d
     9770    je short 06b11h                           ; 74 4d
    98139771    cmp dx, 000d0h                            ; 81 fa d0 00
    9814     je short 06b83h                           ; 74 40
     9772    je short 06b0ah                           ; 74 40
    98159773    cmp dx, 00086h                            ; 81 fa 86 00
    9816     jne short 06ba8h                          ; 75 5f
     9774    jne short 06b2fh                          ; 75 5f
    98179775    sti                                       ; fb
    98189776    mov ax, word [bp+01ch]                    ; 8b 46 1c
     
    98339791    db  066h, 00bh, 0c9h
    98349792    ; or ecx, ecx                               ; 66 0b c9
    9835     je near 06b80h                            ; 0f 84 0e 00
     9793    je near 06b07h                            ; 0f 84 0e 00
    98369794    in AL, strict byte 061h                   ; e4 61
    98379795    and AL, strict byte 010h                  ; 24 10
    98389796    db  03ah, 0c4h
    98399797    ; cmp al, ah                                ; 3a c4
    9840     je short 06b72h                           ; 74 f8
     9798    je short 06af9h                           ; 74 f8
    98419799    db  08ah, 0e0h
    98429800    ; mov ah, al                                ; 8a e0
    98439801    dec ecx                                   ; 66 49
    9844     jne short 06b72h                          ; 75 f2
    9845     jmp near 06d49h                           ; e9 c6 01
     9802    jne short 06af9h                          ; 75 f2
     9803    jmp near 06cd0h                           ; e9 c6 01
    98469804    cmp ax, strict word 0004fh                ; 3d 4f 00
    9847     je short 06b8ch                           ; 74 04
    9848     jmp short 06ba8h                          ; eb 1e
    9849     jmp short 06be2h                          ; eb 56
     9805    je short 06b13h                           ; 74 04
     9806    jmp short 06b2fh                          ; eb 1e
     9807    jmp short 06b69h                          ; eb 56
    98509808    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9851     jne short 06bech                          ; 75 59
     9809    jne short 06b73h                          ; 75 59
    98529810    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9853     jne short 06bech                          ; 75 52
     9811    jne short 06b73h                          ; 75 52
    98549812    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9855     jne short 06bech                          ; 75 4b
     9813    jne short 06b73h                          ; 75 4b
    98569814    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9857     je short 06baah                           ; 74 02
    9858     jmp short 06bech                          ; eb 42
     9815    je short 06b31h                           ; 74 02
     9816    jmp short 06b73h                          ; eb 42
    98599817    mov ax, word [bp+00ah]                    ; 8b 46 0a
    98609818    or ax, word [bp+008h]                     ; 0b 46 08
    9861     jne short 06bech                          ; 75 3a
     9819    jne short 06b73h                          ; 75 3a
    98629820    mov ax, word [bp+006h]                    ; 8b 46 06
    98639821    or ax, word [bp+004h]                     ; 0b 46 04
    9864     jne short 06bech                          ; 75 32
     9822    jne short 06b73h                          ; 75 32
    98659823    mov word [bp+028h], bx                    ; 89 5e 28
    98669824    mov ax, word [bp+014h]                    ; 8b 46 14
     
    98749832    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    98759833    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    9876     jmp near 06d49h                           ; e9 67 01
     9834    jmp near 06cd0h                           ; e9 67 01
    98779835    cmp ax, strict word 00020h                ; 3d 20 00
    9878     je short 06bf2h                           ; 74 0b
     9836    je short 06b79h                           ; 74 0b
    98799837    cmp ax, strict word 00001h                ; 3d 01 00
    9880     je short 06befh                           ; 74 03
    9881     jmp near 06d1fh                           ; e9 30 01
    9882     jmp near 06e8dh                           ; e9 9b 02
     9838    je short 06b76h                           ; 74 03
     9839    jmp near 06ca6h                           ; e9 30 01
     9840    jmp near 06e14h                           ; e9 9b 02
    98839841    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9884     jne short 06bech                          ; 75 f3
     9842    jne short 06b73h                          ; 75 f3
    98859843    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9886     jne short 06bech                          ; 75 ec
     9844    jne short 06b73h                          ; 75 ec
    98879845    mov ax, strict word 00035h                ; b8 35 00
    9888     call 016ach                               ; e8 a6 aa
     9846    call 016ach                               ; e8 1f ab
    98899847    mov bl, al                                ; 88 c3
    98909848    xor bh, bh                                ; 30 ff
     
    98939851    sal bx, 1                                 ; d1 e3
    98949852    rcl dx, 1                                 ; d1 d2
    9895     loop 06c0fh                               ; e2 fa
     9853    loop 06b96h                               ; e2 fa
    98969854    mov ax, strict word 00034h                ; b8 34 00
    9897     call 016ach                               ; e8 91 aa
     9855    call 016ach                               ; e8 0a ab
    98989856    xor ah, ah                                ; 30 e4
    98999857    mov dx, bx                                ; 89 da
     
    99039861    adc dx, 00100h                            ; 81 d2 00 01
    99049862    cmp dx, 00100h                            ; 81 fa 00 01
    9905     jc short 06c35h                           ; 72 06
    9906     jne short 06c63h                          ; 75 32
     9863    jc short 06bbch                           ; 72 06
     9864    jne short 06beah                          ; 75 32
    99079865    test bx, bx                               ; 85 db
    9908     jnbe short 06c63h                         ; 77 2e
     9866    jnbe short 06beah                         ; 77 2e
    99099867    mov ax, strict word 00031h                ; b8 31 00
    9910     call 016ach                               ; e8 71 aa
     9868    call 016ach                               ; e8 ea aa
    99119869    mov bl, al                                ; 88 c3
    99129870    xor bh, bh                                ; 30 ff
     
    99159873    sal bx, 1                                 ; d1 e3
    99169874    rcl dx, 1                                 ; d1 d2
    9917     loop 06c44h                               ; e2 fa
     9875    loop 06bcbh                               ; e2 fa
    99189876    mov ax, strict word 00030h                ; b8 30 00
    9919     call 016ach                               ; e8 5c aa
     9877    call 016ach                               ; e8 d5 aa
    99209878    xor ah, ah                                ; 30 e4
    99219879    or bx, ax                                 ; 09 c3
     
    99239881    sal bx, 1                                 ; d1 e3
    99249882    rcl dx, 1                                 ; d1 d2
    9925     loop 06c57h                               ; e2 fa
     9883    loop 06bdeh                               ; e2 fa
    99269884    add bx, strict byte 00000h                ; 83 c3 00
    99279885    adc dx, strict byte 00010h                ; 83 d2 10
    99289886    mov ax, strict word 00062h                ; b8 62 00
    9929     call 016ach                               ; e8 43 aa
     9887    call 016ach                               ; e8 bc aa
    99309888    xor ah, ah                                ; 30 e4
    99319889    mov word [bp-00ah], ax                    ; 89 46 f6
     
    99359893    sal word [bp-00ah], 1                     ; d1 66 f6
    99369894    rcl word [bp-008h], 1                     ; d1 56 f8
    9937     loop 06c76h                               ; e2 f8
     9895    loop 06bfdh                               ; e2 f8
    99389896    mov ax, strict word 00061h                ; b8 61 00
    9939     call 016ach                               ; e8 28 aa
     9897    call 016ach                               ; e8 a1 aa
    99409898    xor ah, ah                                ; 30 e4
    99419899    or word [bp-00ah], ax                     ; 09 46 f6
     
    99449902    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    99459903    mov ax, strict word 00063h                ; b8 63 00
    9946     call 016ach                               ; e8 12 aa
     9904    call 016ach                               ; e8 8b aa
    99479905    mov byte [bp-006h], al                    ; 88 46 fa
    99489906    mov byte [bp-004h], al                    ; 88 46 fc
    99499907    mov ax, word [bp+014h]                    ; 8b 46 14
    99509908    cmp ax, strict word 00009h                ; 3d 09 00
    9951     jnbe short 06d1fh                         ; 77 77
     9909    jnbe short 06ca6h                         ; 77 77
    99529910    mov si, ax                                ; 89 c6
    99539911    add si, ax                                ; 01 c6
     
    99569914    mov cx, dx                                ; 89 d1
    99579915    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9958     jmp word [cs:si+06b0bh]                   ; 2e ff a4 0b 6b
     9916    jmp word [cs:si+06a92h]                   ; 2e ff a4 92 6a
    99599917    push strict byte 00001h                   ; 6a 01
    99609918    push strict byte 00000h                   ; 6a 00
     
    99669924    xor bx, bx                                ; 31 db
    99679925    xor cx, cx                                ; 31 c9
    9968     call 065bch                               ; e8 e9 f8
     9926    call 06543h                               ; e8 e9 f8
    99699927    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    99709928    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    9971     jmp near 06e72h                           ; e9 92 01
     9929    jmp near 06df9h                           ; e9 92 01
    99729930    push strict byte 00002h                   ; 6a 02
    99739931    push strict byte 00000h                   ; 6a 00
     
    99799937    mov bx, 0fc00h                            ; bb 00 fc
    99809938    mov cx, strict word 00009h                ; b9 09 00
    9981     call 065bch                               ; e8 c3 f8
     9939    call 06543h                               ; e8 c3 f8
    99829940    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    9983     jmp short 06cd8h                          ; eb d8
     9941    jmp short 06c5fh                          ; eb d8
    99849942    push strict byte 00002h                   ; 6a 02
    99859943    push strict byte 00000h                   ; 6a 00
     
    99919949    xor bx, bx                                ; 31 db
    99929950    mov cx, strict word 0000fh                ; b9 0f 00
    9993     call 065bch                               ; e8 a4 f8
     9951    call 06543h                               ; e8 a4 f8
    99949952    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    9995     jmp short 06cd8h                          ; eb b9
     9953    jmp short 06c5fh                          ; eb b9
    99969954    mov bx, 00da0h                            ; bb a0 0d
    99979955    mov cx, ds                                ; 8c d9
    99989956    mov ax, strict word 00004h                ; b8 04 00
    9999     call 01923h                               ; e8 f9 ab
     9957    call 01923h                               ; e8 72 ac
    100009958    push word [bp+014h]                       ; ff 76 14
    100019959    push word [bp+020h]                       ; ff 76 20
    100029960    push 008b4h                               ; 68 b4 08
    100039961    push strict byte 00004h                   ; 6a 04
    10004     call 01966h                               ; e8 2e ac
     9962    call 01966h                               ; e8 a7 ac
    100059963    add sp, strict byte 00008h                ; 83 c4 08
    100069964    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    100229980    xor bx, bx                                ; 31 db
    100239981    mov cx, strict word 00010h                ; b9 10 00
    10024     call 065bch                               ; e8 57 f8
     9982    call 06543h                               ; e8 57 f8
    100259983    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    10026     jmp near 06cd8h                           ; e9 6b ff
     9984    jmp near 06c5fh                           ; e9 6b ff
    100279985    push strict byte 00003h                   ; 6a 03
    100289986    push strict byte 00000h                   ; 6a 00
     
    100349992    mov bx, ax                                ; 89 c3
    100359993    mov ax, si                                ; 89 f0
    10036     call 065bch                               ; e8 3a f8
     9994    call 06543h                               ; e8 3a f8
    100379995    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    10038     jmp near 06cd8h                           ; e9 4e ff
     9996    jmp near 06c5fh                           ; e9 4e ff
    100399997    push strict byte 00002h                   ; 6a 02
    100409998    push strict byte 00000h                   ; 6a 00
     
    1004610004    xor bx, bx                                ; 31 db
    1004710005    mov cx, 0fec0h                            ; b9 c0 fe
    10048     call 065bch                               ; e8 18 f8
     10006    call 06543h                               ; e8 18 f8
    1004910007    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10050     jmp near 06cd8h                           ; e9 2c ff
     10008    jmp near 06c5fh                           ; e9 2c ff
    1005110009    push strict byte 00002h                   ; 6a 02
    1005210010    push strict byte 00000h                   ; 6a 00
     
    1005810016    xor bx, bx                                ; 31 db
    1005910017    mov cx, 0fee0h                            ; b9 e0 fe
    10060     call 065bch                               ; e8 f6 f7
     10018    call 06543h                               ; e8 f6 f7
    1006110019    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10062     jmp near 06cd8h                           ; e9 0a ff
     10020    jmp near 06c5fh                           ; e9 0a ff
    1006310021    push strict byte 00002h                   ; 6a 02
    1006410022    push strict byte 00000h                   ; 6a 00
     
    1007010028    xor bx, bx                                ; 31 db
    1007110029    mov cx, strict word 0fffch                ; b9 fc ff
    10072     call 065bch                               ; e8 d6 f7
     10030    call 06543h                               ; e8 d6 f7
    1007310031    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10074     jne short 06df3h                          ; 75 07
     10032    jne short 06d7ah                          ; 75 07
    1007510033    mov ax, word [bp-008h]                    ; 8b 46 f8
    1007610034    test ax, ax                               ; 85 c0
    10077     je short 06e03h                           ; 74 10
     10035    je short 06d8ah                           ; 74 10
    1007810036    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10079     jmp near 06cd8h                           ; e9 dd fe
     10037    jmp near 06c5fh                           ; e9 dd fe
    1008010038    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10081     jmp near 06cd8h                           ; e9 d5 fe
     10039    jmp near 06c5fh                           ; e9 d5 fe
    1008210040    mov word [bp+014h], ax                    ; 89 46 14
    1008310041    mov word [bp+016h], ax                    ; 89 46 16
    10084     jmp short 06e72h                          ; eb 67
     10042    jmp short 06df9h                          ; eb 67
    1008510043    push strict byte 00002h                   ; 6a 02
    1008610044    push strict byte 00000h                   ; 6a 00
     
    1009210050    xor bx, bx                                ; 31 db
    1009310051    xor cx, cx                                ; 31 c9
    10094     call 065bch                               ; e8 9a f7
     10052    call 06543h                               ; e8 9a f7
    1009510053    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10096     jne short 06e2fh                          ; 75 07
     10054    jne short 06db6h                          ; 75 07
    1009710055    mov ax, word [bp-008h]                    ; 8b 46 f8
    1009810056    test ax, ax                               ; 85 c0
    10099     je short 06e37h                           ; 74 08
     10057    je short 06dbeh                           ; 74 08
    1010010058    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10101     jmp near 06cd8h                           ; e9 a1 fe
     10059    jmp near 06c5fh                           ; e9 a1 fe
    1010210060    mov word [bp+014h], ax                    ; 89 46 14
    1010310061    mov word [bp+016h], ax                    ; 89 46 16
    10104     jmp short 06e72h                          ; eb 33
     10062    jmp short 06df9h                          ; eb 33
    1010510063    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10106     jne short 06e4bh                          ; 75 06
     10064    jne short 06dd2h                          ; 75 06
    1010710065    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10108     je short 06e72h                           ; 74 27
     10066    je short 06df9h                           ; 74 27
    1010910067    push strict byte 00001h                   ; 6a 01
    1011010068    mov al, byte [bp-004h]                    ; 8a 46 fc
     
    1012010078    xor bx, bx                                ; 31 db
    1012110079    xor cx, cx                                ; 31 c9
    10122     call 065bch                               ; e8 52 f7
     10080    call 06543h                               ; e8 52 f7
    1012310081    xor ax, ax                                ; 31 c0
    1012410082    mov word [bp+014h], ax                    ; 89 46 14
     
    1012910087    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1013010088    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10131     jmp near 06d49h                           ; e9 bc fe
     10089    jmp near 06cd0h                           ; e9 bc fe
    1013210090    mov word [bp+028h], bx                    ; 89 5e 28
    1013310091    mov ax, strict word 00031h                ; b8 31 00
    10134     call 016ach                               ; e8 16 a8
     10092    call 016ach                               ; e8 8f a8
    1013510093    xor ah, ah                                ; 30 e4
    1013610094    mov dx, ax                                ; 89 c2
    1013710095    sal dx, 008h                              ; c1 e2 08
    1013810096    mov ax, strict word 00030h                ; b8 30 00
    10139     call 016ach                               ; e8 09 a8
     10097    call 016ach                               ; e8 82 a8
    1014010098    xor ah, ah                                ; 30 e4
    1014110099    or dx, ax                                 ; 09 c2
    1014210100    mov word [bp+01ch], dx                    ; 89 56 1c
    1014310101    cmp dx, 03c00h                            ; 81 fa 00 3c
    10144     jbe short 06eb5h                          ; 76 05
     10102    jbe short 06e3ch                          ; 76 05
    1014510103    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1014610104    mov ax, strict word 00035h                ; b8 35 00
    10147     call 016ach                               ; e8 f1 a7
     10105    call 016ach                               ; e8 6a a8
    1014810106    xor ah, ah                                ; 30 e4
    1014910107    mov dx, ax                                ; 89 c2
    1015010108    sal dx, 008h                              ; c1 e2 08
    1015110109    mov ax, strict word 00034h                ; b8 34 00
    10152     call 016ach                               ; e8 e4 a7
     10110    call 016ach                               ; e8 5d a8
    1015310111    xor ah, ah                                ; 30 e4
    1015410112    or dx, ax                                 ; 09 c2
     
    1015710115    mov word [bp+020h], ax                    ; 89 46 20
    1015810116    mov word [bp+014h], dx                    ; 89 56 14
    10159     jmp near 06d49h                           ; e9 6e fe
    10160 _inv_op_handler:                             ; 0xf6edb LB 0x19b
     10117    jmp near 06cd0h                           ; e9 6e fe
     10118_inv_op_handler:                             ; 0xf6e62 LB 0x19b
    1016110119    push bp                                   ; 55
    1016210120    mov bp, sp                                ; 89 e5
     
    1016710125    les bx, [bp+018h]                         ; c4 5e 18
    1016810126    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10169     jne short 06ef1h                          ; 75 06
     10127    jne short 06e78h                          ; 75 06
    1017010128    inc word [bp+018h]                        ; ff 46 18
    10171     jmp near 0706fh                           ; e9 7e 01
     10129    jmp near 06ff6h                           ; e9 7e 01
    1017210130    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10173     je short 06efbh                           ; 74 03
    10174     jmp near 0706bh                           ; e9 70 01
     10131    je short 06e82h                           ; 74 03
     10132    jmp near 06ff2h                           ; e9 70 01
    1017510133    mov si, 00800h                            ; be 00 08
    1017610134    xor ax, ax                                ; 31 c0
     
    1020110159    sal ax, 1                                 ; d1 e0
    1020210160    rcl dx, 1                                 ; d1 d2
    10203     loop 06f4ch                               ; e2 fa
     10161    loop 06ed3h                               ; e2 fa
    1020410162    cmp bx, dx                                ; 39 d3
    10205     jne short 06f5ah                          ; 75 04
     10163    jne short 06ee1h                          ; 75 04
    1020610164    cmp di, ax                                ; 39 c7
    10207     je short 06f5fh                           ; 74 05
     10165    je short 06ee6h                           ; 74 05
    1020810166    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1020910167    mov es, [bp-006h]                         ; 8e 46 fa
     
    1021610174    sal ax, 1                                 ; d1 e0
    1021710175    rcl dx, 1                                 ; d1 d2
    10218     loop 06f75h                               ; e2 fa
     10176    loop 06efch                               ; e2 fa
    1021910177    cmp bx, dx                                ; 39 d3
    10220     jne short 06f83h                          ; 75 04
     10178    jne short 06f0ah                          ; 75 04
    1022110179    cmp di, ax                                ; 39 c7
    10222     je short 06f87h                           ; 74 04
     10180    je short 06f0eh                           ; 74 04
    1022310181    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1022410182    push strict byte 00000h                   ; 6a 00
     
    1027410232    mov ax, strict word 00008h                ; b8 08 00
    1027510233    test cx, strict word 00001h               ; f7 c1 01 00
    10276     je near 07028h                            ; 0f 84 02 00
     10234    je near 06fafh                            ; 0f 84 02 00
    1027710235    mov es, ax                                ; 8e c0
    1027810236    test cx, strict word 00002h               ; f7 c1 02 00
    10279     je near 07050h                            ; 0f 84 20 00
     10237    je near 06fd7h                            ; 0f 84 20 00
    1028010238    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1028110239    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1029410252    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1029510253    iret                                      ; cf
    10296     jmp short 0706fh                          ; eb 04
     10254    jmp short 06ff6h                          ; eb 04
    1029710255    sti                                       ; fb
    1029810256    hlt                                       ; f4
    10299     jmp short 0706ch                          ; eb fd
     10257    jmp short 06ff3h                          ; eb fd
    1030010258    lea sp, [bp-004h]                         ; 8d 66 fc
    1030110259    pop di                                    ; 5f
     
    1030310261    pop bp                                    ; 5d
    1030410262    retn                                      ; c3
    10305 init_rtc_:                                   ; 0xf7076 LB 0x28
     10263init_rtc_:                                   ; 0xf6ffd LB 0x28
    1030610264    push bp                                   ; 55
    1030710265    mov bp, sp                                ; 89 e5
     
    1030910267    mov dx, strict word 00026h                ; ba 26 00
    1031010268    mov ax, strict word 0000ah                ; b8 0a 00
    10311     call 016c7h                               ; e8 44 a6
     10269    call 016c7h                               ; e8 bd a6
    1031210270    mov dx, strict word 00002h                ; ba 02 00
    1031310271    mov ax, strict word 0000bh                ; b8 0b 00
    10314     call 016c7h                               ; e8 3b a6
     10272    call 016c7h                               ; e8 b4 a6
    1031510273    mov ax, strict word 0000ch                ; b8 0c 00
    10316     call 016ach                               ; e8 1a a6
     10274    call 016ach                               ; e8 93 a6
    1031710275    mov ax, strict word 0000dh                ; b8 0d 00
    10318     call 016ach                               ; e8 14 a6
     10276    call 016ach                               ; e8 8d a6
    1031910277    lea sp, [bp-002h]                         ; 8d 66 fe
    1032010278    pop dx                                    ; 5a
    1032110279    pop bp                                    ; 5d
    1032210280    retn                                      ; c3
    10323 rtc_updating_:                               ; 0xf709e LB 0x21
     10281rtc_updating_:                               ; 0xf7025 LB 0x21
    1032410282    push bp                                   ; 55
    1032510283    mov bp, sp                                ; 89 e5
     
    1032710285    mov dx, 061a8h                            ; ba a8 61
    1032810286    dec dx                                    ; 4a
    10329     je short 070b6h                           ; 74 0e
     10287    je short 0703dh                           ; 74 0e
    1033010288    mov ax, strict word 0000ah                ; b8 0a 00
    10331     call 016ach                               ; e8 fe a5
     10289    call 016ach                               ; e8 77 a6
    1033210290    test AL, strict byte 080h                 ; a8 80
    10333     jne short 070a5h                          ; 75 f3
     10291    jne short 0702ch                          ; 75 f3
    1033410292    xor ax, ax                                ; 31 c0
    10335     jmp short 070b9h                          ; eb 03
     10293    jmp short 07040h                          ; eb 03
    1033610294    mov ax, strict word 00001h                ; b8 01 00
    1033710295    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1033910297    pop bp                                    ; 5d
    1034010298    retn                                      ; c3
    10341 _int70_function:                             ; 0xf70bf LB 0xbf
     10299_int70_function:                             ; 0xf7046 LB 0xbf
    1034210300    push bp                                   ; 55
    1034310301    mov bp, sp                                ; 89 e5
     
    1034510303    push ax                                   ; 50
    1034610304    mov ax, strict word 0000bh                ; b8 0b 00
    10347     call 016ach                               ; e8 e2 a5
     10305    call 016ach                               ; e8 5b a6
    1034810306    mov bl, al                                ; 88 c3
    1034910307    mov byte [bp-004h], al                    ; 88 46 fc
    1035010308    mov ax, strict word 0000ch                ; b8 0c 00
    10351     call 016ach                               ; e8 d7 a5
     10309    call 016ach                               ; e8 50 a6
    1035210310    mov dl, al                                ; 88 c2
    1035310311    test bl, 060h                             ; f6 c3 60
    10354     jne short 070dfh                          ; 75 03
    10355     jmp near 07165h                           ; e9 86 00
     10312    jne short 07066h                          ; 75 03
     10313    jmp near 070ech                           ; e9 86 00
    1035610314    test AL, strict byte 020h                 ; a8 20
    10357     je short 070e7h                           ; 74 04
     10315    je short 0706eh                           ; 74 04
    1035810316    sti                                       ; fb
    1035910317    int 04ah                                  ; cd 4a
    1036010318    cli                                       ; fa
    1036110319    test dl, 040h                             ; f6 c2 40
    10362     je short 0714fh                           ; 74 63
     10320    je short 070d6h                           ; 74 63
    1036310321    mov dx, 000a0h                            ; ba a0 00
    1036410322    mov ax, strict word 00040h                ; b8 40 00
    10365     call 01650h                               ; e8 5b a5
     10323    call 01650h                               ; e8 d4 a5
    1036610324    test al, al                               ; 84 c0
    10367     je short 07165h                           ; 74 6c
     10325    je short 070ech                           ; 74 6c
    1036810326    mov dx, 0009ch                            ; ba 9c 00
    1036910327    mov ax, strict word 00040h                ; b8 40 00
    10370     call 01688h                               ; e8 86 a5
     10328    call 01688h                               ; e8 ff a5
    1037110329    test dx, dx                               ; 85 d2
    10372     jne short 07151h                          ; 75 4b
     10330    jne short 070d8h                          ; 75 4b
    1037310331    cmp ax, 003d1h                            ; 3d d1 03
    10374     jnc short 07151h                          ; 73 46
     10332    jnc short 070d8h                          ; 73 46
    1037510333    mov dx, 00098h                            ; ba 98 00
    1037610334    mov ax, strict word 00040h                ; b8 40 00
    10377     call 0166ch                               ; e8 58 a5
     10335    call 0166ch                               ; e8 d1 a5
    1037810336    mov si, ax                                ; 89 c6
    1037910337    mov dx, 0009ah                            ; ba 9a 00
    1038010338    mov ax, strict word 00040h                ; b8 40 00
    10381     call 0166ch                               ; e8 4d a5
     10339    call 0166ch                               ; e8 c6 a5
    1038210340    mov cx, ax                                ; 89 c1
    1038310341    xor bx, bx                                ; 31 db
    1038410342    mov dx, 000a0h                            ; ba a0 00
    1038510343    mov ax, strict word 00040h                ; b8 40 00
    10386     call 0165eh                               ; e8 32 a5
     10344    call 0165eh                               ; e8 ab a5
    1038710345    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1038810346    and dl, 037h                              ; 80 e2 37
    1038910347    xor dh, dh                                ; 30 f6
    1039010348    mov ax, strict word 0000bh                ; b8 0b 00
    10391     call 016c7h                               ; e8 8d a5
     10349    call 016c7h                               ; e8 06 a6
    1039210350    mov dx, cx                                ; 89 ca
    1039310351    mov ax, si                                ; 89 f0
    10394     call 01650h                               ; e8 0f a5
     10352    call 01650h                               ; e8 88 a5
    1039510353    mov bl, al                                ; 88 c3
    1039610354    or bl, 080h                               ; 80 cb 80
     
    1039810356    mov dx, cx                                ; 89 ca
    1039910357    mov ax, si                                ; 89 f0
    10400     call 0165eh                               ; e8 0f a5
    10401     jmp short 07165h                          ; eb 14
     10358    call 0165eh                               ; e8 88 a5
     10359    jmp short 070ech                          ; eb 14
    1040210360    mov bx, ax                                ; 89 c3
    1040310361    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1040610364    mov dx, 0009ch                            ; ba 9c 00
    1040710365    mov ax, strict word 00040h                ; b8 40 00
    10408     call 0169ah                               ; e8 35 a5
    10409     call 0e030h                               ; e8 c8 6e
     10366    call 0169ah                               ; e8 ae a5
     10367    call 0e030h                               ; e8 41 6f
    1041010368    lea sp, [bp-002h]                         ; 8d 66 fe
    1041110369    pop si                                    ; 5e
    1041210370    pop bp                                    ; 5d
    1041310371    retn                                      ; c3
    10414     xchg sp, ax                               ; 94
    10415     jno short 0712ch                          ; 71 bb
    10416     jno short 07153h                          ; 71 e0
    10417     jno short 07191h                          ; 71 1c
    10418     jc short 071e5h                           ; 72 6e
    10419     jc short 0711eh                           ; 72 a5
    10420     jc short 07167h                           ; 72 ec
    10421     jc short 071c4h                           ; 72 47
    10422     db  073h
    10423 _int1a_function:                             ; 0xf717e LB 0x1d9
     10372    sbb si, word [bx+di+042h]                 ; 1b 71 42
     10373    jno short 07161h                          ; 71 67
     10374    jno short 0709fh                          ; 71 a3
     10375    jno short 070f3h                          ; 71 f5
     10376    jno short 0712ch                          ; 71 2c
     10377    jc short 07175h                           ; 72 73
     10378    jc short 070d2h                           ; 72 ce
     10379    db  072h
     10380_int1a_function:                             ; 0xf7105 LB 0x1d9
    1042410381    push bp                                   ; 55
    1042510382    mov bp, sp                                ; 89 e5
     
    1042710384    mov al, byte [bp+013h]                    ; 8a 46 13
    1042810385    cmp AL, strict byte 007h                  ; 3c 07
    10429     jnbe short 071e7h                         ; 77 5e
     10386    jnbe short 0716eh                         ; 77 5e
    1043010387    mov bl, al                                ; 88 c3
    1043110388    xor bh, bh                                ; 30 ff
    1043210389    add bx, bx                                ; 01 db
    10433     jmp word [cs:bx+0716eh]                   ; 2e ff a7 6e 71
     10390    jmp word [cs:bx+070f5h]                   ; 2e ff a7 f5 70
    1043410391    cli                                       ; fa
    1043510392    mov bx, 0046eh                            ; bb 6e 04
     
    1044610403    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1044710404    sti                                       ; fb
    10448     jmp short 071e7h                          ; eb 2c
     10405    jmp short 0716eh                          ; eb 2c
    1044910406    cli                                       ; fa
    1045010407    mov bx, 0046eh                            ; bb 6e 04
     
    1046010417    sti                                       ; fb
    1046110418    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10462     jmp short 071e7h                          ; eb 07
    10463     call 0709eh                               ; e8 bb fe
     10419    jmp short 0716eh                          ; eb 07
     10420    call 07025h                               ; e8 bb fe
    1046410421    test ax, ax                               ; 85 c0
    10465     je short 071eah                           ; 74 03
    10466     jmp near 07218h                           ; e9 2e 00
     10422    je short 07171h                           ; 74 03
     10423    jmp near 0719fh                           ; e9 2e 00
    1046710424    xor ax, ax                                ; 31 c0
    10468     call 016ach                               ; e8 bd a4
     10425    call 016ach                               ; e8 36 a5
    1046910426    mov byte [bp+00fh], al                    ; 88 46 0f
    1047010427    mov ax, strict word 00002h                ; b8 02 00
    10471     call 016ach                               ; e8 b4 a4
     10428    call 016ach                               ; e8 2d a5
    1047210429    mov byte [bp+010h], al                    ; 88 46 10
    1047310430    mov ax, strict word 00004h                ; b8 04 00
    10474     call 016ach                               ; e8 ab a4
     10431    call 016ach                               ; e8 24 a5
    1047510432    mov dl, al                                ; 88 c2
    1047610433    mov byte [bp+011h], al                    ; 88 46 11
    1047710434    mov ax, strict word 0000bh                ; b8 0b 00
    10478     call 016ach                               ; e8 a0 a4
     10435    call 016ach                               ; e8 19 a5
    1047910436    and AL, strict byte 001h                  ; 24 01
    1048010437    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1048410441    pop bp                                    ; 5d
    1048510442    retn                                      ; c3
    10486     call 0709eh                               ; e8 7f fe
     10443    call 07025h                               ; e8 7f fe
    1048710444    test ax, ax                               ; 85 c0
    10488     je short 07226h                           ; 74 03
    10489     call 07076h                               ; e8 50 fe
     10445    je short 071adh                           ; 74 03
     10446    call 06ffdh                               ; e8 50 fe
    1049010447    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1049110448    xor dh, dh                                ; 30 f6
    1049210449    xor ax, ax                                ; 31 c0
    10493     call 016c7h                               ; e8 97 a4
     10450    call 016c7h                               ; e8 10 a5
    1049410451    mov dl, byte [bp+010h]                    ; 8a 56 10
    1049510452    xor dh, dh                                ; 30 f6
    1049610453    mov ax, strict word 00002h                ; b8 02 00
    10497     call 016c7h                               ; e8 8c a4
     10454    call 016c7h                               ; e8 05 a5
    1049810455    mov dl, byte [bp+011h]                    ; 8a 56 11
    1049910456    xor dh, dh                                ; 30 f6
    1050010457    mov ax, strict word 00004h                ; b8 04 00
    10501     call 016c7h                               ; e8 81 a4
     10458    call 016c7h                               ; e8 fa a4
    1050210459    mov ax, strict word 0000bh                ; b8 0b 00
    10503     call 016ach                               ; e8 60 a4
     10460    call 016ach                               ; e8 d9 a4
    1050410461    mov bl, al                                ; 88 c3
    1050510462    and bl, 060h                              ; 80 e3 60
     
    1051110468    xor dh, dh                                ; 30 f6
    1051210469    mov ax, strict word 0000bh                ; b8 0b 00
    10513     call 016c7h                               ; e8 62 a4
     10470    call 016c7h                               ; e8 db a4
    1051410471    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1051510472    mov byte [bp+012h], bl                    ; 88 5e 12
    10516     jmp short 07218h                          ; eb aa
     10473    jmp short 0719fh                          ; eb aa
    1051710474    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10518     call 0709eh                               ; e8 29 fe
     10475    call 07025h                               ; e8 29 fe
    1051910476    test ax, ax                               ; 85 c0
    10520     je short 0727bh                           ; 74 02
    10521     jmp short 07218h                          ; eb 9d
     10477    je short 07202h                           ; 74 02
     10478    jmp short 0719fh                          ; eb 9d
    1052210479    mov ax, strict word 00009h                ; b8 09 00
    10523     call 016ach                               ; e8 2b a4
     10480    call 016ach                               ; e8 a4 a4
    1052410481    mov byte [bp+010h], al                    ; 88 46 10
    1052510482    mov ax, strict word 00008h                ; b8 08 00
    10526     call 016ach                               ; e8 22 a4
     10483    call 016ach                               ; e8 9b a4
    1052710484    mov byte [bp+00fh], al                    ; 88 46 0f
    1052810485    mov ax, strict word 00007h                ; b8 07 00
    10529     call 016ach                               ; e8 19 a4
     10486    call 016ach                               ; e8 92 a4
    1053010487    mov byte [bp+00eh], al                    ; 88 46 0e
    1053110488    mov ax, strict word 00032h                ; b8 32 00
    10532     call 016ach                               ; e8 10 a4
     10489    call 016ach                               ; e8 89 a4
    1053310490    mov byte [bp+011h], al                    ; 88 46 11
    1053410491    mov byte [bp+012h], al                    ; 88 46 12
    10535     jmp near 07218h                           ; e9 73 ff
    10536     call 0709eh                               ; e8 f6 fd
     10492    jmp near 0719fh                           ; e9 73 ff
     10493    call 07025h                               ; e8 f6 fd
    1053710494    test ax, ax                               ; 85 c0
    10538     je short 072b2h                           ; 74 06
    10539     call 07076h                               ; e8 c7 fd
    10540     jmp near 07218h                           ; e9 66 ff
     10495    je short 07239h                           ; 74 06
     10496    call 06ffdh                               ; e8 c7 fd
     10497    jmp near 0719fh                           ; e9 66 ff
    1054110498    mov dl, byte [bp+010h]                    ; 8a 56 10
    1054210499    xor dh, dh                                ; 30 f6
    1054310500    mov ax, strict word 00009h                ; b8 09 00
    10544     call 016c7h                               ; e8 0a a4
     10501    call 016c7h                               ; e8 83 a4
    1054510502    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1054610503    xor dh, dh                                ; 30 f6
    1054710504    mov ax, strict word 00008h                ; b8 08 00
    10548     call 016c7h                               ; e8 ff a3
     10505    call 016c7h                               ; e8 78 a4
    1054910506    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1055010507    xor dh, dh                                ; 30 f6
    1055110508    mov ax, strict word 00007h                ; b8 07 00
    10552     call 016c7h                               ; e8 f4 a3
     10509    call 016c7h                               ; e8 6d a4
    1055310510    mov dl, byte [bp+011h]                    ; 8a 56 11
    1055410511    xor dh, dh                                ; 30 f6
    1055510512    mov ax, strict word 00032h                ; b8 32 00
    10556     call 016c7h                               ; e8 e9 a3
     10513    call 016c7h                               ; e8 62 a4
    1055710514    mov ax, strict word 0000bh                ; b8 0b 00
    10558     call 016ach                               ; e8 c8 a3
     10515    call 016ach                               ; e8 41 a4
    1055910516    mov bl, al                                ; 88 c3
    1056010517    and bl, 07fh                              ; 80 e3 7f
    10561     jmp near 0725bh                           ; e9 6f ff
     10518    jmp near 071e2h                           ; e9 6f ff
    1056210519    mov ax, strict word 0000bh                ; b8 0b 00
    10563     call 016ach                               ; e8 ba a3
     10520    call 016ach                               ; e8 33 a4
    1056410521    mov bl, al                                ; 88 c3
    1056510522    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1056610523    test AL, strict byte 020h                 ; a8 20
    10567     je short 07300h                           ; 74 03
    10568     jmp near 07218h                           ; e9 18 ff
    10569     call 0709eh                               ; e8 9b fd
     10524    je short 07287h                           ; 74 03
     10525    jmp near 0719fh                           ; e9 18 ff
     10526    call 07025h                               ; e8 9b fd
    1057010527    test ax, ax                               ; 85 c0
    10571     je short 0730ah                           ; 74 03
    10572     call 07076h                               ; e8 6c fd
     10528    je short 07291h                           ; 74 03
     10529    call 06ffdh                               ; e8 6c fd
    1057310530    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1057410531    xor dh, dh                                ; 30 f6
    1057510532    mov ax, strict word 00001h                ; b8 01 00
    10576     call 016c7h                               ; e8 b2 a3
     10533    call 016c7h                               ; e8 2b a4
    1057710534    mov dl, byte [bp+010h]                    ; 8a 56 10
    1057810535    xor dh, dh                                ; 30 f6
    1057910536    mov ax, strict word 00003h                ; b8 03 00
    10580     call 016c7h                               ; e8 a7 a3
     10537    call 016c7h                               ; e8 20 a4
    1058110538    mov dl, byte [bp+011h]                    ; 8a 56 11
    1058210539    xor dh, dh                                ; 30 f6
    1058310540    mov ax, strict word 00005h                ; b8 05 00
    10584     call 016c7h                               ; e8 9c a3
     10541    call 016c7h                               ; e8 15 a4
    1058510542    mov dx, 000a1h                            ; ba a1 00
    1058610543    in AL, DX                                 ; ec
     
    1059410551    xor dh, dh                                ; 30 f6
    1059510552    mov ax, strict word 0000bh                ; b8 0b 00
    10596     call 016c7h                               ; e8 83 a3
    10597     jmp near 07218h                           ; e9 d1 fe
     10553    call 016c7h                               ; e8 fc a3
     10554    jmp near 0719fh                           ; e9 d1 fe
    1059810555    mov ax, strict word 0000bh                ; b8 0b 00
    10599     call 016ach                               ; e8 5f a3
     10556    call 016ach                               ; e8 d8 a3
    1060010557    mov bl, al                                ; 88 c3
    1060110558    mov dl, al                                ; 88 c2
    1060210559    and dl, 057h                              ; 80 e2 57
    10603     jmp near 0725dh                           ; e9 06 ff
    10604 send_to_mouse_ctrl_:                         ; 0xf7357 LB 0x34
     10560    jmp near 071e4h                           ; e9 06 ff
     10561send_to_mouse_ctrl_:                         ; 0xf72de LB 0x34
    1060510562    push bp                                   ; 55
    1060610563    mov bp, sp                                ; 89 e5
     
    1061310570    ; sub ah, ah                                ; 2a e4
    1061410571    test AL, strict byte 002h                 ; a8 02
    10615     je short 07376h                           ; 74 0e
     10572    je short 072fdh                           ; 74 0e
    1061610573    push 008eeh                               ; 68 ee 08
    1061710574    push 01168h                               ; 68 68 11
    1061810575    push strict byte 00007h                   ; 6a 07
    10619     call 01966h                               ; e8 f3 a5
     10576    call 01966h                               ; e8 6c a6
    1062010577    add sp, strict byte 00006h                ; 83 c4 06
    1062110578    mov AL, strict byte 0d4h                  ; b0 d4
     
    1063110588    pop bp                                    ; 5d
    1063210589    retn                                      ; c3
    10633 get_mouse_data_:                             ; 0xf738b LB 0x5d
     10590get_mouse_data_:                             ; 0xf7312 LB 0x5d
    1063410591    push bp                                   ; 55
    1063510592    mov bp, sp                                ; 89 e5
     
    1064610603    and ax, strict word 00021h                ; 25 21 00
    1064710604    cmp ax, strict word 00021h                ; 3d 21 00
    10648     je short 073ceh                           ; 74 28
     10605    je short 07355h                           ; 74 28
    1064910606    test cx, cx                               ; 85 c9
    10650     je short 073ceh                           ; 74 24
     10607    je short 07355h                           ; 74 24
    1065110608    mov dx, strict word 00061h                ; ba 61 00
    1065210609    in AL, DX                                 ; ec
     
    1066510622    xor ah, ah                                ; 30 e4
    1066610623    cmp dx, ax                                ; 39 c2
    10667     je short 073b5h                           ; 74 ea
     10624    je short 0733ch                           ; 74 ea
    1066810625    dec cx                                    ; 49
    10669     jmp short 07398h                          ; eb ca
     10626    jmp short 0731fh                          ; eb ca
    1067010627    test cx, cx                               ; 85 c9
    10671     jne short 073d6h                          ; 75 04
     10628    jne short 0735dh                          ; 75 04
    1067210629    mov AL, strict byte 001h                  ; b0 01
    10673     jmp short 073e1h                          ; eb 0b
     10630    jmp short 07368h                          ; eb 0b
    1067410631    mov dx, strict word 00060h                ; ba 60 00
    1067510632    in AL, DX                                 ; ec
     
    1068310640    pop bp                                    ; 5d
    1068410641    retn                                      ; c3
    10685 set_kbd_command_byte_:                       ; 0xf73e8 LB 0x32
     10642set_kbd_command_byte_:                       ; 0xf736f LB 0x32
    1068610643    push bp                                   ; 55
    1068710644    mov bp, sp                                ; 89 e5
     
    1069410651    ; sub ah, ah                                ; 2a e4
    1069510652    test AL, strict byte 002h                 ; a8 02
    10696     je short 07407h                           ; 74 0e
     10653    je short 0738eh                           ; 74 0e
    1069710654    push 008f8h                               ; 68 f8 08
    1069810655    push 01168h                               ; 68 68 11
    1069910656    push strict byte 00007h                   ; 6a 07
    10700     call 01966h                               ; e8 62 a5
     10657    call 01966h                               ; e8 db a5
    1070110658    add sp, strict byte 00006h                ; 83 c4 06
    1070210659    mov AL, strict byte 060h                  ; b0 60
     
    1071110668    pop bp                                    ; 5d
    1071210669    retn                                      ; c3
    10713 _int74_function:                             ; 0xf741a LB 0xd2
     10670_int74_function:                             ; 0xf73a1 LB 0xd2
    1071410671    push bp                                   ; 55
    1071510672    mov bp, sp                                ; 89 e5
     
    1071710674    mov dx, strict word 0000eh                ; ba 0e 00
    1071810675    mov ax, strict word 00040h                ; b8 40 00
    10719     call 0166ch                               ; e8 43 a2
     10676    call 0166ch                               ; e8 bc a2
    1072010677    mov cx, ax                                ; 89 c1
    1072110678    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1072610683    and AL, strict byte 021h                  ; 24 21
    1072710684    cmp AL, strict byte 021h                  ; 3c 21
    10728     jne short 0745eh                          ; 75 22
     10685    jne short 073e5h                          ; 75 22
    1072910686    mov dx, strict word 00060h                ; ba 60 00
    1073010687    in AL, DX                                 ; ec
     
    1073410691    mov dx, strict word 00026h                ; ba 26 00
    1073510692    mov ax, cx                                ; 89 c8
    10736     call 01650h                               ; e8 04 a2
     10693    call 01650h                               ; e8 7d a2
    1073710694    mov byte [bp-002h], al                    ; 88 46 fe
    1073810695    mov dx, strict word 00027h                ; ba 27 00
    1073910696    mov ax, cx                                ; 89 c8
    10740     call 01650h                               ; e8 f9 a1
     10697    call 01650h                               ; e8 72 a2
    1074110698    mov byte [bp-006h], al                    ; 88 46 fa
    1074210699    test AL, strict byte 080h                 ; a8 80
    10743     jne short 07461h                          ; 75 03
    10744     jmp near 074d8h                           ; e9 77 00
     10700    jne short 073e8h                          ; 75 03
     10701    jmp near 0745fh                           ; e9 77 00
    1074510702    mov al, byte [bp-006h]                    ; 8a 46 fa
    1074610703    and AL, strict byte 007h                  ; 24 07
     
    1075610713    add dx, strict byte 00028h                ; 83 c2 28
    1075710714    mov ax, cx                                ; 89 c8
    10758     call 0165eh                               ; e8 da a1
     10715    call 0165eh                               ; e8 53 a2
    1075910716    mov al, byte [bp-008h]                    ; 8a 46 f8
    1076010717    cmp al, byte [bp-004h]                    ; 3a 46 fc
    10761     jc short 074c8h                           ; 72 3c
     10718    jc short 0744fh                           ; 72 3c
    1076210719    mov dx, strict word 00028h                ; ba 28 00
    1076310720    mov ax, cx                                ; 89 c8
    10764     call 01650h                               ; e8 bc a1
     10721    call 01650h                               ; e8 35 a2
    1076510722    xor ah, ah                                ; 30 e4
    1076610723    mov word [bp+00ch], ax                    ; 89 46 0c
    1076710724    mov dx, strict word 00029h                ; ba 29 00
    1076810725    mov ax, cx                                ; 89 c8
    10769     call 01650h                               ; e8 af a1
     10726    call 01650h                               ; e8 28 a2
    1077010727    xor ah, ah                                ; 30 e4
    1077110728    mov word [bp+00ah], ax                    ; 89 46 0a
    1077210729    mov dx, strict word 0002ah                ; ba 2a 00
    1077310730    mov ax, cx                                ; 89 c8
    10774     call 01650h                               ; e8 a2 a1
     10731    call 01650h                               ; e8 1b a2
    1077510732    xor ah, ah                                ; 30 e4
    1077610733    mov word [bp+008h], ax                    ; 89 46 08
     
    1077910736    mov byte [bp-002h], ah                    ; 88 66 fe
    1078010737    test byte [bp-006h], 080h                 ; f6 46 fa 80
    10781     je short 074cbh                           ; 74 0a
     10738    je short 07452h                           ; 74 0a
    1078210739    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10783     jmp short 074cbh                          ; eb 03
     10740    jmp short 07452h                          ; eb 03
    1078410741    inc byte [bp-002h]                        ; fe 46 fe
    1078510742    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1078710744    mov dx, strict word 00026h                ; ba 26 00
    1078810745    mov ax, cx                                ; 89 c8
    10789     call 0165eh                               ; e8 86 a1
     10746    call 0165eh                               ; e8 ff a1
    1079010747    mov sp, bp                                ; 89 ec
    1079110748    pop bp                                    ; 5d
    1079210749    retn                                      ; c3
    10793     das                                       ; 2f
    10794     jne short 0748ah                          ; 75 ab
    10795     jne short 07509h                          ; 75 28
    10796     jbe short 074a0h                          ; 76 bd
    10797     jbe short 0750eh                          ; 76 29
    10798     jnbe short 0755dh                         ; 77 76
    10799     jne short 0753ah                          ; 75 51
    10800     jnbe short 07501h                         ; 77 16
    10801     db  078h
    10802 _int15_function_mouse:                       ; 0xf74ec LB 0x38d
     10750    mov DH, strict byte 074h                  ; b6 74
     10751    xor dh, byte [di-051h]                    ; 32 75 af
     10752    jne short 074aeh                          ; 75 44
     10753    jbe short 0741ch                          ; 76 b0
     10754    jbe short 0746bh                          ; 76 fd
     10755    je short 07448h                           ; 74 d8
     10756    jbe short 0740fh                          ; 76 9d
     10757    db  077h
     10758_int15_function_mouse:                       ; 0xf7473 LB 0x38d
    1080310759    push bp                                   ; 55
    1080410760    mov bp, sp                                ; 89 e5
     
    1080710763    mov dx, strict word 0000eh                ; ba 0e 00
    1080810764    mov ax, strict word 00040h                ; b8 40 00
    10809     call 0166ch                               ; e8 70 a1
     10765    call 0166ch                               ; e8 e9 a1
    1081010766    mov cx, ax                                ; 89 c1
    1081110767    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10812     jbe short 0750fh                          ; 76 0b
     10768    jbe short 07496h                          ; 76 0b
    1081310769    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1081410770    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10815     jmp near 07873h                           ; e9 64 03
     10771    jmp near 077fah                           ; e9 64 03
    1081610772    mov ax, strict word 00065h                ; b8 65 00
    10817     call 073e8h                               ; e8 d3 fe
     10773    call 0736fh                               ; e8 d3 fe
    1081810774    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1081910775    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1082010776    mov al, byte [bp+012h]                    ; 8a 46 12
    1082110777    cmp AL, strict byte 007h                  ; 3c 07
    10822     jnbe short 07584h                         ; 77 60
     10778    jnbe short 0750bh                         ; 77 60
    1082310779    xor ah, ah                                ; 30 e4
    1082410780    mov si, ax                                ; 89 c6
    1082510781    add si, ax                                ; 01 c6
    10826     jmp word [cs:si+074dch]                   ; 2e ff a4 dc 74
     10782    jmp word [cs:si+07463h]                   ; 2e ff a4 63 74
    1082710783    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10828     jnbe short 07587h                         ; 77 52
     10784    jnbe short 0750eh                         ; 77 52
    1082910785    mov dx, strict word 00027h                ; ba 27 00
    1083010786    mov ax, cx                                ; 89 c8
    10831     call 01650h                               ; e8 13 a1
     10787    call 01650h                               ; e8 8c a1
    1083210788    test AL, strict byte 080h                 ; a8 80
    10833     jne short 0754ch                          ; 75 0b
     10789    jne short 074d3h                          ; 75 0b
    1083410790    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1083510791    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10836     jmp near 0786dh                           ; e9 21 03
     10792    jmp near 077f4h                           ; e9 21 03
    1083710793    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    10838     jne short 07556h                          ; 75 04
     10794    jne short 074ddh                          ; 75 04
    1083910795    mov AL, strict byte 0f5h                  ; b0 f5
    10840     jmp short 07558h                          ; eb 02
     10796    jmp short 074dfh                          ; eb 02
    1084110797    mov AL, strict byte 0f4h                  ; b0 f4
    1084210798    xor ah, ah                                ; 30 e4
    10843     call 07357h                               ; e8 fa fd
     10799    call 072deh                               ; e8 fa fd
    1084410800    test al, al                               ; 84 c0
    10845     jne short 0758ah                          ; 75 29
     10801    jne short 07511h                          ; 75 29
    1084610802    mov dx, ss                                ; 8c d2
    1084710803    lea ax, [bp-008h]                         ; 8d 46 f8
    10848     call 0738bh                               ; e8 22 fe
     10804    call 07312h                               ; e8 22 fe
    1084910805    test al, al                               ; 84 c0
    10850     je short 07573h                           ; 74 06
     10806    je short 074fah                           ; 74 06
    1085110807    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10852     jne short 0758ah                          ; 75 17
    10853     jmp near 0786dh                           ; e9 f7 02
     10808    jne short 07511h                          ; 75 17
     10809    jmp near 077f4h                           ; e9 f7 02
    1085410810    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1085510811    cmp AL, strict byte 001h                  ; 3c 01
    10856     jc short 07581h                           ; 72 04
     10812    jc short 07508h                           ; 72 04
    1085710813    cmp AL, strict byte 008h                  ; 3c 08
    10858     jbe short 0758dh                          ; 76 0c
    10859     jmp near 0771fh                           ; e9 9b 01
    10860     jmp near 0785ah                           ; e9 d3 02
    10861     jmp near 07865h                           ; e9 db 02
    10862     jmp near 077f1h                           ; e9 64 02
     10814    jbe short 07514h                          ; 76 0c
     10815    jmp near 076a6h                           ; e9 9b 01
     10816    jmp near 077e1h                           ; e9 d3 02
     10817    jmp near 077ech                           ; e9 db 02
     10818    jmp near 07778h                           ; e9 64 02
    1086310819    mov dx, strict word 00027h                ; ba 27 00
    1086410820    mov ax, cx                                ; 89 c8
    10865     call 01650h                               ; e8 bb a0
     10821    call 01650h                               ; e8 34 a1
    1086610822    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1086710823    db  0feh, 0cch
     
    1087310829    mov dx, strict word 00027h                ; ba 27 00
    1087410830    mov ax, cx                                ; 89 c8
    10875     call 0165eh                               ; e8 b3 a0
     10831    call 0165eh                               ; e8 2c a1
    1087610832    mov dx, strict word 00026h                ; ba 26 00
    1087710833    mov ax, cx                                ; 89 c8
    10878     call 01650h                               ; e8 9d a0
     10834    call 01650h                               ; e8 16 a1
    1087910835    mov bl, al                                ; 88 c3
    1088010836    and bl, 0f8h                              ; 80 e3 f8
     
    1088210838    mov dx, strict word 00026h                ; ba 26 00
    1088310839    mov ax, cx                                ; 89 c8
    10884     call 0165eh                               ; e8 9c a0
     10840    call 0165eh                               ; e8 15 a1
    1088510841    mov ax, 000ffh                            ; b8 ff 00
    10886     call 07357h                               ; e8 8f fd
     10842    call 072deh                               ; e8 8f fd
    1088710843    test al, al                               ; 84 c0
    10888     jne short 0758ah                          ; 75 be
     10844    jne short 07511h                          ; 75 be
    1088910845    mov dx, ss                                ; 8c d2
    1089010846    lea ax, [bp-004h]                         ; 8d 46 fc
    10891     call 0738bh                               ; e8 b7 fd
     10847    call 07312h                               ; e8 b7 fd
    1089210848    mov cl, al                                ; 88 c1
    1089310849    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10894     jne short 075e6h                          ; 75 0a
     10850    jne short 0756dh                          ; 75 0a
    1089510851    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1089610852    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10897     jmp short 07573h                          ; eb 8d
     10853    jmp short 074fah                          ; eb 8d
    1089810854    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10899     je short 075fdh                           ; 74 11
     10855    je short 07584h                           ; 74 11
    1090010856    mov al, byte [bp-004h]                    ; 8a 46 fc
    1090110857    xor ah, ah                                ; 30 e4
     
    1090310859    push 00903h                               ; 68 03 09
    1090410860    push strict byte 00007h                   ; 6a 07
    10905     call 01966h                               ; e8 6c a3
     10861    call 01966h                               ; e8 e5 a3
    1090610862    add sp, strict byte 00006h                ; 83 c4 06
    1090710863    test cl, cl                               ; 84 c9
    10908     jne short 0758ah                          ; 75 89
     10864    jne short 07511h                          ; 75 89
    1090910865    mov dx, ss                                ; 8c d2
    1091010866    lea ax, [bp-008h]                         ; 8d 46 f8
    10911     call 0738bh                               ; e8 82 fd
     10867    call 07312h                               ; e8 82 fd
    1091210868    test al, al                               ; 84 c0
    10913     jne short 07663h                          ; 75 56
     10869    jne short 075eah                          ; 75 56
    1091410870    mov dx, ss                                ; 8c d2
    1091510871    lea ax, [bp-006h]                         ; 8d 46 fa
    10916     call 0738bh                               ; e8 76 fd
     10872    call 07312h                               ; e8 76 fd
    1091710873    test al, al                               ; 84 c0
    10918     jne short 07663h                          ; 75 4a
     10874    jne short 075eah                          ; 75 4a
    1091910875    mov al, byte [bp-008h]                    ; 8a 46 f8
    1092010876    mov byte [bp+00ch], al                    ; 88 46 0c
    1092110877    mov al, byte [bp-006h]                    ; 8a 46 fa
    1092210878    mov byte [bp+00dh], al                    ; 88 46 0d
    10923     jmp near 0786dh                           ; e9 45 02
     10879    jmp near 077f4h                           ; e9 45 02
    1092410880    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1092510881    cmp AL, strict byte 003h                  ; 3c 03
    10926     jc short 0763fh                           ; 72 10
    10927     jbe short 0765dh                          ; 76 2c
     10882    jc short 075c6h                           ; 72 10
     10883    jbe short 075e4h                          ; 76 2c
    1092810884    cmp AL, strict byte 006h                  ; 3c 06
    10929     je short 07672h                           ; 74 3d
     10885    je short 075f9h                           ; 74 3d
    1093010886    cmp AL, strict byte 005h                  ; 3c 05
    10931     je short 0766ch                           ; 74 33
     10887    je short 075f3h                           ; 74 33
    1093210888    cmp AL, strict byte 004h                  ; 3c 04
    10933     je short 07666h                           ; 74 29
    10934     jmp short 07678h                          ; eb 39
     10889    je short 075edh                           ; 74 29
     10890    jmp short 075ffh                          ; eb 39
    1093510891    cmp AL, strict byte 002h                  ; 3c 02
    10936     je short 07657h                           ; 74 14
     10892    je short 075deh                           ; 74 14
    1093710893    cmp AL, strict byte 001h                  ; 3c 01
    10938     je short 07651h                           ; 74 0a
     10894    je short 075d8h                           ; 74 0a
    1093910895    test al, al                               ; 84 c0
    10940     jne short 07678h                          ; 75 2d
     10896    jne short 075ffh                          ; 75 2d
    1094110897    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10942     jmp short 0767ch                          ; eb 2b
     10898    jmp short 07603h                          ; eb 2b
    1094310899    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10944     jmp short 0767ch                          ; eb 25
     10900    jmp short 07603h                          ; eb 25
    1094510901    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10946     jmp short 0767ch                          ; eb 1f
     10902    jmp short 07603h                          ; eb 1f
    1094710903    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10948     jmp short 0767ch                          ; eb 19
    10949     jmp near 077f1h                           ; e9 8b 01
     10904    jmp short 07603h                          ; eb 19
     10905    jmp near 07778h                           ; e9 8b 01
    1095010906    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10951     jmp short 0767ch                          ; eb 10
     10907    jmp short 07603h                          ; eb 10
    1095210908    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10953     jmp short 0767ch                          ; eb 0a
     10909    jmp short 07603h                          ; eb 0a
    1095410910    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10955     jmp short 0767ch                          ; eb 04
     10911    jmp short 07603h                          ; eb 04
    1095610912    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1095710913    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10958     jbe short 076b2h                          ; 76 30
     10914    jbe short 07639h                          ; 76 30
    1095910915    mov ax, 000f3h                            ; b8 f3 00
    10960     call 07357h                               ; e8 cf fc
     10916    call 072deh                               ; e8 cf fc
    1096110917    test al, al                               ; 84 c0
    10962     jne short 076a7h                          ; 75 1b
     10918    jne short 0762eh                          ; 75 1b
    1096310919    mov dx, ss                                ; 8c d2
    1096410920    lea ax, [bp-006h]                         ; 8d 46 fa
    10965     call 0738bh                               ; e8 f7 fc
     10921    call 07312h                               ; e8 f7 fc
    1096610922    mov al, byte [bp-008h]                    ; 8a 46 f8
    1096710923    xor ah, ah                                ; 30 e4
    10968     call 07357h                               ; e8 bb fc
     10924    call 072deh                               ; e8 bb fc
    1096910925    mov dx, ss                                ; 8c d2
    1097010926    lea ax, [bp-006h]                         ; 8d 46 fa
    10971     call 0738bh                               ; e8 e7 fc
    10972     jmp near 0786dh                           ; e9 c6 01
     10927    call 07312h                               ; e8 e7 fc
     10928    jmp near 077f4h                           ; e9 c6 01
    1097310929    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097410930    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10975     jmp near 0786dh                           ; e9 bb 01
     10931    jmp near 077f4h                           ; e9 bb 01
    1097610932    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097710933    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10978     jmp near 0786dh                           ; e9 b0 01
     10934    jmp near 077f4h                           ; e9 b0 01
    1097910935    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10980     jnc short 0771fh                          ; 73 5c
     10936    jnc short 076a6h                          ; 73 5c
    1098110937    mov ax, 000e8h                            ; b8 e8 00
    10982     call 07357h                               ; e8 8e fc
     10938    call 072deh                               ; e8 8e fc
    1098310939    test al, al                               ; 84 c0
    10984     jne short 07715h                          ; 75 48
     10940    jne short 0769ch                          ; 75 48
    1098510941    mov dx, ss                                ; 8c d2
    1098610942    lea ax, [bp-008h]                         ; 8d 46 f8
    10987     call 0738bh                               ; e8 b6 fc
     10943    call 07312h                               ; e8 b6 fc
    1098810944    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10989     je short 076ech                           ; 74 11
     10945    je short 07673h                           ; 74 11
    1099010946    mov al, byte [bp-008h]                    ; 8a 46 f8
    1099110947    xor ah, ah                                ; 30 e4
     
    1099310949    push 0092eh                               ; 68 2e 09
    1099410950    push strict byte 00007h                   ; 6a 07
    10995     call 01966h                               ; e8 7d a2
     10951    call 01966h                               ; e8 f6 a2
    1099610952    add sp, strict byte 00006h                ; 83 c4 06
    1099710953    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1099810954    xor ah, ah                                ; 30 e4
    10999     call 07357h                               ; e8 63 fc
     10955    call 072deh                               ; e8 63 fc
    1100010956    mov dx, ss                                ; 8c d2
    1100110957    lea ax, [bp-008h]                         ; 8d 46 f8
    11002     call 0738bh                               ; e8 8f fc
     10958    call 07312h                               ; e8 8f fc
    1100310959    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11004     je short 0774eh                           ; 74 4c
     10960    je short 076d5h                           ; 74 4c
    1100510961    mov al, byte [bp-008h]                    ; 8a 46 f8
    1100610962    xor ah, ah                                ; 30 e4
     
    1100810964    push 0092eh                               ; 68 2e 09
    1100910965    push strict byte 00007h                   ; 6a 07
    11010     call 01966h                               ; e8 56 a2
     10966    call 01966h                               ; e8 cf a2
    1101110967    add sp, strict byte 00006h                ; 83 c4 06
    11012     jmp short 0774eh                          ; eb 39
     10968    jmp short 076d5h                          ; eb 39
    1101310969    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1101410970    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11015     jmp short 0774eh                          ; eb 2f
     10971    jmp short 076d5h                          ; eb 2f
    1101610972    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1101710973    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11018     jmp short 0774eh                          ; eb 25
     10974    jmp short 076d5h                          ; eb 25
    1101910975    mov ax, 000f2h                            ; b8 f2 00
    11020     call 07357h                               ; e8 28 fc
     10976    call 072deh                               ; e8 28 fc
    1102110977    test al, al                               ; 84 c0
    11022     jne short 07746h                          ; 75 13
     10978    jne short 076cdh                          ; 75 13
    1102310979    mov dx, ss                                ; 8c d2
    1102410980    lea ax, [bp-008h]                         ; 8d 46 f8
    11025     call 0738bh                               ; e8 50 fc
     10981    call 07312h                               ; e8 50 fc
    1102610982    mov dx, ss                                ; 8c d2
    1102710983    lea ax, [bp-006h]                         ; 8d 46 fa
    11028     call 0738bh                               ; e8 48 fc
    11029     jmp near 0761fh                           ; e9 d9 fe
     10984    call 07312h                               ; e8 48 fc
     10985    jmp near 075a6h                           ; e9 d9 fe
    1103010986    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1103110987    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11032     jmp near 0786dh                           ; e9 1c 01
     10988    jmp near 077f4h                           ; e9 1c 01
    1103310989    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1103410990    test al, al                               ; 84 c0
    11035     jbe short 0775fh                          ; 76 07
     10991    jbe short 076e6h                          ; 76 07
    1103610992    cmp AL, strict byte 002h                  ; 3c 02
    11037     jbe short 077c6h                          ; 76 6a
    11038     jmp near 077fbh                           ; e9 9c 00
     10993    jbe short 0774dh                          ; 76 6a
     10994    jmp near 07782h                           ; e9 9c 00
    1103910995    mov ax, 000e9h                            ; b8 e9 00
    11040     call 07357h                               ; e8 f2 fb
     10996    call 072deh                               ; e8 f2 fb
    1104110997    test al, al                               ; 84 c0
    11042     jne short 077cfh                          ; 75 66
     10998    jne short 07756h                          ; 75 66
    1104310999    mov dx, ss                                ; 8c d2
    1104411000    lea ax, [bp-008h]                         ; 8d 46 f8
    11045     call 0738bh                               ; e8 1a fc
     11001    call 07312h                               ; e8 1a fc
    1104611002    mov cl, al                                ; 88 c1
    1104711003    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11048     je short 0778ah                           ; 74 11
     11004    je short 07711h                           ; 74 11
    1104911005    mov al, byte [bp-008h]                    ; 8a 46 f8
    1105011006    xor ah, ah                                ; 30 e4
     
    1105211008    push 0092eh                               ; 68 2e 09
    1105311009    push strict byte 00007h                   ; 6a 07
    11054     call 01966h                               ; e8 df a1
     11010    call 01966h                               ; e8 58 a2
    1105511011    add sp, strict byte 00006h                ; 83 c4 06
    1105611012    test cl, cl                               ; 84 c9
    11057     jne short 077f1h                          ; 75 63
     11013    jne short 07778h                          ; 75 63
    1105811014    mov dx, ss                                ; 8c d2
    1105911015    lea ax, [bp-008h]                         ; 8d 46 f8
    11060     call 0738bh                               ; e8 f5 fb
     11016    call 07312h                               ; e8 f5 fb
    1106111017    test al, al                               ; 84 c0
    11062     jne short 077f1h                          ; 75 57
     11018    jne short 07778h                          ; 75 57
    1106311019    mov dx, ss                                ; 8c d2
    1106411020    lea ax, [bp-006h]                         ; 8d 46 fa
    11065     call 0738bh                               ; e8 e9 fb
     11021    call 07312h                               ; e8 e9 fb
    1106611022    test al, al                               ; 84 c0
    11067     jne short 077f1h                          ; 75 4b
     11023    jne short 07778h                          ; 75 4b
    1106811024    mov dx, ss                                ; 8c d2
    1106911025    lea ax, [bp-004h]                         ; 8d 46 fc
    11070     call 0738bh                               ; e8 dd fb
     11026    call 07312h                               ; e8 dd fb
    1107111027    test al, al                               ; 84 c0
    11072     jne short 077f1h                          ; 75 3f
     11028    jne short 07778h                          ; 75 3f
    1107311029    mov al, byte [bp-008h]                    ; 8a 46 f8
    1107411030    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1107711033    mov al, byte [bp-004h]                    ; 8a 46 fc
    1107811034    mov byte [bp+00eh], al                    ; 88 46 0e
    11079     jmp short 0774eh                          ; eb 88
     11035    jmp short 076d5h                          ; eb 88
    1108011036    cmp AL, strict byte 001h                  ; 3c 01
    11081     jne short 077d1h                          ; 75 07
     11037    jne short 07758h                          ; 75 07
    1108211038    mov ax, 000e6h                            ; b8 e6 00
    11083     jmp short 077d4h                          ; eb 05
    11084     jmp short 077f1h                          ; eb 20
     11039    jmp short 0775bh                          ; eb 05
     11040    jmp short 07778h                          ; eb 20
    1108511041    mov ax, 000e7h                            ; b8 e7 00
    11086     call 07357h                               ; e8 80 fb
     11042    call 072deh                               ; e8 80 fb
    1108711043    mov cl, al                                ; 88 c1
    1108811044    test cl, cl                               ; 84 c9
    11089     jne short 077edh                          ; 75 10
     11045    jne short 07774h                          ; 75 10
    1109011046    mov dx, ss                                ; 8c d2
    1109111047    lea ax, [bp-008h]                         ; 8d 46 f8
    11092     call 0738bh                               ; e8 a6 fb
     11048    call 07312h                               ; e8 a6 fb
    1109311049    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11094     je short 077edh                           ; 74 02
     11050    je short 07774h                           ; 74 02
    1109511051    mov CL, strict byte 001h                  ; b1 01
    1109611052    test cl, cl                               ; 84 c9
    11097     je short 07858h                           ; 74 67
     11053    je short 077dfh                           ; 74 67
    1109811054    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109911055    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11100     jmp short 07858h                          ; eb 5d
     11056    jmp short 077dfh                          ; eb 5d
    1110111057    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1110211058    xor ah, ah                                ; 30 e4
     
    1110411060    push 0095ah                               ; 68 5a 09
    1110511061    push strict byte 00007h                   ; 6a 07
    11106     call 01966h                               ; e8 5d a1
     11062    call 01966h                               ; e8 d6 a1
    1110711063    add sp, strict byte 00006h                ; 83 c4 06
    1110811064    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110911065    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11110     jmp short 0786dh                          ; eb 57
     11066    jmp short 077f4h                          ; eb 57
    1111111067    mov si, word [bp+00ch]                    ; 8b 76 0c
    1111211068    mov bx, si                                ; 89 f3
    1111311069    mov dx, strict word 00022h                ; ba 22 00
    1111411070    mov ax, cx                                ; 89 c8
    11115     call 0167ah                               ; e8 57 9e
     11071    call 0167ah                               ; e8 d0 9e
    1111611072    mov bx, word [bp+014h]                    ; 8b 5e 14
    1111711073    mov dx, strict word 00024h                ; ba 24 00
    1111811074    mov ax, cx                                ; 89 c8
    11119     call 0167ah                               ; e8 4c 9e
     11075    call 0167ah                               ; e8 c5 9e
    1112011076    mov dx, strict word 00027h                ; ba 27 00
    1112111077    mov ax, cx                                ; 89 c8
    11122     call 01650h                               ; e8 1a 9e
     11078    call 01650h                               ; e8 93 9e
    1112311079    mov ah, al                                ; 88 c4
    1112411080    test si, si                               ; 85 f6
    11125     jne short 0784ah                          ; 75 0e
     11081    jne short 077d1h                          ; 75 0e
    1112611082    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11127     jne short 0784ah                          ; 75 08
     11083    jne short 077d1h                          ; 75 08
    1112811084    test AL, strict byte 080h                 ; a8 80
    11129     je short 0784ch                           ; 74 06
     11085    je short 077d3h                           ; 74 06
    1113011086    and AL, strict byte 07fh                  ; 24 7f
    11131     jmp short 0784ch                          ; eb 02
     11087    jmp short 077d3h                          ; eb 02
    1113211088    or AL, strict byte 080h                   ; 0c 80
    1113311089    mov bl, al                                ; 88 c3
     
    1113511091    mov dx, strict word 00027h                ; ba 27 00
    1113611092    mov ax, cx                                ; 89 c8
    11137     call 0165eh                               ; e8 06 9e
    11138     jmp short 0786dh                          ; eb 13
     11093    call 0165eh                               ; e8 7f 9e
     11094    jmp short 077f4h                          ; eb 13
    1113911095    push 00974h                               ; 68 74 09
    1114011096    push strict byte 00007h                   ; 6a 07
    11141     call 01966h                               ; e8 04 a1
     11097    call 01966h                               ; e8 7d a1
    1114211098    add sp, strict byte 00004h                ; 83 c4 04
    1114311099    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1114411100    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1114511101    mov ax, strict word 00047h                ; b8 47 00
    11146     call 073e8h                               ; e8 75 fb
     11102    call 0736fh                               ; e8 75 fb
    1114711103    lea sp, [bp-002h]                         ; 8d 66 fe
    1114811104    pop si                                    ; 5e
    1114911105    pop bp                                    ; 5d
    1115011106    retn                                      ; c3
    11151 _int17_function:                             ; 0xf7879 LB 0xaf
     11107_int17_function:                             ; 0xf7800 LB 0xaf
    1115211108    push bp                                   ; 55
    1115311109    mov bp, sp                                ; 89 e5
     
    1115911115    add dx, strict byte 00008h                ; 83 c2 08
    1116011116    mov ax, strict word 00040h                ; b8 40 00
    11161     call 0166ch                               ; e8 df 9d
     11117    call 0166ch                               ; e8 58 9e
    1116211118    mov bx, ax                                ; 89 c3
    1116311119    mov si, ax                                ; 89 c6
    1116411120    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11165     jnc short 078a3h                          ; 73 0c
     11121    jnc short 0782ah                          ; 73 0c
    1116611122    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1116711123    cmp ax, strict word 00003h                ; 3d 03 00
    11168     jnc short 078a3h                          ; 73 04
     11124    jnc short 0782ah                          ; 73 04
    1116911125    test bx, bx                               ; 85 db
    11170     jnbe short 078a6h                         ; 77 03
    11171     jmp near 0791eh                           ; e9 78 00
     11126    jnbe short 0782dh                         ; 77 03
     11127    jmp near 078a5h                           ; e9 78 00
    1117211128    mov dx, ax                                ; 89 c2
    1117311129    add dx, strict byte 00078h                ; 83 c2 78
    1117411130    mov ax, strict word 00040h                ; b8 40 00
    11175     call 01650h                               ; e8 9f 9d
     11131    call 01650h                               ; e8 18 9e
    1117611132    xor ah, ah                                ; 30 e4
    1117711133    mov cx, ax                                ; 89 c1
    1117811134    sal cx, 008h                              ; c1 e1 08
    1117911135    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11180     jne short 078eah                          ; 75 2c
     11136    jne short 07871h                          ; 75 2c
    1118111137    mov al, byte [bp+012h]                    ; 8a 46 12
    1118211138    mov dx, bx                                ; 89 da
     
    1119811154    ; sub ah, ah                                ; 2a e4
    1119911155    test AL, strict byte 040h                 ; a8 40
    11200     je short 078eah                           ; 74 07
     11156    je short 07871h                           ; 74 07
    1120111157    test cx, cx                               ; 85 c9
    11202     je short 078eah                           ; 74 03
     11158    je short 07871h                           ; 74 03
    1120311159    dec cx                                    ; 49
    11204     jmp short 078d9h                          ; eb ef
     11160    jmp short 07860h                          ; eb ef
    1120511161    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11206     jne short 07905h                          ; 75 15
     11162    jne short 0788ch                          ; 75 15
    1120711163    lea dx, [si+002h]                         ; 8d 54 02
    1120811164    in AL, DX                                 ; ec
     
    1122311179    mov byte [bp+013h], al                    ; 88 46 13
    1122411180    test cx, cx                               ; 85 c9
    11225     jne short 07918h                          ; 75 04
     11181    jne short 0789fh                          ; 75 04
    1122611182    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1122711183    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11228     jmp short 07922h                          ; eb 04
     11184    jmp short 078a9h                          ; eb 04
    1122911185    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1123011186    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1123211188    pop bp                                    ; 5d
    1123311189    retn                                      ; c3
    11234 wait_:                                       ; 0xf7928 LB 0xaf
     11190wait_:                                       ; 0xf78af LB 0xaf
    1123511191    push bp                                   ; 55
    1123611192    mov bp, sp                                ; 89 e5
     
    1125011206    mov dx, 0046ch                            ; ba 6c 04
    1125111207    xor ax, ax                                ; 31 c0
    11252     call 01688h                               ; e8 3d 9d
     11208    call 01688h                               ; e8 b6 9d
    1125311209    mov word [bp-010h], ax                    ; 89 46 f0
    1125411210    mov bx, dx                                ; 89 d3
     
    1125611212    mov dx, 0046ch                            ; ba 6c 04
    1125711213    xor ax, ax                                ; 31 c0
    11258     call 01688h                               ; e8 2f 9d
     11214    call 01688h                               ; e8 a8 9d
    1125911215    mov word [bp-012h], ax                    ; 89 46 ee
    1126011216    mov di, dx                                ; 89 d7
    1126111217    cmp dx, bx                                ; 39 da
    11262     jnbe short 07969h                         ; 77 07
    11263     jne short 07970h                          ; 75 0c
     11218    jnbe short 078f0h                         ; 77 07
     11219    jne short 078f7h                          ; 75 0c
    1126411220    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11265     jbe short 07970h                          ; 76 07
     11221    jbe short 078f7h                          ; 76 07
    1126611222    sub ax, word [bp-010h]                    ; 2b 46 f0
    1126711223    sbb dx, bx                                ; 19 da
    11268     jmp short 0797bh                          ; eb 0b
     11224    jmp short 07902h                          ; eb 0b
    1126911225    cmp dx, bx                                ; 39 da
    11270     jc short 0797bh                           ; 72 07
    11271     jne short 0797fh                          ; 75 09
     11226    jc short 07902h                           ; 72 07
     11227    jne short 07906h                          ; 75 09
    1127211228    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11273     jnc short 0797fh                          ; 73 04
     11229    jnc short 07906h                          ; 73 04
    1127411230    sub si, ax                                ; 29 c6
    1127511231    sbb cx, dx                                ; 19 d1
     
    1127911235    mov ax, 00100h                            ; b8 00 01
    1128011236    int 016h                                  ; cd 16
    11281     je short 07993h                           ; 74 05
     11237    je short 0791ah                           ; 74 05
    1128211238    mov AL, strict byte 001h                  ; b0 01
    11283     jmp near 07995h                           ; e9 02 00
     11239    jmp near 0791ch                           ; e9 02 00
    1128411240    db  032h, 0c0h
    1128511241    ; xor al, al                                ; 32 c0
    1128611242    test al, al                               ; 84 c0
    11287     je short 079bch                           ; 74 23
     11243    je short 07943h                           ; 74 23
    1128811244    db  033h, 0c0h
    1128911245    ; xor ax, ax                                ; 33 c0
     
    1129611252    push 00996h                               ; 68 96 09
    1129711253    push strict byte 00004h                   ; 6a 04
    11298     call 01966h                               ; e8 b7 9f
     11254    call 01966h                               ; e8 30 a0
    1129911255    add sp, strict byte 00006h                ; 83 c4 06
    1130011256    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11301     je short 079bch                           ; 74 04
     11257    je short 07943h                           ; 74 04
    1130211258    mov al, dl                                ; 88 d0
    11303     jmp short 079ceh                          ; eb 12
     11259    jmp short 07955h                          ; eb 12
    1130411260    test cx, cx                               ; 85 c9
    11305     jnle short 07950h                         ; 7f 90
    11306     jne short 079c6h                          ; 75 04
     11261    jnle short 078d7h                         ; 7f 90
     11262    jne short 0794dh                          ; 75 04
    1130711263    test si, si                               ; 85 f6
    11308     jnbe short 07950h                         ; 77 8a
     11264    jnbe short 078d7h                         ; 77 8a
    1130911265    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1131011266    push ax                                   ; 50
     
    1131811274    pop bp                                    ; 5d
    1131911275    retn                                      ; c3
    11320 read_logo_byte_:                             ; 0xf79d7 LB 0x16
     11276read_logo_byte_:                             ; 0xf795e LB 0x16
    1132111277    push bp                                   ; 55
    1132211278    mov bp, sp                                ; 89 e5
     
    1133311289    pop bp                                    ; 5d
    1133411290    retn                                      ; c3
    11335 read_logo_word_:                             ; 0xf79ed LB 0x14
     11291read_logo_word_:                             ; 0xf7974 LB 0x14
    1133611292    push bp                                   ; 55
    1133711293    mov bp, sp                                ; 89 e5
     
    1134611302    pop bp                                    ; 5d
    1134711303    retn                                      ; c3
    11348 print_detected_harddisks_:                   ; 0xf7a01 LB 0x13a
     11304print_detected_harddisks_:                   ; 0xf7988 LB 0x13a
    1134911305    push bp                                   ; 55
    1135011306    mov bp, sp                                ; 89 e5
     
    1135811314    mov dx, strict word 0000eh                ; ba 0e 00
    1135911315    mov ax, strict word 00040h                ; b8 40 00
    11360     call 0166ch                               ; e8 58 9c
     11316    call 0166ch                               ; e8 d1 9c
    1136111317    mov si, ax                                ; 89 c6
    1136211318    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1136411320    xor ch, ch                                ; 30 ed
    1136511321    mov dx, 00304h                            ; ba 04 03
    11366     call 01650h                               ; e8 2c 9c
     11322    call 01650h                               ; e8 a5 9c
    1136711323    mov byte [bp-00ch], al                    ; 88 46 f4
    1136811324    xor bl, bl                                ; 30 db
    1136911325    cmp bl, byte [bp-00ch]                    ; 3a 5e f4
    11370     jnc short 07a8bh                          ; 73 5d
     11326    jnc short 07a12h                          ; 73 5d
    1137111327    mov al, bl                                ; 88 d8
    1137211328    xor ah, ah                                ; 30 e4
     
    1137411330    add dx, 00305h                            ; 81 c2 05 03
    1137511331    mov ax, si                                ; 89 f0
    11376     call 01650h                               ; e8 13 9c
     11332    call 01650h                               ; e8 8c 9c
    1137711333    mov bh, al                                ; 88 c7
    1137811334    cmp AL, strict byte 00ch                  ; 3c 0c
    11379     jc short 07a68h                           ; 72 25
     11335    jc short 079efh                           ; 72 25
    1138011336    test cl, cl                               ; 84 c9
    11381     jne short 07a54h                          ; 75 0d
     11337    jne short 079dbh                          ; 75 0d
    1138211338    push 009a7h                               ; 68 a7 09
    1138311339    push strict byte 00002h                   ; 6a 02
    11384     call 01966h                               ; e8 17 9f
     11340    call 01966h                               ; e8 90 9f
    1138511341    add sp, strict byte 00004h                ; 83 c4 04
    1138611342    mov CL, strict byte 001h                  ; b1 01
     
    1139111347    push 009bch                               ; 68 bc 09
    1139211348    push strict byte 00002h                   ; 6a 02
    11393     call 01966h                               ; e8 04 9f
     11349    call 01966h                               ; e8 7d 9f
    1139411350    add sp, strict byte 00006h                ; 83 c4 06
    11395     jmp near 07b08h                           ; e9 a0 00
     11351    jmp near 07a8fh                           ; e9 a0 00
    1139611352    cmp AL, strict byte 008h                  ; 3c 08
    11397     jc short 07a7fh                           ; 72 13
     11353    jc short 07a06h                           ; 72 13
    1139811354    test ch, ch                               ; 84 ed
    11399     jne short 07a7dh                          ; 75 0d
     11355    jne short 07a04h                          ; 75 0d
    1140011356    push 009cfh                               ; 68 cf 09
    1140111357    push strict byte 00002h                   ; 6a 02
    11402     call 01966h                               ; e8 ee 9e
     11358    call 01966h                               ; e8 67 9f
    1140311359    add sp, strict byte 00004h                ; 83 c4 04
    1140411360    mov CH, strict byte 001h                  ; b5 01
    11405     jmp short 07a54h                          ; eb d5
     11361    jmp short 079dbh                          ; eb d5
    1140611362    cmp AL, strict byte 004h                  ; 3c 04
    11407     jnc short 07a9fh                          ; 73 1c
     11363    jnc short 07a26h                          ; 73 1c
    1140811364    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11409     je short 07a8eh                           ; 74 05
    11410     jmp short 07a9fh                          ; eb 14
    11411     jmp near 07b0dh                           ; e9 7f 00
     11365    je short 07a15h                           ; 74 05
     11366    jmp short 07a26h                          ; eb 14
     11367    jmp near 07a94h                           ; e9 7f 00
    1141211368    push 009e4h                               ; 68 e4 09
    1141311369    push strict byte 00002h                   ; 6a 02
    11414     call 01966h                               ; e8 d0 9e
     11370    call 01966h                               ; e8 49 9f
    1141511371    add sp, strict byte 00004h                ; 83 c4 04
    1141611372    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11417     jmp short 07ab5h                          ; eb 16
     11373    jmp short 07a3ch                          ; eb 16
    1141811374    cmp bh, 004h                              ; 80 ff 04
    11419     jc short 07ab5h                           ; 72 11
     11375    jc short 07a3ch                           ; 72 11
    1142011376    test cl, cl                               ; 84 c9
    11421     jne short 07ab5h                          ; 75 0d
     11377    jne short 07a3ch                          ; 75 0d
    1142211378    push 009f6h                               ; 68 f6 09
    1142311379    push strict byte 00002h                   ; 6a 02
    11424     call 01966h                               ; e8 b6 9e
     11380    call 01966h                               ; e8 2f 9f
    1142511381    add sp, strict byte 00004h                ; 83 c4 04
    1142611382    mov CL, strict byte 001h                  ; b1 01
     
    1143111387    push 00a0ah                               ; 68 0a 0a
    1143211388    push strict byte 00002h                   ; 6a 02
    11433     call 01966h                               ; e8 a3 9e
     11389    call 01966h                               ; e8 1c 9f
    1143411390    add sp, strict byte 00006h                ; 83 c4 06
    1143511391    cmp bh, 004h                              ; 80 ff 04
    11436     jc short 07aceh                           ; 72 03
     11392    jc short 07a55h                           ; 72 03
    1143711393    sub bh, 004h                              ; 80 ef 04
    1143811394    mov al, bh                                ; 88 f8
     
    1144311399    sar ax, 1                                 ; d1 f8
    1144411400    test ax, ax                               ; 85 c0
    11445     je short 07ae0h                           ; 74 05
     11401    je short 07a67h                           ; 74 05
    1144611402    push 00a14h                               ; 68 14 0a
    11447     jmp short 07ae3h                          ; eb 03
     11403    jmp short 07a6ah                          ; eb 03
    1144811404    push 00a1fh                               ; 68 1f 0a
    1144911405    push strict byte 00002h                   ; 6a 02
    11450     call 01966h                               ; e8 7e 9e
     11406    call 01966h                               ; e8 f7 9e
    1145111407    add sp, strict byte 00004h                ; 83 c4 04
    1145211408    mov al, bh                                ; 88 f8
     
    1145611412    idiv di                                   ; f7 ff
    1145711413    test dx, dx                               ; 85 d2
    11458     je short 07afeh                           ; 74 05
     11414    je short 07a85h                           ; 74 05
    1145911415    push 00a28h                               ; 68 28 0a
    11460     jmp short 07b01h                          ; eb 03
     11416    jmp short 07a88h                          ; eb 03
    1146111417    push 00a2eh                               ; 68 2e 0a
    1146211418    push di                                   ; 57
    11463     call 01966h                               ; e8 61 9e
     11419    call 01966h                               ; e8 da 9e
    1146411420    add sp, strict byte 00004h                ; 83 c4 04
    1146511421    db  0feh, 0c3h
    1146611422    ; inc bl                                    ; fe c3
    11467     jmp near 07a29h                           ; e9 1c ff
     11423    jmp near 079b0h                           ; e9 1c ff
    1146811424    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11469     jne short 07b26h                          ; 75 13
     11425    jne short 07aadh                          ; 75 13
    1147011426    test cl, cl                               ; 84 c9
    11471     jne short 07b26h                          ; 75 0f
     11427    jne short 07aadh                          ; 75 0f
    1147211428    test ch, ch                               ; 84 ed
    11473     jne short 07b26h                          ; 75 0b
     11429    jne short 07aadh                          ; 75 0b
    1147411430    push 00a35h                               ; 68 35 0a
    1147511431    push strict byte 00002h                   ; 6a 02
    11476     call 01966h                               ; e8 43 9e
     11432    call 01966h                               ; e8 bc 9e
    1147711433    add sp, strict byte 00004h                ; 83 c4 04
    1147811434    push 00a49h                               ; 68 49 0a
    1147911435    push strict byte 00002h                   ; 6a 02
    11480     call 01966h                               ; e8 38 9e
     11436    call 01966h                               ; e8 b1 9e
    1148111437    add sp, strict byte 00004h                ; 83 c4 04
    1148211438    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1148811444    pop bp                                    ; 5d
    1148911445    retn                                      ; c3
    11490 get_boot_drive_:                             ; 0xf7b3b LB 0x28
     11446get_boot_drive_:                             ; 0xf7ac2 LB 0x28
    1149111447    push bp                                   ; 55
    1149211448    mov bp, sp                                ; 89 e5
     
    1149611452    mov dx, strict word 0000eh                ; ba 0e 00
    1149711453    mov ax, strict word 00040h                ; b8 40 00
    11498     call 0166ch                               ; e8 21 9b
     11454    call 0166ch                               ; e8 9a 9b
    1149911455    mov dx, 00304h                            ; ba 04 03
    11500     call 01650h                               ; e8 ff 9a
     11456    call 01650h                               ; e8 78 9b
    1150111457    sub bl, 002h                              ; 80 eb 02
    1150211458    cmp bl, al                                ; 38 c3
    11503     jc short 07b5ah                           ; 72 02
     11459    jc short 07ae1h                           ; 72 02
    1150411460    mov BL, strict byte 0ffh                  ; b3 ff
    1150511461    mov al, bl                                ; 88 d8
     
    1150911465    pop bp                                    ; 5d
    1151011466    retn                                      ; c3
    11511 show_logo_:                                  ; 0xf7b63 LB 0x228
     11467show_logo_:                                  ; 0xf7aea LB 0x226
    1151211468    push bp                                   ; 55
    1151311469    mov bp, sp                                ; 89 e5
     
    1152011476    mov dx, strict word 0000eh                ; ba 0e 00
    1152111477    mov ax, strict word 00040h                ; b8 40 00
    11522     call 0166ch                               ; e8 f5 9a
     11478    call 0166ch                               ; e8 6e 9b
    1152311479    mov si, ax                                ; 89 c6
    1152411480    xor cl, cl                                ; 30 c9
     
    1153211488    mov al, dl                                ; 88 d0
    1153311489    xor ah, ah                                ; 30 e4
    11534     call 079edh                               ; e8 5d fe
     11490    call 07974h                               ; e8 5d fe
    1153511491    cmp ax, 066bbh                            ; 3d bb 66
    11536     jne short 07ba7h                          ; 75 12
     11492    jne short 07b2eh                          ; 75 12
    1153711493    push SS                                   ; 16
    1153811494    pop ES                                    ; 07
     
    1154211498    mov word [es:di], bx                      ; 26 89 1d
    1154311499    cmp ax, strict word 0004fh                ; 3d 4f 00
    11544     je short 07baah                           ; 74 03
    11545     jmp near 07c67h                           ; e9 bd 00
     11500    je short 07b31h                           ; 74 03
     11501    jmp near 07beeh                           ; e9 bd 00
    1154611502    mov al, dl                                ; 88 d0
    1154711503    add AL, strict byte 004h                  ; 04 04
    1154811504    xor ah, ah                                ; 30 e4
    11549     call 079d7h                               ; e8 24 fe
     11505    call 0795eh                               ; e8 24 fe
    1155011506    mov ch, al                                ; 88 c5
    1155111507    mov byte [bp-012h], al                    ; 88 46 ee
     
    1155311509    add AL, strict byte 005h                  ; 04 05
    1155411510    xor ah, ah                                ; 30 e4
    11555     call 079d7h                               ; e8 16 fe
     11511    call 0795eh                               ; e8 16 fe
    1155611512    mov dh, al                                ; 88 c6
    1155711513    mov byte [bp-010h], al                    ; 88 46 f0
     
    1155911515    add AL, strict byte 002h                  ; 04 02
    1156011516    xor ah, ah                                ; 30 e4
    11561     call 079edh                               ; e8 1e fe
     11517    call 07974h                               ; e8 1e fe
    1156211518    mov bx, ax                                ; 89 c3
    1156311519    mov word [bp-014h], ax                    ; 89 46 ec
     
    1156511521    add AL, strict byte 006h                  ; 04 06
    1156611522    xor ah, ah                                ; 30 e4
    11567     call 079d7h                               ; e8 fa fd
     11523    call 0795eh                               ; e8 fa fd
    1156811524    mov byte [bp-00eh], al                    ; 88 46 f2
    1156911525    test ch, ch                               ; 84 ed
    11570     jne short 07bech                          ; 75 08
     11526    jne short 07b73h                          ; 75 08
    1157111527    test dh, dh                               ; 84 f6
    11572     jne short 07bech                          ; 75 04
     11528    jne short 07b73h                          ; 75 04
    1157311529    test bx, bx                               ; 85 db
    11574     je short 07c44h                           ; 74 58
     11530    je short 07bcbh                           ; 74 58
    1157511531    mov bx, 00142h                            ; bb 42 01
    1157611532    mov ax, 04f02h                            ; b8 02 4f
    1157711533    int 010h                                  ; cd 10
    1157811534    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11579     je short 07c1dh                           ; 74 23
     11535    je short 07ba4h                           ; 74 23
    1158011536    xor bx, bx                                ; 31 db
    11581     jmp short 07c04h                          ; eb 06
     11537    jmp short 07b8bh                          ; eb 06
    1158211538    inc bx                                    ; 43
    1158311539    cmp bx, strict byte 00010h                ; 83 fb 10
    11584     jnbe short 07c24h                         ; 77 20
     11540    jnbe short 07babh                         ; 77 20
    1158511541    mov ax, bx                                ; 89 d8
    1158611542    or ah, 002h                               ; 80 cc 02
     
    1158911545    xor dx, dx                                ; 31 d2
    1159011546    mov ax, strict word 00001h                ; b8 01 00
    11591     call 07928h                               ; e8 13 fd
     11547    call 078afh                               ; e8 13 fd
    1159211548    cmp AL, strict byte 086h                  ; 3c 86
    11593     jne short 07bfeh                          ; 75 e5
     11549    jne short 07b85h                          ; 75 e5
    1159411550    mov CL, strict byte 001h                  ; b1 01
    11595     jmp short 07c24h                          ; eb 07
     11551    jmp short 07babh                          ; eb 07
    1159611552    mov ax, 00210h                            ; b8 10 02
    1159711553    mov dx, 003b8h                            ; ba b8 03
    1159811554    out DX, ax                                ; ef
    1159911555    test cl, cl                               ; 84 c9
    11600     jne short 07c3ah                          ; 75 12
     11556    jne short 07bc1h                          ; 75 12
    1160111557    mov ax, word [bp-014h]                    ; 8b 46 ec
    1160211558    shr ax, 004h                              ; c1 e8 04
    1160311559    mov dx, strict word 00001h                ; ba 01 00
    11604     call 07928h                               ; e8 f4 fc
     11560    call 078afh                               ; e8 f4 fc
    1160511561    cmp AL, strict byte 086h                  ; 3c 86
    11606     jne short 07c3ah                          ; 75 02
     11562    jne short 07bc1h                          ; 75 02
    1160711563    mov CL, strict byte 001h                  ; b1 01
    1160811564    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11609     je short 07c67h                           ; 74 27
     11565    je short 07beeh                           ; 74 27
    1161011566    test cl, cl                               ; 84 c9
    11611     je short 07c46h                           ; 74 02
    11612     jmp short 07c67h                          ; eb 21
     11567    je short 07bcdh                           ; 74 02
     11568    jmp short 07beeh                          ; eb 21
    1161311569    mov bx, strict word 00010h                ; bb 10 00
    11614     jmp short 07c50h                          ; eb 05
     11570    jmp short 07bd7h                          ; eb 05
    1161511571    dec bx                                    ; 4b
    1161611572    test bx, bx                               ; 85 db
    11617     jbe short 07c67h                          ; 76 17
     11573    jbe short 07beeh                          ; 76 17
    1161811574    mov ax, bx                                ; 89 d8
    1161911575    or ah, 002h                               ; 80 cc 02
     
    1162211578    xor dx, dx                                ; 31 d2
    1162311579    mov ax, strict word 00001h                ; b8 01 00
    11624     call 07928h                               ; e8 c7 fc
     11580    call 078afh                               ; e8 c7 fc
    1162511581    cmp AL, strict byte 086h                  ; 3c 86
    11626     jne short 07c4bh                          ; 75 e6
     11582    jne short 07bd2h                          ; 75 e6
    1162711583    mov CL, strict byte 001h                  ; b1 01
    1162811584    xor bx, bx                                ; 31 db
    1162911585    mov dx, 0037dh                            ; ba 7d 03
    1163011586    mov ax, si                                ; 89 f0
    11631     call 0165eh                               ; e8 ed 99
     11587    call 0165eh                               ; e8 66 9a
    1163211588    mov AL, strict byte 003h                  ; b0 03
    1163311589    mov AH, strict byte 000h                  ; b4 00
    1163411590    int 010h                                  ; cd 10
    1163511591    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11636     je short 07c91h                           ; 74 14
     11592    je short 07c18h                           ; 74 14
    1163711593    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11638     jne short 07cb8h                          ; 75 35
     11594    jne short 07c3fh                          ; 75 35
    1163911595    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11640     jne short 07cb8h                          ; 75 2f
     11596    jne short 07c3fh                          ; 75 2f
    1164111597    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11642     je short 07c94h                           ; 74 05
    11643     jmp short 07cb8h                          ; eb 27
    11644     jmp near 07d6ch                           ; e9 d8 00
     11598    je short 07c1bh                           ; 74 05
     11599    jmp short 07c3fh                          ; eb 27
     11600    jmp near 07cf3h                           ; e9 d8 00
    1164511601    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    11646     jne short 07ca5h                          ; 75 0b
     11602    jne short 07c2ch                          ; 75 0b
    1164711603    push 00a4bh                               ; 68 4b 0a
    1164811604    push strict byte 00002h                   ; 6a 02
    11649     call 01966h                               ; e8 c4 9c
     11605    call 01966h                               ; e8 3d 9d
    1165011606    add sp, strict byte 00004h                ; 83 c4 04
    1165111607    test cl, cl                               ; 84 c9
    11652     jne short 07cb8h                          ; 75 0f
     11608    jne short 07c3fh                          ; 75 0f
    1165311609    mov dx, strict word 00001h                ; ba 01 00
    1165411610    mov ax, 000c0h                            ; b8 c0 00
    11655     call 07928h                               ; e8 76 fc
     11611    call 078afh                               ; e8 76 fc
    1165611612    cmp AL, strict byte 086h                  ; 3c 86
    11657     jne short 07cb8h                          ; 75 02
     11613    jne short 07c3fh                          ; 75 02
    1165811614    mov CL, strict byte 001h                  ; b1 01
    1165911615    test cl, cl                               ; 84 c9
    11660     je short 07c91h                           ; 74 d5
     11616    je short 07c18h                           ; 74 d5
    1166111617    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1166211618    mov ax, 00100h                            ; b8 00 01
     
    1167711633    push 00a6dh                               ; 68 6d 0a
    1167811634    push strict byte 00002h                   ; 6a 02
    11679     call 01966h                               ; e8 81 9c
     11635    call 01966h                               ; e8 fa 9c
    1168011636    add sp, strict byte 00004h                ; 83 c4 04
    11681     call 07a01h                               ; e8 16 fd
     11637    call 07988h                               ; e8 16 fd
    1168211638    push 00ab1h                               ; 68 b1 0a
    1168311639    push strict byte 00002h                   ; 6a 02
    11684     call 01966h                               ; e8 73 9c
     11640    call 01966h                               ; e8 ec 9c
    1168511641    add sp, strict byte 00004h                ; 83 c4 04
    1168611642    mov dx, strict word 00001h                ; ba 01 00
    1168711643    mov ax, strict word 00040h                ; b8 40 00
    11688     call 07928h                               ; e8 29 fc
     11644    call 078afh                               ; e8 29 fc
    1168911645    mov bl, al                                ; 88 c3
    1169011646    test al, al                               ; 84 c0
    11691     je short 07cf6h                           ; 74 f1
     11647    je short 07c7dh                           ; 74 f1
    1169211648    cmp AL, strict byte 030h                  ; 3c 30
    11693     je short 07d59h                           ; 74 50
     11649    je short 07ce0h                           ; 74 50
    1169411650    cmp bl, 002h                              ; 80 fb 02
    11695     jc short 07d32h                           ; 72 24
     11651    jc short 07cb9h                           ; 72 24
    1169611652    cmp bl, 009h                              ; 80 fb 09
    11697     jnbe short 07d32h                         ; 77 1f
     11653    jnbe short 07cb9h                         ; 77 1f
    1169811654    mov al, bl                                ; 88 d8
    1169911655    xor ah, ah                                ; 30 e4
    11700     call 07b3bh                               ; e8 21 fe
     11656    call 07ac2h                               ; e8 21 fe
    1170111657    cmp AL, strict byte 0ffh                  ; 3c ff
    11702     jne short 07d20h                          ; 75 02
    11703     jmp short 07cf6h                          ; eb d6
     11658    jne short 07ca7h                          ; 75 02
     11659    jmp short 07c7dh                          ; eb d6
    1170411660    mov bl, al                                ; 88 c3
    1170511661    xor bh, bh                                ; 30 ff
    1170611662    mov dx, 0037ch                            ; ba 7c 03
    1170711663    mov ax, si                                ; 89 f0
    11708     call 0165eh                               ; e8 32 99
     11664    call 0165eh                               ; e8 ab 99
    1170911665    mov byte [bp-00ch], 002h                  ; c6 46 f4 02
    11710     jmp short 07d59h                          ; eb 27
     11666    jmp short 07ce0h                          ; eb 27
    1171111667    cmp bl, 02eh                              ; 80 fb 2e
    11712     je short 07d47h                           ; 74 10
     11668    je short 07cceh                           ; 74 10
    1171311669    cmp bl, 026h                              ; 80 fb 26
    11714     je short 07d4dh                           ; 74 11
     11670    je short 07cd4h                           ; 74 11
    1171511671    cmp bl, 021h                              ; 80 fb 21
    11716     jne short 07d53h                          ; 75 12
     11672    jne short 07cdah                          ; 75 12
    1171711673    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11718     jmp short 07d59h                          ; eb 12
     11674    jmp short 07ce0h                          ; eb 12
    1171911675    mov byte [bp-00ch], 003h                  ; c6 46 f4 03
    11720     jmp short 07d59h                          ; eb 0c
     11676    jmp short 07ce0h                          ; eb 0c
    1172111677    mov byte [bp-00ch], 004h                  ; c6 46 f4 04
    11722     jmp short 07d59h                          ; eb 06
     11678    jmp short 07ce0h                          ; eb 06
    1172311679    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11724     je short 07cf6h                           ; 74 9d
     11680    je short 07c7dh                           ; 74 9d
    1172511681    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1172611682    xor bh, bh                                ; 30 ff
    1172711683    mov dx, 0037dh                            ; ba 7d 03
    1172811684    mov ax, si                                ; 89 f0
    11729     call 0165eh                               ; e8 f8 98
     11685    call 0165eh                               ; e8 71 99
    1173011686    mov AL, strict byte 003h                  ; b0 03
    1173111687    mov AH, strict byte 000h                  ; b4 00
     
    1173711693    out strict byte 040h, AL                  ; e6 40
    1173811694    out strict byte 040h, AL                  ; e6 40
    11739     pushad                                    ; 66 60
     11695    push bp                                   ; 55
    1174011696    push DS                                   ; 1e
    1174111697    mov ds, ax                                ; 8e d8
    11742     call 0edbfh                               ; e8 41 70
     11698    call 0edbfh                               ; e8 bb 70
    1174311699    pop DS                                    ; 1f
    11744     popad                                     ; 66 61
     11700    pop bp                                    ; 5d
    1174511701    lea sp, [bp-00ah]                         ; 8d 66 f6
    1174611702    pop di                                    ; 5f
     
    1175111707    pop bp                                    ; 5d
    1175211708    retn                                      ; c3
    11753 delay_boot_:                                 ; 0xf7d8b LB 0x67
     11709delay_boot_:                                 ; 0xf7d10 LB 0x6b
    1175411710    push bp                                   ; 55
    1175511711    mov bp, sp                                ; 89 e5
    1175611712    push bx                                   ; 53
     11713    push cx                                   ; 51
    1175711714    push dx                                   ; 52
     11715    push si                                   ; 56
     11716    push di                                   ; 57
    1175811717    mov dx, ax                                ; 89 c2
    1175911718    test ax, ax                               ; 85 c0
    11760     je short 07debh                           ; 74 55
     11719    je short 07d71h                           ; 74 53
    1176111720    mov AL, strict byte 034h                  ; b0 34
    1176211721    out strict byte 043h, AL                  ; e6 43
     
    1176811727    push 00afbh                               ; 68 fb 0a
    1176911728    push strict byte 00002h                   ; 6a 02
    11770     call 01966h                               ; e8 bb 9b
     11729    call 01966h                               ; e8 33 9c
    1177111730    add sp, strict byte 00006h                ; 83 c4 06
    1177211731    mov bx, dx                                ; 89 d3
    1177311732    test bx, bx                               ; 85 db
    11774     jbe short 07dcbh                          ; 76 17
     11733    jbe short 07d53h                          ; 76 17
    1177511734    push bx                                   ; 53
    1177611735    push 00b19h                               ; 68 19 0b
    1177711736    push strict byte 00002h                   ; 6a 02
    11778     call 01966h                               ; e8 a9 9b
     11737    call 01966h                               ; e8 21 9c
    1177911738    add sp, strict byte 00006h                ; 83 c4 06
    1178011739    xor dx, dx                                ; 31 d2
    1178111740    mov ax, strict word 00040h                ; b8 40 00
    11782     call 07928h                               ; e8 60 fb
     11741    call 078afh                               ; e8 5f fb
    1178311742    dec bx                                    ; 4b
    11784     jmp short 07db0h                          ; eb e5
     11743    jmp short 07d38h                          ; eb e5
    1178511744    push 00a49h                               ; 68 49 0a
    1178611745    push strict byte 00002h                   ; 6a 02
    11787     call 01966h                               ; e8 93 9b
     11746    call 01966h                               ; e8 0b 9c
    1178811747    add sp, strict byte 00004h                ; 83 c4 04
    1178911748    mov AL, strict byte 034h                  ; b0 34
     
    1179311752    out strict byte 040h, AL                  ; e6 40
    1179411753    out strict byte 040h, AL                  ; e6 40
    11795     pushad                                    ; 66 60
     11754    push bp                                   ; 55
    1179611755    push DS                                   ; 1e
    1179711756    mov ds, ax                                ; 8e d8
    11798     call 0edbfh                               ; e8 d7 6f
     11757    call 0edbfh                               ; e8 50 70
    1179911758    pop DS                                    ; 1f
    11800     popad                                     ; 66 61
    11801     lea sp, [bp-004h]                         ; 8d 66 fc
     11759    pop bp                                    ; 5d
     11760    lea sp, [bp-00ah]                         ; 8d 66 f6
     11761    pop di                                    ; 5f
     11762    pop si                                    ; 5e
    1180211763    pop dx                                    ; 5a
     11764    pop cx                                    ; 59
    1180311765    pop bx                                    ; 5b
    1180411766    pop bp                                    ; 5d
    1180511767    retn                                      ; c3
    11806 scsi_cmd_data_in_:                           ; 0xf7df2 LB 0xd5
     11768scsi_cmd_data_in_:                           ; 0xf7d7b LB 0xd5
    1180711769    push bp                                   ; 55
    1180811770    mov bp, sp                                ; 89 e5
     
    1182011782    ; sub ah, ah                                ; 2a e4
    1182111783    test AL, strict byte 001h                 ; a8 01
    11822     jne short 07e08h                          ; 75 f7
     11784    jne short 07d91h                          ; 75 f7
    1182311785    mov al, byte [bp+004h]                    ; 8a 46 04
    1182411786    cmp AL, strict byte 010h                  ; 3c 10
    11825     jne short 07e1ch                          ; 75 04
     11787    jne short 07da5h                          ; 75 04
    1182611788    xor ax, ax                                ; 31 c0
    11827     jmp short 07e1eh                          ; eb 02
     11789    jmp short 07da7h                          ; eb 02
    1182811790    xor ah, ah                                ; 30 e4
    1182911791    mov di, ax                                ; 89 c7
     
    1183311795    shr dx, 1                                 ; d1 ea
    1183411796    rcr ax, 1                                 ; d1 d8
    11835     loop 07e28h                               ; e2 fa
     11797    loop 07db1h                               ; e2 fa
    1183611798    mov cx, ax                                ; 89 c1
    1183711799    and cx, 000f0h                            ; 81 e1 f0 00
     
    1185111813    shr dx, 1                                 ; d1 ea
    1185211814    rcr ax, 1                                 ; d1 d8
    11853     loop 07e4dh                               ; e2 fa
     11815    loop 07dd6h                               ; e2 fa
    1185411816    mov dx, si                                ; 89 f2
    1185511817    out DX, AL                                ; ee
     
    1185811820    xor ah, ah                                ; 30 e4
    1185911821    cmp cx, ax                                ; 39 c1
    11860     jnc short 07e6fh                          ; 73 0e
     11822    jnc short 07df8h                          ; 73 0e
    1186111823    les di, [bp-00ah]                         ; c4 7e f6
    1186211824    add di, cx                                ; 01 cf
     
    1186511827    out DX, AL                                ; ee
    1186611828    inc cx                                    ; 41
    11867     jmp short 07e58h                          ; eb e9
     11829    jmp short 07de1h                          ; eb e9
    1186811830    mov dx, si                                ; 89 f2
    1186911831    in AL, DX                                 ; ec
     
    1187111833    ; sub ah, ah                                ; 2a e4
    1187211834    test AL, strict byte 001h                 ; a8 01
    11873     jne short 07e6fh                          ; 75 f7
     11835    jne short 07df8h                          ; 75 f7
    1187411836    test AL, strict byte 002h                 ; a8 02
    11875     je short 07e8ah                           ; 74 0e
     11837    je short 07e13h                           ; 74 0e
    1187611838    lea dx, [si+003h]                         ; 8d 54 03
    1187711839    xor al, al                                ; 30 c0
     
    1188111843    ; sub ah, ah                                ; 2a e4
    1188211844    mov di, strict word 00004h                ; bf 04 00
    11883     jmp short 07ebch                          ; eb 32
     11845    jmp short 07e45h                          ; eb 32
    1188411846    lea dx, [si+001h]                         ; 8d 54 01
    1188511847    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11886     jne short 07e99h                          ; 75 06
     11848    jne short 07e22h                          ; 75 06
    1188711849    cmp bx, 08000h                            ; 81 fb 00 80
    11888     jbe short 07eb3h                          ; 76 1a
     11850    jbe short 07e3ch                          ; 76 1a
    1188911851    mov cx, 08000h                            ; b9 00 80
    1189011852    les di, [bp+006h]                         ; c4 7e 06
     
    1189511857    add ax, 00800h                            ; 05 00 08
    1189611858    mov word [bp+008h], ax                    ; 89 46 08
    11897     jmp short 07e8ah                          ; eb d7
     11859    jmp short 07e13h                          ; eb d7
    1189811860    mov cx, bx                                ; 89 d9
    1189911861    les di, [bp+006h]                         ; c4 7e 06
     
    1190611868    pop bp                                    ; 5d
    1190711869    retn 0000ah                               ; c2 0a 00
    11908 scsi_cmd_data_out_:                          ; 0xf7ec7 LB 0xd5
     11870scsi_cmd_data_out_:                          ; 0xf7e50 LB 0xd5
    1190911871    push bp                                   ; 55
    1191011872    mov bp, sp                                ; 89 e5
     
    1192211884    ; sub ah, ah                                ; 2a e4
    1192311885    test AL, strict byte 001h                 ; a8 01
    11924     jne short 07eddh                          ; 75 f7
     11886    jne short 07e66h                          ; 75 f7
    1192511887    mov al, byte [bp+004h]                    ; 8a 46 04
    1192611888    cmp AL, strict byte 010h                  ; 3c 10
    11927     jne short 07ef1h                          ; 75 04
     11889    jne short 07e7ah                          ; 75 04
    1192811890    xor ax, ax                                ; 31 c0
    11929     jmp short 07ef3h                          ; eb 02
     11891    jmp short 07e7ch                          ; eb 02
    1193011892    xor ah, ah                                ; 30 e4
    1193111893    mov si, ax                                ; 89 c6
     
    1193511897    shr dx, 1                                 ; d1 ea
    1193611898    rcr ax, 1                                 ; d1 d8
    11937     loop 07efdh                               ; e2 fa
     11899    loop 07e86h                               ; e2 fa
    1193811900    mov cx, ax                                ; 89 c1
    1193911901    and cx, 000f0h                            ; 81 e1 f0 00
     
    1195311915    shr dx, 1                                 ; d1 ea
    1195411916    rcr ax, 1                                 ; d1 d8
    11955     loop 07f22h                               ; e2 fa
     11917    loop 07eabh                               ; e2 fa
    1195611918    mov dx, di                                ; 89 fa
    1195711919    out DX, AL                                ; ee
     
    1196011922    xor ah, ah                                ; 30 e4
    1196111923    cmp cx, ax                                ; 39 c1
    11962     jnc short 07f44h                          ; 73 0e
     11924    jnc short 07ecdh                          ; 73 0e
    1196311925    les si, [bp-00ah]                         ; c4 76 f6
    1196411926    add si, cx                                ; 01 ce
     
    1196711929    out DX, AL                                ; ee
    1196811930    inc cx                                    ; 41
    11969     jmp short 07f2dh                          ; eb e9
     11931    jmp short 07eb6h                          ; eb e9
    1197011932    lea dx, [di+001h]                         ; 8d 55 01
    1197111933    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11972     jne short 07f53h                          ; 75 06
     11934    jne short 07edch                          ; 75 06
    1197311935    cmp bx, 08000h                            ; 81 fb 00 80
    11974     jbe short 07f6eh                          ; 76 1b
     11936    jbe short 07ef7h                          ; 76 1b
    1197511937    mov cx, 08000h                            ; b9 00 80
    1197611938    les si, [bp+006h]                         ; c4 76 06
     
    1198211944    add ax, 00800h                            ; 05 00 08
    1198311945    mov word [bp+008h], ax                    ; 89 46 08
    11984     jmp short 07f44h                          ; eb d6
     11946    jmp short 07ecdh                          ; eb d6
    1198511947    mov cx, bx                                ; 89 d9
    1198611948    les si, [bp+006h]                         ; c4 76 06
     
    1199211954    ; sub ah, ah                                ; 2a e4
    1199311955    test AL, strict byte 001h                 ; a8 01
    11994     jne short 07f76h                          ; 75 f7
     11956    jne short 07effh                          ; 75 f7
    1199511957    test AL, strict byte 002h                 ; a8 02
    11996     je short 07f91h                           ; 74 0e
     11958    je short 07f1ah                           ; 74 0e
    1199711959    lea dx, [di+003h]                         ; 8d 55 03
    1199811960    xor al, al                                ; 30 c0
     
    1200211964    ; sub ah, ah                                ; 2a e4
    1200311965    mov ax, strict word 00004h                ; b8 04 00
    12004     jmp short 07f93h                          ; eb 02
     11966    jmp short 07f1ch                          ; eb 02
    1200511967    xor ax, ax                                ; 31 c0
    1200611968    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1200911971    pop bp                                    ; 5d
    1201011972    retn 0000ah                               ; c2 0a 00
    12011 @scsi_read_sectors:                          ; 0xf7f9c LB 0xe0
     11973@scsi_read_sectors:                          ; 0xf7f25 LB 0xe0
    1201211974    push bp                                   ; 55
    1201311975    mov bp, sp                                ; 89 e5
     
    1202111983    mov byte [bp-006h], al                    ; 88 46 fa
    1202211984    cmp AL, strict byte 004h                  ; 3c 04
    12023     jbe short 07fc8h                          ; 76 11
     11985    jbe short 07f51h                          ; 76 11
    1202411986    xor ah, ah                                ; 30 e4
    1202511987    push ax                                   ; 50
     
    1202711989    push 00b30h                               ; 68 30 0b
    1202811990    push strict byte 00007h                   ; 6a 07
    12029     call 01966h                               ; e8 a1 99
     11991    call 01966h                               ; e8 18 9a
    1203011992    add sp, strict byte 00008h                ; 83 c4 08
    1203111993    mov es, [bp+006h]                         ; 8e 46 06
     
    1206712029    sal word [bp-00ah], 1                     ; d1 66 f6
    1206812030    rcl word [bp-008h], 1                     ; d1 56 f8
    12069     loop 08032h                               ; e2 f8
     12031    loop 07fbbh                               ; e2 f8
    1207012032    push word [bp-008h]                       ; ff 76 f8
    1207112033    push word [bp-00ah]                       ; ff 76 f6
     
    1207612038    mov cx, ss                                ; 8c d1
    1207712039    lea bx, [bp-01ah]                         ; 8d 5e e6
    12078     call 07df2h                               ; e8 9e fd
     12040    call 07d7bh                               ; e8 9e fd
    1207912041    mov ah, al                                ; 88 c4
    1208012042    test al, al                               ; 84 c0
    12081     jne short 0806fh                          ; 75 15
     12043    jne short 07ff8h                          ; 75 15
    1208212044    mov es, [bp+006h]                         ; 8e 46 06
    1208312045    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1209312055    pop bp                                    ; 5d
    1209412056    retn 00004h                               ; c2 04 00
    12095 @scsi_write_sectors:                         ; 0xf807c LB 0xe0
     12057@scsi_write_sectors:                         ; 0xf8005 LB 0xe0
    1209612058    push bp                                   ; 55
    1209712059    mov bp, sp                                ; 89 e5
     
    1210512067    mov byte [bp-006h], al                    ; 88 46 fa
    1210612068    cmp AL, strict byte 004h                  ; 3c 04
    12107     jbe short 080a8h                          ; 76 11
     12069    jbe short 08031h                          ; 76 11
    1210812070    xor ah, ah                                ; 30 e4
    1210912071    push ax                                   ; 50
     
    1211112073    push 00b30h                               ; 68 30 0b
    1211212074    push strict byte 00007h                   ; 6a 07
    12113     call 01966h                               ; e8 c1 98
     12075    call 01966h                               ; e8 38 99
    1211412076    add sp, strict byte 00008h                ; 83 c4 08
    1211512077    mov es, [bp+006h]                         ; 8e 46 06
     
    1215112113    sal word [bp-00ah], 1                     ; d1 66 f6
    1215212114    rcl word [bp-008h], 1                     ; d1 56 f8
    12153     loop 08112h                               ; e2 f8
     12115    loop 0809bh                               ; e2 f8
    1215412116    push word [bp-008h]                       ; ff 76 f8
    1215512117    push word [bp-00ah]                       ; ff 76 f6
     
    1216012122    mov cx, ss                                ; 8c d1
    1216112123    lea bx, [bp-01ah]                         ; 8d 5e e6
    12162     call 07ec7h                               ; e8 93 fd
     12124    call 07e50h                               ; e8 93 fd
    1216312125    mov ah, al                                ; 88 c4
    1216412126    test al, al                               ; 84 c0
    12165     jne short 0814fh                          ; 75 15
     12127    jne short 080d8h                          ; 75 15
    1216612128    mov es, [bp+006h]                         ; 8e 46 06
    1216712129    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1217712139    pop bp                                    ; 5d
    1217812140    retn 00004h                               ; c2 04 00
    12179 scsi_cmd_packet_:                            ; 0xf815c LB 0x168
     12141scsi_cmd_packet_:                            ; 0xf80e5 LB 0x168
    1218012142    push bp                                   ; 55
    1218112143    mov bp, sp                                ; 89 e5
     
    1218912151    mov dx, strict word 0000eh                ; ba 0e 00
    1219012152    mov ax, strict word 00040h                ; b8 40 00
    12191     call 0166ch                               ; e8 f4 94
     12153    call 0166ch                               ; e8 6b 95
    1219212154    mov si, 00122h                            ; be 22 01
    1219312155    mov word [bp-00ah], ax                    ; 89 46 f6
    1219412156    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12195     jne short 081a3h                          ; 75 1f
     12157    jne short 0812ch                          ; 75 1f
    1219612158    mov bx, 00da0h                            ; bb a0 0d
    1219712159    mov cx, ds                                ; 8c d9
    1219812160    mov ax, strict word 00004h                ; b8 04 00
    12199     call 01923h                               ; e8 94 97
     12161    call 01923h                               ; e8 0b 98
    1220012162    push 00b62h                               ; 68 62 0b
    1220112163    push 00b72h                               ; 68 72 0b
    1220212164    push strict byte 00004h                   ; 6a 04
    12203     call 01966h                               ; e8 cc 97
     12165    call 01966h                               ; e8 43 98
    1220412166    add sp, strict byte 00006h                ; 83 c4 06
    1220512167    mov dx, strict word 00001h                ; ba 01 00
    12206     jmp near 082b9h                           ; e9 16 01
     12168    jmp near 08242h                           ; e9 16 01
    1220712169    sub di, strict byte 00008h                ; 83 ef 08
    1220812170    sal di, 002h                              ; c1 e7 02
     
    1221812180    ; sub ah, ah                                ; 2a e4
    1221912181    test AL, strict byte 001h                 ; a8 01
    12220     jne short 081bfh                          ; 75 f7
     12182    jne short 08148h                          ; 75 f7
    1222112183    xor ax, ax                                ; 31 c0
    1222212184    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1223412196    shr dx, 1                                 ; d1 ea
    1223512197    rcr ax, 1                                 ; d1 d8
    12236     loop 081eah                               ; e2 fa
     12198    loop 08173h                               ; e2 fa
    1223712199    and ax, 000f0h                            ; 25 f0 00
    1223812200    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1225312215    shr dx, 1                                 ; d1 ea
    1225412216    rcr ax, 1                                 ; d1 d8
    12255     loop 08212h                               ; e2 fa
     12217    loop 0819bh                               ; e2 fa
    1225612218    mov dx, bx                                ; 89 da
    1225712219    out DX, AL                                ; ee
     
    1226012222    xor ah, ah                                ; 30 e4
    1226112223    cmp cx, ax                                ; 39 c1
    12262     jnc short 08234h                          ; 73 0e
     12224    jnc short 081bdh                          ; 73 0e
    1226312225    les di, [bp-00eh]                         ; c4 7e f2
    1226412226    add di, cx                                ; 01 cf
     
    1226712229    out DX, AL                                ; ee
    1226812230    inc cx                                    ; 41
    12269     jmp short 0821dh                          ; eb e9
     12231    jmp short 081a6h                          ; eb e9
    1227012232    mov dx, bx                                ; 89 da
    1227112233    in AL, DX                                 ; ec
     
    1227312235    ; sub ah, ah                                ; 2a e4
    1227412236    test AL, strict byte 001h                 ; a8 01
    12275     jne short 08234h                          ; 75 f7
     12237    jne short 081bdh                          ; 75 f7
    1227612238    test AL, strict byte 002h                 ; a8 02
    12277     je short 0824fh                           ; 74 0e
     12239    je short 081d8h                           ; 74 0e
    1227812240    lea dx, [bx+003h]                         ; 8d 57 03
    1227912241    xor al, al                                ; 30 c0
     
    1228312245    ; sub ah, ah                                ; 2a e4
    1228412246    mov dx, strict word 00003h                ; ba 03 00
    12285     jmp short 082b9h                          ; eb 6a
     12247    jmp short 08242h                          ; eb 6a
    1228612248    mov ax, word [bp+004h]                    ; 8b 46 04
    1228712249    test ax, ax                               ; 85 c0
    12288     je short 0825eh                           ; 74 08
     12250    je short 081e7h                           ; 74 08
    1228912251    lea dx, [bx+001h]                         ; 8d 57 01
    1229012252    mov cx, ax                                ; 89 c1
    1229112253    in AL, DX                                 ; ec
    12292     loop 0825bh                               ; e2 fd
     12254    loop 081e4h                               ; e2 fd
    1229312255    mov ax, word [bp+006h]                    ; 8b 46 06
    1229412256    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1229812260    lea ax, [bx+001h]                         ; 8d 47 01
    1229912261    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12300     jne short 0827fh                          ; 75 07
     12262    jne short 08208h                          ; 75 07
    1230112263    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12302     jbe short 0829ch                          ; 76 1d
     12264    jbe short 08225h                          ; 76 1d
    1230312265    mov dx, ax                                ; 89 c2
    1230412266    mov cx, 08000h                            ; b9 00 80
     
    1231012272    add ax, 00800h                            ; 05 00 08
    1231112273    mov word [bp+00eh], ax                    ; 89 46 0e
    12312     jmp short 0826fh                          ; eb d3
     12274    jmp short 081f8h                          ; eb d3
    1231312275    mov dx, ax                                ; 89 c2
    1231412276    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1231712279    mov es, [bp-00ah]                         ; 8e 46 f6
    1231812280    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12319     je short 082b7h                           ; 74 07
     12281    je short 08240h                           ; 74 07
    1232012282    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1232112283    in AL, DX                                 ; ec
    12322     loop 082b4h                               ; e2 fd
     12284    loop 0823dh                               ; e2 fd
    1232312285    xor dx, dx                                ; 31 d2
    1232412286    mov ax, dx                                ; 89 d0
     
    1232812290    pop bp                                    ; 5d
    1232912291    retn 0000ch                               ; c2 0c 00
    12330 scsi_enumerate_attached_devices_:            ; 0xf82c4 LB 0x4a6
     12292scsi_enumerate_attached_devices_:            ; 0xf824d LB 0x4a6
    1233112293    push bp                                   ; 55
    1233212294    mov bp, sp                                ; 89 e5
     
    1234012302    mov dx, strict word 0000eh                ; ba 0e 00
    1234112303    mov ax, strict word 00040h                ; b8 40 00
    12342     call 0166ch                               ; e8 92 93
     12304    call 0166ch                               ; e8 09 94
    1234312305    mov di, 00122h                            ; bf 22 01
    1234412306    mov word [bp-020h], ax                    ; 89 46 e0
    1234512307    mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
    12346     jmp near 086e8h                           ; e9 00 04
     12308    jmp near 08671h                           ; e9 00 04
    1234712309    cmp AL, strict byte 004h                  ; 3c 04
    12348     jc short 082efh                           ; 72 03
    12349     jmp near 08760h                           ; e9 71 04
     12310    jc short 08278h                           ; 72 03
     12311    jmp near 086e9h                           ; e9 71 04
    1235012312    mov cx, strict word 00010h                ; b9 10 00
    1235112313    xor bx, bx                                ; 31 db
    1235212314    mov dx, ss                                ; 8c d2
    1235312315    lea ax, [bp-046h]                         ; 8d 46 ba
    12354     call 0a03ah                               ; e8 3e 1d
     12316    call 09fbah                               ; e8 35 1d
    1235512317    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1235612318    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1236712329    lea bx, [bp-046h]                         ; 8d 5e ba
    1236812330    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12369     call 07df2h                               ; e8 cd fa
     12331    call 07d7bh                               ; e8 cd fa
    1237012332    test al, al                               ; 84 c0
    12371     je short 08337h                           ; 74 0e
     12333    je short 082c0h                           ; 74 0e
    1237212334    push 00b92h                               ; 68 92 0b
    1237312335    push 00bcbh                               ; 68 cb 0b
    1237412336    push strict byte 00007h                   ; 6a 07
    12375     call 01966h                               ; e8 32 96
     12337    call 01966h                               ; e8 a9 96
    1237612338    add sp, strict byte 00006h                ; 83 c4 06
    1237712339    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1240512367    sal ax, 1                                 ; d1 e0
    1240612368    rcl dx, 1                                 ; d1 d2
    12407     loop 08386h                               ; e2 fa
     12369    loop 0830fh                               ; e2 fa
    1240812370    or bx, ax                                 ; 09 c3
    1240912371    or dx, si                                 ; 09 f2
     
    1241312375    mov word [bp-028h], bx                    ; 89 5e d8
    1241412376    test dx, dx                               ; 85 d2
    12415     jne short 083a5h                          ; 75 06
     12377    jne short 0832eh                          ; 75 06
    1241612378    cmp bx, 00200h                            ; 81 fb 00 02
    12417     je short 083c5h                           ; 74 20
     12379    je short 0834eh                           ; 74 20
    1241812380    mov bx, 00da0h                            ; bb a0 0d
    1241912381    mov cx, ds                                ; 8c d9
    1242012382    mov ax, strict word 00004h                ; b8 04 00
    12421     call 01923h                               ; e8 73 95
     12383    call 01923h                               ; e8 ea 95
    1242212384    push dx                                   ; 52
    1242312385    push word [bp-028h]                       ; ff 76 d8
     
    1242512387    push 00beah                               ; 68 ea 0b
    1242612388    push strict byte 00004h                   ; 6a 04
    12427     call 01966h                               ; e8 a7 95
     12389    call 01966h                               ; e8 1e 96
    1242812390    add sp, strict byte 0000ah                ; 83 c4 0a
    12429     jmp near 086dch                           ; e9 17 03
     12391    jmp near 08665h                           ; e9 17 03
    1243012392    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1243112393    cmp AL, strict byte 001h                  ; 3c 01
    12432     jc short 083d8h                           ; 72 0c
    12433     jbe short 083e0h                          ; 76 12
     12394    jc short 08361h                           ; 72 0c
     12395    jbe short 08369h                          ; 76 12
    1243412396    cmp AL, strict byte 003h                  ; 3c 03
    12435     je short 083e8h                           ; 74 16
     12397    je short 08371h                           ; 74 16
    1243612398    cmp AL, strict byte 002h                  ; 3c 02
    12437     je short 083e4h                           ; 74 0e
    12438     jmp short 08431h                          ; eb 59
     12399    je short 0836dh                           ; 74 0e
     12400    jmp short 083bah                          ; eb 59
    1243912401    test al, al                               ; 84 c0
    12440     jne short 08431h                          ; 75 55
     12402    jne short 083bah                          ; 75 55
    1244112403    mov BL, strict byte 090h                  ; b3 90
    12442     jmp short 083eah                          ; eb 0a
     12404    jmp short 08373h                          ; eb 0a
    1244312405    mov BL, strict byte 098h                  ; b3 98
    12444     jmp short 083eah                          ; eb 06
     12406    jmp short 08373h                          ; eb 06
    1244512407    mov BL, strict byte 0a0h                  ; b3 a0
    12446     jmp short 083eah                          ; eb 02
     12408    jmp short 08373h                          ; eb 02
    1244712409    mov BL, strict byte 0a8h                  ; b3 a8
    1244812410    mov cl, bl                                ; 88 d9
     
    1245012412    xor ch, ch                                ; 30 ed
    1245112413    mov ax, cx                                ; 89 c8
    12452     call 016ach                               ; e8 b6 92
     12414    call 016ach                               ; e8 2d 93
    1245312415    test al, al                               ; 84 c0
    12454     je short 08431h                           ; 74 37
     12416    je short 083bah                           ; 74 37
    1245512417    mov al, bl                                ; 88 d8
    1245612418    db  0feh, 0c0h
    1245712419    ; inc al                                    ; fe c0
    1245812420    xor ah, ah                                ; 30 e4
    12459     call 016ach                               ; e8 a9 92
     12421    call 016ach                               ; e8 20 93
    1246012422    xor ah, ah                                ; 30 e4
    1246112423    mov dx, ax                                ; 89 c2
    1246212424    sal dx, 008h                              ; c1 e2 08
    1246312425    mov al, bl                                ; 88 d8
    12464     call 016ach                               ; e8 9d 92
     12426    call 016ach                               ; e8 14 93
    1246512427    xor ah, ah                                ; 30 e4
    1246612428    add ax, dx                                ; 01 d0
     
    1247012432    add AL, strict byte 002h                  ; 04 02
    1247112433    xor ah, ah                                ; 30 e4
    12472     call 016ach                               ; e8 8d 92
     12434    call 016ach                               ; e8 04 93
    1247312435    xor ah, ah                                ; 30 e4
    1247412436    mov word [bp-018h], ax                    ; 89 46 e8
    1247512437    mov ax, cx                                ; 89 c8
    12476     call 016ach                               ; e8 83 92
     12438    call 016ach                               ; e8 fa 92
    1247712439    xor ah, ah                                ; 30 e4
    1247812440    mov word [bp-026h], ax                    ; 89 46 da
    12479     jmp near 0851fh                           ; e9 ee 00
     12441    jmp near 084a8h                           ; e9 ee 00
    1248012442    mov ax, word [bp-012h]                    ; 8b 46 ee
    1248112443    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1248312445    mov dx, word [bp-014h]                    ; 8b 56 ec
    1248412446    mov si, strict word 0000ch                ; be 0c 00
    12485     call 0a02ah                               ; e8 e7 1b
     12447    call 09faah                               ; e8 de 1b
    1248612448    mov word [bp-02ah], ax                    ; 89 46 d6
    1248712449    mov word [bp-016h], bx                    ; 89 5e ea
     
    1249012452    mov ax, word [bp-012h]                    ; 8b 46 ee
    1249112453    test ax, ax                               ; 85 c0
    12492     jnbe short 0846bh                         ; 77 15
    12493     je short 0845bh                           ; 74 03
    12494     jmp near 084e0h                           ; e9 85 00
     12454    jnbe short 083f4h                         ; 77 15
     12455    je short 083e4h                           ; 74 03
     12456    jmp near 08469h                           ; e9 85 00
    1249512457    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12496     jnbe short 0846bh                         ; 77 0a
    12497     jne short 08458h                          ; 75 f5
     12458    jnbe short 083f4h                         ; 77 0a
     12459    jne short 083e1h                          ; 75 f5
    1249812460    cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
    12499     jnbe short 0846bh                         ; 77 02
    12500     jne short 084e0h                          ; 75 75
     12461    jnbe short 083f4h                         ; 77 02
     12462    jne short 08469h                          ; 75 75
    1250112463    mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
    1250212464    mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
     
    1250512467    mov dx, word [bp-014h]                    ; 8b 56 ec
    1250612468    mov si, strict word 00006h                ; be 06 00
    12507     call 0a02ah                               ; e8 a6 1b
     12469    call 09faah                               ; e8 9d 1b
    1250812470    mov si, word [bp-01eh]                    ; 8b 76 e2
    1250912471    add si, dx                                ; 01 d6
     
    1252312485    mov dx, si                                ; 89 f2
    1252412486    mov si, strict word 00008h                ; be 08 00
    12525     call 0a02ah                               ; e8 76 1b
     12487    call 09faah                               ; e8 6d 1b
    1252612488    mov word [bp-02eh], bx                    ; 89 5e d2
    1252712489    mov word [bp-030h], cx                    ; 89 4e d0
     
    1253212494    mov dx, word [bp-036h]                    ; 8b 56 ca
    1253312495    mov si, strict word 00010h                ; be 10 00
    12534     call 0a02ah                               ; e8 5b 1b
     12496    call 09faah                               ; e8 52 1b
    1253512497    mov si, word [bp-032h]                    ; 8b 76 ce
    1253612498    add si, dx                                ; 01 d6
     
    1253912501    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1254012502    adc ax, bx                                ; 11 d8
    12541     jmp short 0851fh                          ; eb 3f
     12503    jmp short 084a8h                          ; eb 3f
    1254212504    test ax, ax                               ; 85 c0
    12543     jnbe short 084f6h                         ; 77 12
    12544     jne short 08502h                          ; 75 1c
     12505    jnbe short 0847fh                         ; 77 12
     12506    jne short 0848bh                          ; 75 1c
    1254512507    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12546     jnbe short 084f6h                         ; 77 0a
    12547     jne short 08502h                          ; 75 14
     12508    jnbe short 0847fh                         ; 77 0a
     12509    jne short 0848bh                          ; 75 14
    1254812510    cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
    12549     jnbe short 084f6h                         ; 77 02
    12550     jne short 08502h                          ; 75 0c
     12511    jnbe short 0847fh                         ; 77 02
     12512    jne short 0848bh                          ; 75 0c
    1255112513    mov word [bp-018h], 00080h                ; c7 46 e8 80 00
    1255212514    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
    12553     jmp short 0851bh                          ; eb 19
     12515    jmp short 084a4h                          ; eb 19
    1255412516    mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
    1255512517    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
     
    1255812520    mov dx, word [bp-014h]                    ; 8b 56 ec
    1255912521    mov si, strict word 0000bh                ; be 0b 00
    12560     call 0a02ah                               ; e8 0f 1b
     12522    call 09faah                               ; e8 06 1b
    1256112523    mov si, dx                                ; 89 d6
    1256212524    mov dx, cx                                ; 89 ca
     
    1259312555    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1259412556    test dx, dx                               ; 85 d2
    12595     jne short 08591h                          ; 75 06
     12557    jne short 0851ah                          ; 75 06
    1259612558    cmp si, 00400h                            ; 81 fe 00 04
    12597     jbe short 0859fh                          ; 76 0e
     12559    jbe short 08528h                          ; 76 0e
    1259812560    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1259912561    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12600     jmp short 085a7h                          ; eb 08
     12562    jmp short 08530h                          ; eb 08
    1260112563    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1260212564    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1260412566    mov cx, ds                                ; 8c d9
    1260512567    mov ax, strict word 00004h                ; b8 04 00
    12606     call 01923h                               ; e8 71 93
     12568    call 01923h                               ; e8 e8 93
    1260712569    push word [bp-012h]                       ; ff 76 ee
    1260812570    push word [bp-010h]                       ; ff 76 f0
     
    1261912581    push 00c18h                               ; 68 18 0c
    1262012582    push strict byte 00004h                   ; 6a 04
    12621     call 01966h                               ; e8 8f 93
     12583    call 01966h                               ; e8 06 94
    1262212584    add sp, strict byte 00018h                ; 83 c4 18
    1262312585    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1264712609    mov dx, strict word 00075h                ; ba 75 00
    1264812610    mov ax, strict word 00040h                ; b8 40 00
    12649     call 01650h                               ; e8 25 90
     12611    call 01650h                               ; e8 9c 90
    1265012612    mov bl, al                                ; 88 c3
    1265112613    db  0feh, 0c3h
     
    1265412616    mov dx, strict word 00075h                ; ba 75 00
    1265512617    mov ax, strict word 00040h                ; b8 40 00
    12656     call 0165eh                               ; e8 24 90
     12618    call 0165eh                               ; e8 9b 90
    1265712619    inc byte [bp-00ch]                        ; fe 46 f4
    12658     jmp near 086d1h                           ; e9 91 00
     12620    jmp near 0865ah                           ; e9 91 00
    1265912621    mov bx, 00da0h                            ; bb a0 0d
    1266012622    mov cx, ds                                ; 8c d9
    1266112623    mov ax, strict word 00004h                ; b8 04 00
    12662     call 01923h                               ; e8 d8 92
     12624    call 01923h                               ; e8 4f 93
    1266312625    push word [bp-022h]                       ; ff 76 de
    1266412626    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1266712629    push 00c46h                               ; 68 46 0c
    1266812630    push strict byte 00004h                   ; 6a 04
    12669     call 01966h                               ; e8 0a 93
     12631    call 01966h                               ; e8 81 93
    1267012632    add sp, strict byte 00008h                ; 83 c4 08
    1267112633    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1267312635    mov byte [bp-00eh], al                    ; 88 46 f2
    1267412636    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
    12675     je short 08673h                           ; 74 05
     12637    je short 085fch                           ; 74 05
    1267612638    mov dx, strict word 00001h                ; ba 01 00
    12677     jmp short 08675h                          ; eb 02
     12639    jmp short 085feh                          ; eb 02
    1267812640    xor dx, dx                                ; 31 d2
    1267912641    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1271112673    inc word [bp-022h]                        ; ff 46 de
    1271212674    cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
    12713     jl short 086e8h                           ; 7c 03
    12714     jmp near 08760h                           ; e9 78 00
     12675    jl short 08671h                           ; 7c 03
     12676    jmp near 086e9h                           ; e9 78 00
    1271512677    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1271612678    xor al, al                                ; 30 c0
     
    1273112693    lea bx, [bp-046h]                         ; 8d 5e ba
    1273212694    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12733     call 07df2h                               ; e8 d7 f6
     12695    call 07d7bh                               ; e8 d7 f6
    1273412696    test al, al                               ; 84 c0
    12735     je short 0872dh                           ; 74 0e
     12697    je short 086b6h                           ; 74 0e
    1273612698    push 00b92h                               ; 68 92 0b
    1273712699    push 00bb2h                               ; 68 b2 0b
    1273812700    push strict byte 00007h                   ; 6a 07
    12739     call 01966h                               ; e8 3c 92
     12701    call 01966h                               ; e8 b3 92
    1274012702    add sp, strict byte 00006h                ; 83 c4 06
    1274112703    mov es, [bp-020h]                         ; 8e 46 e0
     
    1274312705    mov byte [bp-00ch], al                    ; 88 46 f4
    1274412706    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12745     jne short 08749h                          ; 75 0a
     12707    jne short 086d2h                          ; 75 0a
    1274612708    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12747     jne short 08749h                          ; 75 03
    12748     jmp near 082e8h                           ; e9 9f fb
     12709    jne short 086d2h                          ; 75 03
     12710    jmp near 08271h                           ; e9 9f fb
    1274912711    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12750     jne short 086d1h                          ; 75 81
     12712    jne short 0865ah                          ; 75 81
    1275112713    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1275212714    and AL, strict byte 01fh                  ; 24 1f
    1275312715    cmp AL, strict byte 005h                  ; 3c 05
    12754     jne short 0875dh                          ; 75 03
    12755     jmp near 08640h                           ; e9 e3 fe
    12756     jmp near 086d1h                           ; e9 71 ff
     12716    jne short 086e6h                          ; 75 03
     12717    jmp near 085c9h                           ; e9 e3 fe
     12718    jmp near 0865ah                           ; e9 71 ff
    1275712719    lea sp, [bp-00ah]                         ; 8d 66 f6
    1275812720    pop di                                    ; 5f
     
    1276312725    pop bp                                    ; 5d
    1276412726    retn                                      ; c3
    12765 _scsi_init:                                  ; 0xf876a LB 0x66
     12727_scsi_init:                                  ; 0xf86f3 LB 0x66
    1276612728    push bp                                   ; 55
    1276712729    mov bp, sp                                ; 89 e5
    1276812730    mov dx, strict word 0000eh                ; ba 0e 00
    1276912731    mov ax, strict word 00040h                ; b8 40 00
    12770     call 0166ch                               ; e8 f6 8e
     12732    call 0166ch                               ; e8 6d 8f
    1277112733    mov bx, 00122h                            ; bb 22 01
    1277212734    mov es, ax                                ; 8e c0
     
    1277912741    ; sub ah, ah                                ; 2a e4
    1278012742    cmp AL, strict byte 055h                  ; 3c 55
    12781     jne short 0879ah                          ; 75 0c
     12743    jne short 08723h                          ; 75 0c
    1278212744    xor al, al                                ; 30 c0
    1278312745    mov dx, 00433h                            ; ba 33 04
    1278412746    out DX, AL                                ; ee
    1278512747    mov ax, 00430h                            ; b8 30 04
    12786     call 082c4h                               ; e8 2a fb
     12748    call 0824dh                               ; e8 2a fb
    1278712749    mov AL, strict byte 055h                  ; b0 55
    1278812750    mov dx, 00436h                            ; ba 36 04
     
    1279212754    ; sub ah, ah                                ; 2a e4
    1279312755    cmp AL, strict byte 055h                  ; 3c 55
    12794     jne short 087b3h                          ; 75 0c
     12756    jne short 0873ch                          ; 75 0c
    1279512757    xor al, al                                ; 30 c0
    1279612758    mov dx, 00437h                            ; ba 37 04
    1279712759    out DX, AL                                ; ee
    1279812760    mov ax, 00434h                            ; b8 34 04
    12799     call 082c4h                               ; e8 11 fb
     12761    call 0824dh                               ; e8 11 fb
    1280012762    mov AL, strict byte 055h                  ; b0 55
    1280112763    mov dx, 0043ah                            ; ba 3a 04
     
    1280512767    ; sub ah, ah                                ; 2a e4
    1280612768    cmp AL, strict byte 055h                  ; 3c 55
    12807     jne short 087cch                          ; 75 0c
     12769    jne short 08755h                          ; 75 0c
    1280812770    xor al, al                                ; 30 c0
    1280912771    mov dx, 0043bh                            ; ba 3b 04
    1281012772    out DX, AL                                ; ee
    1281112773    mov ax, 00438h                            ; b8 38 04
    12812     call 082c4h                               ; e8 f8 fa
     12774    call 0824dh                               ; e8 f8 fa
    1281312775    mov sp, bp                                ; 89 ec
    1281412776    pop bp                                    ; 5d
    1281512777    retn                                      ; c3
    12816 ahci_ctrl_extract_bits_:                     ; 0xf87d0 LB 0x1c
     12778ahci_ctrl_extract_bits_:                     ; 0xf8759 LB 0x1c
    1281712779    push si                                   ; 56
    1281812780    push bp                                   ; 55
     
    1282312785    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1282412786    xor ch, ch                                ; 30 ed
    12825     jcxz 087e7h                               ; e3 06
     12787    jcxz 08770h                               ; e3 06
    1282612788    shr dx, 1                                 ; d1 ea
    1282712789    rcr ax, 1                                 ; d1 d8
    12828     loop 087e1h                               ; e2 fa
     12790    loop 0876ah                               ; e2 fa
    1282912791    pop bp                                    ; 5d
    1283012792    pop si                                    ; 5e
    1283112793    retn 00002h                               ; c2 02 00
    12832 ahci_addr_to_phys_:                          ; 0xf87ec LB 0x1e
     12794ahci_addr_to_phys_:                          ; 0xf8775 LB 0x1e
    1283312795    push bx                                   ; 53
    1283412796    push cx                                   ; 51
     
    1284112803    sal ax, 1                                 ; d1 e0
    1284212804    rcl dx, 1                                 ; d1 d2
    12843     loop 087fah                               ; e2 fa
     12805    loop 08783h                               ; e2 fa
    1284412806    xor cx, cx                                ; 31 c9
    1284512807    add ax, bx                                ; 01 d8
     
    1284912811    pop bx                                    ; 5b
    1285012812    retn                                      ; c3
    12851 ahci_port_cmd_sync_:                         ; 0xf880a LB 0x156
     12813ahci_port_cmd_sync_:                         ; 0xf8793 LB 0x156
    1285212814    push bp                                   ; 55
    1285312815    mov bp, sp                                ; 89 e5
     
    1286412826    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1286512827    cmp AL, strict byte 0ffh                  ; 3c ff
    12866     jne short 0882dh                          ; 75 03
    12867     jmp near 08958h                           ; e9 2b 01
     12828    jne short 087b6h                          ; 75 03
     12829    jmp near 088e1h                           ; e9 2b 01
    1286812830    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1286912831    xor ah, ah                                ; 30 e4
     
    1287812840    lea ax, [si+00080h]                       ; 8d 84 80 00
    1287912841    mov dx, cx                                ; 89 ca
    12880     call 087ech                               ; e8 92 ff
     12842    call 08775h                               ; e8 92 ff
    1288112843    mov es, cx                                ; 8e c1
    1288212844    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1294412906    xchg dx, ax                               ; 92
    1294512907    test dh, 040h                             ; f6 c6 40
    12946     jne short 088ebh                          ; 75 04
     12908    jne short 08874h                          ; 75 04
    1294712909    test AL, strict byte 001h                 ; a8 01
    12948     je short 088efh                           ; 74 04
     12910    je short 08878h                           ; 74 04
    1294912911    mov AL, strict byte 001h                  ; b0 01
    12950     jmp short 088f1h                          ; eb 02
     12912    jmp short 0887ah                          ; eb 02
    1295112913    xor al, al                                ; 30 c0
    1295212914    test al, al                               ; 84 c0
    12953     je short 088beh                           ; 74 c9
     12915    je short 08847h                           ; 74 c9
    1295412916    mov al, byte [bp-008h]                    ; 8a 46 f8
    1295512917    xor ah, ah                                ; 30 e4
     
    1300712969    pop bp                                    ; 5d
    1300812970    retn                                      ; c3
    13009 ahci_cmd_data_:                              ; 0xf8960 LB 0x267
     12971ahci_cmd_data_:                              ; 0xf88e9 LB 0x267
    1301012972    push bp                                   ; 55
    1301112973    mov bp, sp                                ; 89 e5
     
    1303212994    mov ax, 00080h                            ; b8 80 00
    1303312995    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13034     call 0a03ah                               ; e8 9c 16
     12996    call 09fbah                               ; e8 93 16
    1303512997    mov es, [bp-00ah]                         ; 8e 46 f6
    1303612998    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1305013012    mov dx, word [es:si]                      ; 26 8b 14
    1305113013    mov si, strict word 00008h                ; be 08 00
    13052     call 0a02ah                               ; e8 48 16
     13014    call 09faah                               ; e8 3f 16
    1305313015    mov es, [bp-00ah]                         ; 8e 46 f6
    1305413016    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1306113023    mov dx, word [es:si]                      ; 26 8b 14
    1306213024    mov si, strict word 00010h                ; be 10 00
    13063     call 0a02ah                               ; e8 22 16
     13025    call 09faah                               ; e8 19 16
    1306413026    mov es, [bp-00ah]                         ; 8e 46 f6
    1306513027    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1307313035    mov dx, word [es:si]                      ; 26 8b 14
    1307413036    mov si, strict word 00018h                ; be 18 00
    13075     call 0a02ah                               ; e8 f6 15
     13037    call 09faah                               ; e8 ed 15
    1307613038    mov es, [bp-00ah]                         ; 8e 46 f6
    1307713039    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1308413046    mov dx, word [es:si]                      ; 26 8b 14
    1308513047    mov si, strict word 00020h                ; be 20 00
    13086     call 0a02ah                               ; e8 d0 15
     13048    call 09faah                               ; e8 c7 15
    1308713049    mov es, [bp-00ah]                         ; 8e 46 f6
    1308813050    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1309513057    mov dx, word [es:si]                      ; 26 8b 14
    1309613058    mov si, strict word 00028h                ; be 28 00
    13097     call 0a02ah                               ; e8 aa 15
     13059    call 09faah                               ; e8 a1 15
    1309813060    mov es, [bp-00ah]                         ; 8e 46 f6
    1309913061    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1310913071    mov bx, word [bp-010h]                    ; 8b 5e f0
    1311013072    xor cx, cx                                ; 31 c9
    13111     call 09fe9h                               ; e8 34 15
     13073    call 09f69h                               ; e8 2b 15
    1311213074    push dx                                   ; 52
    1311313075    push ax                                   ; 50
     
    1311913081    mov ax, 0026ah                            ; b8 6a 02
    1312013082    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13121     call 09f01h                               ; e8 30 14
     13083    call 09e85h                               ; e8 2b 14
    1312213084    mov es, [bp-00ah]                         ; 8e 46 f6
    1312313085    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1314213104    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1314313105    test ax, ax                               ; 85 c0
    13144     je short 08b63h                           ; 74 3b
     13106    je short 08aech                           ; 74 3b
    1314513107    dec ax                                    ; 48
    1314613108    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1316013122    mov al, byte [bp-008h]                    ; 8a 46 f8
    1316113123    cmp AL, strict byte 035h                  ; 3c 35
    13162     jne short 08b70h                          ; 75 06
     13124    jne short 08af9h                          ; 75 06
    1316313125    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13164     jmp short 08b87h                          ; eb 17
     13126    jmp short 08b10h                          ; eb 17
    1316513127    cmp AL, strict byte 0a0h                  ; 3c a0
    13166     jne short 08b83h                          ; 75 0f
     13128    jne short 08b0ch                          ; 75 0f
    1316713129    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1316813130    les bx, [bp-00eh]                         ; c4 5e f2
    1316913131    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13170     jmp short 08b87h                          ; eb 04
     13132    jmp short 08b10h                          ; eb 04
    1317113133    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1317213134    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1317513137    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1317613138    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13177     call 0880ah                               ; e8 71 fc
     13139    call 08793h                               ; e8 71 fc
    1317813140    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1317913141    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1318213144    add ax, 0026ah                            ; 05 6a 02
    1318313145    mov dx, cx                                ; 89 ca
    13184     call 09f78h                               ; e8 ca 13
     13146    call 09efch                               ; e8 c5 13
    1318513147    mov es, cx                                ; 8e c1
    1318613148    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1318713149    test al, al                               ; 84 c0
    13188     je short 08bbdh                           ; 74 05
     13150    je short 08b46h                           ; 74 05
    1318913151    mov ax, strict word 00004h                ; b8 04 00
    13190     jmp short 08bbfh                          ; eb 02
     13152    jmp short 08b48h                          ; eb 02
    1319113153    xor ah, ah                                ; 30 e4
    1319213154    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1319613158    pop bp                                    ; 5d
    1319713159    retn                                      ; c3
    13198 ahci_port_deinit_current_:                   ; 0xf8bc7 LB 0x180
     13160ahci_port_deinit_current_:                   ; 0xf8b50 LB 0x180
    1319913161    push bp                                   ; 55
    1320013162    mov bp, sp                                ; 89 e5
     
    1321113173    mov byte [bp-00ah], al                    ; 88 46 f6
    1321213174    cmp AL, strict byte 0ffh                  ; 3c ff
    13213     je short 08c48h                           ; 74 5f
     13175    je short 08bd1h                           ; 74 5f
    1321413176    xor ah, ah                                ; 30 e4
    1321513177    sal ax, 007h                              ; c1 e0 07
     
    1325513217    xchg dx, ax                               ; 92
    1325613218    test ax, 0c011h                           ; a9 11 c0
    13257     je short 08c4bh                           ; 74 07
     13219    je short 08bd4h                           ; 74 07
    1325813220    mov AL, strict byte 001h                  ; b0 01
    13259     jmp short 08c4dh                          ; eb 05
    13260     jmp near 08d3eh                           ; e9 f3 00
     13221    jmp short 08bd6h                          ; eb 05
     13222    jmp near 08cc7h                           ; e9 f3 00
    1326113223    xor al, al                                ; 30 c0
    1326213224    cmp AL, strict byte 001h                  ; 3c 01
    13263     je short 08c1bh                           ; 74 ca
     13225    je short 08ba4h                           ; 74 ca
    1326413226    mov cx, strict word 00020h                ; b9 20 00
    1326513227    xor bx, bx                                ; 31 db
    1326613228    mov ax, di                                ; 89 f8
    1326713229    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13268     call 0a03ah                               ; e8 dc 13
     13230    call 09fbah                               ; e8 d3 13
    1326913231    lea ax, [di+00080h]                       ; 8d 85 80 00
    1327013232    mov cx, strict word 00040h                ; b9 40 00
    1327113233    xor bx, bx                                ; 31 db
    1327213234    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13273     call 0a03ah                               ; e8 cd 13
     13235    call 09fbah                               ; e8 c4 13
    1327413236    lea ax, [di+00200h]                       ; 8d 85 00 02
    1327513237    mov cx, strict word 00060h                ; b9 60 00
    1327613238    xor bx, bx                                ; 31 db
    1327713239    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13278     call 0a03ah                               ; e8 be 13
     13240    call 09fbah                               ; e8 b5 13
    1327913241    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1328013242    xor ah, ah                                ; 30 e4
     
    1338113343    pop bp                                    ; 5d
    1338213344    retn                                      ; c3
    13383 ahci_port_init_:                             ; 0xf8d47 LB 0x24d
     13345ahci_port_init_:                             ; 0xf8cd0 LB 0x24d
    1338413346    push bp                                   ; 55
    1338513347    mov bp, sp                                ; 89 e5
     
    1339113353    mov word [bp-00ah], dx                    ; 89 56 f6
    1339213354    mov byte [bp-008h], bl                    ; 88 5e f8
    13393     call 08bc7h                               ; e8 6c fe
     13355    call 08b50h                               ; e8 6c fe
    1339413356    mov al, bl                                ; 88 d8
    1339513357    xor ah, ah                                ; 30 e4
     
    1344013402    xchg dx, ax                               ; 92
    1344113403    test ax, 0c011h                           ; a9 11 c0
    13442     je short 08dcch                           ; 74 04
     13404    je short 08d55h                           ; 74 04
    1344313405    mov AL, strict byte 001h                  ; b0 01
    13444     jmp short 08dceh                          ; eb 02
     13406    jmp short 08d57h                          ; eb 02
    1344513407    xor al, al                                ; 30 c0
    1344613408    cmp AL, strict byte 001h                  ; 3c 01
    13447     je short 08d97h                           ; 74 c5
     13409    je short 08d20h                           ; 74 c5
    1344813410    mov cx, strict word 00020h                ; b9 20 00
    1344913411    xor bx, bx                                ; 31 db
    1345013412    mov ax, si                                ; 89 f0
    1345113413    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13452     call 0a03ah                               ; e8 5b 12
     13414    call 09fbah                               ; e8 52 12
    1345313415    lea ax, [si+00080h]                       ; 8d 84 80 00
    1345413416    mov cx, strict word 00040h                ; b9 40 00
    1345513417    xor bx, bx                                ; 31 db
    1345613418    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13457     call 0a03ah                               ; e8 4c 12
     13419    call 09fbah                               ; e8 43 12
    1345813420    lea di, [si+00200h]                       ; 8d bc 00 02
    1345913421    mov cx, strict word 00060h                ; b9 60 00
     
    1346113423    mov ax, di                                ; 89 f8
    1346213424    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13463     call 0a03ah                               ; e8 3b 12
     13425    call 09fbah                               ; e8 32 12
    1346413426    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1346513427    xor bh, bh                                ; 30 ff
     
    1347913441    mov ax, di                                ; 89 f8
    1348013442    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13481     call 087ech                               ; e8 bf f9
     13443    call 08775h                               ; e8 bf f9
    1348213444    mov es, [bp-00ah]                         ; 8e 46 f6
    1348313445    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1352413486    mov ax, si                                ; 89 f0
    1352513487    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13526     call 087ech                               ; e8 53 f9
     13488    call 08775h                               ; e8 53 f9
    1352713489    mov es, [bp-00ah]                         ; 8e 46 f6
    1352813490    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1362913591    pop bp                                    ; 5d
    1363013592    retn                                      ; c3
    13631 @ahci_read_sectors:                          ; 0xf8f94 LB 0xa8
     13593@ahci_read_sectors:                          ; 0xf8f1d LB 0xa8
    1363213594    push bp                                   ; 55
    1363313595    mov bp, sp                                ; 89 e5
     
    1364013602    sub bx, strict byte 0000ch                ; 83 eb 0c
    1364113603    cmp bx, strict byte 00004h                ; 83 fb 04
    13642     jbe short 08fbah                          ; 76 0f
     13604    jbe short 08f43h                          ; 76 0f
    1364313605    push bx                                   ; 53
    1364413606    push 00c62h                               ; 68 62 0c
    1364513607    push 00c74h                               ; 68 74 0c
    1364613608    push strict byte 00007h                   ; 6a 07
    13647     call 01966h                               ; e8 af 89
     13609    call 01966h                               ; e8 26 8a
    1364813610    add sp, strict byte 00008h                ; 83 c4 08
    1364913611    xor di, di                                ; 31 ff
     
    1366013622    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1366113623    xor ax, ax                                ; 31 c0
    13662     call 08d47h                               ; e8 60 fd
     13624    call 08cd0h                               ; e8 60 fd
    1366313625    mov bx, strict word 00025h                ; bb 25 00
    1366413626    mov ax, si                                ; 89 f0
    1366513627    mov dx, word [bp+006h]                    ; 8b 56 06
    13666     call 08960h                               ; e8 6e f9
     13628    call 088e9h                               ; e8 6e f9
    1366713629    mov word [bp-006h], ax                    ; 89 46 fa
    1366813630    mov es, [bp+006h]                         ; 8e 46 06
     
    1369313655    pop bp                                    ; 5d
    1369413656    retn 00004h                               ; c2 04 00
    13695 @ahci_write_sectors:                         ; 0xf903c LB 0x86
     13657@ahci_write_sectors:                         ; 0xf8fc5 LB 0x86
    1369613658    push bp                                   ; 55
    1369713659    mov bp, sp                                ; 89 e5
     
    1370513667    sub dx, strict byte 0000ch                ; 83 ea 0c
    1370613668    cmp dx, strict byte 00004h                ; 83 fa 04
    13707     jbe short 09066h                          ; 76 0f
     13669    jbe short 08fefh                          ; 76 0f
    1370813670    push dx                                   ; 52
    1370913671    push 00c93h                               ; 68 93 0c
    1371013672    push 00c74h                               ; 68 74 0c
    1371113673    push strict byte 00007h                   ; 6a 07
    13712     call 01966h                               ; e8 03 89
     13674    call 01966h                               ; e8 7a 89
    1371313675    add sp, strict byte 00008h                ; 83 c4 08
    1371413676    xor bx, bx                                ; 31 db
     
    1372513687    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1372613688    xor ax, ax                                ; 31 c0
    13727     call 08d47h                               ; e8 b6 fc
     13689    call 08cd0h                               ; e8 b6 fc
    1372813690    mov bx, strict word 00035h                ; bb 35 00
    1372913691    mov ax, si                                ; 89 f0
    1373013692    mov dx, cx                                ; 89 ca
    13731     call 08960h                               ; e8 c5 f8
     13693    call 088e9h                               ; e8 c5 f8
    1373213694    mov dx, ax                                ; 89 c2
    1373313695    mov es, cx                                ; 8e c1
     
    1374413706    pop bp                                    ; 5d
    1374513707    retn 00004h                               ; c2 04 00
    13746 ahci_cmd_packet_:                            ; 0xf90c2 LB 0x18a
     13708ahci_cmd_packet_:                            ; 0xf904b LB 0x18a
    1374713709    push bp                                   ; 55
    1374813710    mov bp, sp                                ; 89 e5
     
    1375613718    mov dx, strict word 0000eh                ; ba 0e 00
    1375713719    mov ax, strict word 00040h                ; b8 40 00
    13758     call 0166ch                               ; e8 8f 85
     13720    call 0166ch                               ; e8 06 86
    1375913721    mov si, 00122h                            ; be 22 01
    1376013722    mov word [bp-008h], ax                    ; 89 46 f8
    1376113723    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13762     jne short 09108h                          ; 75 1f
     13724    jne short 09091h                          ; 75 1f
    1376313725    mov bx, 00da0h                            ; bb a0 0d
    1376413726    mov cx, ds                                ; 8c d9
    1376513727    mov ax, strict word 00004h                ; b8 04 00
    13766     call 01923h                               ; e8 2f 88
     13728    call 01923h                               ; e8 a6 88
    1376713729    push 00ca6h                               ; 68 a6 0c
    1376813730    push 00cb6h                               ; 68 b6 0c
    1376913731    push strict byte 00004h                   ; 6a 04
    13770     call 01966h                               ; e8 67 88
     13732    call 01966h                               ; e8 de 88
    1377113733    add sp, strict byte 00006h                ; 83 c4 06
    1377213734    mov ax, strict word 00001h                ; b8 01 00
    13773     jmp near 09243h                           ; e9 3b 01
     13735    jmp near 091cch                           ; e9 3b 01
    1377413736    test byte [bp+004h], 001h                 ; f6 46 04 01
    13775     jne short 09102h                          ; 75 f4
     13737    jne short 0908bh                          ; 75 f4
    1377613738    mov ax, word [bp+006h]                    ; 8b 46 06
    1377713739    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1377913741    sal ax, 1                                 ; d1 e0
    1378013742    rcl dx, 1                                 ; d1 d2
    13781     loop 09117h                               ; e2 fa
     13743    loop 090a0h                               ; e2 fa
    1378213744    mov es, [bp-008h]                         ; 8e 46 f8
    1378313745    mov word [es:si], ax                      ; 26 89 04
     
    1379313755    mov dx, word [bp+008h]                    ; 8b 56 08
    1379413756    xor cx, cx                                ; 31 c9
    13795     call 09fb0h                               ; e8 60 0e
     13757    call 09f30h                               ; e8 57 0e
    1379613758    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1379713759    xor di, di                                ; 31 ff
     
    1381213774    mov bx, ax                                ; 89 c3
    1381313775    xor al, al                                ; 30 c0
    13814     call 08d47h                               ; e8 b8 fb
     13776    call 08cd0h                               ; e8 b8 fb
    1381513777    mov al, byte [bp-006h]                    ; 8a 46 fa
    1381613778    xor ah, ah                                ; 30 e4
     
    1382013782    mov ax, 000c0h                            ; b8 c0 00
    1382113783    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13822     call 0a047h                               ; e8 a3 0e
     13784    call 09fc7h                               ; e8 9a 0e
    1382313785    mov es, [bp-008h]                         ; 8e 46 f8
    1382413786    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1382713789    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1382813790    test ax, ax                               ; 85 c0
    13829     je short 091e2h                           ; 74 27
     13791    je short 0916bh                           ; 74 27
    1383013792    dec ax                                    ; 48
    1383113793    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1384013802    mov ax, si                                ; 89 f0
    1384113803    mov dx, word [bp-008h]                    ; 8b 56 f8
    13842     call 08960h                               ; e8 73 f7
     13804    call 088e9h                               ; e8 73 f7
    1384313805    les bx, [bp-00eh]                         ; c4 5e f2
    1384413806    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1386713829    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1386813830    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13869     jne short 09241h                          ; 75 05
     13831    jne short 091cah                          ; 75 05
    1387013832    mov ax, strict word 00004h                ; b8 04 00
    13871     jmp short 09243h                          ; eb 02
     13833    jmp short 091cch                          ; eb 02
    1387213834    xor ax, ax                                ; 31 c0
    1387313835    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1387613838    pop bp                                    ; 5d
    1387713839    retn 0000ch                               ; c2 0c 00
    13878 ahci_port_detect_device_:                    ; 0xf924c LB 0x4e3
     13840ahci_port_detect_device_:                    ; 0xf91d5 LB 0x4e3
    1387913841    push bp                                   ; 55
    1388013842    mov bp, sp                                ; 89 e5
     
    1388913851    xor ch, ch                                ; 30 ed
    1389013852    mov bx, cx                                ; 89 cb
    13891     call 08d47h                               ; e8 e0 fa
     13853    call 08cd0h                               ; e8 e0 fa
    1389213854    mov dx, strict word 0000eh                ; ba 0e 00
    1389313855    mov ax, strict word 00040h                ; b8 40 00
    13894     call 0166ch                               ; e8 fc 83
     13856    call 0166ch                               ; e8 73 84
    1389513857    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    1389613858    mov word [bp-016h], ax                    ; 89 46 ea
     
    1396213924    mov bx, strict word 0000fh                ; bb 0f 00
    1396313925    xor cx, cx                                ; 31 c9
    13964     call 087d0h                               ; e8 b5 f4
     13926    call 08759h                               ; e8 b5 f4
    1396513927    test ax, ax                               ; 85 c0
    13966     jne short 09322h                          ; 75 03
    13967     jmp near 09727h                           ; e9 05 04
     13928    jne short 092abh                          ; 75 03
     13929    jmp near 096b0h                           ; e9 05 04
    1396813930    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1396913931    xor ah, ah                                ; 30 e4
     
    1399413956    mov bx, strict word 0000fh                ; bb 0f 00
    1399513957    xor cx, cx                                ; 31 c9
    13996     call 087d0h                               ; e8 67 f4
     13958    call 08759h                               ; e8 67 f4
    1399713959    cmp ax, strict word 00001h                ; 3d 01 00
    13998     je short 09322h                           ; 74 b4
     13960    je short 092abh                           ; 74 b4
    1399913961    push strict byte 00000h                   ; 6a 00
    1400013962    mov bx, strict word 0000fh                ; bb 0f 00
     
    1400213964    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1400313965    mov dx, di                                ; 89 fa
    14004     call 087d0h                               ; e8 53 f4
     13966    call 08759h                               ; e8 53 f4
    1400513967    cmp ax, strict word 00003h                ; 3d 03 00
    14006     jne short 0931fh                          ; 75 9d
     13968    jne short 092a8h                          ; 75 9d
    1400713969    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1400813970    add ax, 00130h                            ; 05 30 01
     
    1403213994    mov byte [bp-008h], al                    ; 88 46 f8
    1403313995    cmp AL, strict byte 004h                  ; 3c 04
    14034     jc short 093cch                           ; 72 03
    14035     jmp near 09727h                           ; e9 5b 03
     13996    jc short 09355h                           ; 72 03
     13997    jmp near 096b0h                           ; e9 5b 03
    1403613998    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1403713999    add ax, 00118h                            ; 05 18 01
     
    1408314045    add cl, 00ch                              ; 80 c1 0c
    1408414046    test dx, dx                               ; 85 d2
    14085     jne short 09492h                          ; 75 54
     14047    jne short 0941bh                          ; 75 54
    1408614048    cmp ax, 00101h                            ; 3d 01 01
    14087     jne short 09492h                          ; 75 4f
     14049    jne short 0941bh                          ; 75 4f
    1408814050    mov es, [bp-016h]                         ; 8e 46 ea
    1408914051    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1410014062    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1410114063    mov dx, es                                ; 8c c2
    14102     call 08960h                               ; e8 dd f4
     14064    call 088e9h                               ; e8 dd f4
    1410314065    mov byte [bp-00ah], cl                    ; 88 4e f6
    1410414066    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14105     je short 09495h                           ; 74 08
     14067    je short 0941eh                           ; 74 08
    1410614068    mov ax, strict word 00001h                ; b8 01 00
    14107     jmp short 09497h                          ; eb 05
    14108     jmp near 09665h                           ; e9 d0 01
     14069    jmp short 09420h                          ; eb 05
     14070    jmp near 095eeh                           ; e9 d0 01
    1410914071    xor ax, ax                                ; 31 c0
    1411014072    mov dl, al                                ; 88 c2
     
    1412214084    mov word [bp-01eh], ax                    ; 89 46 e2
    1412314085    cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
    14124     jne short 094e6h                          ; 75 1e
     14086    jne short 0946fh                          ; 75 1e
    1412514087    cmp di, strict byte 0ffffh                ; 83 ff ff
    14126     jne short 094e6h                          ; 75 19
     14088    jne short 0946fh                          ; 75 19
    1412714089    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1412814090    mov word [bp-01eh], ax                    ; 89 46 e2
     
    1416314125    mov al, byte [bp-008h]                    ; 8a 46 f8
    1416414126    cmp AL, strict byte 001h                  ; 3c 01
    14165     jc short 09561h                           ; 72 0c
    14166     jbe short 09569h                          ; 76 12
     14127    jc short 094eah                           ; 72 0c
     14128    jbe short 094f2h                          ; 76 12
    1416714129    cmp AL, strict byte 003h                  ; 3c 03
    14168     je short 09571h                           ; 74 16
     14130    je short 094fah                           ; 74 16
    1416914131    cmp AL, strict byte 002h                  ; 3c 02
    14170     je short 0956dh                           ; 74 0e
    14171     jmp short 095b9h                          ; eb 58
     14132    je short 094f6h                           ; 74 0e
     14133    jmp short 09542h                          ; eb 58
    1417214134    test al, al                               ; 84 c0
    14173     jne short 095b9h                          ; 75 54
     14135    jne short 09542h                          ; 75 54
    1417414136    mov DL, strict byte 040h                  ; b2 40
    14175     jmp short 09573h                          ; eb 0a
     14137    jmp short 094fch                          ; eb 0a
    1417614138    mov DL, strict byte 048h                  ; b2 48
    14177     jmp short 09573h                          ; eb 06
     14139    jmp short 094fch                          ; eb 06
    1417814140    mov DL, strict byte 050h                  ; b2 50
    14179     jmp short 09573h                          ; eb 02
     14141    jmp short 094fch                          ; eb 02
    1418014142    mov DL, strict byte 058h                  ; b2 58
    1418114143    mov bl, dl                                ; 88 d3
     
    1418314145    xor bh, bh                                ; 30 ff
    1418414146    mov ax, bx                                ; 89 d8
    14185     call 016ach                               ; e8 2d 81
     14147    call 016ach                               ; e8 a4 81
    1418614148    test al, al                               ; 84 c0
    14187     je short 095b9h                           ; 74 36
     14149    je short 09542h                           ; 74 36
    1418814150    mov al, dl                                ; 88 d0
    1418914151    db  0feh, 0c0h
    1419014152    ; inc al                                    ; fe c0
    1419114153    xor ah, ah                                ; 30 e4
    14192     call 016ach                               ; e8 20 81
     14154    call 016ach                               ; e8 97 81
    1419314155    xor ah, ah                                ; 30 e4
    1419414156    mov cx, ax                                ; 89 c1
    1419514157    sal cx, 008h                              ; c1 e1 08
    1419614158    mov al, dl                                ; 88 d0
    14197     call 016ach                               ; e8 14 81
     14159    call 016ach                               ; e8 8b 81
    1419814160    xor ah, ah                                ; 30 e4
    1419914161    add ax, cx                                ; 01 c8
     
    1420214164    add AL, strict byte 002h                  ; 04 02
    1420314165    xor ah, ah                                ; 30 e4
    14204     call 016ach                               ; e8 04 81
     14166    call 016ach                               ; e8 7b 81
    1420514167    xor ah, ah                                ; 30 e4
    1420614168    mov word [bp-02ah], ax                    ; 89 46 d6
    1420714169    mov ax, bx                                ; 89 d8
    14208     call 016ach                               ; e8 fa 80
     14170    call 016ach                               ; e8 71 81
    1420914171    xor ah, ah                                ; 30 e4
    1421014172    mov word [bp-026h], ax                    ; 89 46 da
    14211     jmp short 095cbh                          ; eb 12
     14173    jmp short 09554h                          ; eb 12
    1421214174    push word [bp-01eh]                       ; ff 76 e2
    1421314175    push word [bp-012h]                       ; ff 76 ee
     
    1421614178    mov dx, ss                                ; 8c d2
    1421714179    lea ax, [bp-02ah]                         ; 8d 46 d6
    14218     call 059d2h                               ; e8 07 c4
     14180    call 05977h                               ; e8 23 c4
    1421914181    mov bx, 00da0h                            ; bb a0 0d
    1422014182    mov cx, ds                                ; 8c d9
    1422114183    mov ax, strict word 00004h                ; b8 04 00
    14222     call 01923h                               ; e8 4d 83
     14184    call 01923h                               ; e8 c4 83
    1422314185    push word [bp-01eh]                       ; ff 76 e2
    1422414186    push word [bp-012h]                       ; ff 76 ee
     
    1424114203    push 00cd6h                               ; 68 d6 0c
    1424214204    push strict byte 00004h                   ; 6a 04
    14243     call 01966h                               ; e8 5f 83
     14205    call 01966h                               ; e8 d6 83
    1424414206    add sp, strict byte 0001ch                ; 83 c4 1c
    1424514207    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1427214234    mov dx, strict word 00075h                ; ba 75 00
    1427314235    mov ax, strict word 00040h                ; b8 40 00
    14274     call 01650h                               ; e8 fd 7f
     14236    call 01650h                               ; e8 74 80
    1427514237    mov bl, al                                ; 88 c3
    1427614238    db  0feh, 0c3h
     
    1427914241    mov dx, strict word 00075h                ; ba 75 00
    1428014242    mov ax, strict word 00040h                ; b8 40 00
    14281     call 0165eh                               ; e8 fc 7f
    14282     jmp near 09716h                           ; e9 b1 00
     14243    call 0165eh                               ; e8 73 80
     14244    jmp near 0969fh                           ; e9 b1 00
    1428314245    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14284     jne short 096bfh                          ; 75 54
     14246    jne short 09648h                          ; 75 54
    1428514247    cmp ax, 00101h                            ; 3d 01 01
    14286     jne short 096bfh                          ; 75 4f
     14248    jne short 09648h                          ; 75 4f
    1428714249    mov es, [bp-016h]                         ; 8e 46 ea
    1428814250    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1429914261    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1430014262    mov dx, es                                ; 8c c2
    14301     call 08960h                               ; e8 b0 f2
     14263    call 088e9h                               ; e8 b0 f2
    1430214264    mov byte [bp-00ah], cl                    ; 88 4e f6
    1430314265    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14304     je short 096c1h                           ; 74 07
     14266    je short 0964ah                           ; 74 07
    1430514267    mov dx, strict word 00001h                ; ba 01 00
    14306     jmp short 096c3h                          ; eb 04
    14307     jmp short 09716h                          ; eb 55
     14268    jmp short 0964ch                          ; eb 04
     14269    jmp short 0969fh                          ; eb 55
    1430814270    xor dx, dx                                ; 31 d2
    1430914271    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    1434414306    pop bp                                    ; 5d
    1434514307    retn                                      ; c3
    14346 ahci_mem_alloc_:                             ; 0xf972f LB 0x43
     14308ahci_mem_alloc_:                             ; 0xf96b8 LB 0x43
    1434714309    push bp                                   ; 55
    1434814310    mov bp, sp                                ; 89 e5
     
    1435414316    mov dx, 00413h                            ; ba 13 04
    1435514317    xor ax, ax                                ; 31 c0
    14356     call 0166ch                               ; e8 2d 7f
     14318    call 0166ch                               ; e8 a4 7f
    1435714319    test ax, ax                               ; 85 c0
    14358     je short 09768h                           ; 74 25
     14320    je short 096f1h                           ; 74 25
    1435914321    dec ax                                    ; 48
    1436014322    mov bx, ax                                ; 89 c3
     
    1436314325    sal ax, 1                                 ; d1 e0
    1436414326    rcl dx, 1                                 ; d1 d2
    14365     loop 0974bh                               ; e2 fa
     14327    loop 096d4h                               ; e2 fa
    1436614328    mov si, ax                                ; 89 c6
    1436714329    mov di, dx                                ; 89 d7
     
    1436914331    shr di, 1                                 ; d1 ef
    1437014332    rcr si, 1                                 ; d1 de
    14371     loop 09758h                               ; e2 fa
     14333    loop 096e1h                               ; e2 fa
    1437214334    mov dx, 00413h                            ; ba 13 04
    1437314335    xor ax, ax                                ; 31 c0
    14374     call 0167ah                               ; e8 14 7f
     14336    call 0167ah                               ; e8 8b 7f
    1437514337    mov ax, si                                ; 89 f0
    1437614338    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1438214344    pop bp                                    ; 5d
    1438314345    retn                                      ; c3
    14384 ahci_hba_init_:                              ; 0xf9772 LB 0x16d
     14346ahci_hba_init_:                              ; 0xf96fb LB 0x16d
    1438514347    push bp                                   ; 55
    1438614348    mov bp, sp                                ; 89 e5
     
    1439414356    mov dx, strict word 0000eh                ; ba 0e 00
    1439514357    mov ax, strict word 00040h                ; b8 40 00
    14396     call 0166ch                               ; e8 e4 7e
     14358    call 0166ch                               ; e8 5b 7f
    1439714359    mov bx, 00122h                            ; bb 22 01
    1439814360    mov di, ax                                ; 89 c7
     
    1441114373    shr eax, 010h                             ; 66 c1 e8 10
    1441214374    xchg dx, ax                               ; 92
    14413     call 0972fh                               ; e8 83 ff
     14375    call 096b8h                               ; e8 83 ff
    1441414376    mov word [bp-010h], ax                    ; 89 46 f0
    1441514377    test ax, ax                               ; 85 c0
    14416     jne short 097b6h                          ; 75 03
    14417     jmp near 098beh                           ; e9 08 01
     14378    jne short 0973fh                          ; 75 03
     14379    jmp near 09847h                           ; e9 08 01
    1441814380    mov ax, word [bp-010h]                    ; 8b 46 f0
    1441914381    mov es, di                                ; 8e c7
     
    1446514427    xchg dx, ax                               ; 92
    1446614428    test AL, strict byte 001h                 ; a8 01
    14467     jne short 09810h                          ; 75 de
     14429    jne short 09799h                          ; 75 de
    1446814430    xor ax, ax                                ; 31 c0
    1446914431    xor cx, cx                                ; 31 c9
     
    1448314445    mov bx, strict word 0001fh                ; bb 1f 00
    1448414446    xor cx, cx                                ; 31 c9
    14485     call 087d0h                               ; e8 7a ef
     14447    call 08759h                               ; e8 7a ef
    1448614448    db  0feh, 0c0h
    1448714449    ; inc al                                    ; fe c0
    1448814450    mov byte [bp-00ch], al                    ; 88 46 f4
    1448914451    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    14490     jmp short 09882h                          ; eb 21
     14452    jmp short 0980bh                          ; eb 21
    1449114453    xor al, al                                ; 30 c0
    1449214454    test al, al                               ; 84 c0
    14493     je short 09879h                           ; 74 12
     14455    je short 09802h                           ; 74 12
    1449414456    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1449514457    xor bh, bh                                ; 30 ff
    1449614458    xor ax, ax                                ; 31 c0
    1449714459    mov dx, word [bp-010h]                    ; 8b 56 f0
    14498     call 0924ch                               ; e8 d8 f9
     14460    call 091d5h                               ; e8 d8 f9
    1449914461    dec byte [bp-00ch]                        ; fe 4e f4
    14500     je short 098bch                           ; 74 43
     14462    je short 09845h                           ; 74 43
    1450114463    inc byte [bp-00eh]                        ; fe 46 f2
    1450214464    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
    14503     jnc short 098bch                          ; 73 3a
     14465    jnc short 09845h                          ; 73 3a
    1450414466    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    1450514467    xor ch, ch                                ; 30 ed
    1450614468    mov bx, strict word 00001h                ; bb 01 00
    1450714469    xor di, di                                ; 31 ff
    14508     jcxz 09894h                               ; e3 06
     14470    jcxz 0981dh                               ; e3 06
    1450914471    sal bx, 1                                 ; d1 e3
    1451014472    rcl di, 1                                 ; d1 d7
    14511     loop 0988eh                               ; e2 fa
     14473    loop 09817h                               ; e2 fa
    1451214474    mov ax, strict word 0000ch                ; b8 0c 00
    1451314475    xor cx, cx                                ; 31 c9
     
    1452514487    xchg dx, ax                               ; 92
    1452614488    test dx, di                               ; 85 fa
    14527     jne short 098b8h                          ; 75 04
     14489    jne short 09841h                          ; 75 04
    1452814490    test ax, bx                               ; 85 d8
    14529     je short 09861h                           ; 74 a9
     14491    je short 097eah                           ; 74 a9
    1453014492    mov AL, strict byte 001h                  ; b0 01
    14531     jmp short 09863h                          ; eb a7
     14493    jmp short 097ech                          ; eb a7
    1453214494    xor ax, ax                                ; 31 c0
    1453314495    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1453914501    pop bp                                    ; 5d
    1454014502    retn                                      ; c3
    14541     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0c7h, 099h, 0a5h, 099h, 0abh, 099h, 0b1h, 099h, 0b7h
    14542     db  099h, 0bdh, 099h, 0c3h, 099h, 0c7h, 099h
    14543 _ahci_init:                                  ; 0xf98df LB 0x119
     14503    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 050h, 099h, 02eh, 099h, 034h, 099h, 03ah, 099h, 040h
     14504    db  099h, 046h, 099h, 04ch, 099h, 050h, 099h
     14505_ahci_init:                                  ; 0xf9868 LB 0x119
    1454414506    push bp                                   ; 55
    1454514507    mov bp, sp                                ; 89 e5
     
    1454814510    mov ax, 00601h                            ; b8 01 06
    1454914511    mov dx, strict word 00001h                ; ba 01 00
    14550     call 09e13h                               ; e8 24 05
     14512    call 09d9ch                               ; e8 24 05
    1455114513    mov dx, ax                                ; 89 c2
    1455214514    cmp ax, strict word 0ffffh                ; 3d ff ff
    14553     je short 09942h                           ; 74 4c
     14515    je short 098cbh                           ; 74 4c
    1455414516    xor al, al                                ; 30 c0
    1455514517    shr ax, 008h                              ; c1 e8 08
     
    1455914521    xor ah, ah                                ; 30 e4
    1456014522    mov bx, strict word 00034h                ; bb 34 00
    14561     call 09e3eh                               ; e8 33 05
     14523    call 09da4h                               ; e8 10 05
    1456214524    mov cl, al                                ; 88 c1
    1456314525    test cl, cl                               ; 84 c9
    14564     je short 09945h                           ; 74 34
     14526    je short 098ceh                           ; 74 34
    1456514527    mov bl, cl                                ; 88 cb
    1456614528    xor bh, bh                                ; 30 ff
     
    1457314535    mov dx, word [bp-010h]                    ; 8b 56 f0
    1457414536    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14575     call 09e3eh                               ; e8 0e 05
     14537    call 09da4h                               ; e8 eb 04
    1457614538    cmp AL, strict byte 012h                  ; 3c 12
    14577     je short 09945h                           ; 74 11
     14539    je short 098ceh                           ; 74 11
    1457814540    mov bl, cl                                ; 88 cb
    1457914541    db  0feh, 0c3h
     
    1458214544    mov dx, word [bp-010h]                    ; 8b 56 f0
    1458314545    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14584     jmp short 09908h                          ; eb c6
    14585     jmp near 099f2h                           ; e9 ad 00
     14546    jmp short 09891h                          ; eb c6
     14547    jmp near 0997bh                           ; e9 ad 00
    1458614548    test cl, cl                               ; 84 c9
    14587     je short 09942h                           ; 74 f9
     14549    je short 098cbh                           ; 74 f9
    1458814550    add cl, 002h                              ; 80 c1 02
    1458914551    mov bl, cl                                ; 88 cb
     
    1459714559    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1459814560    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14599     call 09e3eh                               ; e8 d3 04
     14561    call 09da4h                               ; e8 b0 04
    1460014562    cmp AL, strict byte 010h                  ; 3c 10
    14601     jne short 09942h                          ; 75 d3
     14563    jne short 098cbh                          ; 75 d3
    1460214564    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1460314565    mov bl, cl                                ; 88 cb
     
    1460614568    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1460714569    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14608     call 09e6ch                               ; e8 e9 04
     14570    call 09dd2h                               ; e8 c6 04
    1460914571    mov dx, ax                                ; 89 c2
    1461014572    and ax, strict word 0000fh                ; 25 0f 00
    1461114573    sub ax, strict word 00004h                ; 2d 04 00
    1461214574    cmp ax, strict word 0000bh                ; 3d 0b 00
    14613     jnbe short 099c7h                         ; 77 37
     14575    jnbe short 09950h                         ; 77 37
    1461414576    push CS                                   ; 0e
    1461514577    pop ES                                    ; 07
    1461614578    mov cx, strict word 00008h                ; b9 08 00
    14617     mov di, 098c8h                            ; bf c8 98
     14579    mov di, 09851h                            ; bf 51 98
    1461814580    repne scasb                               ; f2 ae
    1461914581    sal cx, 1                                 ; d1 e1
    1462014582    mov di, cx                                ; 89 cf
    14621     mov ax, word [cs:di-06731h]               ; 2e 8b 85 cf 98
     14583    mov ax, word [cs:di-067a8h]               ; 2e 8b 85 58 98
    1462214584    jmp ax                                    ; ff e0
    1462314585    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14624     jmp short 099c7h                          ; eb 1c
     14586    jmp short 09950h                          ; eb 1c
    1462514587    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14626     jmp short 099c7h                          ; eb 16
     14588    jmp short 09950h                          ; eb 16
    1462714589    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14628     jmp short 099c7h                          ; eb 10
     14590    jmp short 09950h                          ; eb 10
    1462914591    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    14630     jmp short 099c7h                          ; eb 0a
     14592    jmp short 09950h                          ; eb 0a
    1463114593    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    14632     jmp short 099c7h                          ; eb 04
     14594    jmp short 09950h                          ; eb 04
    1463314595    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1463414596    mov cx, dx                                ; 89 d1
     
    1463714599    mov al, byte [bp-004h]                    ; 8a 46 fc
    1463814600    test al, al                               ; 84 c0
    14639     je short 099f2h                           ; 74 1c
     14601    je short 0997bh                           ; 74 1c
    1464014602    mov bl, al                                ; 88 c3
    1464114603    xor bh, bh                                ; 30 ff
     
    1464414606    mov al, byte [bp-008h]                    ; 8a 46 f8
    1464514607    xor ah, ah                                ; 30 e4
    14646     call 09e96h                               ; e8 af 04
     14608    call 09dfch                               ; e8 8c 04
    1464714609    test AL, strict byte 001h                 ; a8 01
    14648     je short 099f2h                           ; 74 07
     14610    je short 0997bh                           ; 74 07
    1464914611    and AL, strict byte 0f0h                  ; 24 f0
    1465014612    add ax, cx                                ; 01 c8
    14651     call 09772h                               ; e8 80 fd
     14613    call 096fbh                               ; e8 80 fd
    1465214614    lea sp, [bp-002h]                         ; 8d 66 fe
    1465314615    pop di                                    ; 5f
    1465414616    pop bp                                    ; 5d
    1465514617    retn                                      ; c3
    14656 apm_out_str_:                                ; 0xf99f8 LB 0x39
     14618apm_out_str_:                                ; 0xf9981 LB 0x39
    1465714619    push bp                                   ; 55
    1465814620    mov bp, sp                                ; 89 e5
     
    1466014622    mov bx, ax                                ; 89 c3
    1466114623    cmp byte [bx], 000h                       ; 80 3f 00
    14662     je short 09a0dh                           ; 74 0a
     14624    je short 09996h                           ; 74 0a
    1466314625    mov al, byte [bx]                         ; 8a 07
    1466414626    out DX, AL                                ; ee
     
    1466714629    db  00ah, 0c0h
    1466814630    ; or al, al                                 ; 0a c0
    14669     jne short 09a05h                          ; 75 f8
     14631    jne short 0998eh                          ; 75 f8
    1467014632    lea sp, [bp-002h]                         ; 8d 66 fe
    1467114633    pop bx                                    ; 5b
    1467214634    pop bp                                    ; 5d
    1467314635    retn                                      ; c3
    14674     push dx                                   ; 52
    14675     call far 09a64h:09adah                    ; 9a da 9a 64 9a
    14676     jnle short 099b5h                         ; 7f 9a
    14677     ficomp dword [bp+si-06556h]               ; da 9a aa 9a
    14678     ficomp dword [bp+si-06520h]               ; da 9a e0 9a
    14679     scasw                                     ; af
    14680     call far 09aafh:09aafh                    ; 9a af 9a af 9a
    14681     pop DS                                    ; 1f
    14682     wait                                      ; 9b
    14683     scasw                                     ; af
    14684     call far 09b18h:09aafh                    ; 9a af 9a 18 9b
    14685 _apm_function:                               ; 0xf9a31 LB 0xf3
     14636    fistp dword [bx+di-0659dh]                ; db 99 63 9a
     14637    in ax, DX                                 ; ed
     14638    cwd                                       ; 99
     14639    or byte [bp+si-0659dh], bl                ; 08 9a 63 9a
     14640    xor bx, word [bp+si-0659dh]               ; 33 9a 63 9a
     14641    imul bx, word [bp+si-065c8h], 09a38h      ; 69 9a 38 9a 38 9a
     14642    cmp byte [bp+si-06558h], bl               ; 38 9a a8 9a
     14643    cmp byte [bp+si-065c8h], bl               ; 38 9a 38 9a
     14644    db  0a1h
     14645    db  09ah
     14646_apm_function:                               ; 0xf99ba LB 0xf3
    1468614647    push bp                                   ; 55
    1468714648    mov bp, sp                                ; 89 e5
     
    1469114652    xor ah, ah                                ; 30 e4
    1469214653    cmp ax, strict word 0000eh                ; 3d 0e 00
    14693     jnbe short 09aafh                         ; 77 6c
     14654    jnbe short 09a38h                         ; 77 6c
    1469414655    mov bx, ax                                ; 89 c3
    1469514656    add bx, ax                                ; 01 c3
    1469614657    mov dx, word [bp+018h]                    ; 8b 56 18
    1469714658    or dl, 001h                               ; 80 ca 01
    14698     jmp word [cs:bx-065edh]                   ; 2e ff a7 13 9a
     14659    jmp word [cs:bx-06664h]                   ; 2e ff a7 9c 99
    1469914660    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1470014661    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1470114662    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14702     jmp near 09adah                           ; e9 76 00
     14663    jmp near 09a63h                           ; e9 76 00
    1470314664    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14704     mov word [bp+00ch], 0a0b4h                ; c7 46 0c b4 a0
     14665    mov word [bp+00ch], 0a034h                ; c7 46 0c 34 a0
    1470514666    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1470614667    mov ax, strict word 0fff0h                ; b8 f0 ff
    1470714668    mov word [bp+006h], ax                    ; 89 46 06
    1470814669    mov word [bp+004h], ax                    ; 89 46 04
    14709     jmp near 09adah                           ; e9 5b 00
     14670    jmp near 09a63h                           ; e9 5b 00
    1471014671    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1471114672    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1472014681    mov si, ax                                ; 89 c6
    1472114682    sal esi, 010h                             ; 66 c1 e6 10
    14722     jmp near 09adah                           ; e9 30 00
     14683    jmp near 09a63h                           ; e9 30 00
    1472314684    sti                                       ; fb
    1472414685    hlt                                       ; f4
    14725     jmp near 09adah                           ; e9 2b 00
     14686    jmp near 09a63h                           ; e9 2b 00
    1472614687    mov bx, 00da0h                            ; bb a0 0d
    1472714688    mov cx, ds                                ; 8c d9
    1472814689    mov ax, strict word 00004h                ; b8 04 00
    14729     call 01923h                               ; e8 69 7e
     14690    call 01923h                               ; e8 e0 7e
    1473014691    push word [bp+00ch]                       ; ff 76 0c
    1473114692    push word [bp+012h]                       ; ff 76 12
    1473214693    push 00d29h                               ; 68 29 0d
    1473314694    push strict byte 00004h                   ; 6a 04
    14734     call 01966h                               ; e8 9e 7e
     14695    call 01966h                               ; e8 15 7f
    1473514696    add sp, strict byte 00008h                ; 83 c4 08
    1473614697    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1474414705    retn                                      ; c3
    1474514706    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14746     je short 09b05h                           ; 74 1f
     14707    je short 09a8eh                           ; 74 1f
    1474714708    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14748     je short 09afdh                           ; 74 11
     14709    je short 09a86h                           ; 74 11
    1474914710    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14750     jne short 09b0dh                          ; 75 1b
     14711    jne short 09a96h                          ; 75 1b
    1475114712    mov dx, 08900h                            ; ba 00 89
    1475214713    mov ax, 00d10h                            ; b8 10 0d
    14753     call 099f8h                               ; e8 fd fe
    14754     jmp short 09adah                          ; eb dd
     14714    call 09981h                               ; e8 fd fe
     14715    jmp short 09a63h                          ; eb dd
    1475514716    mov dx, 08900h                            ; ba 00 89
    1475614717    mov ax, 00d18h                            ; b8 18 0d
    14757     jmp short 09af8h                          ; eb f3
     14718    jmp short 09a81h                          ; eb f3
    1475814719    mov dx, 08900h                            ; ba 00 89
    1475914720    mov ax, 00d20h                            ; b8 20 0d
    14760     jmp short 09af8h                          ; eb eb
     14721    jmp short 09a81h                          ; eb eb
    1476114722    or ah, 00ah                               ; 80 cc 0a
    1476214723    mov word [bp+012h], ax                    ; 89 46 12
    1476314724    mov word [bp+018h], dx                    ; 89 56 18
    14764     jmp short 09adah                          ; eb c2
     14725    jmp short 09a63h                          ; eb c2
    1476514726    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14766     jmp short 09adah                          ; eb bb
     14727    jmp short 09a63h                          ; eb bb
    1476714728    or ah, 080h                               ; 80 cc 80
    14768     jmp short 09b10h                          ; eb ec
    14769 pci16_select_reg_:                           ; 0xf9b24 LB 0x24
     14729    jmp short 09a99h                          ; eb ec
     14730pci16_select_reg_:                           ; 0xf9aad LB 0x24
    1477014731    push bp                                   ; 55
    1477114732    mov bp, sp                                ; 89 e5
     
    1478414745    pop bp                                    ; 5d
    1478514746    retn                                      ; c3
    14786 pci16_find_device_:                          ; 0xf9b48 LB 0xf9
     14747pci16_find_device_:                          ; 0xf9ad1 LB 0xf9
    1478714748    push bp                                   ; 55
    1478814749    mov bp, sp                                ; 89 e5
     
    1479814759    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1479914760    test bl, 007h                             ; f6 c3 07
    14800     jne short 09b90h                          ; 75 2d
     14761    jne short 09b19h                          ; 75 2d
    1480114762    mov dx, strict word 0000eh                ; ba 0e 00
    1480214763    mov ax, bx                                ; 89 d8
    14803     call 09b24h                               ; e8 b9 ff
     14764    call 09aadh                               ; e8 b9 ff
    1480414765    mov dx, 00cfeh                            ; ba fe 0c
    1480514766    in AL, DX                                 ; ec
     
    1480814769    mov byte [bp-006h], al                    ; 88 46 fa
    1480914770    cmp AL, strict byte 0ffh                  ; 3c ff
    14810     jne short 09b7eh                          ; 75 06
     14771    jne short 09b07h                          ; 75 06
    1481114772    add bx, strict byte 00008h                ; 83 c3 08
    14812     jmp near 09c11h                           ; e9 93 00
     14773    jmp near 09b9ah                           ; e9 93 00
    1481314774    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14814     je short 09b8bh                           ; 74 07
     14775    je short 09b14h                           ; 74 07
    1481514776    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14816     jmp short 09b90h                          ; eb 05
     14777    jmp short 09b19h                          ; eb 05
    1481714778    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1481814779    mov al, byte [bp-006h]                    ; 8a 46 fa
    1481914780    and AL, strict byte 007h                  ; 24 07
    1482014781    cmp AL, strict byte 001h                  ; 3c 01
    14821     jne short 09bb8h                          ; 75 1f
     14782    jne short 09b41h                          ; 75 1f
    1482214783    mov ax, bx                                ; 89 d8
    1482314784    shr ax, 008h                              ; c1 e8 08
    1482414785    test ax, ax                               ; 85 c0
    14825     jne short 09bb8h                          ; 75 16
     14786    jne short 09b41h                          ; 75 16
    1482614787    mov dx, strict word 0001ah                ; ba 1a 00
    1482714788    mov ax, bx                                ; 89 d8
    14828     call 09b24h                               ; e8 7a ff
     14789    call 09aadh                               ; e8 7a ff
    1482914790    mov dx, 00cfeh                            ; ba fe 0c
    1483014791    in AL, DX                                 ; ec
     
    1483214793    ; sub ah, ah                                ; 2a e4
    1483314794    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14834     jbe short 09bb8h                          ; 76 03
     14795    jbe short 09b41h                          ; 76 03
    1483514796    mov byte [bp-008h], al                    ; 88 46 f8
    1483614797    test di, di                               ; 85 ff
    14837     je short 09bc1h                           ; 74 05
     14798    je short 09b4ah                           ; 74 05
    1483814799    mov dx, strict word 00008h                ; ba 08 00
    14839     jmp short 09bc3h                          ; eb 02
     14800    jmp short 09b4ch                          ; eb 02
    1484014801    xor dx, dx                                ; 31 d2
    1484114802    mov ax, bx                                ; 89 d8
    14842     call 09b24h                               ; e8 5c ff
     14803    call 09aadh                               ; e8 5c ff
    1484314804    mov dx, 00cfch                            ; ba fc 0c
    1484414805    in eax, DX                                ; 66 ed
     
    1485114812    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1485214813    test di, di                               ; 85 ff
    14853     je short 09bf2h                           ; 74 0f
     14814    je short 09b7bh                           ; 74 0f
    1485414815    mov cx, strict word 00008h                ; b9 08 00
    1485514816    shr dx, 1                                 ; d1 ea
    1485614817    rcr ax, 1                                 ; d1 d8
    14857     loop 09be6h                               ; e2 fa
     14818    loop 09b6fh                               ; e2 fa
    1485814819    mov word [bp-00ah], ax                    ; 89 46 f6
    1485914820    mov word [bp-00ch], dx                    ; 89 56 f4
    1486014821    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1486114822    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14862     jne short 09c02h                          ; 75 08
     14823    jne short 09b8bh                          ; 75 08
    1486314824    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1486414825    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14865     je short 09c08h                           ; 74 06
     14826    je short 09b91h                           ; 74 06
    1486614827    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    14867     je short 09c0eh                           ; 74 06
     14828    je short 09b97h                           ; 74 06
    1486814829    dec si                                    ; 4e
    1486914830    cmp si, strict byte 0ffffh                ; 83 fe ff
    14870     je short 09c22h                           ; 74 14
     14831    je short 09babh                           ; 74 14
    1487114832    add bx, word [bp-010h]                    ; 03 5e f0
    1487214833    mov dx, bx                                ; 89 da
     
    1487514836    xor ah, ah                                ; 30 e4
    1487614837    cmp dx, ax                                ; 39 c2
    14877     jnbe short 09c22h                         ; 77 03
    14878     jmp near 09b5eh                           ; e9 3c ff
     14838    jnbe short 09babh                         ; 77 03
     14839    jmp near 09ae7h                           ; e9 3c ff
    1487914840    cmp si, strict byte 0ffffh                ; 83 fe ff
    14880     jne short 09c2bh                          ; 75 04
     14841    jne short 09bb4h                          ; 75 04
    1488114842    mov ax, bx                                ; 89 d8
    14882     jmp short 09c2eh                          ; eb 03
     14843    jmp short 09bb7h                          ; eb 03
    1488314844    mov ax, strict word 0ffffh                ; b8 ff ff
    1488414845    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1488714848    pop bp                                    ; 5d
    1488814849    retn                                      ; c3
    14889     and bl, byte [di-062c5h]                  ; 22 9d 3b 9d
    14890     dec bp                                    ; 4d
     14850    stosw                                     ; ab
     14851    pushfw                                    ; 9c
     14852    les bx, [si-0632ah]                       ; c4 9c d6 9c
     14853    jmp far 00f9ch:0fc9ch                     ; ea 9c fc 9c 0f
    1489114854    popfw                                     ; 9d
    14892     popaw                                     ; 61
    14893     popfw                                     ; 9d
    14894     jnc short 09bdch                          ; 73 9d
    14895     db  086h
    14896     popfw                                     ; 9d
    14897 _pci16_function:                             ; 0xf9c41 LB 0x1d2
     14855_pci16_function:                             ; 0xf9bca LB 0x1d2
    1489814856    push bp                                   ; 55
    1489914857    mov bp, sp                                ; 89 e5
     
    1490914867    xor ah, ah                                ; 30 e4
    1491014868    cmp bx, strict byte 00003h                ; 83 fb 03
    14911     jc short 09c73h                           ; 72 13
    14912     jbe short 09cc6h                          ; 76 64
     14869    jc short 09bfch                           ; 72 13
     14870    jbe short 09c4fh                          ; 76 64
    1491314871    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14914     je short 09cceh                           ; 74 67
     14872    je short 09c57h                           ; 74 67
    1491514873    cmp bx, strict byte 00008h                ; 83 fb 08
    14916     jc short 09c7dh                           ; 72 11
     14874    jc short 09c06h                           ; 72 11
    1491714875    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14918     jbe short 09cd1h                          ; 76 60
    14919     jmp short 09c7dh                          ; eb 0a
     14876    jbe short 09c5ah                          ; 76 60
     14877    jmp short 09c06h                          ; eb 0a
    1492014878    cmp bx, strict byte 00002h                ; 83 fb 02
    14921     je short 09c9ch                           ; 74 24
     14879    je short 09c25h                           ; 74 24
    1492214880    cmp bx, strict byte 00001h                ; 83 fb 01
    14923     je short 09c80h                           ; 74 03
    14924     jmp near 09ddfh                           ; e9 5f 01
     14881    je short 09c09h                           ; 74 03
     14882    jmp near 09d68h                           ; e9 5f 01
    1492514883    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1492614884    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1492814886    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1492914887    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14930     jmp near 09e0ch                           ; e9 70 01
     14888    jmp near 09d95h                           ; e9 70 01
    1493114889    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14932     jne short 09ca8h                          ; 75 06
     14890    jne short 09c31h                          ; 75 06
    1493314891    or ah, 083h                               ; 80 cc 83
    14934     jmp near 09e05h                           ; e9 5d 01
     14892    jmp near 09d8eh                           ; e9 5d 01
    1493514893    mov bx, word [bp+008h]                    ; 8b 5e 08
    1493614894    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1493714895    mov ax, word [bp+018h]                    ; 8b 46 18
    1493814896    xor cx, cx                                ; 31 c9
    14939     call 09b48h                               ; e8 92 fe
     14897    call 09ad1h                               ; e8 92 fe
    1494014898    cmp ax, strict word 0ffffh                ; 3d ff ff
    14941     jne short 09cc8h                          ; 75 0d
     14899    jne short 09c51h                          ; 75 0d
    1494214900    mov ax, word [bp+020h]                    ; 8b 46 20
    1494314901    xor ah, ah                                ; 30 e4
    1494414902    or ah, 086h                               ; 80 cc 86
    14945     jmp near 09e05h                           ; e9 3f 01
    14946     jmp short 09cd3h                          ; eb 0b
     14903    jmp near 09d8eh                           ; e9 3f 01
     14904    jmp short 09c5ch                          ; eb 0b
    1494714905    mov word [bp+014h], ax                    ; 89 46 14
    14948     jmp near 09e0ch                           ; e9 3e 01
    14949     jmp near 09d9ah                           ; e9 c9 00
    14950     jmp short 09cf8h                          ; eb 25
     14906    jmp near 09d95h                           ; e9 3e 01
     14907    jmp near 09d23h                           ; e9 c9 00
     14908    jmp short 09c81h                          ; eb 25
    1495114909    mov bx, word [bp+008h]                    ; 8b 5e 08
    1495214910    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1495314911    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1495414912    mov cx, strict word 00001h                ; b9 01 00
    14955     call 09b48h                               ; e8 66 fe
     14913    call 09ad1h                               ; e8 66 fe
    1495614914    cmp ax, strict word 0ffffh                ; 3d ff ff
    14957     jne short 09cf2h                          ; 75 0b
     14915    jne short 09c7bh                          ; 75 0b
    1495814916    mov ax, word [bp+020h]                    ; 8b 46 20
    1495914917    xor ah, ah                                ; 30 e4
    1496014918    or ah, 086h                               ; 80 cc 86
    14961     jmp near 09e05h                           ; e9 13 01
     14919    jmp near 09d8eh                           ; e9 13 01
    1496214920    mov word [bp+014h], ax                    ; 89 46 14
    14963     jmp near 09e0ch                           ; e9 14 01
     14921    jmp near 09d95h                           ; e9 14 01
    1496414922    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14965     jc short 09d05h                           ; 72 06
     14923    jc short 09c8eh                           ; 72 06
    1496614924    or ah, 087h                               ; 80 cc 87
    14967     jmp near 09e05h                           ; e9 00 01
     14925    jmp near 09d8eh                           ; e9 00 01
    1496814926    mov dx, word [bp+004h]                    ; 8b 56 04
    1496914927    mov ax, word [bp+014h]                    ; 8b 46 14
    14970     call 09b24h                               ; e8 16 fe
     14928    call 09aadh                               ; e8 16 fe
    1497114929    mov bx, word [bp+020h]                    ; 8b 5e 20
    1497214930    xor bh, bh                                ; 30 ff
    1497314931    sub bx, strict byte 00008h                ; 83 eb 08
    1497414932    cmp bx, strict byte 00005h                ; 83 fb 05
    14975     jnbe short 09d83h                         ; 77 68
     14933    jnbe short 09d0ch                         ; 77 68
    1497614934    add bx, bx                                ; 01 db
    14977     jmp word [cs:bx-063cbh]                   ; 2e ff a7 35 9c
     14935    jmp word [cs:bx-06442h]                   ; 2e ff a7 be 9b
    1497814936    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1497914937    xor bl, bl                                ; 30 db
     
    1498614944    or bx, ax                                 ; 09 c3
    1498714945    mov word [bp+01ch], bx                    ; 89 5e 1c
    14988     jmp short 09d83h                          ; eb 48
     14946    jmp short 09d0ch                          ; eb 48
    1498914947    mov dx, word [bp+004h]                    ; 8b 56 04
    1499014948    xor dh, dh                                ; 30 f6
     
    1499314951    in ax, DX                                 ; ed
    1499414952    mov word [bp+01ch], ax                    ; 89 46 1c
    14995     jmp short 09d83h                          ; eb 36
     14953    jmp short 09d0ch                          ; eb 36
    1499614954    mov dx, 00cfch                            ; ba fc 0c
    1499714955    in eax, DX                                ; 66 ed
     
    1500214960    mov word [bp+01ch], ax                    ; 89 46 1c
    1500314961    mov word [bp+01eh], dx                    ; 89 56 1e
    15004     jmp short 09d83h                          ; eb 22
     14962    jmp short 09d0ch                          ; eb 22
    1500514963    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1500614964    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1500914967    add dx, 00cfch                            ; 81 c2 fc 0c
    1501014968    out DX, AL                                ; ee
    15011     jmp short 09d83h                          ; eb 10
     14969    jmp short 09d0ch                          ; eb 10
    1501214970    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1501314971    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1501614974    add dx, 00cfch                            ; 81 c2 fc 0c
    1501714975    out DX, ax                                ; ef
    15018     jmp near 09e0ch                           ; e9 86 00
     14976    jmp near 09d95h                           ; e9 86 00
    1501914977    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1502014978    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1502514983    ; mov ax, cx                                ; 8b c1
    1502614984    out DX, eax                               ; 66 ef
    15027     jmp short 09e0ch                          ; eb 72
     14985    jmp short 09d95h                          ; eb 72
    1502814986    mov bx, word [bp+004h]                    ; 8b 5e 04
    1502914987    mov es, [bp+026h]                         ; 8e 46 26
     
    1503214990    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1503314991    cmp cx, word [es:bx]                      ; 26 3b 0f
    15034     jbe short 09dc0h                          ; 76 11
     14992    jbe short 09d49h                          ; 76 11
    1503514993    mov ax, word [bp+020h]                    ; 8b 46 20
    1503614994    xor ah, ah                                ; 30 e4
     
    1503814996    mov word [bp+020h], ax                    ; 89 46 20
    1503914997    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15040     jmp short 09dd4h                          ; eb 14
     14998    jmp short 09d5dh                          ; eb 14
    1504114999    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1504215000    mov si, 0f2c0h                            ; be c0 f2
     
    1505015008    les bx, [bp-008h]                         ; c4 5e f8
    1505115009    mov word [es:bx], ax                      ; 26 89 07
    15052     jmp short 09e0ch                          ; eb 2d
     15010    jmp short 09d95h                          ; eb 2d
    1505315011    mov bx, 00da0h                            ; bb a0 0d
    1505415012    mov cx, ds                                ; 8c d9
    1505515013    mov ax, strict word 00004h                ; b8 04 00
    15056     call 01923h                               ; e8 39 7b
     15014    call 01923h                               ; e8 b0 7b
    1505715015    mov ax, word [bp+014h]                    ; 8b 46 14
    1505815016    push ax                                   ; 50
     
    1506115019    push 00d5ch                               ; 68 5c 0d
    1506215020    push strict byte 00004h                   ; 6a 04
    15063     call 01966h                               ; e8 6c 7b
     15021    call 01966h                               ; e8 e3 7b
    1506415022    add sp, strict byte 00008h                ; 83 c4 08
    1506515023    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1507315031    pop bp                                    ; 5d
    1507415032    retn                                      ; c3
    15075 pci_find_classcode_:                         ; 0xf9e13 LB 0x2b
     15033pci_find_classcode_:                         ; 0xf9d9c LB 0x8
    1507615034    push bp                                   ; 55
    1507715035    mov bp, sp                                ; 89 e5
    15078     push bx                                   ; 53
    15079     push cx                                   ; 51
    15080     push si                                   ; 56
    15081     mov cx, dx                                ; 89 d1
    15082     xor si, si                                ; 31 f6
    15083     mov dx, ax                                ; 89 c2
    15084     mov ax, 0b103h                            ; b8 03 b1
    15085     sal ecx, 010h                             ; 66 c1 e1 10
    15086     db  08bh, 0cah
    15087     ; mov cx, dx                                ; 8b ca
    15088     int 01ah                                  ; cd 1a
    15089     cmp ah, 000h                              ; 80 fc 00
    15090     je near 09e34h                            ; 0f 84 03 00
    15091     mov bx, strict word 0ffffh                ; bb ff ff
    15092     mov ax, bx                                ; 89 d8
    15093     lea sp, [bp-006h]                         ; 8d 66 fa
    15094     pop si                                    ; 5e
    15095     pop cx                                    ; 59
    15096     pop bx                                    ; 5b
     15036    mov ax, strict word 0ffffh                ; b8 ff ff
    1509715037    pop bp                                    ; 5d
    1509815038    retn                                      ; c3
    15099 pci_read_config_byte_:                       ; 0xf9e3e LB 0x2e
     15039pci_read_config_byte_:                       ; 0xf9da4 LB 0x2e
    1510015040    push bp                                   ; 55
    1510115041    mov bp, sp                                ; 89 e5
     
    1512315063    pop bp                                    ; 5d
    1512415064    retn                                      ; c3
    15125 pci_read_config_word_:                       ; 0xf9e6c LB 0x2a
     15065pci_read_config_word_:                       ; 0xf9dd2 LB 0x2a
    1512615066    push bp                                   ; 55
    1512715067    mov bp, sp                                ; 89 e5
     
    1514715087    pop bp                                    ; 5d
    1514815088    retn                                      ; c3
    15149 pci_read_config_dword_:                      ; 0xf9e96 LB 0x30
     15089pci_read_config_dword_:                      ; 0xf9dfc LB 0x4e
    1515015090    push bp                                   ; 55
    1515115091    mov bp, sp                                ; 89 e5
    1515215092    push cx                                   ; 51
    1515315093    push di                                   ; 57
     15094    push ax                                   ; 50
    1515415095    mov dh, al                                ; 88 c6
    15155     mov bh, dl                                ; 88 d7
     15096    mov cl, dl                                ; 88 d1
     15097    mov byte [bp-006h], bl                    ; 88 5e fa
    1515615098    mov al, bl                                ; 88 d8
    1515715099    xor ah, ah                                ; 30 e4
    1515815100    mov dl, dh                                ; 88 f2
    1515915101    xor dh, dh                                ; 30 f6
    15160     sal dx, 008h                              ; c1 e2 08
    15161     mov bl, bh                                ; 88 fb
    15162     xor bh, bh                                ; 30 ff
    15163     or bx, dx                                 ; 09 d3
     15102    mov di, dx                                ; 89 d7
     15103    sal di, 008h                              ; c1 e7 08
     15104    mov dl, cl                                ; 88 ca
     15105    or dx, di                                 ; 09 fa
    1516415106    mov di, ax                                ; 89 c7
    15165     mov ax, 0b10ah                            ; b8 0a b1
     15107    mov bx, dx                                ; 89 d3
     15108    mov ax, 0b109h                            ; b8 09 b1
    1516615109    int 01ah                                  ; cd 1a
    15167     db  08bh, 0c1h
    15168     ; mov ax, cx                                ; 8b c1
    15169     shr ecx, 010h                             ; 66 c1 e9 10
    15170     mov dx, cx                                ; 89 ca
     15110    test cx, cx                               ; 85 c9
     15111    jne short 09e3bh                          ; 75 14
     15112    mov al, byte [bp-006h]                    ; 8a 46 fa
     15113    xor ah, ah                                ; 30 e4
     15114    mov di, ax                                ; 89 c7
     15115    inc di                                    ; 47
     15116    inc di                                    ; 47
     15117    mov bx, dx                                ; 89 d3
     15118    mov ax, 0b109h                            ; b8 09 b1
     15119    int 01ah                                  ; cd 1a
     15120    test cx, cx                               ; 85 c9
     15121    je short 09e40h                           ; 74 05
     15122    mov ax, strict word 00001h                ; b8 01 00
     15123    jmp short 09e42h                          ; eb 02
     15124    xor ax, ax                                ; 31 c0
     15125    cwd                                       ; 99
    1517115126    lea sp, [bp-004h]                         ; 8d 66 fc
    1517215127    pop di                                    ; 5f
     
    1517415129    pop bp                                    ; 5d
    1517515130    retn                                      ; c3
    15176 vds_is_present_:                             ; 0xf9ec6 LB 0x1d
     15131vds_is_present_:                             ; 0xf9e4a LB 0x1d
    1517715132    push bx                                   ; 53
    1517815133    push bp                                   ; 55
     
    1518215137    mov es, ax                                ; 8e c0
    1518315138    test byte [es:bx], 020h                   ; 26 f6 07 20
    15184     je short 09edeh                           ; 74 06
     15139    je short 09e62h                           ; 74 06
    1518515140    mov ax, strict word 00001h                ; b8 01 00
    1518615141    pop bp                                    ; 5d
     
    1519115146    pop bx                                    ; 5b
    1519215147    retn                                      ; c3
    15193 vds_real_to_lin_:                            ; 0xf9ee3 LB 0x1e
     15148vds_real_to_lin_:                            ; 0xf9e67 LB 0x1e
    1519415149    push bx                                   ; 53
    1519515150    push cx                                   ; 51
     
    1520215157    sal ax, 1                                 ; d1 e0
    1520315158    rcl dx, 1                                 ; d1 d2
    15204     loop 09ef1h                               ; e2 fa
     15159    loop 09e75h                               ; e2 fa
    1520515160    xor cx, cx                                ; 31 c9
    1520615161    add ax, bx                                ; 01 d8
     
    1521015165    pop bx                                    ; 5b
    1521115166    retn                                      ; c3
    15212 vds_build_sg_list_:                          ; 0xf9f01 LB 0x77
     15167vds_build_sg_list_:                          ; 0xf9e85 LB 0x77
    1521315168    push bp                                   ; 55
    1521415169    mov bp, sp                                ; 89 e5
     
    1522415179    mov bx, word [bp+006h]                    ; 8b 5e 06
    1522515180    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15226     call 09ee3h                               ; e8 c3 ff
     15181    call 09e67h                               ; e8 c3 ff
    1522715182    mov es, si                                ; 8e c6
    1522815183    mov word [es:di+004h], ax                 ; 26 89 45 04
    1522915184    mov word [es:di+006h], dx                 ; 26 89 55 06
    1523015185    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15231     call 09ec6h                               ; e8 93 ff
     15186    call 09e4ah                               ; e8 93 ff
    1523215187    test ax, ax                               ; 85 c0
    15233     je short 09f48h                           ; 74 11
     15188    je short 09ecch                           ; 74 11
    1523415189    mov es, si                                ; 8e c6
    1523515190    mov ax, 08105h                            ; b8 05 81
    1523615191    mov dx, strict word 00000h                ; ba 00 00
    1523715192    int 04bh                                  ; cd 4b
    15238     jc short 09f45h                           ; 72 02
     15193    jc short 09ec9h                           ; 72 02
    1523915194    db  032h, 0c0h
    1524015195    ; xor al, al                                ; 32 c0
    1524115196    cbw                                       ; 98
    15242     jmp short 09f6fh                          ; eb 27
     15197    jmp short 09ef3h                          ; eb 27
    1524315198    mov es, si                                ; 8e c6
    1524415199    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1525715212    pop bp                                    ; 5d
    1525815213    retn 00004h                               ; c2 04 00
    15259 vds_free_sg_list_:                           ; 0xf9f78 LB 0x38
     15214vds_free_sg_list_:                           ; 0xf9efc LB 0x34
    1526015215    push bp                                   ; 55
    1526115216    mov bp, sp                                ; 89 e5
     
    1526315218    push di                                   ; 57
    1526415219    mov bx, ax                                ; 89 c3
    15265     call 09ec6h                               ; e8 44 ff
     15220    call 09e4ah                               ; e8 44 ff
    1526615221    test ax, ax                               ; 85 c0
    15267     je short 09f97h                           ; 74 11
     15222    je short 09f1bh                           ; 74 11
    1526815223    mov di, bx                                ; 89 df
    1526915224    mov es, dx                                ; 8e c2
     
    1527115226    mov dx, strict word 00000h                ; ba 00 00
    1527215227    int 04bh                                  ; cd 4b
    15273     jc short 09f96h                           ; 72 02
     15228    jc short 09f1ah                           ; 72 02
    1527415229    db  032h, 0c0h
    1527515230    ; xor al, al                                ; 32 c0
     
    1528215237    pop bp                                    ; 5d
    1528315238    retn                                      ; c3
    15284     times 0xa db 0
    15285 __U4D:                                       ; 0xf9fb0 LB 0x39
     15239    times 0x6 db 0
     15240__U4D:                                       ; 0xf9f30 LB 0x39
    1528615241    pushfw                                    ; 9c
    1528715242    push eax                                  ; 66 50
     
    1531315268    popfw                                     ; 9d
    1531415269    retn                                      ; c3
    15315 __U4M:                                       ; 0xf9fe9 LB 0x31
     15270__U4M:                                       ; 0xf9f69 LB 0x31
    1531615271    pushfw                                    ; 9c
    1531715272    push eax                                  ; 66 50
     
    1533815293    popfw                                     ; 9d
    1533915294    retn                                      ; c3
    15340 __U8LS:                                      ; 0xfa01a LB 0x10
     15295__U8LS:                                      ; 0xf9f9a LB 0x10
    1534115296    test si, si                               ; 85 f6
    15342     je short 0a029h                           ; 74 0b
     15297    je short 09fa9h                           ; 74 0b
    1534315298    sal dx, 1                                 ; d1 e2
    1534415299    rcl cx, 1                                 ; d1 d1
     
    1534615301    rcl ax, 1                                 ; d1 d0
    1534715302    dec si                                    ; 4e
    15348     jne short 0a01eh                          ; 75 f5
     15303    jne short 09f9eh                          ; 75 f5
    1534915304    retn                                      ; c3
    15350 __U8RS:                                      ; 0xfa02a LB 0x10
     15305__U8RS:                                      ; 0xf9faa LB 0x10
    1535115306    test si, si                               ; 85 f6
    15352     je short 0a039h                           ; 74 0b
     15307    je short 09fb9h                           ; 74 0b
    1535315308    shr ax, 1                                 ; d1 e8
    1535415309    rcr bx, 1                                 ; d1 db
     
    1535615311    rcr dx, 1                                 ; d1 da
    1535715312    dec si                                    ; 4e
    15358     jne short 0a02eh                          ; 75 f5
     15313    jne short 09faeh                          ; 75 f5
    1535915314    retn                                      ; c3
    15360 _fmemset_:                                   ; 0xfa03a LB 0xd
     15315_fmemset_:                                   ; 0xf9fba LB 0xd
    1536115316    push di                                   ; 57
    1536215317    mov es, dx                                ; 8e c2
     
    1536815323    pop di                                    ; 5f
    1536915324    retn                                      ; c3
    15370 _fmemcpy_:                                   ; 0xfa047 LB 0x33
     15325_fmemcpy_:                                   ; 0xf9fc7 LB 0x33
    1537115326    push bp                                   ; 55
    1537215327    db  08bh, 0ech
     
    1538815343    leave                                     ; c9
    1538915344    retn                                      ; c3
    15390     add byte [bx+si-06d60h], dl               ; 00 90 a0 92
    15391     mov AL, byte [0a096h]                     ; a0 96 a0
    15392     xchg si, ax                               ; 96
    15393     mov AL, byte [0a096h]                     ; a0 96 a0
    15394     cbw                                       ; 98
    15395     mov AL, byte [0a098h]                     ; a0 98 a0
    15396     call far 09ea0h:09ea0h                    ; 9a a0 9e a0 9e
    15397     mov AL, byte [0a0a0h]                     ; a0 a0 a0
    15398     movsw                                     ; a5
    15399     mov AL, byte [0a0a7h]                     ; a0 a7 a0
    15400 apm_worker:                                  ; 0xfa07a LB 0x3a
     15345    add byte [bx+si], dl                      ; 00 10
     15346    mov AL, byte [0a012h]                     ; a0 12 a0
     15347    push SS                                   ; 16
     15348    mov AL, byte [0a016h]                     ; a0 16 a0
     15349    push SS                                   ; 16
     15350    mov AL, byte [0a018h]                     ; a0 18 a0
     15351    sbb byte [bx+si-05fe6h], ah               ; 18 a0 1a a0
     15352    push DS                                   ; 1e
     15353    mov AL, byte [0a01eh]                     ; a0 1e a0
     15354    and byte [bx+si-05fdbh], ah               ; 20 a0 25 a0
     15355    daa                                       ; 27
     15356    db  0a0h
     15357apm_worker:                                  ; 0xf9ffa LB 0x3a
    1540115358    sti                                       ; fb
    1540215359    push ax                                   ; 50
     
    1541015367    pop ax                                    ; 58
    1541115368    mov AH, strict byte 053h                  ; b4 53
    15412     jnc short 0a0b0h                          ; 73 25
    15413     jmp word [cs:bp-05fa0h]                   ; 2e ff a6 60 a0
    15414     jmp short 0a0aeh                          ; eb 1c
     15369    jnc short 0a030h                          ; 73 25
     15370    jmp word [cs:bp-06020h]                   ; 2e ff a6 e0 9f
     15371    jmp short 0a02eh                          ; eb 1c
    1541515372    sti                                       ; fb
    1541615373    hlt                                       ; f4
    15417     jmp short 0a0aeh                          ; eb 18
    15418     jmp short 0a0aeh                          ; eb 16
    15419     jmp short 0a0b0h                          ; eb 16
     15374    jmp short 0a02eh                          ; eb 18
     15375    jmp short 0a02eh                          ; eb 16
     15376    jmp short 0a030h                          ; eb 16
    1542015377    mov AH, strict byte 080h                  ; b4 80
    15421     jmp short 0a0b2h                          ; eb 14
    15422     jmp short 0a0b0h                          ; eb 10
     15378    jmp short 0a032h                          ; eb 14
     15379    jmp short 0a030h                          ; eb 10
    1542315380    mov ax, 00102h                            ; b8 02 01
    15424     jmp short 0a0aeh                          ; eb 09
    15425     jmp short 0a0aeh                          ; eb 07
     15381    jmp short 0a02eh                          ; eb 09
     15382    jmp short 0a02eh                          ; eb 07
    1542615383    mov BL, strict byte 000h                  ; b3 00
    1542715384    mov cx, strict word 00000h                ; b9 00 00
    15428     jmp short 0a0aeh                          ; eb 00
     15385    jmp short 0a02eh                          ; eb 00
    1542915386    clc                                       ; f8
    1543015387    retn                                      ; c3
     
    1543215389    stc                                       ; f9
    1543315390    retn                                      ; c3
    15434 apm_pm16_entry:                              ; 0xfa0b4 LB 0x11
     15391apm_pm16_entry:                              ; 0xfa034 LB 0x11
    1543515392    mov AH, strict byte 002h                  ; b4 02
    1543615393    push DS                                   ; 1e
     
    1544015397    add bp, strict byte 00008h                ; 83 c5 08
    1544115398    mov ds, bp                                ; 8e dd
    15442     call 0a07ah                               ; e8 b8 ff
     15399    call 09ffah                               ; e8 b8 ff
    1544315400    pop bp                                    ; 5d
    1544415401    pop DS                                    ; 1f
    1544515402    retf                                      ; cb
    1544615403
    15447   ; Padding 0x393b bytes at 0xfa0c5
    15448   times 14651 db 0
     15404  ; Padding 0x39bb bytes at 0xfa045
     15405  times 14779 db 0
    1544915406
    1545015407section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1549315450    add bp, strict byte 00008h                ; 83 c5 08
    1549415451    push ebp                                  ; 66 55
    15495     mov bp, 0a0b6h                            ; bd b6 a0
     15452    mov bp, 0a036h                            ; bd 36 a0
    1549615453    add byte [bx+si], al                      ; 00 00
    1549715454    push ebp                                  ; 66 55
     
    1588115838
    1588215839section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
    15883     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    15884     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    15885     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
     15840biosorg_check_before_or_at_0E02Eh:           ; 0xfe000 LB 0x30
     15841    times 0x2e db 0
     15842    db  'XM'
    1588615843eoi_both_pics:                               ; 0xfe030 LB 0x4
    1588715844    mov AL, strict byte 020h                  ; b0 20
     
    1589715854    loop 0e039h                               ; e2 f6
    1589815855    retn                                      ; c3
    15899 eoi_jmp_post:                                ; 0xfe044 LB 0x17
     15856eoi_jmp_post:                                ; 0xfe044 LB 0x3
    1590015857    call 0e030h                               ; e8 e9 ff
     15858no_eoi_jmp_post:                             ; 0xfe047 LB 0x8
    1590115859    db  033h, 0c0h
    1590215860    ; xor ax, ax                                ; 33 c0
    1590315861    mov ds, ax                                ; 8e d8
    1590415862    jmp far [00467h]                          ; ff 2e 67 04
    15905     times 0xa db 0
     15863seg_40_value:                                ; 0xfe04f LB 0x2
     15864    inc ax                                    ; 40
     15865    times 0x1 db 0
     15866biosorg_check_before_or_at_0E059h:           ; 0xfe051 LB 0xa
     15867    times 0x8 db 0
    1590615868    db  'XM'
    15907 post:                                        ; 0xfe05b LB 0x69
     15869post:                                        ; 0xfe05b LB 0x6b
    1590815870    cli                                       ; fa
    1590915871    smsw ax                                   ; 0f 01 e0
     
    1591915881    in AL, strict byte 064h                   ; e4 64
    1592015882    test AL, strict byte 004h                 ; a8 04
    15921     je short 0e089h                           ; 74 11
     15883    je short 0e08bh                           ; 74 13
    1592215884    db  08ah, 0c4h
    1592315885    ; mov al, ah                                ; 8a c4
    1592415886    db  00ah, 0c0h
    1592515887    ; or al, al                                 ; 0a c0
    15926     jne short 0e089h                          ; 75 0b
    15927     push strict byte 00040h                   ; 6a 40
    15928     pop DS                                    ; 1f
     15888    jne short 0e08bh                          ; 75 0d
     15889    mov ds, [cs:0e04fh]                       ; 2e 8e 1e 4f e0
    1592915890    cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
    15930     jne short 0e064h                          ; 75 db
     15891    jne short 0e064h                          ; 75 d9
    1593115892    mov AL, strict byte 00fh                  ; b0 0f
    1593215893    out strict byte 070h, AL                  ; e6 70
     
    1593615897    ; mov al, ah                                ; 8a c4
    1593715898    cmp AL, strict byte 009h                  ; 3c 09
    15938     je short 0e0a9h                           ; 74 12
     15899    je short 0e0abh                           ; 74 12
    1593915900    cmp AL, strict byte 00ah                  ; 3c 0a
    15940     je short 0e0a9h                           ; 74 0e
     15901    je short 0e0abh                           ; 74 0e
    1594115902    db  032h, 0c0h
    1594215903    ; xor al, al                                ; 32 c0
     
    1595015911    ; mov al, ah                                ; 8a c4
    1595115912    cmp AL, strict byte 000h                  ; 3c 00
    15952     je short 0e0c4h                           ; 74 15
     15913    je short 0e0c6h                           ; 74 15
    1595315914    cmp AL, strict byte 00dh                  ; 3c 0d
    15954     jnc short 0e0c4h                          ; 73 11
     15915    jnc short 0e0c6h                          ; 73 11
    1595515916    cmp AL, strict byte 009h                  ; 3c 09
    15956     jne short 0e0bah                          ; 75 03
    15957     jmp near 0e366h                           ; e9 ac 02
     15917    jne short 0e0bch                          ; 75 03
     15918    jmp near 0e366h                           ; e9 aa 02
    1595815919    cmp AL, strict byte 005h                  ; 3c 05
    15959     je short 0e044h                           ; 74 86
     15920    je short 0e044h                           ; 74 84
    1596015921    cmp AL, strict byte 00ah                  ; 3c 0a
    15961     je short 0e047h                           ; 74 85
    15962     jmp short 0e0c4h                          ; eb 00
    15963 normal_post:                                 ; 0xfe0c4 LB 0x1ff
     15922    je short 0e047h                           ; 74 83
     15923    jmp short 0e0c6h                          ; eb 00
     15924normal_post:                                 ; 0xfe0c6 LB 0x1ed
    1596415925    mov ax, 07800h                            ; b8 00 78
    1596515926    db  08bh, 0e0h
     
    1598315944    add bx, 01000h                            ; 81 c3 00 10
    1598415945    cmp bx, 09000h                            ; 81 fb 00 90
    15985     jnc short 0e0f7h                          ; 73 0b
     15946    jnc short 0e0f9h                          ; 73 0b
    1598615947    mov es, bx                                ; 8e c3
    1598715948    db  033h, 0ffh
     
    1598915950    mov cx, 08000h                            ; b9 00 80
    1599015951    rep stosw                                 ; f3 ab
    15991     jmp short 0e0e2h                          ; eb eb
     15952    jmp short 0e0e4h                          ; eb eb
    1599215953    mov es, bx                                ; 8e c3
    1599315954    db  033h, 0ffh
     
    1600015961    pop DS                                    ; 1f
    1600115962    cld                                       ; fc
    16002     call 0176dh                               ; e8 65 36
     15963    call 0176dh                               ; e8 63 36
    1600315964    db  033h, 0dbh
    1600415965    ; xor bx, bx                                ; 33 db
     
    1600715968    mov ax, 0ff53h                            ; b8 53 ff
    1600815969    mov dx, 0f000h                            ; ba 00 f0
    16009     call 0e039h                               ; e8 21 ff
     15970    call 0e039h                               ; e8 1f ff
    1601015971    mov bx, 001a0h                            ; bb a0 01
    1601115972    mov cx, strict word 00010h                ; b9 10 00
    16012     call 0e039h                               ; e8 18 ff
     15973    call 0e039h                               ; e8 16 ff
    1601315974    mov ax, 0027fh                            ; b8 7f 02
    1601415975    mov word [00413h], ax                     ; a3 13 04
     
    1604516006    mov ax, 0f000h                            ; b8 00 f0
    1604616007    mov word [00072h], ax                     ; a3 72 00
    16047     call 0e778h                               ; e8 ee 05
     16008    call 0e778h                               ; e8 ec 05
    1604816009    mov ax, 0fe6eh                            ; b8 6e fe
    1604916010    mov word [00068h], ax                     ; a3 68 00
     
    1609716058    mov ax, 0c000h                            ; b8 00 c0
    1609816059    mov dx, 0c800h                            ; ba 00 c8
    16099     call 01600h                               ; e8 ec 33
    16100     call 04eb2h                               ; e8 9b 6c
     16060    call 01600h                               ; e8 ea 33
     16061    call 04e57h                               ; e8 3e 6c
    1610116062    pop DS                                    ; 1f
    1610216063    mov ax, 0ff53h                            ; b8 53 ff
     
    1611116072    mov CL, strict byte 014h                  ; b1 14
    1611216073    mov dx, 00378h                            ; ba 78 03
    16113     call 0ecedh                               ; e8 bb 0a
     16074    call 0ecedh                               ; e8 b9 0a
    1611416075    mov dx, 00278h                            ; ba 78 02
    16115     call 0ecedh                               ; e8 b5 0a
     16076    call 0ecedh                               ; e8 b3 0a
    1611616077    sal bx, 00eh                              ; c1 e3 0e
    1611716078    mov ax, word [00410h]                     ; a1 10 04
     
    1613616097    mov CL, strict byte 00ah                  ; b1 0a
    1613716098    mov dx, 003f8h                            ; ba f8 03
    16138     call 0ed0bh                               ; e8 97 0a
     16099    call 0ed0bh                               ; e8 95 0a
    1613916100    mov dx, 002f8h                            ; ba f8 02
    16140     call 0ed0bh                               ; e8 91 0a
     16101    call 0ed0bh                               ; e8 8f 0a
    1614116102    mov dx, 003e8h                            ; ba e8 03
    16142     call 0ed0bh                               ; e8 8b 0a
     16103    call 0ed0bh                               ; e8 89 0a
    1614316104    mov dx, 002e8h                            ; ba e8 02
    16144     call 0ed0bh                               ; e8 85 0a
     16105    call 0ed0bh                               ; e8 83 0a
    1614516106    sal bx, 009h                              ; c1 e3 09
    1614616107    mov ax, word [00410h]                     ; a1 10 04
     
    1615316114    mov ax, 0f000h                            ; b8 00 f0
    1615416115    mov word [0012ah], ax                     ; a3 2a 01
    16155     mov ax, 0fe7bh                            ; b8 7b fe
     16116    mov ax, 0f8e4h                            ; b8 e4 f8
    1615616117    mov word [001c0h], ax                     ; a3 c0 01
    1615716118    mov ax, 0f000h                            ; b8 00 f0
    1615816119    mov word [001c2h], ax                     ; a3 c2 01
    16159     call 0edbfh                               ; e8 10 0b
    16160     jmp short 0e31bh                          ; eb 6a
    16161     times 0x10 db 0
     16120    call 0edbfh                               ; e8 0e 0b
     16121    jmp short 0e31bh                          ; eb 68
     16122biosorg_check_before_or_at_0E2C1h:           ; 0xfe2b3 LB 0x10
     16123    times 0xe db 0
    1616216124    db  'XM'
    1616316125nmi:                                         ; 0xfe2c3 LB 0x7
     
    1617216134    int 002h                                  ; cd 02
    1617316135    iret                                      ; cf
    16174 hard_drive_post:                             ; 0xfe2d2 LB 0x12c
     16136hard_drive_post:                             ; 0xfe2d2 LB 0xbd
    1617516137    db  033h, 0c0h
    1617616138    ; xor ax, ax                                ; 33 c0
     
    1618716149    mov ax, 0f000h                            ; b8 00 f0
    1618816150    mov word [0004eh], ax                     ; a3 4e 00
    16189     mov ax, 0f8d5h                            ; b8 d5 f8
     16151    mov ax, 0f8d2h                            ; b8 d2 f8
    1619016152    mov word [001d8h], ax                     ; a3 d8 01
    1619116153    mov ax, 0f000h                            ; b8 00 f0
     
    1621416176    call 01c9fh                               ; e8 63 39
    1621516177    call 02118h                               ; e8 d9 3d
    16216     call 098dfh                               ; e8 9d b5
    16217     call 0876ah                               ; e8 25 a4
     16178    call 09868h                               ; e8 26 b5
     16179    call 086f3h                               ; e8 ae a3
    1621816180    call 0ed2fh                               ; e8 e7 09
    1621916181    call 0e2d2h                               ; e8 87 ff
     
    1622516187    call 01600h                               ; e8 a9 32
    1622616188    call 0178dh                               ; e8 33 34
    16227     call 03b0fh                               ; e8 b2 57
     16189    call 03acfh                               ; e8 72 57
    1622816190    sti                                       ; fb
    1622916191    int 019h                                  ; cd 19
     
    1625216214    sti                                       ; fb
    1625316215    retf 00002h                               ; ca 02 00
     16216biosorg_check_before_or_at_0E3FCh:           ; 0xfe38f LB 0x6f
    1625416217    times 0x6d db 0
    1625516218    db  'XM'
     
    1630716270int19_handler:                               ; 0xfe6f2 LB 0x3
    1630816271    jmp near 0f0ach                           ; e9 b7 09
    16309 biosorg_check_0E6F5h:                        ; 0xfe6f5 LB 0x34
     16272biosorg_check_at_0E6F5h:                     ; 0xfe6f5 LB 0xa
    1631016273    or word [bx+si], ax                       ; 09 00
    1631116274    cld                                       ; fc
    1631216275    add byte [bx+di], al                      ; 00 01
    1631316276    je short 0e73ch                           ; 74 40
    16314     times 0x2b db 0
     16277    times 0x3 db 0
     16278biosorg_check_before_or_at_0E727h:           ; 0xfe6ff LB 0x2a
     16279    times 0x28 db 0
    1631516280    db  'XM'
    16316 biosorg_check_0E729h:                        ; 0xfe729 LB 0x10
     16281biosorg_check_at_0E729h:                     ; 0xfe729 LB 0x10
    1631716282    times 0xe db 0
    1631816283    db  'XM'
    16319 biosorg_check_0E739h:                        ; 0xfe739 LB 0x1a
     16284biosorg_check_at_0E739h:                     ; 0xfe739 LB 0x1a
    1632016285    push DS                                   ; 1e
    1632116286    push ES                                   ; 06
     
    1632416289    pop DS                                    ; 1f
    1632516290    cld                                       ; fc
    16326     call 06435h                               ; e8 f3 7c
     16291    call 063bch                               ; e8 7a 7c
    1632716292    popaw                                     ; 61
    1632816293    pop ES                                    ; 07
     
    1636016325    out strict byte 0a1h, AL                  ; e6 a1
    1636116326    retn                                      ; c3
    16362 ebda_post:                                   ; 0xfe778 LB 0xb6
     16327ebda_post:                                   ; 0xfe778 LB 0x45
    1636316328    mov ax, 0e746h                            ; b8 46 e7
    1636416329    mov word [00034h], ax                     ; a3 34 00
     
    1638516350    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
    1638616351    retn                                      ; c3
     16352biosorg_check_before_or_at_0E82Ch:           ; 0xfe7bd LB 0x71
    1638716353    times 0x6f db 0
    1638816354    db  'XM'
    16389 biosorg_check_0E82Eh:                        ; 0xfe82e LB 0x159
     16355biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x36
    1639016356    sti                                       ; fb
    1639116357    push ES                                   ; 06
     
    1639916365    pop DS                                    ; 1f
    1640016366    cld                                       ; fc
    16401     call 056e2h                               ; e8 a0 6e
     16367    call 05687h                               ; e8 45 6e
    1640216368    popaw                                     ; 61
    1640316369    pop DS                                    ; 1f
     
    1641616382    pop DS                                    ; 1f
    1641716383    cld                                       ; fc
    16418     call 056e2h                               ; e8 82 6e
     16384    call 05687h                               ; e8 27 6e
    1641916385    popaw                                     ; 61
    1642016386    pop DS                                    ; 1f
    1642116387    pop ES                                    ; 07
    1642216388    iret                                      ; cf
     16389biosorg_check_before_or_at_0E985h:           ; 0xfe864 LB 0x123
    1642316390    times 0x121 db 0
    1642416391    db  'XM'
    16425 biosorg_check_0E987h:                        ; 0xfe987 LB 0x2d2
     16392biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x5c
    1642616393    cli                                       ; fa
    1642716394    push ax                                   ; 50
     
    1646016427    pop DS                                    ; 1f
    1646116428    cld                                       ; fc
    16462     call 051bah                               ; e8 f1 67
     16429    call 0515fh                               ; e8 96 67
    1646316430    pop ES                                    ; 07
    1646416431    popaw                                     ; 61
     
    1647616443    pop DS                                    ; 1f
    1647716444    cld                                       ; fc
    16478     call 06edbh                               ; e8 fc 84
     16445    call 06e62h                               ; e8 83 84
    1647916446    pop DS                                    ; 1f
    1648016447    pop ES                                    ; 07
    1648116448    popaw                                     ; 61
    1648216449    iret                                      ; cf
     16450biosorg_check_before_or_at_0EC57h:           ; 0xfe9e3 LB 0x276
    1648316451    times 0x274 db 0
    1648416452    db  'XM'
    16485 biosorg_check_0EC59h:                        ; 0xfec59 LB 0x2
     16453biosorg_check_at_0EC59h:                     ; 0xfec59 LB 0x2
    1648616454    jmp short 0ecb0h                          ; eb 55
    1648716455int13_relocated:                             ; 0xfec5b LB 0x55
     
    1649716465    cld                                       ; fc
    1649816466    push 0ece9h                               ; 68 e9 ec
    16499     jmp near 03b53h                           ; e9 e2 4e
     16467    jmp near 03b13h                           ; e9 a2 4e
    1650016468    push ES                                   ; 06
    1650116469    push ax                                   ; 50
     
    1650316471    push cx                                   ; 51
    1650416472    push dx                                   ; 52
    16505     call 03b27h                               ; e8 ae 4e
     16473    call 03ae7h                               ; e8 6e 4e
    1650616474    cmp AL, strict byte 000h                  ; 3c 00
    1650716475    je short 0ecabh                           ; 74 2e
    16508     call 03b3dh                               ; e8 bd 4e
     16476    call 03afdh                               ; e8 7d 4e
    1650916477    pop dx                                    ; 5a
    1651016478    push dx                                   ; 52
     
    1652416492    cld                                       ; fc
    1652516493    push 0ece9h                               ; 68 e9 ec
    16526     jmp near 0414ch                           ; e9 b5 54
     16494    jmp near 0410ch                           ; e9 75 54
    1652716495    and dl, 0e0h                              ; 80 e2 e0
    1652816496    db  03ah, 0c2h
     
    1656416532    jne short 0ecc8h                          ; 75 06
    1656516533    push 0ece9h                               ; 68 e9 ec
    16566     jmp near 0319ah                           ; e9 d2 44
     16534    jmp near 0315ah                           ; e9 92 44
    1656716535int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1656816536    cmp dl, 0e0h                              ; 80 fa e0
     
    1657016538    shr ebx, 010h                             ; 66 c1 eb 10
    1657116539    push bx                                   ; 53
    16572     call 0458eh                               ; e8 b9 58
     16540    call 0454eh                               ; e8 79 58
    1657316541    pop bx                                    ; 5b
    1657416542    sal ebx, 010h                             ; 66 c1 e3 10
     
    1657716545    cmp ah, 040h                              ; 80 fc 40
    1657816546    jnbe short 0ece6h                         ; 77 05
    16579     call 05ab9h                               ; e8 d5 6d
     16547    call 05a5eh                               ; e8 7a 6d
    1658016548    jmp short 0ece9h                          ; eb 03
    16581     call 05f08h                               ; e8 1f 72
     16549    call 05eadh                               ; e8 c4 71
    1658216550int13_out:                                   ; 0xfece9 LB 0x4
    1658316551    pop DS                                    ; 1f
     
    1669016658    aad 00ah                                  ; d5 0a
    1669116659    retn                                      ; c3
    16692 rtc_post:                                    ; 0xfedbf LB 0x198
     16660rtc_post:                                    ; 0xfedbf LB 0x5a
    1669316661    mov AL, strict byte 000h                  ; b0 00
    1669416662    out strict byte 070h, AL                  ; e6 70
     
    1671816686    call 0edb6h                               ; e8 c2 ff
    1671916687    test al, al                               ; 84 c0
    16720     je short 0ee0ah                           ; 74 12
     16688    je short 0ee04h                           ; 74 0c
    1672116689    add cx, 0076ch                            ; 81 c1 6c 07
    1672216690    adc dx, 00100h                            ; 81 d2 00 01
     
    1672416692    ; dec al                                    ; fe c8
    1672516693    jne short 0edf8h                          ; 75 f4
    16726     mov ax, 0046ch                            ; b8 6c 04
    16727     mov dx, 0046eh                            ; ba 6e 04
    1672816694    db  08ah, 0cdh
    1672916695    ; mov cl, ch                                ; 8a cd
     
    1673816704    mov byte [00470h], dh                     ; 88 36 70 04
    1673916705    retn                                      ; c3
    16740     times 0x136 db 0
     16706biosorg_check_before_or_at_0EF55h:           ; 0xfee19 LB 0x13e
     16707    times 0x13c db 0
    1674116708    db  'XM'
    16742 int0e_handler:                               ; 0xfef57 LB 0x70
     16709int0e_handler:                               ; 0xfef57 LB 0x3b
    1674316710    push ax                                   ; 50
    1674416711    push dx                                   ; 52
     
    1677316740    pop ax                                    ; 58
    1677416741    iret                                      ; cf
     16742biosorg_check_before_or_at_0EFC5h:           ; 0xfef92 LB 0x35
    1677516743    times 0x33 db 0
    1677616744    db  'XM'
     
    1678416752    db  0f6h
    1678516753    invd                                      ; 0f 08
    16786 biosorg_check_0EFD2h:                        ; 0xfefd2 LB 0x2
     16754biosorg_check_at_0EFD2h:                     ; 0xfefd2 LB 0x2
    1678716755    jmp short 0efd4h                          ; eb 00
    1678816756int17_handler:                               ; 0xfefd4 LB 0xd
     
    1679316761    pop DS                                    ; 1f
    1679416762    cld                                       ; fc
    16795     call 07879h                               ; e8 9c 88
     16763    call 07800h                               ; e8 23 88
    1679616764    popaw                                     ; 61
    1679716765    pop ES                                    ; 07
     
    1680216770_rmode_IDT:                                  ; 0xfefe7 LB 0x6
    1680316771    db  0ffh, 003h, 000h, 000h, 000h, 000h
    16804 int1c_handler:                               ; 0xfefed LB 0x58
     16772int1c_handler:                               ; 0xfefed LB 0x1
    1680516773    iret                                      ; cf
     16774biosorg_check_before_or_at_0F043h:           ; 0xfefee LB 0x57
    1680616775    times 0x55 db 0
    1680716776    db  'XM'
    16808 biosorg_check_0F045h:                        ; 0xff045 LB 0x20
     16777biosorg_check_at_0F045h:                     ; 0xff045 LB 0x1
    1680916778    iret                                      ; cf
     16779biosorg_check_before_or_at_0F063h:           ; 0xff046 LB 0x1f
    1681016780    times 0x1d db 0
    1681116781    db  'XM'
    16812 int10_handler:                               ; 0xff065 LB 0x3f
     16782int10_handler:                               ; 0xff065 LB 0x1
    1681316783    iret                                      ; cf
     16784biosorg_check_before_or_at_0F0A2h:           ; 0xff066 LB 0x3e
    1681416785    times 0x3c db 0
    1681516786    db  'XM'
    16816 biosorg_check_0F0A4h:                        ; 0xff0a4 LB 0x8
     16787biosorg_check_at_0F0A4h:                     ; 0xff0a4 LB 0x8
    1681716788    push CS                                   ; 0e
    1681816789    pop DS                                    ; 1f
     
    1682116792    hlt                                       ; f4
    1682216793    iret                                      ; cf
    16823 int19_relocated:                             ; 0xff0ac LB 0x91
     16794int19_relocated:                             ; 0xff0ac LB 0x90
    1682416795    db  08bh, 0ech
    1682516796    ; mov bp, sp                                ; 8b ec
     
    1684116812    mov ax, strict word 00001h                ; b8 01 00
    1684216813    push ax                                   ; 50
    16843     call 04c2eh                               ; e8 5e 5b
     16814    call 04bd3h                               ; e8 03 5b
    1684416815    inc sp                                    ; 44
    1684516816    inc sp                                    ; 44
    1684616817    test ax, ax                               ; 85 c0
    16847     jne short 0f0feh                          ; 75 28
     16818    jne short 0f0fdh                          ; 75 27
    1684816819    mov ax, strict word 00002h                ; b8 02 00
    1684916820    push ax                                   ; 50
    16850     call 04c2eh                               ; e8 51 5b
     16821    call 04bd3h                               ; e8 f6 5a
    1685116822    inc sp                                    ; 44
    1685216823    inc sp                                    ; 44
    1685316824    test ax, ax                               ; 85 c0
    16854     jne short 0f0feh                          ; 75 1b
     16825    jne short 0f0fdh                          ; 75 1a
    1685516826    mov ax, strict word 00003h                ; b8 03 00
    16856     push strict byte 00003h                   ; 6a 03
    16857     call 04c2eh                               ; e8 43 5b
     16827    push ax                                   ; 50
     16828    call 04bd3h                               ; e8 e9 5a
    1685816829    inc sp                                    ; 44
    1685916830    inc sp                                    ; 44
    1686016831    test ax, ax                               ; 85 c0
    16861     jne short 0f0feh                          ; 75 0d
     16832    jne short 0f0fdh                          ; 75 0d
    1686216833    mov ax, strict word 00004h                ; b8 04 00
    1686316834    push ax                                   ; 50
    16864     call 04c2eh                               ; e8 36 5b
     16835    call 04bd3h                               ; e8 dc 5a
    1686516836    inc sp                                    ; 44
    1686616837    inc sp                                    ; 44
    1686716838    test ax, ax                               ; 85 c0
    16868     je short 0f0a4h                           ; 74 a6
     16839    je short 0f0a4h                           ; 74 a7
    1686916840    mov word [byte bp+000h], ax               ; 89 46 00
    1687016841    sal ax, 004h                              ; c1 e0 04
     
    1689516866    pop eax                                   ; 66 58
    1689616867    retn                                      ; c3
    16897 pcibios_init_iomem_bases:                    ; 0xff13d LB 0x16
     16868pcibios_init_iomem_bases:                    ; 0xff13c LB 0x16
    1689816869    push bp                                   ; 55
    1689916870    db  08bh, 0ech
     
    1690616877    push ax                                   ; 50
    1690716878    mov bx, strict word 00008h                ; bb 08 00
    16908 pci_init_io_loop1:                           ; 0xff153 LB 0xe
     16879pci_init_io_loop1:                           ; 0xff152 LB 0xe
    1690916880    mov DL, strict byte 000h                  ; b2 00
    16910     call 0f122h                               ; e8 ca ff
     16881    call 0f121h                               ; e8 ca ff
    1691116882    mov dx, 00cfch                            ; ba fc 0c
    1691216883    in ax, DX                                 ; ed
    1691316884    cmp ax, strict byte 0ffffh                ; 83 f8 ff
    16914     je short 0f19ah                           ; 74 39
    16915 enable_iomem_space:                          ; 0xff161 LB 0x39
     16885    je short 0f199h                           ; 74 39
     16886enable_iomem_space:                          ; 0xff160 LB 0x39
    1691616887    mov DL, strict byte 004h                  ; b2 04
    16917     call 0f122h                               ; e8 bc ff
     16888    call 0f121h                               ; e8 bc ff
    1691816889    mov dx, 00cfch                            ; ba fc 0c
    1691916890    in AL, DX                                 ; ec
     
    1692116892    out DX, AL                                ; ee
    1692216893    mov DL, strict byte 000h                  ; b2 00
    16923     call 0f122h                               ; e8 b0 ff
     16894    call 0f121h                               ; e8 b0 ff
    1692416895    mov dx, 00cfch                            ; ba fc 0c
    1692516896    in eax, DX                                ; 66 ed
    1692616897    cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
    16927     jne short 0f19ah                          ; 75 1b
     16898    jne short 0f199h                          ; 75 1b
    1692816899    mov DL, strict byte 010h                  ; b2 10
    16929     call 0f122h                               ; e8 9e ff
     16900    call 0f121h                               ; e8 9e ff
    1693016901    mov dx, 00cfch                            ; ba fc 0c
    1693116902    in ax, DX                                 ; ed
     
    1694116912    add dx, strict byte 00018h                ; 83 c2 18
    1694216913    in eax, DX                                ; 66 ed
    16943 next_pci_dev:                                ; 0xff19a LB 0xf
     16914next_pci_dev:                                ; 0xff199 LB 0xf
    1694416915    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    1694516916    inc bx                                    ; 43
    1694616917    cmp bx, 00100h                            ; 81 fb 00 01
    16947     jne short 0f153h                          ; 75 ae
     16918    jne short 0f152h                          ; 75 ae
    1694816919    db  08bh, 0e5h
    1694916920    ; mov sp, bp                                ; 8b e5
    1695016921    pop bp                                    ; 5d
    1695116922    retn                                      ; c3
    16952 pcibios_init_set_elcr:                       ; 0xff1a9 LB 0xc
     16923pcibios_init_set_elcr:                       ; 0xff1a8 LB 0xc
    1695316924    push ax                                   ; 50
    1695416925    push cx                                   ; 51
    1695516926    mov dx, 004d0h                            ; ba d0 04
    1695616927    test AL, strict byte 008h                 ; a8 08
    16957     je short 0f1b5h                           ; 74 03
     16928    je short 0f1b4h                           ; 74 03
    1695816929    inc dx                                    ; 42
    1695916930    and AL, strict byte 007h                  ; 24 07
    16960 is_master_pic:                               ; 0xff1b5 LB 0xd
     16931is_master_pic:                               ; 0xff1b4 LB 0xd
    1696116932    db  08ah, 0c8h
    1696216933    ; mov cl, al                                ; 8a c8
     
    1697016941    pop ax                                    ; 58
    1697116942    retn                                      ; c3
    16972 pcibios_init_irqs:                           ; 0xff1c2 LB 0x53
     16943pcibios_init_irqs:                           ; 0xff1c1 LB 0x53
    1697316944    push DS                                   ; 1e
    1697416945    push bp                                   ; 55
     
    1698416955    mov bl, byte [si+009h]                    ; 8a 5c 09
    1698516956    mov DL, strict byte 000h                  ; b2 00
    16986     call 0f122h                               ; e8 43 ff
     16957    call 0f121h                               ; e8 43 ff
    1698716958    mov dx, 00cfch                            ; ba fc 0c
    1698816959    in eax, DX                                ; 66 ed
    1698916960    cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
    16990     jne near 0f292h                           ; 0f 85 a6 00
     16961    jne near 0f291h                           ; 0f 85 a6 00
    1699116962    mov dl, byte [si+022h]                    ; 8a 54 22
    16992     call 0f122h                               ; e8 30 ff
     16963    call 0f121h                               ; e8 30 ff
    1699316964    push bx                                   ; 53
    1699416965    mov dx, 00cfch                            ; ba fc 0c
     
    1700516976    db  08bh, 0ech
    1700616977    ; mov bp, sp                                ; 8b ec
    17007     mov ax, 0f11eh                            ; b8 1e f1
     16978    mov ax, 0f11dh                            ; b8 1d f1
    1700816979    push ax                                   ; 50
    1700916980    db  033h, 0c0h
    1701016981    ; xor ax, ax                                ; 33 c0
    1701116982    push ax                                   ; 50
    17012 pci_init_irq_loop1:                          ; 0xff215 LB 0x5
     16983pci_init_irq_loop1:                          ; 0xff214 LB 0x5
    1701316984    mov bh, byte [si]                         ; 8a 3c
    1701416985    mov bl, byte [si+001h]                    ; 8a 5c 01
    17015 pci_init_irq_loop2:                          ; 0xff21a LB 0x15
     16986pci_init_irq_loop2:                          ; 0xff219 LB 0x15
    1701616987    mov DL, strict byte 000h                  ; b2 00
    17017     call 0f122h                               ; e8 03 ff
     16988    call 0f121h                               ; e8 03 ff
    1701816989    mov dx, 00cfch                            ; ba fc 0c
    1701916990    in ax, DX                                 ; ed
    1702016991    cmp ax, strict byte 0ffffh                ; 83 f8 ff
    17021     jne short 0f22fh                          ; 75 07
     16992    jne short 0f22eh                          ; 75 07
    1702216993    test bl, 007h                             ; f6 c3 07
    17023     je short 0f286h                           ; 74 59
    17024     jmp short 0f27ch                          ; eb 4d
    17025 pci_test_int_pin:                            ; 0xff22f LB 0x3c
     16994    je short 0f285h                           ; 74 59
     16995    jmp short 0f27bh                          ; eb 4d
     16996pci_test_int_pin:                            ; 0xff22e LB 0x3c
    1702616997    mov DL, strict byte 03ch                  ; b2 3c
    17027     call 0f122h                               ; e8 ee fe
     16998    call 0f121h                               ; e8 ee fe
    1702816999    mov dx, 00cfdh                            ; ba fd 0c
    1702917000    in AL, DX                                 ; ec
    1703017001    and AL, strict byte 007h                  ; 24 07
    17031     je short 0f27ch                           ; 74 40
     17002    je short 0f27bh                           ; 74 40
    1703217003    db  0feh, 0c8h
    1703317004    ; dec al                                    ; fe c8
     
    1704317014    ; mov dl, al                                ; 8a d0
    1704417015    mov bx, word [byte bp+000h]               ; 8b 5e 00
    17045     call 0f122h                               ; e8 d0 fe
     17016    call 0f121h                               ; e8 d0 fe
    1704617017    mov dx, 00cfch                            ; ba fc 0c
    1704717018    and AL, strict byte 003h                  ; 24 03
     
    1705017021    in AL, DX                                 ; ec
    1705117022    cmp AL, strict byte 080h                  ; 3c 80
    17052     jc short 0f26bh                           ; 72 0d
     17023    jc short 0f26ah                           ; 72 0d
    1705317024    mov bx, word [bp-002h]                    ; 8b 5e fe
    1705417025    mov al, byte [bx]                         ; 8a 07
     
    1705617027    inc bx                                    ; 43
    1705717028    mov word [bp-002h], bx                    ; 89 5e fe
    17058     call 0f1a9h                               ; e8 3e ff
    17059 pirq_found:                                  ; 0xff26b LB 0x11
     17029    call 0f1a8h                               ; e8 3e ff
     17030pirq_found:                                  ; 0xff26a LB 0x11
    1706017031    mov bh, byte [si]                         ; 8a 3c
    1706117032    mov bl, byte [si+001h]                    ; 8a 5c 01
    1706217033    add bl, byte [bp-003h]                    ; 02 5e fd
    1706317034    mov DL, strict byte 03ch                  ; b2 3c
    17064     call 0f122h                               ; e8 aa fe
     17035    call 0f121h                               ; e8 aa fe
    1706517036    mov dx, 00cfch                            ; ba fc 0c
    1706617037    out DX, AL                                ; ee
    17067 next_pci_func:                               ; 0xff27c LB 0xa
     17038next_pci_func:                               ; 0xff27b LB 0xa
    1706817039    inc byte [bp-003h]                        ; fe 46 fd
    1706917040    db  0feh, 0c3h
    1707017041    ; inc bl                                    ; fe c3
    1707117042    test bl, 007h                             ; f6 c3 07
    17072     jne short 0f21ah                          ; 75 94
    17073 next_pir_entry:                              ; 0xff286 LB 0xc
     17043    jne short 0f219h                          ; 75 94
     17044next_pir_entry:                              ; 0xff285 LB 0xc
    1707417045    add si, strict byte 00010h                ; 83 c6 10
    1707517046    mov byte [bp-003h], 000h                  ; c6 46 fd 00
    17076     loop 0f215h                               ; e2 86
     17047    loop 0f214h                               ; e2 86
    1707717048    db  08bh, 0e5h
    1707817049    ; mov sp, bp                                ; 8b e5
    1707917050    pop bx                                    ; 5b
    17080 pci_init_end:                                ; 0xff292 LB 0x2e
     17051pci_init_end:                                ; 0xff291 LB 0x2f
    1708117052    pop bp                                    ; 5d
    1708217053    pop DS                                    ; 1f
    1708317054    retn                                      ; c3
    17084     db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h
    17085     db  001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h
    17086     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
     17055    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h
     17056    db  000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h
     17057    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
    1708717058_pci_routing_table:                          ; 0xff2c0 LB 0x1e0
    1708817059    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
     
    1711617087    db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
    1711717088    db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
    17118 _pci_routing_table_size:                     ; 0xff4a0 LB 0x3a1
     17089_pci_routing_table_size:                     ; 0xff4a0 LB 0x2
    1711917090    loopne 0f4a3h                             ; e0 01
     17091biosorg_check_before_or_at_0F83Fh:           ; 0xff4a2 LB 0x39f
    1712017092    times 0x39d db 0
    1712117093    db  'XM'
     
    1715417126    cmp ah, 0c2h                              ; 80 fc c2
    1715517127    je short 0f887h                           ; 74 0e
    17156     call 06647h                               ; e8 cb 6d
     17128    call 065ceh                               ; e8 52 6d
    1715717129    popaw                                     ; 61
    1715817130    pop ES                                    ; 07
     
    1716017132    popfw                                     ; 9d
    1716117133    jmp short 0f893h                          ; eb 11
    17162     call 09a31h                               ; e8 ac a1
     17134    call 099bah                               ; e8 35 a1
    1716317135    jmp short 0f87ch                          ; eb f5
    1716417136int15_handler_mouse:                         ; 0xff887 LB 0x5
    17165     call 074ech                               ; e8 62 7c
     17137    call 07473h                               ; e8 e9 7b
    1716617138    jmp short 0f87ch                          ; eb f0
    1716717139int15_handler32:                             ; 0xff88c LB 0x7
    1716817140    pushaw                                    ; 60
    17169     call 06b1fh                               ; e8 8f 72
     17141    call 06aa6h                               ; e8 16 72
    1717017142    popaw                                     ; 61
    1717117143    jmp short 0f87dh                          ; eb ea
     
    1718417156    pop bp                                    ; 5d
    1718517157    iret                                      ; cf
    17186 int74_handler:                               ; 0xff8a7 LB 0x2e
     17158int74_handler:                               ; 0xff8a7 LB 0x2b
    1718717159    sti                                       ; fb
    1718817160    pushaw                                    ; 60
    1718917161    push ES                                   ; 06
    1719017162    push DS                                   ; 1e
    17191     push strict byte 00000h                   ; 6a 00
    17192     push strict byte 00000h                   ; 6a 00
    17193     push strict byte 00000h                   ; 6a 00
    17194     push strict byte 00000h                   ; 6a 00
    17195     push strict byte 00000h                   ; 6a 00
     17163    db  033h, 0c0h
     17164    ; xor ax, ax                                ; 33 c0
     17165    push ax                                   ; 50
     17166    push ax                                   ; 50
     17167    push ax                                   ; 50
     17168    push ax                                   ; 50
     17169    push ax                                   ; 50
    1719617170    push CS                                   ; 0e
    1719717171    pop DS                                    ; 1f
    1719817172    cld                                       ; fc
    17199     call 0741ah                               ; e8 5f 7b
     17173    call 073a1h                               ; e8 e9 7a
    1720017174    pop cx                                    ; 59
    17201     jcxz 0f8cah                               ; e3 0c
     17175    jcxz 0f8c7h                               ; e3 0c
    1720217176    push strict byte 00000h                   ; 6a 00
    1720317177    pop DS                                    ; 1f
     
    1720617180    call far [word 00022h]                    ; ff 1e 22 00
    1720717181    cli                                       ; fa
    17208     call 0e030h                               ; e8 62 e7
     17182    call 0e030h                               ; e8 65 e7
    1720917183    add sp, strict byte 00008h                ; 83 c4 08
    1721017184    pop DS                                    ; 1f
     
    1721217186    popaw                                     ; 61
    1721317187    iret                                      ; cf
    17214 int76_handler:                               ; 0xff8d5 LB 0x199
     17188int76_handler:                               ; 0xff8d2 LB 0x12
    1721517189    push ax                                   ; 50
    1721617190    push DS                                   ; 1e
     
    1721817192    mov ds, ax                                ; 8e d8
    1721917193    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    17220     call 0e030h                               ; e8 4c e7
     17194    call 0e030h                               ; e8 4f e7
    1722117195    pop DS                                    ; 1f
    1722217196    pop ax                                    ; 58
    1722317197    iret                                      ; cf
    17224     times 0x185 db 0
     17198int70_handler:                               ; 0xff8e4 LB 0x1f
     17199    push ES                                   ; 06
     17200    push DS                                   ; 1e
     17201    pushaw                                    ; 60
     17202    push CS                                   ; 0e
     17203    pop DS                                    ; 1f
     17204    cld                                       ; fc
     17205    call 07046h                               ; e8 59 77
     17206    popaw                                     ; 61
     17207    pop DS                                    ; 1f
     17208    pop ES                                    ; 07
     17209    iret                                      ; cf
     17210    jnbe short 0f8f8h                         ; 77 05
     17211    cmp ax, 000b0h                            ; 3d b0 00
     17212    jc short 0f900h                           ; 72 08
     17213    db  033h, 0d2h
     17214    ; xor dx, dx                                ; 33 d2
     17215    db  033h, 0c0h
     17216    ; xor ax, ax                                ; 33 c0
     17217    inc byte [word 00070h]                    ; fe 06 70 00
     17218    jmp near 0fec1h                           ; e9 be 05
     17219biosorg_check_before_or_at_0FA6Ch:           ; 0xff903 LB 0x16b
     17220    times 0x169 db 0
    1722517221    db  'XM'
    1722617222font8x8:                                     ; 0xffa6e LB 0x400
     
    1728917285    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1729017286    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    17291 biosorg_check_0FE6Eh:                        ; 0xffe6e LB 0xd
     17287biosorg_check_at_0FE6Eh:                     ; 0xffe6e LB 0xd
    1729217288    push ES                                   ; 06
    1729317289    push DS                                   ; 1e
     
    1729617292    pop DS                                    ; 1f
    1729717293    cld                                       ; fc
    17298     call 0717eh                               ; e8 07 73
     17294    call 07105h                               ; e8 8e 72
    1729917295    popaw                                     ; 61
    1730017296    pop DS                                    ; 1f
    1730117297    pop ES                                    ; 07
    1730217298    iret                                      ; cf
    17303 int70_handler:                               ; 0xffe7b LB 0x2a
    17304     push ES                                   ; 06
    17305     push DS                                   ; 1e
    17306     pushaw                                    ; 60
    17307     push CS                                   ; 0e
    17308     pop DS                                    ; 1f
    17309     cld                                       ; fc
    17310     call 070bfh                               ; e8 3b 72
    17311     popaw                                     ; 61
    17312     pop DS                                    ; 1f
    17313     pop ES                                    ; 07
    17314     iret                                      ; cf
    17315     times 0x1b db 0
     17299biosorg_check_before_or_at_0FEA3h:           ; 0xffe7b LB 0x2a
     17300    times 0x28 db 0
    1731617301    db  'XM'
    17317 int08_handler:                               ; 0xffea5 LB 0x4e
     17302int08_handler:                               ; 0xffea5 LB 0x42
    1731817303    sti                                       ; fb
    1731917304    push ax                                   ; 50
    17320     push bx                                   ; 53
    1732117305    push DS                                   ; 1e
    1732217306    push dx                                   ; 52
     
    1732417308    mov ds, ax                                ; 8e d8
    1732517309    mov ax, word [0006ch]                     ; a1 6c 00
    17326     mov bx, word [word 0006eh]                ; 8b 1e 6e 00
    17327     add ax, strict byte 00001h                ; 83 c0 01
    17328     adc bx, strict byte 00000h                ; 83 d3 00
    17329     cmp bx, strict byte 00018h                ; 83 fb 18
    17330     jc short 0fed0h                           ; 72 0f
    17331     jnbe short 0fec8h                         ; 77 05
    17332     cmp ax, 000b0h                            ; 3d b0 00
    17333     jc short 0fed0h                           ; 72 08
    17334     db  033h, 0c0h
    17335     ; xor ax, ax                                ; 33 c0
    17336     db  033h, 0dbh
    17337     ; xor bx, bx                                ; 33 db
    17338     inc byte [word 00070h]                    ; fe 06 70 00
     17310    mov dx, word [word 0006eh]                ; 8b 16 6e 00
     17311    inc ax                                    ; 40
     17312    jne short 0feb9h                          ; 75 01
     17313    inc dx                                    ; 42
     17314    cmp dx, strict byte 00018h                ; 83 fa 18
     17315    jc short 0fec1h                           ; 72 03
     17316    jmp near 0f8f1h                           ; e9 30 fa
    1733917317    mov word [0006ch], ax                     ; a3 6c 00
    17340     mov word [word 0006eh], bx                ; 89 1e 6e 00
     17318    mov word [word 0006eh], dx                ; 89 16 6e 00
    1734117319    mov AL, byte [00040h]                     ; a0 40 00
    1734217320    db  00ah, 0c0h
    1734317321    ; or al, al                                 ; 0a c0
    17344     je short 0feech                           ; 74 0e
     17322    je short 0feddh                           ; 74 0e
    1734517323    db  0feh, 0c8h
    1734617324    ; dec al                                    ; fe c8
    1734717325    mov byte [00040h], AL                     ; a2 40 00
    17348     jne short 0feech                          ; 75 07
     17326    jne short 0feddh                          ; 75 07
    1734917327    mov dx, 003f2h                            ; ba f2 03
    1735017328    in AL, DX                                 ; ec
     
    1735317331    int 01ch                                  ; cd 1c
    1735417332    cli                                       ; fa
    17355     call 05734h                               ; e8 42 58
    17356     dec bp                                    ; 4d
    17357 biosorg_check_0FEF3h:                        ; 0xffef3 LB 0xd
     17333    call 0e034h                               ; e8 51 e1
     17334    pop dx                                    ; 5a
    1735817335    pop DS                                    ; 1f
    17359     pop bx                                    ; 5b
    1736017336    pop ax                                    ; 58
    1736117337    iret                                      ; cf
    17362     add byte [bx+si], al                      ; 00 00
    17363     add byte [bx+si], al                      ; 00 00
    17364     add byte [bx+si], al                      ; 00 00
    17365     add byte [bx+si+04dh], bl                 ; 00 58 4d
    17366 biosorg_check_0FF00h:                        ; 0xfff00 LB 0x53
     17338biosorg_check_before_or_at_0FEF1h:           ; 0xffee7 LB 0xc
     17339    times 0xa db 0
     17340    db  'XM'
     17341biosorg_check_at_0FEF3h:                     ; 0xffef3 LB 0xd
     17342    times 0xb db 0
     17343    db  'XM'
     17344biosorg_check_at_0FF00h:                     ; 0xfff00 LB 0x19
    1736717345    dec di                                    ; 4f
    1736817346    jc short 0ff64h                           ; 72 61
     
    1738017358    dec di                                    ; 4f
    1738117359    push bx                                   ; 53
     17360biosorg_check_before_or_at_0FF51h:           ; 0xfff19 LB 0x3a
    1738217361    times 0x38 db 0
    1738317362    db  'XM'
    1738417363dummy_iret:                                  ; 0xfff53 LB 0x1
    1738517364    iret                                      ; cf
    17386 biosorg_check_0FF54h:                        ; 0xfff54 LB 0x9c
     17365biosorg_check_at_0FF54h:                     ; 0xfff54 LB 0x2c
    1738717366    iret                                      ; cf
    1738817367    mov ax, ax                                ; 89 c0
     
    1741217391    add byte [bx+si], al                      ; 00 00
    1741317392    add byte [di], ah                         ; 00 25
    17414     times 0x6f db 0
     17393    times 0x1 db 0
     17394biosorg_check_before_or_at_0FFEEh:           ; 0xfff80 LB 0x70
     17395    times 0x6e db 0
    1741517396    db  'XM'
    1741617397cpu_reset:                                   ; 0xffff0 LB 0x10
    1741717398    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17418     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 00eh
     17399    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0ffh
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