VirtualBox

Changeset 60443 in vbox


Ignore:
Timestamp:
Apr 11, 2016 9:31:34 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
106529
Message:

PCBIOS: regenerated alternative bios.

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

    r60422 r60443  
    1 95481da57ef1489fb5666e8c8c2ca238 *VBoxPcBios286.rom
     172bd720065b63f96ad5945490ffeef78 *VBoxPcBios286.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm

    r60441 r60443  
    1541515415    loop 0e039h                               ; e2 f6
    1541615416    retn                                      ; c3
    15417 eoi_jmp_post:                                ; 0xfe044 LB 0xb
     15417eoi_jmp_post:                                ; 0xfe044 LB 0x3
    1541815418    call 0e030h                               ; e8 e9 ff
     15419no_eoi_jmp_post:                             ; 0xfe047 LB 0x8
    1541915420    db  033h, 0c0h
    1542015421    ; xor ax, ax                                ; 33 c0
    1542115422    mov ds, ax                                ; 8e d8
    1542215423    jmp far [00467h]                          ; ff 2e 67 04
    15423 biosorg_check_before_or_at_0E059h:           ; 0xfe04f LB 0xc
    15424     times 0xa db 0
     15424seg_40_value:                                ; 0xfe04f LB 0x2
     15425    inc ax                                    ; 40
     15426    times 0x1 db 0
     15427biosorg_check_before_or_at_0E059h:           ; 0xfe051 LB 0xa
     15428    times 0x8 db 0
    1542515429    db  'XM'
    15426 post:                                        ; 0xfe05b LB 0x69
     15430post:                                        ; 0xfe05b LB 0x6b
    1542715431    cli                                       ; fa
    1542815432    smsw ax                                   ; 0f 01 e0
     
    1543815442    in AL, strict byte 064h                   ; e4 64
    1543915443    test AL, strict byte 004h                 ; a8 04
    15440     je short 0e089h                           ; 74 11
     15444    je short 0e08bh                           ; 74 13
    1544115445    db  08ah, 0c4h
    1544215446    ; mov al, ah                                ; 8a c4
    1544315447    db  00ah, 0c0h
    1544415448    ; or al, al                                 ; 0a c0
    15445     jne short 0e089h                          ; 75 0b
    15446     push strict byte 00040h                   ; 6a 40
    15447     pop DS                                    ; 1f
     15449    jne short 0e08bh                          ; 75 0d
     15450    mov ds, [cs:0e04fh]                       ; 2e 8e 1e 4f e0
    1544815451    cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
    15449     jne short 0e064h                          ; 75 db
     15452    jne short 0e064h                          ; 75 d9
    1545015453    mov AL, strict byte 00fh                  ; b0 0f
    1545115454    out strict byte 070h, AL                  ; e6 70
     
    1545515458    ; mov al, ah                                ; 8a c4
    1545615459    cmp AL, strict byte 009h                  ; 3c 09
    15457     je short 0e0a9h                           ; 74 12
     15460    je short 0e0abh                           ; 74 12
    1545815461    cmp AL, strict byte 00ah                  ; 3c 0a
    15459     je short 0e0a9h                           ; 74 0e
     15462    je short 0e0abh                           ; 74 0e
    1546015463    db  032h, 0c0h
    1546115464    ; xor al, al                                ; 32 c0
     
    1546915472    ; mov al, ah                                ; 8a c4
    1547015473    cmp AL, strict byte 000h                  ; 3c 00
    15471     je short 0e0c4h                           ; 74 15
     15474    je short 0e0c6h                           ; 74 15
    1547215475    cmp AL, strict byte 00dh                  ; 3c 0d
    15473     jnc short 0e0c4h                          ; 73 11
     15476    jnc short 0e0c6h                          ; 73 11
    1547415477    cmp AL, strict byte 009h                  ; 3c 09
    15475     jne short 0e0bah                          ; 75 03
    15476     jmp near 0e366h                           ; e9 ac 02
     15478    jne short 0e0bch                          ; 75 03
     15479    jmp near 0e366h                           ; e9 aa 02
    1547715480    cmp AL, strict byte 005h                  ; 3c 05
    15478     je short 0e044h                           ; 74 86
     15481    je short 0e044h                           ; 74 84
    1547915482    cmp AL, strict byte 00ah                  ; 3c 0a
    15480     je short 0e047h                           ; 74 85
    15481     jmp short 0e0c4h                          ; eb 00
    15482 normal_post:                                 ; 0xfe0c4 LB 0x1f6
     15483    je short 0e047h                           ; 74 83
     15484    jmp short 0e0c6h                          ; eb 00
     15485normal_post:                                 ; 0xfe0c6 LB 0x1f6
    1548315486    mov ax, 07800h                            ; b8 00 78
    1548415487    db  08bh, 0e0h
     
    1550215505    add bx, 01000h                            ; 81 c3 00 10
    1550315506    cmp bx, 09000h                            ; 81 fb 00 90
    15504     jnc short 0e0f7h                          ; 73 0b
     15507    jnc short 0e0f9h                          ; 73 0b
    1550515508    mov es, bx                                ; 8e c3
    1550615509    db  033h, 0ffh
     
    1550815511    mov cx, 08000h                            ; b9 00 80
    1550915512    rep stosw                                 ; f3 ab
    15510     jmp short 0e0e2h                          ; eb eb
     15513    jmp short 0e0e4h                          ; eb eb
    1551115514    mov es, bx                                ; 8e c3
    1551215515    db  033h, 0ffh
     
    1551915522    pop DS                                    ; 1f
    1552015523    cld                                       ; fc
    15521     call 01777h                               ; e8 6f 36
    15522     call 0e8e0h                               ; e8 d5 07
     15524    call 01777h                               ; e8 6d 36
     15525    call 0e8e0h                               ; e8 d3 07
    1552315526    db  033h, 0dbh
    1552415527    ; xor bx, bx                                ; 33 db
     
    1552715530    mov ax, 0ff53h                            ; b8 53 ff
    1552815531    mov dx, 0f000h                            ; ba 00 f0
    15529     call 0e039h                               ; e8 1e ff
     15532    call 0e039h                               ; e8 1c ff
    1553015533    mov bx, 001a0h                            ; bb a0 01
    1553115534    mov cx, strict word 00010h                ; b9 10 00
    15532     call 0e039h                               ; e8 15 ff
     15535    call 0e039h                               ; e8 13 ff
    1553315536    mov ax, 0027fh                            ; b8 7f 02
    1553415537    mov word [00413h], ax                     ; a3 13 04
     
    1556515568    mov ax, 0f000h                            ; b8 00 f0
    1556615569    mov word [00072h], ax                     ; a3 72 00
    15567     call 0e778h                               ; e8 eb 05
    15568     call 0f13ch                               ; e8 ac 0f
    15569     call 0f1c1h                               ; e8 2e 10
     15570    call 0e778h                               ; e8 e9 05
     15571    call 0f13bh                               ; e8 a9 0f
     15572    call 0f1c0h                               ; e8 2b 10
    1557015573    mov ax, 0fe6eh                            ; b8 6e fe
    1557115574    mov word [00068h], ax                     ; a3 68 00
     
    1561915622    mov ax, 0c000h                            ; b8 00 c0
    1562015623    mov dx, 0c800h                            ; ba 00 c8
    15621     call 01600h                               ; e8 e3 33
    15622     call 04e4ch                               ; e8 2c 6c
     15624    call 01600h                               ; e8 e1 33
     15625    call 04e4ch                               ; e8 2a 6c
    1562315626    pop DS                                    ; 1f
    1562415627    mov ax, 0ff53h                            ; b8 53 ff
     
    1563315636    mov CL, strict byte 014h                  ; b1 14
    1563415637    mov dx, 00378h                            ; ba 78 03
    15635     call 0ecedh                               ; e8 b2 0a
     15638    call 0ecedh                               ; e8 b0 0a
    1563615639    mov dx, 00278h                            ; ba 78 02
    15637     call 0ecedh                               ; e8 ac 0a
     15640    call 0ecedh                               ; e8 aa 0a
    1563815641    sal bx, 00eh                              ; c1 e3 0e
    1563915642    mov ax, word [00410h]                     ; a1 10 04
     
    1565815661    mov CL, strict byte 00ah                  ; b1 0a
    1565915662    mov dx, 003f8h                            ; ba f8 03
    15660     call 0ed0bh                               ; e8 8e 0a
     15663    call 0ed0bh                               ; e8 8c 0a
    1566115664    mov dx, 002f8h                            ; ba f8 02
    15662     call 0ed0bh                               ; e8 88 0a
     15665    call 0ed0bh                               ; e8 86 0a
    1566315666    mov dx, 003e8h                            ; ba e8 03
    15664     call 0ed0bh                               ; e8 82 0a
     15667    call 0ed0bh                               ; e8 80 0a
    1566515668    mov dx, 002e8h                            ; ba e8 02
    15666     call 0ed0bh                               ; e8 7c 0a
     15669    call 0ed0bh                               ; e8 7a 0a
    1566715670    sal bx, 009h                              ; c1 e3 09
    1566815671    mov ax, word [00410h]                     ; a1 10 04
     
    1567515678    mov ax, 0f000h                            ; b8 00 f0
    1567615679    mov word [0012ah], ax                     ; a3 2a 01
    15677     mov ax, 0fe8fh                            ; b8 8f fe
     15680    mov ax, 0f8e6h                            ; b8 e6 f8
    1567815681    mov word [001c0h], ax                     ; a3 c0 01
    1567915682    mov ax, 0f000h                            ; b8 00 f0
    1568015683    mov word [001c2h], ax                     ; a3 c2 01
    15681     call 0edbfh                               ; e8 07 0b
    15682     jmp short 0e31bh                          ; eb 61
    15683 biosorg_check_before_or_at_0E2C1h:           ; 0xfe2ba LB 0x9
    15684     add byte [bx+si], al                      ; 00 00
     15684    call 0edbfh                               ; e8 05 0b
     15685    jmp short 0e31bh                          ; eb 5f
     15686biosorg_check_before_or_at_0E2C1h:           ; 0xfe2bc LB 0x7
    1568515687    add byte [bx+si], al                      ; 00 00
    1568615688    add byte [bx+si], al                      ; 00 00
     
    1571215714    mov ax, 0f000h                            ; b8 00 f0
    1571315715    mov word [0004eh], ax                     ; a3 4e 00
    15714     mov ax, 0f8d7h                            ; b8 d7 f8
     15716    mov ax, 0f8d4h                            ; b8 d4 f8
    1571515717    mov word [001d8h], ax                     ; a3 d8 01
    1571615718    mov ax, 0f000h                            ; b8 00 f0
     
    1641116413    hlt                                       ; f4
    1641216414    iret                                      ; cf
    16413 int19_relocated:                             ; 0xff0ac LB 0x90
     16415int19_relocated:                             ; 0xff0ac LB 0x8f
    1641416416    db  08bh, 0ech
    1641516417    ; mov bp, sp                                ; 8b ec
     
    1643516437    inc sp                                    ; 44
    1643616438    test ax, ax                               ; 85 c0
    16437     jne short 0f0feh                          ; 75 28
     16439    jne short 0f0fdh                          ; 75 27
    1643816440    mov ax, strict word 00002h                ; b8 02 00
    1643916441    push ax                                   ; 50
     
    1644216444    inc sp                                    ; 44
    1644316445    test ax, ax                               ; 85 c0
    16444     jne short 0f0feh                          ; 75 1b
     16446    jne short 0f0fdh                          ; 75 1a
    1644516447    mov ax, strict word 00003h                ; b8 03 00
    16446     push strict byte 00003h                   ; 6a 03
    16447     call 04be3h                               ; e8 f8 5a
     16448    push ax                                   ; 50
     16449    call 04be3h                               ; e8 f9 5a
    1644816450    inc sp                                    ; 44
    1644916451    inc sp                                    ; 44
    1645016452    test ax, ax                               ; 85 c0
    16451     jne short 0f0feh                          ; 75 0d
     16453    jne short 0f0fdh                          ; 75 0d
    1645216454    mov ax, strict word 00004h                ; b8 04 00
    1645316455    push ax                                   ; 50
    16454     call 04be3h                               ; e8 eb 5a
     16456    call 04be3h                               ; e8 ec 5a
    1645516457    inc sp                                    ; 44
    1645616458    inc sp                                    ; 44
    1645716459    test ax, ax                               ; 85 c0
    16458     je short 0f0a4h                           ; 74 a6
     16460    je short 0f0a4h                           ; 74 a7
    1645916461    sal eax, 004h                             ; 66 c1 e0 04
    1646016462    mov word [bp+002h], ax                    ; 89 46 02
     
    1648416486    pop eax                                   ; 66 58
    1648516487    retn                                      ; c3
    16486 pcibios_init_iomem_bases:                    ; 0xff13c LB 0x16
     16488pcibios_init_iomem_bases:                    ; 0xff13b LB 0x16
    1648716489    push bp                                   ; 55
    1648816490    db  08bh, 0ech
     
    1649516497    push ax                                   ; 50
    1649616498    mov bx, strict word 00008h                ; bb 08 00
    16497 pci_init_io_loop1:                           ; 0xff152 LB 0xe
     16499pci_init_io_loop1:                           ; 0xff151 LB 0xe
    1649816500    mov DL, strict byte 000h                  ; b2 00
    16499     call 0f121h                               ; e8 ca ff
     16501    call 0f120h                               ; e8 ca ff
    1650016502    mov dx, 00cfch                            ; ba fc 0c
    1650116503    in ax, DX                                 ; ed
    1650216504    cmp ax, strict byte 0ffffh                ; 83 f8 ff
    16503     je short 0f199h                           ; 74 39
    16504 enable_iomem_space:                          ; 0xff160 LB 0x39
     16505    je short 0f198h                           ; 74 39
     16506enable_iomem_space:                          ; 0xff15f LB 0x39
    1650516507    mov DL, strict byte 004h                  ; b2 04
    16506     call 0f121h                               ; e8 bc ff
     16508    call 0f120h                               ; e8 bc ff
    1650716509    mov dx, 00cfch                            ; ba fc 0c
    1650816510    in AL, DX                                 ; ec
     
    1651016512    out DX, AL                                ; ee
    1651116513    mov DL, strict byte 000h                  ; b2 00
    16512     call 0f121h                               ; e8 b0 ff
     16514    call 0f120h                               ; e8 b0 ff
    1651316515    mov dx, 00cfch                            ; ba fc 0c
    1651416516    in eax, DX                                ; 66 ed
    1651516517    cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
    16516     jne short 0f199h                          ; 75 1b
     16518    jne short 0f198h                          ; 75 1b
    1651716519    mov DL, strict byte 010h                  ; b2 10
    16518     call 0f121h                               ; e8 9e ff
     16520    call 0f120h                               ; e8 9e ff
    1651916521    mov dx, 00cfch                            ; ba fc 0c
    1652016522    in ax, DX                                 ; ed
     
    1653016532    add dx, strict byte 00018h                ; 83 c2 18
    1653116533    in eax, DX                                ; 66 ed
    16532 next_pci_dev:                                ; 0xff199 LB 0xf
     16534next_pci_dev:                                ; 0xff198 LB 0xf
    1653316535    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    1653416536    inc bx                                    ; 43
    1653516537    cmp bx, 00100h                            ; 81 fb 00 01
    16536     jne short 0f152h                          ; 75 ae
     16538    jne short 0f151h                          ; 75 ae
    1653716539    db  08bh, 0e5h
    1653816540    ; mov sp, bp                                ; 8b e5
    1653916541    pop bp                                    ; 5d
    1654016542    retn                                      ; c3
    16541 pcibios_init_set_elcr:                       ; 0xff1a8 LB 0xc
     16543pcibios_init_set_elcr:                       ; 0xff1a7 LB 0xc
    1654216544    push ax                                   ; 50
    1654316545    push cx                                   ; 51
    1654416546    mov dx, 004d0h                            ; ba d0 04
    1654516547    test AL, strict byte 008h                 ; a8 08
    16546     je short 0f1b4h                           ; 74 03
     16548    je short 0f1b3h                           ; 74 03
    1654716549    inc dx                                    ; 42
    1654816550    and AL, strict byte 007h                  ; 24 07
    16549 is_master_pic:                               ; 0xff1b4 LB 0xd
     16551is_master_pic:                               ; 0xff1b3 LB 0xd
    1655016552    db  08ah, 0c8h
    1655116553    ; mov cl, al                                ; 8a c8
     
    1655916561    pop ax                                    ; 58
    1656016562    retn                                      ; c3
    16561 pcibios_init_irqs:                           ; 0xff1c1 LB 0x53
     16563pcibios_init_irqs:                           ; 0xff1c0 LB 0x53
    1656216564    push DS                                   ; 1e
    1656316565    push bp                                   ; 55
     
    1657316575    mov bl, byte [si+009h]                    ; 8a 5c 09
    1657416576    mov DL, strict byte 000h                  ; b2 00
    16575     call 0f121h                               ; e8 43 ff
     16577    call 0f120h                               ; e8 43 ff
    1657616578    mov dx, 00cfch                            ; ba fc 0c
    1657716579    in eax, DX                                ; 66 ed
    1657816580    cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
    16579     jne near 0f291h                           ; 0f 85 a6 00
     16581    jne near 0f290h                           ; 0f 85 a6 00
    1658016582    mov dl, byte [si+022h]                    ; 8a 54 22
    16581     call 0f121h                               ; e8 30 ff
     16583    call 0f120h                               ; e8 30 ff
    1658216584    push bx                                   ; 53
    1658316585    mov dx, 00cfch                            ; ba fc 0c
     
    1659416596    db  08bh, 0ech
    1659516597    ; mov bp, sp                                ; 8b ec
    16596     mov ax, 0f11dh                            ; b8 1d f1
     16598    mov ax, 0f11ch                            ; b8 1c f1
    1659716599    push ax                                   ; 50
    1659816600    db  033h, 0c0h
    1659916601    ; xor ax, ax                                ; 33 c0
    1660016602    push ax                                   ; 50
    16601 pci_init_irq_loop1:                          ; 0xff214 LB 0x5
     16603pci_init_irq_loop1:                          ; 0xff213 LB 0x5
    1660216604    mov bh, byte [si]                         ; 8a 3c
    1660316605    mov bl, byte [si+001h]                    ; 8a 5c 01
    16604 pci_init_irq_loop2:                          ; 0xff219 LB 0x15
     16606pci_init_irq_loop2:                          ; 0xff218 LB 0x15
    1660516607    mov DL, strict byte 000h                  ; b2 00
    16606     call 0f121h                               ; e8 03 ff
     16608    call 0f120h                               ; e8 03 ff
    1660716609    mov dx, 00cfch                            ; ba fc 0c
    1660816610    in ax, DX                                 ; ed
    1660916611    cmp ax, strict byte 0ffffh                ; 83 f8 ff
    16610     jne short 0f22eh                          ; 75 07
     16612    jne short 0f22dh                          ; 75 07
    1661116613    test bl, 007h                             ; f6 c3 07
    16612     je short 0f285h                           ; 74 59
    16613     jmp short 0f27bh                          ; eb 4d
    16614 pci_test_int_pin:                            ; 0xff22e LB 0x3c
     16614    je short 0f284h                           ; 74 59
     16615    jmp short 0f27ah                          ; eb 4d
     16616pci_test_int_pin:                            ; 0xff22d LB 0x3c
    1661516617    mov DL, strict byte 03ch                  ; b2 3c
    16616     call 0f121h                               ; e8 ee fe
     16618    call 0f120h                               ; e8 ee fe
    1661716619    mov dx, 00cfdh                            ; ba fd 0c
    1661816620    in AL, DX                                 ; ec
    1661916621    and AL, strict byte 007h                  ; 24 07
    16620     je short 0f27bh                           ; 74 40
     16622    je short 0f27ah                           ; 74 40
    1662116623    db  0feh, 0c8h
    1662216624    ; dec al                                    ; fe c8
     
    1663216634    ; mov dl, al                                ; 8a d0
    1663316635    mov bx, word [byte bp+000h]               ; 8b 5e 00
    16634     call 0f121h                               ; e8 d0 fe
     16636    call 0f120h                               ; e8 d0 fe
    1663516637    mov dx, 00cfch                            ; ba fc 0c
    1663616638    and AL, strict byte 003h                  ; 24 03
     
    1663916641    in AL, DX                                 ; ec
    1664016642    cmp AL, strict byte 080h                  ; 3c 80
    16641     jc short 0f26ah                           ; 72 0d
     16643    jc short 0f269h                           ; 72 0d
    1664216644    mov bx, word [bp-002h]                    ; 8b 5e fe
    1664316645    mov al, byte [bx]                         ; 8a 07
     
    1664516647    inc bx                                    ; 43
    1664616648    mov word [bp-002h], bx                    ; 89 5e fe
    16647     call 0f1a8h                               ; e8 3e ff
    16648 pirq_found:                                  ; 0xff26a LB 0x11
     16649    call 0f1a7h                               ; e8 3e ff
     16650pirq_found:                                  ; 0xff269 LB 0x11
    1664916651    mov bh, byte [si]                         ; 8a 3c
    1665016652    mov bl, byte [si+001h]                    ; 8a 5c 01
    1665116653    add bl, byte [bp-003h]                    ; 02 5e fd
    1665216654    mov DL, strict byte 03ch                  ; b2 3c
    16653     call 0f121h                               ; e8 aa fe
     16655    call 0f120h                               ; e8 aa fe
    1665416656    mov dx, 00cfch                            ; ba fc 0c
    1665516657    out DX, AL                                ; ee
    16656 next_pci_func:                               ; 0xff27b LB 0xa
     16658next_pci_func:                               ; 0xff27a LB 0xa
    1665716659    inc byte [bp-003h]                        ; fe 46 fd
    1665816660    db  0feh, 0c3h
    1665916661    ; inc bl                                    ; fe c3
    1666016662    test bl, 007h                             ; f6 c3 07
    16661     jne short 0f219h                          ; 75 94
    16662 next_pir_entry:                              ; 0xff285 LB 0xc
     16663    jne short 0f218h                          ; 75 94
     16664next_pir_entry:                              ; 0xff284 LB 0xc
    1666316665    add si, strict byte 00010h                ; 83 c6 10
    1666416666    mov byte [bp-003h], 000h                  ; c6 46 fd 00
    16665     loop 0f214h                               ; e2 86
     16667    loop 0f213h                               ; e2 86
    1666616668    db  08bh, 0e5h
    1666716669    ; mov sp, bp                                ; 8b e5
    1666816670    pop bx                                    ; 5b
    16669 pci_init_end:                                ; 0xff291 LB 0x2f
     16671pci_init_end:                                ; 0xff290 LB 0x30
    1667016672    pop bp                                    ; 5d
    1667116673    pop DS                                    ; 1f
    1667216674    retn                                      ; c3
    16673     db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h
    16674     db  000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h
    16675     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
     16675    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h
     16676    db  052h, 000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h
     16677    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
    1667616678_pci_routing_table:                          ; 0xff2c0 LB 0x1e0
    1667716679    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
     
    1677416776    pop bp                                    ; 5d
    1677516777    iret                                      ; cf
    16776 int74_handler:                               ; 0xff8a9 LB 0x2e
     16778int74_handler:                               ; 0xff8a9 LB 0x2b
    1677716779    sti                                       ; fb
    1677816780    pushaw                                    ; 60
    1677916781    push ES                                   ; 06
    1678016782    push DS                                   ; 1e
    16781     push strict byte 00000h                   ; 6a 00
    16782     push strict byte 00000h                   ; 6a 00
    16783     push strict byte 00000h                   ; 6a 00
    16784     push strict byte 00000h                   ; 6a 00
    16785     push strict byte 00000h                   ; 6a 00
     16783    db  033h, 0c0h
     16784    ; xor ax, ax                                ; 33 c0
     16785    push ax                                   ; 50
     16786    push ax                                   ; 50
     16787    push ax                                   ; 50
     16788    push ax                                   ; 50
     16789    push ax                                   ; 50
    1678616790    push CS                                   ; 0e
    1678716791    pop DS                                    ; 1f
    1678816792    cld                                       ; fc
    16789     call 07327h                               ; e8 6a 7a
     16793    call 07327h                               ; e8 6d 7a
    1679016794    pop cx                                    ; 59
    16791     jcxz 0f8cch                               ; e3 0c
     16795    jcxz 0f8c9h                               ; e3 0c
    1679216796    push strict byte 00000h                   ; 6a 00
    1679316797    pop DS                                    ; 1f
     
    1679616800    call far [word 00022h]                    ; ff 1e 22 00
    1679716801    cli                                       ; fa
    16798     call 0e030h                               ; e8 60 e7
     16802    call 0e030h                               ; e8 63 e7
    1679916803    add sp, strict byte 00008h                ; 83 c4 08
    1680016804    pop DS                                    ; 1f
     
    1680216806    popaw                                     ; 61
    1680316807    iret                                      ; cf
    16804 int76_handler:                               ; 0xff8d7 LB 0x12
     16808int76_handler:                               ; 0xff8d4 LB 0x12
    1680516809    push ax                                   ; 50
    1680616810    push DS                                   ; 1e
     
    1680816812    mov ds, ax                                ; 8e d8
    1680916813    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    16810     call 0e030h                               ; e8 4a e7
     16814    call 0e030h                               ; e8 4d e7
    1681116815    pop DS                                    ; 1f
    1681216816    pop ax                                    ; 58
    1681316817    iret                                      ; cf
    16814 biosorg_check_before_or_at_0FA6Ch:           ; 0xff8e9 LB 0x185
    16815     times 0x183 db 0
     16818int70_handler:                               ; 0xff8e6 LB 0xd
     16819    push ES                                   ; 06
     16820    push DS                                   ; 1e
     16821    pushaw                                    ; 60
     16822    push CS                                   ; 0e
     16823    pop DS                                    ; 1f
     16824    cld                                       ; fc
     16825    call 06fdfh                               ; e8 f0 76
     16826    popaw                                     ; 61
     16827    pop DS                                    ; 1f
     16828    pop ES                                    ; 07
     16829    iret                                      ; cf
     16830biosorg_check_before_or_at_0FA6Ch:           ; 0xff8f3 LB 0x17b
     16831    times 0x179 db 0
    1681616832    db  'XM'
    1681716833font8x8:                                     ; 0xffa6e LB 0x400
     
    1690516921    pop ES                                    ; 07
    1690616922    iret                                      ; cf
    16907 int70_handler:                               ; 0xffe8f LB 0xd
    16908     push ES                                   ; 06
    16909     push DS                                   ; 1e
    16910     pushaw                                    ; 60
    16911     push CS                                   ; 0e
    16912     pop DS                                    ; 1f
    16913     cld                                       ; fc
    16914     call 06fdfh                               ; e8 47 71
    16915     popaw                                     ; 61
    16916     pop DS                                    ; 1f
    16917     pop ES                                    ; 07
    16918     iret                                      ; cf
    16919 biosorg_check_before_or_at_0FEA3h:           ; 0xffe9c LB 0x9
    16920     add byte [bx+si], al                      ; 00 00
    16921     add byte [bx+si], al                      ; 00 00
    16922     add byte [bx+si], al                      ; 00 00
    16923     add byte [bx+si+04dh], bl                 ; 00 58 4d
     16923biosorg_check_before_or_at_0FEA3h:           ; 0xffe8f LB 0x16
     16924    times 0x14 db 0
     16925    db  'XM'
    1692416926int08_handler:                               ; 0xffea5 LB 0x43
    1692516927    sti                                       ; fb
     
    1701717019cpu_reset:                                   ; 0xffff0 LB 0x10
    1701817020    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17019     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 04eh
     17021    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0a1h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum

    r60422 r60443  
    1 6f304b6bd2833711f28ac083956c9a9b *VBoxPcBios386.rom
     1a2f3015e93a5e62e47b783abd626ce9b *VBoxPcBios386.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.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, 0bfh, 02bh, 056h, 083h, 0f1h, 092h
     858    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 001h, 083h, 09ch, 092h
    859859_softrst:                                    ; 0xf0076 LB 0xc
    860     db  000h, 000h, 000h, 000h, 000h, 000h, 04ah, 02eh, 0dbh, 03bh, 0dbh, 03bh
     860    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0bdh, 03bh, 0bdh, 03bh
    861861_dskacc:                                     ; 0xf0082 LB 0x2e
    862     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0a3h, 02ah, 064h, 02bh, 000h, 000h, 000h, 000h
    863     db  084h, 081h, 06dh, 082h, 0bfh, 091h, 069h, 092h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     862    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
     863    db  02fh, 081h, 018h, 082h, 06ah, 091h, 014h, 092h, 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=0x8d05 class=CODE group=AUTO
     1060section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ca5 class=CODE group=AUTO
    10611061rom_scan_:                                   ; 0xf1600 LB 0x52
    10621062    push bp                                   ; 55
     
    13181318    int 010h                                  ; cd 10
    13191319    jmp short 017c3h                          ; eb 03
    1320     call 07d2ah                               ; e8 67 65
     1320    call 07cd3h                               ; e8 10 65
    13211321    mov sp, bp                                ; 89 ec
    13221322    pop bp                                    ; 5d
     
    14641464    mov bx, strict word 0000ah                ; bb 0a 00
    14651465    xor cx, cx                                ; 31 c9
    1466     call 0a1f0h                               ; e8 13 89
     1466    call 0a190h                               ; e8 b3 88
    14671467    mov word [bp-008h], ax                    ; 89 46 f8
    14681468    mov cx, dx                                ; 89 d1
     
    17011701    mov dx, word [bp-026h]                    ; 8b 56 da
    17021702    mov si, word [bp-01eh]                    ; 8b 76 e2
    1703     call 0a26ah                               ; e8 52 87
     1703    call 0a20ah                               ; e8 f2 86
    17041704    mov ax, dx                                ; 89 d0
    17051705    xor ah, dh                                ; 30 f4
     
    21622162    mov dx, word [es:si]                      ; 26 8b 14
    21632163    mov si, strict word 00018h                ; be 18 00
    2164     call 0a26ah                               ; e8 d8 82
     2164    call 0a20ah                               ; e8 78 82
    21652165    xor dh, dh                                ; 30 f6
    21662166    mov word [bp-014h], dx                    ; 89 56 ec
     
    21722172    mov dx, word [es:si]                      ; 26 8b 14
    21732173    mov si, strict word 00020h                ; be 20 00
    2174     call 0a26ah                               ; e8 b8 82
     2174    call 0a20ah                               ; e8 58 82
    21752175    mov bx, dx                                ; 89 d3
    21762176    mov word [bp-010h], dx                    ; 89 56 f0
     
    22042204    mov dx, word [es:si]                      ; 26 8b 14
    22052205    mov si, strict word 00008h                ; be 08 00
    2206     call 0a26ah                               ; e8 65 82
     2206    call 0a20ah                               ; e8 05 82
    22072207    mov word [bp-010h], dx                    ; 89 56 f0
    22082208    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    22132213    mov dx, word [es:si]                      ; 26 8b 14
    22142214    mov si, strict word 00018h                ; be 18 00
    2215     call 0a26ah                               ; e8 47 82
     2215    call 0a20ah                               ; e8 e7 81
    22162216    mov bl, dl                                ; 88 d3
    22172217    and bl, 00fh                              ; 80 e3 0f
     
    23442344    pop bp                                    ; 5d
    23452345    retn                                      ; c3
    2346 _ata_detect:                                 ; 0xf2154 LB 0x6c1
     2346_ata_detect:                                 ; 0xf2154 LB 0x6a3
    23472347    push bp                                   ; 55
    23482348    mov bp, sp                                ; 89 e5
    23492349    push si                                   ; 56
    23502350    push di                                   ; 57
    2351     sub sp, 00266h                            ; 81 ec 66 02
     2351    sub sp, 00264h                            ; 81 ec 64 02
    23522352    mov dx, strict word 0000eh                ; ba 0e 00
    23532353    mov ax, strict word 00040h                ; b8 40 00
    23542354    call 0166eh                               ; e8 08 f5
    2355     mov word [bp-01eh], ax                    ; 89 46 e2
     2355    mov word [bp-024h], ax                    ; 89 46 dc
    23562356    mov bx, 00122h                            ; bb 22 01
    23572357    mov es, ax                                ; 8e c0
    2358     mov word [bp-02ch], bx                    ; 89 5e d4
    2359     mov word [bp-024h], ax                    ; 89 46 dc
     2358    mov word [bp-01eh], bx                    ; 89 5e e2
     2359    mov word [bp-022h], ax                    ; 89 46 de
    23602360    mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
    23612361    mov word [es:bx+00206h], 001f0h           ; 26 c7 87 06 02 f0 01
     
    23682368    xor al, al                                ; 30 c0
    23692369    mov byte [bp-00ch], al                    ; 88 46 f4
     2370    mov byte [bp-008h], al                    ; 88 46 f8
    23702371    mov byte [bp-010h], al                    ; 88 46 f0
    2371     mov byte [bp-00eh], al                    ; 88 46 f2
    2372     jmp near 02794h                           ; e9 de 05
     2372    jmp near 02775h                           ; e9 bf 05
    23732373    mov ax, 000a0h                            ; b8 a0 00
    23742374    lea dx, [bx+006h]                         ; 8d 57 06
    23752375    out DX, AL                                ; ee
    2376     lea di, [bx+002h]                         ; 8d 7f 02
     2376    lea si, [bx+002h]                         ; 8d 77 02
     2377    mov AL, strict byte 055h                  ; b0 55
     2378    mov dx, si                                ; 89 f2
     2379    out DX, AL                                ; ee
     2380    lea di, [bx+003h]                         ; 8d 7f 03
     2381    mov AL, strict byte 0aah                  ; b0 aa
     2382    mov dx, di                                ; 89 fa
     2383    out DX, AL                                ; ee
     2384    mov dx, si                                ; 89 f2
     2385    out DX, AL                                ; ee
    23772386    mov AL, strict byte 055h                  ; b0 55
    23782387    mov dx, di                                ; 89 fa
    23792388    out DX, AL                                ; ee
    2380     lea si, [bx+003h]                         ; 8d 77 03
     2389    mov dx, si                                ; 89 f2
     2390    out DX, AL                                ; ee
    23812391    mov AL, strict byte 0aah                  ; b0 aa
     2392    mov dx, di                                ; 89 fa
     2393    out DX, AL                                ; ee
    23822394    mov dx, si                                ; 89 f2
    2383     out DX, AL                                ; ee
    2384     mov dx, di                                ; 89 fa
    2385     out DX, AL                                ; ee
    2386     mov AL, strict byte 055h                  ; b0 55
    2387     mov dx, si                                ; 89 f2
    2388     out DX, AL                                ; ee
    2389     mov dx, di                                ; 89 fa
    2390     out DX, AL                                ; ee
    2391     mov AL, strict byte 0aah                  ; b0 aa
    2392     mov dx, si                                ; 89 f2
    2393     out DX, AL                                ; ee
    2394     mov dx, di                                ; 89 fa
    23952395    in AL, DX                                 ; ec
    23962396    db  02ah, 0e4h
    23972397    ; sub ah, ah                                ; 2a e4
    23982398    mov cx, ax                                ; 89 c1
    2399     mov dx, si                                ; 89 f2
     2399    mov dx, di                                ; 89 fa
    24002400    in AL, DX                                 ; ec
    24012401    db  02ah, 0e4h
     
    24052405    cmp AL, strict byte 0aah                  ; 3c aa
    24062406    jne short 0223ah                          ; 75 48
    2407     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2407    mov al, byte [bp-010h]                    ; 8a 46 f0
    24082408    xor ah, ah                                ; 30 e4
    24092409    mov dx, strict word 0001ch                ; ba 1c 00
    24102410    imul dx                                   ; f7 ea
    2411     mov es, [bp-024h]                         ; 8e 46 dc
    2412     mov si, word [bp-02ch]                    ; 8b 76 d4
     2411    mov es, [bp-022h]                         ; 8e 46 de
     2412    mov si, word [bp-01eh]                    ; 8b 76 e2
    24132413    add si, ax                                ; 01 c6
    24142414    mov byte [es:si+022h], 001h               ; 26 c6 44 22 01
    2415     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2415    mov al, byte [bp-010h]                    ; 8a 46 f0
    24162416    xor ah, ah                                ; 30 e4
    24172417    call 01db8h                               ; e8 a7 fb
    2418     cmp byte [bp-018h], 000h                  ; 80 7e e8 00
     2418    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    24192419    je short 0221ch                           ; 74 05
    24202420    mov ax, 000b0h                            ; b8 b0 00
     
    24332433    ; sub ah, ah                                ; 2a e4
    24342434    cmp cl, 001h                              ; 80 f9 01
    2435     jne short 0227ah                          ; 75 44
     2435    jne short 0227dh                          ; 75 47
    24362436    cmp al, cl                                ; 38 c8
    24372437    je short 0223ch                           ; 74 02
    2438     jmp short 0227ah                          ; eb 3e
     2438    jmp short 0227dh                          ; eb 41
    24392439    lea dx, [bx+004h]                         ; 8d 57 04
    24402440    in AL, DX                                 ; ec
     
    24422442    ; sub ah, ah                                ; 2a e4
    24432443    mov cx, ax                                ; 89 c1
    2444     mov byte [bp-01ch], al                    ; 88 46 e4
     2444    mov ch, al                                ; 88 c5
    24452445    lea dx, [bx+005h]                         ; 8d 57 05
    24462446    in AL, DX                                 ; ec
    24472447    db  02ah, 0e4h
    24482448    ; sub ah, ah                                ; 2a e4
    2449     mov word [bp-02ah], ax                    ; 89 46 d6
    2450     mov ch, byte [bp-02ah]                    ; 8a 6e d6
     2449    mov word [bp-032h], ax                    ; 89 46 ce
     2450    mov al, byte [bp-032h]                    ; 8a 46 ce
     2451    mov byte [bp-00ah], al                    ; 88 46 f6
    24512452    lea dx, [bx+007h]                         ; 8d 57 07
    24522453    in AL, DX                                 ; ec
     
    24542455    ; sub ah, ah                                ; 2a e4
    24552456    cmp cl, 014h                              ; 80 f9 14
    2456     jne short 0227ch                          ; 75 1e
    2457     cmp ch, 0ebh                              ; 80 fd eb
    2458     jne short 0227ch                          ; 75 19
    2459     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2457    jne short 0227fh                          ; 75 1f
     2458    cmp byte [bp-032h], 0ebh                  ; 80 7e ce eb
     2459    jne short 0227fh                          ; 75 19
     2460    mov al, byte [bp-010h]                    ; 8a 46 f0
    24602461    xor ah, ah                                ; 30 e4
    24612462    mov dx, strict word 0001ch                ; ba 1c 00
    24622463    imul dx                                   ; f7 ea
    2463     mov es, [bp-024h]                         ; 8e 46 dc
    2464     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2464    mov es, [bp-022h]                         ; 8e 46 de
     2465    mov bx, word [bp-01eh]                    ; 8b 5e e2
    24652466    add bx, ax                                ; 01 c3
    24662467    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
    2467     jmp short 022c5h                          ; eb 49
    2468     cmp byte [bp-01ch], 000h                  ; 80 7e e4 00
    2469     jne short 022a3h                          ; 75 21
     2468    jmp short 022c7h                          ; eb 48
    24702469    test ch, ch                               ; 84 ed
    2471     jne short 022a3h                          ; 75 1d
     2470    jne short 022a6h                          ; 75 23
     2471    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     2472    jne short 022a6h                          ; 75 1d
    24722473    test al, al                               ; 84 c0
    2473     je short 022a3h                           ; 74 19
    2474     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2474    je short 022a6h                           ; 74 19
     2475    mov al, byte [bp-010h]                    ; 8a 46 f0
    24752476    xor ah, ah                                ; 30 e4
    24762477    mov dx, strict word 0001ch                ; ba 1c 00
    24772478    imul dx                                   ; f7 ea
    2478     mov es, [bp-024h]                         ; 8e 46 dc
    2479     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2479    mov es, [bp-022h]                         ; 8e 46 de
     2480    mov bx, word [bp-01eh]                    ; 8b 5e e2
    24802481    add bx, ax                                ; 01 c3
    24812482    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
    2482     jmp short 022c5h                          ; eb 22
    2483     mov al, byte [bp-01ch]                    ; 8a 46 e4
    2484     cmp AL, strict byte 0ffh                  ; 3c ff
    2485     jne short 022c5h                          ; 75 1b
    2486     cmp ch, al                                ; 38 c5
    2487     jne short 022c5h                          ; 75 17
    2488     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2483    jmp short 022c7h                          ; eb 21
     2484    cmp ch, 0ffh                              ; 80 fd ff
     2485    jne short 022c7h                          ; 75 1c
     2486    cmp ch, byte [bp-00ah]                    ; 3a 6e f6
     2487    jne short 022c7h                          ; 75 17
     2488    mov al, byte [bp-010h]                    ; 8a 46 f0
    24892489    xor ah, ah                                ; 30 e4
    24902490    mov dx, strict word 0001ch                ; ba 1c 00
    24912491    imul dx                                   ; f7 ea
    2492     mov es, [bp-024h]                         ; 8e 46 dc
    2493     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2492    mov es, [bp-022h]                         ; 8e 46 de
     2493    mov bx, word [bp-01eh]                    ; 8b 5e e2
    24942494    add bx, ax                                ; 01 c3
    24952495    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    2496     mov dx, word [bp-030h]                    ; 8b 56 d0
     2496    mov dx, word [bp-028h]                    ; 8b 56 d8
    24972497    add dx, strict byte 00006h                ; 83 c2 06
    24982498    mov AL, strict byte 008h                  ; b0 08
    24992499    out DX, AL                                ; ee
    2500     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2500    mov al, byte [bp-010h]                    ; 8a 46 f0
    25012501    xor ah, ah                                ; 30 e4
    25022502    mov dx, strict word 0001ch                ; ba 1c 00
    25032503    imul dx                                   ; f7 ea
    2504     mov es, [bp-024h]                         ; 8e 46 dc
    2505     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2504    mov es, [bp-022h]                         ; 8e 46 de
     2505    mov bx, word [bp-01eh]                    ; 8b 5e e2
    25062506    add bx, ax                                ; 01 c3
    25072507    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
    2508     mov byte [bp-014h], al                    ; 88 46 ec
     2508    mov byte [bp-012h], al                    ; 88 46 ee
    25092509    cmp AL, strict byte 002h                  ; 3c 02
    2510     jne short 02349h                          ; 75 5e
     2510    jne short 02339h                          ; 75 4c
    25112511    mov byte [es:bx+023h], 0ffh               ; 26 c6 47 23 ff
    25122512    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    2513     lea dx, [bp-0026ah]                       ; 8d 96 96 fd
    2514     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2513    lea dx, [bp-00268h]                       ; 8d 96 98 fd
     2514    mov bx, word [bp-01eh]                    ; 8b 5e e2
    25152515    mov word [es:bx+008h], dx                 ; 26 89 57 08
    25162516    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
    2517     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2517    mov al, byte [bp-010h]                    ; 8a 46 f0
    25182518    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    25192519    mov cx, strict word 00001h                ; b9 01 00
    25202520    mov bx, 000ech                            ; bb ec 00
    2521     mov ax, word [bp-02ch]                    ; 8b 46 d4
     2521    mov ax, word [bp-01eh]                    ; 8b 46 e2
    25222522    mov dx, es                                ; 8c c2
    2523     call 01e9dh                               ; e8 84 fb
     2523    call 01e9dh                               ; e8 82 fb
    25242524    test ax, ax                               ; 85 c0
    2525     je short 0232bh                           ; 74 0e
     2525    je short 0232dh                           ; 74 0e
    25262526    mov ax, 00124h                            ; b8 24 01
    25272527    push ax                                   ; 50
    25282528    mov ax, strict word 00007h                ; b8 07 00
    25292529    push ax                                   ; 50
    2530     call 01976h                               ; e8 4e f6
     2530    call 01976h                               ; e8 4c f6
    25312531    add sp, strict byte 00004h                ; 83 c4 04
    2532     test byte [bp-0026ah], 080h               ; f6 86 96 fd 80
    2533     je short 02337h                           ; 74 05
     2532    test byte [bp-00268h], 080h               ; f6 86 98 fd 80
     2533    je short 0233ch                           ; 74 08
    25342534    mov ax, strict word 00001h                ; b8 01 00
    2535     jmp short 02339h                          ; eb 02
     2535    jmp short 0233eh                          ; eb 05
     2536    jmp near 02520h                           ; e9 e4 01
    25362537    xor ax, ax                                ; 31 c0
    2537     mov byte [bp-006h], al                    ; 88 46 fa
    2538     mov al, byte [bp-0020ah]                  ; 8a 86 f6 fd
     2538    mov byte [bp-01ah], al                    ; 88 46 e6
     2539    mov byte [bp-006h], 000h                  ; c6 46 fa 00
     2540    mov word [bp-036h], 00200h                ; c7 46 ca 00 02
     2541    mov ax, word [bp-00266h]                  ; 8b 86 9a fd
     2542    mov word [bp-02ch], ax                    ; 89 46 d4
     2543    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
     2544    mov word [bp-034h], ax                    ; 89 46 cc
     2545    mov ax, word [bp-0025ch]                  ; 8b 86 a4 fd
     2546    mov word [bp-01ch], ax                    ; 89 46 e4
     2547    mov si, word [bp-001f0h]                  ; 8b b6 10 fe
     2548    mov ax, word [bp-001eeh]                  ; 8b 86 12 fe
     2549    mov word [bp-030h], ax                    ; 89 46 d0
     2550    xor ax, ax                                ; 31 c0
     2551    mov word [bp-02eh], ax                    ; 89 46 d2
     2552    mov word [bp-020h], ax                    ; 89 46 e0
     2553    cmp word [bp-030h], 00fffh                ; 81 7e d0 ff 0f
     2554    jne short 02397h                          ; 75 1e
     2555    cmp si, strict byte 0ffffh                ; 83 fe ff
     2556    jne short 02397h                          ; 75 19
     2557    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
     2558    mov word [bp-020h], ax                    ; 89 46 e0
     2559    mov ax, word [bp-0019ch]                  ; 8b 86 64 fe
     2560    mov word [bp-02eh], ax                    ; 89 46 d2
     2561    mov ax, word [bp-0019eh]                  ; 8b 86 62 fe
     2562    mov word [bp-030h], ax                    ; 89 46 d0
     2563    mov si, word [bp-001a0h]                  ; 8b b6 60 fe
     2564    mov al, byte [bp-010h]                    ; 8a 46 f0
     2565    cmp AL, strict byte 001h                  ; 3c 01
     2566    jc short 023aah                           ; 72 0c
     2567    jbe short 023b2h                          ; 76 12
     2568    cmp AL, strict byte 003h                  ; 3c 03
     2569    je short 023bah                           ; 74 16
     2570    cmp AL, strict byte 002h                  ; 3c 02
     2571    je short 023b6h                           ; 74 0e
     2572    jmp short 023efh                          ; eb 45
    25392573    test al, al                               ; 84 c0
    2540     je short 0234ch                           ; 74 08
    2541     mov ax, strict word 00001h                ; b8 01 00
    2542     jmp short 0234eh                          ; eb 05
    2543     jmp near 0252ch                           ; e9 e0 01
    2544     xor ah, ah                                ; 30 e4
    2545     mov byte [bp-00ah], al                    ; 88 46 f6
    2546     mov word [bp-038h], 00200h                ; c7 46 c8 00 02
    2547     mov ax, word [bp-00268h]                  ; 8b 86 98 fd
    2548     mov word [bp-022h], ax                    ; 89 46 de
    2549     mov ax, word [bp-00264h]                  ; 8b 86 9c fd
    2550     mov word [bp-032h], ax                    ; 89 46 ce
    2551     mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
    2552     mov word [bp-026h], ax                    ; 89 46 da
    2553     mov ax, word [bp-001f2h]                  ; 8b 86 0e fe
    2554     mov word [bp-02eh], ax                    ; 89 46 d2
    2555     mov si, word [bp-001f0h]                  ; 8b b6 10 fe
    2556     xor ax, ax                                ; 31 c0
    2557     mov word [bp-020h], ax                    ; 89 46 e0
    2558     mov word [bp-028h], ax                    ; 89 46 d8
    2559     cmp si, 00fffh                            ; 81 fe ff 0f
    2560     jne short 023a3h                          ; 75 1f
    2561     cmp word [bp-02eh], strict byte 0ffffh    ; 83 7e d2 ff
    2562     jne short 023a3h                          ; 75 19
    2563     mov ax, word [bp-0019ch]                  ; 8b 86 64 fe
    2564     mov word [bp-028h], ax                    ; 89 46 d8
    2565     mov ax, word [bp-0019eh]                  ; 8b 86 62 fe
    2566     mov word [bp-020h], ax                    ; 89 46 e0
    2567     mov si, word [bp-001a0h]                  ; 8b b6 60 fe
    2568     mov ax, word [bp-001a2h]                  ; 8b 86 5e fe
    2569     mov word [bp-02eh], ax                    ; 89 46 d2
    2570     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2571     cmp AL, strict byte 001h                  ; 3c 01
    2572     jc short 023b6h                           ; 72 0c
    2573     jbe short 023beh                          ; 76 12
    2574     cmp AL, strict byte 003h                  ; 3c 03
    2575     je short 023c6h                           ; 74 16
    2576     cmp AL, strict byte 002h                  ; 3c 02
    2577     je short 023c2h                           ; 74 0e
    2578     jmp short 023fbh                          ; eb 45
    2579     test al, al                               ; 84 c0
    2580     jne short 023fbh                          ; 75 41
     2574    jne short 023efh                          ; 75 41
    25812575    mov BL, strict byte 01eh                  ; b3 1e
    2582     jmp short 023c8h                          ; eb 0a
     2576    jmp short 023bch                          ; eb 0a
    25832577    mov BL, strict byte 026h                  ; b3 26
    2584     jmp short 023c8h                          ; eb 06
     2578    jmp short 023bch                          ; eb 06
    25852579    mov BL, strict byte 067h                  ; b3 67
    2586     jmp short 023c8h                          ; eb 02
     2580    jmp short 023bch                          ; eb 02
    25872581    mov BL, strict byte 070h                  ; b3 70
    25882582    mov al, bl                                ; 88 d8
     
    25902584    ; inc al                                    ; fe c0
    25912585    xor ah, ah                                ; 30 e4
    2592     call 016aeh                               ; e8 dd f2
     2586    call 016aeh                               ; e8 e9 f2
    25932587    mov dh, al                                ; 88 c6
    25942588    mov al, bl                                ; 88 d8
    25952589    xor ah, ah                                ; 30 e4
    2596     call 016aeh                               ; e8 d4 f2
     2590    call 016aeh                               ; e8 e0 f2
    25972591    mov ah, dh                                ; 88 f4
     2592    mov word [bp-03ch], ax                    ; 89 46 c4
     2593    mov al, bl                                ; 88 d8
     2594    add AL, strict byte 002h                  ; 04 02
     2595    xor ah, ah                                ; 30 e4
     2596    call 016aeh                               ; e8 d2 f2
     2597    xor ah, ah                                ; 30 e4
    25982598    mov word [bp-03eh], ax                    ; 89 46 c2
    25992599    mov al, bl                                ; 88 d8
    2600     add AL, strict byte 002h                  ; 04 02
    2601     xor ah, ah                                ; 30 e4
     2600    add AL, strict byte 007h                  ; 04 07
    26022601    call 016aeh                               ; e8 c6 f2
    26032602    xor ah, ah                                ; 30 e4
    2604     mov word [bp-040h], ax                    ; 89 46 c0
    2605     mov al, bl                                ; 88 d8
    2606     add AL, strict byte 007h                  ; 04 07
    2607     call 016aeh                               ; e8 ba f2
    2608     xor ah, ah                                ; 30 e4
    2609     mov word [bp-03ch], ax                    ; 89 46 c4
    2610     jmp short 0240dh                          ; eb 12
    2611     push word [bp-028h]                       ; ff 76 d8
     2603    mov word [bp-03ah], ax                    ; 89 46 c6
     2604    jmp short 02401h                          ; eb 12
    26122605    push word [bp-020h]                       ; ff 76 e0
     2606    push word [bp-02eh]                       ; ff 76 d2
     2607    push word [bp-030h]                       ; ff 76 d0
    26132608    push si                                   ; 56
    2614     push word [bp-02eh]                       ; ff 76 d2
    26152609    mov dx, ss                                ; 8c d2
    2616     lea ax, [bp-040h]                         ; 8d 46 c0
    2617     call 05b50h                               ; e8 43 37
     2610    lea ax, [bp-03eh]                         ; 8d 46 c2
     2611    call 05b09h                               ; e8 08 37
    26182612    mov bx, 00da0h                            ; bb a0 0d
    26192613    mov cx, ds                                ; 8c d9
    26202614    mov ax, strict word 00004h                ; b8 04 00
    2621     call 01933h                               ; e8 1b f5
     2615    call 01933h                               ; e8 27 f5
     2616    mov ax, word [bp-03ah]                    ; 8b 46 c6
     2617    push ax                                   ; 50
     2618    mov ax, word [bp-03eh]                    ; 8b 46 c2
     2619    push ax                                   ; 50
    26222620    mov ax, word [bp-03ch]                    ; 8b 46 c4
    26232621    push ax                                   ; 50
    2624     mov ax, word [bp-040h]                    ; 8b 46 c0
    2625     push ax                                   ; 50
    2626     mov ax, word [bp-03eh]                    ; 8b 46 c2
    2627     push ax                                   ; 50
    2628     push word [bp-026h]                       ; ff 76 da
    2629     push word [bp-032h]                       ; ff 76 ce
    2630     push word [bp-022h]                       ; ff 76 de
     2622    push word [bp-01ch]                       ; ff 76 e4
     2623    push word [bp-034h]                       ; ff 76 cc
     2624    push word [bp-02ch]                       ; ff 76 d4
     2625    mov al, byte [bp-014h]                    ; 8a 46 ec
     2626    xor ah, ah                                ; 30 e4
     2627    push ax                                   ; 50
    26312628    mov al, byte [bp-018h]                    ; 8a 46 e8
    2632     xor ah, ah                                ; 30 e4
    2633     push ax                                   ; 50
    2634     mov al, byte [bp-012h]                    ; 8a 46 ee
    26352629    push ax                                   ; 50
    26362630    mov ax, 0014dh                            ; b8 4d 01
     
    26382632    mov ax, strict word 00004h                ; b8 04 00
    26392633    push ax                                   ; 50
    2640     call 01976h                               ; e8 34 f5
     2634    call 01976h                               ; e8 40 f5
    26412635    add sp, strict byte 00014h                ; 83 c4 14
    2642     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2636    mov al, byte [bp-010h]                    ; 8a 46 f0
    26432637    xor ah, ah                                ; 30 e4
    26442638    mov dx, strict word 0001ch                ; ba 1c 00
    26452639    imul dx                                   ; f7 ea
    2646     mov es, [bp-024h]                         ; 8e 46 dc
    2647     mov di, word [bp-02ch]                    ; 8b 7e d4
     2640    mov es, [bp-022h]                         ; 8e 46 de
     2641    mov di, word [bp-01eh]                    ; 8b 7e e2
    26482642    add di, ax                                ; 01 c7
    26492643    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
     2644    mov al, byte [bp-01ah]                    ; 8a 46 e6
     2645    mov byte [es:di+024h], al                 ; 26 88 45 24
    26502646    mov al, byte [bp-006h]                    ; 8a 46 fa
    2651     mov byte [es:di+024h], al                 ; 26 88 45 24
    2652     mov al, byte [bp-00ah]                    ; 8a 46 f6
    26532647    mov byte [es:di+026h], al                 ; 26 88 45 26
    2654     mov ax, word [bp-038h]                    ; 8b 46 c8
     2648    mov ax, word [bp-036h]                    ; 8b 46 ca
    26552649    mov word [es:di+028h], ax                 ; 26 89 45 28
    2656     mov ax, word [bp-032h]                    ; 8b 46 ce
     2650    mov ax, word [bp-034h]                    ; 8b 46 cc
    26572651    mov word [es:di+030h], ax                 ; 26 89 45 30
    2658     mov ax, word [bp-022h]                    ; 8b 46 de
     2652    mov ax, word [bp-02ch]                    ; 8b 46 d4
    26592653    mov word [es:di+032h], ax                 ; 26 89 45 32
    2660     mov ax, word [bp-026h]                    ; 8b 46 da
     2654    mov ax, word [bp-01ch]                    ; 8b 46 e4
    26612655    mov word [es:di+034h], ax                 ; 26 89 45 34
    2662     mov ax, word [bp-028h]                    ; 8b 46 d8
     2656    mov ax, word [bp-020h]                    ; 8b 46 e0
    26632657    mov word [es:di+03ch], ax                 ; 26 89 45 3c
    2664     mov ax, word [bp-020h]                    ; 8b 46 e0
     2658    mov ax, word [bp-02eh]                    ; 8b 46 d2
    26652659    mov word [es:di+03ah], ax                 ; 26 89 45 3a
    2666     mov word [es:di+038h], si                 ; 26 89 75 38
    2667     mov ax, word [bp-02eh]                    ; 8b 46 d2
    2668     mov word [es:di+036h], ax                 ; 26 89 45 36
     2660    mov ax, word [bp-030h]                    ; 8b 46 d0
     2661    mov word [es:di+038h], ax                 ; 26 89 45 38
     2662    mov word [es:di+036h], si                 ; 26 89 75 36
    26692663    lea di, [di+02ah]                         ; 8d 7d 2a
    26702664    push DS                                   ; 1e
    26712665    push SS                                   ; 16
    26722666    pop DS                                    ; 1f
    2673     lea si, [bp-040h]                         ; 8d 76 c0
     2667    lea si, [bp-03eh]                         ; 8d 76 c2
    26742668    movsw                                     ; a5
    26752669    movsw                                     ; a5
    26762670    movsw                                     ; a5
    26772671    pop DS                                    ; 1f
    2678     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2672    mov al, byte [bp-010h]                    ; 8a 46 f0
    26792673    cmp AL, strict byte 002h                  ; 3c 02
    2680     jnc short 02516h                          ; 73 63
     2674    jnc short 0250ah                          ; 73 63
    26812675    test al, al                               ; 84 c0
    2682     jne short 024bch                          ; 75 05
     2676    jne short 024b0h                          ; 75 05
    26832677    mov di, strict word 0003dh                ; bf 3d 00
    2684     jmp short 024bfh                          ; eb 03
     2678    jmp short 024b3h                          ; eb 03
    26852679    mov di, strict word 0004dh                ; bf 4d 00
    2686     mov dx, word [bp-01eh]                    ; 8b 56 e2
    2687     mov bx, word [bp-03eh]                    ; 8b 5e c2
     2680    mov dx, word [bp-024h]                    ; 8b 56 dc
     2681    mov bx, word [bp-03ch]                    ; 8b 5e c4
    26882682    mov es, dx                                ; 8e c2
    26892683    mov word [es:di], bx                      ; 26 89 1d
    2690     mov bl, byte [bp-040h]                    ; 8a 5e c0
     2684    mov bl, byte [bp-03eh]                    ; 8a 5e c2
    26912685    mov byte [es:di+002h], bl                 ; 26 88 5d 02
    26922686    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
    2693     mov al, byte [bp-026h]                    ; 8a 46 da
     2687    mov al, byte [bp-01ch]                    ; 8a 46 e4
    26942688    mov byte [es:di+004h], al                 ; 26 88 45 04
    2695     mov ax, word [bp-022h]                    ; 8b 46 de
     2689    mov ax, word [bp-02ch]                    ; 8b 46 d4
    26962690    mov word [es:di+009h], ax                 ; 26 89 45 09
    2697     mov al, byte [bp-032h]                    ; 8a 46 ce
     2691    mov al, byte [bp-034h]                    ; 8a 46 cc
    26982692    mov byte [es:di+00bh], al                 ; 26 88 45 0b
    2699     mov al, byte [bp-026h]                    ; 8a 46 da
     2693    mov al, byte [bp-01ch]                    ; 8a 46 e4
    27002694    mov byte [es:di+00eh], al                 ; 26 88 45 0e
    27012695    xor bl, bl                                ; 30 db
    27022696    xor bh, bh                                ; 30 ff
    2703     jmp short 024fdh                          ; eb 05
     2697    jmp short 024f1h                          ; eb 05
    27042698    cmp bh, 00fh                              ; 80 ff 0f
    2705     jnc short 0250eh                          ; 73 11
     2699    jnc short 02502h                          ; 73 11
    27062700    mov al, bh                                ; 88 f8
    27072701    xor ah, ah                                ; 30 e4
     
    27122706    db  0feh, 0c7h
    27132707    ; inc bh                                    ; fe c7
    2714     jmp short 024f8h                          ; eb ea
     2708    jmp short 024ech                          ; eb ea
    27152709    neg bl                                    ; f6 db
    27162710    mov es, dx                                ; 8e c2
    27172711    mov byte [es:di+00fh], bl                 ; 26 88 5d 0f
    2718     mov bl, byte [bp-010h]                    ; 8a 5e f0
     2712    mov bl, byte [bp-008h]                    ; 8a 5e f8
    27192713    xor bh, bh                                ; 30 ff
    2720     mov es, [bp-024h]                         ; 8e 46 dc
    2721     add bx, word [bp-02ch]                    ; 03 5e d4
    2722     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2714    mov es, [bp-022h]                         ; 8e 46 de
     2715    add bx, word [bp-01eh]                    ; 03 5e e2
     2716    mov al, byte [bp-010h]                    ; 8a 46 f0
    27232717    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
    2724     inc byte [bp-010h]                        ; fe 46 f0
    2725     cmp byte [bp-014h], 003h                  ; 80 7e ec 03
    2726     jne short 02599h                          ; 75 67
    2727     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2718    inc byte [bp-008h]                        ; fe 46 f8
     2719    cmp byte [bp-012h], 003h                  ; 80 7e ee 03
     2720    jne short 0258dh                          ; 75 67
     2721    mov al, byte [bp-010h]                    ; 8a 46 f0
    27282722    xor ah, ah                                ; 30 e4
    27292723    mov dx, strict word 0001ch                ; ba 1c 00
    27302724    imul dx                                   ; f7 ea
    2731     mov es, [bp-024h]                         ; 8e 46 dc
    2732     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2725    mov es, [bp-022h]                         ; 8e 46 de
     2726    mov bx, word [bp-01eh]                    ; 8b 5e e2
    27332727    add bx, ax                                ; 01 c3
    27342728    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
    27352729    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    2736     lea dx, [bp-0026ah]                       ; 8d 96 96 fd
    2737     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2730    lea dx, [bp-00268h]                       ; 8d 96 98 fd
     2731    mov bx, word [bp-01eh]                    ; 8b 5e e2
    27382732    mov word [es:bx+008h], dx                 ; 26 89 57 08
    27392733    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
    2740     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2734    mov al, byte [bp-010h]                    ; 8a 46 f0
    27412735    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    27422736    mov cx, strict word 00001h                ; b9 01 00
    27432737    mov bx, 000a1h                            ; bb a1 00
    2744     mov ax, word [bp-02ch]                    ; 8b 46 d4
     2738    mov ax, word [bp-01eh]                    ; 8b 46 e2
    27452739    mov dx, es                                ; 8c c2
    2746     call 01e9dh                               ; e8 2b f9
     2740    call 01e9dh                               ; e8 37 f9
    27472741    test ax, ax                               ; 85 c0
    2748     je short 02584h                           ; 74 0e
     2742    je short 02578h                           ; 74 0e
    27492743    mov ax, 00174h                            ; b8 74 01
    27502744    push ax                                   ; 50
    27512745    mov ax, strict word 00007h                ; b8 07 00
    27522746    push ax                                   ; 50
    2753     call 01976h                               ; e8 f5 f3
     2747    call 01976h                               ; e8 01 f4
    27542748    add sp, strict byte 00004h                ; 83 c4 04
    2755     mov al, byte [bp-00269h]                  ; 8a 86 97 fd
     2749    mov al, byte [bp-00267h]                  ; 8a 86 99 fd
    27562750    and AL, strict byte 01fh                  ; 24 1f
    2757     mov byte [bp-01ah], al                    ; 88 46 e6
    2758     test byte [bp-0026ah], 080h               ; f6 86 96 fd 80
    2759     je short 0259bh                           ; 74 07
    2760     mov ax, strict word 00001h                ; b8 01 00
    2761     jmp short 0259dh                          ; eb 04
    2762     jmp short 025ebh                          ; eb 50
    2763     xor ax, ax                                ; 31 c0
    2764     mov byte [bp-008h], al                    ; 88 46 f8
    2765     cmp byte [bp-0020ah], 000h                ; 80 be f6 fd 00
    2766     je short 025ach                           ; 74 05
     2751    mov byte [bp-016h], al                    ; 88 46 ea
     2752    test byte [bp-00268h], 080h               ; f6 86 98 fd 80
     2753    je short 0258fh                           ; 74 07
    27672754    mov cx, strict word 00001h                ; b9 01 00
    2768     jmp short 025aeh                          ; eb 02
     2755    jmp short 02591h                          ; eb 04
     2756    jmp short 025cch                          ; eb 3d
    27692757    xor cx, cx                                ; 31 c9
    2770     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2758    mov al, byte [bp-010h]                    ; 8a 46 f0
    27712759    xor ah, ah                                ; 30 e4
    27722760    mov dx, strict word 0001ch                ; ba 1c 00
    27732761    imul dx                                   ; f7 ea
    2774     mov es, [bp-024h]                         ; 8e 46 dc
    2775     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2762    mov es, [bp-022h]                         ; 8e 46 de
     2763    mov bx, word [bp-01eh]                    ; 8b 5e e2
    27762764    add bx, ax                                ; 01 c3
    2777     mov al, byte [bp-01ah]                    ; 8a 46 e6
     2765    mov al, byte [bp-016h]                    ; 8a 46 ea
    27782766    mov byte [es:bx+023h], al                 ; 26 88 47 23
    2779     mov al, byte [bp-008h]                    ; 8a 46 f8
    2780     mov byte [es:bx+024h], al                 ; 26 88 47 24
    2781     mov byte [es:bx+026h], cl                 ; 26 88 4f 26
     2767    mov byte [es:bx+024h], cl                 ; 26 88 4f 24
     2768    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
    27822769    mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
    27832770    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    27842771    xor bh, bh                                ; 30 ff
    2785     add bx, word [bp-02ch]                    ; 03 5e d4
    2786     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2772    add bx, word [bp-01eh]                    ; 03 5e e2
     2773    mov al, byte [bp-010h]                    ; 8a 46 f0
    27872774    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
    27882775    inc byte [bp-00ch]                        ; fe 46 f4
    2789     mov al, byte [bp-014h]                    ; 8a 46 ec
     2776    mov al, byte [bp-012h]                    ; 8a 46 ee
    27902777    cmp AL, strict byte 003h                  ; 3c 03
    2791     je short 02624h                           ; 74 32
     2778    je short 02605h                           ; 74 32
    27922779    cmp AL, strict byte 002h                  ; 3c 02
    2793     jne short 0264bh                          ; 75 55
    2794     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2780    jne short 0262ch                          ; 75 55
     2781    mov al, byte [bp-010h]                    ; 8a 46 f0
    27952782    xor ah, ah                                ; 30 e4
    27962783    mov dx, strict word 0001ch                ; ba 1c 00
    27972784    imul dx                                   ; f7 ea
    2798     mov es, [bp-024h]                         ; 8e 46 dc
    2799     mov di, word [bp-02ch]                    ; 8b 7e d4
     2785    mov es, [bp-022h]                         ; 8e 46 de
     2786    mov di, word [bp-01eh]                    ; 8b 7e e2
    28002787    add di, ax                                ; 01 c7
    28012788    mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
     
    28042791    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    28052792    mov si, strict word 0000bh                ; be 0b 00
    2806     call 0a26ah                               ; e8 4c 7c
    2807     mov word [bp-034h], dx                    ; 89 56 cc
    2808     mov word [bp-036h], cx                    ; 89 4e ca
    2809     mov dh, byte [bp-001c9h]                  ; 8a b6 37 fe
    2810     mov dl, byte [bp-001cah]                  ; 8a 96 36 fe
    2811     mov byte [bp-016h], 00fh                  ; c6 46 ea 0f
    2812     jmp short 0263bh                          ; eb 09
    2813     dec byte [bp-016h]                        ; fe 4e ea
    2814     cmp byte [bp-016h], 000h                  ; 80 7e ea 00
    2815     jbe short 02647h                          ; 76 0c
    2816     mov cl, byte [bp-016h]                    ; 8a 4e ea
     2793    call 0a20ah                               ; e8 0b 7c
     2794    mov word [bp-02ah], dx                    ; 89 56 d6
     2795    mov word [bp-026h], cx                    ; 89 4e da
     2796    mov dh, byte [bp-001c7h]                  ; 8a b6 39 fe
     2797    mov dl, byte [bp-001c8h]                  ; 8a 96 38 fe
     2798    mov byte [bp-00eh], 00fh                  ; c6 46 f2 0f
     2799    jmp short 0261ch                          ; eb 09
     2800    dec byte [bp-00eh]                        ; fe 4e f2
     2801    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     2802    jbe short 02628h                          ; 76 0c
     2803    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    28172804    mov ax, strict word 00001h                ; b8 01 00
    28182805    sal ax, CL                                ; d3 e0
    28192806    test dx, ax                               ; 85 c2
    2820     je short 02632h                           ; 74 eb
     2807    je short 02613h                           ; 74 eb
    28212808    xor di, di                                ; 31 ff
    2822     jmp short 02652h                          ; eb 07
    2823     jmp short 02681h                          ; eb 34
     2809    jmp short 02633h                          ; eb 07
     2810    jmp short 02662h                          ; eb 34
    28242811    cmp di, strict byte 00014h                ; 83 ff 14
    2825     jnl short 02667h                          ; 7d 15
     2812    jnl short 02648h                          ; 7d 15
    28262813    mov si, di                                ; 89 fe
    28272814    sal si, 1                                 ; d1 e6
    2828     mov al, byte [bp+si-00233h]               ; 8a 82 cd fd
    2829     mov byte [bp+si-06ah], al                 ; 88 42 96
    2830     mov al, byte [bp+si-00234h]               ; 8a 82 cc fd
    2831     mov byte [bp+si-069h], al                 ; 88 42 97
     2815    mov al, byte [bp+si-00231h]               ; 8a 82 cf fd
     2816    mov byte [bp+si-068h], al                 ; 88 42 98
     2817    mov al, byte [bp+si-00232h]               ; 8a 82 ce fd
     2818    mov byte [bp+si-067h], al                 ; 88 42 99
    28322819    inc di                                    ; 47
    2833     jmp short 0264dh                          ; eb e6
    2834     mov byte [bp-042h], 000h                  ; c6 46 be 00
     2820    jmp short 0262eh                          ; eb e6
     2821    mov byte [bp-040h], 000h                  ; c6 46 c0 00
    28352822    mov di, strict word 00027h                ; bf 27 00
    2836     jmp short 02675h                          ; eb 05
     2823    jmp short 02656h                          ; eb 05
    28372824    dec di                                    ; 4f
    28382825    test di, di                               ; 85 ff
    2839     jle short 02681h                          ; 7e 0c
    2840     cmp byte [bp+di-06ah], 020h               ; 80 7b 96 20
    2841     jne short 02681h                          ; 75 06
    2842     mov byte [bp+di-06ah], 000h               ; c6 43 96 00
    2843     jmp short 02670h                          ; eb ef
    2844     mov al, byte [bp-014h]                    ; 8a 46 ec
     2826    jle short 02662h                          ; 7e 0c
     2827    cmp byte [bp+di-068h], 020h               ; 80 7b 98 20
     2828    jne short 02662h                          ; 75 06
     2829    mov byte [bp+di-068h], 000h               ; c6 43 98 00
     2830    jmp short 02651h                          ; eb ef
     2831    mov al, byte [bp-012h]                    ; 8a 46 ee
    28452832    cmp AL, strict byte 003h                  ; 3c 03
    2846     je short 026eeh                           ; 74 66
     2833    je short 026cfh                           ; 74 66
    28472834    cmp AL, strict byte 002h                  ; 3c 02
    2848     je short 02693h                           ; 74 07
     2835    je short 02674h                           ; 74 07
    28492836    cmp AL, strict byte 001h                  ; 3c 01
    2850     je short 026f9h                           ; 74 69
    2851     jmp near 0278bh                           ; e9 f8 00
    2852     cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    2853     je short 0269eh                           ; 74 05
     2837    je short 026dah                           ; 74 69
     2838    jmp near 0276ch                           ; e9 f8 00
     2839    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
     2840    je short 0267fh                           ; 74 05
    28542841    mov ax, 0019fh                            ; b8 9f 01
    2855     jmp short 026a1h                          ; eb 03
     2842    jmp short 02682h                          ; eb 03
    28562843    mov ax, 001a6h                            ; b8 a6 01
    28572844    push ax                                   ; 50
    2858     mov al, byte [bp-012h]                    ; 8a 46 ee
     2845    mov al, byte [bp-018h]                    ; 8a 46 e8
    28592846    xor ah, ah                                ; 30 e4
    28602847    push ax                                   ; 50
     
    28632850    mov ax, strict word 00002h                ; b8 02 00
    28642851    push ax                                   ; 50
    2865     call 01976h                               ; e8 c3 f2
     2852    call 01976h                               ; e8 e2 f2
    28662853    add sp, strict byte 00008h                ; 83 c4 08
    28672854    xor di, di                                ; 31 ff
    2868     mov al, byte [bp+di-06ah]                 ; 8a 43 96
     2855    mov al, byte [bp+di-068h]                 ; 8a 43 98
    28692856    xor ah, ah                                ; 30 e4
    28702857    inc di                                    ; 47
    28712858    test ax, ax                               ; 85 c0
    2872     je short 026d3h                           ; 74 11
     2859    je short 026b4h                           ; 74 11
    28732860    push ax                                   ; 50
    28742861    mov ax, 001b8h                            ; b8 b8 01
     
    28762863    mov ax, strict word 00002h                ; b8 02 00
    28772864    push ax                                   ; 50
    2878     call 01976h                               ; e8 a8 f2
     2865    call 01976h                               ; e8 c7 f2
    28792866    add sp, strict byte 00006h                ; 83 c4 06
    2880     jmp short 026b8h                          ; eb e5
    2881     push word [bp-036h]                       ; ff 76 ca
    2882     push word [bp-034h]                       ; ff 76 cc
    2883     mov al, byte [bp-016h]                    ; 8a 46 ea
     2867    jmp short 02699h                          ; eb e5
     2868    push word [bp-026h]                       ; ff 76 da
     2869    push word [bp-02ah]                       ; ff 76 d6
     2870    mov al, byte [bp-00eh]                    ; 8a 46 f2
    28842871    push ax                                   ; 50
    28852872    mov ax, 001bbh                            ; b8 bb 01
     
    28872874    mov ax, strict word 00002h                ; b8 02 00
    28882875    push ax                                   ; 50
    2889     call 01976h                               ; e8 8e f2
     2876    call 01976h                               ; e8 ad f2
    28902877    add sp, strict byte 0000ah                ; 83 c4 0a
    2891     jmp near 0278bh                           ; e9 9d 00
    2892     cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    2893     je short 026fbh                           ; 74 07
     2878    jmp near 0276ch                           ; e9 9d 00
     2879    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
     2880    je short 026dch                           ; 74 07
    28942881    mov ax, 0019fh                            ; b8 9f 01
    2895     jmp short 026feh                          ; eb 05
    2896     jmp short 02768h                          ; eb 6d
     2882    jmp short 026dfh                          ; eb 05
     2883    jmp short 02749h                          ; eb 6d
    28972884    mov ax, 001a6h                            ; b8 a6 01
    28982885    push ax                                   ; 50
    2899     mov al, byte [bp-012h]                    ; 8a 46 ee
     2886    mov al, byte [bp-018h]                    ; 8a 46 e8
    29002887    xor ah, ah                                ; 30 e4
    29012888    push ax                                   ; 50
     
    29042891    mov ax, strict word 00002h                ; b8 02 00
    29052892    push ax                                   ; 50
    2906     call 01976h                               ; e8 66 f2
     2893    call 01976h                               ; e8 85 f2
    29072894    add sp, strict byte 00008h                ; 83 c4 08
    29082895    xor di, di                                ; 31 ff
    2909     mov al, byte [bp+di-06ah]                 ; 8a 43 96
     2896    mov al, byte [bp+di-068h]                 ; 8a 43 98
    29102897    xor ah, ah                                ; 30 e4
    29112898    inc di                                    ; 47
    29122899    test ax, ax                               ; 85 c0
    2913     je short 02730h                           ; 74 11
     2900    je short 02711h                           ; 74 11
    29142901    push ax                                   ; 50
    29152902    mov ax, 001b8h                            ; b8 b8 01
     
    29172904    mov ax, strict word 00002h                ; b8 02 00
    29182905    push ax                                   ; 50
    2919     call 01976h                               ; e8 4b f2
     2906    call 01976h                               ; e8 6a f2
    29202907    add sp, strict byte 00006h                ; 83 c4 06
    2921     jmp short 02715h                          ; eb e5
    2922     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2908    jmp short 026f6h                          ; eb e5
     2909    mov al, byte [bp-010h]                    ; 8a 46 f0
    29232910    mov dx, strict word 0001ch                ; ba 1c 00
    29242911    imul dx                                   ; f7 ea
    2925     mov es, [bp-024h]                         ; 8e 46 dc
    2926     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2912    mov es, [bp-022h]                         ; 8e 46 de
     2913    mov bx, word [bp-01eh]                    ; 8b 5e e2
    29272914    add bx, ax                                ; 01 c3
    29282915    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    2929     jne short 02752h                          ; 75 0b
    2930     mov al, byte [bp-016h]                    ; 8a 46 ea
     2916    jne short 02733h                          ; 75 0b
     2917    mov al, byte [bp-00eh]                    ; 8a 46 f2
    29312918    xor ah, ah                                ; 30 e4
    29322919    push ax                                   ; 50
    29332920    mov ax, 001dbh                            ; b8 db 01
    2934     jmp short 0275bh                          ; eb 09
    2935     mov al, byte [bp-016h]                    ; 8a 46 ea
     2921    jmp short 0273ch                          ; eb 09
     2922    mov al, byte [bp-00eh]                    ; 8a 46 f2
    29362923    xor ah, ah                                ; 30 e4
    29372924    push ax                                   ; 50
     
    29402927    mov ax, strict word 00002h                ; b8 02 00
    29412928    push ax                                   ; 50
    2942     call 01976h                               ; e8 13 f2
     2929    call 01976h                               ; e8 32 f2
    29432930    add sp, strict byte 00006h                ; 83 c4 06
    2944     jmp short 0278bh                          ; eb 23
    2945     cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    2946     je short 02773h                           ; 74 05
     2931    jmp short 0276ch                          ; eb 23
     2932    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
     2933    je short 02754h                           ; 74 05
    29472934    mov ax, 0019fh                            ; b8 9f 01
    2948     jmp short 02776h                          ; eb 03
     2935    jmp short 02757h                          ; eb 03
    29492936    mov ax, 001a6h                            ; b8 a6 01
    29502937    push ax                                   ; 50
    2951     mov al, byte [bp-012h]                    ; 8a 46 ee
     2938    mov al, byte [bp-018h]                    ; 8a 46 e8
    29522939    xor ah, ah                                ; 30 e4
    29532940    push ax                                   ; 50
     
    29562943    mov ax, strict word 00002h                ; b8 02 00
    29572944    push ax                                   ; 50
    2958     call 01976h                               ; e8 ee f1
     2945    call 01976h                               ; e8 0d f2
    29592946    add sp, strict byte 00008h                ; 83 c4 08
    2960     inc byte [bp-00eh]                        ; fe 46 f2
    2961     cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
    2962     jnc short 027eah                          ; 73 56
    2963     mov bl, byte [bp-00eh]                    ; 8a 5e f2
     2947    inc byte [bp-010h]                        ; fe 46 f0
     2948    cmp byte [bp-010h], 008h                  ; 80 7e f0 08
     2949    jnc short 027cch                          ; 73 57
     2950    mov bl, byte [bp-010h]                    ; 8a 5e f0
    29642951    xor bh, bh                                ; 30 ff
    29652952    mov ax, bx                                ; 89 d8
     
    29682955    ; sub ax, dx                                ; 2b c2
    29692956    sar ax, 1                                 ; d1 f8
    2970     mov word [bp-03ah], ax                    ; 89 46 c6
    2971     mov al, byte [bp-03ah]                    ; 8a 46 c6
    2972     mov byte [bp-012h], al                    ; 88 46 ee
     2957    mov cx, ax                                ; 89 c1
     2958    mov byte [bp-018h], al                    ; 88 46 e8
    29732959    mov ax, bx                                ; 89 d8
    29742960    cwd                                       ; 99
    29752961    mov bx, strict word 00002h                ; bb 02 00
    29762962    idiv bx                                   ; f7 fb
    2977     mov cx, dx                                ; 89 d1
    2978     mov byte [bp-018h], dl                    ; 88 56 e8
    2979     mov al, byte [bp-03ah]                    ; 8a 46 c6
     2963    mov word [bp-038h], dx                    ; 89 56 c8
     2964    mov al, byte [bp-038h]                    ; 8a 46 c8
     2965    mov byte [bp-014h], al                    ; 88 46 ec
     2966    mov al, cl                                ; 88 c8
    29802967    xor ah, ah                                ; 30 e4
    29812968    mov dx, strict word 00006h                ; ba 06 00
    29822969    imul dx                                   ; f7 ea
    2983     mov es, [bp-024h]                         ; 8e 46 dc
    2984     mov si, word [bp-02ch]                    ; 8b 76 d4
     2970    mov es, [bp-022h]                         ; 8e 46 de
     2971    mov si, word [bp-01eh]                    ; 8b 76 e2
    29852972    add si, ax                                ; 01 c6
    29862973    mov bx, word [es:si+00206h]               ; 26 8b 9c 06 02
    29872974    mov ax, word [es:si+00208h]               ; 26 8b 84 08 02
    2988     mov word [bp-030h], ax                    ; 89 46 d0
     2975    mov word [bp-028h], ax                    ; 89 46 d8
    29892976    mov dx, ax                                ; 89 c2
    29902977    add dx, strict byte 00006h                ; 83 c2 06
    29912978    mov AL, strict byte 00ah                  ; b0 0a
    29922979    out DX, AL                                ; ee
    2993     test cl, cl                               ; 84 c9
    2994     jne short 027e4h                          ; 75 03
    2995     jmp near 021b6h                           ; e9 d2 f9
     2980    cmp byte [bp-038h], 000h                  ; 80 7e c8 00
     2981    jne short 027c6h                          ; 75 03
     2982    jmp near 021b6h                           ; e9 f0 f9
    29962983    mov ax, 000b0h                            ; b8 b0 00
    2997     jmp near 021b9h                           ; e9 cf f9
    2998     mov al, byte [bp-010h]                    ; 8a 46 f0
    2999     mov es, [bp-024h]                         ; 8e 46 dc
    3000     mov bx, word [bp-02ch]                    ; 8b 5e d4
     2984    jmp near 021b9h                           ; e9 ed f9
     2985    mov al, byte [bp-008h]                    ; 8a 46 f8
     2986    mov es, [bp-022h]                         ; 8e 46 de
     2987    mov bx, word [bp-01eh]                    ; 8b 5e e2
    30012988    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
    30022989    mov al, byte [bp-00ch]                    ; 8a 46 f4
    30032990    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
    3004     mov bl, byte [bp-010h]                    ; 8a 5e f0
     2991    mov bl, byte [bp-008h]                    ; 8a 5e f8
    30052992    xor bh, bh                                ; 30 ff
    30062993    mov dx, strict word 00075h                ; ba 75 00
    30072994    mov ax, strict word 00040h                ; b8 40 00
    3008     call 01660h                               ; e8 52 ee
     2995    call 01660h                               ; e8 70 ee
    30092996    lea sp, [bp-004h]                         ; 8d 66 fc
    30102997    pop di                                    ; 5f
     
    30122999    pop bp                                    ; 5d
    30133000    retn                                      ; c3
    3014 ata_cmd_data_out_:                           ; 0xf2815 LB 0x28e
     3001ata_cmd_data_out_:                           ; 0xf27f7 LB 0x28e
    30153002    push bp                                   ; 55
    30163003    mov bp, sp                                ; 89 e5
     
    30453032    ; sub ah, ah                                ; 2a e4
    30463033    test AL, strict byte 080h                 ; a8 80
    3047     je short 02876h                           ; 74 0f
     3034    je short 02858h                           ; 74 0f
    30483035    mov dx, word [bp-00eh]                    ; 8b 56 f2
    30493036    add dx, strict byte 00006h                ; 83 c2 06
     
    30513038    out DX, AL                                ; ee
    30523039    mov ax, strict word 00001h                ; b8 01 00
    3053     jmp near 02a9ch                           ; e9 26 02
     3040    jmp near 02a7eh                           ; e9 26 02
    30543041    mov es, [bp-00ah]                         ; 8e 46 f6
    30553042    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     
    30733060    mov ax, word [bp-014h]                    ; 8b 46 ec
    30743061    test ax, ax                               ; 85 c0
    3075     je short 028c1h                           ; 74 03
    3076     jmp near 02988h                           ; e9 c7 00
     3062    je short 028a3h                           ; 74 03
     3063    jmp near 0296ah                           ; e9 c7 00
    30773064    xor bx, bx                                ; 31 db
    30783065    xor dx, dx                                ; 31 d2
     
    30833070    adc ax, word [bp-00ch]                    ; 13 46 f4
    30843071    test ax, ax                               ; 85 c0
    3085     jnbe short 028e8h                         ; 77 10
    3086     jne short 0294bh                          ; 75 71
     3072    jnbe short 028cah                         ; 77 10
     3073    jne short 0292dh                          ; 75 71
    30873074    test dx, dx                               ; 85 d2
    3088     jnbe short 028e8h                         ; 77 0a
    3089     jne short 0294bh                          ; 75 6b
     3075    jnbe short 028cah                         ; 77 0a
     3076    jne short 0292dh                          ; 75 6b
    30903077    cmp bx, 01000h                            ; 81 fb 00 10
    3091     jnbe short 028e8h                         ; 77 02
    3092     jne short 0294bh                          ; 75 63
     3078    jnbe short 028cah                         ; 77 02
     3079    jne short 0292dh                          ; 75 63
    30933080    mov ax, word [bp-00ch]                    ; 8b 46 f4
    30943081    mov bx, word [bp-020h]                    ; 8b 5e e0
     
    30963083    mov dx, word [bp-022h]                    ; 8b 56 de
    30973084    mov si, strict word 00018h                ; be 18 00
    3098     call 0a26ah                               ; e8 70 79
     3085    call 0a20ah                               ; e8 2e 79
    30993086    xor dh, dh                                ; 30 f6
    31003087    mov word [bp-014h], dx                    ; 89 56 ec
     
    31043091    mov dx, word [bp-022h]                    ; 8b 56 de
    31053092    mov si, strict word 00020h                ; be 20 00
    3106     call 0a26ah                               ; e8 59 79
     3093    call 0a20ah                               ; e8 17 79
    31073094    mov bx, dx                                ; 89 d3
    31083095    mov word [bp-024h], dx                    ; 89 56 dc
     
    31383125    mov dx, word [bp-022h]                    ; 8b 56 de
    31393126    mov si, strict word 00008h                ; be 08 00
    3140     call 0a26ah                               ; e8 05 79
     3127    call 0a20ah                               ; e8 c3 78
    31413128    mov word [bp-00ch], ax                    ; 89 46 f4
    31423129    mov word [bp-020h], bx                    ; 89 5e e0
     
    31453132    mov word [bp-024h], dx                    ; 89 56 dc
    31463133    mov si, strict word 00010h                ; be 10 00
    3147     call 0a26ah                               ; e8 f0 78
     3134    call 0a20ah                               ; e8 ae 78
    31483135    mov word [bp-022h], dx                    ; 89 56 de
    31493136    mov ax, dx                                ; 89 d0
     
    31783165    out DX, AL                                ; ee
    31793166    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3180     je short 029cah                           ; 74 05
     3167    je short 029ach                           ; 74 05
    31813168    mov ax, 000b0h                            ; b8 b0 00
    3182     jmp short 029cdh                          ; eb 03
     3169    jmp short 029afh                          ; eb 03
    31833170    mov ax, 000a0h                            ; b8 a0 00
    31843171    mov dl, byte [bp-018h]                    ; 8a 56 e8
     
    31993186    mov bl, al                                ; 88 c3
    32003187    test AL, strict byte 080h                 ; a8 80
    3201     jne short 029e5h                          ; 75 f1
     3188    jne short 029c7h                          ; 75 f1
    32023189    test AL, strict byte 001h                 ; a8 01
    3203     je short 02a07h                           ; 74 0f
     3190    je short 029e9h                           ; 74 0f
    32043191    mov dx, word [bp-00eh]                    ; 8b 56 f2
    32053192    add dx, strict byte 00006h                ; 83 c2 06
     
    32073194    out DX, AL                                ; ee
    32083195    mov ax, strict word 00002h                ; b8 02 00
    3209     jmp near 02a9ch                           ; e9 95 00
     3196    jmp near 02a7eh                           ; e9 95 00
    32103197    test bl, 008h                             ; f6 c3 08
    3211     jne short 02a1bh                          ; 75 0f
     3198    jne short 029fdh                          ; 75 0f
    32123199    mov dx, word [bp-00eh]                    ; 8b 56 f2
    32133200    add dx, strict byte 00006h                ; 83 c2 06
     
    32153202    out DX, AL                                ; ee
    32163203    mov ax, strict word 00003h                ; b8 03 00
    3217     jmp near 02a9ch                           ; e9 81 00
     3204    jmp near 02a7eh                           ; e9 81 00
    32183205    sti                                       ; fb
    32193206    mov ax, word [bp-016h]                    ; 8b 46 ea
    32203207    cmp ax, 0f800h                            ; 3d 00 f8
    3221     jc short 02a36h                           ; 72 12
     3208    jc short 02a18h                           ; 72 12
    32223209    mov dx, ax                                ; 89 c2
    32233210    sub dx, 00800h                            ; 81 ea 00 08
     
    32433230    mov bl, al                                ; 88 c3
    32443231    test AL, strict byte 080h                 ; a8 80
    3245     jne short 02a52h                          ; 75 f1
     3232    jne short 02a34h                          ; 75 f1
    32463233    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
    3247     jne short 02a7bh                          ; 75 14
     3234    jne short 02a5dh                          ; 75 14
    32483235    and AL, strict byte 0e9h                  ; 24 e9
    32493236    cmp AL, strict byte 040h                  ; 3c 40
    3250     je short 02a91h                           ; 74 24
     3237    je short 02a73h                           ; 74 24
    32513238    mov dx, word [bp-00eh]                    ; 8b 56 f2
    32523239    add dx, strict byte 00006h                ; 83 c2 06
     
    32543241    out DX, AL                                ; ee
    32553242    mov ax, strict word 00006h                ; b8 06 00
    3256     jmp short 02a9ch                          ; eb 21
     3243    jmp short 02a7eh                          ; eb 21
    32573244    mov al, bl                                ; 88 d8
    32583245    and AL, strict byte 0c9h                  ; 24 c9
    32593246    cmp AL, strict byte 048h                  ; 3c 48
    3260     je short 02a1ch                           ; 74 99
     3247    je short 029feh                           ; 74 99
    32613248    mov dx, word [bp-00eh]                    ; 8b 56 f2
    32623249    add dx, strict byte 00006h                ; 83 c2 06
     
    32643251    out DX, AL                                ; ee
    32653252    mov ax, strict word 00007h                ; b8 07 00
    3266     jmp short 02a9ch                          ; eb 0b
     3253    jmp short 02a7eh                          ; eb 0b
    32673254    mov dx, word [bp-00eh]                    ; 8b 56 f2
    32683255    add dx, strict byte 00006h                ; 83 c2 06
     
    32753262    pop bp                                    ; 5d
    32763263    retn                                      ; c3
    3277 @ata_read_sectors:                           ; 0xf2aa3 LB 0xc1
     3264@ata_read_sectors:                           ; 0xf2a85 LB 0xc1
    32783265    push bp                                   ; 55
    32793266    mov bp, sp                                ; 89 e5
     
    32903277    mov cx, dx                                ; 89 d1
    32913278    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3292     je short 02aebh                           ; 74 23
     3279    je short 02acdh                           ; 74 23
    32933280    xor ah, ah                                ; 30 e4
    32943281    mov di, strict word 0001ch                ; bf 1c 00
     
    33023289    mov bx, 000c4h                            ; bb c4 00
    33033290    mov ax, si                                ; 89 f0
    3304     call 01e9dh                               ; e8 b7 f3
     3291    call 01e9dh                               ; e8 d5 f3
    33053292    mov es, [bp-00ah]                         ; 8e 46 f6
    3306     jmp short 02b55h                          ; eb 6a
     3293    jmp short 02b37h                          ; eb 6a
    33073294    xor di, di                                ; 31 ff
    33083295    mov word [bp-008h], di                    ; 89 7e f8
     
    33183305    adc dx, word [bp-00ah]                    ; 13 56 f6
    33193306    test dx, dx                               ; 85 d2
    3320     jnbe short 02b26h                         ; 77 12
    3321     jne short 02b34h                          ; 75 1e
     3307    jnbe short 02b08h                         ; 77 12
     3308    jne short 02b16h                          ; 75 1e
    33223309    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    3323     jnbe short 02b26h                         ; 77 0a
    3324     jne short 02b34h                          ; 75 16
     3310    jnbe short 02b08h                         ; 77 0a
     3311    jne short 02b16h                          ; 75 16
    33253312    cmp di, 01000h                            ; 81 ff 00 10
    3326     jnbe short 02b26h                         ; 77 02
    3327     jne short 02b34h                          ; 75 0e
     3313    jnbe short 02b08h                         ; 77 02
     3314    jne short 02b16h                          ; 75 0e
    33283315    mov cx, bx                                ; 89 d9
    33293316    mov bx, strict word 00024h                ; bb 24 00
    33303317    mov ax, si                                ; 89 f0
    33313318    mov dx, es                                ; 8c c2
    3332     call 01e9dh                               ; e8 6b f3
    3333     jmp short 02b5bh                          ; eb 27
     3319    call 01e9dh                               ; e8 89 f3
     3320    jmp short 02b3dh                          ; eb 27
    33343321    xor ah, ah                                ; 30 e4
    33353322    mov di, strict word 0001ch                ; bf 1c 00
     
    33433330    mov bx, 000c4h                            ; bb c4 00
    33443331    mov ax, si                                ; 89 f0
    3345     call 01e9dh                               ; e8 4b f3
     3332    call 01e9dh                               ; e8 69 f3
    33463333    mov es, [bp-006h]                         ; 8e 46 fa
    33473334    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
     
    33513338    pop bp                                    ; 5d
    33523339    retn 00004h                               ; c2 04 00
    3353 @ata_write_sectors:                          ; 0xf2b64 LB 0x5b
     3340@ata_write_sectors:                          ; 0xf2b46 LB 0x5b
    33543341    push bp                                   ; 55
    33553342    mov bp, sp                                ; 89 e5
     
    33603347    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
    33613348    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
    3362     je short 02b84h                           ; 74 0c
     3349    je short 02b66h                           ; 74 0c
    33633350    mov bx, strict word 00030h                ; bb 30 00
    33643351    mov ax, si                                ; 89 f0
    33653352    mov dx, es                                ; 8c c2
    3366     call 02815h                               ; e8 93 fc
    3367     jmp short 02bb6h                          ; eb 32
     3353    call 027f7h                               ; e8 93 fc
     3354    jmp short 02b98h                          ; eb 32
    33683355    xor ax, ax                                ; 31 c0
    33693356    xor bx, bx                                ; 31 db
     
    33763363    adc dx, word [es:si+006h]                 ; 26 13 54 06
    33773364    test dx, dx                               ; 85 d2
    3378     jnbe short 02bb1h                         ; 77 0f
    3379     jne short 02b78h                          ; 75 d4
     3365    jnbe short 02b93h                         ; 77 0f
     3366    jne short 02b5ah                          ; 75 d4
    33803367    test bx, bx                               ; 85 db
    3381     jnbe short 02bb1h                         ; 77 09
    3382     jne short 02b78h                          ; 75 ce
     3368    jnbe short 02b93h                         ; 77 09
     3369    jne short 02b5ah                          ; 75 ce
    33833370    cmp ax, 01000h                            ; 3d 00 10
    3384     jnbe short 02bb1h                         ; 77 02
    3385     jne short 02b78h                          ; 75 c7
     3371    jnbe short 02b93h                         ; 77 02
     3372    jne short 02b5ah                          ; 75 c7
    33863373    mov bx, strict word 00034h                ; bb 34 00
    3387     jmp short 02b7bh                          ; eb c5
     3374    jmp short 02b5dh                          ; eb c5
    33883375    lea sp, [bp-004h]                         ; 8d 66 fc
    33893376    pop di                                    ; 5f
     
    33913378    pop bp                                    ; 5d
    33923379    retn 00004h                               ; c2 04 00
    3393 ata_cmd_packet_:                             ; 0xf2bbf LB 0x28b
     3380ata_cmd_packet_:                             ; 0xf2ba1 LB 0x28b
    33943381    push bp                                   ; 55
    33953382    mov bp, sp                                ; 89 e5
     
    34033390    mov dx, strict word 0000eh                ; ba 0e 00
    34043391    mov ax, strict word 00040h                ; b8 40 00
    3405     call 0166eh                               ; e8 96 ea
     3392    call 0166eh                               ; e8 b4 ea
    34063393    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    34073394    mov word [bp-00eh], ax                    ; 89 46 f2
     
    34113398    and cl, 001h                              ; 80 e1 01
    34123399    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3413     jne short 02c14h                          ; 75 23
     3400    jne short 02bf6h                          ; 75 23
    34143401    mov bx, 00da0h                            ; bb a0 0d
    34153402    mov cx, ds                                ; 8c d9
    34163403    mov ax, strict word 00004h                ; b8 04 00
    3417     call 01933h                               ; e8 37 ed
     3404    call 01933h                               ; e8 55 ed
    34183405    mov ax, 00221h                            ; b8 21 02
    34193406    push ax                                   ; 50
     
    34223409    mov ax, strict word 00004h                ; b8 04 00
    34233410    push ax                                   ; 50
    3424     call 01976h                               ; e8 6b ed
     3411    call 01976h                               ; e8 89 ed
    34253412    add sp, strict byte 00006h                ; 83 c4 06
    34263413    mov ax, strict word 00001h                ; b8 01 00
    3427     jmp near 02e41h                           ; e9 2d 02
     3414    jmp near 02e23h                           ; e9 2d 02
    34283415    test byte [bp+004h], 001h                 ; f6 46 04 01
    3429     jne short 02c0eh                          ; 75 f4
     3416    jne short 02bf0h                          ; 75 f4
    34303417    xor ah, ah                                ; 30 e4
    34313418    mov dx, strict word 00006h                ; ba 06 00
     
    34423429    mov al, byte [bp-006h]                    ; 8a 46 fa
    34433430    cmp AL, strict byte 00ch                  ; 3c 0c
    3444     jnc short 02c4bh                          ; 73 06
     3431    jnc short 02c2dh                          ; 73 06
    34453432    mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
    3446     jmp short 02c51h                          ; eb 06
    3447     jbe short 02c51h                          ; 76 04
     3433    jmp short 02c33h                          ; eb 06
     3434    jbe short 02c33h                          ; 76 04
    34483435    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    34493436    shr byte [bp-006h], 1                     ; d0 6e fa
     
    34583445    ; sub ah, ah                                ; 2a e4
    34593446    test AL, strict byte 080h                 ; a8 80
    3460     je short 02c7ch                           ; 74 06
     3447    je short 02c5eh                           ; 74 06
    34613448    mov ax, strict word 00002h                ; b8 02 00
    3462     jmp near 02e41h                           ; e9 c5 01
     3449    jmp near 02e23h                           ; e9 c5 01
    34633450    mov dx, word [bp-008h]                    ; 8b 56 f8
    34643451    add dx, strict byte 00006h                ; 83 c2 06
     
    34743461    out DX, AL                                ; ee
    34753462    test cl, cl                               ; 84 c9
    3476     je short 02ca0h                           ; 74 05
     3463    je short 02c82h                           ; 74 05
    34773464    mov ax, 000b0h                            ; b8 b0 00
    3478     jmp short 02ca3h                          ; eb 03
     3465    jmp short 02c85h                          ; eb 03
    34793466    mov ax, 000a0h                            ; b8 a0 00
    34803467    mov dx, word [bp-012h]                    ; 8b 56 ee
     
    34923479    mov bl, al                                ; 88 c3
    34933480    test AL, strict byte 080h                 ; a8 80
    3494     jne short 02cb3h                          ; 75 f1
     3481    jne short 02c95h                          ; 75 f1
    34953482    test AL, strict byte 001h                 ; a8 01
    3496     je short 02cd5h                           ; 74 0f
     3483    je short 02cb7h                           ; 74 0f
    34973484    mov dx, word [bp-008h]                    ; 8b 56 f8
    34983485    add dx, strict byte 00006h                ; 83 c2 06
     
    35003487    out DX, AL                                ; ee
    35013488    mov ax, strict word 00003h                ; b8 03 00
    3502     jmp near 02e41h                           ; e9 6c 01
     3489    jmp near 02e23h                           ; e9 6c 01
    35033490    test bl, 008h                             ; f6 c3 08
    3504     jne short 02ce9h                          ; 75 0f
     3491    jne short 02ccbh                          ; 75 0f
    35053492    mov dx, word [bp-008h]                    ; 8b 56 f8
    35063493    add dx, strict byte 00006h                ; 83 c2 06
     
    35083495    out DX, AL                                ; ee
    35093496    mov ax, strict word 00004h                ; b8 04 00
    3510     jmp near 02e41h                           ; e9 58 01
     3497    jmp near 02e23h                           ; e9 58 01
    35113498    sti                                       ; fb
    35123499    mov CL, strict byte 004h                  ; b1 04
     
    35223509    ; rep es outsw                              ; f3 26 6f
    35233510    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3524     jne short 02d13h                          ; 75 0b
     3511    jne short 02cf5h                          ; 75 0b
    35253512    add dx, strict byte 00007h                ; 83 c2 07
    35263513    in AL, DX                                 ; ec
     
    35283515    ; sub ah, ah                                ; 2a e4
    35293516    mov bl, al                                ; 88 c3
    3530     jmp near 02e22h                           ; e9 0f 01
     3517    jmp near 02e04h                           ; e9 0f 01
    35313518    mov dx, word [bp-012h]                    ; 8b 56 ee
    35323519    add dx, strict byte 00007h                ; 83 c2 07
     
    35363523    mov bl, al                                ; 88 c3
    35373524    test AL, strict byte 080h                 ; a8 80
    3538     jne short 02d13h                          ; 75 f1
     3525    jne short 02cf5h                          ; 75 f1
    35393526    test AL, strict byte 088h                 ; a8 88
    3540     je short 02d88h                           ; 74 62
     3527    je short 02d6ah                           ; 74 62
    35413528    test AL, strict byte 001h                 ; a8 01
    3542     je short 02d35h                           ; 74 0b
     3529    je short 02d17h                           ; 74 0b
    35433530    mov dx, word [bp-008h]                    ; 8b 56 f8
    35443531    add dx, strict byte 00006h                ; 83 c2 06
    35453532    mov AL, strict byte 008h                  ; b0 08
    35463533    out DX, AL                                ; ee
    3547     jmp short 02ccfh                          ; eb 9a
     3534    jmp short 02cb1h                          ; eb 9a
    35483535    mov al, bl                                ; 88 d8
    35493536    and AL, strict byte 0c9h                  ; 24 c9
    35503537    cmp AL, strict byte 048h                  ; 3c 48
    3551     je short 02d48h                           ; 74 0b
     3538    je short 02d2ah                           ; 74 0b
    35523539    mov dx, word [bp-008h]                    ; 8b 56 f8
    35533540    add dx, strict byte 00006h                ; 83 c2 06
    35543541    mov AL, strict byte 008h                  ; b0 08
    35553542    out DX, AL                                ; ee
    3556     jmp short 02ce3h                          ; eb 9b
     3543    jmp short 02cc5h                          ; eb 9b
    35573544    mov CL, strict byte 004h                  ; b1 04
    35583545    mov ax, word [bp+00ch]                    ; 8b 46 0c
     
    35793566    mov ax, word [bp+004h]                    ; 8b 46 04
    35803567    cmp bx, ax                                ; 39 c3
    3581     jnc short 02d8bh                          ; 73 0c
     3568    jnc short 02d6dh                          ; 73 0c
    35823569    mov cx, bx                                ; 89 d9
    35833570    sub word [bp+004h], bx                    ; 29 5e 04
    35843571    xor bx, bx                                ; 31 db
    3585     jmp short 02d94h                          ; eb 0c
    3586     jmp near 02e22h                           ; e9 97 00
     3572    jmp short 02d76h                          ; eb 0c
     3573    jmp near 02e04h                           ; e9 97 00
    35873574    mov cx, ax                                ; 89 c1
    35883575    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    35903577    xor ax, ax                                ; 31 c0
    35913578    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3592     jne short 02db2h                          ; 75 16
     3579    jne short 02d94h                          ; 75 16
    35933580    cmp bx, word [bp+006h]                    ; 3b 5e 06
    3594     jbe short 02db2h                          ; 76 11
     3581    jbe short 02d94h                          ; 76 11
    35953582    sub bx, word [bp+006h]                    ; 2b 5e 06
    35963583    mov word [bp-014h], bx                    ; 89 5e ec
     
    35983585    mov word [bp+006h], ax                    ; 89 46 06
    35993586    mov word [bp+008h], ax                    ; 89 46 08
    3600     jmp short 02dbbh                          ; eb 09
     3587    jmp short 02d9dh                          ; eb 09
    36013588    mov word [bp-014h], ax                    ; 89 46 ec
    36023589    sub word [bp+006h], bx                    ; 29 5e 06
     
    36073594    test byte [bp-014h], 003h                 ; f6 46 ec 03
    36083595    test bl, 001h                             ; f6 c3 01
    3609     je short 02ddch                           ; 74 10
     3596    je short 02dbeh                           ; 74 10
    36103597    inc bx                                    ; 43
    36113598    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    3612     jbe short 02ddch                          ; 76 09
     3599    jbe short 02dbeh                          ; 76 09
    36133600    test byte [bp-014h], 001h                 ; f6 46 ec 01
    3614     je short 02ddch                           ; 74 03
     3601    je short 02dbeh                           ; 74 03
    36153602    dec word [bp-014h]                        ; ff 4e ec
    36163603    shr bx, 1                                 ; d1 eb
     
    36183605    shr word [bp-014h], 1                     ; d1 6e ec
    36193606    test cx, cx                               ; 85 c9
    3620     je short 02dedh                           ; 74 06
     3607    je short 02dcfh                           ; 74 06
    36213608    mov dx, word [bp-012h]                    ; 8b 56 ee
    36223609    in ax, DX                                 ; ed
    3623     loop 02deah                               ; e2 fd
     3610    loop 02dcch                               ; e2 fd
    36243611    mov dx, word [bp-012h]                    ; 8b 56 ee
    36253612    mov cx, bx                                ; 89 d9
     
    36283615    mov ax, word [bp-014h]                    ; 8b 46 ec
    36293616    test ax, ax                               ; 85 c0
    3630     je short 02e03h                           ; 74 05
     3617    je short 02de5h                           ; 74 05
    36313618    mov cx, ax                                ; 89 c1
    36323619    in ax, DX                                 ; ed
    3633     loop 02e00h                               ; e2 fd
     3620    loop 02de2h                               ; e2 fd
    36343621    add word [bp+00ch], si                    ; 01 76 0c
    36353622    xor ax, ax                                ; 31 c0
     
    36413628    mov ax, word [bp-00ah]                    ; 8b 46 f6
    36423629    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    3643     jmp near 02d13h                           ; e9 f1 fe
     3630    jmp near 02cf5h                           ; e9 f1 fe
    36443631    mov al, bl                                ; 88 d8
    36453632    and AL, strict byte 0e9h                  ; 24 e9
    36463633    cmp AL, strict byte 040h                  ; 3c 40
    3647     je short 02e36h                           ; 74 0c
     3634    je short 02e18h                           ; 74 0c
    36483635    mov dx, word [bp-008h]                    ; 8b 56 f8
    36493636    add dx, strict byte 00006h                ; 83 c2 06
    36503637    mov AL, strict byte 008h                  ; b0 08
    36513638    out DX, AL                                ; ee
    3652     jmp near 02ce3h                           ; e9 ad fe
     3639    jmp near 02cc5h                           ; e9 ad fe
    36533640    mov dx, word [bp-008h]                    ; 8b 56 f8
    36543641    add dx, strict byte 00006h                ; 83 c2 06
     
    36613648    pop bp                                    ; 5d
    36623649    retn 0000ch                               ; c2 0c 00
    3663 ata_soft_reset_:                             ; 0xf2e4a LB 0x84
     3650ata_soft_reset_:                             ; 0xf2e2c LB 0x84
    36643651    push bp                                   ; 55
    36653652    mov bp, sp                                ; 89 e5
     
    36713658    mov dx, strict word 0000eh                ; ba 0e 00
    36723659    mov ax, strict word 00040h                ; b8 40 00
    3673     call 0166eh                               ; e8 12 e8
     3660    call 0166eh                               ; e8 30 e8
    36743661    mov es, ax                                ; 8e c0
    36753662    mov ax, bx                                ; 89 d8
     
    36883675    out DX, AL                                ; ee
    36893676    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3690     je short 02e90h                           ; 74 05
     3677    je short 02e72h                           ; 74 05
    36913678    mov ax, 000b0h                            ; b8 b0 00
    3692     jmp short 02e93h                          ; eb 03
     3679    jmp short 02e75h                          ; eb 03
    36933680    mov ax, 000a0h                            ; b8 a0 00
    36943681    mov dx, cx                                ; 89 ca
     
    37053692    ; sub ah, ah                                ; 2a e4
    37063693    test AL, strict byte 080h                 ; a8 80
    3707     jne short 02ea1h                          ; 75 f4
     3694    jne short 02e83h                          ; 75 f4
    37083695    and AL, strict byte 0e9h                  ; 24 e9
    37093696    cmp AL, strict byte 040h                  ; 3c 40
    3710     je short 02ebeh                           ; 74 0b
     3697    je short 02ea0h                           ; 74 0b
    37113698    lea dx, [bx+006h]                         ; 8d 57 06
    37123699    mov AL, strict byte 008h                  ; b0 08
    37133700    out DX, AL                                ; ee
    37143701    mov ax, strict word 00001h                ; b8 01 00
    3715     jmp short 02ec6h                          ; eb 08
     3702    jmp short 02ea8h                          ; eb 08
    37163703    lea dx, [bx+006h]                         ; 8d 57 06
    37173704    mov AL, strict byte 008h                  ; b0 08
     
    37243711    pop bp                                    ; 5d
    37253712    retn                                      ; c3
    3726 set_diskette_ret_status_:                    ; 0xf2ece LB 0x19
     3713set_diskette_ret_status_:                    ; 0xf2eb0 LB 0x19
    37273714    push bp                                   ; 55
    37283715    mov bp, sp                                ; 89 e5
     
    37333720    mov dx, strict word 00041h                ; ba 41 00
    37343721    mov ax, strict word 00040h                ; b8 40 00
    3735     call 01660h                               ; e8 80 e7
     3722    call 01660h                               ; e8 9e e7
    37363723    lea sp, [bp-004h]                         ; 8d 66 fc
    37373724    pop dx                                    ; 5a
     
    37393726    pop bp                                    ; 5d
    37403727    retn                                      ; c3
    3741 set_diskette_current_cyl_:                   ; 0xf2ee7 LB 0x36
     3728set_diskette_current_cyl_:                   ; 0xf2ec9 LB 0x36
    37423729    push bp                                   ; 55
    37433730    mov bp, sp                                ; 89 e5
     
    37463733    mov bl, al                                ; 88 c3
    37473734    cmp AL, strict byte 001h                  ; 3c 01
    3748     jbe short 02f00h                          ; 76 0e
     3735    jbe short 02ee2h                          ; 76 0e
    37493736    mov ax, 00250h                            ; b8 50 02
    37503737    push ax                                   ; 50
    37513738    mov ax, strict word 00007h                ; b8 07 00
    37523739    push ax                                   ; 50
    3753     call 01976h                               ; e8 79 ea
     3740    call 01976h                               ; e8 97 ea
    37543741    add sp, strict byte 00004h                ; 83 c4 04
    37553742    mov al, dl                                ; 88 d0
     
    37613748    mov bx, cx                                ; 89 cb
    37623749    mov ax, strict word 00040h                ; b8 40 00
    3763     call 01660h                               ; e8 4a e7
     3750    call 01660h                               ; e8 68 e7
    37643751    lea sp, [bp-004h]                         ; 8d 66 fc
    37653752    pop cx                                    ; 59
     
    37673754    pop bp                                    ; 5d
    37683755    retn                                      ; c3
    3769 floppy_wait_for_interrupt_:                  ; 0xf2f1d LB 0x21
     3756floppy_wait_for_interrupt_:                  ; 0xf2eff LB 0x21
    37703757    push bp                                   ; 55
    37713758    mov bp, sp                                ; 89 e5
     
    37743761    mov dx, strict word 0003eh                ; ba 3e 00
    37753762    mov ax, strict word 00040h                ; b8 40 00
    3776     call 01652h                               ; e8 27 e7
     3763    call 01652h                               ; e8 45 e7
    37773764    test AL, strict byte 080h                 ; a8 80
    3778     je short 02f33h                           ; 74 04
     3765    je short 02f15h                           ; 74 04
    37793766    and AL, strict byte 080h                  ; 24 80
    3780     jmp short 02f38h                          ; eb 05
     3767    jmp short 02f1ah                          ; eb 05
    37813768    sti                                       ; fb
    37823769    hlt                                       ; f4
    37833770    cli                                       ; fa
    3784     jmp short 02f22h                          ; eb ea
     3771    jmp short 02f04h                          ; eb ea
    37853772    lea sp, [bp-002h]                         ; 8d 66 fe
    37863773    pop dx                                    ; 5a
    37873774    pop bp                                    ; 5d
    37883775    retn                                      ; c3
    3789 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f3e LB 0x47
     3776floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f20 LB 0x47
    37903777    push bp                                   ; 55
    37913778    mov bp, sp                                ; 89 e5
     
    37963783    mov dx, strict word 00040h                ; ba 40 00
    37973784    mov ax, dx                                ; 89 d0
    3798     call 01652h                               ; e8 05 e7
     3785    call 01652h                               ; e8 23 e7
    37993786    test al, al                               ; 84 c0
    3800     jne short 02f56h                          ; 75 05
     3787    jne short 02f38h                          ; 75 05
    38013788    sti                                       ; fb
    38023789    xor cl, cl                                ; 30 c9
    3803     jmp short 02f7bh                          ; eb 25
     3790    jmp short 02f5dh                          ; eb 25
    38043791    mov dx, strict word 0003eh                ; ba 3e 00
    38053792    mov ax, strict word 00040h                ; b8 40 00
    3806     call 01652h                               ; e8 f3 e6
     3793    call 01652h                               ; e8 11 e7
    38073794    mov cl, al                                ; 88 c1
    38083795    test AL, strict byte 080h                 ; a8 80
    3809     je short 02f76h                           ; 74 11
     3796    je short 02f58h                           ; 74 11
    38103797    and AL, strict byte 07fh                  ; 24 7f
    38113798    xor ah, ah                                ; 30 e4
     
    38133800    mov dx, strict word 0003eh                ; ba 3e 00
    38143801    mov ax, strict word 00040h                ; b8 40 00
    3815     call 01660h                               ; e8 ec e6
    3816     jmp short 02f7bh                          ; eb 05
     3802    call 01660h                               ; e8 0a e7
     3803    jmp short 02f5dh                          ; eb 05
    38173804    sti                                       ; fb
    38183805    hlt                                       ; f4
    38193806    cli                                       ; fa
    3820     jmp short 02f45h                          ; eb ca
     3807    jmp short 02f27h                          ; eb ca
    38213808    mov al, cl                                ; 88 c8
    38223809    lea sp, [bp-006h]                         ; 8d 66 fa
     
    38263813    pop bp                                    ; 5d
    38273814    retn                                      ; c3
    3828 floppy_reset_controller_:                    ; 0xf2f85 LB 0x28
     3815floppy_reset_controller_:                    ; 0xf2f67 LB 0x28
    38293816    push bp                                   ; 55
    38303817    mov bp, sp                                ; 89 e5
     
    38473834    and AL, strict byte 0c0h                  ; 24 c0
    38483835    cmp AL, strict byte 080h                  ; 3c 80
    3849     jne short 02f9ah                          ; 75 f4
     3836    jne short 02f7ch                          ; 75 f4
    38503837    lea sp, [bp-004h]                         ; 8d 66 fc
    38513838    pop dx                                    ; 5a
     
    38533840    pop bp                                    ; 5d
    38543841    retn                                      ; c3
    3855 floppy_prepare_controller_:                  ; 0xf2fad LB 0x84
     3842floppy_prepare_controller_:                  ; 0xf2f8f LB 0x84
    38563843    push bp                                   ; 55
    38573844    mov bp, sp                                ; 89 e5
     
    38633850    mov dx, strict word 0003eh                ; ba 3e 00
    38643851    mov ax, strict word 00040h                ; b8 40 00
    3865     call 01652h                               ; e8 93 e6
     3852    call 01652h                               ; e8 b1 e6
    38663853    and AL, strict byte 07fh                  ; 24 7f
    38673854    xor ah, ah                                ; 30 e4
     
    38693856    mov dx, strict word 0003eh                ; ba 3e 00
    38703857    mov ax, strict word 00040h                ; b8 40 00
    3871     call 01660h                               ; e8 92 e6
     3858    call 01660h                               ; e8 b0 e6
    38723859    mov dx, 003f2h                            ; ba f2 03
    38733860    in AL, DX                                 ; ec
     
    38773864    mov byte [bp-008h], al                    ; 88 46 f8
    38783865    test cx, cx                               ; 85 c9
    3879     je short 02fe1h                           ; 74 04
     3866    je short 02fc3h                           ; 74 04
    38803867    mov AL, strict byte 020h                  ; b0 20
    3881     jmp short 02fe3h                          ; eb 02
     3868    jmp short 02fc5h                          ; eb 02
    38823869    mov AL, strict byte 010h                  ; b0 10
    38833870    or AL, strict byte 00ch                   ; 0c 0c
     
    38883875    mov dx, strict word 00040h                ; ba 40 00
    38893876    mov ax, dx                                ; 89 d0
    3890     call 01660h                               ; e8 6a e6
     3877    call 01660h                               ; e8 88 e6
    38913878    mov dx, 0008bh                            ; ba 8b 00
    38923879    mov ax, strict word 00040h                ; b8 40 00
    3893     call 01652h                               ; e8 53 e6
     3880    call 01652h                               ; e8 71 e6
    38943881    mov CL, strict byte 006h                  ; b1 06
    38953882    shr al, CL                                ; d2 e8
     
    39023889    and AL, strict byte 0c0h                  ; 24 c0
    39033890    cmp AL, strict byte 080h                  ; 3c 80
    3904     jne short 03007h                          ; 75 f4
     3891    jne short 02fe9h                          ; 75 f4
    39053892    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3906     jne short 03029h                          ; 75 10
    3907     call 02f1dh                               ; e8 01 ff
     3893    jne short 0300bh                          ; 75 10
     3894    call 02effh                               ; e8 01 ff
    39083895    mov bl, al                                ; 88 c3
    39093896    xor bh, bh                                ; 30 ff
    39103897    mov dx, strict word 0003eh                ; ba 3e 00
    39113898    mov ax, strict word 00040h                ; b8 40 00
    3912     call 01660h                               ; e8 37 e6
     3899    call 01660h                               ; e8 55 e6
    39133900    lea sp, [bp-006h]                         ; 8d 66 fa
    39143901    pop dx                                    ; 5a
     
    39173904    pop bp                                    ; 5d
    39183905    retn                                      ; c3
    3919 floppy_media_known_:                         ; 0xf3031 LB 0x46
     3906floppy_media_known_:                         ; 0xf3013 LB 0x46
    39203907    push bp                                   ; 55
    39213908    mov bp, sp                                ; 89 e5
     
    39263913    mov dx, strict word 0003eh                ; ba 3e 00
    39273914    mov ax, strict word 00040h                ; b8 40 00
    3928     call 01652h                               ; e8 10 e6
     3915    call 01652h                               ; e8 2e e6
    39293916    mov ah, al                                ; 88 c4
    39303917    test bx, bx                               ; 85 db
    3931     je short 0304ah                           ; 74 02
     3918    je short 0302ch                           ; 74 02
    39323919    shr al, 1                                 ; d0 e8
    39333920    and AL, strict byte 001h                  ; 24 01
    3934     jne short 03052h                          ; 75 04
    3935     xor ah, ah                                ; 30 e4
    3936     jmp short 0306fh                          ; eb 1d
     3921    jne short 03034h                          ; 75 04
     3922    xor ah, ah                                ; 30 e4
     3923    jmp short 03051h                          ; eb 1d
    39373924    mov dx, 00090h                            ; ba 90 00
    39383925    test bx, bx                               ; 85 db
    3939     je short 0305ch                           ; 74 03
     3926    je short 0303eh                           ; 74 03
    39403927    mov dx, 00091h                            ; ba 91 00
    39413928    mov ax, strict word 00040h                ; b8 40 00
    3942     call 01652h                               ; e8 f0 e5
     3929    call 01652h                               ; e8 0e e6
    39433930    xor ah, ah                                ; 30 e4
    39443931    mov CL, strict byte 004h                  ; b1 04
    39453932    sar ax, CL                                ; d3 f8
    39463933    and AL, strict byte 001h                  ; 24 01
    3947     je short 0304eh                           ; 74 e2
     3934    je short 03030h                           ; 74 e2
    39483935    mov ax, strict word 00001h                ; b8 01 00
    39493936    lea sp, [bp-006h]                         ; 8d 66 fa
     
    39533940    pop bp                                    ; 5d
    39543941    retn                                      ; c3
    3955 floppy_read_id_:                             ; 0xf3077 LB 0x44
     3942floppy_read_id_:                             ; 0xf3059 LB 0x44
    39563943    push bp                                   ; 55
    39573944    mov bp, sp                                ; 89 e5
     
    39613948    sub sp, strict byte 00008h                ; 83 ec 08
    39623949    mov bx, ax                                ; 89 c3
    3963     call 02fadh                               ; e8 28 ff
     3950    call 02f8fh                               ; e8 28 ff
    39643951    mov AL, strict byte 04ah                  ; b0 4a
    39653952    mov dx, 003f5h                            ; ba f5 03
     
    39673954    mov al, bl                                ; 88 d8
    39683955    out DX, AL                                ; ee
    3969     call 02f1dh                               ; e8 8c fe
     3956    call 02effh                               ; e8 8c fe
    39703957    xor si, si                                ; 31 f6
    3971     jmp short 0309ah                          ; eb 05
     3958    jmp short 0307ch                          ; eb 05
    39723959    cmp si, strict byte 00007h                ; 83 fe 07
    3973     jnl short 030a6h                          ; 7d 0c
     3960    jnl short 03088h                          ; 7d 0c
    39743961    mov dx, 003f5h                            ; ba f5 03
    39753962    in AL, DX                                 ; ec
     
    39783965    mov byte [bp+si-00eh], al                 ; 88 42 f2
    39793966    inc si                                    ; 46
    3980     jmp short 03095h                          ; eb ef
     3967    jmp short 03077h                          ; eb ef
    39813968    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    3982     je short 030b0h                           ; 74 04
     3969    je short 03092h                           ; 74 04
    39833970    xor ax, ax                                ; 31 c0
    3984     jmp short 030b3h                          ; eb 03
     3971    jmp short 03095h                          ; eb 03
    39853972    mov ax, strict word 00001h                ; b8 01 00
    39863973    lea sp, [bp-006h]                         ; 8d 66 fa
     
    39903977    pop bp                                    ; 5d
    39913978    retn                                      ; c3
    3992 floppy_drive_recal_:                         ; 0xf30bb LB 0x4d
     3979floppy_drive_recal_:                         ; 0xf309d LB 0x4d
    39933980    push bp                                   ; 55
    39943981    mov bp, sp                                ; 89 e5
     
    39973984    push dx                                   ; 52
    39983985    mov bx, ax                                ; 89 c3
    3999     call 02fadh                               ; e8 e7 fe
     3986    call 02f8fh                               ; e8 e7 fe
    40003987    mov AL, strict byte 007h                  ; b0 07
    40013988    mov dx, 003f5h                            ; ba f5 03
     
    40033990    mov al, bl                                ; 88 d8
    40043991    out DX, AL                                ; ee
    4005     call 02f1dh                               ; e8 4b fe
     3992    call 02effh                               ; e8 4b fe
    40063993    test bx, bx                               ; 85 db
    4007     je short 030e0h                           ; 74 0a
     3994    je short 030c2h                           ; 74 0a
    40083995    mov bl, al                                ; 88 c3
    40093996    or bl, 002h                               ; 80 cb 02
    40103997    mov cx, 00095h                            ; b9 95 00
    4011     jmp short 030e8h                          ; eb 08
     3998    jmp short 030cah                          ; eb 08
    40123999    mov bl, al                                ; 88 c3
    40134000    or bl, 001h                               ; 80 cb 01
     
    40164003    mov dx, strict word 0003eh                ; ba 3e 00
    40174004    mov ax, strict word 00040h                ; b8 40 00
    4018     call 01660h                               ; e8 6d e5
     4005    call 01660h                               ; e8 8b e5
    40194006    xor bx, bx                                ; 31 db
    40204007    mov dx, cx                                ; 89 ca
    40214008    mov ax, strict word 00040h                ; b8 40 00
    4022     call 01660h                               ; e8 63 e5
     4009    call 01660h                               ; e8 81 e5
    40234010    mov ax, strict word 00001h                ; b8 01 00
    40244011    lea sp, [bp-006h]                         ; 8d 66 fa
     
    40284015    pop bp                                    ; 5d
    40294016    retn                                      ; c3
    4030 floppy_media_sense_:                         ; 0xf3108 LB 0xfa
     4017floppy_media_sense_:                         ; 0xf30ea LB 0xfa
    40314018    push bp                                   ; 55
    40324019    mov bp, sp                                ; 89 e5
     
    40374024    push di                                   ; 57
    40384025    mov di, ax                                ; 89 c7
    4039     call 030bbh                               ; e8 a6 ff
     4026    call 0309dh                               ; e8 a6 ff
    40404027    test ax, ax                               ; 85 c0
    4041     jne short 0311eh                          ; 75 05
     4028    jne short 03100h                          ; 75 05
    40424029    xor cx, cx                                ; 31 c9
    4043     jmp near 031f6h                           ; e9 d8 00
     4030    jmp near 031d8h                           ; e9 d8 00
    40444031    mov ax, strict word 00010h                ; b8 10 00
    4045     call 016aeh                               ; e8 8a e5
     4032    call 016aeh                               ; e8 a8 e5
    40464033    test di, di                               ; 85 ff
    4047     jne short 03130h                          ; 75 08
     4034    jne short 03112h                          ; 75 08
    40484035    mov CL, strict byte 004h                  ; b1 04
    40494036    shr al, CL                                ; d2 e8
    40504037    mov cl, al                                ; 88 c1
    4051     jmp short 03135h                          ; eb 05
     4038    jmp short 03117h                          ; eb 05
    40524039    mov cl, al                                ; 88 c1
    40534040    and cl, 00fh                              ; 80 e1 0f
    40544041    cmp cl, 001h                              ; 80 f9 01
    4055     jne short 03143h                          ; 75 09
     4042    jne short 03125h                          ; 75 09
    40564043    xor cl, cl                                ; 30 c9
    40574044    mov CH, strict byte 015h                  ; b5 15
    40584045    mov si, strict word 00001h                ; be 01 00
    4059     jmp short 03181h                          ; eb 3e
     4046    jmp short 03163h                          ; eb 3e
    40604047    cmp cl, 002h                              ; 80 f9 02
    4061     jne short 0314eh                          ; 75 06
     4048    jne short 03130h                          ; 75 06
    40624049    xor cl, cl                                ; 30 c9
    40634050    mov CH, strict byte 035h                  ; b5 35
    4064     jmp short 0313eh                          ; eb f0
     4051    jmp short 03120h                          ; eb f0
    40654052    cmp cl, 003h                              ; 80 f9 03
    4066     jne short 03159h                          ; 75 06
     4053    jne short 0313bh                          ; 75 06
    40674054    xor cl, cl                                ; 30 c9
    40684055    mov CH, strict byte 017h                  ; b5 17
    4069     jmp short 0313eh                          ; eb e5
     4056    jmp short 03120h                          ; eb e5
    40704057    cmp cl, 004h                              ; 80 f9 04
    4071     jne short 03164h                          ; 75 06
     4058    jne short 03146h                          ; 75 06
    40724059    xor cl, cl                                ; 30 c9
    40734060    mov CH, strict byte 017h                  ; b5 17
    4074     jmp short 0313eh                          ; eb da
     4061    jmp short 03120h                          ; eb da
    40754062    cmp cl, 005h                              ; 80 f9 05
    4076     jne short 0316fh                          ; 75 06
     4063    jne short 03151h                          ; 75 06
    40774064    mov CL, strict byte 0cch                  ; b1 cc
    40784065    mov CH, strict byte 0d7h                  ; b5 d7
    4079     jmp short 0313eh                          ; eb cf
     4066    jmp short 03120h                          ; eb cf
    40804067    cmp cl, 00eh                              ; 80 f9 0e
    4081     je short 03179h                           ; 74 05
     4068    je short 0315bh                           ; 74 05
    40824069    cmp cl, 00fh                              ; 80 f9 0f
    4083     jne short 0317bh                          ; 75 02
    4084     jmp short 03169h                          ; eb ee
     4070    jne short 0315dh                          ; 75 02
     4071    jmp short 0314bh                          ; eb ee
    40854072    xor cl, cl                                ; 30 c9
    40864073    xor ch, ch                                ; 30 ed
     
    40914078    mov dx, 0008bh                            ; ba 8b 00
    40924079    mov ax, strict word 00040h                ; b8 40 00
    4093     call 01660h                               ; e8 d0 e4
     4080    call 01660h                               ; e8 ee e4
    40944081    mov ax, di                                ; 89 f8
    4095     call 03077h                               ; e8 e2 fe
     4082    call 03059h                               ; e8 e2 fe
    40964083    test ax, ax                               ; 85 c0
    4097     jne short 031cbh                          ; 75 32
     4084    jne short 031adh                          ; 75 32
    40984085    mov al, cl                                ; 88 c8
    40994086    and AL, strict byte 0c0h                  ; 24 c0
    41004087    cmp AL, strict byte 080h                  ; 3c 80
    4101     je short 031cbh                           ; 74 2a
     4088    je short 031adh                           ; 74 2a
    41024089    mov al, cl                                ; 88 c8
    41034090    and AL, strict byte 0c0h                  ; 24 c0
    41044091    cmp AL, strict byte 0c0h                  ; 3c c0
    4105     je short 031b8h                           ; 74 0f
     4092    je short 0319ah                           ; 74 0f
    41064093    mov ah, cl                                ; 88 cc
    41074094    and ah, 03fh                              ; 80 e4 3f
    41084095    cmp AL, strict byte 040h                  ; 3c 40
    4109     je short 031c4h                           ; 74 12
     4096    je short 031a6h                           ; 74 12
    41104097    test al, al                               ; 84 c0
    4111     je short 031bdh                           ; 74 07
    4112     jmp short 03181h                          ; eb c9
     4098    je short 0319fh                           ; 74 07
     4099    jmp short 03163h                          ; eb c9
    41134100    and cl, 03fh                              ; 80 e1 3f
    4114     jmp short 03181h                          ; eb c4
     4101    jmp short 03163h                          ; eb c4
    41154102    mov cl, ah                                ; 88 e1
    41164103    or cl, 040h                               ; 80 c9 40
    4117     jmp short 03181h                          ; eb bd
     4104    jmp short 03163h                          ; eb bd
    41184105    mov cl, ah                                ; 88 e1
    41194106    or cl, 080h                               ; 80 c9 80
    4120     jmp short 03181h                          ; eb b6
     4107    jmp short 03163h                          ; eb b6
    41214108    test di, di                               ; 85 ff
    4122     jne short 031d4h                          ; 75 05
     4109    jne short 031b6h                          ; 75 05
    41234110    mov di, 00090h                            ; bf 90 00
    4124     jmp short 031d7h                          ; eb 03
     4111    jmp short 031b9h                          ; eb 03
    41254112    mov di, 00091h                            ; bf 91 00
    41264113    mov al, cl                                ; 88 c8
     
    41294116    mov dx, 0008bh                            ; ba 8b 00
    41304117    mov ax, strict word 00040h                ; b8 40 00
    4131     call 01660h                               ; e8 7a e4
     4118    call 01660h                               ; e8 98 e4
    41324119    mov al, ch                                ; 88 e8
    41334120    xor ah, ah                                ; 30 e4
     
    41354122    mov dx, di                                ; 89 fa
    41364123    mov ax, strict word 00040h                ; b8 40 00
    4137     call 01660h                               ; e8 6c e4
     4124    call 01660h                               ; e8 8a e4
    41384125    mov cx, si                                ; 89 f1
    41394126    mov ax, cx                                ; 89 c8
     
    41464133    pop bp                                    ; 5d
    41474134    retn                                      ; c3
    4148 floppy_drive_exists_:                        ; 0xf3202 LB 0x2b
     4135floppy_drive_exists_:                        ; 0xf31e4 LB 0x2b
    41494136    push bp                                   ; 55
    41504137    mov bp, sp                                ; 89 e5
     
    41534140    mov dx, ax                                ; 89 c2
    41544141    mov ax, strict word 00010h                ; b8 10 00
    4155     call 016aeh                               ; e8 9f e4
     4142    call 016aeh                               ; e8 bd e4
    41564143    test dx, dx                               ; 85 d2
    4157     jne short 03219h                          ; 75 06
     4144    jne short 031fbh                          ; 75 06
    41584145    mov CL, strict byte 004h                  ; b1 04
    41594146    shr al, CL                                ; d2 e8
    4160     jmp short 0321bh                          ; eb 02
     4147    jmp short 031fdh                          ; eb 02
    41614148    and AL, strict byte 00fh                  ; 24 0f
    41624149    test al, al                               ; 84 c0
    4163     je short 03224h                           ; 74 05
     4150    je short 03206h                           ; 74 05
    41644151    mov ax, strict word 00001h                ; b8 01 00
    4165     jmp short 03226h                          ; eb 02
     4152    jmp short 03208h                          ; eb 02
    41664153    xor ah, ah                                ; 30 e4
    41674154    lea sp, [bp-004h]                         ; 8d 66 fc
     
    41704157    pop bp                                    ; 5d
    41714158    retn                                      ; c3
    4172 _int13_diskette_function:                    ; 0xf322d LB 0x97c
     4159_int13_diskette_function:                    ; 0xf320f LB 0x97c
    41734160    push bp                                   ; 55
    41744161    mov bp, sp                                ; 89 e5
     
    41894176    mov dx, word [bp-014h]                    ; 8b 56 ec
    41904177    cmp bl, 008h                              ; 80 fb 08
    4191     jc short 0328ch                           ; 72 2e
     4178    jc short 0326eh                           ; 72 2e
    41924179    mov dx, word [bp+01ch]                    ; 8b 56 1c
    41934180    or dl, 001h                               ; 80 ca 01
    41944181    cmp bl, 008h                              ; 80 fb 08
    4195     jbe short 032c2h                          ; 76 59
     4182    jbe short 032a4h                          ; 76 59
    41964183    cmp bl, 016h                              ; 80 fb 16
    4197     jc short 03284h                           ; 72 16
     4184    jc short 03266h                           ; 72 16
    41984185    or si, 00100h                             ; 81 ce 00 01
    41994186    cmp bl, 016h                              ; 80 fb 16
    4200     jbe short 032c5h                          ; 76 4e
     4187    jbe short 032a7h                          ; 76 4e
    42014188    cmp bl, 018h                              ; 80 fb 18
    4202     je short 032c8h                           ; 74 4c
     4189    je short 032aah                           ; 74 4c
    42034190    cmp bl, 017h                              ; 80 fb 17
    4204     je short 032dfh                           ; 74 5e
    4205     jmp near 03b83h                           ; e9 ff 08
     4191    je short 032c1h                           ; 74 5e
     4192    jmp near 03b65h                           ; e9 ff 08
    42064193    cmp bl, 015h                              ; 80 fb 15
    4207     je short 032e2h                           ; 74 59
    4208     jmp near 03b83h                           ; e9 f7 08
     4194    je short 032c4h                           ; 74 59
     4195    jmp near 03b65h                           ; e9 f7 08
    42094196    cmp bl, 001h                              ; 80 fb 01
    4210     jc short 032a0h                           ; 72 0f
    4211     jbe short 032e5h                          ; 76 52
     4197    jc short 03282h                           ; 72 0f
     4198    jbe short 032c7h                          ; 76 52
    42124199    cmp bl, 005h                              ; 80 fb 05
    4213     je short 03300h                           ; 74 68
     4200    je short 032e2h                           ; 74 68
    42144201    cmp bl, 004h                              ; 80 fb 04
    4215     jbe short 03303h                          ; 76 66
    4216     jmp near 03b83h                           ; e9 e3 08
     4202    jbe short 032e5h                          ; 76 66
     4203    jmp near 03b65h                           ; e9 e3 08
    42174204    test bl, bl                               ; 84 db
    4218     jne short 03305h                          ; 75 61
     4205    jne short 032e7h                          ; 75 61
    42194206    mov al, byte [bp+00eh]                    ; 8a 46 0e
    42204207    mov byte [bp-006h], al                    ; 88 46 fa
    42214208    cmp AL, strict byte 001h                  ; 3c 01
    4222     jbe short 032cbh                          ; 76 1d
     4209    jbe short 032adh                          ; 76 1d
    42234210    mov ax, word [bp+016h]                    ; 8b 46 16
    42244211    xor ah, ah                                ; 30 e4
     
    42264213    mov word [bp+016h], ax                    ; 89 46 16
    42274214    mov ax, strict word 00001h                ; b8 01 00
    4228     call 02eceh                               ; e8 0f fc
    4229     jmp near 03674h                           ; e9 b2 03
    4230     jmp near 03845h                           ; e9 80 05
    4231     jmp near 03989h                           ; e9 c1 06
    4232     jmp near 03a22h                           ; e9 57 07
     4215    call 02eb0h                               ; e8 0f fc
     4216    jmp near 03656h                           ; e9 b2 03
     4217    jmp near 03827h                           ; e9 80 05
     4218    jmp near 0396bh                           ; e9 c1 06
     4219    jmp near 03a04h                           ; e9 57 07
    42334220    mov ax, strict word 00010h                ; b8 10 00
    4234     call 016aeh                               ; e8 dd e3
     4221    call 016aeh                               ; e8 fb e3
    42354222    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4236     jne short 032e7h                          ; 75 10
     4223    jne short 032c9h                          ; 75 10
    42374224    mov CL, strict byte 004h                  ; b1 04
    42384225    mov ch, al                                ; 88 c5
    42394226    shr ch, CL                                ; d2 ed
    4240     jmp short 032ech                          ; eb 0d
    4241     jmp near 039adh                           ; e9 cb 06
    4242     jmp near 03944h                           ; e9 5f 06
    4243     jmp short 0332eh                          ; eb 47
     4227    jmp short 032ceh                          ; eb 0d
     4228    jmp near 0398fh                           ; e9 cb 06
     4229    jmp near 03926h                           ; e9 5f 06
     4230    jmp short 03310h                          ; eb 47
    42444231    mov ch, al                                ; 88 c5
    42454232    and ch, 00fh                              ; 80 e5 0f
    42464233    test ch, ch                               ; 84 ed
    4247     jne short 03308h                          ; 75 18
     4234    jne short 032eah                          ; 75 18
    42484235    mov ax, word [bp+016h]                    ; 8b 46 16
    42494236    xor ah, ah                                ; 30 e4
     
    42514238    mov word [bp+016h], ax                    ; 89 46 16
    42524239    mov ax, 00080h                            ; b8 80 00
    4253     jmp short 032bch                          ; eb bc
    4254     jmp near 0369eh                           ; e9 9b 03
    4255     jmp short 0334ah                          ; eb 45
    4256     jmp near 03b83h                           ; e9 7b 08
     4240    jmp short 0329eh                          ; eb bc
     4241    jmp near 03680h                           ; e9 9b 03
     4242    jmp short 0332ch                          ; eb 45
     4243    jmp near 03b65h                           ; e9 7b 08
    42574244    xor bx, bx                                ; 31 db
    42584245    mov dx, strict word 0003eh                ; ba 3e 00
    42594246    mov ax, strict word 00040h                ; b8 40 00
    4260     call 01660h                               ; e8 4d e3
     4247    call 01660h                               ; e8 6b e3
    42614248    xor al, al                                ; 30 c0
    42624249    mov byte [bp+017h], al                    ; 88 46 17
    42634250    xor ah, ah                                ; 30 e4
    4264     call 02eceh                               ; e8 b1 fb
     4251    call 02eb0h                               ; e8 b1 fb
    42654252    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    42664253    mov al, byte [bp-006h]                    ; 8a 46 fa
    42674254    xor ah, ah                                ; 30 e4
    42684255    xor dx, dx                                ; 31 d2
    4269     call 02ee7h                               ; e8 bc fb
    4270     jmp near 03697h                           ; e9 69 03
     4256    call 02ec9h                               ; e8 bc fb
     4257    jmp near 03679h                           ; e9 69 03
    42714258    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    42724259    mov dx, 00441h                            ; ba 41 04
    42734260    xor ax, ax                                ; 31 c0
    4274     call 01652h                               ; e8 18 e3
     4261    call 01652h                               ; e8 36 e3
    42754262    mov dh, al                                ; 88 c6
    42764263    xor dl, dl                                ; 30 d2
     
    42784265    mov word [bp+016h], si                    ; 89 76 16
    42794266    test al, al                               ; 84 c0
    4280     je short 0339eh                           ; 74 57
    4281     jmp near 03674h                           ; e9 2a 03
     4267    je short 03380h                           ; 74 57
     4268    jmp near 03656h                           ; e9 2a 03
    42824269    mov byte [bp-008h], ch                    ; 88 6e f8
    42834270    mov byte [bp-00ah], dl                    ; 88 56 f6
     
    42884275    mov byte [bp-006h], al                    ; 88 46 fa
    42894276    cmp AL, strict byte 001h                  ; 3c 01
    4290     jnbe short 03370h                         ; 77 0e
     4277    jnbe short 03352h                         ; 77 0e
    42914278    cmp dl, 001h                              ; 80 fa 01
    4292     jnbe short 03370h                         ; 77 09
     4279    jnbe short 03352h                         ; 77 09
    42934280    test ch, ch                               ; 84 ed
    4294     je short 03370h                           ; 74 05
     4281    je short 03352h                           ; 74 05
    42954282    cmp ch, 048h                              ; 80 fd 48
    4296     jbe short 033a1h                          ; 76 31
     4283    jbe short 03383h                          ; 76 31
    42974284    mov bx, 00da0h                            ; bb a0 0d
    42984285    mov cx, ds                                ; 8c d9
    42994286    mov ax, strict word 00004h                ; b8 04 00
    4300     call 01933h                               ; e8 b8 e5
     4287    call 01933h                               ; e8 d6 e5
    43014288    mov ax, 00275h                            ; b8 75 02
    43024289    push ax                                   ; 50
     
    43054292    mov ax, strict word 00004h                ; b8 04 00
    43064293    push ax                                   ; 50
    4307     call 01976h                               ; e8 ec e5
     4294    call 01976h                               ; e8 0a e6
    43084295    add sp, strict byte 00006h                ; 83 c4 06
    43094296    mov ax, word [bp+016h]                    ; 8b 46 16
     
    43124299    mov word [bp+016h], ax                    ; 89 46 16
    43134300    mov ax, strict word 00001h                ; b8 01 00
    4314     jmp near 03423h                           ; e9 85 00
    4315     jmp near 03697h                           ; e9 f6 02
     4301    jmp near 03405h                           ; e9 85 00
     4302    jmp near 03679h                           ; e9 f6 02
    43164303    mov al, byte [bp-006h]                    ; 8a 46 fa
    43174304    xor ah, ah                                ; 30 e4
    4318     call 03202h                               ; e8 59 fe
     4305    call 031e4h                               ; e8 59 fe
    43194306    test ax, ax                               ; 85 c0
    4320     je short 033dbh                           ; 74 2e
     4307    je short 033bdh                           ; 74 2e
    43214308    mov bl, byte [bp-006h]                    ; 8a 5e fa
    43224309    xor bh, bh                                ; 30 ff
    43234310    mov ax, bx                                ; 89 d8
    4324     call 03031h                               ; e8 7a fc
     4311    call 03013h                               ; e8 7a fc
    43254312    test ax, ax                               ; 85 c0
    4326     jne short 033deh                          ; 75 23
     4313    jne short 033c0h                          ; 75 23
    43274314    mov ax, bx                                ; 89 d8
    4328     call 03108h                               ; e8 48 fd
     4315    call 030eah                               ; e8 48 fd
    43294316    test ax, ax                               ; 85 c0
    4330     jne short 033deh                          ; 75 1a
     4317    jne short 033c0h                          ; 75 1a
    43314318    mov ax, word [bp+016h]                    ; 8b 46 16
    43324319    xor ah, ah                                ; 30 e4
     
    43344321    mov word [bp+016h], ax                    ; 89 46 16
    43354322    mov ax, strict word 0000ch                ; b8 0c 00
    4336     call 02eceh                               ; e8 f9 fa
     4323    call 02eb0h                               ; e8 f9 fa
    43374324    mov byte [bp+016h], bh                    ; 88 7e 16
    4338     jmp near 03674h                           ; e9 99 02
    4339     jmp near 034bah                           ; e9 dc 00
     4325    jmp near 03656h                           ; e9 99 02
     4326    jmp near 0349ch                           ; e9 dc 00
    43404327    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    4341     jne short 0342dh                          ; 75 49
     4328    jne short 0340fh                          ; 75 49
    43424329    mov CL, strict byte 00ch                  ; b1 0c
    43434330    mov dx, word [bp+006h]                    ; 8b 56 06
     
    43514338    mov word [bp-012h], bx                    ; 89 5e ee
    43524339    cmp ax, bx                                ; 39 d8
    4353     jbe short 03402h                          ; 76 02
     4340    jbe short 033e4h                          ; 76 02
    43544341    db  0feh, 0c5h
    43554342    ; inc ch                                    ; fe c5
     
    43634350    add ax, bx                                ; 01 d8
    43644351    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4365     jnc short 03430h                          ; 73 18
     4352    jnc short 03412h                          ; 73 18
    43664353    mov ax, word [bp+016h]                    ; 8b 46 16
    43674354    mov ah, cl                                ; 88 cc
    43684355    mov word [bp+016h], ax                    ; 89 46 16
    43694356    mov ax, strict word 00009h                ; b8 09 00
    4370     call 02eceh                               ; e8 a8 fa
     4357    call 02eb0h                               ; e8 a8 fa
    43714358    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4372     jmp near 03674h                           ; e9 47 02
    4373     jmp near 03556h                           ; e9 26 01
     4359    jmp near 03656h                           ; e9 47 02
     4360    jmp near 03538h                           ; e9 26 01
    43744361    mov AL, strict byte 006h                  ; b0 06
    43754362    mov dx, strict word 0000ah                ; ba 0a 00
     
    44024389    mov al, byte [bp-006h]                    ; 8a 46 fa
    44034390    xor ah, ah                                ; 30 e4
    4404     call 02fadh                               ; e8 3d fb
     4391    call 02f8fh                               ; e8 3d fb
    44054392    mov AL, strict byte 0e6h                  ; b0 e6
    44064393    mov dx, 003f5h                            ; ba f5 03
     
    44354422    mov AL, strict byte 0ffh                  ; b0 ff
    44364423    out DX, AL                                ; ee
    4437     call 02f3eh                               ; e8 8b fa
     4424    call 02f20h                               ; e8 8b fa
    44384425    test al, al                               ; 84 c0
    4439     jne short 034cbh                          ; 75 14
    4440     call 02f85h                               ; e8 cb fa
     4426    jne short 034adh                          ; 75 14
     4427    call 02f67h                               ; e8 cb fa
    44414428    mov ax, word [bp+016h]                    ; 8b 46 16
    44424429    xor ah, ah                                ; 30 e4
     
    44444431    mov word [bp+016h], ax                    ; 89 46 16
    44454432    mov ax, 00080h                            ; b8 80 00
    4446     jmp near 03423h                           ; e9 58 ff
     4433    jmp near 03405h                           ; e9 58 ff
    44474434    mov dx, 003f4h                            ; ba f4 03
    44484435    in AL, DX                                 ; ec
     
    44514438    and AL, strict byte 0c0h                  ; 24 c0
    44524439    cmp AL, strict byte 0c0h                  ; 3c c0
    4453     je short 034e9h                           ; 74 12
     4440    je short 034cbh                           ; 74 12
    44544441    mov ax, 00275h                            ; b8 75 02
    44554442    push ax                                   ; 50
     
    44584445    mov ax, strict word 00007h                ; b8 07 00
    44594446    push ax                                   ; 50
    4460     call 01976h                               ; e8 90 e4
     4447    call 01976h                               ; e8 ae e4
    44614448    add sp, strict byte 00006h                ; 83 c4 06
    44624449    xor si, si                                ; 31 f6
    4463     jmp short 034f2h                          ; eb 05
     4450    jmp short 034d4h                          ; eb 05
    44644451    cmp si, strict byte 00007h                ; 83 fe 07
    4465     jnl short 0350bh                          ; 7d 19
     4452    jnl short 034edh                          ; 7d 19
    44664453    mov dx, 003f5h                            ; ba f5 03
    44674454    in AL, DX                                 ; ec
     
    44734460    lea dx, [si+042h]                         ; 8d 54 42
    44744461    mov ax, strict word 00040h                ; b8 40 00
    4475     call 01660h                               ; e8 58 e1
     4462    call 01660h                               ; e8 76 e1
    44764463    inc si                                    ; 46
    4477     jmp short 034edh                          ; eb e2
     4464    jmp short 034cfh                          ; eb e2
    44784465    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4479     je short 03522h                           ; 74 11
     4466    je short 03504h                           ; 74 11
    44804467    mov ax, word [bp+016h]                    ; 8b 46 16
    44814468    xor ah, ah                                ; 30 e4
     
    44834470    mov word [bp+016h], ax                    ; 89 46 16
    44844471    mov ax, strict word 00020h                ; b8 20 00
    4485     jmp near 03423h                           ; e9 01 ff
     4472    jmp near 03405h                           ; e9 01 ff
    44864473    mov al, byte [bp-008h]                    ; 8a 46 f8
    44874474    xor ah, ah                                ; 30 e4
     
    45054492    mov al, byte [bp-006h]                    ; 8a 46 fa
    45064493    xor ah, ah                                ; 30 e4
    4507     call 02ee7h                               ; e8 98 f9
     4494    call 02ec9h                               ; e8 98 f9
    45084495    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4509     jmp near 03a1bh                           ; e9 c5 04
     4496    jmp near 039fdh                           ; e9 c5 04
    45104497    cmp byte [bp-010h], 003h                  ; 80 7e f0 03
    4511     je short 0355fh                           ; 74 03
    4512     jmp near 03682h                           ; e9 23 01
     4498    je short 03541h                           ; 74 03
     4499    jmp near 03664h                           ; e9 23 01
    45134500    mov CL, strict byte 00ch                  ; b1 0c
    45144501    mov dx, word [bp+006h]                    ; 8b 56 06
     
    45224509    mov word [bp-012h], bx                    ; 89 5e ee
    45234510    cmp ax, bx                                ; 39 d8
    4524     jbe short 0357dh                          ; 76 02
     4511    jbe short 0355fh                          ; 76 02
    45254512    db  0feh, 0c5h
    45264513    ; inc ch                                    ; fe c5
     
    45344521    add ax, bx                                ; 01 d8
    45354522    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4536     jnc short 03596h                          ; 73 03
    4537     jmp near 03418h                           ; e9 82 fe
     4523    jnc short 03578h                          ; 73 03
     4524    jmp near 033fah                           ; e9 82 fe
    45384525    mov AL, strict byte 006h                  ; b0 06
    45394526    mov dx, strict word 0000ah                ; ba 0a 00
     
    45664553    mov al, byte [bp-006h]                    ; 8a 46 fa
    45674554    xor ah, ah                                ; 30 e4
    4568     call 02fadh                               ; e8 d7 f9
     4555    call 02f8fh                               ; e8 d7 f9
    45694556    mov AL, strict byte 0c5h                  ; b0 c5
    45704557    mov dx, 003f5h                            ; ba f5 03
     
    45994586    mov AL, strict byte 0ffh                  ; b0 ff
    46004587    out DX, AL                                ; ee
    4601     call 02f3eh                               ; e8 25 f9
     4588    call 02f20h                               ; e8 25 f9
    46024589    test al, al                               ; 84 c0
    4603     jne short 03620h                          ; 75 03
    4604     jmp near 034b7h                           ; e9 97 fe
     4590    jne short 03602h                          ; 75 03
     4591    jmp near 03499h                           ; e9 97 fe
    46054592    mov dx, 003f4h                            ; ba f4 03
    46064593    in AL, DX                                 ; ec
     
    46094596    and AL, strict byte 0c0h                  ; 24 c0
    46104597    cmp AL, strict byte 0c0h                  ; 3c c0
    4611     je short 0363eh                           ; 74 12
     4598    je short 03620h                           ; 74 12
    46124599    mov ax, 00275h                            ; b8 75 02
    46134600    push ax                                   ; 50
     
    46164603    mov ax, strict word 00007h                ; b8 07 00
    46174604    push ax                                   ; 50
    4618     call 01976h                               ; e8 3b e3
     4605    call 01976h                               ; e8 59 e3
    46194606    add sp, strict byte 00006h                ; 83 c4 06
    46204607    xor si, si                                ; 31 f6
    4621     jmp short 03647h                          ; eb 05
     4608    jmp short 03629h                          ; eb 05
    46224609    cmp si, strict byte 00007h                ; 83 fe 07
    4623     jnl short 03660h                          ; 7d 19
     4610    jnl short 03642h                          ; 7d 19
    46244611    mov dx, 003f5h                            ; ba f5 03
    46254612    in AL, DX                                 ; ec
     
    46314618    lea dx, [si+042h]                         ; 8d 54 42
    46324619    mov ax, strict word 00040h                ; b8 40 00
    4633     call 01660h                               ; e8 03 e0
     4620    call 01660h                               ; e8 21 e0
    46344621    inc si                                    ; 46
    4635     jmp short 03642h                          ; eb e2
     4622    jmp short 03624h                          ; eb e2
    46364623    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4637     jne short 03669h                          ; 75 03
    4638     jmp near 03542h                           ; e9 d9 fe
     4624    jne short 0364bh                          ; 75 03
     4625    jmp near 03524h                           ; e9 d9 fe
    46394626    test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4640     je short 0367bh                           ; 74 0c
     4627    je short 0365dh                           ; 74 0c
    46414628    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    46424629    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4643     jmp near 03697h                           ; e9 1c 00
     4630    jmp near 03679h                           ; e9 1c 00
    46444631    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4645     jmp short 03674h                          ; eb f2
     4632    jmp short 03656h                          ; eb f2
    46464633    mov dl, byte [bp-00ah]                    ; 8a 56 f6
    46474634    xor dh, dh                                ; 30 f6
    46484635    mov al, byte [bp-006h]                    ; 8a 46 fa
    46494636    xor ah, ah                                ; 30 e4
    4650     call 02ee7h                               ; e8 58 f8
     4637    call 02ec9h                               ; e8 58 f8
    46514638    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    46524639    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    46674654    mov byte [bp-006h], bl                    ; 88 5e fa
    46684655    cmp bl, 001h                              ; 80 fb 01
    4669     jnbe short 036d3h                         ; 77 14
     4656    jnbe short 036b5h                         ; 77 14
    46704657    cmp dl, 001h                              ; 80 fa 01
    4671     jnbe short 036d3h                         ; 77 0f
     4658    jnbe short 036b5h                         ; 77 0f
    46724659    cmp AL, strict byte 04fh                  ; 3c 4f
    4673     jnbe short 036d3h                         ; 77 0b
     4660    jnbe short 036b5h                         ; 77 0b
    46744661    mov al, byte [bp-008h]                    ; 8a 46 f8
    46754662    test al, al                               ; 84 c0
    4676     je short 036d3h                           ; 74 04
     4663    je short 036b5h                           ; 74 04
    46774664    cmp AL, strict byte 012h                  ; 3c 12
    4678     jbe short 036e8h                          ; 76 15
     4665    jbe short 036cah                          ; 76 15
    46794666    mov ax, word [bp+016h]                    ; 8b 46 16
    46804667    xor ah, ah                                ; 30 e4
     
    46824669    mov word [bp+016h], ax                    ; 89 46 16
    46834670    mov ax, strict word 00001h                ; b8 01 00
    4684     call 02eceh                               ; e8 ea f7
     4671    call 02eb0h                               ; e8 ea f7
    46854672    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    46864673    mov al, byte [bp-006h]                    ; 8a 46 fa
    46874674    xor ah, ah                                ; 30 e4
    4688     call 03202h                               ; e8 12 fb
     4675    call 031e4h                               ; e8 12 fb
    46894676    test ax, ax                               ; 85 c0
    4690     jne short 036f7h                          ; 75 03
    4691     jmp near 032f0h                           ; e9 f9 fb
     4677    jne short 036d9h                          ; 75 03
     4678    jmp near 032d2h                           ; e9 f9 fb
    46924679    mov bl, byte [bp-006h]                    ; 8a 5e fa
    46934680    xor bh, bh                                ; 30 ff
    46944681    mov ax, bx                                ; 89 d8
    4695     call 03031h                               ; e8 30 f9
     4682    call 03013h                               ; e8 30 f9
    46964683    test ax, ax                               ; 85 c0
    4697     jne short 03711h                          ; 75 0c
     4684    jne short 036f3h                          ; 75 0c
    46984685    mov ax, bx                                ; 89 d8
    4699     call 03108h                               ; e8 fe f9
     4686    call 030eah                               ; e8 fe f9
    47004687    test ax, ax                               ; 85 c0
    4701     jne short 03711h                          ; 75 03
    4702     jmp near 033c4h                           ; e9 b3 fc
     4688    jne short 036f3h                          ; 75 03
     4689    jmp near 033a6h                           ; e9 b3 fc
    47034690    mov CL, strict byte 00ch                  ; b1 0c
    47044691    mov dx, word [bp+006h]                    ; 8b 56 06
     
    47124699    mov word [bp-012h], bx                    ; 89 5e ee
    47134700    cmp ax, bx                                ; 39 d8
    4714     jbe short 0372fh                          ; 76 02
     4701    jbe short 03711h                          ; 76 02
    47154702    db  0feh, 0c5h
    47164703    ; inc ch                                    ; fe c5
     
    47244711    add ax, bx                                ; 01 d8
    47254712    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4726     jnc short 03750h                          ; 73 0b
     4713    jnc short 03732h                          ; 73 0b
    47274714    mov ax, word [bp+016h]                    ; 8b 46 16
    47284715    xor ah, ah                                ; 30 e4
    47294716    or ah, 009h                               ; 80 cc 09
    4730     jmp near 0341dh                           ; e9 cd fc
     4717    jmp near 033ffh                           ; e9 cd fc
    47314718    mov AL, strict byte 006h                  ; b0 06
    47324719    mov dx, strict word 0000ah                ; ba 0a 00
     
    47594746    mov al, byte [bp-006h]                    ; 8a 46 fa
    47604747    xor ah, ah                                ; 30 e4
    4761     call 02fadh                               ; e8 1d f8
     4748    call 02f8fh                               ; e8 1d f8
    47624749    mov AL, strict byte 00fh                  ; b0 0f
    47634750    mov dx, 003f5h                            ; ba f5 03
     
    47864773    mov AL, strict byte 0f6h                  ; b0 f6
    47874774    out DX, AL                                ; ee
    4788     call 02f3eh                               ; e8 7b f7
     4775    call 02f20h                               ; e8 7b f7
    47894776    test al, al                               ; 84 c0
    4790     jne short 037cdh                          ; 75 06
    4791     call 02f85h                               ; e8 bb f7
    4792     jmp near 032f0h                           ; e9 23 fb
     4777    jne short 037afh                          ; 75 06
     4778    call 02f67h                               ; e8 bb f7
     4779    jmp near 032d2h                           ; e9 23 fb
    47934780    mov dx, 003f4h                            ; ba f4 03
    47944781    in AL, DX                                 ; ec
     
    47974784    and AL, strict byte 0c0h                  ; 24 c0
    47984785    cmp AL, strict byte 0c0h                  ; 3c c0
    4799     je short 037ebh                           ; 74 12
     4786    je short 037cdh                           ; 74 12
    48004787    mov ax, 00275h                            ; b8 75 02
    48014788    push ax                                   ; 50
     
    48044791    mov ax, strict word 00007h                ; b8 07 00
    48054792    push ax                                   ; 50
    4806     call 01976h                               ; e8 8e e1
     4793    call 01976h                               ; e8 ac e1
    48074794    add sp, strict byte 00006h                ; 83 c4 06
    48084795    xor si, si                                ; 31 f6
    4809     jmp short 037f4h                          ; eb 05
     4796    jmp short 037d6h                          ; eb 05
    48104797    cmp si, strict byte 00007h                ; 83 fe 07
    4811     jnl short 0380dh                          ; 7d 19
     4798    jnl short 037efh                          ; 7d 19
    48124799    mov dx, 003f5h                            ; ba f5 03
    48134800    in AL, DX                                 ; ec
     
    48194806    lea dx, [si+042h]                         ; 8d 54 42
    48204807    mov ax, strict word 00040h                ; b8 40 00
    4821     call 01660h                               ; e8 56 de
     4808    call 01660h                               ; e8 74 de
    48224809    inc si                                    ; 46
    4823     jmp short 037efh                          ; eb e2
     4810    jmp short 037d1h                          ; eb e2
    48244811    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4825     je short 0382eh                           ; 74 1b
     4812    je short 03810h                           ; 74 1b
    48264813    test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4827     je short 0381ch                           ; 74 03
    4828     jmp near 0366fh                           ; e9 53 fe
     4814    je short 037feh                           ; 74 03
     4815    jmp near 03651h                           ; e9 53 fe
    48294816    mov ax, 00275h                            ; b8 75 02
    48304817    push ax                                   ; 50
     
    48334820    mov ax, strict word 00007h                ; b8 07 00
    48344821    push ax                                   ; 50
    4835     call 01976h                               ; e8 4b e1
     4822    call 01976h                               ; e8 69 e1
    48364823    add sp, strict byte 00006h                ; 83 c4 06
    48374824    xor al, al                                ; 30 c0
    48384825    mov byte [bp+017h], al                    ; 88 46 17
    48394826    xor ah, ah                                ; 30 e4
    4840     call 02eceh                               ; e8 96 f6
     4827    call 02eb0h                               ; e8 96 f6
    48414828    mov al, byte [bp-006h]                    ; 8a 46 fa
    48424829    xor ah, ah                                ; 30 e4
    48434830    xor dx, dx                                ; 31 d2
    4844     call 02ee7h                               ; e8 a5 f6
    4845     jmp near 03a1bh                           ; e9 d6 01
     4831    call 02ec9h                               ; e8 a5 f6
     4832    jmp near 039fdh                           ; e9 d6 01
    48464833    mov byte [bp-006h], al                    ; 88 46 fa
    48474834    cmp AL, strict byte 001h                  ; 3c 01
    4848     jbe short 03874h                          ; 76 28
     4835    jbe short 03856h                          ; 76 28
    48494836    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    48504837    mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
     
    48564843    xor ah, ah                                ; 30 e4
    48574844    mov word [bp+012h], ax                    ; 89 46 12
    4858     jmp near 03996h                           ; e9 22 01
     4845    jmp near 03978h                           ; e9 22 01
    48594846    mov ax, strict word 00010h                ; b8 10 00
    4860     call 016aeh                               ; e8 34 de
     4847    call 016aeh                               ; e8 52 de
    48614848    mov ch, al                                ; 88 c5
    48624849    xor ah, ah                                ; 30 e4
    48634850    test AL, strict byte 0f0h                 ; a8 f0
    4864     je short 03884h                           ; 74 02
     4851    je short 03866h                           ; 74 02
    48654852    mov AH, strict byte 001h                  ; b4 01
    48664853    test ch, 00fh                             ; f6 c5 0f
    4867     je short 0388bh                           ; 74 02
     4854    je short 0386dh                           ; 74 02
    48684855    db  0feh, 0c4h
    48694856    ; inc ah                                    ; fe c4
    48704857    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4871     jne short 03897h                          ; 75 06
     4858    jne short 03879h                          ; 75 06
    48724859    mov CL, strict byte 004h                  ; b1 04
    48734860    shr ch, CL                                ; d2 ed
    4874     jmp short 0389ah                          ; eb 03
     4861    jmp short 0387ch                          ; eb 03
    48754862    and ch, 00fh                              ; 80 e5 0f
    48764863    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    48874874    mov word [bp+012h], ax                    ; 89 46 12
    48884875    cmp ch, 003h                              ; 80 fd 03
    4889     jc short 038d6h                           ; 72 15
    4890     jbe short 038fdh                          ; 76 3a
     4876    jc short 038b8h                           ; 72 15
     4877    jbe short 038dfh                          ; 76 3a
    48914878    cmp ch, 005h                              ; 80 fd 05
    4892     jc short 03904h                           ; 72 3c
    4893     jbe short 0390bh                          ; 76 41
     4879    jc short 038e6h                           ; 72 3c
     4880    jbe short 038edh                          ; 76 41
    48944881    cmp ch, 00fh                              ; 80 fd 0f
    4895     je short 03919h                           ; 74 4a
     4882    je short 038fbh                           ; 74 4a
    48964883    cmp ch, 00eh                              ; 80 fd 0e
    4897     je short 03912h                           ; 74 3e
    4898     jmp short 03920h                          ; eb 4a
     4884    je short 038f4h                           ; 74 3e
     4885    jmp short 03902h                          ; eb 4a
    48994886    cmp ch, 002h                              ; 80 fd 02
    4900     je short 038f6h                           ; 74 1b
     4887    je short 038d8h                           ; 74 1b
    49014888    cmp ch, 001h                              ; 80 fd 01
    4902     je short 038efh                           ; 74 0f
     4889    je short 038d1h                           ; 74 0f
    49034890    test ch, ch                               ; 84 ed
    4904     jne short 03920h                          ; 75 3c
     4891    jne short 03902h                          ; 75 3c
    49054892    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    49064893    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4907     jmp short 03932h                          ; eb 43
     4894    jmp short 03914h                          ; eb 43
    49084895    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4909     jmp short 03932h                          ; eb 3c
     4896    jmp short 03914h                          ; eb 3c
    49104897    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4911     jmp short 03932h                          ; eb 35
     4898    jmp short 03914h                          ; eb 35
    49124899    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4913     jmp short 03932h                          ; eb 2e
     4900    jmp short 03914h                          ; eb 2e
    49144901    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4915     jmp short 03932h                          ; eb 27
     4902    jmp short 03914h                          ; eb 27
    49164903    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4917     jmp short 03932h                          ; eb 20
     4904    jmp short 03914h                          ; eb 20
    49184905    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4919     jmp short 03932h                          ; eb 19
     4906    jmp short 03914h                          ; eb 19
    49204907    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4921     jmp short 03932h                          ; eb 12
     4908    jmp short 03914h                          ; eb 12
    49224909    mov ax, 00275h                            ; b8 75 02
    49234910    push ax                                   ; 50
     
    49264913    mov ax, strict word 00007h                ; b8 07 00
    49274914    push ax                                   ; 50
    4928     call 01976h                               ; e8 47 e0
     4915    call 01976h                               ; e8 65 e0
    49294916    add sp, strict byte 00006h                ; 83 c4 06
    49304917    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    49314918    mov al, ch                                ; 88 e8
    49324919    xor ah, ah                                ; 30 e4
    4933     call 03ba9h                               ; e8 6b 02
     4920    call 03b8bh                               ; e8 6b 02
    49344921    mov word [bp+008h], ax                    ; 89 46 08
    4935     jmp near 03a1bh                           ; e9 d7 00
     4922    jmp near 039fdh                           ; e9 d7 00
    49364923    mov byte [bp-006h], al                    ; 88 46 fa
    49374924    cmp AL, strict byte 001h                  ; 3c 01
    4938     jbe short 03950h                          ; 76 05
     4925    jbe short 03932h                          ; 76 05
    49394926    mov word [bp+016h], si                    ; 89 76 16
    4940     jmp short 03996h                          ; eb 46
     4927    jmp short 03978h                          ; eb 46
    49414928    mov ax, strict word 00010h                ; b8 10 00
    4942     call 016aeh                               ; e8 58 dd
     4929    call 016aeh                               ; e8 76 dd
    49434930    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4944     jne short 03964h                          ; 75 08
     4931    jne short 03946h                          ; 75 08
    49454932    mov CL, strict byte 004h                  ; b1 04
    49464933    mov ch, al                                ; 88 c5
    49474934    shr ch, CL                                ; d2 ed
    4948     jmp short 03969h                          ; eb 05
     4935    jmp short 0394bh                          ; eb 05
    49494936    mov ch, al                                ; 88 c5
    49504937    and ch, 00fh                              ; 80 e5 0f
     
    49534940    xor ah, ah                                ; 30 e4
    49544941    test ch, ch                               ; 84 ed
    4955     je short 03983h                           ; 74 0d
     4942    je short 03965h                           ; 74 0d
    49564943    cmp ch, 001h                              ; 80 fd 01
    4957     jbe short 03980h                          ; 76 05
     4944    jbe short 03962h                          ; 76 05
    49584945    or ah, 002h                               ; 80 cc 02
    4959     jmp short 03983h                          ; eb 03
     4946    jmp short 03965h                          ; eb 03
    49604947    or ah, 001h                               ; 80 cc 01
    49614948    mov word [bp+016h], ax                    ; 89 46 16
    4962     jmp near 03697h                           ; e9 0e fd
     4949    jmp near 03679h                           ; e9 0e fd
    49634950    cmp AL, strict byte 001h                  ; 3c 01
    4964     jbe short 0399ch                          ; 76 0f
     4951    jbe short 0397eh                          ; 76 0f
    49654952    mov word [bp+016h], si                    ; 89 76 16
    49664953    mov ax, strict word 00001h                ; b8 01 00
    4967     call 02eceh                               ; e8 38 f5
     4954    call 02eb0h                               ; e8 38 f5
    49684955    mov word [bp+01ch], dx                    ; 89 56 1c
    4969     jmp near 03697h                           ; e9 fb fc
     4956    jmp near 03679h                           ; e9 fb fc
    49704957    mov ax, word [bp+016h]                    ; 8b 46 16
    49714958    xor ah, ah                                ; 30 e4
     
    49734960    mov word [bp+016h], ax                    ; 89 46 16
    49744961    mov ax, strict word 00006h                ; b8 06 00
    4975     jmp near 032bch                           ; e9 0f f9
     4962    jmp near 0329eh                           ; e9 0f f9
    49764963    mov byte [bp-006h], al                    ; 88 46 fa
    49774964    mov bl, ch                                ; 88 eb
    49784965    cmp AL, strict byte 001h                  ; 3c 01
    4979     jnbe short 0398dh                         ; 77 d7
     4966    jnbe short 0396fh                         ; 77 d7
    49804967    mov al, byte [bp-006h]                    ; 8a 46 fa
    49814968    xor ah, ah                                ; 30 e4
    4982     call 03202h                               ; e8 44 f8
     4969    call 031e4h                               ; e8 44 f8
    49834970    test ax, ax                               ; 85 c0
    4984     jne short 039c5h                          ; 75 03
    4985     jmp near 032f0h                           ; e9 2b f9
     4971    jne short 039a7h                          ; 75 03
     4972    jmp near 032d2h                           ; e9 2b f9
    49864973    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4987     je short 039d0h                           ; 74 05
     4974    je short 039b2h                           ; 74 05
    49884975    mov dx, 00091h                            ; ba 91 00
    4989     jmp short 039d3h                          ; eb 03
     4976    jmp short 039b5h                          ; eb 03
    49904977    mov dx, 00090h                            ; ba 90 00
    49914978    mov word [bp-012h], dx                    ; 89 56 ee
    49924979    mov ax, strict word 00040h                ; b8 40 00
    4993     call 01652h                               ; e8 76 dc
     4980    call 01652h                               ; e8 94 dc
    49944981    and AL, strict byte 00fh                  ; 24 0f
    49954982    cmp bl, 002h                              ; 80 fb 02
    4996     jc short 039f2h                           ; 72 0f
    4997     jbe short 039feh                          ; 76 19
     4983    jc short 039d4h                           ; 72 0f
     4984    jbe short 039e0h                          ; 76 19
    49984985    cmp bl, 004h                              ; 80 fb 04
    4999     je short 039fah                           ; 74 10
     4986    je short 039dch                           ; 74 10
    50004987    cmp bl, 003h                              ; 80 fb 03
    5001     je short 03a02h                           ; 74 13
    5002     jmp near 032aeh                           ; e9 bc f8
     4988    je short 039e4h                           ; 74 13
     4989    jmp near 03290h                           ; e9 bc f8
    50034990    cmp bl, 001h                              ; 80 fb 01
    5004     je short 039fah                           ; 74 03
    5005     jmp near 032aeh                           ; e9 b4 f8
     4991    je short 039dch                           ; 74 03
     4992    jmp near 03290h                           ; e9 b4 f8
    50064993    or AL, strict byte 090h                   ; 0c 90
    5007     jmp short 03a04h                          ; eb 06
     4994    jmp short 039e6h                          ; eb 06
    50084995    or AL, strict byte 070h                   ; 0c 70
    5009     jmp short 03a04h                          ; eb 02
     4996    jmp short 039e6h                          ; eb 02
    50104997    or AL, strict byte 010h                   ; 0c 10
    50114998    mov bl, al                                ; 88 c3
     
    50135000    mov dx, word [bp-012h]                    ; 8b 56 ee
    50145001    mov ax, strict word 00040h                ; b8 40 00
    5015     call 01660h                               ; e8 4f dc
     5002    call 01660h                               ; e8 6d dc
    50165003    xor al, al                                ; 30 c0
    50175004    mov byte [bp+017h], al                    ; 88 46 17
    50185005    xor ah, ah                                ; 30 e4
    5019     call 02eceh                               ; e8 b3 f4
     5006    call 02eb0h                               ; e8 b3 f4
    50205007    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    5021     jmp near 03697h                           ; e9 75 fc
     5008    jmp near 03679h                           ; e9 75 fc
    50225009    mov byte [bp-006h], al                    ; 88 46 fa
    50235010    mov ah, cl                                ; 88 cc
     
    50325019    mov byte [bp-00ah], bl                    ; 88 5e f6
    50335020    cmp AL, strict byte 001h                  ; 3c 01
    5034     jbe short 03a44h                          ; 76 03
    5035     jmp near 0398dh                           ; e9 49 ff
     5021    jbe short 03a26h                          ; 76 03
     5022    jmp near 0396fh                           ; e9 49 ff
    50365023    mov al, byte [bp-006h]                    ; 8a 46 fa
    50375024    xor ah, ah                                ; 30 e4
    5038     call 03202h                               ; e8 b6 f7
     5025    call 031e4h                               ; e8 b6 f7
    50395026    test ax, ax                               ; 85 c0
    5040     jne short 03a53h                          ; 75 03
    5041     jmp near 032f0h                           ; e9 9d f8
     5027    jne short 03a35h                          ; 75 03
     5028    jmp near 032d2h                           ; e9 9d f8
    50425029    mov bl, byte [bp-006h]                    ; 8a 5e fa
    50435030    xor bh, bh                                ; 30 ff
    50445031    mov ax, bx                                ; 89 d8
    5045     call 03031h                               ; e8 d4 f5
     5032    call 03013h                               ; e8 d4 f5
    50465033    test ax, ax                               ; 85 c0
    5047     jne short 03a7bh                          ; 75 1a
     5034    jne short 03a5dh                          ; 75 1a
    50485035    mov ax, bx                                ; 89 d8
    5049     call 03108h                               ; e8 a2 f6
     5036    call 030eah                               ; e8 a2 f6
    50505037    test ax, ax                               ; 85 c0
    5051     jne short 03a7bh                          ; 75 11
     5038    jne short 03a5dh                          ; 75 11
    50525039    mov ax, word [bp+016h]                    ; 8b 46 16
    50535040    xor ah, ah                                ; 30 e4
     
    50555042    mov word [bp+016h], ax                    ; 89 46 16
    50565043    mov ax, strict word 0000ch                ; b8 0c 00
    5057     jmp near 032bch                           ; e9 41 f8
     5044    jmp near 0329eh                           ; e9 41 f8
    50585045    mov ax, strict word 00010h                ; b8 10 00
    5059     call 016aeh                               ; e8 2d dc
     5046    call 016aeh                               ; e8 4b dc
    50605047    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5061     jne short 03a8fh                          ; 75 08
     5048    jne short 03a71h                          ; 75 08
    50625049    mov CL, strict byte 004h                  ; b1 04
    50635050    mov ch, al                                ; 88 c5
    50645051    shr ch, CL                                ; d2 ed
    5065     jmp short 03a94h                          ; eb 05
     5052    jmp short 03a76h                          ; eb 05
    50665053    mov ch, al                                ; 88 c5
    50675054    and ch, 00fh                              ; 80 e5 0f
    50685055    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5069     je short 03a9fh                           ; 74 05
     5056    je short 03a81h                           ; 74 05
    50705057    mov dx, 00091h                            ; ba 91 00
    5071     jmp short 03aa2h                          ; eb 03
     5058    jmp short 03a84h                          ; eb 03
    50725059    mov dx, 00090h                            ; ba 90 00
    50735060    mov word [bp-012h], dx                    ; 89 56 ee
    50745061    mov ax, strict word 00040h                ; b8 40 00
    5075     call 01652h                               ; e8 a7 db
     5062    call 01652h                               ; e8 c5 db
    50765063    and AL, strict byte 00fh                  ; 24 0f
    50775064    cmp ch, 003h                              ; 80 fd 03
    5078     jc short 03aceh                           ; 72 1c
     5065    jc short 03ab0h                           ; 72 1c
    50795066    mov ah, al                                ; 88 c4
    50805067    or ah, 090h                               ; 80 cc 90
    50815068    cmp ch, 003h                              ; 80 fd 03
    5082     jbe short 03b0ah                          ; 76 4e
     5069    jbe short 03aech                          ; 76 4e
    50835070    mov dl, al                                ; 88 c2
    50845071    or dl, 010h                               ; 80 ca 10
    50855072    cmp ch, 005h                              ; 80 fd 05
    5086     je short 03b08h                           ; 74 42
     5073    je short 03aeah                           ; 74 42
    50875074    cmp ch, 004h                              ; 80 fd 04
    5088     je short 03b18h                           ; 74 4d
    5089     jmp near 03b54h                           ; e9 86 00
     5075    je short 03afah                           ; 74 4d
     5076    jmp near 03b36h                           ; e9 86 00
    50905077    cmp ch, 002h                              ; 80 fd 02
    5091     je short 03ae8h                           ; 74 15
     5078    je short 03acah                           ; 74 15
    50925079    cmp ch, 001h                              ; 80 fd 01
    5093     jne short 03b1ch                          ; 75 44
     5080    jne short 03afeh                          ; 75 44
    50945081    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5095     jne short 03b1ch                          ; 75 3e
     5082    jne short 03afeh                          ; 75 3e
    50965083    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5097     jne short 03b34h                          ; 75 50
     5084    jne short 03b16h                          ; 75 50
    50985085    or AL, strict byte 090h                   ; 0c 90
    5099     jmp short 03b34h                          ; eb 4c
     5086    jmp short 03b16h                          ; eb 4c
    51005087    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5101     jne short 03af8h                          ; 75 0a
     5088    jne short 03adah                          ; 75 0a
    51025089    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5103     jne short 03af8h                          ; 75 04
     5090    jne short 03adah                          ; 75 04
    51045091    or AL, strict byte 070h                   ; 0c 70
    5105     jmp short 03b34h                          ; eb 3c
     5092    jmp short 03b16h                          ; eb 3c
    51065093    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5107     jne short 03b34h                          ; 75 36
     5094    jne short 03b16h                          ; 75 36
    51085095    cmp byte [bp-008h], 00fh                  ; 80 7e f8 0f
    5109     jne short 03b54h                          ; 75 50
     5096    jne short 03b36h                          ; 75 50
    51105097    or AL, strict byte 010h                   ; 0c 10
    5111     jmp short 03b54h                          ; eb 4c
    5112     jmp short 03b36h                          ; eb 2c
     5098    jmp short 03b36h                          ; eb 4c
     5099    jmp short 03b18h                          ; eb 2c
    51135100    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5114     jne short 03b54h                          ; 75 44
     5101    jne short 03b36h                          ; 75 44
    51155102    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5116     je short 03b1ah                           ; 74 04
    5117     jmp short 03b54h                          ; eb 3c
    5118     jmp short 03b1eh                          ; eb 04
     5103    je short 03afch                           ; 74 04
     5104    jmp short 03b36h                          ; eb 3c
     5105    jmp short 03b00h                          ; eb 04
    51195106    mov al, ah                                ; 88 e0
    5120     jmp short 03b54h                          ; eb 36
     5107    jmp short 03b36h                          ; eb 36
    51215108    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5122     jne short 03b54h                          ; 75 30
     5109    jne short 03b36h                          ; 75 30
    51235110    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5124     jne short 03b2ch                          ; 75 02
    5125     jmp short 03b1ah                          ; eb ee
     5111    jne short 03b0eh                          ; 75 02
     5112    jmp short 03afch                          ; eb ee
    51265113    cmp byte [bp-008h], 012h                  ; 80 7e f8 12
    5127     jne short 03b54h                          ; 75 22
     5114    jne short 03b36h                          ; 75 22
    51285115    mov al, dl                                ; 88 d0
    5129     jmp short 03b54h                          ; eb 1e
     5116    jmp short 03b36h                          ; eb 1e
    51305117    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5131     jne short 03b54h                          ; 75 18
     5118    jne short 03b36h                          ; 75 18
    51325119    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5133     jne short 03b44h                          ; 75 02
    5134     jmp short 03b1ah                          ; eb d6
     5120    jne short 03b26h                          ; 75 02
     5121    jmp short 03afch                          ; eb d6
    51355122    cmp byte [bp-008h], 012h                  ; 80 7e f8 12
    5136     jne short 03b4ch                          ; 75 02
    5137     jmp short 03b32h                          ; eb e6
     5123    jne short 03b2eh                          ; 75 02
     5124    jmp short 03b14h                          ; eb e6
    51385125    cmp byte [bp-008h], 024h                  ; 80 7e f8 24
    5139     jne short 03b54h                          ; 75 02
     5126    jne short 03b36h                          ; 75 02
    51405127    or AL, strict byte 0d0h                   ; 0c d0
    51415128    mov dl, al                                ; 88 c2
     
    51445131    sar dx, CL                                ; d3 fa
    51455132    test dl, 001h                             ; f6 c2 01
    5146     jne short 03b64h                          ; 75 03
    5147     jmp near 03a6ah                           ; e9 06 ff
     5133    jne short 03b46h                          ; 75 03
     5134    jmp near 03a4ch                           ; e9 06 ff
    51485135    mov bl, al                                ; 88 c3
    51495136    xor bh, bh                                ; 30 ff
    51505137    mov dx, word [bp-012h]                    ; 8b 56 ee
    51515138    mov ax, strict word 00040h                ; b8 40 00
    5152     call 01660h                               ; e8 ef da
     5139    call 01660h                               ; e8 0d db
    51535140    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    51545141    mov al, ch                                ; 88 e8
    51555142    xor ah, ah                                ; 30 e4
    5156     call 03ba9h                               ; e8 2c 00
     5143    call 03b8bh                               ; e8 2c 00
    51575144    mov word [bp+008h], ax                    ; 89 46 08
    5158     jmp near 03a11h                           ; e9 8e fe
     5145    jmp near 039f3h                           ; e9 8e fe
    51595146    mov bx, 00da0h                            ; bb a0 0d
    51605147    mov cx, ds                                ; 8c d9
    51615148    mov ax, strict word 00004h                ; b8 04 00
    5162     call 01933h                               ; e8 a5 dd
     5149    call 01933h                               ; e8 c3 dd
    51635150    mov al, byte [bp+017h]                    ; 8a 46 17
    51645151    xor ah, ah                                ; 30 e4
     
    51705157    mov ax, strict word 00004h                ; b8 04 00
    51715158    push ax                                   ; 50
    5172     call 01976h                               ; e8 d3 dd
     5159    call 01976h                               ; e8 f1 dd
    51735160    add sp, strict byte 00008h                ; 83 c4 08
    5174     jmp near 032aeh                           ; e9 05 f7
    5175 get_floppy_dpt_:                             ; 0xf3ba9 LB 0x32
     5161    jmp near 03290h                           ; e9 05 f7
     5162get_floppy_dpt_:                             ; 0xf3b8b LB 0x32
    51765163    push bx                                   ; 53
    51775164    push dx                                   ; 52
     
    51805167    mov dl, al                                ; 88 c2
    51815168    xor ax, ax                                ; 31 c0
    5182     jmp short 03bbah                          ; eb 06
     5169    jmp short 03b9ch                          ; eb 06
    51835170    inc ax                                    ; 40
    51845171    cmp ax, strict word 00007h                ; 3d 07 00
    5185     jnc short 03bd4h                          ; 73 1a
     5172    jnc short 03bb6h                          ; 73 1a
    51865173    mov bx, ax                                ; 89 c3
    51875174    sal bx, 1                                 ; d1 e3
    51885175    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5189     jne short 03bb4h                          ; 75 f0
     5176    jne short 03b96h                          ; 75 f0
    51905177    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    51915178    xor ah, ah                                ; 30 e4
     
    51935180    imul bx                                   ; f7 eb
    51945181    add ax, strict word 00000h                ; 05 00 00
    5195     jmp short 03bd7h                          ; eb 03
     5182    jmp short 03bb9h                          ; eb 03
    51965183    mov ax, strict word 00041h                ; b8 41 00
    51975184    pop bp                                    ; 5d
     
    51995186    pop bx                                    ; 5b
    52005187    retn                                      ; c3
    5201 dummy_soft_reset_:                           ; 0xf3bdb LB 0x7
     5188dummy_soft_reset_:                           ; 0xf3bbd LB 0x7
    52025189    push bp                                   ; 55
    52035190    mov bp, sp                                ; 89 e5
     
    52055192    pop bp                                    ; 5d
    52065193    retn                                      ; c3
    5207 _cdemu_init:                                 ; 0xf3be2 LB 0x18
     5194_cdemu_init:                                 ; 0xf3bc4 LB 0x18
    52085195    push bp                                   ; 55
    52095196    mov bp, sp                                ; 89 e5
    52105197    mov dx, strict word 0000eh                ; ba 0e 00
    52115198    mov ax, strict word 00040h                ; b8 40 00
    5212     call 0166eh                               ; e8 80 da
     5199    call 0166eh                               ; e8 9e da
    52135200    xor bx, bx                                ; 31 db
    52145201    mov dx, 00366h                            ; ba 66 03
    5215     call 01660h                               ; e8 6a da
     5202    call 01660h                               ; e8 88 da
    52165203    mov sp, bp                                ; 89 ec
    52175204    pop bp                                    ; 5d
    52185205    retn                                      ; c3
    5219 _cdemu_isactive:                             ; 0xf3bfa LB 0x16
     5206_cdemu_isactive:                             ; 0xf3bdc LB 0x16
    52205207    push bp                                   ; 55
    52215208    mov bp, sp                                ; 89 e5
    52225209    mov dx, strict word 0000eh                ; ba 0e 00
    52235210    mov ax, strict word 00040h                ; b8 40 00
    5224     call 0166eh                               ; e8 68 da
     5211    call 0166eh                               ; e8 86 da
    52255212    mov dx, 00366h                            ; ba 66 03
    5226     call 01652h                               ; e8 46 da
     5213    call 01652h                               ; e8 64 da
    52275214    mov sp, bp                                ; 89 ec
    52285215    pop bp                                    ; 5d
    52295216    retn                                      ; c3
    5230 _cdemu_emulated_drive:                       ; 0xf3c10 LB 0x16
     5217_cdemu_emulated_drive:                       ; 0xf3bf2 LB 0x16
    52315218    push bp                                   ; 55
    52325219    mov bp, sp                                ; 89 e5
    52335220    mov dx, strict word 0000eh                ; ba 0e 00
    52345221    mov ax, strict word 00040h                ; b8 40 00
    5235     call 0166eh                               ; e8 52 da
     5222    call 0166eh                               ; e8 70 da
    52365223    mov dx, 00368h                            ; ba 68 03
    5237     call 01652h                               ; e8 30 da
     5224    call 01652h                               ; e8 4e da
    52385225    mov sp, bp                                ; 89 ec
    52395226    pop bp                                    ; 5d
    52405227    retn                                      ; c3
    5241 _int13_eltorito:                             ; 0xf3c26 LB 0x191
     5228_int13_eltorito:                             ; 0xf3c08 LB 0x191
    52425229    push bp                                   ; 55
    52435230    mov bp, sp                                ; 89 e5
     
    52465233    mov dx, strict word 0000eh                ; ba 0e 00
    52475234    mov ax, strict word 00040h                ; b8 40 00
    5248     call 0166eh                               ; e8 3a da
     5235    call 0166eh                               ; e8 58 da
    52495236    mov si, 00366h                            ; be 66 03
    52505237    mov di, ax                                ; 89 c7
     
    52525239    xor ah, ah                                ; 30 e4
    52535240    cmp ax, strict word 0004bh                ; 3d 4b 00
    5254     jc short 03c4dh                           ; 72 0a
    5255     jbe short 03c78h                          ; 76 33
     5241    jc short 03c2fh                           ; 72 0a
     5242    jbe short 03c5ah                          ; 76 33
    52565243    cmp ax, strict word 0004dh                ; 3d 4d 00
    5257     jbe short 03c52h                          ; 76 08
    5258     jmp near 03d7dh                           ; e9 30 01
     5244    jbe short 03c34h                          ; 76 08
     5245    jmp near 03d5fh                           ; e9 30 01
    52595246    cmp ax, strict word 0004ah                ; 3d 4a 00
    5260     jne short 03c75h                          ; 75 23
     5247    jne short 03c57h                          ; 75 23
    52615248    mov bx, 00da0h                            ; bb a0 0d
    52625249    mov cx, ds                                ; 8c d9
    52635250    mov ax, strict word 00004h                ; b8 04 00
    5264     call 01933h                               ; e8 d6 dc
     5251    call 01933h                               ; e8 f4 dc
    52655252    push word [bp+016h]                       ; ff 76 16
    52665253    mov ax, 002fch                            ; b8 fc 02
     
    52705257    mov ax, strict word 00004h                ; b8 04 00
    52715258    push ax                                   ; 50
    5272     call 01976h                               ; e8 07 dd
     5259    call 01976h                               ; e8 25 dd
    52735260    add sp, strict byte 00008h                ; 83 c4 08
    5274     jmp near 03d98h                           ; e9 23 01
    5275     jmp near 03d7dh                           ; e9 05 01
     5261    jmp near 03d7ah                           ; e9 23 01
     5262    jmp near 03d5fh                           ; e9 05 01
    52765263    mov dx, word [bp+00ah]                    ; 8b 56 0a
    52775264    mov ax, word [bp+004h]                    ; 8b 46 04
    52785265    mov bx, strict word 00013h                ; bb 13 00
    5279     call 01660h                               ; e8 dc d9
     5266    call 01660h                               ; e8 fa d9
    52805267    mov es, di                                ; 8e c7
    52815268    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    52845271    inc dx                                    ; 42
    52855272    mov ax, word [bp+004h]                    ; 8b 46 04
    5286     call 01660h                               ; e8 ca d9
     5273    call 01660h                               ; e8 e8 d9
    52875274    mov es, di                                ; 8e c7
    52885275    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    52925279    inc dx                                    ; 42
    52935280    mov ax, word [bp+004h]                    ; 8b 46 04
    5294     call 01660h                               ; e8 b7 d9
     5281    call 01660h                               ; e8 d5 d9
    52955282    mov es, di                                ; 8e c7
    52965283    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    52995286    add dx, strict byte 00003h                ; 83 c2 03
    53005287    mov ax, word [bp+004h]                    ; 8b 46 04
    5301     call 01660h                               ; e8 a3 d9
     5288    call 01660h                               ; e8 c1 d9
    53025289    mov es, di                                ; 8e c7
    53035290    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    53065293    add dx, strict byte 00004h                ; 83 c2 04
    53075294    mov ax, word [bp+004h]                    ; 8b 46 04
    5308     call 0169ch                               ; e8 c9 d9
     5295    call 0169ch                               ; e8 e7 d9
    53095296    mov es, di                                ; 8e c7
    53105297    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    53125299    add dx, strict byte 00008h                ; 83 c2 08
    53135300    mov ax, word [bp+004h]                    ; 8b 46 04
    5314     call 0167ch                               ; e8 97 d9
     5301    call 0167ch                               ; e8 b5 d9
    53155302    mov es, di                                ; 8e c7
    53165303    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    53185305    add dx, strict byte 0000ah                ; 83 c2 0a
    53195306    mov ax, word [bp+004h]                    ; 8b 46 04
    5320     call 0167ch                               ; e8 85 d9
     5307    call 0167ch                               ; e8 a3 d9
    53215308    mov es, di                                ; 8e c7
    53225309    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    53245311    add dx, strict byte 0000ch                ; 83 c2 0c
    53255312    mov ax, word [bp+004h]                    ; 8b 46 04
    5326     call 0167ch                               ; e8 73 d9
     5313    call 0167ch                               ; e8 91 d9
    53275314    mov es, di                                ; 8e c7
    53285315    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    53305317    add dx, strict byte 0000eh                ; 83 c2 0e
    53315318    mov ax, word [bp+004h]                    ; 8b 46 04
    5332     call 0167ch                               ; e8 61 d9
     5319    call 0167ch                               ; e8 7f d9
    53335320    mov es, di                                ; 8e c7
    53345321    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    53375324    add dx, strict byte 00010h                ; 83 c2 10
    53385325    mov ax, word [bp+004h]                    ; 8b 46 04
    5339     call 01660h                               ; e8 31 d9
     5326    call 01660h                               ; e8 4f d9
    53405327    mov es, di                                ; 8e c7
    53415328    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    53445331    add dx, strict byte 00011h                ; 83 c2 11
    53455332    mov ax, word [bp+004h]                    ; 8b 46 04
    5346     call 01660h                               ; e8 1d d9
     5333    call 01660h                               ; e8 3b d9
    53475334    mov es, di                                ; 8e c7
    53485335    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    53515338    add dx, strict byte 00012h                ; 83 c2 12
    53525339    mov ax, word [bp+004h]                    ; 8b 46 04
    5353     call 01660h                               ; e8 09 d9
     5340    call 01660h                               ; e8 27 d9
    53545341    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5355     jne short 03d63h                          ; 75 06
     5342    jne short 03d45h                          ; 75 06
    53565343    mov es, di                                ; 8e c7
    53575344    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    53605347    mov dx, strict word 00074h                ; ba 74 00
    53615348    mov ax, strict word 00040h                ; b8 40 00
    5362     call 01660h                               ; e8 ee d8
     5349    call 01660h                               ; e8 0c d9
    53635350    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    53645351    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53705357    mov cx, ds                                ; 8c d9
    53715358    mov ax, strict word 00004h                ; b8 04 00
    5372     call 01933h                               ; e8 ab db
     5359    call 01933h                               ; e8 c9 db
    53735360    mov al, byte [bp+017h]                    ; 8a 46 17
    53745361    xor ah, ah                                ; 30 e4
     
    53775364    push ax                                   ; 50
    53785365    mov ax, 00333h                            ; b8 33 03
    5379     jmp near 03c67h                           ; e9 cf fe
     5366    jmp near 03c49h                           ; e9 cf fe
    53805367    mov ax, word [bp+016h]                    ; 8b 46 16
    53815368    xor ah, ah                                ; 30 e4
     
    53865373    mov dx, strict word 00074h                ; ba 74 00
    53875374    mov ax, strict word 00040h                ; b8 40 00
    5388     call 01660h                               ; e8 af d8
     5375    call 01660h                               ; e8 cd d8
    53895376    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5390     jmp short 03d76h                          ; eb bf
    5391 device_is_cdrom_:                            ; 0xf3db7 LB 0x3f
     5377    jmp short 03d58h                          ; eb bf
     5378device_is_cdrom_:                            ; 0xf3d99 LB 0x3f
    53925379    push bp                                   ; 55
    53935380    mov bp, sp                                ; 89 e5
     
    53985385    mov dx, strict word 0000eh                ; ba 0e 00
    53995386    mov ax, strict word 00040h                ; b8 40 00
    5400     call 0166eh                               ; e8 a6 d8
     5387    call 0166eh                               ; e8 c4 d8
    54015388    mov cx, ax                                ; 89 c1
    54025389    cmp bl, 010h                              ; 80 fb 10
    5403     jc short 03dd3h                           ; 72 04
     5390    jc short 03db5h                           ; 72 04
    54045391    xor ax, ax                                ; 31 c0
    5405     jmp short 03deeh                          ; eb 1b
     5392    jmp short 03dd0h                          ; eb 1b
    54065393    mov al, bl                                ; 88 d8
    54075394    xor ah, ah                                ; 30 e4
     
    54125399    add bx, 00122h                            ; 81 c3 22 01
    54135400    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5414     jne short 03dcfh                          ; 75 e4
     5401    jne short 03db1h                          ; 75 e4
    54155402    mov ax, strict word 00001h                ; b8 01 00
    54165403    lea sp, [bp-006h]                         ; 8d 66 fa
     
    54205407    pop bp                                    ; 5d
    54215408    retn                                      ; c3
    5422 cdrom_boot_:                                 ; 0xf3df6 LB 0x43d
     5409cdrom_boot_:                                 ; 0xf3dd8 LB 0x43d
    54235410    push bp                                   ; 55
    54245411    mov bp, sp                                ; 89 e5
     
    54315418    mov dx, strict word 0000eh                ; ba 0e 00
    54325419    mov ax, strict word 00040h                ; b8 40 00
    5433     call 0166eh                               ; e8 63 d8
     5420    call 0166eh                               ; e8 81 d8
    54345421    mov word [bp-01ah], ax                    ; 89 46 e6
    54355422    mov si, 00366h                            ; be 66 03
     
    54385425    mov word [bp-012h], ax                    ; 89 46 ee
    54395426    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5440     jmp short 03e2bh                          ; eb 09
     5427    jmp short 03e0dh                          ; eb 09
    54415428    inc byte [bp-00ch]                        ; fe 46 f4
    54425429    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5443     jnc short 03e37h                          ; 73 0c
     5430    jnc short 03e19h                          ; 73 0c
    54445431    mov al, byte [bp-00ch]                    ; 8a 46 f4
    54455432    xor ah, ah                                ; 30 e4
    5446     call 03db7h                               ; e8 84 ff
     5433    call 03d99h                               ; e8 84 ff
    54475434    test ax, ax                               ; 85 c0
    5448     je short 03e22h                           ; 74 eb
     5435    je short 03e04h                           ; 74 eb
    54495436    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5450     jc short 03e43h                           ; 72 06
     5437    jc short 03e25h                           ; 72 06
    54515438    mov ax, strict word 00002h                ; b8 02 00
    5452     jmp near 041d0h                           ; e9 8d 03
     5439    jmp near 041b2h                           ; e9 8d 03
    54535440    mov cx, strict word 0000ch                ; b9 0c 00
    54545441    xor bx, bx                                ; 31 db
    54555442    mov dx, ss                                ; 8c d2
    54565443    lea ax, [bp-026h]                         ; 8d 46 da
    5457     call 0a27ah                               ; e8 2a 64
     5444    call 0a21ah                               ; e8 e8 63
    54585445    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54595446    mov ax, strict word 00011h                ; b8 11 00
     
    54715458    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    54725459    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5473     jmp short 03e8bh                          ; eb 09
     5460    jmp short 03e6dh                          ; eb 09
    54745461    inc byte [bp-00eh]                        ; fe 46 f2
    54755462    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5476     jnbe short 03ecdh                         ; 77 42
     5463    jnbe short 03eafh                         ; 77 42
    54775464    mov al, byte [bp-00ch]                    ; 8a 46 f4
    54785465    xor ah, ah                                ; 30 e4
     
    55035490    call word [word di+0006ah]                ; ff 95 6a 00
    55045491    test ax, ax                               ; 85 c0
    5505     jne short 03e82h                          ; 75 b5
     5492    jne short 03e64h                          ; 75 b5
    55065493    test ax, ax                               ; 85 c0
    5507     je short 03ed7h                           ; 74 06
     5494    je short 03eb9h                           ; 74 06
    55085495    mov ax, strict word 00003h                ; b8 03 00
    5509     jmp near 041d0h                           ; e9 f9 02
     5496    jmp near 041b2h                           ; e9 f9 02
    55105497    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5511     je short 03ee4h                           ; 74 06
     5498    je short 03ec6h                           ; 74 06
    55125499    mov ax, strict word 00004h                ; b8 04 00
    5513     jmp near 041d0h                           ; e9 ec 02
     5500    jmp near 041b2h                           ; e9 ec 02
    55145501    xor di, di                                ; 31 ff
    5515     jmp short 03eeeh                          ; eb 06
     5502    jmp short 03ed0h                          ; eb 06
    55165503    inc di                                    ; 47
    55175504    cmp di, strict byte 00005h                ; 83 ff 05
    5518     jnc short 03efeh                          ; 73 10
     5505    jnc short 03ee0h                          ; 73 10
    55195506    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    55205507    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5521     je short 03ee8h                           ; 74 f0
     5508    je short 03ecah                           ; 74 f0
    55225509    mov ax, strict word 00005h                ; b8 05 00
    5523     jmp near 041d0h                           ; e9 d2 02
     5510    jmp near 041b2h                           ; e9 d2 02
    55245511    xor di, di                                ; 31 ff
    5525     jmp short 03f08h                          ; eb 06
     5512    jmp short 03eeah                          ; eb 06
    55265513    inc di                                    ; 47
    55275514    cmp di, strict byte 00017h                ; 83 ff 17
    5528     jnc short 03f18h                          ; 73 10
     5515    jnc short 03efah                          ; 73 10
    55295516    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    55305517    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5531     je short 03f02h                           ; 74 f0
     5518    je short 03ee4h                           ; 74 f0
    55325519    mov ax, strict word 00006h                ; b8 06 00
    5533     jmp near 041d0h                           ; e9 b8 02
     5520    jmp near 041b2h                           ; e9 b8 02
    55345521    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    55355522    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    55715558    call word [word di+0006ah]                ; ff 95 6a 00
    55725559    test ax, ax                               ; 85 c0
    5573     je short 03f80h                           ; 74 06
     5560    je short 03f62h                           ; 74 06
    55745561    mov ax, strict word 00007h                ; b8 07 00
    5575     jmp near 041d0h                           ; e9 50 02
     5562    jmp near 041b2h                           ; e9 50 02
    55765563    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5577     je short 03f8dh                           ; 74 06
     5564    je short 03f6fh                           ; 74 06
    55785565    mov ax, strict word 00008h                ; b8 08 00
    5579     jmp near 041d0h                           ; e9 43 02
     5566    jmp near 041b2h                           ; e9 43 02
    55805567    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5581     je short 03f9ah                           ; 74 06
     5568    je short 03f7ch                           ; 74 06
    55825569    mov ax, strict word 00009h                ; b8 09 00
    5583     jmp near 041d0h                           ; e9 36 02
     5570    jmp near 041b2h                           ; e9 36 02
    55845571    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5585     je short 03fa7h                           ; 74 06
     5572    je short 03f89h                           ; 74 06
    55865573    mov ax, strict word 0000ah                ; b8 0a 00
    5587     jmp near 041d0h                           ; e9 29 02
     5574    jmp near 041b2h                           ; e9 29 02
    55885575    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5589     jne short 03fa1h                          ; 75 f3
     5576    jne short 03f83h                          ; 75 f3
    55905577    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5591     je short 03fbbh                           ; 74 06
     5578    je short 03f9dh                           ; 74 06
    55925579    mov ax, strict word 0000bh                ; b8 0b 00
    5593     jmp near 041d0h                           ; e9 15 02
     5580    jmp near 041b2h                           ; e9 15 02
    55945581    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    55955582    mov es, [bp-018h]                         ; 8e 46 e8
    55965583    mov byte [es:si+001h], al                 ; 26 88 44 01
    55975584    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5598     jne short 03fd4h                          ; 75 07
     5585    jne short 03fb6h                          ; 75 07
    55995586    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5600     jmp short 03fe7h                          ; eb 13
     5587    jmp short 03fc9h                          ; eb 13
    56015588    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5602     jnc short 03fe2h                          ; 73 07
     5589    jnc short 03fc4h                          ; 73 07
    56035590    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5604     jmp short 03fe7h                          ; eb 05
     5591    jmp short 03fc9h                          ; eb 05
    56055592    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    56065593    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    56215608    mov word [bp-010h], ax                    ; 89 46 f0
    56225609    test ax, ax                               ; 85 c0
    5623     jne short 04016h                          ; 75 05
     5610    jne short 03ff8h                          ; 75 05
    56245611    mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
    56255612    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    56305617    mov word [es:si+00eh], bx                 ; 26 89 5c 0e
    56315618    test bx, bx                               ; 85 db
    5632     je short 04038h                           ; 74 06
     5619    je short 0401ah                           ; 74 06
    56335620    cmp bx, 00400h                            ; 81 fb 00 04
    5634     jbe short 0403eh                          ; 76 06
     5621    jbe short 04020h                          ; 76 06
    56355622    mov ax, strict word 0000ch                ; b8 0c 00
    5636     jmp near 041d0h                           ; e9 92 01
     5623    jmp near 041b2h                           ; e9 92 01
    56375624    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    56385625    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    56825669    sal ax, 1                                 ; d1 e0
    56835670    rcl di, 1                                 ; d1 d7
    5684     loop 040b6h                               ; e2 fa
     5671    loop 04098h                               ; e2 fa
    56855672    push di                                   ; 57
    56865673    push ax                                   ; 50
     
    56975684    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    56985685    test ax, ax                               ; 85 c0
    5699     je short 040e8h                           ; 74 06
     5686    je short 040cah                           ; 74 06
    57005687    mov ax, strict word 0000dh                ; b8 0d 00
    5701     jmp near 041d0h                           ; e9 e8 00
     5688    jmp near 041b2h                           ; e9 e8 00
    57025689    mov es, [bp-018h]                         ; 8e 46 e8
    57035690    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    57045691    cmp AL, strict byte 002h                  ; 3c 02
    5705     jc short 04100h                           ; 72 0d
    5706     jbe short 0411bh                          ; 76 26
     5692    jc short 040e2h                           ; 72 0d
     5693    jbe short 040fdh                          ; 76 26
    57075694    cmp AL, strict byte 004h                  ; 3c 04
    5708     je short 0412bh                           ; 74 32
     5695    je short 0410dh                           ; 74 32
    57095696    cmp AL, strict byte 003h                  ; 3c 03
    5710     je short 04123h                           ; 74 26
    5711     jmp near 04178h                           ; e9 78 00
     5697    je short 04105h                           ; 74 26
     5698    jmp near 0415ah                           ; e9 78 00
    57125699    cmp AL, strict byte 001h                  ; 3c 01
    5713     jne short 04178h                          ; 75 74
     5700    jne short 0415ah                          ; 75 74
    57145701    mov es, [bp-018h]                         ; 8e 46 e8
    57155702    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    57165703    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    57175704    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5718     jmp short 04178h                          ; eb 5d
     5705    jmp short 0415ah                          ; eb 5d
    57195706    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5720     jmp short 0410dh                          ; eb ea
     5707    jmp short 040efh                          ; eb ea
    57215708    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5722     jmp short 0410dh                          ; eb e2
     5709    jmp short 040efh                          ; eb e2
    57235710    mov dx, 001c4h                            ; ba c4 01
    57245711    mov ax, word [bp-010h]                    ; 8b 46 f0
    5725     call 01652h                               ; e8 1e d5
     5712    call 01652h                               ; e8 3c d5
    57265713    and AL, strict byte 03fh                  ; 24 3f
    57275714    xor ah, ah                                ; 30 e4
     
    57305717    mov dx, 001c4h                            ; ba c4 01
    57315718    mov ax, word [bp-010h]                    ; 8b 46 f0
    5732     call 01652h                               ; e8 0a d5
     5719    call 01652h                               ; e8 28 d5
    57335720    xor ah, ah                                ; 30 e4
    57345721    mov bx, ax                                ; 89 c3
     
    57375724    mov dx, 001c5h                            ; ba c5 01
    57385725    mov ax, word [bp-010h]                    ; 8b 46 f0
    5739     call 01652h                               ; e8 f9 d4
     5726    call 01652h                               ; e8 17 d5
    57405727    xor ah, ah                                ; 30 e4
    57415728    add ax, bx                                ; 01 d8
     
    57455732    mov dx, 001c3h                            ; ba c3 01
    57465733    mov ax, word [bp-010h]                    ; 8b 46 f0
    5747     call 01652h                               ; e8 e4 d4
     5734    call 01652h                               ; e8 02 d5
    57485735    xor ah, ah                                ; 30 e4
    57495736    inc ax                                    ; 40
     
    57525739    mov es, [bp-018h]                         ; 8e 46 e8
    57535740    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5754     je short 041b9h                           ; 74 37
     5741    je short 0419bh                           ; 74 37
    57555742    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5756     jne short 041a1h                          ; 75 18
     5743    jne short 04183h                          ; 75 18
    57575744    mov dx, strict word 00010h                ; ba 10 00
    57585745    mov ax, strict word 00040h                ; b8 40 00
    5759     call 01652h                               ; e8 c0 d4
     5746    call 01652h                               ; e8 de d4
    57605747    mov bl, al                                ; 88 c3
    57615748    or bl, 041h                               ; 80 cb 41
     
    57635750    mov dx, strict word 00010h                ; ba 10 00
    57645751    mov ax, strict word 00040h                ; b8 40 00
    5765     jmp short 041b6h                          ; eb 15
     5752    jmp short 04198h                          ; eb 15
    57665753    mov dx, 00304h                            ; ba 04 03
    57675754    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5768     call 01652h                               ; e8 a8 d4
     5755    call 01652h                               ; e8 c6 d4
    57695756    mov bl, al                                ; 88 c3
    57705757    db  0feh, 0c3h
     
    57735760    mov dx, 00304h                            ; ba 04 03
    57745761    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5775     call 01660h                               ; e8 a7 d4
     5762    call 01660h                               ; e8 c5 d4
    57765763    mov es, [bp-018h]                         ; 8e 46 e8
    57775764    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5778     je short 041c7h                           ; 74 04
     5765    je short 041a9h                           ; 74 04
    57795766    mov byte [es:si], 001h                    ; 26 c6 04 01
    57805767    mov es, [bp-018h]                         ; 8e 46 e8
     
    57905777    retn                                      ; c3
    57915778    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5792     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0eah, 045h, 0dah
    5793     db  042h, 00fh, 043h, 034h, 043h, 004h, 043h, 034h, 043h, 004h, 043h, 033h, 045h, 019h, 045h, 0eah
    5794     db  045h, 0eah, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 0e1h, 045h, 019h
    5795     db  045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah
    5796     db  045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h
    5797 _int13_cdemu:                                ; 0xf4233 LB 0x453
     5779    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0cch, 045h, 0bch
     5780    db  042h, 0f1h, 042h, 016h, 043h, 0e6h, 042h, 016h, 043h, 0e6h, 042h, 015h, 045h, 0fbh, 044h, 0cch
     5781    db  045h, 0cch, 045h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0c3h, 045h, 0fbh
     5782    db  044h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch
     5783    db  045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h
     5784_int13_cdemu:                                ; 0xf4215 LB 0x453
    57985785    push bp                                   ; 55
    57995786    mov bp, sp                                ; 89 e5
     
    58035790    mov dx, strict word 0000eh                ; ba 0e 00
    58045791    mov ax, strict word 00040h                ; b8 40 00
    5805     call 0166eh                               ; e8 2a d4
     5792    call 0166eh                               ; e8 48 d4
    58065793    mov di, 00366h                            ; bf 66 03
    58075794    mov cx, ax                                ; 89 c1
     
    58195806    mov dx, strict word 00074h                ; ba 74 00
    58205807    mov ax, strict word 00040h                ; b8 40 00
    5821     call 01660h                               ; e8 ed d3
     5808    call 01660h                               ; e8 0b d4
    58225809    mov es, cx                                ; 8e c1
    58235810    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5824     je short 0428ah                           ; 74 0f
     5811    je short 0426ch                           ; 74 0f
    58255812    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    58265813    xor ah, ah                                ; 30 e4
     
    58285815    xor dh, dh                                ; 30 f6
    58295816    cmp ax, dx                                ; 39 d0
    5830     je short 042b4h                           ; 74 2a
     5817    je short 04296h                           ; 74 2a
    58315818    mov bx, 00da0h                            ; bb a0 0d
    58325819    mov cx, ds                                ; 8c d9
    58335820    mov ax, strict word 00004h                ; b8 04 00
    5834     call 01933h                               ; e8 9e d6
     5821    call 01933h                               ; e8 bc d6
    58355822    mov ax, word [bp+012h]                    ; 8b 46 12
    58365823    xor ah, ah                                ; 30 e4
     
    58445831    mov ax, strict word 00004h                ; b8 04 00
    58455832    push ax                                   ; 50
    5846     call 01976h                               ; e8 c8 d6
     5833    call 01976h                               ; e8 e6 d6
    58475834    add sp, strict byte 0000ah                ; 83 c4 0a
    5848     jmp near 0460dh                           ; e9 59 03
     5835    jmp near 045efh                           ; e9 59 03
    58495836    mov al, byte [bp+017h]                    ; 8a 46 17
    58505837    xor ah, ah                                ; 30 e4
    58515838    mov dx, ax                                ; 89 c2
    58525839    cmp ax, strict word 00050h                ; 3d 50 00
    5853     jnbe short 04331h                         ; 77 71
     5840    jnbe short 04313h                         ; 77 71
    58545841    push CS                                   ; 0e
    58555842    pop ES                                    ; 07
    58565843    mov cx, strict word 0001eh                ; b9 1e 00
    5857     mov di, 041dah                            ; bf da 41
     5844    mov di, 041bch                            ; bf bc 41
    58585845    repne scasb                               ; f2 ae
    58595846    sal cx, 1                                 ; d1 e1
    58605847    mov di, cx                                ; 89 cf
    5861     mov ax, word [cs:di+041f7h]               ; 2e 8b 85 f7 41
     5848    mov ax, word [cs:di+041d9h]               ; 2e 8b 85 d9 41
    58625849    mov bx, word [bp+016h]                    ; 8b 5e 16
    58635850    xor bh, bh                                ; 30 ff
     
    58735860    sal bx, 1                                 ; d1 e3
    58745861    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5875     je short 04301h                           ; 74 09
     5862    je short 042e3h                           ; 74 09
    58765863    mov al, byte [bp-006h]                    ; 8a 46 fa
    58775864    xor ah, ah                                ; 30 e4
    58785865    call word [word bx+00076h]                ; ff 97 76 00
    5879     jmp near 04519h                           ; e9 15 02
     5866    jmp near 044fbh                           ; e9 15 02
    58805867    mov ax, word [bp+016h]                    ; 8b 46 16
    58815868    xor ah, ah                                ; 30 e4
    58825869    or ah, 003h                               ; 80 cc 03
    5883     jmp near 04615h                           ; e9 06 03
     5870    jmp near 045f7h                           ; e9 06 03
    58845871    mov dx, strict word 00074h                ; ba 74 00
    58855872    mov ax, strict word 00040h                ; b8 40 00
    5886     call 01652h                               ; e8 3a d3
     5873    call 01652h                               ; e8 58 d3
    58875874    mov cl, al                                ; 88 c1
    58885875    mov bh, al                                ; 88 c7
     
    58915878    mov dx, strict word 00074h                ; ba 74 00
    58925879    mov ax, strict word 00040h                ; b8 40 00
    5893     call 01660h                               ; e8 36 d3
     5880    call 01660h                               ; e8 54 d3
    58945881    test cl, cl                               ; 84 c9
    5895     je short 04393h                           ; 74 65
    5896     jmp near 04626h                           ; e9 f5 02
    5897     jmp near 045eah                           ; e9 b6 02
     5882    je short 04375h                           ; 74 65
     5883    jmp near 04608h                           ; e9 f5 02
     5884    jmp near 045cch                           ; e9 b6 02
    58985885    mov es, [bp-012h]                         ; 8e 46 ee
    58995886    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    59215908    mov word [bp-014h], cx                    ; 89 4e ec
    59225909    test cx, cx                               ; 85 c9
    5923     je short 043a0h                           ; 74 1d
     5910    je short 04382h                           ; 74 1d
    59245911    cmp di, word [bp-00ah]                    ; 3b 7e f6
    5925     jc short 04390h                           ; 72 08
     5912    jc short 04372h                           ; 72 08
    59265913    cmp ax, dx                                ; 39 d0
    5927     jnc short 04390h                          ; 73 04
     5914    jnc short 04372h                          ; 73 04
    59285915    cmp bx, si                                ; 39 f3
    5929     jnbe short 04396h                         ; 77 06
    5930     jmp near 0460dh                           ; e9 7a 02
    5931     jmp near 0451dh                           ; e9 87 01
     5916    jnbe short 04378h                         ; 77 06
     5917    jmp near 045efh                           ; e9 7a 02
     5918    jmp near 044ffh                           ; e9 87 01
    59325919    mov dl, byte [bp+017h]                    ; 8a 56 17
    59335920    xor dh, dh                                ; 30 f6
    59345921    cmp dx, strict byte 00004h                ; 83 fa 04
    5935     jne short 043a3h                          ; 75 03
    5936     jmp near 04519h                           ; e9 76 01
     5922    jne short 04385h                          ; 75 03
     5923    jmp near 044fbh                           ; e9 76 01
    59375924    mov CL, strict byte 004h                  ; b1 04
    59385925    mov dx, word [bp+010h]                    ; 8b 56 10
     
    59475934    xor dl, dl                                ; 30 d2
    59485935    xor cx, cx                                ; 31 c9
    5949     call 0a229h                               ; e8 65 5e
     5936    call 0a1c9h                               ; e8 23 5e
    59505937    xor bx, bx                                ; 31 db
    59515938    add ax, si                                ; 01 f0
     
    59535940    mov bx, di                                ; 89 fb
    59545941    xor cx, cx                                ; 31 c9
    5955     call 0a229h                               ; e8 58 5e
     5942    call 0a1c9h                               ; e8 16 5e
    59565943    mov bx, ax                                ; 89 c3
    59575944    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    59885975    mov dx, ss                                ; 8c d2
    59895976    lea ax, [bp-030h]                         ; 8d 46 d0
    5990     call 0a27ah                               ; e8 52 5e
     5977    call 0a21ah                               ; e8 10 5e
    59915978    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    59925979    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    60416028    sal si, 1                                 ; d1 e6
    60426029    rcl di, 1                                 ; d1 d7
    6043     loop 044adh                               ; e2 fa
     6030    loop 0448fh                               ; e2 fa
    60446031    push di                                   ; 57
    60456032    push si                                   ; 56
     
    60576044    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    60586045    test al, al                               ; 84 c0
    6059     je short 04519h                           ; 74 38
     6046    je short 044fbh                           ; 74 38
    60606047    mov bx, 00da0h                            ; bb a0 0d
    60616048    mov cx, ds                                ; 8c d9
    60626049    mov ax, strict word 00004h                ; b8 04 00
    6063     call 01933h                               ; e8 47 d4
     6050    call 01933h                               ; e8 65 d4
    60646051    mov al, dl                                ; 88 d0
    60656052    xor ah, ah                                ; 30 e4
     
    60736060    mov ax, strict word 00004h                ; b8 04 00
    60746061    push ax                                   ; 50
    6075     call 01976h                               ; e8 72 d4
     6062    call 01976h                               ; e8 90 d4
    60766063    add sp, strict byte 0000ah                ; 83 c4 0a
    60776064    mov ax, word [bp+016h]                    ; 8b 46 16
     
    60806067    mov word [bp+016h], ax                    ; 89 46 16
    60816068    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6082     jmp near 04618h                           ; e9 ff 00
     6069    jmp near 045fah                           ; e9 ff 00
    60836070    mov byte [bp+017h], 000h                  ; c6 46 17 00
    60846071    xor bx, bx                                ; 31 db
    60856072    mov dx, strict word 00074h                ; ba 74 00
    60866073    mov ax, strict word 00040h                ; b8 40 00
    6087     call 01660h                               ; e8 38 d1
     6074    call 01660h                               ; e8 56 d1
    60886075    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    60896076    lea sp, [bp-004h]                         ; 8d 66 fc
     
    61356122    mov word [bp+010h], cx                    ; 89 4e 10
    61366123    cmp AL, strict byte 003h                  ; 3c 03
    6137     je short 045c3h                           ; 74 1c
     6124    je short 045a5h                           ; 74 1c
    61386125    cmp AL, strict byte 002h                  ; 3c 02
    6139     je short 045bbh                           ; 74 10
     6126    je short 0459dh                           ; 74 10
    61406127    cmp AL, strict byte 001h                  ; 3c 01
    6141     jne short 045c8h                          ; 75 19
     6128    jne short 045aah                          ; 75 19
    61426129    mov ax, word [bp+010h]                    ; 8b 46 10
    61436130    xor al, al                                ; 30 c0
    61446131    or AL, strict byte 002h                   ; 0c 02
    61456132    mov word [bp+010h], ax                    ; 89 46 10
    6146     jmp short 045c8h                          ; eb 0d
     6133    jmp short 045aah                          ; eb 0d
    61476134    or cl, 004h                               ; 80 c9 04
    61486135    mov word [bp+010h], cx                    ; 89 4e 10
    6149     jmp short 045c8h                          ; eb 05
     6136    jmp short 045aah                          ; eb 05
    61506137    or cl, 005h                               ; 80 c9 05
    6151     jmp short 045beh                          ; eb f6
     6138    jmp short 045a0h                          ; eb f6
    61526139    mov es, [bp-012h]                         ; 8e 46 ee
    61536140    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6154     jc short 045d5h                           ; 72 03
    6155     jmp near 04519h                           ; e9 44 ff
     6141    jc short 045b7h                           ; 72 03
     6142    jmp near 044fbh                           ; e9 44 ff
    61566143    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    61576144    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6158     jmp short 045d2h                          ; eb f1
     6145    jmp short 045b4h                          ; eb f1
    61596146    or bh, 003h                               ; 80 cf 03
    61606147    mov word [bp+016h], bx                    ; 89 5e 16
    6161     jmp near 0451dh                           ; e9 33 ff
     6148    jmp near 044ffh                           ; e9 33 ff
    61626149    mov bx, 00da0h                            ; bb a0 0d
    61636150    mov cx, ds                                ; 8c d9
    61646151    mov ax, strict word 00004h                ; b8 04 00
    6165     call 01933h                               ; e8 3e d3
     6152    call 01933h                               ; e8 5c d3
    61666153    mov al, byte [bp+017h]                    ; 8a 46 17
    61676154    xor ah, ah                                ; 30 e4
     
    61736160    mov ax, strict word 00004h                ; b8 04 00
    61746161    push ax                                   ; 50
    6175     call 01976h                               ; e8 6c d3
     6162    call 01976h                               ; e8 8a d3
    61766163    add sp, strict byte 00008h                ; 83 c4 08
    61776164    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61836170    mov dx, strict word 00074h                ; ba 74 00
    61846171    mov ax, strict word 00040h                ; b8 40 00
    6185     call 01660h                               ; e8 3a d0
     6172    call 01660h                               ; e8 58 d0
    61866173    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6187     jmp near 0452ch                           ; e9 ff fe
     6174    jmp near 0450eh                           ; e9 ff fe
    61886175    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6189     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06fh, 047h, 0ddh
    6190     db  04bh, 031h, 047h, 06fh, 047h, 026h, 047h, 06fh, 047h, 026h, 047h, 06fh, 047h, 0ddh, 04bh, 06fh
    6191     db  047h, 06fh, 047h, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 053h, 047h, 0ddh
    6192     db  04bh, 06fh, 047h, 05ch, 047h, 08dh, 047h, 026h, 047h, 08dh, 047h, 0d5h, 048h, 075h, 049h, 08dh
    6193     db  047h, 09fh, 049h, 0f7h, 04bh, 0ffh, 04bh, 06fh, 047h
    6194 _int13_cdrom:                                ; 0xf4686 LB 0x5ae
     6176    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 051h, 047h, 096h
     6177    db  04bh, 013h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 096h, 04bh, 051h
     6178    db  047h, 051h, 047h, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 035h, 047h, 096h
     6179    db  04bh, 051h, 047h, 03eh, 047h, 06fh, 047h, 008h, 047h, 06fh, 047h, 0b8h, 048h, 058h, 049h, 06fh
     6180    db  047h, 082h, 049h, 0b0h, 04bh, 0b8h, 04bh, 051h, 047h
     6181_int13_cdrom:                                ; 0xf4668 LB 0x585
    61956182    push bp                                   ; 55
    61966183    mov bp, sp                                ; 89 e5
    61976184    push si                                   ; 56
    61986185    push di                                   ; 57
    6199     sub sp, strict byte 0002ch                ; 83 ec 2c
     6186    sub sp, strict byte 0002ah                ; 83 ec 2a
    62006187    mov dx, strict word 0000eh                ; ba 0e 00
    62016188    mov ax, strict word 00040h                ; b8 40 00
    6202     call 0166eh                               ; e8 d7 cf
     6189    call 0166eh                               ; e8 f5 cf
    62036190    mov word [bp-018h], ax                    ; 89 46 e8
    62046191    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     
    62076194    mov dx, strict word 00074h                ; ba 74 00
    62086195    mov ax, strict word 00040h                ; b8 40 00
    6209     call 01660h                               ; e8 b3 cf
     6196    call 01660h                               ; e8 d1 cf
    62106197    mov ax, word [bp+010h]                    ; 8b 46 10
    62116198    xor ah, ah                                ; 30 e4
    62126199    cmp ax, 000e0h                            ; 3d e0 00
    6213     jc short 046bch                           ; 72 05
     6200    jc short 0469eh                           ; 72 05
    62146201    cmp ax, 000f0h                            ; 3d f0 00
    6215     jc short 046dbh                           ; 72 1f
     6202    jc short 046bdh                           ; 72 1f
    62166203    mov ax, word [bp+010h]                    ; 8b 46 10
    62176204    xor ah, ah                                ; 30 e4
     
    62256212    mov ax, strict word 00004h                ; b8 04 00
    62266213    push ax                                   ; 50
    6227     call 01976h                               ; e8 a1 d2
     6214    call 01976h                               ; e8 bf d2
    62286215    add sp, strict byte 0000ah                ; 83 c4 0a
    6229     jmp near 04c15h                           ; e9 3a 05
     6216    jmp near 04bceh                           ; e9 11 05
    62306217    mov ax, word [bp+010h]                    ; 8b 46 10
    62316218    xor ah, ah                                ; 30 e4
     
    62336220    add bx, ax                                ; 01 c3
    62346221    mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
    6235     mov byte [bp-006h], dl                    ; 88 56 fa
     6222    mov byte [bp-008h], dl                    ; 88 56 f8
    62366223    cmp dl, 010h                              ; 80 fa 10
    6237     jc short 04700h                           ; 72 0e
     6224    jc short 046e2h                           ; 72 0e
    62386225    push ax                                   ; 50
    62396226    mov al, byte [bp+019h]                    ; 8a 46 19
     
    62426229    push ax                                   ; 50
    62436230    mov ax, 00416h                            ; b8 16 04
    6244     jmp short 046cdh                          ; eb cd
     6231    jmp short 046afh                          ; eb cd
    62456232    mov al, byte [bp+019h]                    ; 8a 46 19
    62466233    xor ah, ah                                ; 30 e4
    62476234    mov dx, ax                                ; 89 c2
    62486235    cmp ax, strict word 00050h                ; 3d 50 00
    6249     jnbe short 0476fh                         ; 77 63
     6236    jnbe short 04751h                         ; 77 63
    62506237    push CS                                   ; 0e
    62516238    pop ES                                    ; 07
    62526239    mov cx, strict word 0001eh                ; b9 1e 00
    6253     mov di, 0462dh                            ; bf 2d 46
     6240    mov di, 0460fh                            ; bf 0f 46
    62546241    repne scasb                               ; f2 ae
    62556242    sal cx, 1                                 ; d1 e1
    62566243    mov di, cx                                ; 89 cf
    6257     mov ax, word [cs:di+0464ah]               ; 2e 8b 85 4a 46
     6244    mov ax, word [cs:di+0462ch]               ; 2e 8b 85 2c 46
    62586245    mov bx, word [bp+018h]                    ; 8b 5e 18
    62596246    xor bh, bh                                ; 30 ff
     
    62626249    xor ah, ah                                ; 30 e4
    62636250    or ah, 003h                               ; 80 cc 03
    6264     jmp near 04c1dh                           ; e9 ec 04
     6251    jmp near 04bd6h                           ; e9 c3 04
    62656252    mov dx, strict word 00074h                ; ba 74 00
    62666253    mov ax, strict word 00040h                ; b8 40 00
    6267     call 01652h                               ; e8 18 cf
     6254    call 01652h                               ; e8 36 cf
    62686255    mov cl, al                                ; 88 c1
    62696256    mov bh, al                                ; 88 c7
     
    62726259    mov dx, strict word 00074h                ; ba 74 00
    62736260    mov ax, strict word 00040h                ; b8 40 00
    6274     call 01660h                               ; e8 14 cf
     6261    call 01660h                               ; e8 32 cf
    62756262    test cl, cl                               ; 84 c9
    6276     je short 0476ch                           ; 74 1c
    6277     jmp near 04c2eh                           ; e9 db 04
     6263    je short 0474eh                           ; 74 1c
     6264    jmp near 04be7h                           ; e9 b2 04
    62786265    or bh, 002h                               ; 80 cf 02
    62796266    mov word [bp+018h], bx                    ; 89 5e 18
    6280     jmp near 04c20h                           ; e9 c4 04
     6267    jmp near 04bd9h                           ; e9 9b 04
    62816268    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    62826269    or bh, 030h                               ; 80 cf 30
    62836270    mov word [bp+018h], bx                    ; 89 5e 18
    62846271    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6285     jmp near 04be1h                           ; e9 72 04
     6272    jmp near 04b9ah                           ; e9 49 04
    62866273    mov bx, 00da0h                            ; bb a0 0d
    62876274    mov cx, ds                                ; 8c d9
    62886275    mov ax, strict word 00004h                ; b8 04 00
    6289     call 01933h                               ; e8 b9 d1
     6276    call 01933h                               ; e8 d7 d1
    62906277    mov al, byte [bp+019h]                    ; 8a 46 19
    62916278    xor ah, ah                                ; 30 e4
     
    62966283    push ax                                   ; 50
    62976284    mov ax, strict word 00004h                ; b8 04 00
    6298     jmp short 047ceh                          ; eb 41
     6285    jmp short 047b0h                          ; eb 41
    62996286    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    63006287    mov es, [bp+006h]                         ; 8e 46 06
    63016288    mov di, bx                                ; 89 df
    6302     mov [bp-014h], es                         ; 8c 46 ec
     6289    mov [bp-020h], es                         ; 8c 46 e0
    63036290    mov si, word [es:bx+002h]                 ; 26 8b 77 02
    63046291    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     
    63076294    mov word [bp-01ah], ax                    ; 89 46 e6
    63086295    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
    6309     mov word [bp-016h], ax                    ; 89 46 ea
     6296    mov word [bp-014h], ax                    ; 89 46 ec
    63106297    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    63116298    mov word [bp-012h], ax                    ; 89 46 ee
    6312     or ax, word [bp-016h]                     ; 0b 46 ea
    6313     je short 047d8h                           ; 74 1b
     6299    or ax, word [bp-014h]                     ; 0b 46 ec
     6300    je short 047bah                           ; 74 1b
    63146301    mov al, byte [bp+019h]                    ; 8a 46 19
    63156302    xor ah, ah                                ; 30 e4
     
    63216308    mov ax, strict word 00007h                ; b8 07 00
    63226309    push ax                                   ; 50
    6323     call 01976h                               ; e8 a4 d1
     6310    call 01976h                               ; e8 c2 d1
    63246311    add sp, strict byte 00008h                ; 83 c4 08
    6325     jmp near 04c15h                           ; e9 3d 04
    6326     mov es, [bp-014h]                         ; 8e 46 ec
     6312    jmp near 04bceh                           ; e9 14 04
     6313    mov es, [bp-020h]                         ; 8e 46 e0
    63276314    mov ax, word [es:di+008h]                 ; 26 8b 45 08
    6328     mov word [bp-016h], ax                    ; 89 46 ea
     6315    mov word [bp-014h], ax                    ; 89 46 ec
    63296316    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    63306317    mov word [bp-012h], ax                    ; 89 46 ee
    63316318    mov al, byte [bp+019h]                    ; 8a 46 19
    6332     mov byte [bp-022h], al                    ; 88 46 de
    6333     mov byte [bp-021h], 000h                  ; c6 46 df 00
    6334     mov ax, word [bp-022h]                    ; 8b 46 de
     6319    mov byte [bp-010h], al                    ; 88 46 f0
     6320    mov byte [bp-00fh], 000h                  ; c6 46 f1 00
     6321    mov ax, word [bp-010h]                    ; 8b 46 f0
    63356322    cmp ax, strict word 00044h                ; 3d 44 00
    6336     je short 04800h                           ; 74 05
     6323    je short 047e2h                           ; 74 05
    63376324    cmp ax, strict word 00047h                ; 3d 47 00
    6338     jne short 04803h                          ; 75 03
    6339     jmp near 04bddh                           ; e9 da 03
     6325    jne short 047e5h                          ; 75 03
     6326    jmp near 04b96h                           ; e9 b1 03
    63406327    mov cx, strict word 0000ch                ; b9 0c 00
    63416328    xor bx, bx                                ; 31 db
    63426329    mov dx, ss                                ; 8c d2
    6343     lea ax, [bp-030h]                         ; 8d 46 d0
    6344     call 0a27ah                               ; e8 6a 5a
    6345     mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    6346     mov ax, word [bp-016h]                    ; 8b 46 ea
     6330    lea ax, [bp-02eh]                         ; 8d 46 d2
     6331    call 0a21ah                               ; e8 28 5a
     6332    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     6333    mov ax, word [bp-014h]                    ; 8b 46 ec
    63476334    mov dx, word [bp-012h]                    ; 8b 56 ee
    63486335    xchg ah, al                               ; 86 c4
    63496336    xchg dh, dl                               ; 86 d6
    63506337    xchg dx, ax                               ; 92
    6351     mov word [bp-02eh], ax                    ; 89 46 d2
    6352     mov word [bp-02ch], dx                    ; 89 56 d4
     6338    mov word [bp-02ch], ax                    ; 89 46 d4
     6339    mov word [bp-02ah], dx                    ; 89 56 d6
    63536340    mov ax, si                                ; 89 f0
    63546341    xchg ah, al                               ; 86 c4
    6355     mov word [bp-029h], ax                    ; 89 46 d7
     6342    mov word [bp-027h], ax                    ; 89 46 d9
    63566343    les bx, [bp-00eh]                         ; c4 5e f2
    63576344    mov word [es:bx+00eh], si                 ; 26 89 77 0e
    63586345    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    6359     mov al, byte [bp-006h]                    ; 8a 46 fa
     6346    mov al, byte [bp-008h]                    ; 8a 46 f8
    63606347    xor ah, ah                                ; 30 e4
    63616348    mov dx, strict word 0001ch                ; ba 1c 00
     
    63656352    xor ah, ah                                ; 30 e4
    63666353    sal ax, 1                                 ; d1 e0
    6367     mov word [bp-024h], ax                    ; 89 46 dc
     6354    mov word [bp-022h], ax                    ; 89 46 de
    63686355    push word [bp-01ch]                       ; ff 76 e4
    63696356    push word [bp-01ah]                       ; ff 76 e6
     
    63756362    sal bx, 1                                 ; d1 e3
    63766363    rcl si, 1                                 ; d1 d6
    6377     loop 04862h                               ; e2 fa
     6364    loop 04844h                               ; e2 fa
    63786365    push si                                   ; 56
    63796366    push bx                                   ; 53
    63806367    xor ax, ax                                ; 31 c0
    63816368    push ax                                   ; 50
    6382     mov al, byte [bp-006h]                    ; 8a 46 fa
     6369    mov al, byte [bp-008h]                    ; 8a 46 f8
    63836370    xor ah, ah                                ; 30 e4
    63846371    mov cx, ss                                ; 8c d1
    6385     lea bx, [bp-030h]                         ; 8d 5e d0
     6372    lea bx, [bp-02eh]                         ; 8d 5e d2
    63866373    mov dx, strict word 0000ch                ; ba 0c 00
    6387     mov si, word [bp-024h]                    ; 8b 76 dc
     6374    mov si, word [bp-022h]                    ; 8b 76 de
    63886375    call word [word si+0006ah]                ; ff 94 6a 00
    6389     mov dx, ax                                ; 89 c2
     6376    mov word [bp-016h], ax                    ; 89 46 ea
    63906377    les bx, [bp-00eh]                         ; c4 5e f2
    6391     mov bx, word [es:bx+01ah]                 ; 26 8b 5f 1a
    6392     mov si, word [bp-00eh]                    ; 8b 76 f2
    6393     mov si, word [es:si+01ch]                 ; 26 8b 74 1c
     6378    mov ax, word [es:bx+01ah]                 ; 26 8b 47 1a
     6379    mov dx, word [es:bx+01ch]                 ; 26 8b 57 1c
    63946380    mov cx, strict word 0000bh                ; b9 0b 00
    6395     shr si, 1                                 ; d1 ee
    6396     rcr bx, 1                                 ; d1 db
    6397     loop 04894h                               ; e2 fa
    6398     mov es, [bp-014h]                         ; 8e 46 ec
    6399     mov word [es:di+002h], bx                 ; 26 89 5d 02
    6400     test al, al                               ; 84 c0
    6401     je short 048fbh                           ; 74 56
     6381    shr dx, 1                                 ; d1 ea
     6382    rcr ax, 1                                 ; d1 d8
     6383    loop 04874h                               ; e2 fa
     6384    mov es, [bp-020h]                         ; 8e 46 e0
     6385    mov word [es:di+002h], ax                 ; 26 89 45 02
     6386    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
     6387    je short 048deh                           ; 74 57
    64026388    mov bx, 00da0h                            ; bb a0 0d
    64036389    mov cx, ds                                ; 8c d9
    64046390    mov ax, strict word 00004h                ; b8 04 00
    6405     call 01933h                               ; e8 83 d0
    6406     mov al, dl                                ; 88 d0
    6407     xor ah, ah                                ; 30 e4
    6408     push ax                                   ; 50
    6409     push word [bp-022h]                       ; ff 76 de
     6391    call 01933h                               ; e8 a1 d0
     6392    mov al, byte [bp-016h]                    ; 8a 46 ea
     6393    xor ah, ah                                ; 30 e4
     6394    push ax                                   ; 50
     6395    push word [bp-010h]                       ; ff 76 f0
    64106396    mov ax, 003dfh                            ; b8 df 03
    64116397    push ax                                   ; 50
     
    64146400    mov ax, strict word 00004h                ; b8 04 00
    64156401    push ax                                   ; 50
    6416     call 01976h                               ; e8 af d0
     6402    call 01976h                               ; e8 cc d0
    64176403    add sp, strict byte 0000ah                ; 83 c4 0a
    64186404    mov ax, word [bp+018h]                    ; 8b 46 18
    64196405    xor ah, ah                                ; 30 e4
    64206406    or ah, 00ch                               ; 80 cc 0c
    6421     jmp near 04c1dh                           ; e9 48 03
     6407    jmp near 04bd6h                           ; e9 1e 03
    64226408    cmp bx, strict byte 00002h                ; 83 fb 02
    6423     jnbe short 04946h                         ; 77 6c
    6424     mov al, byte [bp-006h]                    ; 8a 46 fa
     6409    jnbe short 04929h                         ; 77 6c
     6410    mov al, byte [bp-008h]                    ; 8a 46 f8
    64256411    xor ah, ah                                ; 30 e4
    64266412    mov dx, strict word 0001ch                ; ba 1c 00
     
    64306416    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    64316417    cmp bx, strict byte 00002h                ; 83 fb 02
    6432     je short 0495eh                           ; 74 6c
     6418    je short 04941h                           ; 74 6c
    64336419    cmp bx, strict byte 00001h                ; 83 fb 01
    6434     je short 04936h                           ; 74 3f
     6420    je short 04919h                           ; 74 3f
    64356421    test bx, bx                               ; 85 db
    6436     je short 048feh                           ; 74 03
    6437     jmp near 04bddh                           ; e9 df 02
     6422    je short 048e1h                           ; 74 03
     6423    jmp near 04b96h                           ; e9 b5 02
    64386424    cmp cl, 0ffh                              ; 80 f9 ff
    6439     jne short 04915h                          ; 75 12
     6425    jne short 048f8h                          ; 75 12
    64406426    mov ax, word [bp+018h]                    ; 8b 46 18
    64416427    xor ah, ah                                ; 30 e4
     
    64446430    xor al, al                                ; 30 c0
    64456431    or AL, strict byte 001h                   ; 0c 01
    6446     jmp near 04c1dh                           ; e9 08 03
    6447     mov al, byte [bp-006h]                    ; 8a 46 fa
     6432    jmp near 04bd6h                           ; e9 de 02
     6433    mov al, byte [bp-008h]                    ; 8a 46 f8
    64486434    xor ah, ah                                ; 30 e4
    64496435    mov dx, strict word 0001ch                ; ba 1c 00
     
    64586444    or AL, strict byte 001h                   ; 0c 01
    64596445    mov word [bp+018h], ax                    ; 89 46 18
    6460     jmp short 048fbh                          ; eb c5
     6446    jmp short 048deh                          ; eb c5
    64616447    test cl, cl                               ; 84 c9
    6462     jne short 04949h                          ; 75 0f
     6448    jne short 0492ch                          ; 75 0f
    64636449    or bh, 0b0h                               ; 80 cf b0
    64646450    mov word [bp+018h], bx                    ; 89 5e 18
    64656451    mov byte [bp+018h], cl                    ; 88 4e 18
    6466     jmp near 04c20h                           ; e9 da 02
    6467     jmp near 04c15h                           ; e9 cc 02
    6468     mov al, byte [bp-006h]                    ; 8a 46 fa
     6452    jmp near 04bd9h                           ; e9 b0 02
     6453    jmp near 04bceh                           ; e9 a2 02
     6454    mov al, byte [bp-008h]                    ; 8a 46 f8
    64696455    xor ah, ah                                ; 30 e4
    64706456    mov dx, strict word 0001ch                ; ba 1c 00
     
    64766462    mov byte [es:bx+025h], cl                 ; 26 88 4f 25
    64776463    test cl, cl                               ; 84 c9
    6478     jne short 04970h                          ; 75 0e
     6464    jne short 04953h                          ; 75 0e
    64796465    xor ax, ax                                ; 31 c0
    64806466    mov dx, word [bp+018h]                    ; 8b 56 18
     
    64826468    or dx, ax                                 ; 09 c2
    64836469    mov word [bp+018h], dx                    ; 89 56 18
    6484     jmp short 048fbh                          ; eb 8b
     6470    jmp short 048deh                          ; eb 8b
    64856471    mov ax, strict word 00001h                ; b8 01 00
    6486     jmp short 04964h                          ; eb ef
    6487     mov al, byte [bp-006h]                    ; 8a 46 fa
     6472    jmp short 04947h                          ; eb ef
     6473    mov al, byte [bp-008h]                    ; 8a 46 f8
    64886474    xor ah, ah                                ; 30 e4
    64896475    mov dx, strict word 0001ch                ; ba 1c 00
     
    64936479    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    64946480    test cl, cl                               ; 84 c9
    6495     je short 04992h                           ; 74 06
     6481    je short 04975h                           ; 74 06
    64966482    or bh, 0b1h                               ; 80 cf b1
    6497     jmp near 04756h                           ; e9 c4 fd
    6498     je short 049b9h                           ; 74 25
     6483    jmp near 04738h                           ; e9 c3 fd
     6484    je short 0499ch                           ; 74 25
    64996485    mov ax, word [bp+018h]                    ; 8b 46 18
    65006486    xor ah, ah                                ; 30 e4
    65016487    or ah, 0b1h                               ; 80 cc b1
    6502     jmp near 04c1dh                           ; e9 7e 02
     6488    jmp near 04bd6h                           ; e9 54 02
    65036489    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    65046490    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    65076493    mov es, cx                                ; 8e c1
    65086494    mov ax, word [es:bx]                      ; 26 8b 07
    6509     mov word [bp-010h], ax                    ; 89 46 f0
     6495    mov word [bp-01eh], ax                    ; 89 46 e2
    65106496    cmp ax, strict word 0001ah                ; 3d 1a 00
    6511     jnc short 049bch                          ; 73 05
    6512     jmp short 04946h                          ; eb 8d
    6513     jmp near 04bddh                           ; e9 21 02
    6514     jc short 04a1eh                           ; 72 60
    6515     mov al, byte [bp-006h]                    ; 8a 46 fa
     6497    jnc short 0499fh                          ; 73 05
     6498    jmp short 04929h                          ; eb 8d
     6499    jmp near 04b96h                           ; e9 f7 01
     6500    jc short 04a01h                           ; 72 60
     6501    mov al, byte [bp-008h]                    ; 8a 46 f8
    65166502    xor ah, ah                                ; 30 e4
    65176503    mov dx, strict word 0001ch                ; ba 1c 00
     
    65346520    mov word [es:bx+014h], strict word 0ffffh ; 26 c7 47 14 ff ff
    65356521    mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
    6536     cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
    6537     jc short 04a85h                           ; 72 61
     6522    cmp word [bp-01eh], strict byte 0001eh    ; 83 7e e2 1e
     6523    jnc short 04a0ah                          ; 73 03
     6524    jmp near 04acah                           ; e9 c0 00
    65386525    mov es, [bp-00ah]                         ; 8e 46 f6
    65396526    mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
     
    65416528    mov word [es:si+01ch], ax                 ; 26 89 44 1c
    65426529    mov word [es:si+01ah], 00356h             ; 26 c7 44 1a 56 03
    6543     mov cl, byte [bp-006h]                    ; 8a 4e fa
     6530    mov cl, byte [bp-008h]                    ; 8a 4e f8
    65446531    xor ch, ch                                ; 30 ed
    65456532    mov ax, cx                                ; 89 c8
     
    65546541    add bx, ax                                ; 01 c3
    65556542    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
    6556     mov word [bp-020h], ax                    ; 89 46 e0
    6557     mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
    6558     mov word [bp-01eh], ax                    ; 89 46 e2
    6559     mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
    6560     mov byte [bp-008h], al                    ; 88 46 f8
     6543    mov di, word [es:bx+00208h]               ; 26 8b bf 08 02
     6544    mov dl, byte [es:bx+00205h]               ; 26 8a 97 05 02
     6545    mov byte [bp-006h], dl                    ; 88 56 fa
     6546    mov bx, word [bp-00eh]                    ; 8b 5e f2
     6547    mov word [es:bx+00234h], ax               ; 26 89 87 34 02
     6548    mov word [es:bx+00236h], di               ; 26 89 bf 36 02
    65616549    mov ax, cx                                ; 89 c8
    6562     mov dx, strict word 0001ch                ; ba 1c 00
    6563     imul dx                                   ; f7 ea
    6564     mov bx, word [bp-00eh]                    ; 8b 5e f2
    6565     add bx, ax                                ; 01 c3
    6566     mov al, byte [es:bx+026h]                 ; 26 8a 47 26
    6567     mov di, strict word 00070h                ; bf 70 00
    6568     cmp AL, strict byte 001h                  ; 3c 01
    6569     jne short 04a88h                          ; 75 08
    6570     mov ax, strict word 00001h                ; b8 01 00
    6571     jmp short 04a8ah                          ; eb 05
    6572     jmp near 04b0fh                           ; e9 87 00
    6573     xor ax, ax                                ; 31 c0
    6574     or di, ax                                 ; 09 c7
    6575     mov ax, word [bp-020h]                    ; 8b 46 e0
    6576     les bx, [bp-00eh]                         ; c4 5e f2
    6577     mov word [es:bx+00234h], ax               ; 26 89 87 34 02
    6578     mov ax, word [bp-01eh]                    ; 8b 46 e2
    6579     mov word [es:bx+00236h], ax               ; 26 89 87 36 02
    6580     mov al, byte [bp-006h]                    ; 8a 46 fa
    6581     xor ah, ah                                ; 30 e4
    65826550    cwd                                       ; 99
    65836551    mov bx, strict word 00002h                ; bb 02 00
     
    65896557    mov byte [es:bx+00238h], dl               ; 26 88 97 38 02
    65906558    mov byte [es:bx+00239h], 0cbh             ; 26 c6 87 39 02 cb
    6591     mov al, byte [bp-008h]                    ; 8a 46 f8
     6559    mov al, byte [bp-006h]                    ; 8a 46 fa
    65926560    mov byte [es:bx+0023ah], al               ; 26 88 87 3a 02
    6593     mov word [es:bx+0023bh], strict word 00001h ; 26 c7 87 3b 02 01 00
    6594     mov byte [es:bx+0023dh], 000h             ; 26 c6 87 3d 02 00
    6595     mov word [es:bx+0023eh], di               ; 26 89 bf 3e 02
     6561    mov byte [es:bx+0023bh], 001h             ; 26 c6 87 3b 02 01
     6562    mov byte [es:bx+0023ch], ch               ; 26 88 af 3c 02
     6563    mov byte [es:bx+0023dh], ch               ; 26 88 af 3d 02
     6564    mov word [es:bx+0023eh], strict word 00070h ; 26 c7 87 3e 02 70 00
    65966565    mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00
    65976566    mov byte [es:bx+00242h], 011h             ; 26 c6 87 42 02 11
    65986567    xor bl, bl                                ; 30 db
    65996568    xor bh, bh                                ; 30 ff
    6600     jmp short 04af1h                          ; eb 05
     6569    jmp short 04aaah                          ; eb 05
    66016570    cmp bh, 00fh                              ; 80 ff 0f
    6602     jnc short 04b05h                          ; 73 14
    6603     mov dl, bh                                ; 88 fa
    6604     xor dh, dh                                ; 30 f6
     6571    jnc short 04ac0h                          ; 73 16
     6572    mov al, bh                                ; 88 f8
     6573    xor ah, ah                                ; 30 e4
     6574    mov dx, ax                                ; 89 c2
    66056575    add dx, 00356h                            ; 81 c2 56 03
    66066576    mov ax, word [bp-018h]                    ; 8b 46 e8
    6607     call 01652h                               ; e8 53 cb
     6577    call 01652h                               ; e8 98 cb
    66086578    add bl, al                                ; 00 c3
    66096579    db  0feh, 0c7h
    66106580    ; inc bh                                    ; fe c7
    6611     jmp short 04aech                          ; eb e7
     6581    jmp short 04aa5h                          ; eb e5
    66126582    neg bl                                    ; f6 db
    66136583    les di, [bp-00eh]                         ; c4 7e f2
    66146584    mov byte [es:di+00243h], bl               ; 26 88 9d 43 02
    6615     cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
    6616     jnc short 04b18h                          ; 73 03
    6617     jmp near 04bddh                           ; e9 c5 00
    6618     mov al, byte [bp-006h]                    ; 8a 46 fa
     6585    cmp word [bp-01eh], strict byte 00042h    ; 83 7e e2 42
     6586    jnc short 04ad3h                          ; 73 03
     6587    jmp near 04b96h                           ; e9 c3 00
     6588    mov al, byte [bp-008h]                    ; 8a 46 f8
    66196589    xor ah, ah                                ; 30 e4
    66206590    cwd                                       ; 99
     
    66356605    mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
    66366606    test al, al                               ; 84 c0
    6637     jne short 04b62h                          ; 75 0c
     6607    jne short 04b1dh                          ; 75 0c
    66386608    mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
    66396609    mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
     
    66446614    mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
    66456615    test al, al                               ; 84 c0
    6646     jne short 04b97h                          ; 75 16
     6616    jne short 04b52h                          ; 75 16
    66476617    mov word [es:si+030h], dx                 ; 26 89 54 30
    66486618    mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
    66496619    mov word [es:si+034h], strict word 00000h ; 26 c7 44 34 00 00
    66506620    mov word [es:si+036h], strict word 00000h ; 26 c7 44 36 00 00
    6651     mov al, byte [bp-006h]                    ; 8a 46 fa
     6621    mov al, byte [bp-008h]                    ; 8a 46 f8
    66526622    and AL, strict byte 001h                  ; 24 01
    66536623    xor ah, ah                                ; 30 e4
     
    66576627    mov word [es:si+03ch], strict word 00000h ; 26 c7 44 3c 00 00
    66586628    mov word [es:si+03eh], strict word 00000h ; 26 c7 44 3e 00 00
    6659     xor bl, bl                                ; 30 db
    6660     mov BH, strict byte 01eh                  ; b7 1e
    6661     jmp short 04bc2h                          ; eb 05
    6662     cmp bh, 040h                              ; 80 ff 40
    6663     jnc short 04bd4h                          ; 73 12
    6664     mov al, bh                                ; 88 f8
    6665     xor ah, ah                                ; 30 e4
     6629    xor al, al                                ; 30 c0
     6630    mov AH, strict byte 01eh                  ; b4 1e
     6631    jmp short 04b7dh                          ; eb 05
     6632    cmp ah, 040h                              ; 80 fc 40
     6633    jnc short 04b8dh                          ; 73 10
     6634    mov bl, ah                                ; 88 e3
     6635    xor bh, bh                                ; 30 ff
    66666636    mov es, [bp-00ah]                         ; 8e 46 f6
    6667     mov di, si                                ; 89 f7
    6668     add di, ax                                ; 01 c7
    6669     add bl, byte [es:di]                      ; 26 02 1d
    6670     db  0feh, 0c7h
    6671     ; inc bh                                    ; fe c7
    6672     jmp short 04bbdh                          ; eb e9
    6673     neg bl                                    ; f6 db
     6637    add bx, si                                ; 01 f3
     6638    add al, byte [es:bx]                      ; 26 02 07
     6639    db  0feh, 0c4h
     6640    ; inc ah                                    ; fe c4
     6641    jmp short 04b78h                          ; eb eb
     6642    neg al                                    ; f6 d8
    66746643    mov es, [bp-00ah]                         ; 8e 46 f6
    6675     mov byte [es:si+041h], bl                 ; 26 88 5c 41
     6644    mov byte [es:si+041h], al                 ; 26 88 44 41
    66766645    mov byte [bp+019h], 000h                  ; c6 46 19 00
    66776646    xor bx, bx                                ; 31 db
    66786647    mov dx, strict word 00074h                ; ba 74 00
    66796648    mov ax, strict word 00040h                ; b8 40 00
    6680     call 01660h                               ; e8 74 ca
     6649    call 01660h                               ; e8 bb ca
    66816650    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    66826651    lea sp, [bp-004h]                         ; 8d 66 fc
     
    66876656    or bh, 006h                               ; 80 cf 06
    66886657    mov word [bp+018h], bx                    ; 89 5e 18
    6689     jmp short 04c2eh                          ; eb 2f
     6658    jmp short 04be7h                          ; eb 2f
    66906659    cmp bx, strict byte 00006h                ; 83 fb 06
    6691     je short 04bddh                           ; 74 d9
     6660    je short 04b96h                           ; 74 d9
    66926661    cmp bx, strict byte 00001h                ; 83 fb 01
    6693     jc short 04c15h                           ; 72 0c
    6694     jbe short 04bddh                          ; 76 d2
     6662    jc short 04bceh                           ; 72 0c
     6663    jbe short 04b96h                          ; 76 d2
    66956664    cmp bx, strict byte 00003h                ; 83 fb 03
    6696     jc short 04c15h                           ; 72 05
     6665    jc short 04bceh                           ; 72 05
    66976666    cmp bx, strict byte 00004h                ; 83 fb 04
    6698     jbe short 04bddh                          ; 76 c8
     6667    jbe short 04b96h                          ; 76 c8
    66996668    mov ax, word [bp+018h]                    ; 8b 46 18
    67006669    xor ah, ah                                ; 30 e4
     
    67056674    mov dx, strict word 00074h                ; ba 74 00
    67066675    mov ax, strict word 00040h                ; b8 40 00
    6707     call 01660h                               ; e8 32 ca
     6676    call 01660h                               ; e8 79 ca
    67086677    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6709     jmp short 04bf0h                          ; eb bc
    6710 print_boot_device_:                          ; 0xf4c34 LB 0x51
     6678    jmp short 04ba9h                          ; eb bc
     6679print_boot_device_:                          ; 0xf4bed LB 0x51
    67116680    push bp                                   ; 55
    67126681    mov bp, sp                                ; 89 e5
    67136682    push cx                                   ; 51
    67146683    test al, al                               ; 84 c0
    6715     je short 04c41h                           ; 74 05
     6684    je short 04bfah                           ; 74 05
    67166685    mov dx, strict word 00002h                ; ba 02 00
    6717     jmp short 04c5bh                          ; eb 1a
     6686    jmp short 04c14h                          ; eb 1a
    67186687    test dl, dl                               ; 84 d2
    6719     je short 04c4ah                           ; 74 05
     6688    je short 04c03h                           ; 74 05
    67206689    mov dx, strict word 00003h                ; ba 03 00
    6721     jmp short 04c5bh                          ; eb 11
     6690    jmp short 04c14h                          ; eb 11
    67226691    test bl, 080h                             ; f6 c3 80
    6723     jne short 04c53h                          ; 75 04
     6692    jne short 04c0ch                          ; 75 04
    67246693    xor dh, dh                                ; 30 f6
    6725     jmp short 04c5bh                          ; eb 08
     6694    jmp short 04c14h                          ; eb 08
    67266695    test bl, 080h                             ; f6 c3 80
    6727     je short 04c7fh                           ; 74 27
     6696    je short 04c38h                           ; 74 27
    67286697    mov dx, strict word 00001h                ; ba 01 00
    67296698    mov bx, 00da0h                            ; bb a0 0d
    67306699    mov cx, ds                                ; 8c d9
    67316700    mov ax, strict word 00004h                ; b8 04 00
    6732     call 01933h                               ; e8 cd cc
     6701    call 01933h                               ; e8 14 cd
    67336702    mov ax, dx                                ; 89 d0
    67346703    mov dx, strict word 0000ah                ; ba 0a 00
     
    67406709    mov ax, strict word 00004h                ; b8 04 00
    67416710    push ax                                   ; 50
    6742     call 01976h                               ; e8 fa cc
     6711    call 01976h                               ; e8 41 cd
    67436712    add sp, strict byte 00006h                ; 83 c4 06
    67446713    lea sp, [bp-002h]                         ; 8d 66 fe
     
    67466715    pop bp                                    ; 5d
    67476716    retn                                      ; c3
    6748 print_boot_failure_:                         ; 0xf4c85 LB 0x9f
     6717print_boot_failure_:                         ; 0xf4c3e LB 0x9f
    67496718    push bp                                   ; 55
    67506719    mov bp, sp                                ; 89 e5
     
    67566725    mov si, cx                                ; 89 ce
    67576726    test al, al                               ; 84 c0
    6758     je short 04cb7h                           ; 74 1f
     6727    je short 04c70h                           ; 74 1f
    67596728    mov bx, 00da0h                            ; bb a0 0d
    67606729    mov cx, ds                                ; 8c d9
    67616730    mov ax, strict word 00004h                ; b8 04 00
    6762     call 01933h                               ; e8 90 cc
     6731    call 01933h                               ; e8 d7 cc
    67636732    mov cx, 00ddah                            ; b9 da 0d
    67646733    push cx                                   ; 51
     
    67676736    mov cx, strict word 00004h                ; b9 04 00
    67686737    push cx                                   ; 51
    6769     call 01976h                               ; e8 c4 cc
     6738    call 01976h                               ; e8 0b cd
    67706739    add sp, strict byte 00006h                ; 83 c4 06
    6771     jmp short 04cffh                          ; eb 48
     6740    jmp short 04cb8h                          ; eb 48
    67726741    test dl, dl                               ; 84 d2
    6773     je short 04ccbh                           ; 74 10
     6742    je short 04c84h                           ; 74 10
    67746743    mov bx, 00da0h                            ; bb a0 0d
    67756744    mov cx, ds                                ; 8c d9
    67766745    mov ax, strict word 00004h                ; b8 04 00
    6777     call 01933h                               ; e8 6d cc
     6746    call 01933h                               ; e8 b4 cc
    67786747    mov cx, 00de4h                            ; b9 e4 0d
    6779     jmp short 04ca6h                          ; eb db
     6748    jmp short 04c5fh                          ; eb db
    67806749    test bl, 080h                             ; f6 c3 80
    6781     je short 04ce1h                           ; 74 11
     6750    je short 04c9ah                           ; 74 11
    67826751    mov bx, 00da0h                            ; bb a0 0d
    67836752    mov cx, ds                                ; 8c d9
    67846753    mov ax, strict word 00004h                ; b8 04 00
    6785     call 01933h                               ; e8 58 cc
     6754    call 01933h                               ; e8 9f cc
    67866755    push si                                   ; 56
    67876756    mov cx, 00dd0h                            ; b9 d0 0d
    6788     jmp short 04cf0h                          ; eb 0f
     6757    jmp short 04ca9h                          ; eb 0f
    67896758    mov bx, 00da0h                            ; bb a0 0d
    67906759    mov cx, ds                                ; 8c d9
    67916760    mov ax, strict word 00004h                ; b8 04 00
    6792     call 01933h                               ; e8 47 cc
     6761    call 01933h                               ; e8 8e cc
    67936762    push si                                   ; 56
    67946763    mov cx, 00dc6h                            ; b9 c6 0d
     
    67986767    mov cx, strict word 00004h                ; b9 04 00
    67996768    push cx                                   ; 51
    6800     call 01976h                               ; e8 7a cc
     6769    call 01976h                               ; e8 c1 cc
    68016770    add sp, strict byte 00008h                ; 83 c4 08
    68026771    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6803     jne short 04d1ch                          ; 75 17
     6772    jne short 04cd5h                          ; 75 17
    68046773    test dh, dh                               ; 84 f6
    6805     jne short 04d0eh                          ; 75 05
     6774    jne short 04cc7h                          ; 75 05
    68066775    mov dx, 004d5h                            ; ba d5 04
    6807     jmp short 04d11h                          ; eb 03
     6776    jmp short 04ccah                          ; eb 03
    68086777    mov dx, 004ffh                            ; ba ff 04
    68096778    push dx                                   ; 52
    68106779    mov dx, strict word 00007h                ; ba 07 00
    68116780    push dx                                   ; 52
    6812     call 01976h                               ; e8 5d cc
     6781    call 01976h                               ; e8 a4 cc
    68136782    add sp, strict byte 00004h                ; 83 c4 04
    68146783    lea sp, [bp-002h]                         ; 8d 66 fe
     
    68166785    pop bp                                    ; 5d
    68176786    retn 00002h                               ; c2 02 00
    6818 print_cdromboot_failure_:                    ; 0xf4d24 LB 0x2a
     6787print_cdromboot_failure_:                    ; 0xf4cdd LB 0x2a
    68196788    push bp                                   ; 55
    68206789    mov bp, sp                                ; 89 e5
     
    68266795    mov cx, ds                                ; 8c d9
    68276796    mov ax, strict word 00004h                ; b8 04 00
    6828     call 01933h                               ; e8 fc cb
     6797    call 01933h                               ; e8 43 cc
    68296798    push dx                                   ; 52
    68306799    mov dx, 00534h                            ; ba 34 05
     
    68326801    mov dx, strict word 00004h                ; ba 04 00
    68336802    push dx                                   ; 52
    6834     call 01976h                               ; e8 33 cc
     6803    call 01976h                               ; e8 7a cc
    68356804    add sp, strict byte 00006h                ; 83 c4 06
    68366805    lea sp, [bp-006h]                         ; 8d 66 fa
     
    68406809    pop bp                                    ; 5d
    68416810    retn                                      ; c3
    6842 _int19_function:                             ; 0xf4d4e LB 0x28d
     6811_int19_function:                             ; 0xf4d07 LB 0x28d
    68436812    push bp                                   ; 55
    68446813    mov bp, sp                                ; 89 e5
     
    68486817    mov dx, strict word 0000eh                ; ba 0e 00
    68496818    mov ax, strict word 00040h                ; b8 40 00
    6850     call 0166eh                               ; e8 0f c9
     6819    call 0166eh                               ; e8 56 c9
    68516820    mov bx, ax                                ; 89 c3
    68526821    mov di, ax                                ; 89 c7
    68536822    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    68546823    mov ax, strict word 0003dh                ; b8 3d 00
    6855     call 016aeh                               ; e8 41 c9
     6824    call 016aeh                               ; e8 88 c9
    68566825    mov dl, al                                ; 88 c2
    68576826    xor dh, dh                                ; 30 f6
    68586827    mov word [bp-00eh], dx                    ; 89 56 f2
    68596828    mov ax, strict word 00038h                ; b8 38 00
    6860     call 016aeh                               ; e8 34 c9
     6829    call 016aeh                               ; e8 7b c9
    68616830    and AL, strict byte 0f0h                  ; 24 f0
    68626831    mov byte [bp-010h], al                    ; 88 46 f0
     
    68686837    mov word [bp-00eh], dx                    ; 89 56 f2
    68696838    mov ax, strict word 0003ch                ; b8 3c 00
    6870     call 016aeh                               ; e8 1a c9
     6839    call 016aeh                               ; e8 61 c9
    68716840    and AL, strict byte 00fh                  ; 24 0f
    68726841    xor ah, ah                                ; 30 e4
     
    68766845    mov dx, 0037dh                            ; ba 7d 03
    68776846    mov ax, bx                                ; 89 d8
    6878     call 01652h                               ; e8 ab c8
     6847    call 01652h                               ; e8 f2 c8
    68796848    test al, al                               ; 84 c0
    6880     je short 04db8h                           ; 74 0d
     6849    je short 04d71h                           ; 74 0d
    68816850    mov dx, 0037dh                            ; ba 7d 03
    68826851    mov ax, bx                                ; 89 d8
    6883     call 01652h                               ; e8 9f c8
     6852    call 01652h                               ; e8 e6 c8
    68846853    xor ah, ah                                ; 30 e4
    68856854    mov word [bp-00eh], ax                    ; 89 46 f2
    68866855    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6887     jne short 04dcfh                          ; 75 11
     6856    jne short 04d88h                          ; 75 11
    68886857    mov ax, strict word 0003ch                ; b8 3c 00
    6889     call 016aeh                               ; e8 ea c8
     6858    call 016aeh                               ; e8 31 c9
    68906859    and AL, strict byte 0f0h                  ; 24 f0
    68916860    xor ah, ah                                ; 30 e4
    68926861    mov CL, strict byte 004h                  ; b1 04
    68936862    sar ax, CL                                ; d3 f8
    6894     call 07f6ch                               ; e8 9d 31
     6863    call 07f13h                               ; e8 8b 31
    68956864    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6896     jne short 04ddah                          ; 75 05
     6865    jne short 04d93h                          ; 75 05
    68976866    mov CL, strict byte 004h                  ; b1 04
    68986867    shr word [bp-00eh], CL                    ; d3 6e f2
    68996868    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6900     jne short 04de8h                          ; 75 08
     6869    jne short 04da1h                          ; 75 08
    69016870    mov al, byte [bp-00dh]                    ; 8a 46 f3
    69026871    xor ah, ah                                ; 30 e4
    69036872    mov word [bp-00eh], ax                    ; 89 46 f2
    69046873    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6905     jne short 04df3h                          ; 75 05
     6874    jne short 04dach                          ; 75 05
    69066875    mov CL, strict byte 00ch                  ; b1 0c
    69076876    shr word [bp-00eh], CL                    ; d3 6e f2
    69086877    cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
    6909     jnc short 04dfdh                          ; 73 04
     6878    jnc short 04db6h                          ; 73 04
    69106879    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    69116880    xor al, al                                ; 30 c0
     
    69166885    mov cx, ds                                ; 8c d9
    69176886    mov ax, strict word 00004h                ; b8 04 00
    6918     call 01933h                               ; e8 20 cb
     6887    call 01933h                               ; e8 67 cb
    69196888    push word [bp-00eh]                       ; ff 76 f2
    69206889    mov al, byte [bp+004h]                    ; 8a 46 04
     
    69256894    mov ax, strict word 00004h                ; b8 04 00
    69266895    push ax                                   ; 50
    6927     call 01976h                               ; e8 4f cb
     6896    call 01976h                               ; e8 96 cb
    69286897    add sp, strict byte 00008h                ; 83 c4 08
    69296898    mov ax, word [bp-00eh]                    ; 8b 46 f2
    69306899    and ax, strict word 0000fh                ; 25 0f 00
    69316900    cmp ax, strict word 00002h                ; 3d 02 00
    6932     jc short 04e43h                           ; 72 0e
    6933     jbe short 04e52h                          ; 76 1b
     6901    jc short 04dfch                           ; 72 0e
     6902    jbe short 04e0bh                          ; 76 1b
    69346903    cmp ax, strict word 00004h                ; 3d 04 00
    6935     je short 04e6fh                           ; 74 33
     6904    je short 04e28h                           ; 74 33
    69366905    cmp ax, strict word 00003h                ; 3d 03 00
    6937     je short 04e65h                           ; 74 24
    6938     jmp short 04e9eh                          ; eb 5b
     6906    je short 04e1eh                           ; 74 24
     6907    jmp short 04e57h                          ; eb 5b
    69396908    cmp ax, strict word 00001h                ; 3d 01 00
    6940     jne short 04e9eh                          ; 75 56
     6909    jne short 04e57h                          ; 75 56
    69416910    xor al, al                                ; 30 c0
    69426911    mov byte [bp-006h], al                    ; 88 46 fa
    69436912    mov byte [bp-008h], al                    ; 88 46 f8
    6944     jmp short 04eb2h                          ; eb 60
     6913    jmp short 04e6bh                          ; eb 60
    69456914    mov dx, 0037ch                            ; ba 7c 03
    69466915    mov ax, di                                ; 89 f8
    6947     call 01652h                               ; e8 f8 c7
     6916    call 01652h                               ; e8 3f c8
    69486917    add AL, strict byte 080h                  ; 04 80
    69496918    mov byte [bp-006h], al                    ; 88 46 fa
    69506919    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    6951     jmp short 04eb2h                          ; eb 4d
     6920    jmp short 04e6bh                          ; eb 4d
    69526921    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    69536922    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    6954     jmp short 04e79h                          ; eb 0a
     6923    jmp short 04e32h                          ; eb 0a
    69556924    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    69566925    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6957     je short 04eb2h                           ; 74 39
    6958     call 03df6h                               ; e8 7a ef
     6926    je short 04e6bh                           ; 74 39
     6927    call 03dd8h                               ; e8 a3 ef
    69596928    mov bx, ax                                ; 89 c3
    69606929    test AL, strict byte 0ffh                 ; a8 ff
    6961     je short 04ea5h                           ; 74 23
    6962     call 04d24h                               ; e8 9f fe
     6930    je short 04e5eh                           ; 74 23
     6931    call 04cddh                               ; e8 9f fe
    69636932    mov al, byte [bp-00ch]                    ; 8a 46 f4
    69646933    xor ah, ah                                ; 30 e4
     
    69706939    mov al, byte [bp-008h]                    ; 8a 46 f8
    69716940    mov cx, strict word 00001h                ; b9 01 00
    6972     call 04c85h                               ; e8 e7 fd
     6941    call 04c3eh                               ; e8 e7 fd
    69736942    xor ax, ax                                ; 31 c0
    69746943    xor dx, dx                                ; 31 d2
    6975     jmp near 04fd4h                           ; e9 2f 01
     6944    jmp near 04f8dh                           ; e9 2f 01
    69766945    mov dx, 00372h                            ; ba 72 03
    69776946    mov ax, di                                ; 89 f8
    6978     call 0166eh                               ; e8 c1 c7
     6947    call 0166eh                               ; e8 08 c8
    69796948    mov si, ax                                ; 89 c6
    69806949    mov byte [bp-006h], bh                    ; 88 7e fa
    69816950    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    6982     jne short 04f0dh                          ; 75 55
     6951    jne short 04ec6h                          ; 75 55
    69836952    xor si, si                                ; 31 f6
    69846953    mov ax, 0e200h                            ; b8 00 e2
    69856954    mov es, ax                                ; 8e c0
    69866955    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6987     jne short 04e85h                          ; 75 bf
     6956    jne short 04e3eh                          ; 75 bf
    69886957    mov cx, ax                                ; 89 c1
    69896958    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    69906959    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6991     jne short 04e85h                          ; 75 b1
     6960    jne short 04e3eh                          ; 75 b1
    69926961    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6993     jne short 04e85h                          ; 75 aa
     6962    jne short 04e3eh                          ; 75 aa
    69946963    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
    69956964    mov dx, word [es:bx]                      ; 26 8b 17
    69966965    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
    69976966    cmp ax, 06568h                            ; 3d 68 65
    6998     jne short 04f0fh                          ; 75 24
     6967    jne short 04ec8h                          ; 75 24
    69996968    cmp dx, 07445h                            ; 81 fa 45 74
    7000     jne short 04f0fh                          ; 75 1e
     6969    jne short 04ec8h                          ; 75 1e
    70016970    mov bl, byte [bp-006h]                    ; 8a 5e fa
    70026971    xor bh, bh                                ; 30 ff
     
    70056974    mov al, byte [bp-008h]                    ; 8a 46 f8
    70066975    xor ah, ah                                ; 30 e4
    7007     call 04c34h                               ; e8 31 fd
     6976    call 04bedh                               ; e8 31 fd
    70086977    mov word [bp-014h], strict word 00006h    ; c7 46 ec 06 00
    70096978    mov word [bp-012h], cx                    ; 89 4e ee
    7010     jmp short 04f2eh                          ; eb 21
    7011     jmp short 04f34h                          ; eb 25
     6979    jmp short 04ee7h                          ; eb 21
     6980    jmp short 04eedh                          ; eb 25
    70126981    mov bl, byte [bp-006h]                    ; 8a 5e fa
    70136982    xor bh, bh                                ; 30 ff
     
    70166985    mov al, byte [bp-008h]                    ; 8a 46 f8
    70176986    xor ah, ah                                ; 30 e4
    7018     call 04c34h                               ; e8 13 fd
     6987    call 04bedh                               ; e8 13 fd
    70196988    sti                                       ; fb
    70206989    mov word [bp-012h], cx                    ; 89 4e ee
     
    70236992    mov word [bp-014h], ax                    ; 89 46 ec
    70246993    call far [bp-014h]                        ; ff 5e ec
    7025     jmp near 04e85h                           ; e9 51 ff
     6994    jmp near 04e3eh                           ; e9 51 ff
    70266995    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7027     jne short 04f61h                          ; 75 27
     6996    jne short 04f1ah                          ; 75 27
    70286997    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7029     jne short 04f61h                          ; 75 21
     6998    jne short 04f1ah                          ; 75 21
    70306999    mov si, 007c0h                            ; be c0 07
    70317000    mov es, si                                ; 8e c6
     
    70407009    sbb ax, strict byte 00000h                ; 83 d8 00
    70417010    test ax, ax                               ; 85 c0
    7042     je short 04f61h                           ; 74 03
    7043     jmp near 04e85h                           ; e9 24 ff
     7011    je short 04f1ah                           ; 74 03
     7012    jmp near 04e3eh                           ; e9 24 ff
    70447013    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7045     je short 04f6bh                           ; 74 04
     7014    je short 04f24h                           ; 74 04
    70467015    xor bl, bl                                ; 30 db
    7047     jmp short 04f6dh                          ; eb 02
     7016    jmp short 04f26h                          ; eb 02
    70487017    mov BL, strict byte 001h                  ; b3 01
    70497018    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7050     je short 04f75h                           ; 74 02
     7019    je short 04f2eh                           ; 74 02
    70517020    mov BL, strict byte 001h                  ; b3 01
    70527021    xor dx, dx                                ; 31 d2
    70537022    mov ax, si                                ; 89 f0
    7054     call 0166eh                               ; e8 f2 c6
     7023    call 0166eh                               ; e8 39 c7
    70557024    mov di, ax                                ; 89 c7
    70567025    mov dx, strict word 00002h                ; ba 02 00
    70577026    mov ax, si                                ; 89 f0
    7058     call 0166eh                               ; e8 e8 c6
     7027    call 0166eh                               ; e8 2f c7
    70597028    cmp di, ax                                ; 39 c7
    7060     je short 04f9bh                           ; 74 11
     7029    je short 04f54h                           ; 74 11
    70617030    test bl, bl                               ; 84 db
    7062     jne short 04fb3h                          ; 75 25
     7031    jne short 04f6ch                          ; 75 25
    70637032    mov dx, 001feh                            ; ba fe 01
    70647033    mov ax, si                                ; 89 f0
    7065     call 0166eh                               ; e8 d8 c6
     7034    call 0166eh                               ; e8 1f c7
    70667035    cmp ax, 0aa55h                            ; 3d 55 aa
    7067     je short 04fb3h                           ; 74 18
     7036    je short 04f6ch                           ; 74 18
    70687037    mov al, byte [bp-00ch]                    ; 8a 46 f4
    70697038    xor ah, ah                                ; 30 e4
     
    70757044    mov al, byte [bp-008h]                    ; 8a 46 f8
    70767045    xor cx, cx                                ; 31 c9
    7077     jmp near 04e9bh                           ; e9 e8 fe
     7046    jmp near 04e54h                           ; e9 e8 fe
    70787047    mov bl, byte [bp-006h]                    ; 8a 5e fa
    70797048    xor bh, bh                                ; 30 ff
     
    70827051    mov al, byte [bp-008h]                    ; 8a 46 f8
    70837052    xor ah, ah                                ; 30 e4
    7084     call 04c34h                               ; e8 6f fc
     7053    call 04bedh                               ; e8 6f fc
    70857054    mov al, byte [bp-006h]                    ; 8a 46 fa
    70867055    xor ah, ah                                ; 30 e4
     
    70957064    pop bp                                    ; 5d
    70967065    retn                                      ; c3
    7097 keyboard_panic_:                             ; 0xf4fdb LB 0x16
     7066keyboard_panic_:                             ; 0xf4f94 LB 0x16
    70987067    push bp                                   ; 55
    70997068    mov bp, sp                                ; 89 e5
     
    71037072    mov ax, strict word 00007h                ; b8 07 00
    71047073    push ax                                   ; 50
    7105     call 01976h                               ; e8 8c c9
     7074    call 01976h                               ; e8 d3 c9
    71067075    add sp, strict byte 00006h                ; 83 c4 06
    71077076    mov sp, bp                                ; 89 ec
    71087077    pop bp                                    ; 5d
    71097078    retn                                      ; c3
    7110 _keyboard_init:                              ; 0xf4ff1 LB 0x26a
     7079_keyboard_init:                              ; 0xf4faa LB 0x26a
    71117080    push bp                                   ; 55
    71127081    mov bp, sp                                ; 89 e5
     
    71207089    ; sub ah, ah                                ; 2a e4
    71217090    test AL, strict byte 002h                 ; a8 02
    7122     je short 05014h                           ; 74 0d
     7091    je short 04fcdh                           ; 74 0d
    71237092    dec bx                                    ; 4b
    71247093    test bx, bx                               ; 85 db
    7125     jbe short 05014h                          ; 76 08
     7094    jbe short 04fcdh                          ; 76 08
    71267095    xor al, al                                ; 30 c0
    71277096    mov dx, 00080h                            ; ba 80 00
    71287097    out DX, AL                                ; ee
    7129     jmp short 04ffdh                          ; eb e9
     7098    jmp short 04fb6h                          ; eb e9
    71307099    test bx, bx                               ; 85 db
    7131     jne short 0501dh                          ; 75 05
     7100    jne short 04fd6h                          ; 75 05
    71327101    xor ax, ax                                ; 31 c0
    7133     call 04fdbh                               ; e8 be ff
     7102    call 04f94h                               ; e8 be ff
    71347103    mov bx, strict word 0ffffh                ; bb ff ff
    71357104    mov dx, strict word 00064h                ; ba 64 00
     
    71387107    ; sub ah, ah                                ; 2a e4
    71397108    test AL, strict byte 001h                 ; a8 01
    7140     jne short 05037h                          ; 75 0d
     7109    jne short 04ff0h                          ; 75 0d
    71417110    dec bx                                    ; 4b
    71427111    test bx, bx                               ; 85 db
    7143     jbe short 05037h                          ; 76 08
     7112    jbe short 04ff0h                          ; 76 08
    71447113    mov AL, strict byte 001h                  ; b0 01
    71457114    mov dx, 00080h                            ; ba 80 00
    71467115    out DX, AL                                ; ee
    7147     jmp short 05020h                          ; eb e9
     7116    jmp short 04fd9h                          ; eb e9
    71487117    test bx, bx                               ; 85 db
    7149     jne short 05041h                          ; 75 06
     7118    jne short 04ffah                          ; 75 06
    71507119    mov ax, strict word 00001h                ; b8 01 00
    7151     call 04fdbh                               ; e8 9a ff
     7120    call 04f94h                               ; e8 9a ff
    71527121    mov dx, strict word 00060h                ; ba 60 00
    71537122    in AL, DX                                 ; ec
     
    71557124    ; sub ah, ah                                ; 2a e4
    71567125    cmp ax, strict word 00055h                ; 3d 55 00
    7157     je short 05052h                           ; 74 06
     7126    je short 0500bh                           ; 74 06
    71587127    mov ax, 003dfh                            ; b8 df 03
    7159     call 04fdbh                               ; e8 89 ff
     7128    call 04f94h                               ; e8 89 ff
    71607129    mov AL, strict byte 0abh                  ; b0 ab
    71617130    mov dx, strict word 00064h                ; ba 64 00
     
    71677136    ; sub ah, ah                                ; 2a e4
    71687137    test AL, strict byte 002h                 ; a8 02
    7169     je short 05072h                           ; 74 0d
     7138    je short 0502bh                           ; 74 0d
    71707139    dec bx                                    ; 4b
    71717140    test bx, bx                               ; 85 db
    7172     jbe short 05072h                          ; 76 08
     7141    jbe short 0502bh                          ; 76 08
    71737142    mov AL, strict byte 010h                  ; b0 10
    71747143    mov dx, 00080h                            ; ba 80 00
    71757144    out DX, AL                                ; ee
    7176     jmp short 0505bh                          ; eb e9
     7145    jmp short 05014h                          ; eb e9
    71777146    test bx, bx                               ; 85 db
    7178     jne short 0507ch                          ; 75 06
     7147    jne short 05035h                          ; 75 06
    71797148    mov ax, strict word 0000ah                ; b8 0a 00
    7180     call 04fdbh                               ; e8 5f ff
     7149    call 04f94h                               ; e8 5f ff
    71817150    mov bx, strict word 0ffffh                ; bb ff ff
    71827151    mov dx, strict word 00064h                ; ba 64 00
     
    71857154    ; sub ah, ah                                ; 2a e4
    71867155    test AL, strict byte 001h                 ; a8 01
    7187     jne short 05096h                          ; 75 0d
     7156    jne short 0504fh                          ; 75 0d
    71887157    dec bx                                    ; 4b
    71897158    test bx, bx                               ; 85 db
    7190     jbe short 05096h                          ; 76 08
     7159    jbe short 0504fh                          ; 76 08
    71917160    mov AL, strict byte 011h                  ; b0 11
    71927161    mov dx, 00080h                            ; ba 80 00
    71937162    out DX, AL                                ; ee
    7194     jmp short 0507fh                          ; eb e9
     7163    jmp short 05038h                          ; eb e9
    71957164    test bx, bx                               ; 85 db
    7196     jne short 050a0h                          ; 75 06
     7165    jne short 05059h                          ; 75 06
    71977166    mov ax, strict word 0000bh                ; b8 0b 00
    7198     call 04fdbh                               ; e8 3b ff
     7167    call 04f94h                               ; e8 3b ff
    71997168    mov dx, strict word 00060h                ; ba 60 00
    72007169    in AL, DX                                 ; ec
     
    72027171    ; sub ah, ah                                ; 2a e4
    72037172    test ax, ax                               ; 85 c0
    7204     je short 050b0h                           ; 74 06
     7173    je short 05069h                           ; 74 06
    72057174    mov ax, 003e0h                            ; b8 e0 03
    7206     call 04fdbh                               ; e8 2b ff
     7175    call 04f94h                               ; e8 2b ff
    72077176    mov AL, strict byte 0ffh                  ; b0 ff
    72087177    mov dx, strict word 00060h                ; ba 60 00
     
    72147183    ; sub ah, ah                                ; 2a e4
    72157184    test AL, strict byte 002h                 ; a8 02
    7216     je short 050d0h                           ; 74 0d
     7185    je short 05089h                           ; 74 0d
    72177186    dec bx                                    ; 4b
    72187187    test bx, bx                               ; 85 db
    7219     jbe short 050d0h                          ; 76 08
     7188    jbe short 05089h                          ; 76 08
    72207189    mov AL, strict byte 020h                  ; b0 20
    72217190    mov dx, 00080h                            ; ba 80 00
    72227191    out DX, AL                                ; ee
    7223     jmp short 050b9h                          ; eb e9
     7192    jmp short 05072h                          ; eb e9
    72247193    test bx, bx                               ; 85 db
    7225     jne short 050dah                          ; 75 06
     7194    jne short 05093h                          ; 75 06
    72267195    mov ax, strict word 00014h                ; b8 14 00
    7227     call 04fdbh                               ; e8 01 ff
     7196    call 04f94h                               ; e8 01 ff
    72287197    mov bx, strict word 0ffffh                ; bb ff ff
    72297198    mov dx, strict word 00064h                ; ba 64 00
     
    72327201    ; sub ah, ah                                ; 2a e4
    72337202    test AL, strict byte 001h                 ; a8 01
    7234     jne short 050f4h                          ; 75 0d
     7203    jne short 050adh                          ; 75 0d
    72357204    dec bx                                    ; 4b
    72367205    test bx, bx                               ; 85 db
    7237     jbe short 050f4h                          ; 76 08
     7206    jbe short 050adh                          ; 76 08
    72387207    mov AL, strict byte 021h                  ; b0 21
    72397208    mov dx, 00080h                            ; ba 80 00
    72407209    out DX, AL                                ; ee
    7241     jmp short 050ddh                          ; eb e9
     7210    jmp short 05096h                          ; eb e9
    72427211    test bx, bx                               ; 85 db
    7243     jne short 050feh                          ; 75 06
     7212    jne short 050b7h                          ; 75 06
    72447213    mov ax, strict word 00015h                ; b8 15 00
    7245     call 04fdbh                               ; e8 dd fe
     7214    call 04f94h                               ; e8 dd fe
    72467215    mov dx, strict word 00060h                ; ba 60 00
    72477216    in AL, DX                                 ; ec
     
    72497218    ; sub ah, ah                                ; 2a e4
    72507219    cmp ax, 000fah                            ; 3d fa 00
    7251     je short 0510fh                           ; 74 06
     7220    je short 050c8h                           ; 74 06
    72527221    mov ax, 003e1h                            ; b8 e1 03
    7253     call 04fdbh                               ; e8 cc fe
     7222    call 04f94h                               ; e8 cc fe
    72547223    mov dx, strict word 00064h                ; ba 64 00
    72557224    in AL, DX                                 ; ec
     
    72577226    ; sub ah, ah                                ; 2a e4
    72587227    test AL, strict byte 001h                 ; a8 01
    7259     jne short 05121h                          ; 75 08
     7228    jne short 050dah                          ; 75 08
    72607229    mov AL, strict byte 031h                  ; b0 31
    72617230    mov dx, 00080h                            ; ba 80 00
    72627231    out DX, AL                                ; ee
    7263     jmp short 0510fh                          ; eb ee
     7232    jmp short 050c8h                          ; eb ee
    72647233    mov dx, strict word 00060h                ; ba 60 00
    72657234    in AL, DX                                 ; ec
     
    72677236    ; sub ah, ah                                ; 2a e4
    72687237    cmp ax, 000aah                            ; 3d aa 00
    7269     je short 0513ah                           ; 74 0e
     7238    je short 050f3h                           ; 74 0e
    72707239    in AL, DX                                 ; ec
    72717240    db  02ah, 0e4h
    72727241    ; sub ah, ah                                ; 2a e4
    72737242    cmp ax, 000aah                            ; 3d aa 00
    7274     je short 0513ah                           ; 74 06
     7243    je short 050f3h                           ; 74 06
    72757244    mov ax, 003e2h                            ; b8 e2 03
    7276     call 04fdbh                               ; e8 a1 fe
     7245    call 04f94h                               ; e8 a1 fe
    72777246    mov AL, strict byte 0f5h                  ; b0 f5
    72787247    mov dx, strict word 00060h                ; ba 60 00
     
    72847253    ; sub ah, ah                                ; 2a e4
    72857254    test AL, strict byte 002h                 ; a8 02
    7286     je short 0515ah                           ; 74 0d
     7255    je short 05113h                           ; 74 0d
    72877256    dec bx                                    ; 4b
    72887257    test bx, bx                               ; 85 db
    7289     jbe short 0515ah                          ; 76 08
     7258    jbe short 05113h                          ; 76 08
    72907259    mov AL, strict byte 040h                  ; b0 40
    72917260    mov dx, 00080h                            ; ba 80 00
    72927261    out DX, AL                                ; ee
    7293     jmp short 05143h                          ; eb e9
     7262    jmp short 050fch                          ; eb e9
    72947263    test bx, bx                               ; 85 db
    7295     jne short 05164h                          ; 75 06
     7264    jne short 0511dh                          ; 75 06
    72967265    mov ax, strict word 00028h                ; b8 28 00
    7297     call 04fdbh                               ; e8 77 fe
     7266    call 04f94h                               ; e8 77 fe
    72987267    mov bx, strict word 0ffffh                ; bb ff ff
    72997268    mov dx, strict word 00064h                ; ba 64 00
     
    73027271    ; sub ah, ah                                ; 2a e4
    73037272    test AL, strict byte 001h                 ; a8 01
    7304     jne short 0517eh                          ; 75 0d
     7273    jne short 05137h                          ; 75 0d
    73057274    dec bx                                    ; 4b
    73067275    test bx, bx                               ; 85 db
    7307     jbe short 0517eh                          ; 76 08
     7276    jbe short 05137h                          ; 76 08
    73087277    mov AL, strict byte 041h                  ; b0 41
    73097278    mov dx, 00080h                            ; ba 80 00
    73107279    out DX, AL                                ; ee
    7311     jmp short 05167h                          ; eb e9
     7280    jmp short 05120h                          ; eb e9
    73127281    test bx, bx                               ; 85 db
    7313     jne short 05188h                          ; 75 06
     7282    jne short 05141h                          ; 75 06
    73147283    mov ax, strict word 00029h                ; b8 29 00
    7315     call 04fdbh                               ; e8 53 fe
     7284    call 04f94h                               ; e8 53 fe
    73167285    mov dx, strict word 00060h                ; ba 60 00
    73177286    in AL, DX                                 ; ec
     
    73197288    ; sub ah, ah                                ; 2a e4
    73207289    cmp ax, 000fah                            ; 3d fa 00
    7321     je short 05199h                           ; 74 06
     7290    je short 05152h                           ; 74 06
    73227291    mov ax, 003e3h                            ; b8 e3 03
    7323     call 04fdbh                               ; e8 42 fe
     7292    call 04f94h                               ; e8 42 fe
    73247293    mov AL, strict byte 060h                  ; b0 60
    73257294    mov dx, strict word 00064h                ; ba 64 00
     
    73317300    ; sub ah, ah                                ; 2a e4
    73327301    test AL, strict byte 002h                 ; a8 02
    7333     je short 051b9h                           ; 74 0d
     7302    je short 05172h                           ; 74 0d
    73347303    dec bx                                    ; 4b
    73357304    test bx, bx                               ; 85 db
    7336     jbe short 051b9h                          ; 76 08
     7305    jbe short 05172h                          ; 76 08
    73377306    mov AL, strict byte 050h                  ; b0 50
    73387307    mov dx, 00080h                            ; ba 80 00
    73397308    out DX, AL                                ; ee
    7340     jmp short 051a2h                          ; eb e9
     7309    jmp short 0515bh                          ; eb e9
    73417310    test bx, bx                               ; 85 db
    7342     jne short 051c3h                          ; 75 06
     7311    jne short 0517ch                          ; 75 06
    73437312    mov ax, strict word 00032h                ; b8 32 00
    7344     call 04fdbh                               ; e8 18 fe
     7313    call 04f94h                               ; e8 18 fe
    73457314    mov AL, strict byte 065h                  ; b0 65
    73467315    mov dx, strict word 00060h                ; ba 60 00
     
    73527321    ; sub ah, ah                                ; 2a e4
    73537322    test AL, strict byte 002h                 ; a8 02
    7354     je short 051e3h                           ; 74 0d
     7323    je short 0519ch                           ; 74 0d
    73557324    dec bx                                    ; 4b
    73567325    test bx, bx                               ; 85 db
    7357     jbe short 051e3h                          ; 76 08
     7326    jbe short 0519ch                          ; 76 08
    73587327    mov AL, strict byte 060h                  ; b0 60
    73597328    mov dx, 00080h                            ; ba 80 00
    73607329    out DX, AL                                ; ee
    7361     jmp short 051cch                          ; eb e9
     7330    jmp short 05185h                          ; eb e9
    73627331    test bx, bx                               ; 85 db
    7363     jne short 051edh                          ; 75 06
     7332    jne short 051a6h                          ; 75 06
    73647333    mov ax, strict word 0003ch                ; b8 3c 00
    7365     call 04fdbh                               ; e8 ee fd
     7334    call 04f94h                               ; e8 ee fd
    73667335    mov AL, strict byte 0f4h                  ; b0 f4
    73677336    mov dx, strict word 00060h                ; ba 60 00
     
    73737342    ; sub ah, ah                                ; 2a e4
    73747343    test AL, strict byte 002h                 ; a8 02
    7375     je short 0520dh                           ; 74 0d
     7344    je short 051c6h                           ; 74 0d
    73767345    dec bx                                    ; 4b
    73777346    test bx, bx                               ; 85 db
    7378     jbe short 0520dh                          ; 76 08
     7347    jbe short 051c6h                          ; 76 08
    73797348    mov AL, strict byte 070h                  ; b0 70
    73807349    mov dx, 00080h                            ; ba 80 00
    73817350    out DX, AL                                ; ee
    7382     jmp short 051f6h                          ; eb e9
     7351    jmp short 051afh                          ; eb e9
    73837352    test bx, bx                               ; 85 db
    7384     jne short 05217h                          ; 75 06
     7353    jne short 051d0h                          ; 75 06
    73857354    mov ax, strict word 00046h                ; b8 46 00
    7386     call 04fdbh                               ; e8 c4 fd
     7355    call 04f94h                               ; e8 c4 fd
    73877356    mov bx, strict word 0ffffh                ; bb ff ff
    73887357    mov dx, strict word 00064h                ; ba 64 00
     
    73917360    ; sub ah, ah                                ; 2a e4
    73927361    test AL, strict byte 001h                 ; a8 01
    7393     jne short 05231h                          ; 75 0d
     7362    jne short 051eah                          ; 75 0d
    73947363    dec bx                                    ; 4b
    73957364    test bx, bx                               ; 85 db
    7396     jbe short 05231h                          ; 76 08
     7365    jbe short 051eah                          ; 76 08
    73977366    mov AL, strict byte 071h                  ; b0 71
    73987367    mov dx, 00080h                            ; ba 80 00
    73997368    out DX, AL                                ; ee
    7400     jmp short 0521ah                          ; eb e9
     7369    jmp short 051d3h                          ; eb e9
    74017370    test bx, bx                               ; 85 db
    7402     jne short 0523bh                          ; 75 06
     7371    jne short 051f4h                          ; 75 06
    74037372    mov ax, strict word 00046h                ; b8 46 00
    7404     call 04fdbh                               ; e8 a0 fd
     7373    call 04f94h                               ; e8 a0 fd
    74057374    mov dx, strict word 00060h                ; ba 60 00
    74067375    in AL, DX                                 ; ec
     
    74087377    ; sub ah, ah                                ; 2a e4
    74097378    cmp ax, 000fah                            ; 3d fa 00
    7410     je short 0524ch                           ; 74 06
     7379    je short 05205h                           ; 74 06
    74117380    mov ax, 003e4h                            ; b8 e4 03
    7412     call 04fdbh                               ; e8 8f fd
     7381    call 04f94h                               ; e8 8f fd
    74137382    mov AL, strict byte 0a8h                  ; b0 a8
    74147383    mov dx, strict word 00064h                ; ba 64 00
    74157384    out DX, AL                                ; ee
    74167385    xor ax, ax                                ; 31 c0
    7417     call 06713h                               ; e8 bc 14
     7386    call 066bch                               ; e8 ac 14
    74187387    mov sp, bp                                ; 89 ec
    74197388    pop bp                                    ; 5d
    74207389    retn                                      ; c3
    7421 enqueue_key_:                                ; 0xf525b LB 0x9e
     7390enqueue_key_:                                ; 0xf5214 LB 0x9e
    74227391    push bp                                   ; 55
    74237392    mov bp, sp                                ; 89 e5
     
    74317400    mov dx, strict word 0001ah                ; ba 1a 00
    74327401    mov ax, strict word 00040h                ; b8 40 00
    7433     call 0166eh                               ; e8 fd c3
     7402    call 0166eh                               ; e8 44 c4
    74347403    mov di, ax                                ; 89 c7
    74357404    mov dx, strict word 0001ch                ; ba 1c 00
    74367405    mov ax, strict word 00040h                ; b8 40 00
    7437     call 0166eh                               ; e8 f2 c3
     7406    call 0166eh                               ; e8 39 c4
    74387407    mov si, ax                                ; 89 c6
    74397408    lea cx, [si+002h]                         ; 8d 4c 02
    74407409    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7441     jc short 05289h                           ; 72 03
     7410    jc short 05242h                           ; 72 03
    74427411    mov cx, strict word 0001eh                ; b9 1e 00
    74437412    cmp cx, di                                ; 39 f9
    7444     jne short 05291h                          ; 75 04
     7413    jne short 0524ah                          ; 75 04
    74457414    xor ax, ax                                ; 31 c0
    7446     jmp short 052bbh                          ; eb 2a
     7415    jmp short 05274h                          ; eb 2a
    74477416    mov al, bl                                ; 88 d8
    74487417    xor ah, ah                                ; 30 e4
     
    74507419    mov dx, si                                ; 89 f2
    74517420    mov ax, strict word 00040h                ; b8 40 00
    7452     call 01660h                               ; e8 c1 c3
     7421    call 01660h                               ; e8 08 c4
    74537422    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    74547423    xor bh, bh                                ; 30 ff
    74557424    lea dx, [si+001h]                         ; 8d 54 01
    74567425    mov ax, strict word 00040h                ; b8 40 00
    7457     call 01660h                               ; e8 b3 c3
     7426    call 01660h                               ; e8 fa c3
    74587427    mov bx, cx                                ; 89 cb
    74597428    mov dx, strict word 0001ch                ; ba 1c 00
    74607429    mov ax, strict word 00040h                ; b8 40 00
    7461     call 0167ch                               ; e8 c4 c3
     7430    call 0167ch                               ; e8 0b c4
    74627431    mov ax, strict word 00001h                ; b8 01 00
    74637432    lea sp, [bp-008h]                         ; 8d 66 f8
     
    74787447    cmp bh, byte [bx+si]                      ; 3a 38
    74797448    sub bl, byte [ss:di]                      ; 36 2a 1d
    7480     aas                                       ; 3f
    7481     push si                                   ; 56
     7449    clc                                       ; f8
     7450    push bp                                   ; 55
     7451    mov BL, strict byte 053h                  ; b3 53
     7452    push bx                                   ; 53
     7453    push bx                                   ; 53
     7454    push bx                                   ; 53
     7455    push bx                                   ; 53
     7456    inc dx                                    ; 42
     7457    push sp                                   ; 54
     7458    and AL, strict byte 053h                  ; 24 53
     7459    db  0c6h, 054h, 037h, 055h
     7460    ; mov byte [si+037h], 055h                  ; c6 54 37 55
     7461    ficom word [di-044h]                      ; de 55 bc
     7462    push bp                                   ; 55
    74827463    cli                                       ; fa
    74837464    push bx                                   ; 53
    7484     call far 08953h:09a53h                    ; 9a 53 9a 53 89
    7485     push sp                                   ; 54
    7486     imul dx, word [bp+di+00dh], strict byte 00055h ; 6b 53 0d 55
    7487     jle short 0533ah                          ; 7e 55
    7488     and ax, 00356h                            ; 25 56 03
    7489     push si                                   ; 56
    7490     inc cx                                    ; 41
    7491     push sp                                   ; 54
    7492     call far 0cb53h:09a53h                    ; 9a 53 9a 53 cb
    7493     push sp                                   ; 54
    7494     mov dx, word [bp+di+05eh]                 ; 8b 53 5e
     7465    push bx                                   ; 53
     7466    push bx                                   ; 53
     7467    push bx                                   ; 53
     7468    push bx                                   ; 53
     7469    test byte [si+044h], dl                   ; 84 54 44
     7470    push bx                                   ; 53
     7471    pop SS                                    ; 17
    74957472    push bp                                   ; 55
    7496     jcxz 0534ch                               ; e3 55
    7497     push DS                                   ; 1e
    7498     push si                                   ; 56
    7499 _int09_function:                             ; 0xf52f9 LB 0x4cd
     7473    pushfw                                    ; 9c
     7474    push bp                                   ; 55
     7475    xlatb                                     ; d7
     7476    push bp                                   ; 55
     7477_int09_function:                             ; 0xf52b2 LB 0x4cd
    75007478    push bp                                   ; 55
    75017479    mov bp, sp                                ; 89 e5
     
    75057483    mov byte [bp-004h], al                    ; 88 46 fc
    75067484    test al, al                               ; 84 c0
    7507     jne short 05326h                          ; 75 1c
     7485    jne short 052dfh                          ; 75 1c
    75087486    mov bx, 00da0h                            ; bb a0 0d
    75097487    mov cx, ds                                ; 8c d9
    75107488    mov ax, strict word 00004h                ; b8 04 00
    7511     call 01933h                               ; e8 1e c6
     7489    call 01933h                               ; e8 65 c6
    75127490    mov ax, 00587h                            ; b8 87 05
    75137491    push ax                                   ; 50
    75147492    mov ax, strict word 00004h                ; b8 04 00
    75157493    push ax                                   ; 50
    7516     call 01976h                               ; e8 56 c6
     7494    call 01976h                               ; e8 9d c6
    75177495    add sp, strict byte 00004h                ; 83 c4 04
    7518     jmp near 053f4h                           ; e9 ce 00
     7496    jmp near 053adh                           ; e9 ce 00
    75197497    mov dx, strict word 00018h                ; ba 18 00
    75207498    mov ax, strict word 00040h                ; b8 40 00
    7521     call 01652h                               ; e8 23 c3
     7499    call 01652h                               ; e8 6a c3
    75227500    mov byte [bp-006h], al                    ; 88 46 fa
    75237501    mov byte [bp-008h], al                    ; 88 46 f8
    75247502    mov dx, 00096h                            ; ba 96 00
    75257503    mov ax, strict word 00040h                ; b8 40 00
    7526     call 01652h                               ; e8 14 c3
     7504    call 01652h                               ; e8 5b c3
    75277505    mov byte [bp-00ah], al                    ; 88 46 f6
    75287506    mov byte [bp-010h], al                    ; 88 46 f0
    75297507    mov dx, strict word 00017h                ; ba 17 00
    75307508    mov ax, strict word 00040h                ; b8 40 00
    7531     call 01652h                               ; e8 05 c3
     7509    call 01652h                               ; e8 4c c3
    75327510    mov byte [bp-00ch], al                    ; 88 46 f4
    75337511    mov byte [bp-00eh], al                    ; 88 46 f2
     
    75367514    pop ES                                    ; 07
    75377515    mov cx, strict word 00012h                ; b9 12 00
    7538     mov di, 052c4h                            ; bf c4 52
     7516    mov di, 0527dh                            ; bf 7d 52
    75397517    repne scasb                               ; f2 ae
    75407518    sal cx, 1                                 ; d1 e1
    75417519    mov di, cx                                ; 89 cf
    7542     mov ax, word [cs:di+052d5h]               ; 2e 8b 85 d5 52
     7520    mov ax, word [cs:di+0528eh]               ; 2e 8b 85 8e 52
    75437521    jmp ax                                    ; ff e0
    75447522    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    75477525    mov dx, strict word 00017h                ; ba 17 00
    75487526    mov ax, strict word 00040h                ; b8 40 00
    7549     call 01660h                               ; e8 e3 c2
     7527    call 01660h                               ; e8 2a c3
    75507528    or byte [bp-008h], 040h                   ; 80 4e f8 40
    75517529    mov al, byte [bp-008h]                    ; 8a 46 f8
    75527530    xor ah, ah                                ; 30 e4
    75537531    mov bx, ax                                ; 89 c3
    7554     jmp near 05613h                           ; e9 88 02
     7532    jmp near 055cch                           ; e9 88 02
    75557533    mov al, byte [bp-006h]                    ; 8a 46 fa
    75567534    and AL, strict byte 0bfh                  ; 24 bf
     
    75587536    mov bl, al                                ; 88 c3
    75597537    xor bh, bh                                ; 30 ff
    7560     jmp near 05613h                           ; e9 79 02
     7538    jmp near 055cch                           ; e9 79 02
    75617539    test byte [bp-010h], 002h                 ; f6 46 f0 02
    7562     jne short 053d3h                          ; 75 33
     7540    jne short 0538ch                          ; 75 33
    75637541    mov al, byte [bp-004h]                    ; 8a 46 fc
    75647542    and AL, strict byte 07fh                  ; 24 7f
    75657543    cmp AL, strict byte 02ah                  ; 3c 2a
    7566     jne short 053aeh                          ; 75 05
     7544    jne short 05367h                          ; 75 05
    75677545    mov bx, strict word 00002h                ; bb 02 00
    7568     jmp short 053b1h                          ; eb 03
     7546    jmp short 0536ah                          ; eb 03
    75697547    mov bx, strict word 00001h                ; bb 01 00
    75707548    test byte [bp-004h], 080h                 ; f6 46 fc 80
    7571     je short 053c0h                           ; 74 09
     7549    je short 05379h                           ; 74 09
    75727550    mov al, bl                                ; 88 d8
    75737551    not al                                    ; f6 d0
    75747552    and byte [bp-00eh], al                    ; 20 46 f2
    7575     jmp short 053c3h                          ; eb 03
     7553    jmp short 0537ch                          ; eb 03
    75767554    or byte [bp-00eh], bl                     ; 08 5e f2
    75777555    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    75807558    mov dx, strict word 00017h                ; ba 17 00
    75817559    mov ax, strict word 00040h                ; b8 40 00
    7582     call 01660h                               ; e8 8d c2
     7560    call 01660h                               ; e8 d4 c2
    75837561    mov al, byte [bp-004h]                    ; 8a 46 fc
    75847562    and AL, strict byte 07fh                  ; 24 7f
    75857563    cmp AL, strict byte 01dh                  ; 3c 1d
    7586     je short 053e0h                           ; 74 04
     7564    je short 05399h                           ; 74 04
    75877565    and byte [bp-010h], 0feh                  ; 80 66 f0 fe
    75887566    and byte [bp-010h], 0fdh                  ; 80 66 f0 fd
     
    75927570    mov dx, 00096h                            ; ba 96 00
    75937571    mov ax, strict word 00040h                ; b8 40 00
    7594     call 01660h                               ; e8 6c c2
     7572    call 01660h                               ; e8 b3 c2
    75957573    lea sp, [bp-002h]                         ; 8d 66 fe
    75967574    pop di                                    ; 5f
     
    75987576    retn                                      ; c3
    75997577    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7600     jne short 053d3h                          ; 75 d3
     7578    jne short 0538ch                          ; 75 d3
    76017579    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76027580    or AL, strict byte 004h                   ; 0c 04
     
    76067584    mov dx, strict word 00017h                ; ba 17 00
    76077585    mov ax, strict word 00040h                ; b8 40 00
    7608     call 01660h                               ; e8 4b c2
     7586    call 01660h                               ; e8 92 c2
    76097587    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76107588    test AL, strict byte 002h                 ; a8 02
    7611     je short 0542ah                           ; 74 0e
     7589    je short 053e3h                           ; 74 0e
    76127590    or AL, strict byte 004h                   ; 0c 04
    76137591    mov byte [bp-010h], al                    ; 88 46 f0
     
    76157593    mov bx, ax                                ; 89 c3
    76167594    mov dx, 00096h                            ; ba 96 00
    7617     jmp short 05439h                          ; eb 0f
     7595    jmp short 053f2h                          ; eb 0f
    76187596    mov al, byte [bp-006h]                    ; 8a 46 fa
    76197597    or AL, strict byte 001h                   ; 0c 01
     
    76237601    mov dx, strict word 00018h                ; ba 18 00
    76247602    mov ax, strict word 00040h                ; b8 40 00
    7625     call 01660h                               ; e8 21 c2
    7626     jmp short 053d3h                          ; eb 92
     7603    call 01660h                               ; e8 68 c2
     7604    jmp short 0538ch                          ; eb 92
    76277605    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7628     jne short 053d3h                          ; 75 8c
     7606    jne short 0538ch                          ; 75 8c
    76297607    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76307608    and AL, strict byte 0fbh                  ; 24 fb
     
    76347612    mov dx, strict word 00017h                ; ba 17 00
    76357613    mov ax, strict word 00040h                ; b8 40 00
    7636     call 01660h                               ; e8 04 c2
     7614    call 01660h                               ; e8 4b c2
    76377615    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76387616    test AL, strict byte 002h                 ; a8 02
    7639     je short 05471h                           ; 74 0e
     7617    je short 0542ah                           ; 74 0e
    76407618    and AL, strict byte 0fbh                  ; 24 fb
    76417619    mov byte [bp-010h], al                    ; 88 46 f0
     
    76437621    mov bx, ax                                ; 89 c3
    76447622    mov dx, 00096h                            ; ba 96 00
    7645     jmp short 05480h                          ; eb 0f
     7623    jmp short 05439h                          ; eb 0f
    76467624    mov al, byte [bp-006h]                    ; 8a 46 fa
    76477625    and AL, strict byte 0feh                  ; 24 fe
     
    76517629    mov dx, strict word 00018h                ; ba 18 00
    76527630    mov ax, strict word 00040h                ; b8 40 00
    7653     call 01660h                               ; e8 da c1
    7654     jmp near 053d3h                           ; e9 4a ff
     7631    call 01660h                               ; e8 21 c2
     7632    jmp near 0538ch                           ; e9 4a ff
    76557633    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76567634    or AL, strict byte 008h                   ; 0c 08
     
    76607638    mov dx, strict word 00017h                ; ba 17 00
    76617639    mov ax, strict word 00040h                ; b8 40 00
    7662     call 01660h                               ; e8 c2 c1
     7640    call 01660h                               ; e8 09 c2
    76637641    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76647642    test AL, strict byte 002h                 ; a8 02
    7665     je short 054b3h                           ; 74 0e
     7643    je short 0546ch                           ; 74 0e
    76667644    or AL, strict byte 008h                   ; 0c 08
    76677645    mov byte [bp-010h], al                    ; 88 46 f0
     
    76697647    mov bx, ax                                ; 89 c3
    76707648    mov dx, 00096h                            ; ba 96 00
    7671     jmp short 054c2h                          ; eb 0f
     7649    jmp short 0547bh                          ; eb 0f
    76727650    mov al, byte [bp-006h]                    ; 8a 46 fa
    76737651    or AL, strict byte 002h                   ; 0c 02
     
    76777655    mov dx, strict word 00018h                ; ba 18 00
    76787656    mov ax, strict word 00040h                ; b8 40 00
    7679     call 01660h                               ; e8 98 c1
    7680     jmp near 053d3h                           ; e9 08 ff
     7657    call 01660h                               ; e8 df c1
     7658    jmp near 0538ch                           ; e9 08 ff
    76817659    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76827660    and AL, strict byte 0f7h                  ; 24 f7
     
    76867664    mov dx, strict word 00017h                ; ba 17 00
    76877665    mov ax, strict word 00040h                ; b8 40 00
    7688     call 01660h                               ; e8 80 c1
     7666    call 01660h                               ; e8 c7 c1
    76897667    mov al, byte [bp-00ah]                    ; 8a 46 f6
    76907668    test AL, strict byte 002h                 ; a8 02
    7691     je short 054f5h                           ; 74 0e
     7669    je short 054aeh                           ; 74 0e
    76927670    and AL, strict byte 0f7h                  ; 24 f7
    76937671    mov byte [bp-010h], al                    ; 88 46 f0
     
    76957673    mov bx, ax                                ; 89 c3
    76967674    mov dx, 00096h                            ; ba 96 00
    7697     jmp short 05504h                          ; eb 0f
     7675    jmp short 054bdh                          ; eb 0f
    76987676    mov al, byte [bp-006h]                    ; 8a 46 fa
    76997677    and AL, strict byte 0fdh                  ; 24 fd
     
    77037681    mov dx, strict word 00018h                ; ba 18 00
    77047682    mov ax, strict word 00040h                ; b8 40 00
    7705     call 01660h                               ; e8 56 c1
    7706     jmp near 053d3h                           ; e9 c6 fe
     7683    call 01660h                               ; e8 9d c1
     7684    jmp near 0538ch                           ; e9 c6 fe
    77077685    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7708     jne short 05530h                          ; 75 1d
     7686    jne short 054e9h                          ; 75 1d
    77097687    mov al, byte [bp-006h]                    ; 8a 46 fa
    77107688    or AL, strict byte 020h                   ; 0c 20
     
    77147692    mov dx, strict word 00018h                ; ba 18 00
    77157693    mov ax, strict word 00040h                ; b8 40 00
    7716     call 01660h                               ; e8 38 c1
     7694    call 01660h                               ; e8 7f c1
    77177695    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77187696    xor AL, strict byte 020h                  ; 34 20
    7719     jmp near 055d1h                           ; e9 a1 00
     7697    jmp near 0558ah                           ; e9 a1 00
    77207698    mov al, byte [bp-006h]                    ; 8a 46 fa
    77217699    or AL, strict byte 008h                   ; 0c 08
     
    77257703    mov dx, strict word 00018h                ; ba 18 00
    77267704    mov ax, strict word 00040h                ; b8 40 00
    7727     call 01660h                               ; e8 1b c1
     7705    call 01660h                               ; e8 62 c1
    77287706    mov AL, strict byte 0aeh                  ; b0 ae
    77297707    mov dx, strict word 00064h                ; ba 64 00
    77307708    out DX, AL                                ; ee
    7731     call 0e034h                               ; e8 e6 8a
     7709    call 0e034h                               ; e8 2d 8b
    77327710    mov dx, strict word 00018h                ; ba 18 00
    77337711    mov ax, strict word 00040h                ; b8 40 00
    7734     call 01652h                               ; e8 fb c0
     7712    call 01652h                               ; e8 42 c1
    77357713    test AL, strict byte 008h                 ; a8 08
    7736     jne short 0554eh                          ; 75 f3
    7737     jmp near 053d3h                           ; e9 75 fe
     7714    jne short 05507h                          ; 75 f3
     7715    jmp near 0538ch                           ; e9 75 fe
    77387716    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7739     je short 05567h                           ; 74 03
    7740     jmp near 053d3h                           ; e9 6c fe
     7717    je short 05520h                           ; 74 03
     7718    jmp near 0538ch                           ; e9 6c fe
    77417719    mov al, byte [bp-006h]                    ; 8a 46 fa
    77427720    and AL, strict byte 0dfh                  ; 24 df
     
    77467724    mov dx, strict word 00018h                ; ba 18 00
    77477725    mov ax, strict word 00040h                ; b8 40 00
    7748     call 01660h                               ; e8 e4 c0
    7749     jmp short 05564h                          ; eb e6
     7726    call 01660h                               ; e8 2b c1
     7727    jmp short 0551dh                          ; eb e6
    77507728    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7751     je short 055b7h                           ; 74 33
     7729    je short 05570h                           ; 74 33
    77527730    mov dx, strict word 0001ah                ; ba 1a 00
    77537731    mov ax, strict word 00040h                ; b8 40 00
    7754     call 0166eh                               ; e8 e1 c0
     7732    call 0166eh                               ; e8 28 c1
    77557733    mov bx, ax                                ; 89 c3
    77567734    mov dx, strict word 0001ch                ; ba 1c 00
    77577735    mov ax, strict word 00040h                ; b8 40 00
    7758     call 0167ch                               ; e8 e4 c0
     7736    call 0167ch                               ; e8 2b c1
    77597737    mov bx, 00080h                            ; bb 80 00
    77607738    mov dx, strict word 00071h                ; ba 71 00
    77617739    mov ax, strict word 00040h                ; b8 40 00
    7762     call 01660h                               ; e8 bc c0
     7740    call 01660h                               ; e8 03 c1
    77637741    mov AL, strict byte 0aeh                  ; b0 ae
    77647742    mov dx, strict word 00064h                ; ba 64 00
     
    77697747    xor dx, dx                                ; 31 d2
    77707748    xor ax, ax                                ; 31 c0
    7771     call 0525bh                               ; e8 a6 fc
    7772     jmp short 05564h                          ; eb ad
     7749    call 05214h                               ; e8 a6 fc
     7750    jmp short 0551dh                          ; eb ad
    77737751    mov al, byte [bp-006h]                    ; 8a 46 fa
    77747752    or AL, strict byte 010h                   ; 0c 10
     
    77787756    mov dx, strict word 00018h                ; ba 18 00
    77797757    mov ax, strict word 00040h                ; b8 40 00
    7780     call 01660h                               ; e8 94 c0
     7758    call 01660h                               ; e8 db c0
    77817759    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77827760    xor AL, strict byte 010h                  ; 34 10
     
    77867764    mov dx, strict word 00017h                ; ba 17 00
    77877765    mov ax, strict word 00040h                ; b8 40 00
    7788     call 01660h                               ; e8 7f c0
    7789     jmp short 05564h                          ; eb 81
     7766    call 01660h                               ; e8 c6 c0
     7767    jmp short 0551dh                          ; eb 81
    77907768    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7791     je short 055ech                           ; 74 03
    7792     jmp near 053d3h                           ; e9 e7 fd
     7769    je short 055a5h                           ; 74 03
     7770    jmp near 0538ch                           ; e9 e7 fd
    77937771    mov al, byte [bp-006h]                    ; 8a 46 fa
    77947772    and AL, strict byte 0efh                  ; 24 ef
     
    77987776    mov dx, strict word 00018h                ; ba 18 00
    77997777    mov ax, strict word 00040h                ; b8 40 00
    7800     call 01660h                               ; e8 5f c0
    7801     jmp short 055e9h                          ; eb e6
     7778    call 01660h                               ; e8 a6 c0
     7779    jmp short 055a2h                          ; eb e6
    78027780    mov al, byte [bp-006h]                    ; 8a 46 fa
    78037781    test AL, strict byte 004h                 ; a8 04
    7804     jne short 055e9h                          ; 75 df
     7782    jne short 055a2h                          ; 75 df
    78057783    or AL, strict byte 004h                   ; 0c 04
    78067784    mov byte [bp-008h], al                    ; 88 46 f8
     
    78097787    mov dx, strict word 00018h                ; ba 18 00
    78107788    mov ax, strict word 00040h                ; b8 40 00
    7811     call 01660h                               ; e8 44 c0
    7812     jmp short 055e9h                          ; eb cb
     7789    call 01660h                               ; e8 8b c0
     7790    jmp short 055a2h                          ; eb cb
    78137791    mov al, byte [bp-006h]                    ; 8a 46 fa
    78147792    and AL, strict byte 0fbh                  ; 24 fb
    7815     jmp short 0560ch                          ; eb e7
     7793    jmp short 055c5h                          ; eb e7
    78167794    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78177795    and AL, strict byte 00ch                  ; 24 0c
    78187796    cmp AL, strict byte 00ch                  ; 3c 0c
    7819     jne short 0563fh                          ; 75 11
     7797    jne short 055f8h                          ; 75 11
    78207798    mov bx, 01234h                            ; bb 34 12
    78217799    mov dx, strict word 00072h                ; ba 72 00
    78227800    mov ax, strict word 00040h                ; b8 40 00
    7823     call 0167ch                               ; e8 42 c0
     7801    call 0167ch                               ; e8 89 c0
    78247802    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    78257803    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7826     je short 05656h                           ; 74 11
     7804    je short 0560fh                           ; 74 11
    78277805    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    78287806    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    78307808    mov bx, ax                                ; 89 c3
    78317809    mov dx, strict word 00018h                ; ba 18 00
    7832     jmp near 053eeh                           ; e9 98 fd
     7810    jmp near 053a7h                           ; e9 98 fd
    78337811    mov al, byte [bp-004h]                    ; 8a 46 fc
    78347812    test AL, strict byte 080h                 ; a8 80
    7835     je short 05694h                           ; 74 37
     7813    je short 0564dh                           ; 74 37
    78367814    cmp AL, strict byte 0fah                  ; 3c fa
    7837     jne short 05673h                          ; 75 12
     7815    jne short 0562ch                          ; 75 12
    78387816    mov dx, 00097h                            ; ba 97 00
    78397817    mov ax, strict word 00040h                ; b8 40 00
    7840     call 01652h                               ; e8 e8 bf
     7818    call 01652h                               ; e8 2f c0
    78417819    mov bl, al                                ; 88 c3
    78427820    or bl, 010h                               ; 80 cb 10
    78437821    xor bh, bh                                ; 30 ff
    7844     jmp short 05689h                          ; eb 16
     7822    jmp short 05642h                          ; eb 16
    78457823    cmp AL, strict byte 0feh                  ; 3c fe
    7846     je short 0567ah                           ; 74 03
    7847     jmp near 053d3h                           ; e9 59 fd
     7824    je short 05633h                           ; 74 03
     7825    jmp near 0538ch                           ; e9 59 fd
    78487826    mov dx, 00097h                            ; ba 97 00
    78497827    mov ax, strict word 00040h                ; b8 40 00
    7850     call 01652h                               ; e8 cf bf
     7828    call 01652h                               ; e8 16 c0
    78517829    or AL, strict byte 020h                   ; 0c 20
    78527830    xor ah, ah                                ; 30 e4
     
    78547832    mov dx, 00097h                            ; ba 97 00
    78557833    mov ax, strict word 00040h                ; b8 40 00
    7856     call 01660h                               ; e8 ce bf
    7857     jmp short 05677h                          ; eb e3
     7834    call 01660h                               ; e8 15 c0
     7835    jmp short 05630h                          ; eb e3
    78587836    cmp byte [bp-004h], 058h                  ; 80 7e fc 58
    7859     jbe short 056bch                          ; 76 22
     7837    jbe short 05675h                          ; 76 22
    78607838    mov bx, 00da0h                            ; bb a0 0d
    78617839    mov cx, ds                                ; 8c d9
    78627840    mov ax, strict word 00004h                ; b8 04 00
    7863     call 01933h                               ; e8 8e c2
     7841    call 01933h                               ; e8 d5 c2
    78647842    mov al, byte [bp-004h]                    ; 8a 46 fc
    78657843    xor ah, ah                                ; 30 e4
     
    78697847    mov ax, strict word 00004h                ; b8 04 00
    78707848    push ax                                   ; 50
    7871     call 01976h                               ; e8 c0 c2
     7849    call 01976h                               ; e8 07 c3
    78727850    add sp, strict byte 00006h                ; 83 c4 06
    7873     jmp near 053f4h                           ; e9 38 fd
     7851    jmp near 053adh                           ; e9 38 fd
    78747852    mov al, byte [bp-00eh]                    ; 8a 46 f2
    78757853    test AL, strict byte 008h                 ; a8 08
    7876     je short 056ddh                           ; 74 1a
     7854    je short 05696h                           ; 74 1a
    78777855    mov al, byte [bp-004h]                    ; 8a 46 fc
    78787856    xor ah, ah                                ; 30 e4
     
    78837861    mov byte [bp-012h], al                    ; 88 46 ee
    78847862    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
    7885     jmp near 0578fh                           ; e9 b2 00
     7863    jmp near 05748h                           ; e9 b2 00
    78867864    test AL, strict byte 004h                 ; a8 04
    7887     je short 056fbh                           ; 74 1a
     7865    je short 056b4h                           ; 74 1a
    78887866    mov al, byte [bp-004h]                    ; 8a 46 fc
    78897867    xor ah, ah                                ; 30 e4
     
    78947872    mov byte [bp-012h], al                    ; 88 46 ee
    78957873    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
    7896     jmp near 0578fh                           ; e9 94 00
     7874    jmp near 05748h                           ; e9 94 00
    78977875    mov al, byte [bp-010h]                    ; 8a 46 f0
    78987876    and AL, strict byte 002h                  ; 24 02
    78997877    test al, al                               ; 84 c0
    7900     jbe short 0571eh                          ; 76 1a
     7878    jbe short 056d7h                          ; 76 1a
    79017879    mov al, byte [bp-004h]                    ; 8a 46 fc
    79027880    cmp AL, strict byte 047h                  ; 3c 47
    7903     jc short 0571eh                           ; 72 13
     7881    jc short 056d7h                           ; 72 13
    79047882    cmp AL, strict byte 053h                  ; 3c 53
    7905     jnbe short 0571eh                         ; 77 0f
     7883    jnbe short 056d7h                         ; 77 0f
    79067884    mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
    79077885    xor ah, ah                                ; 30 e4
     
    79097887    imul dx                                   ; f7 ea
    79107888    mov bx, ax                                ; 89 c3
    7911     jmp short 0578bh                          ; eb 6d
     7889    jmp short 05744h                          ; eb 6d
    79127890    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7913     je short 0575ch                           ; 74 38
     7891    je short 05715h                           ; 74 38
    79147892    mov al, byte [bp-004h]                    ; 8a 46 fc
    79157893    xor ah, ah                                ; 30 e4
     
    79227900    mov al, byte [bp-00eh]                    ; 8a 46 f2
    79237901    test ax, dx                               ; 85 d0
    7924     je short 0574ch                           ; 74 0d
     7902    je short 05705h                           ; 74 0d
    79257903    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    79267904    mov byte [bp-012h], al                    ; 88 46 ee
    79277905    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
    7928     jmp short 05757h                          ; eb 0b
     7906    jmp short 05710h                          ; eb 0b
    79297907    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    79307908    mov byte [bp-012h], al                    ; 88 46 ee
    79317909    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    79327910    mov byte [bp-004h], al                    ; 88 46 fc
    7933     jmp short 05792h                          ; eb 36
     7911    jmp short 0574bh                          ; eb 36
    79347912    mov al, byte [bp-004h]                    ; 8a 46 fc
    79357913    xor ah, ah                                ; 30 e4
     
    79427920    mov al, byte [bp-00eh]                    ; 8a 46 f2
    79437921    test ax, dx                               ; 85 d0
    7944     je short 05784h                           ; 74 0d
     7922    je short 0573dh                           ; 74 0d
    79457923    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    79467924    mov byte [bp-012h], al                    ; 88 46 ee
    79477925    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    7948     jmp short 0578fh                          ; eb 0b
     7926    jmp short 05748h                          ; eb 0b
    79497927    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    79507928    mov byte [bp-012h], al                    ; 88 46 ee
     
    79527930    mov byte [bp-004h], al                    ; 88 46 fc
    79537931    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7954     jne short 057b7h                          ; 75 1f
     7932    jne short 05770h                          ; 75 1f
    79557933    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    7956     jne short 057b7h                          ; 75 19
     7934    jne short 05770h                          ; 75 19
    79577935    mov bx, 00da0h                            ; bb a0 0d
    79587936    mov cx, ds                                ; 8c d9
    79597937    mov ax, strict word 00004h                ; b8 04 00
    7960     call 01933h                               ; e8 8a c1
     7938    call 01933h                               ; e8 d1 c1
    79617939    mov ax, 005d8h                            ; b8 d8 05
    79627940    push ax                                   ; 50
    79637941    mov ax, strict word 00004h                ; b8 04 00
    79647942    push ax                                   ; 50
    7965     call 01976h                               ; e8 c2 c1
     7943    call 01976h                               ; e8 09 c2
    79667944    add sp, strict byte 00004h                ; 83 c4 04
    79677945    mov bl, byte [bp-012h]                    ; 8a 5e ee
     
    79707948    xor ah, ah                                ; 30 e4
    79717949    mov dx, bx                                ; 89 da
    7972     jmp near 055b2h                           ; e9 ec fd
    7973 dequeue_key_:                                ; 0xf57c6 LB 0x94
     7950    jmp near 0556bh                           ; e9 ec fd
     7951dequeue_key_:                                ; 0xf577f LB 0x94
    79747952    push bp                                   ; 55
    79757953    mov bp, sp                                ; 89 e5
     
    79847962    mov dx, strict word 0001ah                ; ba 1a 00
    79857963    mov ax, strict word 00040h                ; b8 40 00
    7986     call 0166eh                               ; e8 8e be
     7964    call 0166eh                               ; e8 d5 be
    79877965    mov bx, ax                                ; 89 c3
    79887966    mov dx, strict word 0001ch                ; ba 1c 00
    79897967    mov ax, strict word 00040h                ; b8 40 00
    7990     call 0166eh                               ; e8 83 be
     7968    call 0166eh                               ; e8 ca be
    79917969    cmp bx, ax                                ; 39 c3
    7992     je short 0582ch                           ; 74 3d
     7970    je short 057e5h                           ; 74 3d
    79937971    mov dx, bx                                ; 89 da
    79947972    mov ax, strict word 00040h                ; b8 40 00
    7995     call 01652h                               ; e8 5b be
     7973    call 01652h                               ; e8 a2 be
    79967974    mov cl, al                                ; 88 c1
    79977975    lea dx, [bx+001h]                         ; 8d 57 01
    79987976    mov ax, strict word 00040h                ; b8 40 00
    7999     call 01652h                               ; e8 50 be
     7977    call 01652h                               ; e8 97 be
    80007978    mov es, [bp-008h]                         ; 8e 46 f8
    80017979    mov byte [es:si], cl                      ; 26 88 0c
     
    80037981    mov byte [es:di], al                      ; 26 88 05
    80047982    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    8005     je short 05827h                           ; 74 13
     7983    je short 057e0h                           ; 74 13
    80067984    inc bx                                    ; 43
    80077985    inc bx                                    ; 43
    80087986    cmp bx, strict byte 0003eh                ; 83 fb 3e
    8009     jc short 0581eh                           ; 72 03
     7987    jc short 057d7h                           ; 72 03
    80107988    mov bx, strict word 0001eh                ; bb 1e 00
    80117989    mov dx, strict word 0001ah                ; ba 1a 00
    80127990    mov ax, strict word 00040h                ; b8 40 00
    8013     call 0167ch                               ; e8 55 be
     7991    call 0167ch                               ; e8 9c be
    80147992    mov ax, strict word 00001h                ; b8 01 00
    8015     jmp short 0582eh                          ; eb 02
     7993    jmp short 057e7h                          ; eb 02
    80167994    xor ax, ax                                ; 31 c0
    80177995    lea sp, [bp-004h]                         ; 8d 66 fc
     
    80248002    or cl, byte [bx+di]                       ; 0a 09
    80258003    add ax, 00102h                            ; 05 02 01
    8026     add byte [bx+si+059h], ah                 ; 00 60 59
    8027     sbb bx, word [bx+di-050h]                 ; 1b 59 b0
     8004    add byte [bx+di], bl                      ; 00 19
    80288005    pop cx                                    ; 59
    8029     hlt                                       ; f4
     8006    aam 058h                                  ; d4 58
     8007    imul bx, word [bx+di-053h], 0c059h        ; 69 59 ad 59 c0
    80308008    pop cx                                    ; 59
    8031     pop ES                                    ; 07
     8009    out 059h, ax                              ; e7 59
     8010    db  0f1h
     8011    pop cx                                    ; 59
     8012    pushaw                                    ; 60
    80328013    pop dx                                    ; 5a
    8033     db  02eh, 05ah
    8034     ; cs pop dx                                 ; 2e 5a
    8035     cmp byte [bp+si-059h], bl                 ; 38 5a a7
     8014    xchg di, ax                               ; 97
    80368015    pop dx                                    ; 5a
    8037     ficomp word [bp+si+00eh]                  ; de 5a 0e
    8038     pop bx                                    ; 5b
    8039     inc bp                                    ; 45
    8040     pop bx                                    ; 5b
    8041     stosb                                     ; aa
     8016    db  0c7h, 05ah, 0feh, 05ah, 063h
     8017    ; mov word [bp+si-002h], 0635ah             ; c7 5a fe 5a 63
    80428018    pop cx                                    ; 59
    8043 _int16_function:                             ; 0xf585a LB 0x2f6
     8019_int16_function:                             ; 0xf5813 LB 0x2f6
    80448020    push bp                                   ; 55
    80458021    mov bp, sp                                ; 89 e5
     
    80488024    mov dx, strict word 00017h                ; ba 17 00
    80498025    mov ax, strict word 00040h                ; b8 40 00
    8050     call 01652h                               ; e8 e8 bd
     8026    call 01652h                               ; e8 2f be
    80518027    mov cl, al                                ; 88 c1
    80528028    mov bh, al                                ; 88 c7
    80538029    mov dx, 00097h                            ; ba 97 00
    80548030    mov ax, strict word 00040h                ; b8 40 00
    8055     call 01652h                               ; e8 db bd
     8031    call 01652h                               ; e8 22 be
    80568032    mov bl, al                                ; 88 c3
    80578033    mov dl, cl                                ; 88 ca
     
    80648040    xor al, dl                                ; 30 d0
    80658041    test ax, ax                               ; 85 c0
    8066     je short 058fah                           ; 74 6c
     8042    je short 058b3h                           ; 74 6c
    80678043    cli                                       ; fa
    80688044    mov AL, strict byte 0edh                  ; b0 ed
     
    80748050    ; sub ah, ah                                ; 2a e4
    80758051    test AL, strict byte 001h                 ; a8 01
    8076     jne short 058a7h                          ; 75 08
     8052    jne short 05860h                          ; 75 08
    80778053    mov AL, strict byte 021h                  ; b0 21
    80788054    mov dx, 00080h                            ; ba 80 00
    80798055    out DX, AL                                ; ee
    8080     jmp short 05895h                          ; eb ee
     8056    jmp short 0584eh                          ; eb ee
    80818057    mov dx, strict word 00060h                ; ba 60 00
    80828058    in AL, DX                                 ; ec
     
    80848060    ; sub ah, ah                                ; 2a e4
    80858061    cmp ax, 000fah                            ; 3d fa 00
    8086     jne short 058f9h                          ; 75 47
     8062    jne short 058b2h                          ; 75 47
    80878063    and bl, 0c8h                              ; 80 e3 c8
    80888064    mov al, bh                                ; 88 f8
     
    81078083    ; sub ah, ah                                ; 2a e4
    81088084    test AL, strict byte 001h                 ; a8 01
    8109     jne short 058e8h                          ; 75 08
     8085    jne short 058a1h                          ; 75 08
    81108086    mov AL, strict byte 021h                  ; b0 21
    81118087    mov dx, 00080h                            ; ba 80 00
    81128088    out DX, AL                                ; ee
    8113     jmp short 058d6h                          ; eb ee
     8089    jmp short 0588fh                          ; eb ee
    81148090    mov dx, strict word 00060h                ; ba 60 00
    81158091    in AL, DX                                 ; ec
     
    81198095    mov dx, 00097h                            ; ba 97 00
    81208096    mov ax, strict word 00040h                ; b8 40 00
    8121     call 01660h                               ; e8 67 bd
     8097    call 01660h                               ; e8 ae bd
    81228098    sti                                       ; fb
    81238099    mov CL, strict byte 008h                  ; b1 08
     
    81258101    shr ax, CL                                ; d3 e8
    81268102    cmp ax, 000a2h                            ; 3d a2 00
    8127     jnbe short 05960h                         ; 77 5a
     8103    jnbe short 05919h                         ; 77 5a
    81288104    push CS                                   ; 0e
    81298105    pop ES                                    ; 07
    81308106    mov cx, strict word 0000ch                ; b9 0c 00
    8131     mov di, 05837h                            ; bf 37 58
     8107    mov di, 057f0h                            ; bf f0 57
    81328108    repne scasb                               ; f2 ae
    81338109    sal cx, 1                                 ; d1 e1
    81348110    mov di, cx                                ; 89 cf
    8135     mov ax, word [cs:di+05842h]               ; 2e 8b 85 42 58
     8111    mov ax, word [cs:di+057fbh]               ; 2e 8b 85 fb 57
    81368112    jmp ax                                    ; ff e0
    81378113    mov ax, strict word 00001h                ; b8 01 00
     
    81418117    mov dx, ss                                ; 8c d2
    81428118    lea ax, [bp-008h]                         ; 8d 46 f8
    8143     call 057c6h                               ; e8 9a fe
     8119    call 0577fh                               ; e8 9a fe
    81448120    test ax, ax                               ; 85 c0
    8145     jne short 0593eh                          ; 75 0e
     8121    jne short 058f7h                          ; 75 0e
    81468122    mov ax, 0060fh                            ; b8 0f 06
    81478123    push ax                                   ; 50
    81488124    mov ax, strict word 00007h                ; b8 07 00
    81498125    push ax                                   ; 50
    8150     call 01976h                               ; e8 3b c0
     8126    call 01976h                               ; e8 82 c0
    81518127    add sp, strict byte 00004h                ; 83 c4 04
    81528128    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8153     je short 0594ah                           ; 74 06
     8129    je short 05903h                           ; 74 06
    81548130    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8155     je short 05950h                           ; 74 06
     8131    je short 05909h                           ; 74 06
    81568132    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    8157     jne short 05954h                          ; 75 04
     8133    jne short 0590dh                          ; 75 04
    81588134    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    81598135    mov ah, byte [bp-008h]                    ; 8a 66 f8
    81608136    mov al, byte [bp-006h]                    ; 8a 46 fa
    81618137    mov word [bp+012h], ax                    ; 89 46 12
    8162     jmp near 059aah                           ; e9 4a 00
     8138    jmp near 05963h                           ; e9 4a 00
    81638139    mov bx, 00da0h                            ; bb a0 0d
    81648140    mov cx, ds                                ; 8c d9
    81658141    mov ax, strict word 00004h                ; b8 04 00
    8166     call 01933h                               ; e8 c8 bf
     8142    call 01933h                               ; e8 0f c0
    81678143    mov CL, strict byte 008h                  ; b1 08
    81688144    mov ax, word [bp+012h]                    ; 8b 46 12
     
    81738149    mov ax, strict word 00004h                ; b8 04 00
    81748150    push ax                                   ; 50
    8175     call 01976h                               ; e8 f8 bf
     8151    call 01976h                               ; e8 3f c0
    81768152    add sp, strict byte 00006h                ; 83 c4 06
    81778153    mov bx, 00da0h                            ; bb a0 0d
    81788154    mov cx, ds                                ; 8c d9
    81798155    mov ax, strict word 00004h                ; b8 04 00
    8180     call 01933h                               ; e8 a7 bf
     8156    call 01933h                               ; e8 ee bf
    81818157    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81828158    push ax                                   ; 50
     
    81918167    mov ax, strict word 00004h                ; b8 04 00
    81928168    push ax                                   ; 50
    8193     call 01976h                               ; e8 cf bf
     8169    call 01976h                               ; e8 16 c0
    81948170    add sp, strict byte 0000ch                ; 83 c4 0c
    81958171    lea sp, [bp-002h]                         ; 8d 66 fe
     
    82048180    mov dx, ss                                ; 8c d2
    82058181    lea ax, [bp-008h]                         ; 8d 46 f8
    8206     call 057c6h                               ; e8 01 fe
     8182    call 0577fh                               ; e8 01 fe
    82078183    test ax, ax                               ; 85 c0
    8208     jne short 059cfh                          ; 75 06
     8184    jne short 05988h                          ; 75 06
    82098185    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    8210     jmp short 059aah                          ; eb db
     8186    jmp short 05963h                          ; eb db
    82118187    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8212     je short 059dbh                           ; 74 06
     8188    je short 05994h                           ; 74 06
    82138189    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8214     je short 059e1h                           ; 74 06
     8190    je short 0599ah                           ; 74 06
    82158191    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    8216     jne short 059e5h                          ; 75 04
     8192    jne short 0599eh                          ; 75 04
    82178193    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    82188194    mov dh, byte [bp-008h]                    ; 8a 76 f8
     
    82208196    mov word [bp+012h], dx                    ; 89 56 12
    82218197    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    8222     jmp short 059aah                          ; eb b6
     8198    jmp short 05963h                          ; eb b6
    82238199    mov dx, strict word 00017h                ; ba 17 00
    82248200    mov ax, strict word 00040h                ; b8 40 00
    8225     call 01652h                               ; e8 55 bc
     8201    call 01652h                               ; e8 9c bc
    82268202    mov dx, word [bp+012h]                    ; 8b 56 12
    82278203    mov dl, al                                ; 88 c2
    82288204    mov word [bp+012h], dx                    ; 89 56 12
    8229     jmp short 059aah                          ; eb a3
     8205    jmp short 05963h                          ; eb a3
    82308206    mov dl, byte [bp+010h]                    ; 8a 56 10
    82318207    xor dh, dh                                ; 30 f6
     
    82348210    shr ax, CL                                ; d3 e8
    82358211    xor ah, ah                                ; 30 e4
    8236     call 0525bh                               ; e8 43 f8
     8212    call 05214h                               ; e8 43 f8
    82378213    test ax, ax                               ; 85 c0
    8238     jne short 05a26h                          ; 75 0a
     8214    jne short 059dfh                          ; 75 0a
    82398215    mov ax, word [bp+012h]                    ; 8b 46 12
    82408216    xor al, al                                ; 30 c0
    82418217    or AL, strict byte 001h                   ; 0c 01
    8242     jmp near 0595ah                           ; e9 34 ff
     8218    jmp near 05913h                           ; e9 34 ff
    82438219    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8244     jmp near 059aah                           ; e9 7c ff
     8220    jmp near 05963h                           ; e9 7c ff
    82458221    mov ax, word [bp+012h]                    ; 8b 46 12
    82468222    xor al, al                                ; 30 c0
    82478223    or AL, strict byte 030h                   ; 0c 30
    8248     jmp near 0595ah                           ; e9 22 ff
     8224    jmp near 05913h                           ; e9 22 ff
    82498225    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    82508226    xor cx, cx                                ; 31 c9
     
    82598235    ; sub ah, ah                                ; 2a e4
    82608236    test AL, strict byte 001h                 ; a8 01
    8261     jne short 05a5fh                          ; 75 0d
     8237    jne short 05a18h                          ; 75 0d
    82628238    dec bx                                    ; 4b
    82638239    test bx, bx                               ; 85 db
    8264     jbe short 05a5fh                          ; 76 08
     8240    jbe short 05a18h                          ; 76 08
    82658241    mov dx, 00080h                            ; ba 80 00
    82668242    in AL, DX                                 ; ec
    82678243    db  02ah, 0e4h
    82688244    ; sub ah, ah                                ; 2a e4
    8269     jmp short 05a48h                          ; eb e9
     8245    jmp short 05a01h                          ; eb e9
    82708246    test bx, bx                               ; 85 db
    8271     jbe short 05aa1h                          ; 76 3e
     8247    jbe short 05a5ah                          ; 76 3e
    82728248    mov dx, strict word 00060h                ; ba 60 00
    82738249    in AL, DX                                 ; ec
     
    82758251    ; sub ah, ah                                ; 2a e4
    82768252    cmp ax, 000fah                            ; 3d fa 00
    8277     jne short 05aa1h                          ; 75 33
     8253    jne short 05a5ah                          ; 75 33
    82788254    mov bx, strict word 0ffffh                ; bb ff ff
    82798255    mov dx, strict word 00064h                ; ba 64 00
     
    82828258    ; sub ah, ah                                ; 2a e4
    82838259    test AL, strict byte 001h                 ; a8 01
    8284     jne short 05a88h                          ; 75 0d
     8260    jne short 05a41h                          ; 75 0d
    82858261    dec bx                                    ; 4b
    82868262    test bx, bx                               ; 85 db
    8287     jbe short 05a88h                          ; 76 08
     8263    jbe short 05a41h                          ; 76 08
    82888264    mov dx, 00080h                            ; ba 80 00
    82898265    in AL, DX                                 ; ec
    82908266    db  02ah, 0e4h
    82918267    ; sub ah, ah                                ; 2a e4
    8292     jmp short 05a71h                          ; eb e9
     8268    jmp short 05a2ah                          ; eb e9
    82938269    test bx, bx                               ; 85 db
    8294     jbe short 05a98h                          ; 76 0c
     8270    jbe short 05a51h                          ; 76 0c
    82958271    mov bl, ch                                ; 88 eb
    82968272    mov dx, strict word 00060h                ; ba 60 00
     
    83028278    dec byte [bp-004h]                        ; fe 4e fc
    83038279    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8304     jnbe short 05a6eh                         ; 77 cd
     8280    jnbe short 05a27h                         ; 77 cd
    83058281    mov word [bp+00ch], cx                    ; 89 4e 0c
    8306     jmp near 059aah                           ; e9 03 ff
     8282    jmp near 05963h                           ; e9 03 ff
    83078283    mov ax, strict word 00001h                ; b8 01 00
    83088284    push ax                                   ; 50
     
    83118287    mov dx, ss                                ; 8c d2
    83128288    lea ax, [bp-008h]                         ; 8d 46 f8
    8313     call 057c6h                               ; e8 0e fd
     8289    call 0577fh                               ; e8 0e fd
    83148290    test ax, ax                               ; 85 c0
    8315     jne short 05acah                          ; 75 0e
     8291    jne short 05a83h                          ; 75 0e
    83168292    mov ax, 0060fh                            ; b8 0f 06
    83178293    push ax                                   ; 50
    83188294    mov ax, strict word 00007h                ; b8 07 00
    83198295    push ax                                   ; 50
    8320     call 01976h                               ; e8 af be
     8296    call 01976h                               ; e8 f6 be
    83218297    add sp, strict byte 00004h                ; 83 c4 04
    83228298    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8323     jne short 05ad3h                          ; 75 03
    8324     jmp near 05954h                           ; e9 81 fe
     8299    jne short 05a8ch                          ; 75 03
     8300    jmp near 0590dh                           ; e9 81 fe
    83258301    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8326     jne short 05adch                          ; 75 03
    8327     jmp near 05950h                           ; e9 74 fe
    8328     jmp short 05ad0h                          ; eb f2
     8302    jne short 05a95h                          ; 75 03
     8303    jmp near 05909h                           ; e9 74 fe
     8304    jmp short 05a89h                          ; eb f2
    83298305    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    83308306    xor ax, ax                                ; 31 c0
     
    83348310    mov dx, ss                                ; 8c d2
    83358311    lea ax, [bp-008h]                         ; 8d 46 f8
    8336     call 057c6h                               ; e8 d3 fc
     8312    call 0577fh                               ; e8 d3 fc
    83378313    test ax, ax                               ; 85 c0
    8338     jne short 05afah                          ; 75 03
    8339     jmp near 059c9h                           ; e9 cf fe
     8314    jne short 05ab3h                          ; 75 03
     8315    jmp near 05982h                           ; e9 cf fe
    83408316    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8341     jne short 05b03h                          ; 75 03
    8342     jmp near 059e5h                           ; e9 e2 fe
     8317    jne short 05abch                          ; 75 03
     8318    jmp near 0599eh                           ; e9 e2 fe
    83438319    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8344     jne short 05b0ch                          ; 75 03
    8345     jmp near 059e1h                           ; e9 d5 fe
    8346     jmp short 05b00h                          ; eb f2
     8320    jne short 05ac5h                          ; 75 03
     8321    jmp near 0599ah                           ; e9 d5 fe
     8322    jmp short 05ab9h                          ; eb f2
    83478323    mov dx, strict word 00017h                ; ba 17 00
    83488324    mov ax, strict word 00040h                ; b8 40 00
    8349     call 01652h                               ; e8 3b bb
     8325    call 01652h                               ; e8 82 bb
    83508326    mov dx, word [bp+012h]                    ; 8b 56 12
    83518327    mov dl, al                                ; 88 c2
     
    83538329    mov dx, strict word 00018h                ; ba 18 00
    83548330    mov ax, strict word 00040h                ; b8 40 00
    8355     call 01652h                               ; e8 2a bb
     8331    call 01652h                               ; e8 71 bb
    83568332    mov bh, al                                ; 88 c7
    83578333    and bh, 073h                              ; 80 e7 73
    83588334    mov dx, 00096h                            ; ba 96 00
    83598335    mov ax, strict word 00040h                ; b8 40 00
    8360     call 01652h                               ; e8 1c bb
     8336    call 01652h                               ; e8 63 bb
    83618337    mov ah, al                                ; 88 c4
    83628338    and ah, 00ch                              ; 80 e4 0c
     
    83648340    mov dx, word [bp+012h]                    ; 8b 56 12
    83658341    mov dh, ah                                ; 88 e6
    8366     jmp near 05a02h                           ; e9 bd fe
     8342    jmp near 059bbh                           ; e9 bd fe
    83678343    mov ax, word [bp+012h]                    ; 8b 46 12
    83688344    xor ah, ah                                ; 30 e4
    83698345    or ah, 080h                               ; 80 cc 80
    8370     jmp near 0595ah                           ; e9 0a fe
    8371 set_geom_lba_:                               ; 0xf5b50 LB 0xeb
     8346    jmp near 05913h                           ; e9 0a fe
     8347set_geom_lba_:                               ; 0xf5b09 LB 0xeb
    83728348    push bx                                   ; 53
    83738349    push cx                                   ; 51
     
    83878363    mov dx, word [bp+00ch]                    ; 8b 56 0c
    83888364    mov si, strict word 00020h                ; be 20 00
    8389     call 0a26ah                               ; e8 eb 46
     8365    call 0a20ah                               ; e8 d2 46
    83908366    test ax, ax                               ; 85 c0
    8391     jne short 05b8fh                          ; 75 0c
     8367    jne short 05b48h                          ; 75 0c
    83928368    test bx, bx                               ; 85 db
    8393     jne short 05b8fh                          ; 75 08
     8369    jne short 05b48h                          ; 75 08
    83948370    test cx, cx                               ; 85 c9
    8395     jne short 05b8fh                          ; 75 04
     8371    jne short 05b48h                          ; 75 04
    83968372    test dx, dx                               ; 85 d2
    8397     je short 05b96h                           ; 74 07
     8373    je short 05b4fh                           ; 74 07
    83988374    mov bx, strict word 0ffffh                ; bb ff ff
    83998375    mov si, bx                                ; 89 de
    8400     jmp short 05b9ch                          ; eb 06
     8376    jmp short 05b55h                          ; eb 06
    84018377    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    84028378    mov si, word [bp+00eh]                    ; 8b 76 0e
    84038379    mov word [bp-004h], bx                    ; 89 5e fc
    84048380    xor bx, bx                                ; 31 db
    8405     jmp short 05ba8h                          ; eb 05
     8381    jmp short 05b61h                          ; eb 05
    84068382    cmp bx, strict byte 00004h                ; 83 fb 04
    8407     jnl short 05bcbh                          ; 7d 23
     8383    jnl short 05b84h                          ; 7d 23
    84088384    mov ax, word [bp-006h]                    ; 8b 46 fa
    84098385    cmp si, ax                                ; 39 c6
    8410     jc short 05bb9h                           ; 72 0a
    8411     jne short 05bc2h                          ; 75 11
     8386    jc short 05b72h                           ; 72 0a
     8387    jne short 05b7bh                          ; 75 11
    84128388    mov ax, word [bp-004h]                    ; 8b 46 fc
    84138389    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8414     jnbe short 05bc2h                         ; 77 09
     8390    jnbe short 05b7bh                         ; 77 09
    84158391    mov ax, word [bp-002h]                    ; 8b 46 fe
    84168392    inc ax                                    ; 40
     
    84208396    rcr word [bp-008h], 1                     ; d1 5e f8
    84218397    inc bx                                    ; 43
    8422     jmp short 05ba3h                          ; eb d8
     8398    jmp short 05b5ch                          ; eb d8
    84238399    mov ax, word [bp-002h]                    ; 8b 46 fe
    84248400    xor dx, dx                                ; 31 d2
    84258401    mov bx, strict word 0003fh                ; bb 3f 00
    84268402    xor cx, cx                                ; 31 c9
    8427     call 0a229h                               ; e8 51 46
     8403    call 0a1c9h                               ; e8 38 46
    84288404    mov bx, ax                                ; 89 c3
    84298405    mov cx, dx                                ; 89 d1
    84308406    mov ax, word [bp-004h]                    ; 8b 46 fc
    84318407    mov dx, si                                ; 89 f2
    8432     call 0a1f0h                               ; e8 0c 46
     8408    call 0a190h                               ; e8 f3 45
    84338409    mov word [es:di+002h], ax                 ; 26 89 45 02
    84348410    cmp ax, 00400h                            ; 3d 00 04
    8435     jbe short 05bf3h                          ; 76 06
     8411    jbe short 05bach                          ; 76 06
    84368412    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    84378413    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    84458421    pop bx                                    ; 5b
    84468422    retn 00008h                               ; c2 08 00
    8447     retn                                      ; c3
     8423    jl short 05c20h                           ; 7c 5c
     8424    lea bx, [si-04bh]                         ; 8d 5c b5
    84488425    pop sp                                    ; 5c
    8449     aam 05ch                                  ; d4 5c
    8450     cld                                       ; fc
    8451     pop sp                                    ; 5c
    8452     cld                                       ; fc
    8453     pop sp                                    ; 5c
    8454     cld                                       ; fc
    8455     pop sp                                    ; 5c
    8456     jmp far 02660h:0265eh                     ; ea 5e 26 60 26
    8457     pushaw                                    ; 60
    8458     sbb bl, byte [byte bx+000h]               ; 1a 5f 00
    8459     pushaw                                    ; 60
    8460     db  026h, 060h
    8461     ; es pushaw                                 ; 26 60
    8462     db  026h, 060h
    8463     ; es pushaw                                 ; 26 60
    8464     add byte [byte bx+si+000h], ah            ; 00 60 00
    8465     pushaw                                    ; 60
    8466     db  026h, 060h
    8467     ; es pushaw                                 ; 26 60
    8468     db  026h, 060h
    8469     ; es pushaw                                 ; 26 60
    8470     sbb byte [byte bx+000h], 060h             ; 80 5f 00 60
    8471     db  026h, 060h
    8472     ; es pushaw                                 ; 26 60
    8473     db  026h, 060h
    8474     ; es pushaw                                 ; 26 60
    8475     add byte [bx+si-04fh], ah                 ; 00 60 b1
     8426    mov CH, strict byte 05ch                  ; b5 5c
     8427    mov CH, strict byte 05ch                  ; b5 5c
     8428    mov word [0df5eh], ax                     ; a3 5e df
    84768429    pop di                                    ; 5f
    8477     db  026h, 060h
    8478     ; es pushaw                                 ; 26 60
    8479     db  026h, 060h
    8480     ; es pushaw                                 ; 26 60
    8481     db  026h, 060h
    8482     ; es pushaw                                 ; 26 60
    8483 _int13_harddisk:                             ; 0xf5c3b LB 0x446
     8430    fistp word [bx-02dh]                      ; df 5f d3
     8431    pop si                                    ; 5e
     8432    mov cx, 0df5fh                            ; b9 5f df
     8433    pop di                                    ; 5f
     8434    fistp word [bx-047h]                      ; df 5f b9
     8435    pop di                                    ; 5f
     8436    mov cx, 0df5fh                            ; b9 5f df
     8437    pop di                                    ; 5f
     8438    fistp word [bx+039h]                      ; df 5f 39
     8439    pop di                                    ; 5f
     8440    mov cx, 0df5fh                            ; b9 5f df
     8441    pop di                                    ; 5f
     8442    fistp word [bx-047h]                      ; df 5f b9
     8443    pop di                                    ; 5f
     8444    push strict byte 0005fh                   ; 6a 5f
     8445    fistp word [bx-021h]                      ; df 5f df
     8446    pop di                                    ; 5f
     8447    db  0dfh
     8448    pop di                                    ; 5f
     8449_int13_harddisk:                             ; 0xf5bf4 LB 0x446
    84848450    push bp                                   ; 55
    84858451    mov bp, sp                                ; 89 e5
     
    84878453    mov dx, strict word 0000eh                ; ba 0e 00
    84888454    mov ax, strict word 00040h                ; b8 40 00
    8489     call 0166eh                               ; e8 24 ba
     8455    call 0166eh                               ; e8 6b ba
    84908456    mov si, 00122h                            ; be 22 01
    84918457    mov word [bp-004h], ax                    ; 89 46 fc
     
    84938459    mov dx, 0008eh                            ; ba 8e 00
    84948460    mov ax, strict word 00040h                ; b8 40 00
    8495     call 01660h                               ; e8 05 ba
     8461    call 01660h                               ; e8 4c ba
    84968462    mov ax, word [bp+00eh]                    ; 8b 46 0e
    84978463    xor ah, ah                                ; 30 e4
    84988464    cmp ax, 00080h                            ; 3d 80 00
    8499     jc short 05c6ah                           ; 72 05
     8465    jc short 05c23h                           ; 72 05
    85008466    cmp ax, 00090h                            ; 3d 90 00
    8501     jc short 05c89h                           ; 72 1f
     8467    jc short 05c42h                           ; 72 1f
    85028468    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85038469    xor ah, ah                                ; 30 e4
     
    85118477    mov ax, strict word 00004h                ; b8 04 00
    85128478    push ax                                   ; 50
    8513     call 01976h                               ; e8 f3 bc
     8479    call 01976h                               ; e8 3a bd
    85148480    add sp, strict byte 0000ah                ; 83 c4 0a
    8515     jmp near 06041h                           ; e9 b8 03
     8481    jmp near 05ffah                           ; e9 b8 03
    85168482    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85178483    xor ah, ah                                ; 30 e4
     
    85228488    mov byte [bp-002h], dl                    ; 88 56 fe
    85238489    cmp dl, 010h                              ; 80 fa 10
    8524     jc short 05cb0h                           ; 72 0e
     8490    jc short 05c69h                           ; 72 0e
    85258491    push ax                                   ; 50
    85268492    mov al, byte [bp+017h]                    ; 8a 46 17
     
    85298495    push ax                                   ; 50
    85308496    mov ax, 006b8h                            ; b8 b8 06
    8531     jmp short 05c7bh                          ; eb cb
     8497    jmp short 05c34h                          ; eb cb
    85328498    mov al, byte [bp+017h]                    ; 8a 46 17
    85338499    xor ah, ah                                ; 30 e4
    85348500    cmp ax, strict word 00018h                ; 3d 18 00
    8535     jnbe short 05cf9h                         ; 77 3f
     8501    jnbe short 05cb2h                         ; 77 3f
    85368502    mov bx, ax                                ; 89 c3
    85378503    sal bx, 1                                 ; d1 e3
    8538     jmp word [cs:bx+05c09h]                   ; 2e ff a7 09 5c
     8504    jmp word [cs:bx+05bc2h]                   ; 2e ff a7 c2 5b
    85398505    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8540     jnc short 05cd1h                          ; 73 08
     8506    jnc short 05c8ah                          ; 73 08
    85418507    mov al, byte [bp-002h]                    ; 8a 46 fe
    85428508    xor ah, ah                                ; 30 e4
    8543     call 01db8h                               ; e8 e7 c0
    8544     jmp near 05f03h                           ; e9 2f 02
     8509    call 01db8h                               ; e8 2e c1
     8510    jmp near 05ebch                           ; e9 2f 02
    85458511    mov dx, strict word 00074h                ; ba 74 00
    85468512    mov ax, strict word 00040h                ; b8 40 00
    8547     call 01652h                               ; e8 75 b9
     8513    call 01652h                               ; e8 bc b9
    85488514    mov cl, al                                ; 88 c1
    85498515    mov dx, word [bp+016h]                    ; 8b 56 16
     
    85538519    mov dx, strict word 00074h                ; ba 74 00
    85548520    mov ax, strict word 00040h                ; b8 40 00
    8555     call 01660h                               ; e8 6e b9
     8521    call 01660h                               ; e8 b5 b9
    85568522    test cl, cl                               ; 84 c9
    8557     je short 05d58h                           ; 74 62
    8558     jmp near 0605ah                           ; e9 61 03
    8559     jmp near 06026h                           ; e9 2a 03
     8523    je short 05d11h                           ; 74 62
     8524    jmp near 06013h                           ; e9 61 03
     8525    jmp near 05fdfh                           ; e9 2a 03
    85608526    mov ax, word [bp+016h]                    ; 8b 46 16
    85618527    xor ah, ah                                ; 30 e4
     
    85768542    mov ax, word [bp-00eh]                    ; 8b 46 f2
    85778543    cmp ax, 00080h                            ; 3d 80 00
    8578     jnbe short 05d32h                         ; 77 04
     8544    jnbe short 05cebh                         ; 77 04
    85798545    test ax, ax                               ; 85 c0
    8580     jne short 05d5bh                          ; 75 29
     8546    jne short 05d14h                          ; 75 29
    85818547    mov bx, 00da0h                            ; bb a0 0d
    85828548    mov cx, ds                                ; 8c d9
    85838549    mov ax, strict word 00004h                ; b8 04 00
    8584     call 01933h                               ; e8 f6 bb
     8550    call 01933h                               ; e8 3d bc
    85858551    mov al, byte [bp+017h]                    ; 8a 46 17
    85868552    xor ah, ah                                ; 30 e4
     
    85928558    mov ax, strict word 00004h                ; b8 04 00
    85938559    push ax                                   ; 50
    8594     call 01976h                               ; e8 24 bc
     8560    call 01976h                               ; e8 6b bc
    85958561    add sp, strict byte 00008h                ; 83 c4 08
    8596     jmp near 06041h                           ; e9 e9 02
    8597     jmp near 05f07h                           ; e9 ac 01
     8562    jmp near 05ffah                           ; e9 e9 02
     8563    jmp near 05ec0h                           ; e9 ac 01
    85988564    mov al, byte [bp-002h]                    ; 8a 46 fe
    85998565    xor ah, ah                                ; 30 e4
     
    86088574    mov word [bp-010h], dx                    ; 89 56 f0
    86098575    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8610     jbe short 05d89h                          ; 76 09
     8576    jbe short 05d42h                          ; 76 09
    86118577    cmp cx, word [bp-00ch]                    ; 3b 4e f4
    8612     jbe short 05d89h                          ; 76 04
     8578    jbe short 05d42h                          ; 76 04
    86138579    cmp di, dx                                ; 39 d7
    8614     jbe short 05dbah                          ; 76 31
     8580    jbe short 05d73h                          ; 76 31
    86158581    mov bx, 00da0h                            ; bb a0 0d
    86168582    mov cx, ds                                ; 8c d9
    86178583    mov ax, strict word 00004h                ; b8 04 00
    8618     call 01933h                               ; e8 9f bb
     8584    call 01933h                               ; e8 e6 bb
    86198585    push di                                   ; 57
    86208586    push word [bp-00ch]                       ; ff 76 f4
     
    86318597    mov ax, strict word 00004h                ; b8 04 00
    86328598    push ax                                   ; 50
    8633     call 01976h                               ; e8 c2 bb
     8599    call 01976h                               ; e8 09 bc
    86348600    add sp, strict byte 00010h                ; 83 c4 10
    8635     jmp near 06041h                           ; e9 87 02
     8601    jmp near 05ffah                           ; e9 87 02
    86368602    mov al, byte [bp+017h]                    ; 8a 46 17
    86378603    xor ah, ah                                ; 30 e4
    86388604    cmp ax, strict word 00004h                ; 3d 04 00
    8639     je short 05de4h                           ; 74 20
     8605    je short 05d9dh                           ; 74 20
    86408606    mov al, byte [bp-002h]                    ; 8a 46 fe
    86418607    mov dx, strict word 0001ch                ; ba 1c 00
     
    86458611    add bx, ax                                ; 01 c3
    86468612    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8647     jne short 05dedh                          ; 75 14
     8613    jne short 05da6h                          ; 75 14
    86488614    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    86498615    cmp ax, word [bp-010h]                    ; 3b 46 f0
    8650     je short 05de7h                           ; 74 05
    8651     jmp short 05dedh                          ; eb 09
    8652     jmp near 05f03h                           ; e9 1c 01
     8616    je short 05da0h                           ; 74 05
     8617    jmp short 05da6h                          ; eb 09
     8618    jmp near 05ebch                           ; e9 1c 01
    86538619    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8654     jc short 05e1ch                           ; 72 2f
     8620    jc short 05dd5h                           ; 72 2f
    86558621    mov ax, word [bp-00ah]                    ; 8b 46 f6
    86568622    xor dx, dx                                ; 31 d2
    86578623    mov bx, cx                                ; 89 cb
    86588624    xor cx, cx                                ; 31 c9
    8659     call 0a229h                               ; e8 30 44
     8625    call 0a1c9h                               ; e8 17 44
    86608626    xor bx, bx                                ; 31 db
    86618627    add ax, word [bp-00ch]                    ; 03 46 f4
     
    86638629    mov bx, word [bp-010h]                    ; 8b 5e f0
    86648630    xor cx, cx                                ; 31 c9
    8665     call 0a229h                               ; e8 21 44
     8631    call 0a1c9h                               ; e8 08 44
    86668632    xor bx, bx                                ; 31 db
    86678633    add ax, di                                ; 01 f8
     
    87208686    mov word [bp+016h], bx                    ; 89 5e 16
    87218687    test dl, dl                               ; 84 d2
    8722     je short 05f03h                           ; 74 4a
     8688    je short 05ebch                           ; 74 4a
    87238689    mov bx, 00da0h                            ; bb a0 0d
    87248690    mov cx, ds                                ; 8c d9
    87258691    mov ax, strict word 00004h                ; b8 04 00
    8726     call 01933h                               ; e8 6f ba
     8692    call 01933h                               ; e8 b6 ba
    87278693    mov al, dl                                ; 88 d0
    87288694    xor ah, ah                                ; 30 e4
     
    87368702    mov ax, strict word 00004h                ; b8 04 00
    87378703    push ax                                   ; 50
    8738     call 01976h                               ; e8 9a ba
     8704    call 01976h                               ; e8 e1 ba
    87398705    add sp, strict byte 0000ah                ; 83 c4 0a
    87408706    mov ax, word [bp+016h]                    ; 8b 46 16
    87418707    xor ah, ah                                ; 30 e4
    87428708    or ah, 00ch                               ; 80 cc 0c
    8743     jmp near 06049h                           ; e9 5f 01
     8709    jmp near 06002h                           ; e9 5f 01
    87448710    mov bx, 00da0h                            ; bb a0 0d
    87458711    mov cx, ds                                ; 8c d9
    87468712    mov ax, strict word 00004h                ; b8 04 00
    8747     call 01933h                               ; e8 3e ba
     8713    call 01933h                               ; e8 85 ba
    87488714    mov ax, 0077ah                            ; b8 7a 07
    87498715    push ax                                   ; 50
    87508716    mov ax, strict word 00004h                ; b8 04 00
    87518717    push ax                                   ; 50
    8752     call 01976h                               ; e8 76 ba
     8718    call 01976h                               ; e8 bd ba
    87538719    add sp, strict byte 00004h                ; 83 c4 04
    87548720    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    87568722    mov dx, strict word 00074h                ; ba 74 00
    87578723    mov ax, strict word 00040h                ; b8 40 00
    8758     call 01660h                               ; e8 4e b7
     8724    call 01660h                               ; e8 95 b7
    87598725    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    87608726    mov sp, bp                                ; 89 ec
     
    87998765    or ax, dx                                 ; 09 d0
    88008766    mov word [bp+012h], ax                    ; 89 46 12
    8801     jmp short 05f03h                          ; eb 83
     8767    jmp short 05ebch                          ; eb 83
    88028768    mov al, byte [bp-002h]                    ; 8a 46 fe
    88038769    cwd                                       ; 99
     
    88168782    and AL, strict byte 0c0h                  ; 24 c0
    88178783    cmp AL, strict byte 040h                  ; 3c 40
    8818     jne short 05fa6h                          ; 75 03
    8819     jmp near 05f03h                           ; e9 5d ff
     8784    jne short 05f5fh                          ; 75 03
     8785    jmp near 05ebch                           ; e9 5d ff
    88208786    mov ax, word [bp+016h]                    ; 8b 46 16
    88218787    xor ah, ah                                ; 30 e4
    88228788    or ah, 0aah                               ; 80 cc aa
    8823     jmp near 06049h                           ; e9 98 00
     8789    jmp near 06002h                           ; e9 98 00
    88248790    mov al, byte [bp-002h]                    ; 8a 46 fe
    88258791    xor ah, ah                                ; 30 e4
     
    88378803    mov bx, word [bp-00ch]                    ; 8b 5e f4
    88388804    xor cx, cx                                ; 31 c9
    8839     call 0a229h                               ; e8 4a 42
     8805    call 0a1c9h                               ; e8 31 42
    88408806    mov bx, di                                ; 89 fb
    88418807    xor cx, cx                                ; 31 c9
    8842     call 0a229h                               ; e8 43 42
     8808    call 0a1c9h                               ; e8 2a 42
    88438809    mov word [bp-008h], ax                    ; 89 46 f8
    88448810    mov word [bp-006h], dx                    ; 89 56 fa
     
    88498815    or ah, 003h                               ; 80 cc 03
    88508816    mov word [bp+016h], ax                    ; 89 46 16
    8851     jmp near 05f07h                           ; e9 07 ff
     8817    jmp near 05ec0h                           ; e9 07 ff
    88528818    mov bx, 00da0h                            ; bb a0 0d
    88538819    mov cx, ds                                ; 8c d9
    88548820    mov ax, strict word 00004h                ; b8 04 00
    8855     call 01933h                               ; e8 28 b9
     8821    call 01933h                               ; e8 6f b9
    88568822    mov al, byte [bp+017h]                    ; 8a 46 17
    88578823    xor ah, ah                                ; 30 e4
     
    88638829    mov ax, strict word 00004h                ; b8 04 00
    88648830    push ax                                   ; 50
    8865     call 01976h                               ; e8 56 b9
     8831    call 01976h                               ; e8 9d b9
    88668832    add sp, strict byte 00008h                ; 83 c4 08
    8867     jmp near 05f03h                           ; e9 dd fe
     8833    jmp near 05ebch                           ; e9 dd fe
    88688834    mov bx, 00da0h                            ; bb a0 0d
    88698835    mov cx, ds                                ; 8c d9
    88708836    mov ax, strict word 00004h                ; b8 04 00
    8871     call 01933h                               ; e8 02 b9
     8837    call 01933h                               ; e8 49 b9
    88728838    mov al, byte [bp+017h]                    ; 8a 46 17
    88738839    xor ah, ah                                ; 30 e4
     
    88768842    push ax                                   ; 50
    88778843    mov ax, 007c7h                            ; b8 c7 07
    8878     jmp near 05d4ah                           ; e9 09 fd
     8844    jmp near 05d03h                           ; e9 09 fd
    88798845    mov ax, word [bp+016h]                    ; 8b 46 16
    88808846    xor ah, ah                                ; 30 e4
     
    88858851    mov dx, strict word 00074h                ; ba 74 00
    88868852    mov ax, strict word 00040h                ; b8 40 00
    8887     call 01660h                               ; e8 06 b6
     8853    call 01660h                               ; e8 4d b6
    88888854    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8889     jmp near 05f16h                           ; e9 b5 fe
    8890     sbb sp, word [bx+di+04eh]                 ; 1b 61 4e
     8855    jmp near 05ecfh                           ; e9 b5 fe
     8856    aam 060h                                  ; d4 60
     8857    pop ES                                    ; 07
    88918858    popaw                                     ; 61
    8892     dec si                                    ; 4e
     8859    pop ES                                    ; 07
    88938860    popaw                                     ; 61
    8894     dec si                                    ; 4e
     8861    pop ES                                    ; 07
    88958862    popaw                                     ; 61
    8896     jo short 060d0h                           ; 70 65
    8897     retn                                      ; c3
    8898     bound cx, [bp+061h]                       ; 62 4e 61
    8899     leave                                     ; c9
    8900     bound si, [bx+si+065h]                    ; 62 70 65
    8901     xor sp, word [bx+di+033h]                 ; 33 61 33
     8863    sbb word [di+07ch], sp                    ; 19 65 7c
     8864    bound ax, [bx]                            ; 62 07
    89028865    popaw                                     ; 61
    8903     xor sp, word [bx+di+033h]                 ; 33 61 33
    8904     popaw                                     ; 61
    8905     xchg word [di+033h], sp                   ; 87 65 33
    8906     popaw                                     ; 61
    8907     db  033h
    8908     popaw                                     ; 61
    8909 _int13_harddisk_ext:                         ; 0xf6081 LB 0x53b
     8866    db  082h, 062h, 019h, 065h
     8867    ; and byte [bp+si+019h], 065h               ; 82 62 19 65
     8868    in AL, DX                                 ; ec
     8869    pushaw                                    ; 60
     8870    in AL, DX                                 ; ec
     8871    pushaw                                    ; 60
     8872    in AL, DX                                 ; ec
     8873    pushaw                                    ; 60
     8874    in AL, DX                                 ; ec
     8875    pushaw                                    ; 60
     8876    xor byte [di-014h], ah                    ; 30 65 ec
     8877    pushaw                                    ; 60
     8878    in AL, DX                                 ; ec
     8879    pushaw                                    ; 60
     8880_int13_harddisk_ext:                         ; 0xf603a LB 0x52b
    89108881    push bp                                   ; 55
    89118882    mov bp, sp                                ; 89 e5
     
    89138884    mov dx, strict word 0000eh                ; ba 0e 00
    89148885    mov ax, strict word 00040h                ; b8 40 00
    8915     call 0166eh                               ; e8 de b5
     8886    call 0166eh                               ; e8 25 b6
    89168887    mov word [bp-018h], ax                    ; 89 46 e8
    89178888    mov dx, strict word 0000eh                ; ba 0e 00
    89188889    mov ax, strict word 00040h                ; b8 40 00
    8919     call 0166eh                               ; e8 d2 b5
     8890    call 0166eh                               ; e8 19 b6
    89208891    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    89218892    mov word [bp-006h], ax                    ; 89 46 fa
     
    89238894    mov dx, 0008eh                            ; ba 8e 00
    89248895    mov ax, strict word 00040h                ; b8 40 00
    8925     call 01660h                               ; e8 b1 b5
     8896    call 01660h                               ; e8 f8 b5
    89268897    mov ax, word [bp+00eh]                    ; 8b 46 0e
    89278898    xor ah, ah                                ; 30 e4
    89288899    cmp ax, 00080h                            ; 3d 80 00
    8929     jc short 060beh                           ; 72 05
     8900    jc short 06077h                           ; 72 05
    89308901    cmp ax, 00090h                            ; 3d 90 00
    8931     jc short 060ddh                           ; 72 1f
     8902    jc short 06096h                           ; 72 1f
    89328903    mov ax, word [bp+00eh]                    ; 8b 46 0e
    89338904    xor ah, ah                                ; 30 e4
     
    89418912    mov ax, strict word 00004h                ; b8 04 00
    89428913    push ax                                   ; 50
    8943     call 01976h                               ; e8 9f b8
     8914    call 01976h                               ; e8 e6 b8
    89448915    add sp, strict byte 0000ah                ; 83 c4 0a
    8945     jmp near 0659dh                           ; e9 c0 04
     8916    jmp near 06546h                           ; e9 b0 04
    89468917    mov ax, word [bp+00eh]                    ; 8b 46 0e
    89478918    xor ah, ah                                ; 30 e4
     
    89518922    mov byte [bp-004h], dl                    ; 88 56 fc
    89528923    cmp dl, 010h                              ; 80 fa 10
    8953     jc short 06102h                           ; 72 0e
     8924    jc short 060bbh                           ; 72 0e
    89548925    push ax                                   ; 50
    89558926    mov al, byte [bp+017h]                    ; 8a 46 17
     
    89588929    push ax                                   ; 50
    89598930    mov ax, 006b8h                            ; b8 b8 06
    8960     jmp short 060cfh                          ; eb cd
     8931    jmp short 06088h                          ; eb cd
    89618932    mov bl, byte [bp+017h]                    ; 8a 5e 17
    89628933    xor bh, bh                                ; 30 ff
    89638934    sub bx, strict byte 00041h                ; 83 eb 41
    89648935    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8965     jnbe short 06133h                         ; 77 24
     8936    jnbe short 060ech                         ; 77 24
    89668937    sal bx, 1                                 ; d1 e3
    89678938    mov ax, word [bp+016h]                    ; 8b 46 16
    89688939    xor ah, ah                                ; 30 e4
    8969     jmp word [cs:bx+06061h]                   ; 2e ff a7 61 60
     8940    jmp word [cs:bx+0601ah]                   ; 2e ff a7 1a 60
    89708941    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    89718942    mov ax, word [bp+016h]                    ; 8b 46 16
     
    89748945    mov word [bp+016h], ax                    ; 89 46 16
    89758946    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8976     jmp near 06574h                           ; e9 41 04
     8947    jmp near 0651dh                           ; e9 31 04
    89778948    mov bx, 00da0h                            ; bb a0 0d
    89788949    mov cx, ds                                ; 8c d9
    89798950    mov ax, strict word 00004h                ; b8 04 00
    8980     call 01933h                               ; e8 f5 b7
     8951    call 01933h                               ; e8 3c b8
    89818952    mov al, byte [bp+017h]                    ; 8a 46 17
    89828953    xor ah, ah                                ; 30 e4
     
    89858956    push ax                                   ; 50
    89868957    mov ax, 007c7h                            ; b8 c7 07
    8987     jmp near 061ebh                           ; e9 9d 00
     8958    jmp near 061a4h                           ; e9 9d 00
    89888959    mov di, word [bp+00ah]                    ; 8b 7e 0a
    89898960    mov es, [bp+004h]                         ; 8e 46 04
    8990     mov word [bp-022h], di                    ; 89 7e de
     8961    mov word [bp-024h], di                    ; 89 7e dc
    89918962    mov [bp-01eh], es                         ; 8c 46 e2
    89928963    mov ax, word [es:di+002h]                 ; 26 8b 45 02
     
    90018972    xor bx, bx                                ; 31 db
    90028973    mov si, strict word 00020h                ; be 20 00
    9003     call 0a25ah                               ; e8 d9 40
     8974    call 0a1fah                               ; e8 c0 40
    90048975    mov word [bp-00eh], ax                    ; 89 46 f2
    90058976    mov word [bp-010h], bx                    ; 89 5e f0
    90068977    mov si, dx                                ; 89 d6
    9007     mov ax, word [es:di+008h]                 ; 26 8b 45 08
    9008     mov dx, word [es:di+00ah]                 ; 26 8b 55 0a
    9009     or si, ax                                 ; 09 c6
    9010     or cx, dx                                 ; 09 d1
     8978    mov dx, word [es:di+008h]                 ; 26 8b 55 08
     8979    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
     8980    or si, dx                                 ; 09 d6
     8981    or cx, ax                                 ; 09 c1
    90118982    mov al, byte [bp-004h]                    ; 8a 46 fc
    90128983    xor ah, ah                                ; 30 e4
     
    90188989    mov dx, word [bp-00eh]                    ; 8b 56 f2
    90198990    cmp dx, word [es:bx+03ch]                 ; 26 3b 57 3c
    9020     jnbe short 061d3h                         ; 77 22
    9021     jne short 061f9h                          ; 75 46
     8991    jnbe short 0618ch                         ; 77 22
     8992    jne short 061b2h                          ; 75 46
    90228993    mov dx, word [bp-010h]                    ; 8b 56 f0
    90238994    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9024     jnbe short 061d3h                         ; 77 17
     8995    jnbe short 0618ch                         ; 77 17
    90258996    mov dx, word [bp-010h]                    ; 8b 56 f0
    90268997    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9027     jne short 061f9h                          ; 75 34
     8998    jne short 061b2h                          ; 75 34
    90288999    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
    9029     jnbe short 061d3h                         ; 77 08
    9030     jne short 061f9h                          ; 75 2c
     9000    jnbe short 0618ch                         ; 77 08
     9001    jne short 061b2h                          ; 75 2c
    90319002    cmp si, word [es:bx+036h]                 ; 26 3b 77 36
    9032     jc short 061f9h                           ; 72 26
     9003    jc short 061b2h                           ; 72 26
    90339004    mov bx, 00da0h                            ; bb a0 0d
    90349005    mov cx, ds                                ; 8c d9
    90359006    mov ax, strict word 00004h                ; b8 04 00
    9036     call 01933h                               ; e8 55 b7
     9007    call 01933h                               ; e8 9c b7
    90379008    mov al, byte [bp+017h]                    ; 8a 46 17
    90389009    xor ah, ah                                ; 30 e4
     
    90449015    mov ax, strict word 00004h                ; b8 04 00
    90459016    push ax                                   ; 50
    9046     call 01976h                               ; e8 83 b7
     9017    call 01976h                               ; e8 ca b7
    90479018    add sp, strict byte 00008h                ; 83 c4 08
    9048     jmp near 0659dh                           ; e9 a4 03
     9019    jmp near 06546h                           ; e9 94 03
    90499020    mov ah, byte [bp+017h]                    ; 8a 66 17
    90509021    mov byte [bp-012h], ah                    ; 88 66 ee
    90519022    mov byte [bp-011h], 000h                  ; c6 46 ef 00
    90529023    cmp word [bp-012h], strict byte 00044h    ; 83 7e ee 44
    9053     je short 0620fh                           ; 74 06
     9024    je short 061c8h                           ; 74 06
    90549025    cmp word [bp-012h], strict byte 00047h    ; 83 7e ee 47
    9055     jne short 06212h                          ; 75 03
    9056     jmp near 06570h                           ; e9 5e 03
     9026    jne short 061cbh                          ; 75 03
     9027    jmp near 06519h                           ; e9 4e 03
    90579028    les bx, [bp-008h]                         ; c4 5e f8
    90589029    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     
    90899060    mov word [bp-016h], ax                    ; 89 46 ea
    90909061    mov es, [bp-01eh]                         ; 8e 46 e2
    9091     mov bx, word [bp-022h]                    ; 8b 5e de
     9062    mov bx, word [bp-024h]                    ; 8b 5e dc
    90929063    mov word [es:bx+002h], ax                 ; 26 89 47 02
    90939064    test dl, dl                               ; 84 d2
    9094     je short 062e7h                           ; 74 54
     9065    je short 062a0h                           ; 74 54
    90959066    mov bx, 00da0h                            ; bb a0 0d
    90969067    mov cx, ds                                ; 8c d9
    90979068    mov ax, strict word 00004h                ; b8 04 00
    9098     call 01933h                               ; e8 95 b6
     9069    call 01933h                               ; e8 dc b6
    90999070    mov al, dl                                ; 88 d0
    91009071    xor ah, ah                                ; 30 e4
     
    91079078    mov ax, strict word 00004h                ; b8 04 00
    91089079    push ax                                   ; 50
    9109     call 01976h                               ; e8 c1 b6
     9080    call 01976h                               ; e8 08 b7
    91109081    add sp, strict byte 0000ah                ; 83 c4 0a
    91119082    mov ax, word [bp+016h]                    ; 8b 46 16
    91129083    xor ah, ah                                ; 30 e4
    91139084    or ah, 00ch                               ; 80 cc 0c
    9114     jmp near 065a5h                           ; e9 e2 02
     9085    jmp near 0654eh                           ; e9 d2 02
    91159086    or ah, 0b2h                               ; 80 cc b2
    9116     jmp near 065a5h                           ; e9 dc 02
     9087    jmp near 0654eh                           ; e9 cc 02
    91179088    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    91189089    mov ax, word [bp+004h]                    ; 8b 46 04
     
    91249095    mov word [bp-014h], ax                    ; 89 46 ec
    91259096    cmp ax, strict word 0001ah                ; 3d 1a 00
    9126     jnc short 062eah                          ; 73 06
    9127     jmp near 0659dh                           ; e9 b6 02
    9128     jmp near 06570h                           ; e9 86 02
    9129     jnc short 062efh                          ; 73 03
    9130     jmp near 06382h                           ; e9 93 00
     9097    jnc short 062a3h                          ; 73 06
     9098    jmp near 06546h                           ; e9 a6 02
     9099    jmp near 06519h                           ; e9 76 02
     9100    jnc short 062a8h                          ; 73 03
     9101    jmp near 0633bh                           ; e9 93 00
    91319102    mov al, byte [bp-004h]                    ; 8a 46 fc
    91329103    xor ah, ah                                ; 30 e4
     
    91379108    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
    91389109    mov dx, word [es:bx+030h]                 ; 26 8b 57 30
     9110    mov word [bp-026h], dx                    ; 89 56 da
     9111    mov dx, word [es:bx+034h]                 ; 26 8b 57 34
    91399112    mov word [bp-028h], dx                    ; 89 56 d8
    9140     mov dx, word [es:bx+034h]                 ; 26 8b 57 34
    9141     mov word [bp-026h], dx                    ; 89 56 da
    91429113    mov dx, word [es:bx+03ch]                 ; 26 8b 57 3c
    91439114    mov word [bp-00eh], dx                    ; 89 56 f2
     
    91539124    mov word [es:bx+004h], ax                 ; 26 89 47 04
    91549125    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
    9155     mov ax, word [bp-028h]                    ; 8b 46 d8
     9126    mov ax, word [bp-026h]                    ; 8b 46 da
    91569127    mov word [es:bx+008h], ax                 ; 26 89 47 08
    91579128    mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
    9158     mov ax, word [bp-026h]                    ; 8b 46 da
     9129    mov ax, word [bp-028h]                    ; 8b 46 d8
    91599130    mov word [es:bx+00ch], ax                 ; 26 89 47 0c
    91609131    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
     
    91669137    mov dx, si                                ; 89 f2
    91679138    mov si, strict word 00020h                ; be 20 00
    9168     call 0a26ah                               ; e8 f2 3e
     9139    call 0a20ah                               ; e8 d9 3e
    91699140    mov bx, di                                ; 89 fb
    91709141    mov word [es:bx+014h], dx                 ; 26 89 57 14
    91719142    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    91729143    cmp word [bp-014h], strict byte 0001eh    ; 83 7e ec 1e
    9173     jc short 063f9h                           ; 72 71
     9144    jc short 063adh                           ; 72 6c
    91749145    mov es, [bp-00ah]                         ; 8e 46 f6
    91759146    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    91909161    add bx, ax                                ; 01 c3
    91919162    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
    9192     mov word [bp-024h], ax                    ; 89 46 dc
     9163    mov word [bp-022h], ax                    ; 89 46 de
    91939164    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
    91949165    mov word [bp-020h], ax                    ; 89 46 e0
     
    92009171    mov bx, word [bp-008h]                    ; 8b 5e f8
    92019172    add bx, ax                                ; 01 c3
    9202     mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
    92039173    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    92049174    test al, al                               ; 84 c0
    9205     jne short 063e9h                          ; 75 04
     9175    jne short 0639eh                          ; 75 04
    92069176    xor si, si                                ; 31 f6
    9207     jmp short 063ech                          ; eb 03
     9177    jmp short 063a1h                          ; eb 03
    92089178    mov si, strict word 00008h                ; be 08 00
    92099179    or si, strict byte 00010h                 ; 83 ce 10
    9210     cmp ah, 001h                              ; 80 fc 01
    9211     jne short 063fch                          ; 75 08
     9180    cmp AL, strict byte 001h                  ; 3c 01
     9181    jne short 063b0h                          ; 75 08
    92129182    mov dx, strict word 00001h                ; ba 01 00
    9213     jmp short 063feh                          ; eb 05
    9214     jmp near 0649fh                           ; e9 a3 00
    9215     xor dx, dx                                ; 31 d2
    9216     or si, dx                                 ; 09 d6
    9217     cmp AL, strict byte 001h                  ; 3c 01
    9218     jne short 06409h                          ; 75 05
    9219     mov dx, strict word 00001h                ; ba 01 00
    9220     jmp short 0640bh                          ; eb 02
     9183    jmp short 063b2h                          ; eb 05
     9184    jmp near 06448h                           ; e9 98 00
    92219185    xor dx, dx                                ; 31 d2
    92229186    or si, dx                                 ; 09 d6
    92239187    cmp AL, strict byte 003h                  ; 3c 03
    9224     jne short 06416h                          ; 75 05
     9188    jne short 063bdh                          ; 75 05
    92259189    mov ax, strict word 00003h                ; b8 03 00
    9226     jmp short 06418h                          ; eb 02
     9190    jmp short 063bfh                          ; eb 02
    92279191    xor ax, ax                                ; 31 c0
    92289192    or si, ax                                 ; 09 c6
    9229     mov ax, word [bp-024h]                    ; 8b 46 dc
     9193    mov ax, word [bp-022h]                    ; 8b 46 de
    92309194    les bx, [bp-008h]                         ; c4 5e f8
    92319195    mov word [es:bx+00234h], ax               ; 26 89 87 34 02
     
    92389202    idiv bx                                   ; f7 fb
    92399203    or dl, 00eh                               ; 80 ca 0e
     9204    mov ax, dx                                ; 89 d0
    92409205    mov CL, strict byte 004h                  ; b1 04
    9241     sal dx, CL                                ; d3 e2
     9206    sal ax, CL                                ; d3 e0
    92429207    mov bx, word [bp-008h]                    ; 8b 5e f8
    9243     mov byte [es:bx+00238h], dl               ; 26 88 97 38 02
     9208    mov byte [es:bx+00238h], al               ; 26 88 87 38 02
    92449209    mov byte [es:bx+00239h], 0cbh             ; 26 c6 87 39 02 cb
    92459210    mov al, byte [bp-002h]                    ; 8a 46 fe
     
    92529217    xor bl, bl                                ; 30 db
    92539218    xor bh, bh                                ; 30 ff
    9254     jmp short 0647fh                          ; eb 05
     9219    jmp short 06428h                          ; eb 05
    92559220    cmp bh, 00fh                              ; 80 ff 0f
    9256     jnc short 06495h                          ; 73 16
     9221    jnc short 0643eh                          ; 73 16
    92579222    mov al, bh                                ; 88 f8
    92589223    xor ah, ah                                ; 30 e4
     
    92609225    add dx, 00356h                            ; 81 c2 56 03
    92619226    mov ax, word [bp-018h]                    ; 8b 46 e8
    9262     call 01652h                               ; e8 c3 b1
     9227    call 01652h                               ; e8 1a b2
    92639228    add bl, al                                ; 00 c3
    92649229    db  0feh, 0c7h
    92659230    ; inc bh                                    ; fe c7
    9266     jmp short 0647ah                          ; eb e5
     9231    jmp short 06423h                          ; eb e5
    92679232    neg bl                                    ; f6 db
    92689233    les si, [bp-008h]                         ; c4 76 f8
    92699234    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    92709235    cmp word [bp-014h], strict byte 00042h    ; 83 7e ec 42
    9271     jnc short 064a8h                          ; 73 03
    9272     jmp near 06570h                           ; e9 c8 00
     9236    jnc short 06451h                          ; 73 03
     9237    jmp near 06519h                           ; e9 c8 00
    92739238    mov al, byte [bp-004h]                    ; 8a 46 fc
    92749239    xor ah, ah                                ; 30 e4
     
    92909255    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    92919256    test al, al                               ; 84 c0
    9292     jne short 064f2h                          ; 75 0c
     9257    jne short 0649bh                          ; 75 0c
    92939258    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    92949259    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    92999264    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    93009265    test al, al                               ; 84 c0
    9301     jne short 06527h                          ; 75 16
     9266    jne short 064d0h                          ; 75 16
    93029267    mov word [es:di+030h], dx                 ; 26 89 55 30
    93039268    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    93149279    xor bl, bl                                ; 30 db
    93159280    mov BH, strict byte 01eh                  ; b7 1e
    9316     jmp short 06552h                          ; eb 05
     9281    jmp short 064fbh                          ; eb 05
    93179282    cmp bh, 040h                              ; 80 ff 40
    9318     jnc short 06567h                          ; 73 15
     9283    jnc short 06510h                          ; 73 15
    93199284    mov al, bh                                ; 88 f8
    93209285    xor ah, ah                                ; 30 e4
     
    93229287    add dx, ax                                ; 01 c2
    93239288    mov ax, word [bp+004h]                    ; 8b 46 04
    9324     call 01652h                               ; e8 f1 b0
     9289    call 01652h                               ; e8 48 b1
    93259290    add bl, al                                ; 00 c3
    93269291    db  0feh, 0c7h
    93279292    ; inc bh                                    ; fe c7
    9328     jmp short 0654dh                          ; eb e6
     9293    jmp short 064f6h                          ; eb e6
    93299294    neg bl                                    ; f6 db
    93309295    mov es, [bp-00ah]                         ; 8e 46 f6
     
    93349299    mov dx, strict word 00074h                ; ba 74 00
    93359300    mov ax, strict word 00040h                ; b8 40 00
    9336     call 01660h                               ; e8 e1 b0
     9301    call 01660h                               ; e8 38 b1
    93379302    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    93389303    mov sp, bp                                ; 89 ec
     
    93409305    retn                                      ; c3
    93419306    cmp ax, strict word 00006h                ; 3d 06 00
    9342     je short 06570h                           ; 74 e4
     9307    je short 06519h                           ; 74 e4
    93439308    cmp ax, strict word 00001h                ; 3d 01 00
    9344     jc short 0659dh                           ; 72 0c
    9345     jbe short 06570h                          ; 76 dd
     9309    jc short 06546h                           ; 72 0c
     9310    jbe short 06519h                          ; 76 dd
    93469311    cmp ax, strict word 00003h                ; 3d 03 00
    9347     jc short 0659dh                           ; 72 05
     9312    jc short 06546h                           ; 72 05
    93489313    cmp ax, strict word 00004h                ; 3d 04 00
    9349     jbe short 06570h                          ; 76 d3
     9314    jbe short 06519h                          ; 76 d3
    93509315    mov ax, word [bp+016h]                    ; 8b 46 16
    93519316    xor ah, ah                                ; 30 e4
     
    93569321    mov dx, strict word 00074h                ; ba 74 00
    93579322    mov ax, strict word 00040h                ; b8 40 00
    9358     call 01660h                               ; e8 aa b0
     9323    call 01660h                               ; e8 01 b1
    93599324    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9360     jmp short 06583h                          ; eb c7
    9361 _int14_function:                             ; 0xf65bc LB 0x157
     9325    jmp short 0652ch                          ; eb c7
     9326_int14_function:                             ; 0xf6565 LB 0x157
    93629327    push bp                                   ; 55
    93639328    mov bp, sp                                ; 89 e5
     
    93679332    sal dx, 1                                 ; d1 e2
    93689333    mov ax, strict word 00040h                ; b8 40 00
    9369     call 0166eh                               ; e8 a2 b0
     9334    call 0166eh                               ; e8 f9 b0
    93709335    mov si, ax                                ; 89 c6
    93719336    mov bx, ax                                ; 89 c3
     
    93739338    add dx, strict byte 0007ch                ; 83 c2 7c
    93749339    mov ax, strict word 00040h                ; b8 40 00
    9375     call 01652h                               ; e8 76 b0
     9340    call 01652h                               ; e8 cd b0
    93769341    mov cl, al                                ; 88 c1
    93779342    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9378     jnc short 065e8h                          ; 73 04
     9343    jnc short 06591h                          ; 73 04
    93799344    test si, si                               ; 85 f6
    9380     jnbe short 065ebh                         ; 77 03
    9381     jmp near 06709h                           ; e9 1e 01
     9345    jnbe short 06594h                         ; 77 03
     9346    jmp near 066b2h                           ; e9 1e 01
    93829347    mov al, byte [bp+013h]                    ; 8a 46 13
    93839348    cmp AL, strict byte 001h                  ; 3c 01
    9384     jc short 065ffh                           ; 72 0d
    9385     jbe short 0665ah                          ; 76 66
     9349    jc short 065a8h                           ; 72 0d
     9350    jbe short 06603h                          ; 76 66
    93869351    cmp AL, strict byte 003h                  ; 3c 03
    9387     je short 06652h                           ; 74 5a
     9352    je short 065fbh                           ; 74 5a
    93889353    cmp AL, strict byte 002h                  ; 3c 02
    9389     je short 06655h                           ; 74 59
    9390     jmp near 06703h                           ; e9 04 01
     9354    je short 065feh                           ; 74 59
     9355    jmp near 066ach                           ; e9 04 01
    93919356    test al, al                               ; 84 c0
    9392     jne short 06657h                          ; 75 54
     9357    jne short 06600h                          ; 75 54
    93939358    lea dx, [bx+003h]                         ; 8d 57 03
    93949359    in AL, DX                                 ; ec
     
    94249389    ; sub ah, ah                                ; 2a e4
    94259390    mov byte [bp+012h], al                    ; 88 46 12
    9426     jmp near 066e4h                           ; e9 9f 00
     9391    jmp near 0668dh                           ; e9 9f 00
    94279392    mov AL, strict byte 017h                  ; b0 17
    94289393    mov dx, bx                                ; 89 da
     
    94319396    mov AL, strict byte 004h                  ; b0 04
    94329397    out DX, AL                                ; ee
    9433     jmp short 06627h                          ; eb d5
    9434     jmp near 066f2h                           ; e9 9d 00
    9435     jmp short 066a8h                          ; eb 51
    9436     jmp near 06703h                           ; e9 a9 00
     9398    jmp short 065d0h                          ; eb d5
     9399    jmp near 0669bh                           ; e9 9d 00
     9400    jmp short 06651h                          ; eb 51
     9401    jmp near 066ach                           ; e9 a9 00
    94379402    mov dx, strict word 0006ch                ; ba 6c 00
    94389403    mov ax, strict word 00040h                ; b8 40 00
    9439     call 0166eh                               ; e8 0b b0
     9404    call 0166eh                               ; e8 62 b0
    94409405    mov si, ax                                ; 89 c6
    94419406    lea dx, [bx+005h]                         ; 8d 57 05
     
    94459410    and ax, strict word 00060h                ; 25 60 00
    94469411    cmp ax, strict word 00060h                ; 3d 60 00
    9447     je short 0668ah                           ; 74 17
     9412    je short 06633h                           ; 74 17
    94489413    test cl, cl                               ; 84 c9
    9449     je short 0668ah                           ; 74 13
     9414    je short 06633h                           ; 74 13
    94509415    mov dx, strict word 0006ch                ; ba 6c 00
    94519416    mov ax, strict word 00040h                ; b8 40 00
    9452     call 0166eh                               ; e8 ee af
     9417    call 0166eh                               ; e8 45 b0
    94539418    cmp ax, si                                ; 39 f0
    9454     je short 06665h                           ; 74 e1
     9419    je short 0660eh                           ; 74 e1
    94559420    mov si, ax                                ; 89 c6
    94569421    db  0feh, 0c9h
    94579422    ; dec cl                                    ; fe c9
    9458     jmp short 06665h                          ; eb db
     9423    jmp short 0660eh                          ; eb db
    94599424    test cl, cl                               ; 84 c9
    9460     je short 06694h                           ; 74 06
     9425    je short 0663dh                           ; 74 06
    94619426    mov al, byte [bp+012h]                    ; 8a 46 12
    94629427    mov dx, bx                                ; 89 da
     
    94689433    mov byte [bp+013h], al                    ; 88 46 13
    94699434    test cl, cl                               ; 84 c9
    9470     jne short 066e4h                          ; 75 43
     9435    jne short 0668dh                          ; 75 43
    94719436    or AL, strict byte 080h                   ; 0c 80
    94729437    mov byte [bp+013h], al                    ; 88 46 13
    9473     jmp short 066e4h                          ; eb 3c
     9438    jmp short 0668dh                          ; eb 3c
    94749439    mov dx, strict word 0006ch                ; ba 6c 00
    94759440    mov ax, strict word 00040h                ; b8 40 00
    9476     call 0166eh                               ; e8 bd af
     9441    call 0166eh                               ; e8 14 b0
    94779442    mov si, ax                                ; 89 c6
    94789443    lea dx, [bx+005h]                         ; 8d 57 05
     
    94819446    ; sub ah, ah                                ; 2a e4
    94829447    test AL, strict byte 001h                 ; a8 01
    9483     jne short 066d4h                          ; 75 17
     9448    jne short 0667dh                          ; 75 17
    94849449    test cl, cl                               ; 84 c9
    9485     je short 066d4h                           ; 74 13
     9450    je short 0667dh                           ; 74 13
    94869451    mov dx, strict word 0006ch                ; ba 6c 00
    94879452    mov ax, strict word 00040h                ; b8 40 00
    9488     call 0166eh                               ; e8 a4 af
     9453    call 0166eh                               ; e8 fb af
    94899454    cmp ax, si                                ; 39 f0
    9490     je short 066b3h                           ; 74 e5
     9455    je short 0665ch                           ; 74 e5
    94919456    mov si, ax                                ; 89 c6
    94929457    db  0feh, 0c9h
    94939458    ; dec cl                                    ; fe c9
    9494     jmp short 066b3h                          ; eb df
     9459    jmp short 0665ch                          ; eb df
    94959460    test cl, cl                               ; 84 c9
    9496     je short 066eah                           ; 74 12
     9461    je short 06693h                           ; 74 12
    94979462    mov byte [bp+013h], 000h                  ; c6 46 13 00
    94989463    mov dx, bx                                ; 89 da
     
    95029467    mov byte [bp+012h], al                    ; 88 46 12
    95039468    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9504     jmp short 0670dh                          ; eb 23
     9469    jmp short 066b6h                          ; eb 23
    95059470    lea dx, [bx+005h]                         ; 8d 57 05
    95069471    in AL, DX                                 ; ec
    95079472    db  02ah, 0e4h
    95089473    ; sub ah, ah                                ; 2a e4
    9509     jmp short 066a3h                          ; eb b1
     9474    jmp short 0664ch                          ; eb b1
    95109475    lea dx, [si+005h]                         ; 8d 54 05
    95119476    in AL, DX                                 ; ec
     
    95179482    db  02ah, 0e4h
    95189483    ; sub ah, ah                                ; 2a e4
    9519     jmp short 066e1h                          ; eb de
     9484    jmp short 0668ah                          ; eb de
    95209485    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9521     jmp short 0670dh                          ; eb 04
     9486    jmp short 066b6h                          ; eb 04
    95229487    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    95239488    lea sp, [bp-002h]                         ; 8d 66 fe
     
    95259490    pop bp                                    ; 5d
    95269491    retn                                      ; c3
    9527 set_enable_a20_:                             ; 0xf6713 LB 0x30
     9492set_enable_a20_:                             ; 0xf66bc LB 0x30
    95289493    push bp                                   ; 55
    95299494    mov bp, sp                                ; 89 e5
     
    95389503    mov cl, al                                ; 88 c1
    95399504    test bx, bx                               ; 85 db
    9540     je short 0672ch                           ; 74 05
     9505    je short 066d5h                           ; 74 05
    95419506    or AL, strict byte 002h                   ; 0c 02
    95429507    out DX, AL                                ; ee
    9543     jmp short 0672fh                          ; eb 03
     9508    jmp short 066d8h                          ; eb 03
    95449509    and AL, strict byte 0fdh                  ; 24 fd
    95459510    out DX, AL                                ; ee
    95469511    test cl, 002h                             ; f6 c1 02
    9547     je short 06739h                           ; 74 05
     9512    je short 066e2h                           ; 74 05
    95489513    mov ax, strict word 00001h                ; b8 01 00
    9549     jmp short 0673bh                          ; eb 02
     9514    jmp short 066e4h                          ; eb 02
    95509515    xor ax, ax                                ; 31 c0
    95519516    lea sp, [bp-006h]                         ; 8d 66 fa
     
    95559520    pop bp                                    ; 5d
    95569521    retn                                      ; c3
    9557 set_e820_range_:                             ; 0xf6743 LB 0x8b
     9522set_e820_range_:                             ; 0xf66ec LB 0x8b
    95589523    push si                                   ; 56
    95599524    push bp                                   ; 55
     
    95859550    retn 0000ah                               ; c2 0a 00
    95869551    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
    9587     db  000h, 06eh, 06ch, 00ah, 068h, 01eh, 068h, 0b6h, 068h, 0bch, 068h, 0c1h, 068h, 0c6h, 068h, 06eh
    9588     db  069h, 00ah, 06bh, 029h, 06bh, 0afh, 068h, 0afh, 068h, 0f3h, 06bh, 01eh, 06ch, 031h, 06ch, 040h
    9589     db  06ch, 0b6h, 068h, 049h, 06ch
    9590 _int15_function:                             ; 0xf67ce LB 0x4d6
     9552    db  000h, 017h, 06ch, 0b3h, 067h, 0c7h, 067h, 05fh, 068h, 065h, 068h, 06ah, 068h, 06fh, 068h, 017h
     9553    db  069h, 0b3h, 06ah, 0d2h, 06ah, 058h, 068h, 058h, 068h, 09ch, 06bh, 0c7h, 06bh, 0dah, 06bh, 0e9h
     9554    db  06bh, 05fh, 068h, 0f2h, 06bh
     9555_int15_function:                             ; 0xf6777 LB 0x4d6
    95919556    push bp                                   ; 55
    95929557    mov bp, sp                                ; 89 e5
     
    95979562    mov dx, ax                                ; 89 c2
    95989563    cmp ax, 000ech                            ; 3d ec 00
    9599     jnbe short 06814h                         ; 77 35
     9564    jnbe short 067bdh                         ; 77 35
    96009565    push CS                                   ; 0e
    96019566    pop ES                                    ; 07
    96029567    mov cx, strict word 00012h                ; b9 12 00
    9603     mov di, 06799h                            ; bf 99 67
     9568    mov di, 06742h                            ; bf 42 67
    96049569    repne scasb                               ; f2 ae
    96059570    sal cx, 1                                 ; d1 e1
    96069571    mov di, cx                                ; 89 cf
    9607     mov si, word [cs:di+067aah]               ; 2e 8b b5 aa 67
     9572    mov si, word [cs:di+06753h]               ; 2e 8b b5 53 67
    96089573    mov ax, word [bp+012h]                    ; 8b 46 12
    96099574    xor ah, ah                                ; 30 e4
     
    96189583    xor ah, ah                                ; 30 e4
    96199584    cmp ax, 000c0h                            ; 3d c0 00
    9620     je short 06817h                           ; 74 03
    9621     jmp near 06c6eh                           ; e9 57 04
     9585    je short 067c0h                           ; 74 03
     9586    jmp near 06c17h                           ; e9 57 04
    96229587    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9623     jmp near 06c15h                           ; e9 f7 03
     9588    jmp near 06bbeh                           ; e9 f7 03
    96249589    mov dx, ax                                ; 89 c2
    96259590    cmp ax, strict word 00001h                ; 3d 01 00
    9626     jc short 06833h                           ; 72 0e
    9627     jbe short 06847h                          ; 76 20
     9591    jc short 067dch                           ; 72 0e
     9592    jbe short 067f0h                          ; 76 20
    96289593    cmp ax, strict word 00003h                ; 3d 03 00
    9629     je short 06874h                           ; 74 48
     9594    je short 0681dh                           ; 74 48
    96309595    cmp ax, strict word 00002h                ; 3d 02 00
    9631     je short 06857h                           ; 74 26
    9632     jmp short 06881h                          ; eb 4e
     9596    je short 06800h                           ; 74 26
     9597    jmp short 0682ah                          ; eb 4e
    96339598    test ax, ax                               ; 85 c0
    9634     jne short 06881h                          ; 75 4a
     9599    jne short 0682ah                          ; 75 4a
    96359600    xor ax, ax                                ; 31 c0
    9636     call 06713h                               ; e8 d7 fe
     9601    call 066bch                               ; e8 d7 fe
    96379602    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    96389603    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9639     jmp near 068afh                           ; e9 68 00
     9604    jmp near 06858h                           ; e9 68 00
    96409605    mov ax, strict word 00001h                ; b8 01 00
    9641     call 06713h                               ; e8 c6 fe
     9606    call 066bch                               ; e8 c6 fe
    96429607    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    96439608    mov byte [bp+013h], dh                    ; 88 76 13
    9644     jmp near 068afh                           ; e9 58 00
     9609    jmp near 06858h                           ; e9 58 00
    96459610    mov dx, 00092h                            ; ba 92 00
    96469611    in AL, DX                                 ; ec
     
    96549619    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    96559620    mov byte [bp+013h], ah                    ; 88 66 13
    9656     jmp near 068afh                           ; e9 3b 00
     9621    jmp near 06858h                           ; e9 3b 00
    96579622    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    96589623    mov byte [bp+013h], ah                    ; 88 66 13
    96599624    mov word [bp+00ch], ax                    ; 89 46 0c
    9660     jmp near 068afh                           ; e9 2e 00
     9625    jmp near 06858h                           ; e9 2e 00
    96619626    mov bx, 00da0h                            ; bb a0 0d
    96629627    mov cx, ds                                ; 8c d9
    96639628    mov ax, strict word 00004h                ; b8 04 00
    9664     call 01933h                               ; e8 a7 b0
     9629    call 01933h                               ; e8 fe b0
    96659630    mov ax, word [bp+012h]                    ; 8b 46 12
    96669631    xor ah, ah                                ; 30 e4
     
    96709635    mov ax, strict word 00004h                ; b8 04 00
    96719636    push ax                                   ; 50
    9672     call 01976h                               ; e8 d9 b0
     9637    call 01976h                               ; e8 30 b1
    96739638    add sp, strict byte 00006h                ; 83 c4 06
    96749639    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    96839648    retn                                      ; c3
    96849649    mov word [bp+018h], bx                    ; 89 5e 18
    9685     jmp near 06968h                           ; e9 ac 00
     9650    jmp near 06911h                           ; e9 ac 00
    96869651    mov word [bp+018h], bx                    ; 89 5e 18
    9687     jmp short 068afh                          ; eb ee
     9652    jmp short 06858h                          ; eb ee
    96889653    mov word [bp+018h], cx                    ; 89 4e 18
    9689     jmp short 068ach                          ; eb e6
     9654    jmp short 06855h                          ; eb e6
    96909655    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9691     jne short 0693bh                          ; 75 6f
     9656    jne short 068e4h                          ; 75 6f
    96929657    mov dx, 000a0h                            ; ba a0 00
    96939658    mov ax, strict word 00040h                ; b8 40 00
    9694     call 01652h                               ; e8 7d ad
     9659    call 01652h                               ; e8 d4 ad
    96959660    test AL, strict byte 001h                 ; a8 01
    9696     jne short 06938h                          ; 75 5f
     9661    jne short 068e1h                          ; 75 5f
    96979662    mov bx, strict word 00001h                ; bb 01 00
    96989663    mov dx, 000a0h                            ; ba a0 00
    96999664    mov ax, strict word 00040h                ; b8 40 00
    9700     call 01660h                               ; e8 7b ad
     9665    call 01660h                               ; e8 d2 ad
    97019666    mov bx, word [bp+014h]                    ; 8b 5e 14
    97029667    mov dx, 00098h                            ; ba 98 00
    97039668    mov ax, strict word 00040h                ; b8 40 00
    9704     call 0167ch                               ; e8 8b ad
     9669    call 0167ch                               ; e8 e2 ad
    97059670    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    97069671    mov dx, 0009ah                            ; ba 9a 00
    97079672    mov ax, strict word 00040h                ; b8 40 00
    9708     call 0167ch                               ; e8 7f ad
     9673    call 0167ch                               ; e8 d6 ad
    97099674    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    97109675    mov dx, 0009ch                            ; ba 9c 00
    97119676    mov ax, strict word 00040h                ; b8 40 00
    9712     call 0167ch                               ; e8 73 ad
     9677    call 0167ch                               ; e8 ca ad
    97139678    mov bx, word [bp+010h]                    ; 8b 5e 10
    97149679    mov dx, 0009eh                            ; ba 9e 00
    97159680    mov ax, strict word 00040h                ; b8 40 00
    9716     call 0167ch                               ; e8 67 ad
     9681    call 0167ch                               ; e8 be ad
    97179682    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97189683    mov dx, 000a1h                            ; ba a1 00
     
    97239688    out DX, AL                                ; ee
    97249689    mov ax, strict word 0000bh                ; b8 0b 00
    9725     call 016aeh                               ; e8 86 ad
     9690    call 016aeh                               ; e8 dd ad
    97269691    mov dl, al                                ; 88 c2
    97279692    or dl, 040h                               ; 80 ca 40
    97289693    xor dh, dh                                ; 30 f6
    97299694    mov ax, strict word 0000bh                ; b8 0b 00
    9730     call 016c9h                               ; e8 94 ad
    9731     jmp near 068afh                           ; e9 77 ff
    9732     jmp near 06c0ch                           ; e9 d1 02
     9695    call 016c9h                               ; e8 eb ad
     9696    jmp near 06858h                           ; e9 77 ff
     9697    jmp near 06bb5h                           ; e9 d1 02
    97339698    cmp ax, strict word 00001h                ; 3d 01 00
    9734     jne short 0695ch                          ; 75 1c
     9699    jne short 06905h                          ; 75 1c
    97359700    xor bx, bx                                ; 31 db
    97369701    mov dx, 000a0h                            ; ba a0 00
    97379702    mov ax, strict word 00040h                ; b8 40 00
    9738     call 01660h                               ; e8 15 ad
     9703    call 01660h                               ; e8 6c ad
    97399704    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97409705    mov ax, strict word 0000bh                ; b8 0b 00
    9741     call 016aeh                               ; e8 59 ad
     9706    call 016aeh                               ; e8 b0 ad
    97429707    mov dl, al                                ; 88 c2
    97439708    and dl, 0bfh                              ; 80 e2 bf
    9744     jmp short 0692dh                          ; eb d1
     9709    jmp short 068d6h                          ; eb d1
    97459710    mov word [bp+018h], bx                    ; 89 5e 18
    97469711    mov ax, dx                                ; 89 d0
     
    97509715    or dx, ax                                 ; 09 c2
    97519716    mov word [bp+012h], dx                    ; 89 56 12
    9752     jmp near 068afh                           ; e9 41 ff
     9717    jmp near 06858h                           ; e9 41 ff
    97539718    cli                                       ; fa
    97549719    mov ax, strict word 00001h                ; b8 01 00
    9755     call 06713h                               ; e8 9e fd
     9720    call 066bch                               ; e8 9e fd
    97569721    mov di, ax                                ; 89 c7
    97579722    mov CL, strict byte 004h                  ; b1 04
     
    97659730    mov cl, al                                ; 88 c1
    97669731    cmp si, dx                                ; 39 d6
    9767     jnc short 06992h                          ; 73 02
     9732    jnc short 0693bh                          ; 73 02
    97689733    db  0feh, 0c1h
    97699734    ; inc cl                                    ; fe c1
     
    97729737    mov ax, word [bp+014h]                    ; 8b 46 14
    97739738    mov bx, strict word 0002fh                ; bb 2f 00
    9774     call 0167ch                               ; e8 db ac
     9739    call 0167ch                               ; e8 32 ad
    97759740    mov dx, word [bp+006h]                    ; 8b 56 06
    97769741    add dx, strict byte 0000ah                ; 83 c2 0a
    97779742    mov ax, word [bp+014h]                    ; 8b 46 14
    97789743    mov bx, si                                ; 89 f3
    9779     call 0167ch                               ; e8 cd ac
     9744    call 0167ch                               ; e8 24 ad
    97809745    mov bl, cl                                ; 88 cb
    97819746    xor bh, bh                                ; 30 ff
     
    97839748    add dx, strict byte 0000ch                ; 83 c2 0c
    97849749    mov ax, word [bp+014h]                    ; 8b 46 14
    9785     call 01660h                               ; e8 a1 ac
     9750    call 01660h                               ; e8 f8 ac
    97869751    mov dx, word [bp+006h]                    ; 8b 56 06
    97879752    add dx, strict byte 0000dh                ; 83 c2 0d
    97889753    mov ax, word [bp+014h]                    ; 8b 46 14
    97899754    mov bx, 00093h                            ; bb 93 00
    9790     call 01660h                               ; e8 92 ac
     9755    call 01660h                               ; e8 e9 ac
    97919756    mov dx, word [bp+006h]                    ; 8b 56 06
    97929757    add dx, strict byte 0000eh                ; 83 c2 0e
    97939758    mov ax, word [bp+014h]                    ; 8b 46 14
    97949759    xor bx, bx                                ; 31 db
    9795     call 0167ch                               ; e8 a0 ac
     9760    call 0167ch                               ; e8 f7 ac
    97969761    mov dx, word [bp+006h]                    ; 8b 56 06
    97979762    add dx, strict byte 00020h                ; 83 c2 20
    97989763    mov ax, word [bp+014h]                    ; 8b 46 14
    97999764    mov bx, strict word 0ffffh                ; bb ff ff
    9800     call 0167ch                               ; e8 91 ac
     9765    call 0167ch                               ; e8 e8 ac
    98019766    mov dx, word [bp+006h]                    ; 8b 56 06
    98029767    add dx, strict byte 00022h                ; 83 c2 22
    98039768    mov ax, word [bp+014h]                    ; 8b 46 14
    98049769    xor bx, bx                                ; 31 db
    9805     call 0167ch                               ; e8 83 ac
     9770    call 0167ch                               ; e8 da ac
    98069771    mov dx, word [bp+006h]                    ; 8b 56 06
    98079772    add dx, strict byte 00024h                ; 83 c2 24
    98089773    mov ax, word [bp+014h]                    ; 8b 46 14
    98099774    mov bx, strict word 0000fh                ; bb 0f 00
    9810     call 01660h                               ; e8 58 ac
     9775    call 01660h                               ; e8 af ac
    98119776    mov dx, word [bp+006h]                    ; 8b 56 06
    98129777    add dx, strict byte 00025h                ; 83 c2 25
    98139778    mov ax, word [bp+014h]                    ; 8b 46 14
    98149779    mov bx, 0009bh                            ; bb 9b 00
    9815     call 01660h                               ; e8 49 ac
     9780    call 01660h                               ; e8 a0 ac
    98169781    mov dx, word [bp+006h]                    ; 8b 56 06
    98179782    add dx, strict byte 00026h                ; 83 c2 26
    98189783    mov ax, word [bp+014h]                    ; 8b 46 14
    98199784    xor bx, bx                                ; 31 db
    9820     call 0167ch                               ; e8 57 ac
     9785    call 0167ch                               ; e8 ae ac
    98219786    mov ax, ss                                ; 8c d0
    98229787    mov CL, strict byte 004h                  ; b1 04
     
    98309795    mov ax, word [bp+014h]                    ; 8b 46 14
    98319796    mov bx, strict word 0ffffh                ; bb ff ff
    9832     call 0167ch                               ; e8 3a ac
     9797    call 0167ch                               ; e8 91 ac
    98339798    mov dx, word [bp+006h]                    ; 8b 56 06
    98349799    add dx, strict byte 0002ah                ; 83 c2 2a
    98359800    mov ax, word [bp+014h]                    ; 8b 46 14
    98369801    mov bx, si                                ; 89 f3
    9837     call 0167ch                               ; e8 2c ac
     9802    call 0167ch                               ; e8 83 ac
    98389803    mov bl, cl                                ; 88 cb
    98399804    xor bh, bh                                ; 30 ff
     
    98419806    add dx, strict byte 0002ch                ; 83 c2 2c
    98429807    mov ax, word [bp+014h]                    ; 8b 46 14
    9843     call 01660h                               ; e8 00 ac
     9808    call 01660h                               ; e8 57 ac
    98449809    mov dx, word [bp+006h]                    ; 8b 56 06
    98459810    add dx, strict byte 0002dh                ; 83 c2 2d
    98469811    mov ax, word [bp+014h]                    ; 8b 46 14
    98479812    mov bx, 00093h                            ; bb 93 00
    9848     call 01660h                               ; e8 f1 ab
     9813    call 01660h                               ; e8 48 ac
    98499814    mov dx, word [bp+006h]                    ; 8b 56 06
    98509815    add dx, strict byte 0002eh                ; 83 c2 2e
    98519816    mov ax, word [bp+014h]                    ; 8b 46 14
    98529817    xor bx, bx                                ; 31 db
    9853     call 0167ch                               ; e8 ff ab
     9818    call 0167ch                               ; e8 56 ac
    98549819    mov si, word [bp+006h]                    ; 8b 76 06
    98559820    mov es, [bp+014h]                         ; 8e 46 14
     
    98629827    mov word [00467h], sp                     ; 89 26 67 04
    98639828    mov [00469h], ss                          ; 8c 16 69 04
    9864     call 06a99h                               ; e8 00 00
     9829    call 06a42h                               ; e8 00 00
    98659830    pop di                                    ; 5f
    98669831    add di, strict byte 0001bh                ; 83 c7 1b
     
    98689833    push di                                   ; 57
    98699834    lgdt [es:si+008h]                         ; 26 0f 01 54 08
    9870     lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
     9835    lidt [cs:0efefh]                          ; 2e 0f 01 1e ef ef
    98719836    mov eax, cr0                              ; 0f 20 c0
    98729837    or AL, strict byte 001h                   ; 0c 01
     
    98859850    cld                                       ; fc
    98869851    rep movsw                                 ; f3 a5
    9887     call 06acdh                               ; e8 00 00
     9852    call 06a76h                               ; e8 00 00
    98889853    pop ax                                    ; 58
    98899854    push 0f000h                               ; 68 00 f0
     
    98979862    mov cr0, eax                              ; 0f 22 c0
    98989863    retf                                      ; cb
    9899     lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
     9864    lidt [cs:0eff5h]                          ; 2e 0f 01 1e f5 ef
    99009865    db  033h, 0c0h
    99019866    ; xor ax, ax                                ; 33 c0
     
    99069871    pop DS                                    ; 1f
    99079872    mov ax, di                                ; 89 f8
    9908     call 06713h                               ; e8 15 fc
     9873    call 066bch                               ; e8 15 fc
    99099874    sti                                       ; fb
    99109875    mov byte [bp+013h], 000h                  ; c6 46 13 00
    99119876    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9912     jmp near 068afh                           ; e9 a5 fd
     9877    jmp near 06858h                           ; e9 a5 fd
    99139878    mov ax, strict word 00031h                ; b8 31 00
    9914     call 016aeh                               ; e8 9e ab
     9879    call 016aeh                               ; e8 f5 ab
    99159880    mov dh, al                                ; 88 c6
    99169881    mov ax, strict word 00030h                ; b8 30 00
    9917     call 016aeh                               ; e8 96 ab
     9882    call 016aeh                               ; e8 ed ab
    99189883    mov dl, al                                ; 88 c2
    99199884    mov word [bp+012h], dx                    ; 89 56 12
    99209885    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9921     jbe short 06b03h                          ; 76 e1
     9886    jbe short 06aach                          ; 76 e1
    99229887    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    9923     jmp short 06b03h                          ; eb da
     9888    jmp short 06aach                          ; eb da
    99249889    cli                                       ; fa
    99259890    mov ax, strict word 00001h                ; b8 01 00
    9926     call 06713h                               ; e8 e3 fb
     9891    call 066bch                               ; e8 e3 fb
    99279892    mov dx, word [bp+006h]                    ; 8b 56 06
    99289893    add dx, strict byte 00038h                ; 83 c2 38
    99299894    mov ax, word [bp+014h]                    ; 8b 46 14
    99309895    mov bx, strict word 0ffffh                ; bb ff ff
    9931     call 0167ch                               ; e8 3d ab
     9896    call 0167ch                               ; e8 94 ab
    99329897    mov dx, word [bp+006h]                    ; 8b 56 06
    99339898    add dx, strict byte 0003ah                ; 83 c2 3a
    99349899    mov ax, word [bp+014h]                    ; 8b 46 14
    99359900    xor bx, bx                                ; 31 db
    9936     call 0167ch                               ; e8 2f ab
     9901    call 0167ch                               ; e8 86 ab
    99379902    mov dx, word [bp+006h]                    ; 8b 56 06
    99389903    add dx, strict byte 0003ch                ; 83 c2 3c
    99399904    mov ax, word [bp+014h]                    ; 8b 46 14
    99409905    mov bx, strict word 0000fh                ; bb 0f 00
    9941     call 01660h                               ; e8 04 ab
     9906    call 01660h                               ; e8 5b ab
    99429907    mov dx, word [bp+006h]                    ; 8b 56 06
    99439908    add dx, strict byte 0003dh                ; 83 c2 3d
    99449909    mov ax, word [bp+014h]                    ; 8b 46 14
    99459910    mov bx, 0009bh                            ; bb 9b 00
    9946     call 01660h                               ; e8 f5 aa
     9911    call 01660h                               ; e8 4c ab
    99479912    mov dx, word [bp+006h]                    ; 8b 56 06
    99489913    add dx, strict byte 0003eh                ; 83 c2 3e
    99499914    mov ax, word [bp+014h]                    ; 8b 46 14
    99509915    xor bx, bx                                ; 31 db
    9951     call 0167ch                               ; e8 03 ab
     9916    call 0167ch                               ; e8 5a ab
    99529917    mov AL, strict byte 011h                  ; b0 11
    99539918    mov dx, strict word 00020h                ; ba 20 00
     
    99789943    out DX, AL                                ; ee
    99799944    mov si, word [bp+006h]                    ; 8b 76 06
    9980     call 06bb7h                               ; e8 00 00
     9945    call 06b60h                               ; e8 00 00
    99819946    pop di                                    ; 5f
    99829947    add di, strict byte 00018h                ; 83 c7 18
     
    100069971    push cx                                   ; 51
    100079972    retf                                      ; cb
    10008     jmp near 068afh                           ; e9 bc fc
     9973    jmp near 06858h                           ; e9 bc fc
    100099974    mov bx, 00da0h                            ; bb a0 0d
    100109975    mov cx, ds                                ; 8c d9
    100119976    mov ax, strict word 00004h                ; b8 04 00
    10012     call 01933h                               ; e8 35 ad
     9977    call 01933h                               ; e8 8c ad
    100139978    mov ax, 0086eh                            ; b8 6e 08
    100149979    push ax                                   ; 50
    100159980    mov ax, strict word 00004h                ; b8 04 00
    100169981    push ax                                   ; 50
    10017     call 01976h                               ; e8 6d ad
     9982    call 01976h                               ; e8 c4 ad
    100189983    add sp, strict byte 00004h                ; 83 c4 04
    100199984    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    100229987    or ah, 086h                               ; 80 cc 86
    100239988    mov word [bp+012h], ax                    ; 89 46 12
    10024     jmp near 068afh                           ; e9 91 fc
     9989    jmp near 06858h                           ; e9 91 fc
    100259990    mov word [bp+018h], cx                    ; 89 4e 18
    100269991    mov word [bp+012h], ax                    ; 89 46 12
    100279992    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    100289993    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    10029     jmp near 068afh                           ; e9 7e fc
     9994    jmp near 06858h                           ; e9 7e fc
    100309995    mov dx, strict word 0000eh                ; ba 0e 00
    100319996    mov ax, strict word 00040h                ; b8 40 00
    10032     call 0166eh                               ; e8 34 aa
     9997    call 0166eh                               ; e8 8b aa
    100339998    mov word [bp+014h], ax                    ; 89 46 14
    10034     jmp near 06b03h                           ; e9 c3 fe
     9999    jmp near 06aach                           ; e9 c3 fe
    1003510000    mov ax, 0089dh                            ; b8 9d 08
    1003610001    push ax                                   ; 50
    1003710002    mov ax, strict word 00008h                ; b8 08 00
    10038     jmp short 06c05h                          ; eb bc
     10003    jmp short 06baeh                          ; eb bc
    1003910004    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    10040     jne short 06c6eh                          ; 75 1f
     10005    jne short 06c17h                          ; 75 1f
    1004110006    mov word [bp+012h], ax                    ; 89 46 12
    1004210007    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1004310008    xor ah, ah                                ; 30 e4
    1004410009    cmp ax, strict word 00001h                ; 3d 01 00
    10045     jc short 06c67h                           ; 72 0b
     10010    jc short 06c10h                           ; 72 0b
    1004610011    cmp ax, strict word 00003h                ; 3d 03 00
    10047     jnbe short 06c67h                         ; 77 06
     10012    jnbe short 06c10h                         ; 77 06
    1004810013    mov word [bp+018h], cx                    ; 89 4e 18
    10049     jmp near 068afh                           ; e9 48 fc
     10014    jmp near 06858h                           ; e9 48 fc
    1005010015    or byte [bp+018h], 001h                   ; 80 4e 18 01
    10051     jmp near 068afh                           ; e9 41 fc
     10016    jmp near 06858h                           ; e9 41 fc
    1005210017    mov bx, 00da0h                            ; bb a0 0d
    1005310018    mov cx, ds                                ; 8c d9
    1005410019    mov ax, strict word 00004h                ; b8 04 00
    10055     call 01933h                               ; e8 ba ac
     10020    call 01933h                               ; e8 11 ad
    1005610021    push word [bp+00ch]                       ; ff 76 0c
    1005710022    push word [bp+012h]                       ; ff 76 12
     
    1006010025    mov ax, strict word 00004h                ; b8 04 00
    1006110026    push ax                                   ; 50
    10062     call 01976h                               ; e8 ec ac
     10027    call 01976h                               ; e8 43 ad
    1006310028    add sp, strict byte 00008h                ; 83 c4 08
    10064     jmp near 06c0ch                           ; e9 7c ff
    10065     cmp AL, strict byte 06eh                  ; 3c 6e
    10066     o32 outsb                                 ; 66 6e
    10067     mov si, 0e36eh                            ; be 6e e3
     10029    jmp near 06bb5h                           ; e9 7c ff
     10030    in ax, 06dh                               ; e5 6d
     10031    movd mm4, [bx+06eh]                       ; 0f 6e 67 6e
     10032    mov [bp-054h], gs                         ; 8c 6e ac
    1006810033    outsb                                     ; 6e
    10069     add bp, word [bx+024h]                    ; 03 6f 24
     10034    int 06eh                                  ; cd 6e
     10035    rep outsb                                 ; f3 6e
     10036    sbb word [bx+056h], bp                    ; 19 6f 56
    1007010037    outsw                                     ; 6f
    10071     dec dx                                    ; 4a
     10038    db  08ah
    1007210039    outsw                                     ; 6f
    10073     jo short 06d0fh                           ; 70 6f
    10074     lodsw                                     ; ad
    10075     outsw                                     ; 6f
    10076     loope 06d13h                              ; e1 6f
    10077 _int15_function32:                           ; 0xf6ca4 LB 0x3cf
     10040_int15_function32:                           ; 0xf6c4d LB 0x3cf
    1007810041    push bp                                   ; 55
    1007910042    mov bp, sp                                ; 89 e5
     
    1008710050    xor dh, dh                                ; 30 f6
    1008810051    cmp ax, 000e8h                            ; 3d e8 00
    10089     je short 06d0bh                           ; 74 4b
     10052    je short 06cb4h                           ; 74 4b
    1009010053    cmp ax, 000d0h                            ; 3d d0 00
    10091     je short 06d04h                           ; 74 3f
     10054    je short 06cadh                           ; 74 3f
    1009210055    cmp ax, 00086h                            ; 3d 86 00
    10093     jne short 06d29h                          ; 75 5f
     10056    jne short 06cd2h                          ; 75 5f
    1009410057    sti                                       ; fb
    1009510058    mov ax, word [bp+01ch]                    ; 8b 46 1c
     
    1011010073    db  066h, 00bh, 0c9h
    1011110074    ; or ecx, ecx                               ; 66 0b c9
    10112     je near 06d01h                            ; 0f 84 0e 00
     10075    je near 06caah                            ; 0f 84 0e 00
    1011310076    in AL, strict byte 061h                   ; e4 61
    1011410077    and AL, strict byte 010h                  ; 24 10
    1011510078    db  03ah, 0c4h
    1011610079    ; cmp al, ah                                ; 3a c4
    10117     je short 06cf3h                           ; 74 f8
     10080    je short 06c9ch                           ; 74 f8
    1011810081    db  08ah, 0e0h
    1011910082    ; mov ah, al                                ; 8a e0
    1012010083    dec ecx                                   ; 66 49
    10121     jne short 06cf3h                          ; 75 f2
    10122     jmp near 06eb8h                           ; e9 b4 01
     10084    jne short 06c9ch                          ; 75 f2
     10085    jmp near 06e61h                           ; e9 b4 01
    1012310086    cmp dx, strict byte 0004fh                ; 83 fa 4f
    10124     je short 06d0dh                           ; 74 04
    10125     jmp short 06d29h                          ; eb 1e
    10126     jmp short 06d63h                          ; eb 56
     10087    je short 06cb6h                           ; 74 04
     10088    jmp short 06cd2h                          ; eb 1e
     10089    jmp short 06d0ch                          ; eb 56
    1012710090    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    10128     jne short 06d6dh                          ; 75 59
     10091    jne short 06d16h                          ; 75 59
    1012910092    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    10130     jne short 06d6dh                          ; 75 52
     10093    jne short 06d16h                          ; 75 52
    1013110094    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    10132     jne short 06d6dh                          ; 75 4b
     10095    jne short 06d16h                          ; 75 4b
    1013310096    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    10134     je short 06d2bh                           ; 74 02
    10135     jmp short 06d6dh                          ; eb 42
     10097    je short 06cd4h                           ; 74 02
     10098    jmp short 06d16h                          ; eb 42
    1013610099    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1013710100    or ax, word [bp+008h]                     ; 0b 46 08
    10138     jne short 06d6dh                          ; 75 3a
     10101    jne short 06d16h                          ; 75 3a
    1013910102    mov ax, word [bp+006h]                    ; 8b 46 06
    1014010103    or ax, word [bp+004h]                     ; 0b 46 04
    10141     jne short 06d6dh                          ; 75 32
     10104    jne short 06d16h                          ; 75 32
    1014210105    mov word [bp+028h], bx                    ; 89 5e 28
    1014310106    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1015110114    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    1015210115    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    10153     jmp near 06eb8h                           ; e9 55 01
     10116    jmp near 06e61h                           ; e9 55 01
    1015410117    cmp dx, strict byte 00020h                ; 83 fa 20
    10155     je short 06d73h                           ; 74 0b
     10118    je short 06d1ch                           ; 74 0b
    1015610119    cmp dx, strict byte 00001h                ; 83 fa 01
    10157     je short 06d70h                           ; 74 03
    10158     jmp near 06e8bh                           ; e9 1b 01
    10159     jmp near 07033h                           ; e9 c0 02
     10120    je short 06d19h                           ; 74 03
     10121    jmp near 06e34h                           ; e9 1b 01
     10122    jmp near 06fdch                           ; e9 c0 02
    1016010123    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    10161     jne short 06d6dh                          ; 75 f3
     10124    jne short 06d16h                          ; 75 f3
    1016210125    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    10163     jne short 06d6dh                          ; 75 ec
     10126    jne short 06d16h                          ; 75 ec
    1016410127    mov ax, strict word 00035h                ; b8 35 00
    10165     call 016aeh                               ; e8 27 a9
     10128    call 016aeh                               ; e8 7e a9
    1016610129    mov bl, al                                ; 88 c3
    1016710130    xor bh, bh                                ; 30 ff
     
    1017010133    sal bx, 1                                 ; d1 e3
    1017110134    rcl dx, 1                                 ; d1 d2
    10172     loop 06d90h                               ; e2 fa
     10135    loop 06d39h                               ; e2 fa
    1017310136    mov ax, strict word 00034h                ; b8 34 00
    10174     call 016aeh                               ; e8 12 a9
     10137    call 016aeh                               ; e8 69 a9
    1017510138    xor ah, ah                                ; 30 e4
    1017610139    mov dx, bx                                ; 89 da
     
    1018010143    adc dx, 00100h                            ; 81 d2 00 01
    1018110144    cmp dx, 00100h                            ; 81 fa 00 01
    10182     jc short 06db6h                           ; 72 06
    10183     jne short 06de4h                          ; 75 32
     10145    jc short 06d5fh                           ; 72 06
     10146    jne short 06d8dh                          ; 75 32
    1018410147    test bx, bx                               ; 85 db
    10185     jnbe short 06de4h                         ; 77 2e
     10148    jnbe short 06d8dh                         ; 77 2e
    1018610149    mov ax, strict word 00031h                ; b8 31 00
    10187     call 016aeh                               ; e8 f2 a8
     10150    call 016aeh                               ; e8 49 a9
    1018810151    mov bl, al                                ; 88 c3
    1018910152    xor bh, bh                                ; 30 ff
     
    1019210155    sal bx, 1                                 ; d1 e3
    1019310156    rcl dx, 1                                 ; d1 d2
    10194     loop 06dc5h                               ; e2 fa
     10157    loop 06d6eh                               ; e2 fa
    1019510158    mov ax, strict word 00030h                ; b8 30 00
    10196     call 016aeh                               ; e8 dd a8
     10159    call 016aeh                               ; e8 34 a9
    1019710160    xor ah, ah                                ; 30 e4
    1019810161    or bx, ax                                 ; 09 c3
     
    1020010163    sal bx, 1                                 ; d1 e3
    1020110164    rcl dx, 1                                 ; d1 d2
    10202     loop 06dd8h                               ; e2 fa
     10165    loop 06d81h                               ; e2 fa
    1020310166    add bx, strict byte 00000h                ; 83 c3 00
    1020410167    adc dx, strict byte 00010h                ; 83 d2 10
    1020510168    mov ax, strict word 00062h                ; b8 62 00
    10206     call 016aeh                               ; e8 c4 a8
     10169    call 016aeh                               ; e8 1b a9
    1020710170    xor ah, ah                                ; 30 e4
    1020810171    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1021210175    sal word [bp-00ah], 1                     ; d1 66 f6
    1021310176    rcl word [bp-008h], 1                     ; d1 56 f8
    10214     loop 06df7h                               ; e2 f8
     10177    loop 06da0h                               ; e2 f8
    1021510178    mov ax, strict word 00061h                ; b8 61 00
    10216     call 016aeh                               ; e8 a9 a8
     10179    call 016aeh                               ; e8 00 a9
    1021710180    xor ah, ah                                ; 30 e4
    1021810181    or word [bp-00ah], ax                     ; 09 46 f6
     
    1022110184    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    1022210185    mov ax, strict word 00063h                ; b8 63 00
    10223     call 016aeh                               ; e8 93 a8
     10186    call 016aeh                               ; e8 ea a8
    1022410187    mov byte [bp-006h], al                    ; 88 46 fa
    1022510188    mov byte [bp-004h], al                    ; 88 46 fc
    1022610189    mov ax, word [bp+014h]                    ; 8b 46 14
    1022710190    cmp ax, strict word 00009h                ; 3d 09 00
    10228     jnbe short 06e8bh                         ; 77 62
     10191    jnbe short 06e34h                         ; 77 62
    1022910192    mov si, ax                                ; 89 c6
    1023010193    sal si, 1                                 ; d1 e6
     
    1023310196    mov ax, dx                                ; 89 d0
    1023410197    adc ax, strict word 0ffffh                ; 15 ff ff
    10235     jmp word [cs:si+06c90h]                   ; 2e ff a4 90 6c
     10198    jmp word [cs:si+06c39h]                   ; 2e ff a4 39 6c
    1023610199    mov ax, strict word 00001h                ; b8 01 00
    1023710200    push ax                                   ; 50
     
    1024710210    xor bx, bx                                ; 31 db
    1024810211    xor cx, cx                                ; 31 c9
    10249     call 06743h                               ; e8 ea f8
     10212    call 066ech                               ; e8 ea f8
    1025010213    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    1025110214    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    10252     jmp near 07018h                           ; e9 b2 01
     10215    jmp near 06fc1h                           ; e9 b2 01
    1025310216    mov ax, strict word 00002h                ; b8 02 00
    1025410217    push ax                                   ; 50
     
    1026410227    mov bx, 0fc00h                            ; bb 00 fc
    1026510228    mov cx, strict word 00009h                ; b9 09 00
    10266     call 06743h                               ; e8 bf f8
     10229    call 066ech                               ; e8 bf f8
    1026710230    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    10268     jmp short 06e5eh                          ; eb d3
     10231    jmp short 06e07h                          ; eb d3
    1026910232    mov bx, 00da0h                            ; bb a0 0d
    1027010233    mov cx, ds                                ; 8c d9
    1027110234    mov ax, strict word 00004h                ; b8 04 00
    10272     call 01933h                               ; e8 9d aa
     10235    call 01933h                               ; e8 f4 aa
    1027310236    push word [bp+014h]                       ; ff 76 14
    1027410237    push word [bp+020h]                       ; ff 76 20
     
    1027710240    mov ax, strict word 00004h                ; b8 04 00
    1027810241    push ax                                   ; 50
    10279     call 01976h                               ; e8 cf aa
     10242    call 01976h                               ; e8 26 ab
    1028010243    add sp, strict byte 00008h                ; 83 c4 08
    1028110244    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    1030110264    xor bx, bx                                ; 31 db
    1030210265    mov cx, strict word 0000fh                ; b9 0f 00
    10303     call 06743h                               ; e8 68 f8
     10266    call 066ech                               ; e8 68 f8
    1030410267    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    10305     jmp near 06e5eh                           ; e9 7b ff
     10268    jmp near 06e07h                           ; e9 7b ff
    1030610269    mov dx, strict word 00001h                ; ba 01 00
    1030710270    push dx                                   ; 52
     
    1031510278    xor bx, bx                                ; 31 db
    1031610279    mov cx, strict word 00010h                ; b9 10 00
    10317     call 06743h                               ; e8 48 f8
     10280    call 066ech                               ; e8 48 f8
    1031810281    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    10319     jmp near 06e5eh                           ; e9 5b ff
     10282    jmp near 06e07h                           ; e9 5b ff
    1032010283    mov si, strict word 00003h                ; be 03 00
    1032110284    push si                                   ; 56
     
    1033010293    mov cx, ax                                ; 89 c1
    1033110294    mov ax, si                                ; 89 f0
    10332     call 06743h                               ; e8 27 f8
     10295    call 066ech                               ; e8 27 f8
    1033310296    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    10334     jmp near 06e5eh                           ; e9 3a ff
     10297    jmp near 06e07h                           ; e9 3a ff
    1033510298    mov ax, strict word 00002h                ; b8 02 00
    1033610299    push ax                                   ; 50
     
    1034610309    xor bx, bx                                ; 31 db
    1034710310    mov cx, 0fec0h                            ; b9 c0 fe
    10348     call 06743h                               ; e8 01 f8
     10311    call 066ech                               ; e8 01 f8
    1034910312    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10350     jmp near 06e5eh                           ; e9 14 ff
     10313    jmp near 06e07h                           ; e9 14 ff
    1035110314    mov ax, strict word 00002h                ; b8 02 00
    1035210315    push ax                                   ; 50
     
    1036210325    xor bx, bx                                ; 31 db
    1036310326    mov cx, 0fee0h                            ; b9 e0 fe
    10364     call 06743h                               ; e8 db f7
     10327    call 066ech                               ; e8 db f7
    1036510328    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10366     jmp near 06e5eh                           ; e9 ee fe
     10329    jmp near 06e07h                           ; e9 ee fe
    1036710330    mov ax, strict word 00002h                ; b8 02 00
    1036810331    push ax                                   ; 50
     
    1037610339    xor bx, bx                                ; 31 db
    1037710340    mov cx, strict word 0fffch                ; b9 fc ff
    10378     call 06743h                               ; e8 bb f7
     10341    call 066ech                               ; e8 bb f7
    1037910342    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10380     jne short 06f95h                          ; 75 07
     10343    jne short 06f3eh                          ; 75 07
    1038110344    mov ax, word [bp-008h]                    ; 8b 46 f8
    1038210345    test ax, ax                               ; 85 c0
    10383     je short 06fa5h                           ; 74 10
     10346    je short 06f4eh                           ; 74 10
    1038410347    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10385     jmp near 06e5eh                           ; e9 c1 fe
     10348    jmp near 06e07h                           ; e9 c1 fe
    1038610349    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10387     jmp near 06e5eh                           ; e9 b9 fe
     10350    jmp near 06e07h                           ; e9 b9 fe
    1038810351    mov word [bp+014h], ax                    ; 89 46 14
    1038910352    mov word [bp+016h], ax                    ; 89 46 16
    10390     jmp short 07018h                          ; eb 6b
     10353    jmp short 06fc1h                          ; eb 6b
    1039110354    mov ax, strict word 00002h                ; b8 02 00
    1039210355    push ax                                   ; 50
     
    1040010363    xor bx, bx                                ; 31 db
    1040110364    xor cx, cx                                ; 31 c9
    10402     call 06743h                               ; e8 7f f7
     10365    call 066ech                               ; e8 7f f7
    1040310366    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10404     jne short 06fd1h                          ; 75 07
     10367    jne short 06f7ah                          ; 75 07
    1040510368    mov ax, word [bp-008h]                    ; 8b 46 f8
    1040610369    test ax, ax                               ; 85 c0
    10407     je short 06fd9h                           ; 74 08
     10370    je short 06f82h                           ; 74 08
    1040810371    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10409     jmp near 06e5eh                           ; e9 85 fe
     10372    jmp near 06e07h                           ; e9 85 fe
    1041010373    mov word [bp+014h], ax                    ; 89 46 14
    1041110374    mov word [bp+016h], ax                    ; 89 46 16
    10412     jmp short 07018h                          ; eb 37
     10375    jmp short 06fc1h                          ; eb 37
    1041310376    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10414     jne short 06fedh                          ; 75 06
     10377    jne short 06f96h                          ; 75 06
    1041510378    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10416     je short 07018h                           ; 74 2b
     10379    je short 06fc1h                           ; 74 2b
    1041710380    mov ax, strict word 00001h                ; b8 01 00
    1041810381    push ax                                   ; 50
     
    1043010393    xor bx, bx                                ; 31 db
    1043110394    xor cx, cx                                ; 31 c9
    10432     call 06743h                               ; e8 33 f7
     10395    call 066ech                               ; e8 33 f7
    1043310396    xor ax, ax                                ; 31 c0
    1043410397    mov word [bp+014h], ax                    ; 89 46 14
     
    1043910402    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1044010403    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10441     jmp near 06eb8h                           ; e9 85 fe
     10404    jmp near 06e61h                           ; e9 85 fe
    1044210405    mov word [bp+028h], bx                    ; 89 5e 28
    1044310406    mov ax, strict word 00031h                ; b8 31 00
    10444     call 016aeh                               ; e8 72 a6
     10407    call 016aeh                               ; e8 c9 a6
    1044510408    mov dh, al                                ; 88 c6
    1044610409    mov ax, strict word 00030h                ; b8 30 00
    10447     call 016aeh                               ; e8 6a a6
     10410    call 016aeh                               ; e8 c1 a6
    1044810411    mov dl, al                                ; 88 c2
    1044910412    mov word [bp+01ch], dx                    ; 89 56 1c
    1045010413    cmp dx, 03c00h                            ; 81 fa 00 3c
    10451     jbe short 07054h                          ; 76 05
     10414    jbe short 06ffdh                          ; 76 05
    1045210415    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1045310416    mov ax, strict word 00035h                ; b8 35 00
    10454     call 016aeh                               ; e8 54 a6
     10417    call 016aeh                               ; e8 ab a6
    1045510418    mov dh, al                                ; 88 c6
    1045610419    mov ax, strict word 00034h                ; b8 34 00
    10457     call 016aeh                               ; e8 4c a6
     10420    call 016aeh                               ; e8 a3 a6
    1045810421    mov dl, al                                ; 88 c2
    1045910422    mov word [bp+018h], dx                    ; 89 56 18
     
    1046110424    mov word [bp+020h], ax                    ; 89 46 20
    1046210425    mov word [bp+014h], dx                    ; 89 56 14
    10463     jmp near 06eb8h                           ; e9 45 fe
    10464 _inv_op_handler:                             ; 0xf7073 LB 0x18f
     10426    jmp near 06e61h                           ; e9 45 fe
     10427_inv_op_handler:                             ; 0xf701c LB 0x18f
    1046510428    push bp                                   ; 55
    1046610429    mov bp, sp                                ; 89 e5
     
    1047110434    les bx, [bp+018h]                         ; c4 5e 18
    1047210435    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10473     jne short 07089h                          ; 75 06
     10436    jne short 07032h                          ; 75 06
    1047410437    inc word [bp+018h]                        ; ff 46 18
    10475     jmp near 071fbh                           ; e9 72 01
     10438    jmp near 071a4h                           ; e9 72 01
    1047610439    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10477     je short 07093h                           ; 74 03
    10478     jmp near 071f7h                           ; e9 64 01
     10440    je short 0703ch                           ; 74 03
     10441    jmp near 071a0h                           ; e9 64 01
    1047910442    mov si, 00800h                            ; be 00 08
    1048010443    xor ax, ax                                ; 31 c0
     
    1050510468    sal ax, 1                                 ; d1 e0
    1050610469    rcl dx, 1                                 ; d1 d2
    10507     loop 070e4h                               ; e2 fa
     10470    loop 0708dh                               ; e2 fa
    1050810471    cmp bx, dx                                ; 39 d3
    10509     jne short 070f2h                          ; 75 04
     10472    jne short 0709bh                          ; 75 04
    1051010473    cmp di, ax                                ; 39 c7
    10511     je short 070f7h                           ; 74 05
     10474    je short 070a0h                           ; 74 05
    1051210475    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    1051310476    mov es, [bp-008h]                         ; 8e 46 f8
     
    1052010483    sal ax, 1                                 ; d1 e0
    1052110484    rcl dx, 1                                 ; d1 d2
    10522     loop 0710dh                               ; e2 fa
     10485    loop 070b6h                               ; e2 fa
    1052310486    cmp bx, dx                                ; 39 d3
    10524     jne short 0711bh                          ; 75 04
     10487    jne short 070c4h                          ; 75 04
    1052510488    cmp di, ax                                ; 39 c7
    10526     je short 0711fh                           ; 74 04
     10489    je short 070c8h                           ; 74 04
    1052710490    or byte [bp-006h], 002h                   ; 80 4e fa 02
    1052810491    xor ax, ax                                ; 31 c0
     
    1057410537    mov ax, strict word 00008h                ; b8 08 00
    1057510538    test cx, strict word 00001h               ; f7 c1 01 00
    10576     je near 071b4h                            ; 0f 84 02 00
     10539    je near 0715dh                            ; 0f 84 02 00
    1057710540    mov es, ax                                ; 8e c0
    1057810541    test cx, strict word 00002h               ; f7 c1 02 00
    10579     je near 071dch                            ; 0f 84 20 00
     10542    je near 07185h                            ; 0f 84 20 00
    1058010543    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1058110544    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1059410557    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1059510558    iret                                      ; cf
    10596     jmp short 071fbh                          ; eb 04
     10559    jmp short 071a4h                          ; eb 04
    1059710560    sti                                       ; fb
    1059810561    hlt                                       ; f4
    10599     jmp short 071f8h                          ; eb fd
     10562    jmp short 071a1h                          ; eb fd
    1060010563    lea sp, [bp-004h]                         ; 8d 66 fc
    1060110564    pop di                                    ; 5f
     
    1060310566    pop bp                                    ; 5d
    1060410567    retn                                      ; c3
    10605 init_rtc_:                                   ; 0xf7202 LB 0x28
     10568init_rtc_:                                   ; 0xf71ab LB 0x28
    1060610569    push bp                                   ; 55
    1060710570    mov bp, sp                                ; 89 e5
     
    1060910572    mov dx, strict word 00026h                ; ba 26 00
    1061010573    mov ax, strict word 0000ah                ; b8 0a 00
    10611     call 016c9h                               ; e8 ba a4
     10574    call 016c9h                               ; e8 11 a5
    1061210575    mov dx, strict word 00002h                ; ba 02 00
    1061310576    mov ax, strict word 0000bh                ; b8 0b 00
    10614     call 016c9h                               ; e8 b1 a4
     10577    call 016c9h                               ; e8 08 a5
    1061510578    mov ax, strict word 0000ch                ; b8 0c 00
    10616     call 016aeh                               ; e8 90 a4
     10579    call 016aeh                               ; e8 e7 a4
    1061710580    mov ax, strict word 0000dh                ; b8 0d 00
    10618     call 016aeh                               ; e8 8a a4
     10581    call 016aeh                               ; e8 e1 a4
    1061910582    lea sp, [bp-002h]                         ; 8d 66 fe
    1062010583    pop dx                                    ; 5a
    1062110584    pop bp                                    ; 5d
    1062210585    retn                                      ; c3
    10623 rtc_updating_:                               ; 0xf722a LB 0x21
     10586rtc_updating_:                               ; 0xf71d3 LB 0x21
    1062410587    push bp                                   ; 55
    1062510588    mov bp, sp                                ; 89 e5
     
    1062710590    mov dx, 061a8h                            ; ba a8 61
    1062810591    dec dx                                    ; 4a
    10629     je short 07242h                           ; 74 0e
     10592    je short 071ebh                           ; 74 0e
    1063010593    mov ax, strict word 0000ah                ; b8 0a 00
    10631     call 016aeh                               ; e8 74 a4
     10594    call 016aeh                               ; e8 cb a4
    1063210595    test AL, strict byte 080h                 ; a8 80
    10633     jne short 07231h                          ; 75 f3
     10596    jne short 071dah                          ; 75 f3
    1063410597    xor ax, ax                                ; 31 c0
    10635     jmp short 07245h                          ; eb 03
     10598    jmp short 071eeh                          ; eb 03
    1063610599    mov ax, strict word 00001h                ; b8 01 00
    1063710600    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1063910602    pop bp                                    ; 5d
    1064010603    retn                                      ; c3
    10641 _int70_function:                             ; 0xf724b LB 0xbf
     10604_int70_function:                             ; 0xf71f4 LB 0xbf
    1064210605    push bp                                   ; 55
    1064310606    mov bp, sp                                ; 89 e5
     
    1064510608    push ax                                   ; 50
    1064610609    mov ax, strict word 0000bh                ; b8 0b 00
    10647     call 016aeh                               ; e8 58 a4
     10610    call 016aeh                               ; e8 af a4
    1064810611    mov bl, al                                ; 88 c3
    1064910612    mov byte [bp-004h], al                    ; 88 46 fc
    1065010613    mov ax, strict word 0000ch                ; b8 0c 00
    10651     call 016aeh                               ; e8 4d a4
     10614    call 016aeh                               ; e8 a4 a4
    1065210615    mov dl, al                                ; 88 c2
    1065310616    test bl, 060h                             ; f6 c3 60
    10654     jne short 0726bh                          ; 75 03
    10655     jmp near 072f1h                           ; e9 86 00
     10617    jne short 07214h                          ; 75 03
     10618    jmp near 0729ah                           ; e9 86 00
    1065610619    test AL, strict byte 020h                 ; a8 20
    10657     je short 07273h                           ; 74 04
     10620    je short 0721ch                           ; 74 04
    1065810621    sti                                       ; fb
    1065910622    int 04ah                                  ; cd 4a
    1066010623    cli                                       ; fa
    1066110624    test dl, 040h                             ; f6 c2 40
    10662     je short 072dbh                           ; 74 63
     10625    je short 07284h                           ; 74 63
    1066310626    mov dx, 000a0h                            ; ba a0 00
    1066410627    mov ax, strict word 00040h                ; b8 40 00
    10665     call 01652h                               ; e8 d1 a3
     10628    call 01652h                               ; e8 28 a4
    1066610629    test al, al                               ; 84 c0
    10667     je short 072f1h                           ; 74 6c
     10630    je short 0729ah                           ; 74 6c
    1066810631    mov dx, 0009ch                            ; ba 9c 00
    1066910632    mov ax, strict word 00040h                ; b8 40 00
    10670     call 0168ah                               ; e8 fc a3
     10633    call 0168ah                               ; e8 53 a4
    1067110634    test dx, dx                               ; 85 d2
    10672     jne short 072ddh                          ; 75 4b
     10635    jne short 07286h                          ; 75 4b
    1067310636    cmp ax, 003d1h                            ; 3d d1 03
    10674     jnc short 072ddh                          ; 73 46
     10637    jnc short 07286h                          ; 73 46
    1067510638    mov dx, 00098h                            ; ba 98 00
    1067610639    mov ax, strict word 00040h                ; b8 40 00
    10677     call 0166eh                               ; e8 ce a3
     10640    call 0166eh                               ; e8 25 a4
    1067810641    mov si, ax                                ; 89 c6
    1067910642    mov dx, 0009ah                            ; ba 9a 00
    1068010643    mov ax, strict word 00040h                ; b8 40 00
    10681     call 0166eh                               ; e8 c3 a3
     10644    call 0166eh                               ; e8 1a a4
    1068210645    mov cx, ax                                ; 89 c1
    1068310646    xor bx, bx                                ; 31 db
    1068410647    mov dx, 000a0h                            ; ba a0 00
    1068510648    mov ax, strict word 00040h                ; b8 40 00
    10686     call 01660h                               ; e8 a8 a3
     10649    call 01660h                               ; e8 ff a3
    1068710650    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1068810651    and dl, 037h                              ; 80 e2 37
    1068910652    xor dh, dh                                ; 30 f6
    1069010653    mov ax, strict word 0000bh                ; b8 0b 00
    10691     call 016c9h                               ; e8 03 a4
     10654    call 016c9h                               ; e8 5a a4
    1069210655    mov dx, cx                                ; 89 ca
    1069310656    mov ax, si                                ; 89 f0
    10694     call 01652h                               ; e8 85 a3
     10657    call 01652h                               ; e8 dc a3
    1069510658    mov bl, al                                ; 88 c3
    1069610659    or bl, 080h                               ; 80 cb 80
     
    1069810661    mov dx, cx                                ; 89 ca
    1069910662    mov ax, si                                ; 89 f0
    10700     call 01660h                               ; e8 85 a3
    10701     jmp short 072f1h                          ; eb 14
     10663    call 01660h                               ; e8 dc a3
     10664    jmp short 0729ah                          ; eb 14
    1070210665    mov bx, ax                                ; 89 c3
    1070310666    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1070610669    mov dx, 0009ch                            ; ba 9c 00
    1070710670    mov ax, strict word 00040h                ; b8 40 00
    10708     call 0169ch                               ; e8 ab a3
    10709     call 0e030h                               ; e8 3c 6d
     10671    call 0169ch                               ; e8 02 a4
     10672    call 0e030h                               ; e8 93 6d
    1071010673    lea sp, [bp-002h]                         ; 8d 66 fe
    1071110674    pop si                                    ; 5e
    1071210675    pop bp                                    ; 5d
    1071310676    retn                                      ; c3
    10714     and byte [bp+di+047h], dh                 ; 20 73 47
    10715     jnc short 0736bh                          ; 73 6c
    10716     jnc short 072a9h                          ; 73 a8
    10717     jnc short 072fdh                          ; 73 fa
    10718     jnc short 07336h                          ; 73 31
    10719     je short 0737fh                           ; 74 78
    10720     je short 072dch                           ; 74 d3
     10677    leave                                     ; c9
     10678    jc short 07296h                           ; 72 f0
     10679    jc short 072bdh                           ; 72 15
     10680    jnc short 072fbh                          ; 73 51
     10681    jnc short 0724fh                          ; 73 a3
     10682    jnc short 07288h                          ; 73 da
     10683    jnc short 072d1h                          ; 73 21
     10684    je short 0732eh                           ; 74 7c
    1072110685    db  074h
    10722 _int1a_function:                             ; 0xf730a LB 0x1d9
     10686_int1a_function:                             ; 0xf72b3 LB 0x1d9
    1072310687    push bp                                   ; 55
    1072410688    mov bp, sp                                ; 89 e5
     
    1072610690    mov al, byte [bp+013h]                    ; 8a 46 13
    1072710691    cmp AL, strict byte 007h                  ; 3c 07
    10728     jnbe short 07373h                         ; 77 5e
     10692    jnbe short 0731ch                         ; 77 5e
    1072910693    mov bl, al                                ; 88 c3
    1073010694    xor bh, bh                                ; 30 ff
    1073110695    sal bx, 1                                 ; d1 e3
    10732     jmp word [cs:bx+072fah]                   ; 2e ff a7 fa 72
     10696    jmp word [cs:bx+072a3h]                   ; 2e ff a7 a3 72
    1073310697    cli                                       ; fa
    1073410698    mov bx, 0046eh                            ; bb 6e 04
     
    1074510709    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1074610710    sti                                       ; fb
    10747     jmp short 07373h                          ; eb 2c
     10711    jmp short 0731ch                          ; eb 2c
    1074810712    cli                                       ; fa
    1074910713    mov bx, 0046eh                            ; bb 6e 04
     
    1075910723    sti                                       ; fb
    1076010724    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10761     jmp short 07373h                          ; eb 07
    10762     call 0722ah                               ; e8 bb fe
     10725    jmp short 0731ch                          ; eb 07
     10726    call 071d3h                               ; e8 bb fe
    1076310727    test ax, ax                               ; 85 c0
    10764     je short 07376h                           ; 74 03
    10765     jmp near 073a4h                           ; e9 2e 00
     10728    je short 0731fh                           ; 74 03
     10729    jmp near 0734dh                           ; e9 2e 00
    1076610730    xor ax, ax                                ; 31 c0
    10767     call 016aeh                               ; e8 33 a3
     10731    call 016aeh                               ; e8 8a a3
    1076810732    mov byte [bp+00fh], al                    ; 88 46 0f
    1076910733    mov ax, strict word 00002h                ; b8 02 00
    10770     call 016aeh                               ; e8 2a a3
     10734    call 016aeh                               ; e8 81 a3
    1077110735    mov byte [bp+010h], al                    ; 88 46 10
    1077210736    mov ax, strict word 00004h                ; b8 04 00
    10773     call 016aeh                               ; e8 21 a3
     10737    call 016aeh                               ; e8 78 a3
    1077410738    mov dl, al                                ; 88 c2
    1077510739    mov byte [bp+011h], al                    ; 88 46 11
    1077610740    mov ax, strict word 0000bh                ; b8 0b 00
    10777     call 016aeh                               ; e8 16 a3
     10741    call 016aeh                               ; e8 6d a3
    1077810742    and AL, strict byte 001h                  ; 24 01
    1077910743    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1078310747    pop bp                                    ; 5d
    1078410748    retn                                      ; c3
    10785     call 0722ah                               ; e8 7f fe
     10749    call 071d3h                               ; e8 7f fe
    1078610750    test ax, ax                               ; 85 c0
    10787     je short 073b2h                           ; 74 03
    10788     call 07202h                               ; e8 50 fe
     10751    je short 0735bh                           ; 74 03
     10752    call 071abh                               ; e8 50 fe
    1078910753    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1079010754    xor dh, dh                                ; 30 f6
    1079110755    xor ax, ax                                ; 31 c0
    10792     call 016c9h                               ; e8 0d a3
     10756    call 016c9h                               ; e8 64 a3
    1079310757    mov dl, byte [bp+010h]                    ; 8a 56 10
    1079410758    xor dh, dh                                ; 30 f6
    1079510759    mov ax, strict word 00002h                ; b8 02 00
    10796     call 016c9h                               ; e8 02 a3
     10760    call 016c9h                               ; e8 59 a3
    1079710761    mov dl, byte [bp+011h]                    ; 8a 56 11
    1079810762    xor dh, dh                                ; 30 f6
    1079910763    mov ax, strict word 00004h                ; b8 04 00
    10800     call 016c9h                               ; e8 f7 a2
     10764    call 016c9h                               ; e8 4e a3
    1080110765    mov ax, strict word 0000bh                ; b8 0b 00
    10802     call 016aeh                               ; e8 d6 a2
     10766    call 016aeh                               ; e8 2d a3
    1080310767    mov bl, al                                ; 88 c3
    1080410768    and bl, 060h                              ; 80 e3 60
     
    1081010774    xor dh, dh                                ; 30 f6
    1081110775    mov ax, strict word 0000bh                ; b8 0b 00
    10812     call 016c9h                               ; e8 d8 a2
     10776    call 016c9h                               ; e8 2f a3
    1081310777    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1081410778    mov byte [bp+012h], bl                    ; 88 5e 12
    10815     jmp short 073a4h                          ; eb aa
     10779    jmp short 0734dh                          ; eb aa
    1081610780    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10817     call 0722ah                               ; e8 29 fe
     10781    call 071d3h                               ; e8 29 fe
    1081810782    test ax, ax                               ; 85 c0
    10819     je short 07407h                           ; 74 02
    10820     jmp short 073a4h                          ; eb 9d
     10783    je short 073b0h                           ; 74 02
     10784    jmp short 0734dh                          ; eb 9d
    1082110785    mov ax, strict word 00009h                ; b8 09 00
    10822     call 016aeh                               ; e8 a1 a2
     10786    call 016aeh                               ; e8 f8 a2
    1082310787    mov byte [bp+010h], al                    ; 88 46 10
    1082410788    mov ax, strict word 00008h                ; b8 08 00
    10825     call 016aeh                               ; e8 98 a2
     10789    call 016aeh                               ; e8 ef a2
    1082610790    mov byte [bp+00fh], al                    ; 88 46 0f
    1082710791    mov ax, strict word 00007h                ; b8 07 00
    10828     call 016aeh                               ; e8 8f a2
     10792    call 016aeh                               ; e8 e6 a2
    1082910793    mov byte [bp+00eh], al                    ; 88 46 0e
    1083010794    mov ax, strict word 00032h                ; b8 32 00
    10831     call 016aeh                               ; e8 86 a2
     10795    call 016aeh                               ; e8 dd a2
    1083210796    mov byte [bp+011h], al                    ; 88 46 11
    1083310797    mov byte [bp+012h], al                    ; 88 46 12
    10834     jmp near 073a4h                           ; e9 73 ff
    10835     call 0722ah                               ; e8 f6 fd
     10798    jmp near 0734dh                           ; e9 73 ff
     10799    call 071d3h                               ; e8 f6 fd
    1083610800    test ax, ax                               ; 85 c0
    10837     je short 0743eh                           ; 74 06
    10838     call 07202h                               ; e8 c7 fd
    10839     jmp near 073a4h                           ; e9 66 ff
     10801    je short 073e7h                           ; 74 06
     10802    call 071abh                               ; e8 c7 fd
     10803    jmp near 0734dh                           ; e9 66 ff
    1084010804    mov dl, byte [bp+010h]                    ; 8a 56 10
    1084110805    xor dh, dh                                ; 30 f6
    1084210806    mov ax, strict word 00009h                ; b8 09 00
    10843     call 016c9h                               ; e8 80 a2
     10807    call 016c9h                               ; e8 d7 a2
    1084410808    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1084510809    xor dh, dh                                ; 30 f6
    1084610810    mov ax, strict word 00008h                ; b8 08 00
    10847     call 016c9h                               ; e8 75 a2
     10811    call 016c9h                               ; e8 cc a2
    1084810812    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1084910813    xor dh, dh                                ; 30 f6
    1085010814    mov ax, strict word 00007h                ; b8 07 00
    10851     call 016c9h                               ; e8 6a a2
     10815    call 016c9h                               ; e8 c1 a2
    1085210816    mov dl, byte [bp+011h]                    ; 8a 56 11
    1085310817    xor dh, dh                                ; 30 f6
    1085410818    mov ax, strict word 00032h                ; b8 32 00
    10855     call 016c9h                               ; e8 5f a2
     10819    call 016c9h                               ; e8 b6 a2
    1085610820    mov ax, strict word 0000bh                ; b8 0b 00
    10857     call 016aeh                               ; e8 3e a2
     10821    call 016aeh                               ; e8 95 a2
    1085810822    mov bl, al                                ; 88 c3
    1085910823    and bl, 07fh                              ; 80 e3 7f
    10860     jmp near 073e7h                           ; e9 6f ff
     10824    jmp near 07390h                           ; e9 6f ff
    1086110825    mov ax, strict word 0000bh                ; b8 0b 00
    10862     call 016aeh                               ; e8 30 a2
     10826    call 016aeh                               ; e8 87 a2
    1086310827    mov bl, al                                ; 88 c3
    1086410828    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1086510829    test AL, strict byte 020h                 ; a8 20
    10866     je short 0748ch                           ; 74 03
    10867     jmp near 073a4h                           ; e9 18 ff
    10868     call 0722ah                               ; e8 9b fd
     10830    je short 07435h                           ; 74 03
     10831    jmp near 0734dh                           ; e9 18 ff
     10832    call 071d3h                               ; e8 9b fd
    1086910833    test ax, ax                               ; 85 c0
    10870     je short 07496h                           ; 74 03
    10871     call 07202h                               ; e8 6c fd
     10834    je short 0743fh                           ; 74 03
     10835    call 071abh                               ; e8 6c fd
    1087210836    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1087310837    xor dh, dh                                ; 30 f6
    1087410838    mov ax, strict word 00001h                ; b8 01 00
    10875     call 016c9h                               ; e8 28 a2
     10839    call 016c9h                               ; e8 7f a2
    1087610840    mov dl, byte [bp+010h]                    ; 8a 56 10
    1087710841    xor dh, dh                                ; 30 f6
    1087810842    mov ax, strict word 00003h                ; b8 03 00
    10879     call 016c9h                               ; e8 1d a2
     10843    call 016c9h                               ; e8 74 a2
    1088010844    mov dl, byte [bp+011h]                    ; 8a 56 11
    1088110845    xor dh, dh                                ; 30 f6
    1088210846    mov ax, strict word 00005h                ; b8 05 00
    10883     call 016c9h                               ; e8 12 a2
     10847    call 016c9h                               ; e8 69 a2
    1088410848    mov dx, 000a1h                            ; ba a1 00
    1088510849    in AL, DX                                 ; ec
     
    1089310857    xor dh, dh                                ; 30 f6
    1089410858    mov ax, strict word 0000bh                ; b8 0b 00
    10895     call 016c9h                               ; e8 f9 a1
    10896     jmp near 073a4h                           ; e9 d1 fe
     10859    call 016c9h                               ; e8 50 a2
     10860    jmp near 0734dh                           ; e9 d1 fe
    1089710861    mov ax, strict word 0000bh                ; b8 0b 00
    10898     call 016aeh                               ; e8 d5 a1
     10862    call 016aeh                               ; e8 2c a2
    1089910863    mov bl, al                                ; 88 c3
    1090010864    mov dl, al                                ; 88 c2
    1090110865    and dl, 057h                              ; 80 e2 57
    10902     jmp near 073e9h                           ; e9 06 ff
    10903 send_to_mouse_ctrl_:                         ; 0xf74e3 LB 0x38
     10866    jmp near 07392h                           ; e9 06 ff
     10867send_to_mouse_ctrl_:                         ; 0xf748c LB 0x38
    1090410868    push bp                                   ; 55
    1090510869    mov bp, sp                                ; 89 e5
     
    1091210876    ; sub ah, ah                                ; 2a e4
    1091310877    test AL, strict byte 002h                 ; a8 02
    10914     je short 07506h                           ; 74 12
     10878    je short 074afh                           ; 74 12
    1091510879    mov ax, 008eeh                            ; b8 ee 08
    1091610880    push ax                                   ; 50
     
    1091910883    mov ax, strict word 00007h                ; b8 07 00
    1092010884    push ax                                   ; 50
    10921     call 01976h                               ; e8 73 a4
     10885    call 01976h                               ; e8 ca a4
    1092210886    add sp, strict byte 00006h                ; 83 c4 06
    1092310887    mov AL, strict byte 0d4h                  ; b0 d4
     
    1093310897    pop bp                                    ; 5d
    1093410898    retn                                      ; c3
    10935 get_mouse_data_:                             ; 0xf751b LB 0x5d
     10899get_mouse_data_:                             ; 0xf74c4 LB 0x5d
    1093610900    push bp                                   ; 55
    1093710901    mov bp, sp                                ; 89 e5
     
    1094810912    and ax, strict word 00021h                ; 25 21 00
    1094910913    cmp ax, strict word 00021h                ; 3d 21 00
    10950     je short 0755eh                           ; 74 28
     10914    je short 07507h                           ; 74 28
    1095110915    test cx, cx                               ; 85 c9
    10952     je short 0755eh                           ; 74 24
     10916    je short 07507h                           ; 74 24
    1095310917    mov dx, strict word 00061h                ; ba 61 00
    1095410918    in AL, DX                                 ; ec
     
    1096710931    xor ah, ah                                ; 30 e4
    1096810932    cmp dx, ax                                ; 39 c2
    10969     je short 07545h                           ; 74 ea
     10933    je short 074eeh                           ; 74 ea
    1097010934    dec cx                                    ; 49
    10971     jmp short 07528h                          ; eb ca
     10935    jmp short 074d1h                          ; eb ca
    1097210936    test cx, cx                               ; 85 c9
    10973     jne short 07566h                          ; 75 04
     10937    jne short 0750fh                          ; 75 04
    1097410938    mov AL, strict byte 001h                  ; b0 01
    10975     jmp short 07571h                          ; eb 0b
     10939    jmp short 0751ah                          ; eb 0b
    1097610940    mov dx, strict word 00060h                ; ba 60 00
    1097710941    in AL, DX                                 ; ec
     
    1098510949    pop bp                                    ; 5d
    1098610950    retn                                      ; c3
    10987 set_kbd_command_byte_:                       ; 0xf7578 LB 0x36
     10951set_kbd_command_byte_:                       ; 0xf7521 LB 0x36
    1098810952    push bp                                   ; 55
    1098910953    mov bp, sp                                ; 89 e5
     
    1099610960    ; sub ah, ah                                ; 2a e4
    1099710961    test AL, strict byte 002h                 ; a8 02
    10998     je short 0759bh                           ; 74 12
     10962    je short 07544h                           ; 74 12
    1099910963    mov ax, 008f8h                            ; b8 f8 08
    1100010964    push ax                                   ; 50
     
    1100310967    mov ax, strict word 00007h                ; b8 07 00
    1100410968    push ax                                   ; 50
    11005     call 01976h                               ; e8 de a3
     10969    call 01976h                               ; e8 35 a4
    1100610970    add sp, strict byte 00006h                ; 83 c4 06
    1100710971    mov AL, strict byte 060h                  ; b0 60
     
    1101610980    pop bp                                    ; 5d
    1101710981    retn                                      ; c3
    11018 _int74_function:                             ; 0xf75ae LB 0xd2
     10982_int74_function:                             ; 0xf7557 LB 0xd2
    1101910983    push bp                                   ; 55
    1102010984    mov bp, sp                                ; 89 e5
     
    1102210986    mov dx, strict word 0000eh                ; ba 0e 00
    1102310987    mov ax, strict word 00040h                ; b8 40 00
    11024     call 0166eh                               ; e8 b1 a0
     10988    call 0166eh                               ; e8 08 a1
    1102510989    mov cx, ax                                ; 89 c1
    1102610990    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1103110995    and AL, strict byte 021h                  ; 24 21
    1103210996    cmp AL, strict byte 021h                  ; 3c 21
    11033     jne short 075f2h                          ; 75 22
     10997    jne short 0759bh                          ; 75 22
    1103410998    mov dx, strict word 00060h                ; ba 60 00
    1103510999    in AL, DX                                 ; ec
     
    1103911003    mov dx, strict word 00026h                ; ba 26 00
    1104011004    mov ax, cx                                ; 89 c8
    11041     call 01652h                               ; e8 72 a0
     11005    call 01652h                               ; e8 c9 a0
    1104211006    mov byte [bp-002h], al                    ; 88 46 fe
    1104311007    mov dx, strict word 00027h                ; ba 27 00
    1104411008    mov ax, cx                                ; 89 c8
    11045     call 01652h                               ; e8 67 a0
     11009    call 01652h                               ; e8 be a0
    1104611010    mov byte [bp-006h], al                    ; 88 46 fa
    1104711011    test AL, strict byte 080h                 ; a8 80
    11048     jne short 075f5h                          ; 75 03
    11049     jmp near 0766ch                           ; e9 77 00
     11012    jne short 0759eh                          ; 75 03
     11013    jmp near 07615h                           ; e9 77 00
    1105011014    mov al, byte [bp-006h]                    ; 8a 46 fa
    1105111015    and AL, strict byte 007h                  ; 24 07
     
    1106111025    add dx, strict byte 00028h                ; 83 c2 28
    1106211026    mov ax, cx                                ; 89 c8
    11063     call 01660h                               ; e8 48 a0
     11027    call 01660h                               ; e8 9f a0
    1106411028    mov al, byte [bp-008h]                    ; 8a 46 f8
    1106511029    cmp al, byte [bp-004h]                    ; 3a 46 fc
    11066     jc short 0765ch                           ; 72 3c
     11030    jc short 07605h                           ; 72 3c
    1106711031    mov dx, strict word 00028h                ; ba 28 00
    1106811032    mov ax, cx                                ; 89 c8
    11069     call 01652h                               ; e8 2a a0
     11033    call 01652h                               ; e8 81 a0
    1107011034    xor ah, ah                                ; 30 e4
    1107111035    mov word [bp+00ch], ax                    ; 89 46 0c
    1107211036    mov dx, strict word 00029h                ; ba 29 00
    1107311037    mov ax, cx                                ; 89 c8
    11074     call 01652h                               ; e8 1d a0
     11038    call 01652h                               ; e8 74 a0
    1107511039    xor ah, ah                                ; 30 e4
    1107611040    mov word [bp+00ah], ax                    ; 89 46 0a
    1107711041    mov dx, strict word 0002ah                ; ba 2a 00
    1107811042    mov ax, cx                                ; 89 c8
    11079     call 01652h                               ; e8 10 a0
     11043    call 01652h                               ; e8 67 a0
    1108011044    xor ah, ah                                ; 30 e4
    1108111045    mov word [bp+008h], ax                    ; 89 46 08
     
    1108411048    mov byte [bp-002h], ah                    ; 88 66 fe
    1108511049    test byte [bp-006h], 080h                 ; f6 46 fa 80
    11086     je short 0765fh                           ; 74 0a
     11050    je short 07608h                           ; 74 0a
    1108711051    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    11088     jmp short 0765fh                          ; eb 03
     11052    jmp short 07608h                          ; eb 03
    1108911053    inc byte [bp-002h]                        ; fe 46 fe
    1109011054    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1109211056    mov dx, strict word 00026h                ; ba 26 00
    1109311057    mov ax, cx                                ; 89 c8
    11094     call 01660h                               ; e8 f4 9f
     11058    call 01660h                               ; e8 4b a0
    1109511059    mov sp, bp                                ; 89 ec
    1109611060    pop bp                                    ; 5d
    1109711061    retn                                      ; c3
    11098     retn 03e76h                               ; c2 76 3e
    11099     jnbe short 07633h                         ; 77 be
    11100     jnbe short 076cah                         ; 77 53
    11101     js short 0763eh                           ; 78 c5
    11102     js short 07684h                           ; 78 09
    11103     jnbe short 0766ah                         ; 77 ed
    11104     js short 07639h                           ; 78 ba
     11062    imul si, word [bp-019h], strict byte 00076h ; 6b 76 e7 76
     11063    db  067h, 077h, 0fch
     11064    ; jnbe short 0761ch                         ; 67 77 fc
     11065    jnbe short 07690h                         ; 77 6e
     11066    js short 075d6h                           ; 78 b2
     11067    jbe short 075bch                          ; 76 96
     11068    js short 0768bh                           ; 78 63
    1110511069    db  079h
    11106 _int15_function_mouse:                       ; 0xf7680 LB 0x3a0
     11070_int15_function_mouse:                       ; 0xf7629 LB 0x3a0
    1110711071    push bp                                   ; 55
    1110811072    mov bp, sp                                ; 89 e5
     
    1111111075    mov dx, strict word 0000eh                ; ba 0e 00
    1111211076    mov ax, strict word 00040h                ; b8 40 00
    11113     call 0166eh                               ; e8 de 9f
     11077    call 0166eh                               ; e8 35 a0
    1111411078    mov cx, ax                                ; 89 c1
    1111511079    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    11116     jbe short 076a3h                          ; 76 0b
     11080    jbe short 0764ch                          ; 76 0b
    1111711081    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1111811082    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11119     jmp near 07a1ah                           ; e9 77 03
     11083    jmp near 079c3h                           ; e9 77 03
    1112011084    mov ax, strict word 00065h                ; b8 65 00
    11121     call 07578h                               ; e8 cf fe
     11085    call 07521h                               ; e8 cf fe
    1112211086    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1112311087    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1112411088    mov bl, byte [bp+012h]                    ; 8a 5e 12
    1112511089    cmp bl, 007h                              ; 80 fb 07
    11126     jnbe short 07717h                         ; 77 5e
     11090    jnbe short 076c0h                         ; 77 5e
    1112711091    xor bh, bh                                ; 30 ff
    1112811092    sal bx, 1                                 ; d1 e3
    11129     jmp word [cs:bx+07670h]                   ; 2e ff a7 70 76
     11093    jmp word [cs:bx+07619h]                   ; 2e ff a7 19 76
    1113011094    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    11131     jnbe short 0771ah                         ; 77 52
     11095    jnbe short 076c3h                         ; 77 52
    1113211096    mov dx, strict word 00027h                ; ba 27 00
    1113311097    mov ax, cx                                ; 89 c8
    11134     call 01652h                               ; e8 82 9f
     11098    call 01652h                               ; e8 d9 9f
    1113511099    test AL, strict byte 080h                 ; a8 80
    11136     jne short 076dfh                          ; 75 0b
     11100    jne short 07688h                          ; 75 0b
    1113711101    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1113811102    mov byte [bp+013h], 005h                  ; c6 46 13 05
    11139     jmp near 07a14h                           ; e9 35 03
     11103    jmp near 079bdh                           ; e9 35 03
    1114011104    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    11141     jne short 076e9h                          ; 75 04
     11105    jne short 07692h                          ; 75 04
    1114211106    mov AL, strict byte 0f5h                  ; b0 f5
    11143     jmp short 076ebh                          ; eb 02
     11107    jmp short 07694h                          ; eb 02
    1114411108    mov AL, strict byte 0f4h                  ; b0 f4
    1114511109    xor ah, ah                                ; 30 e4
    11146     call 074e3h                               ; e8 f3 fd
     11110    call 0748ch                               ; e8 f3 fd
    1114711111    test al, al                               ; 84 c0
    11148     jne short 0771dh                          ; 75 29
     11112    jne short 076c6h                          ; 75 29
    1114911113    mov dx, ss                                ; 8c d2
    1115011114    lea ax, [bp-006h]                         ; 8d 46 fa
    11151     call 0751bh                               ; e8 1f fe
     11115    call 074c4h                               ; e8 1f fe
    1115211116    test al, al                               ; 84 c0
    11153     je short 07706h                           ; 74 06
     11117    je short 076afh                           ; 74 06
    1115411118    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11155     jne short 0771dh                          ; 75 17
    11156     jmp near 07a14h                           ; e9 0b 03
     11119    jne short 076c6h                          ; 75 17
     11120    jmp near 079bdh                           ; e9 0b 03
    1115711121    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1115811122    cmp AL, strict byte 001h                  ; 3c 01
    11159     jc short 07714h                           ; 72 04
     11123    jc short 076bdh                           ; 72 04
    1116011124    cmp AL, strict byte 008h                  ; 3c 08
    11161     jbe short 07720h                          ; 76 0c
    11162     jmp near 078bbh                           ; e9 a4 01
    11163     jmp near 079feh                           ; e9 e4 02
    11164     jmp near 07a0ch                           ; e9 ef 02
    11165     jmp near 07992h                           ; e9 72 02
     11125    jbe short 076c9h                          ; 76 0c
     11126    jmp near 07864h                           ; e9 a4 01
     11127    jmp near 079a7h                           ; e9 e4 02
     11128    jmp near 079b5h                           ; e9 ef 02
     11129    jmp near 0793bh                           ; e9 72 02
    1116611130    mov dx, strict word 00027h                ; ba 27 00
    1116711131    mov ax, cx                                ; 89 c8
    11168     call 01652h                               ; e8 2a 9f
     11132    call 01652h                               ; e8 81 9f
    1116911133    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1117011134    db  0feh, 0cch
     
    1117611140    mov dx, strict word 00027h                ; ba 27 00
    1117711141    mov ax, cx                                ; 89 c8
    11178     call 01660h                               ; e8 22 9f
     11142    call 01660h                               ; e8 79 9f
    1117911143    mov dx, strict word 00026h                ; ba 26 00
    1118011144    mov ax, cx                                ; 89 c8
    11181     call 01652h                               ; e8 0c 9f
     11145    call 01652h                               ; e8 63 9f
    1118211146    mov bl, al                                ; 88 c3
    1118311147    and bl, 0f8h                              ; 80 e3 f8
     
    1118511149    mov dx, strict word 00026h                ; ba 26 00
    1118611150    mov ax, cx                                ; 89 c8
    11187     call 01660h                               ; e8 0b 9f
     11151    call 01660h                               ; e8 62 9f
    1118811152    mov ax, 000ffh                            ; b8 ff 00
    11189     call 074e3h                               ; e8 88 fd
     11153    call 0748ch                               ; e8 88 fd
    1119011154    test al, al                               ; 84 c0
    11191     jne short 0771dh                          ; 75 be
     11155    jne short 076c6h                          ; 75 be
    1119211156    mov dx, ss                                ; 8c d2
    1119311157    lea ax, [bp-008h]                         ; 8d 46 f8
    11194     call 0751bh                               ; e8 b4 fd
     11158    call 074c4h                               ; e8 b4 fd
    1119511159    mov cl, al                                ; 88 c1
    1119611160    cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
    11197     jne short 07779h                          ; 75 0a
     11161    jne short 07722h                          ; 75 0a
    1119811162    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1119911163    mov byte [bp+013h], 004h                  ; c6 46 13 04
    11200     jmp short 07706h                          ; eb 8d
     11164    jmp short 076afh                          ; eb 8d
    1120111165    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11202     je short 07793h                           ; 74 14
     11166    je short 0773ch                           ; 74 14
    1120311167    mov al, byte [bp-008h]                    ; 8a 46 f8
    1120411168    xor ah, ah                                ; 30 e4
     
    1120811172    mov ax, strict word 00007h                ; b8 07 00
    1120911173    push ax                                   ; 50
    11210     call 01976h                               ; e8 e6 a1
     11174    call 01976h                               ; e8 3d a2
    1121111175    add sp, strict byte 00006h                ; 83 c4 06
    1121211176    test cl, cl                               ; 84 c9
    11213     jne short 0771dh                          ; 75 86
     11177    jne short 076c6h                          ; 75 86
    1121411178    mov dx, ss                                ; 8c d2
    1121511179    lea ax, [bp-006h]                         ; 8d 46 fa
    11216     call 0751bh                               ; e8 7c fd
     11180    call 074c4h                               ; e8 7c fd
    1121711181    test al, al                               ; 84 c0
    11218     jne short 077f9h                          ; 75 56
     11182    jne short 077a2h                          ; 75 56
    1121911183    mov dx, ss                                ; 8c d2
    1122011184    lea ax, [bp-004h]                         ; 8d 46 fc
    11221     call 0751bh                               ; e8 70 fd
     11185    call 074c4h                               ; e8 70 fd
    1122211186    test al, al                               ; 84 c0
    11223     jne short 077f9h                          ; 75 4a
     11187    jne short 077a2h                          ; 75 4a
    1122411188    mov al, byte [bp-006h]                    ; 8a 46 fa
    1122511189    mov byte [bp+00ch], al                    ; 88 46 0c
    1122611190    mov al, byte [bp-004h]                    ; 8a 46 fc
    1122711191    mov byte [bp+00dh], al                    ; 88 46 0d
    11228     jmp near 07a14h                           ; e9 56 02
     11192    jmp near 079bdh                           ; e9 56 02
    1122911193    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1123011194    cmp AL, strict byte 003h                  ; 3c 03
    11231     jc short 077d5h                           ; 72 10
    11232     jbe short 077f3h                          ; 76 2c
     11195    jc short 0777eh                           ; 72 10
     11196    jbe short 0779ch                          ; 76 2c
    1123311197    cmp AL, strict byte 006h                  ; 3c 06
    11234     je short 07808h                           ; 74 3d
     11198    je short 077b1h                           ; 74 3d
    1123511199    cmp AL, strict byte 005h                  ; 3c 05
    11236     je short 07802h                           ; 74 33
     11200    je short 077abh                           ; 74 33
    1123711201    cmp AL, strict byte 004h                  ; 3c 04
    11238     je short 077fch                           ; 74 29
    11239     jmp short 0780eh                          ; eb 39
     11202    je short 077a5h                           ; 74 29
     11203    jmp short 077b7h                          ; eb 39
    1124011204    cmp AL, strict byte 002h                  ; 3c 02
    11241     je short 077edh                           ; 74 14
     11205    je short 07796h                           ; 74 14
    1124211206    cmp AL, strict byte 001h                  ; 3c 01
    11243     je short 077e7h                           ; 74 0a
     11207    je short 07790h                           ; 74 0a
    1124411208    test al, al                               ; 84 c0
    11245     jne short 0780eh                          ; 75 2d
     11209    jne short 077b7h                          ; 75 2d
    1124611210    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    11247     jmp short 07812h                          ; eb 2b
     11211    jmp short 077bbh                          ; eb 2b
    1124811212    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    11249     jmp short 07812h                          ; eb 25
     11213    jmp short 077bbh                          ; eb 25
    1125011214    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    11251     jmp short 07812h                          ; eb 1f
     11215    jmp short 077bbh                          ; eb 1f
    1125211216    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    11253     jmp short 07812h                          ; eb 19
    11254     jmp near 07992h                           ; e9 96 01
     11217    jmp short 077bbh                          ; eb 19
     11218    jmp near 0793bh                           ; e9 96 01
    1125511219    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    11256     jmp short 07812h                          ; eb 10
     11220    jmp short 077bbh                          ; eb 10
    1125711221    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    11258     jmp short 07812h                          ; eb 0a
     11222    jmp short 077bbh                          ; eb 0a
    1125911223    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    11260     jmp short 07812h                          ; eb 04
     11224    jmp short 077bbh                          ; eb 04
    1126111225    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1126211226    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    11263     jbe short 07848h                          ; 76 30
     11227    jbe short 077f1h                          ; 76 30
    1126411228    mov ax, 000f3h                            ; b8 f3 00
    11265     call 074e3h                               ; e8 c5 fc
     11229    call 0748ch                               ; e8 c5 fc
    1126611230    test al, al                               ; 84 c0
    11267     jne short 0783dh                          ; 75 1b
     11231    jne short 077e6h                          ; 75 1b
    1126811232    mov dx, ss                                ; 8c d2
    1126911233    lea ax, [bp-004h]                         ; 8d 46 fc
    11270     call 0751bh                               ; e8 f1 fc
     11234    call 074c4h                               ; e8 f1 fc
    1127111235    mov al, byte [bp-006h]                    ; 8a 46 fa
    1127211236    xor ah, ah                                ; 30 e4
    11273     call 074e3h                               ; e8 b1 fc
     11237    call 0748ch                               ; e8 b1 fc
    1127411238    mov dx, ss                                ; 8c d2
    1127511239    lea ax, [bp-004h]                         ; 8d 46 fc
    11276     call 0751bh                               ; e8 e1 fc
    11277     jmp near 07a14h                           ; e9 d7 01
     11240    call 074c4h                               ; e8 e1 fc
     11241    jmp near 079bdh                           ; e9 d7 01
    1127811242    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127911243    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11280     jmp near 07a14h                           ; e9 cc 01
     11244    jmp near 079bdh                           ; e9 cc 01
    1128111245    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1128211246    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11283     jmp near 07a14h                           ; e9 c1 01
     11247    jmp near 079bdh                           ; e9 c1 01
    1128411248    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11285     jnc short 078bbh                          ; 73 62
     11249    jnc short 07864h                          ; 73 62
    1128611250    mov ax, 000e8h                            ; b8 e8 00
    11287     call 074e3h                               ; e8 84 fc
     11251    call 0748ch                               ; e8 84 fc
    1128811252    test al, al                               ; 84 c0
    11289     jne short 078b1h                          ; 75 4e
     11253    jne short 0785ah                          ; 75 4e
    1129011254    mov dx, ss                                ; 8c d2
    1129111255    lea ax, [bp-006h]                         ; 8d 46 fa
    11292     call 0751bh                               ; e8 b0 fc
     11256    call 074c4h                               ; e8 b0 fc
    1129311257    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11294     je short 07885h                           ; 74 14
     11258    je short 0782eh                           ; 74 14
    1129511259    mov al, byte [bp-006h]                    ; 8a 46 fa
    1129611260    xor ah, ah                                ; 30 e4
     
    1130011264    mov ax, strict word 00007h                ; b8 07 00
    1130111265    push ax                                   ; 50
    11302     call 01976h                               ; e8 f4 a0
     11266    call 01976h                               ; e8 4b a1
    1130311267    add sp, strict byte 00006h                ; 83 c4 06
    1130411268    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1130511269    xor ah, ah                                ; 30 e4
    11306     call 074e3h                               ; e8 56 fc
     11270    call 0748ch                               ; e8 56 fc
    1130711271    mov dx, ss                                ; 8c d2
    1130811272    lea ax, [bp-006h]                         ; 8d 46 fa
    11309     call 0751bh                               ; e8 86 fc
     11273    call 074c4h                               ; e8 86 fc
    1131011274    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11311     je short 078eah                           ; 74 4f
     11275    je short 07893h                           ; 74 4f
    1131211276    mov al, byte [bp-006h]                    ; 8a 46 fa
    1131311277    xor ah, ah                                ; 30 e4
     
    1131711281    mov ax, strict word 00007h                ; b8 07 00
    1131811282    push ax                                   ; 50
    11319     call 01976h                               ; e8 ca a0
     11283    call 01976h                               ; e8 21 a1
    1132011284    add sp, strict byte 00006h                ; 83 c4 06
    11321     jmp short 078eah                          ; eb 39
     11285    jmp short 07893h                          ; eb 39
    1132211286    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1132311287    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11324     jmp short 078eah                          ; eb 2f
     11288    jmp short 07893h                          ; eb 2f
    1132511289    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1132611290    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11327     jmp short 078eah                          ; eb 25
     11291    jmp short 07893h                          ; eb 25
    1132811292    mov ax, 000f2h                            ; b8 f2 00
    11329     call 074e3h                               ; e8 18 fc
     11293    call 0748ch                               ; e8 18 fc
    1133011294    test al, al                               ; 84 c0
    11331     jne short 078e2h                          ; 75 13
     11295    jne short 0788bh                          ; 75 13
    1133211296    mov dx, ss                                ; 8c d2
    1133311297    lea ax, [bp-006h]                         ; 8d 46 fa
    11334     call 0751bh                               ; e8 44 fc
     11298    call 074c4h                               ; e8 44 fc
    1133511299    mov dx, ss                                ; 8c d2
    1133611300    lea ax, [bp-004h]                         ; 8d 46 fc
    11337     call 0751bh                               ; e8 3c fc
    11338     jmp near 077b5h                           ; e9 d3 fe
     11301    call 074c4h                               ; e8 3c fc
     11302    jmp near 0775eh                           ; e9 d3 fe
    1133911303    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1134011304    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11341     jmp near 07a14h                           ; e9 27 01
     11305    jmp near 079bdh                           ; e9 27 01
    1134211306    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1134311307    test al, al                               ; 84 c0
    11344     jbe short 078fdh                          ; 76 09
     11308    jbe short 078a6h                          ; 76 09
    1134511309    cmp AL, strict byte 002h                  ; 3c 02
    11346     jbe short 078fbh                          ; 76 03
    11347     jmp near 0799ch                           ; e9 a1 00
    11348     jmp short 07967h                          ; eb 6a
     11310    jbe short 078a4h                          ; 76 03
     11311    jmp near 07945h                           ; e9 a1 00
     11312    jmp short 07910h                          ; eb 6a
    1134911313    mov ax, 000e9h                            ; b8 e9 00
    11350     call 074e3h                               ; e8 e0 fb
     11314    call 0748ch                               ; e8 e0 fb
    1135111315    test al, al                               ; 84 c0
    11352     jne short 07970h                          ; 75 69
     11316    jne short 07919h                          ; 75 69
    1135311317    mov dx, ss                                ; 8c d2
    1135411318    lea ax, [bp-006h]                         ; 8d 46 fa
    11355     call 0751bh                               ; e8 0c fc
     11319    call 074c4h                               ; e8 0c fc
    1135611320    mov cl, al                                ; 88 c1
    1135711321    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11358     je short 0792bh                           ; 74 14
     11322    je short 078d4h                           ; 74 14
    1135911323    mov al, byte [bp-006h]                    ; 8a 46 fa
    1136011324    xor ah, ah                                ; 30 e4
     
    1136411328    mov ax, strict word 00007h                ; b8 07 00
    1136511329    push ax                                   ; 50
    11366     call 01976h                               ; e8 4e a0
     11330    call 01976h                               ; e8 a5 a0
    1136711331    add sp, strict byte 00006h                ; 83 c4 06
    1136811332    test cl, cl                               ; 84 c9
    11369     jne short 07992h                          ; 75 63
     11333    jne short 0793bh                          ; 75 63
    1137011334    mov dx, ss                                ; 8c d2
    1137111335    lea ax, [bp-006h]                         ; 8d 46 fa
    11372     call 0751bh                               ; e8 e4 fb
     11336    call 074c4h                               ; e8 e4 fb
    1137311337    test al, al                               ; 84 c0
    11374     jne short 07992h                          ; 75 57
     11338    jne short 0793bh                          ; 75 57
    1137511339    mov dx, ss                                ; 8c d2
    1137611340    lea ax, [bp-004h]                         ; 8d 46 fc
    11377     call 0751bh                               ; e8 d8 fb
     11341    call 074c4h                               ; e8 d8 fb
    1137811342    test al, al                               ; 84 c0
    11379     jne short 07992h                          ; 75 4b
     11343    jne short 0793bh                          ; 75 4b
    1138011344    mov dx, ss                                ; 8c d2
    1138111345    lea ax, [bp-008h]                         ; 8d 46 f8
    11382     call 0751bh                               ; e8 cc fb
     11346    call 074c4h                               ; e8 cc fb
    1138311347    test al, al                               ; 84 c0
    11384     jne short 07992h                          ; 75 3f
     11348    jne short 0793bh                          ; 75 3f
    1138511349    mov al, byte [bp-006h]                    ; 8a 46 fa
    1138611350    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1138911353    mov al, byte [bp-008h]                    ; 8a 46 f8
    1139011354    mov byte [bp+00eh], al                    ; 88 46 0e
    11391     jmp short 078eah                          ; eb 83
     11355    jmp short 07893h                          ; eb 83
    1139211356    cmp AL, strict byte 001h                  ; 3c 01
    11393     jne short 07972h                          ; 75 07
     11357    jne short 0791bh                          ; 75 07
    1139411358    mov ax, 000e6h                            ; b8 e6 00
    11395     jmp short 07975h                          ; eb 05
    11396     jmp short 07992h                          ; eb 20
     11359    jmp short 0791eh                          ; eb 05
     11360    jmp short 0793bh                          ; eb 20
    1139711361    mov ax, 000e7h                            ; b8 e7 00
    11398     call 074e3h                               ; e8 6b fb
     11362    call 0748ch                               ; e8 6b fb
    1139911363    mov cl, al                                ; 88 c1
    1140011364    test cl, cl                               ; 84 c9
    11401     jne short 0798eh                          ; 75 10
     11365    jne short 07937h                          ; 75 10
    1140211366    mov dx, ss                                ; 8c d2
    1140311367    lea ax, [bp-006h]                         ; 8d 46 fa
    11404     call 0751bh                               ; e8 95 fb
     11368    call 074c4h                               ; e8 95 fb
    1140511369    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11406     je short 0798eh                           ; 74 02
     11370    je short 07937h                           ; 74 02
    1140711371    mov CL, strict byte 001h                  ; b1 01
    1140811372    test cl, cl                               ; 84 c9
    11409     je short 079fch                           ; 74 6a
     11373    je short 079a5h                           ; 74 6a
    1141011374    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1141111375    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11412     jmp short 079fch                          ; eb 60
     11376    jmp short 079a5h                          ; eb 60
    1141311377    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1141411378    xor ah, ah                                ; 30 e4
     
    1141811382    mov ax, strict word 00007h                ; b8 07 00
    1141911383    push ax                                   ; 50
    11420     call 01976h                               ; e8 c9 9f
     11384    call 01976h                               ; e8 20 a0
    1142111385    add sp, strict byte 00006h                ; 83 c4 06
    1142211386    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1142311387    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11424     jmp short 07a14h                          ; eb 5a
     11388    jmp short 079bdh                          ; eb 5a
    1142511389    mov si, word [bp+00ch]                    ; 8b 76 0c
    1142611390    mov bx, si                                ; 89 f3
    1142711391    mov dx, strict word 00022h                ; ba 22 00
    1142811392    mov ax, cx                                ; 89 c8
    11429     call 0167ch                               ; e8 b5 9c
     11393    call 0167ch                               ; e8 0c 9d
    1143011394    mov bx, word [bp+014h]                    ; 8b 5e 14
    1143111395    mov dx, strict word 00024h                ; ba 24 00
    1143211396    mov ax, cx                                ; 89 c8
    11433     call 0167ch                               ; e8 aa 9c
     11397    call 0167ch                               ; e8 01 9d
    1143411398    mov dx, strict word 00027h                ; ba 27 00
    1143511399    mov ax, cx                                ; 89 c8
    11436     call 01652h                               ; e8 78 9c
     11400    call 01652h                               ; e8 cf 9c
    1143711401    mov ah, al                                ; 88 c4
    1143811402    test si, si                               ; 85 f6
    11439     jne short 079eeh                          ; 75 0e
     11403    jne short 07997h                          ; 75 0e
    1144011404    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11441     jne short 079eeh                          ; 75 08
     11405    jne short 07997h                          ; 75 08
    1144211406    test AL, strict byte 080h                 ; a8 80
    11443     je short 079f0h                           ; 74 06
     11407    je short 07999h                           ; 74 06
    1144411408    and AL, strict byte 07fh                  ; 24 7f
    11445     jmp short 079f0h                          ; eb 02
     11409    jmp short 07999h                          ; eb 02
    1144611410    or AL, strict byte 080h                   ; 0c 80
    1144711411    mov bl, al                                ; 88 c3
     
    1144911413    mov dx, strict word 00027h                ; ba 27 00
    1145011414    mov ax, cx                                ; 89 c8
    11451     call 01660h                               ; e8 64 9c
    11452     jmp short 07a14h                          ; eb 16
     11415    call 01660h                               ; e8 bb 9c
     11416    jmp short 079bdh                          ; eb 16
    1145311417    mov ax, 00974h                            ; b8 74 09
    1145411418    push ax                                   ; 50
    1145511419    mov ax, strict word 00007h                ; b8 07 00
    1145611420    push ax                                   ; 50
    11457     call 01976h                               ; e8 6d 9f
     11421    call 01976h                               ; e8 c4 9f
    1145811422    add sp, strict byte 00004h                ; 83 c4 04
    1145911423    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1146011424    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1146111425    mov ax, strict word 00047h                ; b8 47 00
    11462     call 07578h                               ; e8 5e fb
     11426    call 07521h                               ; e8 5e fb
    1146311427    lea sp, [bp-002h]                         ; 8d 66 fe
    1146411428    pop si                                    ; 5e
    1146511429    pop bp                                    ; 5d
    1146611430    retn                                      ; c3
    11467 _int17_function:                             ; 0xf7a20 LB 0xac
     11431_int17_function:                             ; 0xf79c9 LB 0xac
    1146811432    push bp                                   ; 55
    1146911433    mov bp, sp                                ; 89 e5
     
    1147511439    add dx, strict byte 00008h                ; 83 c2 08
    1147611440    mov ax, strict word 00040h                ; b8 40 00
    11477     call 0166eh                               ; e8 3a 9c
     11441    call 0166eh                               ; e8 91 9c
    1147811442    mov bx, ax                                ; 89 c3
    1147911443    mov si, ax                                ; 89 c6
    1148011444    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11481     jnc short 07a4ah                          ; 73 0c
     11445    jnc short 079f3h                          ; 73 0c
    1148211446    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1148311447    cmp ax, strict word 00003h                ; 3d 03 00
    11484     jnc short 07a4ah                          ; 73 04
     11448    jnc short 079f3h                          ; 73 04
    1148511449    test bx, bx                               ; 85 db
    11486     jnbe short 07a4dh                         ; 77 03
    11487     jmp near 07ac2h                           ; e9 75 00
     11450    jnbe short 079f6h                         ; 77 03
     11451    jmp near 07a6bh                           ; e9 75 00
    1148811452    mov dx, ax                                ; 89 c2
    1148911453    add dx, strict byte 00078h                ; 83 c2 78
    1149011454    mov ax, strict word 00040h                ; b8 40 00
    11491     call 01652h                               ; e8 fa 9b
     11455    call 01652h                               ; e8 51 9c
    1149211456    mov ch, al                                ; 88 c5
    1149311457    xor cl, cl                                ; 30 c9
    1149411458    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11495     jne short 07a8eh                          ; 75 2c
     11459    jne short 07a37h                          ; 75 2c
    1149611460    mov al, byte [bp+012h]                    ; 8a 46 12
    1149711461    mov dx, bx                                ; 89 da
     
    1151311477    ; sub ah, ah                                ; 2a e4
    1151411478    test AL, strict byte 040h                 ; a8 40
    11515     je short 07a8eh                           ; 74 07
     11479    je short 07a37h                           ; 74 07
    1151611480    test cx, cx                               ; 85 c9
    11517     je short 07a8eh                           ; 74 03
     11481    je short 07a37h                           ; 74 03
    1151811482    dec cx                                    ; 49
    11519     jmp short 07a7dh                          ; eb ef
     11483    jmp short 07a26h                          ; eb ef
    1152011484    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11521     jne short 07aa9h                          ; 75 15
     11485    jne short 07a52h                          ; 75 15
    1152211486    lea dx, [si+002h]                         ; 8d 54 02
    1152311487    in AL, DX                                 ; ec
     
    1153811502    mov byte [bp+013h], al                    ; 88 46 13
    1153911503    test cx, cx                               ; 85 c9
    11540     jne short 07abch                          ; 75 04
     11504    jne short 07a65h                          ; 75 04
    1154111505    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1154211506    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11543     jmp short 07ac6h                          ; eb 04
     11507    jmp short 07a6fh                          ; eb 04
    1154411508    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1154511509    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1154711511    pop bp                                    ; 5d
    1154811512    retn                                      ; c3
    11549 wait_:                                       ; 0xf7acc LB 0xb2
     11513wait_:                                       ; 0xf7a75 LB 0xb2
    1155011514    push bp                                   ; 55
    1155111515    mov bp, sp                                ; 89 e5
     
    1156511529    mov dx, 0046ch                            ; ba 6c 04
    1156611530    xor ax, ax                                ; 31 c0
    11567     call 0168ah                               ; e8 9b 9b
     11531    call 0168ah                               ; e8 f2 9b
    1156811532    mov word [bp-00eh], ax                    ; 89 46 f2
    1156911533    mov bx, dx                                ; 89 d3
     
    1157111535    mov dx, 0046ch                            ; ba 6c 04
    1157211536    xor ax, ax                                ; 31 c0
    11573     call 0168ah                               ; e8 8d 9b
     11537    call 0168ah                               ; e8 e4 9b
    1157411538    mov word [bp-012h], ax                    ; 89 46 ee
    1157511539    mov di, dx                                ; 89 d7
    1157611540    cmp dx, bx                                ; 39 da
    11577     jnbe short 07b0dh                         ; 77 07
    11578     jne short 07b14h                          ; 75 0c
     11541    jnbe short 07ab6h                         ; 77 07
     11542    jne short 07abdh                          ; 75 0c
    1157911543    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11580     jbe short 07b14h                          ; 76 07
     11544    jbe short 07abdh                          ; 76 07
    1158111545    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1158211546    sbb dx, bx                                ; 19 da
    11583     jmp short 07b1fh                          ; eb 0b
     11547    jmp short 07ac8h                          ; eb 0b
    1158411548    cmp dx, bx                                ; 39 da
    11585     jc short 07b1fh                           ; 72 07
    11586     jne short 07b23h                          ; 75 09
     11549    jc short 07ac8h                           ; 72 07
     11550    jne short 07acch                          ; 75 09
    1158711551    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11588     jnc short 07b23h                          ; 73 04
     11552    jnc short 07acch                          ; 73 04
    1158911553    sub si, ax                                ; 29 c6
    1159011554    sbb cx, dx                                ; 19 d1
     
    1159411558    mov ax, 00100h                            ; b8 00 01
    1159511559    int 016h                                  ; cd 16
    11596     je short 07b37h                           ; 74 05
     11560    je short 07ae0h                           ; 74 05
    1159711561    mov AL, strict byte 001h                  ; b0 01
    11598     jmp near 07b39h                           ; e9 02 00
     11562    jmp near 07ae2h                           ; e9 02 00
    1159911563    db  032h, 0c0h
    1160011564    ; xor al, al                                ; 32 c0
    1160111565    test al, al                               ; 84 c0
    11602     je short 07b63h                           ; 74 26
     11566    je short 07b0ch                           ; 74 26
    1160311567    db  033h, 0c0h
    1160411568    ; xor ax, ax                                ; 33 c0
     
    1161311577    mov ax, strict word 00004h                ; b8 04 00
    1161411578    push ax                                   ; 50
    11615     call 01976h                               ; e8 20 9e
     11579    call 01976h                               ; e8 77 9e
    1161611580    add sp, strict byte 00006h                ; 83 c4 06
    1161711581    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11618     je short 07b63h                           ; 74 04
     11582    je short 07b0ch                           ; 74 04
    1161911583    mov al, dl                                ; 88 d0
    11620     jmp short 07b75h                          ; eb 12
     11584    jmp short 07b1eh                          ; eb 12
    1162111585    test cx, cx                               ; 85 c9
    11622     jnle short 07af4h                         ; 7f 8d
    11623     jne short 07b6dh                          ; 75 04
     11586    jnle short 07a9dh                         ; 7f 8d
     11587    jne short 07b16h                          ; 75 04
    1162411588    test si, si                               ; 85 f6
    11625     jnbe short 07af4h                         ; 77 87
     11589    jnbe short 07a9dh                         ; 77 87
    1162611590    mov ax, word [bp-010h]                    ; 8b 46 f0
    1162711591    push ax                                   ; 50
     
    1163511599    pop bp                                    ; 5d
    1163611600    retn                                      ; c3
    11637 read_logo_byte_:                             ; 0xf7b7e LB 0x16
     11601read_logo_byte_:                             ; 0xf7b27 LB 0x16
    1163811602    push bp                                   ; 55
    1163911603    mov bp, sp                                ; 89 e5
     
    1165011614    pop bp                                    ; 5d
    1165111615    retn                                      ; c3
    11652 read_logo_word_:                             ; 0xf7b94 LB 0x14
     11616read_logo_word_:                             ; 0xf7b3d LB 0x14
    1165311617    push bp                                   ; 55
    1165411618    mov bp, sp                                ; 89 e5
     
    1166311627    pop bp                                    ; 5d
    1166411628    retn                                      ; c3
    11665 print_detected_harddisks_:                   ; 0xf7ba8 LB 0x15a
     11629print_detected_harddisks_:                   ; 0xf7b51 LB 0x15a
    1166611630    push bp                                   ; 55
    1166711631    mov bp, sp                                ; 89 e5
     
    1167311637    mov dx, strict word 0000eh                ; ba 0e 00
    1167411638    mov ax, strict word 00040h                ; b8 40 00
    11675     call 0166eh                               ; e8 b3 9a
     11639    call 0166eh                               ; e8 0a 9b
    1167611640    mov si, ax                                ; 89 c6
    1167711641    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1167911643    mov byte [bp-00ch], ch                    ; 88 6e f4
    1168011644    mov dx, 00304h                            ; ba 04 03
    11681     call 01652h                               ; e8 86 9a
     11645    call 01652h                               ; e8 dd 9a
    1168211646    mov byte [bp-00ah], al                    ; 88 46 f6
    1168311647    xor cl, cl                                ; 30 c9
    1168411648    cmp cl, byte [bp-00ah]                    ; 3a 4e f6
    11685     jnc short 07c34h                          ; 73 5e
     11649    jnc short 07bddh                          ; 73 5e
    1168611650    mov al, cl                                ; 88 c8
    1168711651    xor ah, ah                                ; 30 e4
     
    1168911653    add dx, 00305h                            ; 81 c2 05 03
    1169011654    mov ax, si                                ; 89 f0
    11691     call 01652h                               ; e8 6d 9a
     11655    call 01652h                               ; e8 c4 9a
    1169211656    mov bl, al                                ; 88 c3
    1169311657    cmp AL, strict byte 00ch                  ; 3c 0c
    11694     jc short 07c16h                           ; 72 2b
     11658    jc short 07bbfh                           ; 72 2b
    1169511659    test ch, ch                               ; 84 ed
    11696     jne short 07bffh                          ; 75 10
     11660    jne short 07ba8h                          ; 75 10
    1169711661    mov ax, 009a7h                            ; b8 a7 09
    1169811662    push ax                                   ; 50
    1169911663    mov ax, strict word 00002h                ; b8 02 00
    1170011664    push ax                                   ; 50
    11701     call 01976h                               ; e8 7c 9d
     11665    call 01976h                               ; e8 d3 9d
    1170211666    add sp, strict byte 00004h                ; 83 c4 04
    1170311667    mov CH, strict byte 001h                  ; b5 01
     
    1171011674    mov ax, strict word 00002h                ; b8 02 00
    1171111675    push ax                                   ; 50
    11712     call 01976h                               ; e8 66 9d
     11676    call 01976h                               ; e8 bd 9d
    1171311677    add sp, strict byte 00006h                ; 83 c4 06
    11714     jmp near 07cc8h                           ; e9 b2 00
     11678    jmp near 07c71h                           ; e9 b2 00
    1171511679    cmp AL, strict byte 008h                  ; 3c 08
    11716     jc short 07c37h                           ; 72 1d
     11680    jc short 07be0h                           ; 72 1d
    1171711681    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11718     jne short 07c32h                          ; 75 12
     11682    jne short 07bdbh                          ; 75 12
    1171911683    mov ax, 009cfh                            ; b8 cf 09
    1172011684    push ax                                   ; 50
    1172111685    mov ax, strict word 00002h                ; b8 02 00
    1172211686    push ax                                   ; 50
    11723     call 01976h                               ; e8 4b 9d
     11687    call 01976h                               ; e8 a2 9d
    1172411688    add sp, strict byte 00004h                ; 83 c4 04
    1172511689    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11726     jmp short 07bffh                          ; eb cb
    11727     jmp near 07ccdh                           ; e9 96 00
     11690    jmp short 07ba8h                          ; eb cb
     11691    jmp near 07c76h                           ; e9 96 00
    1172811692    cmp AL, strict byte 004h                  ; 3c 04
    11729     jnc short 07c55h                          ; 73 1a
     11693    jnc short 07bfeh                          ; 73 1a
    1173011694    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11731     jne short 07c55h                          ; 75 14
     11695    jne short 07bfeh                          ; 75 14
    1173211696    mov ax, 009e4h                            ; b8 e4 09
    1173311697    push ax                                   ; 50
    1173411698    mov ax, strict word 00002h                ; b8 02 00
    1173511699    push ax                                   ; 50
    11736     call 01976h                               ; e8 2a 9d
     11700    call 01976h                               ; e8 81 9d
    1173711701    add sp, strict byte 00004h                ; 83 c4 04
    1173811702    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11739     jmp short 07c6eh                          ; eb 19
     11703    jmp short 07c17h                          ; eb 19
    1174011704    cmp bl, 004h                              ; 80 fb 04
    11741     jc short 07c6eh                           ; 72 14
     11705    jc short 07c17h                           ; 72 14
    1174211706    test ch, ch                               ; 84 ed
    11743     jne short 07c6eh                          ; 75 10
     11707    jne short 07c17h                          ; 75 10
    1174411708    mov ax, 009f6h                            ; b8 f6 09
    1174511709    push ax                                   ; 50
    1174611710    mov ax, strict word 00002h                ; b8 02 00
    1174711711    push ax                                   ; 50
    11748     call 01976h                               ; e8 0d 9d
     11712    call 01976h                               ; e8 64 9d
    1174911713    add sp, strict byte 00004h                ; 83 c4 04
    1175011714    mov CH, strict byte 001h                  ; b5 01
     
    1175711721    mov ax, strict word 00002h                ; b8 02 00
    1175811722    push ax                                   ; 50
    11759     call 01976h                               ; e8 f7 9c
     11723    call 01976h                               ; e8 4e 9d
    1176011724    add sp, strict byte 00006h                ; 83 c4 06
    1176111725    cmp bl, 004h                              ; 80 fb 04
    11762     jc short 07c8ah                           ; 72 03
     11726    jc short 07c33h                           ; 72 03
    1176311727    sub bl, 004h                              ; 80 eb 04
    1176411728    mov al, bl                                ; 88 d8
     
    1176911733    sar ax, 1                                 ; d1 f8
    1177011734    test ax, ax                               ; 85 c0
    11771     je short 07c9ch                           ; 74 05
     11735    je short 07c45h                           ; 74 05
    1177211736    mov ax, 00a14h                            ; b8 14 0a
    11773     jmp short 07c9fh                          ; eb 03
     11737    jmp short 07c48h                          ; eb 03
    1177411738    mov ax, 00a1fh                            ; b8 1f 0a
    1177511739    push ax                                   ; 50
    1177611740    mov ax, strict word 00002h                ; b8 02 00
    1177711741    push ax                                   ; 50
    11778     call 01976h                               ; e8 cf 9c
     11742    call 01976h                               ; e8 26 9d
    1177911743    add sp, strict byte 00004h                ; 83 c4 04
    1178011744    mov al, bl                                ; 88 d8
     
    1178411748    idiv bx                                   ; f7 fb
    1178511749    test dx, dx                               ; 85 d2
    11786     je short 07cbdh                           ; 74 05
     11750    je short 07c66h                           ; 74 05
    1178711751    mov ax, 00a28h                            ; b8 28 0a
    11788     jmp short 07cc0h                          ; eb 03
     11752    jmp short 07c69h                          ; eb 03
    1178911753    mov ax, 00a2eh                            ; b8 2e 0a
    1179011754    push ax                                   ; 50
    1179111755    push bx                                   ; 53
    11792     call 01976h                               ; e8 b1 9c
     11756    call 01976h                               ; e8 08 9d
    1179311757    add sp, strict byte 00004h                ; 83 c4 04
    1179411758    db  0feh, 0c1h
    1179511759    ; inc cl                                    ; fe c1
    11796     jmp near 07bd1h                           ; e9 04 ff
     11760    jmp near 07b7ah                           ; e9 04 ff
    1179711761    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11798     jne short 07cebh                          ; 75 18
     11762    jne short 07c94h                          ; 75 18
    1179911763    test ch, ch                               ; 84 ed
    11800     jne short 07cebh                          ; 75 14
     11764    jne short 07c94h                          ; 75 14
    1180111765    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11802     jne short 07cebh                          ; 75 0e
     11766    jne short 07c94h                          ; 75 0e
    1180311767    mov ax, 00a35h                            ; b8 35 0a
    1180411768    push ax                                   ; 50
    1180511769    mov ax, strict word 00002h                ; b8 02 00
    1180611770    push ax                                   ; 50
    11807     call 01976h                               ; e8 8e 9c
     11771    call 01976h                               ; e8 e5 9c
    1180811772    add sp, strict byte 00004h                ; 83 c4 04
    1180911773    mov ax, 00a49h                            ; b8 49 0a
     
    1181111775    mov ax, strict word 00002h                ; b8 02 00
    1181211776    push ax                                   ; 50
    11813     call 01976h                               ; e8 80 9c
     11777    call 01976h                               ; e8 d7 9c
    1181411778    add sp, strict byte 00004h                ; 83 c4 04
    1181511779    lea sp, [bp-008h]                         ; 8d 66 f8
     
    1182011784    pop bp                                    ; 5d
    1182111785    retn                                      ; c3
    11822 get_boot_drive_:                             ; 0xf7d02 LB 0x28
     11786get_boot_drive_:                             ; 0xf7cab LB 0x28
    1182311787    push bp                                   ; 55
    1182411788    mov bp, sp                                ; 89 e5
     
    1182811792    mov dx, strict word 0000eh                ; ba 0e 00
    1182911793    mov ax, strict word 00040h                ; b8 40 00
    11830     call 0166eh                               ; e8 5c 99
     11794    call 0166eh                               ; e8 b3 99
    1183111795    mov dx, 00304h                            ; ba 04 03
    11832     call 01652h                               ; e8 3a 99
     11796    call 01652h                               ; e8 91 99
    1183311797    sub bl, 002h                              ; 80 eb 02
    1183411798    cmp bl, al                                ; 38 c3
    11835     jc short 07d21h                           ; 72 02
     11799    jc short 07ccah                           ; 72 02
    1183611800    mov BL, strict byte 0ffh                  ; b3 ff
    1183711801    mov al, bl                                ; 88 d8
     
    1184111805    pop bp                                    ; 5d
    1184211806    retn                                      ; c3
    11843 show_logo_:                                  ; 0xf7d2a LB 0x242
     11807show_logo_:                                  ; 0xf7cd3 LB 0x240
    1184411808    push bp                                   ; 55
    1184511809    mov bp, sp                                ; 89 e5
     
    1185211816    mov dx, strict word 0000eh                ; ba 0e 00
    1185311817    mov ax, strict word 00040h                ; b8 40 00
    11854     call 0166eh                               ; e8 30 99
     11818    call 0166eh                               ; e8 87 99
    1185511819    mov si, ax                                ; 89 c6
    1185611820    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1186411828    mov al, cl                                ; 88 c8
    1186511829    xor ah, ah                                ; 30 e4
    11866     call 07b94h                               ; e8 3b fe
     11830    call 07b3dh                               ; e8 3b fe
    1186711831    cmp ax, 066bbh                            ; 3d bb 66
    11868     jne short 07d70h                          ; 75 12
     11832    jne short 07d19h                          ; 75 12
    1186911833    push SS                                   ; 16
    1187011834    pop ES                                    ; 07
     
    1187411838    mov word [es:di], bx                      ; 26 89 1d
    1187511839    cmp ax, strict word 0004fh                ; 3d 4f 00
    11876     je short 07d73h                           ; 74 03
    11877     jmp near 07e39h                           ; e9 c6 00
     11840    je short 07d1ch                           ; 74 03
     11841    jmp near 07de2h                           ; e9 c6 00
    1187811842    mov al, cl                                ; 88 c8
    1187911843    add AL, strict byte 004h                  ; 04 04
    1188011844    xor ah, ah                                ; 30 e4
    11881     call 07b7eh                               ; e8 02 fe
     11845    call 07b27h                               ; e8 02 fe
    1188211846    mov bl, al                                ; 88 c3
    1188311847    mov byte [bp-014h], al                    ; 88 46 ec
     
    1188511849    add AL, strict byte 005h                  ; 04 05
    1188611850    xor ah, ah                                ; 30 e4
    11887     call 07b7eh                               ; e8 f4 fd
     11851    call 07b27h                               ; e8 f4 fd
    1188811852    mov bh, al                                ; 88 c7
    1188911853    mov byte [bp-012h], al                    ; 88 46 ee
     
    1189111855    add AL, strict byte 002h                  ; 04 02
    1189211856    xor ah, ah                                ; 30 e4
    11893     call 07b94h                               ; e8 fc fd
     11857    call 07b3dh                               ; e8 fc fd
    1189411858    mov dx, ax                                ; 89 c2
    1189511859    mov word [bp-016h], ax                    ; 89 46 ea
     
    1189711861    add AL, strict byte 006h                  ; 04 06
    1189811862    xor ah, ah                                ; 30 e4
    11899     call 07b7eh                               ; e8 d8 fd
     11863    call 07b27h                               ; e8 d8 fd
    1190011864    mov byte [bp-010h], al                    ; 88 46 f0
    1190111865    test bl, bl                               ; 84 db
    11902     jne short 07db5h                          ; 75 08
     11866    jne short 07d5eh                          ; 75 08
    1190311867    test bh, bh                               ; 84 ff
    11904     jne short 07db5h                          ; 75 04
     11868    jne short 07d5eh                          ; 75 04
    1190511869    test dx, dx                               ; 85 d2
    11906     je short 07d70h                           ; 74 bb
     11870    je short 07d19h                           ; 74 bb
    1190711871    mov bx, 00142h                            ; bb 42 01
    1190811872    mov ax, 04f02h                            ; b8 02 4f
    1190911873    int 010h                                  ; cd 10
    1191011874    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11911     je short 07de8h                           ; 74 25
     11875    je short 07d91h                           ; 74 25
    1191211876    xor cx, cx                                ; 31 c9
    11913     jmp short 07dcdh                          ; eb 06
     11877    jmp short 07d76h                          ; eb 06
    1191411878    inc cx                                    ; 41
    1191511879    cmp cx, strict byte 00010h                ; 83 f9 10
    11916     jnbe short 07defh                         ; 77 22
     11880    jnbe short 07d98h                         ; 77 22
    1191711881    mov ax, cx                                ; 89 c8
    1191811882    or ah, 002h                               ; 80 cc 02
     
    1192111885    xor dx, dx                                ; 31 d2
    1192211886    mov ax, strict word 00001h                ; b8 01 00
    11923     call 07acch                               ; e8 ee fc
     11887    call 07a75h                               ; e8 ee fc
    1192411888    cmp AL, strict byte 086h                  ; 3c 86
    11925     jne short 07dc7h                          ; 75 e5
     11889    jne short 07d70h                          ; 75 e5
    1192611890    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11927     jmp short 07defh                          ; eb 07
     11891    jmp short 07d98h                          ; eb 07
    1192811892    mov ax, 00210h                            ; b8 10 02
    1192911893    mov dx, 003b8h                            ; ba b8 03
    1193011894    out DX, ax                                ; ef
    1193111895    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11932     jne short 07e0ah                          ; 75 15
     11896    jne short 07db3h                          ; 75 15
    1193311897    mov CL, strict byte 004h                  ; b1 04
    1193411898    mov ax, word [bp-016h]                    ; 8b 46 ea
    1193511899    shr ax, CL                                ; d3 e8
    1193611900    mov dx, strict word 00001h                ; ba 01 00
    11937     call 07acch                               ; e8 ca fc
     11901    call 07a75h                               ; e8 ca fc
    1193811902    cmp AL, strict byte 086h                  ; 3c 86
    11939     jne short 07e0ah                          ; 75 04
     11903    jne short 07db3h                          ; 75 04
    1194011904    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1194111905    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11942     je short 07e39h                           ; 74 29
     11906    je short 07de2h                           ; 74 29
    1194311907    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11944     jne short 07e39h                          ; 75 23
     11908    jne short 07de2h                          ; 75 23
    1194511909    mov cx, strict word 00010h                ; b9 10 00
    11946     jmp short 07e20h                          ; eb 05
     11910    jmp short 07dc9h                          ; eb 05
    1194711911    dec cx                                    ; 49
    1194811912    test cx, cx                               ; 85 c9
    11949     jbe short 07e39h                          ; 76 19
     11913    jbe short 07de2h                          ; 76 19
    1195011914    mov ax, cx                                ; 89 c8
    1195111915    or ah, 002h                               ; 80 cc 02
     
    1195411918    xor dx, dx                                ; 31 d2
    1195511919    mov ax, strict word 00001h                ; b8 01 00
    11956     call 07acch                               ; e8 9b fc
     11920    call 07a75h                               ; e8 9b fc
    1195711921    cmp AL, strict byte 086h                  ; 3c 86
    11958     jne short 07e1bh                          ; 75 e6
     11922    jne short 07dc4h                          ; 75 e6
    1195911923    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1196011924    xor bx, bx                                ; 31 db
    1196111925    mov dx, 0037dh                            ; ba 7d 03
    1196211926    mov ax, si                                ; 89 f0
    11963     call 01660h                               ; e8 1d 98
     11927    call 01660h                               ; e8 74 98
    1196411928    mov AL, strict byte 003h                  ; b0 03
    1196511929    mov AH, strict byte 000h                  ; b4 00
    1196611930    int 010h                                  ; cd 10
    1196711931    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11968     je short 07e63h                           ; 74 14
     11932    je short 07e0ch                           ; 74 14
    1196911933    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11970     jne short 07e91h                          ; 75 3c
     11934    jne short 07e3ah                          ; 75 3c
    1197111935    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11972     jne short 07e91h                          ; 75 36
     11936    jne short 07e3ah                          ; 75 36
    1197311937    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11974     je short 07e66h                           ; 74 05
    11975     jmp short 07e91h                          ; eb 2e
    11976     jmp near 07f4dh                           ; e9 e7 00
     11938    je short 07e0fh                           ; 74 05
     11939    jmp short 07e3ah                          ; eb 2e
     11940    jmp near 07ef6h                           ; e9 e7 00
    1197711941    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    11978     jne short 07e7ah                          ; 75 0e
     11942    jne short 07e23h                          ; 75 0e
    1197911943    mov ax, 00a4bh                            ; b8 4b 0a
    1198011944    push ax                                   ; 50
    1198111945    mov ax, strict word 00002h                ; b8 02 00
    1198211946    push ax                                   ; 50
    11983     call 01976h                               ; e8 ff 9a
     11947    call 01976h                               ; e8 56 9b
    1198411948    add sp, strict byte 00004h                ; 83 c4 04
    1198511949    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11986     jne short 07e91h                          ; 75 11
     11950    jne short 07e3ah                          ; 75 11
    1198711951    mov dx, strict word 00001h                ; ba 01 00
    1198811952    mov ax, 000c0h                            ; b8 c0 00
    11989     call 07acch                               ; e8 43 fc
     11953    call 07a75h                               ; e8 43 fc
    1199011954    cmp AL, strict byte 086h                  ; 3c 86
    11991     jne short 07e91h                          ; 75 04
     11955    jne short 07e3ah                          ; 75 04
    1199211956    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1199311957    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11994     je short 07e63h                           ; 74 cc
     11958    je short 07e0ch                           ; 74 cc
    1199511959    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1199611960    mov ax, 00100h                            ; b8 00 01
     
    1201311977    mov ax, strict word 00002h                ; b8 02 00
    1201411978    push ax                                   ; 50
    12015     call 01976h                               ; e8 b3 9a
     11979    call 01976h                               ; e8 0a 9b
    1201611980    add sp, strict byte 00004h                ; 83 c4 04
    12017     call 07ba8h                               ; e8 df fc
     11981    call 07b51h                               ; e8 df fc
    1201811982    mov ax, 00ab1h                            ; b8 b1 0a
    1201911983    push ax                                   ; 50
    1202011984    mov ax, strict word 00002h                ; b8 02 00
    1202111985    push ax                                   ; 50
    12022     call 01976h                               ; e8 a2 9a
     11986    call 01976h                               ; e8 f9 9a
    1202311987    add sp, strict byte 00004h                ; 83 c4 04
    1202411988    mov dx, strict word 00001h                ; ba 01 00
    1202511989    mov ax, strict word 00040h                ; b8 40 00
    12026     call 07acch                               ; e8 ec fb
     11990    call 07a75h                               ; e8 ec fb
    1202711991    mov cl, al                                ; 88 c1
    1202811992    test al, al                               ; 84 c0
    12029     je short 07ed7h                           ; 74 f1
     11993    je short 07e80h                           ; 74 f1
    1203011994    cmp AL, strict byte 030h                  ; 3c 30
    12031     je short 07f3ah                           ; 74 50
     11995    je short 07ee3h                           ; 74 50
    1203211996    cmp cl, 002h                              ; 80 f9 02
    12033     jc short 07f13h                           ; 72 24
     11997    jc short 07ebch                           ; 72 24
    1203411998    cmp cl, 009h                              ; 80 f9 09
    12035     jnbe short 07f13h                         ; 77 1f
     11999    jnbe short 07ebch                         ; 77 1f
    1203612000    mov al, cl                                ; 88 c8
    1203712001    xor ah, ah                                ; 30 e4
    12038     call 07d02h                               ; e8 07 fe
     12002    call 07cabh                               ; e8 07 fe
    1203912003    cmp AL, strict byte 0ffh                  ; 3c ff
    12040     jne short 07f01h                          ; 75 02
    12041     jmp short 07ed7h                          ; eb d6
     12004    jne short 07eaah                          ; 75 02
     12005    jmp short 07e80h                          ; eb d6
    1204212006    mov bl, al                                ; 88 c3
    1204312007    xor bh, bh                                ; 30 ff
    1204412008    mov dx, 0037ch                            ; ba 7c 03
    1204512009    mov ax, si                                ; 89 f0
    12046     call 01660h                               ; e8 53 97
     12010    call 01660h                               ; e8 aa 97
    1204712011    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    12048     jmp short 07f3ah                          ; eb 27
     12012    jmp short 07ee3h                          ; eb 27
    1204912013    cmp cl, 02eh                              ; 80 f9 2e
    12050     je short 07f28h                           ; 74 10
     12014    je short 07ed1h                           ; 74 10
    1205112015    cmp cl, 026h                              ; 80 f9 26
    12052     je short 07f2eh                           ; 74 11
     12016    je short 07ed7h                           ; 74 11
    1205312017    cmp cl, 021h                              ; 80 f9 21
    12054     jne short 07f34h                          ; 75 12
     12018    jne short 07eddh                          ; 75 12
    1205512019    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    12056     jmp short 07f3ah                          ; eb 12
     12020    jmp short 07ee3h                          ; eb 12
    1205712021    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    12058     jmp short 07f3ah                          ; eb 0c
     12022    jmp short 07ee3h                          ; eb 0c
    1205912023    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    12060     jmp short 07f3ah                          ; eb 06
     12024    jmp short 07ee3h                          ; eb 06
    1206112025    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    12062     je short 07ed7h                           ; 74 9d
     12026    je short 07e80h                           ; 74 9d
    1206312027    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1206412028    xor bh, bh                                ; 30 ff
    1206512029    mov dx, 0037dh                            ; ba 7d 03
    1206612030    mov ax, si                                ; 89 f0
    12067     call 01660h                               ; e8 19 97
     12031    call 01660h                               ; e8 70 97
    1206812032    mov AL, strict byte 003h                  ; b0 03
    1206912033    mov AH, strict byte 000h                  ; b4 00
     
    1207512039    out strict byte 040h, AL                  ; e6 40
    1207612040    out strict byte 040h, AL                  ; e6 40
    12077     pushad                                    ; 66 60
     12041    push bp                                   ; 55
    1207812042    push DS                                   ; 1e
    1207912043    mov ds, ax                                ; 8e d8
    12080     call 0edbfh                               ; e8 60 6e
     12044    call 0ede3h                               ; e8 dc 6e
    1208112045    pop DS                                    ; 1f
    12082     popad                                     ; 66 61
     12046    pop bp                                    ; 5d
    1208312047    lea sp, [bp-00ah]                         ; 8d 66 f6
    1208412048    pop di                                    ; 5f
     
    1208912053    pop bp                                    ; 5d
    1209012054    retn                                      ; c3
    12091 delay_boot_:                                 ; 0xf7f6c LB 0x6e
     12055delay_boot_:                                 ; 0xf7f13 LB 0x72
    1209212056    push bp                                   ; 55
    1209312057    mov bp, sp                                ; 89 e5
    1209412058    push bx                                   ; 53
     12059    push cx                                   ; 51
    1209512060    push dx                                   ; 52
     12061    push si                                   ; 56
     12062    push di                                   ; 57
    1209612063    mov bx, ax                                ; 89 c3
    1209712064    test ax, ax                               ; 85 c0
    12098     je short 07fd3h                           ; 74 5c
     12065    je short 07f7bh                           ; 74 5a
    1209912066    mov AL, strict byte 034h                  ; b0 34
    1210012067    out strict byte 043h, AL                  ; e6 43
     
    1210812075    mov ax, strict word 00002h                ; b8 02 00
    1210912076    push ax                                   ; 50
    12110     call 01976h                               ; e8 e7 99
     12077    call 01976h                               ; e8 3d 9a
    1211112078    add sp, strict byte 00006h                ; 83 c4 06
    1211212079    test bx, bx                               ; 85 db
    12113     jbe short 07fb0h                          ; 76 1a
     12080    jbe short 07f5ah                          ; 76 1a
    1211412081    push bx                                   ; 53
    1211512082    mov ax, 00b19h                            ; b8 19 0b
     
    1211712084    mov ax, strict word 00002h                ; b8 02 00
    1211812085    push ax                                   ; 50
    12119     call 01976h                               ; e8 d4 99
     12086    call 01976h                               ; e8 2a 9a
    1212012087    add sp, strict byte 00006h                ; 83 c4 06
    1212112088    xor dx, dx                                ; 31 d2
    1212212089    mov ax, strict word 00040h                ; b8 40 00
    12123     call 07acch                               ; e8 1f fb
     12090    call 07a75h                               ; e8 1e fb
    1212412091    dec bx                                    ; 4b
    12125     jmp short 07f92h                          ; eb e2
     12092    jmp short 07f3ch                          ; eb e2
    1212612093    mov bx, 00a49h                            ; bb 49 0a
    1212712094    push bx                                   ; 53
    1212812095    mov bx, strict word 00002h                ; bb 02 00
    1212912096    push bx                                   ; 53
    12130     call 01976h                               ; e8 bb 99
     12097    call 01976h                               ; e8 11 9a
    1213112098    add sp, strict byte 00004h                ; 83 c4 04
    1213212099    mov AL, strict byte 034h                  ; b0 34
     
    1213612103    out strict byte 040h, AL                  ; e6 40
    1213712104    out strict byte 040h, AL                  ; e6 40
    12138     pushad                                    ; 66 60
     12105    push bp                                   ; 55
    1213912106    push DS                                   ; 1e
    1214012107    mov ds, ax                                ; 8e d8
    12141     call 0edbfh                               ; e8 ef 6d
     12108    call 0ede3h                               ; e8 6a 6e
    1214212109    pop DS                                    ; 1f
    12143     popad                                     ; 66 61
    12144     lea sp, [bp-004h]                         ; 8d 66 fc
     12110    pop bp                                    ; 5d
     12111    lea sp, [bp-00ah]                         ; 8d 66 f6
     12112    pop di                                    ; 5f
     12113    pop si                                    ; 5e
    1214512114    pop dx                                    ; 5a
     12115    pop cx                                    ; 59
    1214612116    pop bx                                    ; 5b
    1214712117    pop bp                                    ; 5d
    1214812118    retn                                      ; c3
    12149 scsi_cmd_data_in_:                           ; 0xf7fda LB 0xd5
     12119scsi_cmd_data_in_:                           ; 0xf7f85 LB 0xd5
    1215012120    push bp                                   ; 55
    1215112121    mov bp, sp                                ; 89 e5
     
    1216312133    ; sub ah, ah                                ; 2a e4
    1216412134    test AL, strict byte 001h                 ; a8 01
    12165     jne short 07ff0h                          ; 75 f7
     12135    jne short 07f9bh                          ; 75 f7
    1216612136    mov al, byte [bp+004h]                    ; 8a 46 04
    1216712137    cmp AL, strict byte 010h                  ; 3c 10
    12168     jne short 08004h                          ; 75 04
     12138    jne short 07fafh                          ; 75 04
    1216912139    xor ax, ax                                ; 31 c0
    12170     jmp short 08006h                          ; eb 02
     12140    jmp short 07fb1h                          ; eb 02
    1217112141    xor ah, ah                                ; 30 e4
    1217212142    mov di, ax                                ; 89 c7
     
    1217612146    shr dx, 1                                 ; d1 ea
    1217712147    rcr ax, 1                                 ; d1 d8
    12178     loop 08010h                               ; e2 fa
     12148    loop 07fbbh                               ; e2 fa
    1217912149    mov cx, ax                                ; 89 c1
    1218012150    and cx, 000f0h                            ; 81 e1 f0 00
     
    1219412164    shr dx, 1                                 ; d1 ea
    1219512165    rcr ax, 1                                 ; d1 d8
    12196     loop 08035h                               ; e2 fa
     12166    loop 07fe0h                               ; e2 fa
    1219712167    mov dx, si                                ; 89 f2
    1219812168    out DX, AL                                ; ee
     
    1220112171    xor ah, ah                                ; 30 e4
    1220212172    cmp cx, ax                                ; 39 c1
    12203     jnc short 08057h                          ; 73 0e
     12173    jnc short 08002h                          ; 73 0e
    1220412174    les di, [bp-00ah]                         ; c4 7e f6
    1220512175    add di, cx                                ; 01 cf
     
    1220812178    out DX, AL                                ; ee
    1220912179    inc cx                                    ; 41
    12210     jmp short 08040h                          ; eb e9
     12180    jmp short 07febh                          ; eb e9
    1221112181    mov dx, si                                ; 89 f2
    1221212182    in AL, DX                                 ; ec
     
    1221412184    ; sub ah, ah                                ; 2a e4
    1221512185    test AL, strict byte 001h                 ; a8 01
    12216     jne short 08057h                          ; 75 f7
     12186    jne short 08002h                          ; 75 f7
    1221712187    test AL, strict byte 002h                 ; a8 02
    12218     je short 08072h                           ; 74 0e
     12188    je short 0801dh                           ; 74 0e
    1221912189    lea dx, [si+003h]                         ; 8d 54 03
    1222012190    xor al, al                                ; 30 c0
     
    1222412194    ; sub ah, ah                                ; 2a e4
    1222512195    mov di, strict word 00004h                ; bf 04 00
    12226     jmp short 080a4h                          ; eb 32
     12196    jmp short 0804fh                          ; eb 32
    1222712197    lea dx, [si+001h]                         ; 8d 54 01
    1222812198    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12229     jne short 08081h                          ; 75 06
     12199    jne short 0802ch                          ; 75 06
    1223012200    cmp bx, 08000h                            ; 81 fb 00 80
    12231     jbe short 0809bh                          ; 76 1a
     12201    jbe short 08046h                          ; 76 1a
    1223212202    mov cx, 08000h                            ; b9 00 80
    1223312203    les di, [bp+006h]                         ; c4 7e 06
     
    1223812208    add ax, 00800h                            ; 05 00 08
    1223912209    mov word [bp+008h], ax                    ; 89 46 08
    12240     jmp short 08072h                          ; eb d7
     12210    jmp short 0801dh                          ; eb d7
    1224112211    mov cx, bx                                ; 89 d9
    1224212212    les di, [bp+006h]                         ; c4 7e 06
     
    1224912219    pop bp                                    ; 5d
    1225012220    retn 0000ah                               ; c2 0a 00
    12251 scsi_cmd_data_out_:                          ; 0xf80af LB 0xd5
     12221scsi_cmd_data_out_:                          ; 0xf805a LB 0xd5
    1225212222    push bp                                   ; 55
    1225312223    mov bp, sp                                ; 89 e5
     
    1226512235    ; sub ah, ah                                ; 2a e4
    1226612236    test AL, strict byte 001h                 ; a8 01
    12267     jne short 080c5h                          ; 75 f7
     12237    jne short 08070h                          ; 75 f7
    1226812238    mov al, byte [bp+004h]                    ; 8a 46 04
    1226912239    cmp AL, strict byte 010h                  ; 3c 10
    12270     jne short 080d9h                          ; 75 04
     12240    jne short 08084h                          ; 75 04
    1227112241    xor ax, ax                                ; 31 c0
    12272     jmp short 080dbh                          ; eb 02
     12242    jmp short 08086h                          ; eb 02
    1227312243    xor ah, ah                                ; 30 e4
    1227412244    mov si, ax                                ; 89 c6
     
    1227812248    shr dx, 1                                 ; d1 ea
    1227912249    rcr ax, 1                                 ; d1 d8
    12280     loop 080e5h                               ; e2 fa
     12250    loop 08090h                               ; e2 fa
    1228112251    mov cx, ax                                ; 89 c1
    1228212252    and cx, 000f0h                            ; 81 e1 f0 00
     
    1229612266    shr dx, 1                                 ; d1 ea
    1229712267    rcr ax, 1                                 ; d1 d8
    12298     loop 0810ah                               ; e2 fa
     12268    loop 080b5h                               ; e2 fa
    1229912269    mov dx, di                                ; 89 fa
    1230012270    out DX, AL                                ; ee
     
    1230312273    xor ah, ah                                ; 30 e4
    1230412274    cmp cx, ax                                ; 39 c1
    12305     jnc short 0812ch                          ; 73 0e
     12275    jnc short 080d7h                          ; 73 0e
    1230612276    les si, [bp-00ah]                         ; c4 76 f6
    1230712277    add si, cx                                ; 01 ce
     
    1231012280    out DX, AL                                ; ee
    1231112281    inc cx                                    ; 41
    12312     jmp short 08115h                          ; eb e9
     12282    jmp short 080c0h                          ; eb e9
    1231312283    lea dx, [di+001h]                         ; 8d 55 01
    1231412284    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12315     jne short 0813bh                          ; 75 06
     12285    jne short 080e6h                          ; 75 06
    1231612286    cmp bx, 08000h                            ; 81 fb 00 80
    12317     jbe short 08156h                          ; 76 1b
     12287    jbe short 08101h                          ; 76 1b
    1231812288    mov cx, 08000h                            ; b9 00 80
    1231912289    les si, [bp+006h]                         ; c4 76 06
     
    1232512295    add ax, 00800h                            ; 05 00 08
    1232612296    mov word [bp+008h], ax                    ; 89 46 08
    12327     jmp short 0812ch                          ; eb d6
     12297    jmp short 080d7h                          ; eb d6
    1232812298    mov cx, bx                                ; 89 d9
    1232912299    les si, [bp+006h]                         ; c4 76 06
     
    1233512305    ; sub ah, ah                                ; 2a e4
    1233612306    test AL, strict byte 001h                 ; a8 01
    12337     jne short 0815eh                          ; 75 f7
     12307    jne short 08109h                          ; 75 f7
    1233812308    test AL, strict byte 002h                 ; a8 02
    12339     je short 08179h                           ; 74 0e
     12309    je short 08124h                           ; 74 0e
    1234012310    lea dx, [di+003h]                         ; 8d 55 03
    1234112311    xor al, al                                ; 30 c0
     
    1234512315    ; sub ah, ah                                ; 2a e4
    1234612316    mov ax, strict word 00004h                ; b8 04 00
    12347     jmp short 0817bh                          ; eb 02
     12317    jmp short 08126h                          ; eb 02
    1234812318    xor ax, ax                                ; 31 c0
    1234912319    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1235212322    pop bp                                    ; 5d
    1235312323    retn 0000ah                               ; c2 0a 00
    12354 @scsi_read_sectors:                          ; 0xf8184 LB 0xe9
     12324@scsi_read_sectors:                          ; 0xf812f LB 0xe9
    1235512325    push bp                                   ; 55
    1235612326    mov bp, sp                                ; 89 e5
     
    1236412334    mov byte [bp-006h], al                    ; 88 46 fa
    1236512335    cmp AL, strict byte 004h                  ; 3c 04
    12366     jbe short 081b4h                          ; 76 15
     12336    jbe short 0815fh                          ; 76 15
    1236712337    xor ah, ah                                ; 30 e4
    1236812338    push ax                                   ; 50
     
    1237312343    mov ax, strict word 00007h                ; b8 07 00
    1237412344    push ax                                   ; 50
    12375     call 01976h                               ; e8 c5 97
     12345    call 01976h                               ; e8 1a 98
    1237612346    add sp, strict byte 00008h                ; 83 c4 08
    1237712347    mov es, [bp+006h]                         ; 8e 46 06
     
    1241412384    sal word [bp-00ah], 1                     ; d1 66 f6
    1241512385    rcl word [bp-008h], 1                     ; d1 56 f8
    12416     loop 0821fh                               ; e2 f8
     12386    loop 081cah                               ; e2 f8
    1241712387    push word [bp-008h]                       ; ff 76 f8
    1241812388    push word [bp-00ah]                       ; ff 76 f6
     
    1242512395    mov cx, ss                                ; 8c d1
    1242612396    lea bx, [bp-01ah]                         ; 8d 5e e6
    12427     call 07fdah                               ; e8 95 fd
     12397    call 07f85h                               ; e8 95 fd
    1242812398    mov ah, al                                ; 88 c4
    1242912399    test al, al                               ; 84 c0
    12430     jne short 08260h                          ; 75 15
     12400    jne short 0820bh                          ; 75 15
    1243112401    mov es, [bp+006h]                         ; 8e 46 06
    1243212402    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1244212412    pop bp                                    ; 5d
    1244312413    retn 00004h                               ; c2 04 00
    12444 @scsi_write_sectors:                         ; 0xf826d LB 0xe9
     12414@scsi_write_sectors:                         ; 0xf8218 LB 0xe9
    1244512415    push bp                                   ; 55
    1244612416    mov bp, sp                                ; 89 e5
     
    1245412424    mov byte [bp-006h], al                    ; 88 46 fa
    1245512425    cmp AL, strict byte 004h                  ; 3c 04
    12456     jbe short 0829dh                          ; 76 15
     12426    jbe short 08248h                          ; 76 15
    1245712427    xor ah, ah                                ; 30 e4
    1245812428    push ax                                   ; 50
     
    1246312433    mov ax, strict word 00007h                ; b8 07 00
    1246412434    push ax                                   ; 50
    12465     call 01976h                               ; e8 dc 96
     12435    call 01976h                               ; e8 31 97
    1246612436    add sp, strict byte 00008h                ; 83 c4 08
    1246712437    mov es, [bp+006h]                         ; 8e 46 06
     
    1250412474    sal word [bp-00ah], 1                     ; d1 66 f6
    1250512475    rcl word [bp-008h], 1                     ; d1 56 f8
    12506     loop 08308h                               ; e2 f8
     12476    loop 082b3h                               ; e2 f8
    1250712477    push word [bp-008h]                       ; ff 76 f8
    1250812478    push word [bp-00ah]                       ; ff 76 f6
     
    1251512485    mov cx, ss                                ; 8c d1
    1251612486    lea bx, [bp-01ah]                         ; 8d 5e e6
    12517     call 080afh                               ; e8 81 fd
     12487    call 0805ah                               ; e8 81 fd
    1251812488    mov ah, al                                ; 88 c4
    1251912489    test al, al                               ; 84 c0
    12520     jne short 08349h                          ; 75 15
     12490    jne short 082f4h                          ; 75 15
    1252112491    mov es, [bp+006h]                         ; 8e 46 06
    1252212492    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1253212502    pop bp                                    ; 5d
    1253312503    retn 00004h                               ; c2 04 00
    12534 scsi_cmd_packet_:                            ; 0xf8356 LB 0x170
     12504scsi_cmd_packet_:                            ; 0xf8301 LB 0x170
    1253512505    push bp                                   ; 55
    1253612506    mov bp, sp                                ; 89 e5
     
    1254412514    mov dx, strict word 0000eh                ; ba 0e 00
    1254512515    mov ax, strict word 00040h                ; b8 40 00
    12546     call 0166eh                               ; e8 fc 92
     12516    call 0166eh                               ; e8 51 93
    1254712517    mov si, 00122h                            ; be 22 01
    1254812518    mov word [bp-00ch], ax                    ; 89 46 f4
    1254912519    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12550     jne short 083a1h                          ; 75 23
     12520    jne short 0834ch                          ; 75 23
    1255112521    mov bx, 00da0h                            ; bb a0 0d
    1255212522    mov cx, ds                                ; 8c d9
    1255312523    mov ax, strict word 00004h                ; b8 04 00
    12554     call 01933h                               ; e8 aa 95
     12524    call 01933h                               ; e8 ff 95
    1255512525    mov ax, 00b62h                            ; b8 62 0b
    1255612526    push ax                                   ; 50
     
    1255912529    mov ax, strict word 00004h                ; b8 04 00
    1256012530    push ax                                   ; 50
    12561     call 01976h                               ; e8 de 95
     12531    call 01976h                               ; e8 33 96
    1256212532    add sp, strict byte 00006h                ; 83 c4 06
    1256312533    mov dx, strict word 00001h                ; ba 01 00
    12564     jmp near 084bbh                           ; e9 1a 01
     12534    jmp near 08466h                           ; e9 1a 01
    1256512535    sub di, strict byte 00008h                ; 83 ef 08
    1256612536    sal di, 1                                 ; d1 e7
     
    1257712547    ; sub ah, ah                                ; 2a e4
    1257812548    test AL, strict byte 001h                 ; a8 01
    12579     jne short 083beh                          ; 75 f7
     12549    jne short 08369h                          ; 75 f7
    1258012550    xor dx, bx                                ; 31 da
    1258112551    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1259312563    shr dx, 1                                 ; d1 ea
    1259412564    rcr ax, 1                                 ; d1 d8
    12595     loop 083e9h                               ; e2 fa
     12565    loop 08394h                               ; e2 fa
    1259612566    and ax, 000f0h                            ; 25 f0 00
    1259712567    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1261212582    shr dx, 1                                 ; d1 ea
    1261312583    rcr ax, 1                                 ; d1 d8
    12614     loop 08411h                               ; e2 fa
     12584    loop 083bch                               ; e2 fa
    1261512585    mov dx, bx                                ; 89 da
    1261612586    out DX, AL                                ; ee
     
    1261912589    xor ah, ah                                ; 30 e4
    1262012590    cmp cx, ax                                ; 39 c1
    12621     jnc short 08436h                          ; 73 11
     12591    jnc short 083e1h                          ; 73 11
    1262212592    mov es, [bp-00ah]                         ; 8e 46 f6
    1262312593    mov di, word [bp-00eh]                    ; 8b 7e f2
     
    1262712597    out DX, AL                                ; ee
    1262812598    inc cx                                    ; 41
    12629     jmp short 0841ch                          ; eb e6
     12599    jmp short 083c7h                          ; eb e6
    1263012600    mov dx, bx                                ; 89 da
    1263112601    in AL, DX                                 ; ec
     
    1263312603    ; sub ah, ah                                ; 2a e4
    1263412604    test AL, strict byte 001h                 ; a8 01
    12635     jne short 08436h                          ; 75 f7
     12605    jne short 083e1h                          ; 75 f7
    1263612606    test AL, strict byte 002h                 ; a8 02
    12637     je short 08451h                           ; 74 0e
     12607    je short 083fch                           ; 74 0e
    1263812608    lea dx, [bx+003h]                         ; 8d 57 03
    1263912609    xor al, al                                ; 30 c0
     
    1264312613    ; sub ah, ah                                ; 2a e4
    1264412614    mov dx, strict word 00003h                ; ba 03 00
    12645     jmp short 084bbh                          ; eb 6a
     12615    jmp short 08466h                          ; eb 6a
    1264612616    mov ax, word [bp+004h]                    ; 8b 46 04
    1264712617    test ax, ax                               ; 85 c0
    12648     je short 08460h                           ; 74 08
     12618    je short 0840bh                           ; 74 08
    1264912619    lea dx, [bx+001h]                         ; 8d 57 01
    1265012620    mov cx, ax                                ; 89 c1
    1265112621    in AL, DX                                 ; ec
    12652     loop 0845dh                               ; e2 fd
     12622    loop 08408h                               ; e2 fd
    1265312623    mov ax, word [bp+006h]                    ; 8b 46 06
    1265412624    mov es, [bp-00ch]                         ; 8e 46 f4
     
    1265812628    lea ax, [bx+001h]                         ; 8d 47 01
    1265912629    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12660     jne short 08481h                          ; 75 07
     12630    jne short 0842ch                          ; 75 07
    1266112631    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12662     jbe short 0849eh                          ; 76 1d
     12632    jbe short 08449h                          ; 76 1d
    1266312633    mov dx, ax                                ; 89 c2
    1266412634    mov cx, 08000h                            ; b9 00 80
     
    1267012640    add ax, 00800h                            ; 05 00 08
    1267112641    mov word [bp+00eh], ax                    ; 89 46 0e
    12672     jmp short 08471h                          ; eb d3
     12642    jmp short 0841ch                          ; eb d3
    1267312643    mov dx, ax                                ; 89 c2
    1267412644    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1267712647    mov es, [bp-00ch]                         ; 8e 46 f4
    1267812648    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12679     je short 084b9h                           ; 74 07
     12649    je short 08464h                           ; 74 07
    1268012650    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1268112651    in AL, DX                                 ; ec
    12682     loop 084b6h                               ; e2 fd
     12652    loop 08461h                               ; e2 fd
    1268312653    xor dx, dx                                ; 31 d2
    1268412654    mov ax, dx                                ; 89 d0
     
    1268812658    pop bp                                    ; 5d
    1268912659    retn 0000ch                               ; c2 0c 00
    12690 scsi_enumerate_attached_devices_:            ; 0xf84c6 LB 0x4cb
     12660scsi_enumerate_attached_devices_:            ; 0xf8471 LB 0x4cb
    1269112661    push bp                                   ; 55
    1269212662    mov bp, sp                                ; 89 e5
     
    1270012670    mov dx, strict word 0000eh                ; ba 0e 00
    1270112671    mov ax, strict word 00040h                ; b8 40 00
    12702     call 0166eh                               ; e8 92 91
     12672    call 0166eh                               ; e8 e7 91
    1270312673    mov di, 00122h                            ; bf 22 01
    1270412674    mov word [bp-016h], ax                    ; 89 46 ea
    1270512675    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    12706     jmp near 08904h                           ; e9 1a 04
     12676    jmp near 088afh                           ; e9 1a 04
    1270712677    cmp AL, strict byte 004h                  ; 3c 04
    12708     jc short 084f1h                           ; 72 03
    12709     jmp near 08987h                           ; e9 96 04
     12678    jc short 0849ch                           ; 72 03
     12679    jmp near 08932h                           ; e9 96 04
    1271012680    mov cx, strict word 00010h                ; b9 10 00
    1271112681    xor bx, bx                                ; 31 db
    1271212682    mov dx, ss                                ; 8c d2
    1271312683    lea ax, [bp-048h]                         ; 8d 46 b8
    12714     call 0a27ah                               ; e8 7c 1d
     12684    call 0a21ah                               ; e8 71 1d
    1271512685    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1271612686    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1273012700    lea bx, [bp-048h]                         ; 8d 5e b8
    1273112701    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    12732     call 07fdah                               ; e8 ae fa
     12702    call 07f85h                               ; e8 ae fa
    1273312703    test al, al                               ; 84 c0
    12734     je short 08542h                           ; 74 12
     12704    je short 084edh                           ; 74 12
    1273512705    mov ax, 00b92h                            ; b8 92 0b
    1273612706    push ax                                   ; 50
     
    1273912709    mov ax, strict word 00007h                ; b8 07 00
    1274012710    push ax                                   ; 50
    12741     call 01976h                               ; e8 37 94
     12711    call 01976h                               ; e8 8c 94
    1274212712    add sp, strict byte 00006h                ; 83 c4 06
    1274312713    mov ax, word [bp-00242h]                  ; 8b 86 be fd
     
    1277112741    sal ax, 1                                 ; d1 e0
    1277212742    rcl dx, 1                                 ; d1 d2
    12773     loop 08590h                               ; e2 fa
     12743    loop 0853bh                               ; e2 fa
    1277412744    or bx, ax                                 ; 09 c3
    1277512745    or dx, si                                 ; 09 f2
     
    1277912749    mov word [bp-01ch], bx                    ; 89 5e e4
    1278012750    test dx, dx                               ; 85 d2
    12781     jne short 085afh                          ; 75 06
     12751    jne short 0855ah                          ; 75 06
    1278212752    cmp bx, 00200h                            ; 81 fb 00 02
    12783     je short 085d2h                           ; 74 23
     12753    je short 0857dh                           ; 74 23
    1278412754    mov bx, 00da0h                            ; bb a0 0d
    1278512755    mov cx, ds                                ; 8c d9
    1278612756    mov ax, strict word 00004h                ; b8 04 00
    12787     call 01933h                               ; e8 79 93
     12757    call 01933h                               ; e8 ce 93
    1278812758    push dx                                   ; 52
    1278912759    push word [bp-01ch]                       ; ff 76 e4
     
    1279312763    mov ax, strict word 00004h                ; b8 04 00
    1279412764    push ax                                   ; 50
    12795     call 01976h                               ; e8 aa 93
     12765    call 01976h                               ; e8 ff 93
    1279612766    add sp, strict byte 0000ah                ; 83 c4 0a
    12797     jmp near 088f8h                           ; e9 26 03
     12767    jmp near 088a3h                           ; e9 26 03
    1279812768    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1279912769    cmp AL, strict byte 001h                  ; 3c 01
    12800     jc short 085e5h                           ; 72 0c
    12801     jbe short 085edh                          ; 76 12
     12770    jc short 08590h                           ; 72 0c
     12771    jbe short 08598h                          ; 76 12
    1280212772    cmp AL, strict byte 003h                  ; 3c 03
    12803     je short 085f5h                           ; 74 16
     12773    je short 085a0h                           ; 74 16
    1280412774    cmp AL, strict byte 002h                  ; 3c 02
    12805     je short 085f1h                           ; 74 0e
    12806     jmp short 0863ch                          ; eb 57
     12775    je short 0859ch                           ; 74 0e
     12776    jmp short 085e7h                          ; eb 57
    1280712777    test al, al                               ; 84 c0
    12808     jne short 0863ch                          ; 75 53
     12778    jne short 085e7h                          ; 75 53
    1280912779    mov BL, strict byte 090h                  ; b3 90
    12810     jmp short 085f7h                          ; eb 0a
     12780    jmp short 085a2h                          ; eb 0a
    1281112781    mov BL, strict byte 098h                  ; b3 98
    12812     jmp short 085f7h                          ; eb 06
     12782    jmp short 085a2h                          ; eb 06
    1281312783    mov BL, strict byte 0a0h                  ; b3 a0
    12814     jmp short 085f7h                          ; eb 02
     12784    jmp short 085a2h                          ; eb 02
    1281512785    mov BL, strict byte 0a8h                  ; b3 a8
    1281612786    mov cl, bl                                ; 88 d9
     
    1281812788    xor ch, ch                                ; 30 ed
    1281912789    mov ax, cx                                ; 89 c8
    12820     call 016aeh                               ; e8 ab 90
     12790    call 016aeh                               ; e8 00 91
    1282112791    test al, al                               ; 84 c0
    12822     je short 0863ch                           ; 74 35
     12792    je short 085e7h                           ; 74 35
    1282312793    mov al, bl                                ; 88 d8
    1282412794    db  0feh, 0c0h
    1282512795    ; inc al                                    ; fe c0
    1282612796    xor ah, ah                                ; 30 e4
    12827     call 016aeh                               ; e8 9e 90
     12797    call 016aeh                               ; e8 f3 90
    1282812798    mov dh, al                                ; 88 c6
    1282912799    mov al, bl                                ; 88 d8
    1283012800    xor ah, ah                                ; 30 e4
    12831     call 016aeh                               ; e8 95 90
     12801    call 016aeh                               ; e8 ea 90
    1283212802    mov ah, dh                                ; 88 f4
    1283312803    cwd                                       ; 99
     
    1283712807    add AL, strict byte 002h                  ; 04 02
    1283812808    xor ah, ah                                ; 30 e4
    12839     call 016aeh                               ; e8 84 90
     12809    call 016aeh                               ; e8 d9 90
    1284012810    xor ah, ah                                ; 30 e4
    1284112811    mov word [bp-028h], ax                    ; 89 46 d8
    1284212812    mov ax, cx                                ; 89 c8
    12843     call 016aeh                               ; e8 7a 90
     12813    call 016aeh                               ; e8 cf 90
    1284412814    xor ah, ah                                ; 30 e4
    1284512815    mov word [bp-01ah], ax                    ; 89 46 e6
    12846     jmp near 08729h                           ; e9 ed 00
     12816    jmp near 086d4h                           ; e9 ed 00
    1284712817    mov ax, word [bp-020h]                    ; 8b 46 e0
    1284812818    mov bx, word [bp-022h]                    ; 8b 5e de
     
    1285012820    mov dx, word [bp-024h]                    ; 8b 56 dc
    1285112821    mov si, strict word 0000ch                ; be 0c 00
    12852     call 0a26ah                               ; e8 1c 1c
     12822    call 0a20ah                               ; e8 11 1c
    1285312823    mov word [bp-02ah], ax                    ; 89 46 d6
    1285412824    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1285712827    mov ax, word [bp-020h]                    ; 8b 46 e0
    1285812828    test ax, ax                               ; 85 c0
    12859     jnbe short 08676h                         ; 77 15
    12860     je short 08666h                           ; 74 03
    12861     jmp near 086e9h                           ; e9 83 00
     12829    jnbe short 08621h                         ; 77 15
     12830    je short 08611h                           ; 74 03
     12831    jmp near 08694h                           ; e9 83 00
    1286212832    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12863     jnbe short 08676h                         ; 77 0a
    12864     jne short 08663h                          ; 75 f5
     12833    jnbe short 08621h                         ; 77 0a
     12834    jne short 0860eh                          ; 75 f5
    1286512835    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12866     jnbe short 08676h                         ; 77 02
    12867     jne short 086e9h                          ; 75 73
     12836    jnbe short 08621h                         ; 77 02
     12837    jne short 08694h                          ; 75 73
    1286812838    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
    1286912839    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
     
    1287212842    mov dx, word [bp-024h]                    ; 8b 56 dc
    1287312843    mov si, strict word 00006h                ; be 06 00
    12874     call 0a26ah                               ; e8 db 1b
     12844    call 0a20ah                               ; e8 d0 1b
    1287512845    mov si, word [bp-018h]                    ; 8b 76 e8
    1287612846    add si, dx                                ; 01 d6
     
    1289012860    mov dx, si                                ; 89 f2
    1289112861    mov si, strict word 00008h                ; be 08 00
    12892     call 0a26ah                               ; e8 ab 1b
     12862    call 0a20ah                               ; e8 a0 1b
    1289312863    mov word [bp-02eh], bx                    ; 89 5e d2
    1289412864    mov word [bp-030h], cx                    ; 89 4e d0
     
    1289912869    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1290012870    mov si, strict word 00010h                ; be 10 00
    12901     call 0a26ah                               ; e8 90 1b
     12871    call 0a20ah                               ; e8 85 1b
    1290212872    mov si, word [bp-032h]                    ; 8b 76 ce
    1290312873    add si, dx                                ; 01 d6
     
    1290512875    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1290612876    adc ax, bx                                ; 11 d8
    12907     jmp short 08726h                          ; eb 3d
     12877    jmp short 086d1h                          ; eb 3d
    1290812878    test ax, ax                               ; 85 c0
    12909     jnbe short 086ffh                         ; 77 12
    12910     jne short 0870bh                          ; 75 1c
     12879    jnbe short 086aah                         ; 77 12
     12880    jne short 086b6h                          ; 75 1c
    1291112881    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12912     jnbe short 086ffh                         ; 77 0a
    12913     jne short 0870bh                          ; 75 14
     12882    jnbe short 086aah                         ; 77 0a
     12883    jne short 086b6h                          ; 75 14
    1291412884    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12915     jnbe short 086ffh                         ; 77 02
    12916     jne short 0870bh                          ; 75 0c
     12885    jnbe short 086aah                         ; 77 02
     12886    jne short 086b6h                          ; 75 0c
    1291712887    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
    1291812888    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
    12919     jmp short 08724h                          ; eb 19
     12889    jmp short 086cfh                          ; eb 19
    1292012890    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
    1292112891    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
     
    1292412894    mov dx, word [bp-024h]                    ; 8b 56 dc
    1292512895    mov si, strict word 0000bh                ; be 0b 00
    12926     call 0a26ah                               ; e8 46 1b
     12896    call 0a20ah                               ; e8 3b 1b
    1292712897    mov si, dx                                ; 89 d6
    1292812898    mov word [bp-026h], cx                    ; 89 4e da
     
    1296112931    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1296212932    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    12963     jne short 087a0h                          ; 75 06
     12933    jne short 0874bh                          ; 75 06
    1296412934    cmp si, 00400h                            ; 81 fe 00 04
    12965     jbe short 087aeh                          ; 76 0e
     12935    jbe short 08759h                          ; 76 0e
    1296612936    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1296712937    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12968     jmp short 087b6h                          ; eb 08
     12938    jmp short 08761h                          ; eb 08
    1296912939    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1297012940    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1297212942    mov cx, ds                                ; 8c d9
    1297312943    mov ax, strict word 00004h                ; b8 04 00
    12974     call 01933h                               ; e8 72 91
     12944    call 01933h                               ; e8 c7 91
    1297512945    push word [bp-020h]                       ; ff 76 e0
    1297612946    push word [bp-022h]                       ; ff 76 de
     
    1298912959    mov ax, strict word 00004h                ; b8 04 00
    1299012960    push ax                                   ; 50
    12991     call 01976h                               ; e8 8b 91
     12961    call 01976h                               ; e8 e0 91
    1299212962    add sp, strict byte 00018h                ; 83 c4 18
    1299312963    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1301812988    mov dx, strict word 00075h                ; ba 75 00
    1301912989    mov ax, strict word 00040h                ; b8 40 00
    13020     call 01652h                               ; e8 11 8e
     12990    call 01652h                               ; e8 66 8e
    1302112991    mov bl, al                                ; 88 c3
    1302212992    db  0feh, 0c3h
     
    1302512995    mov dx, strict word 00075h                ; ba 75 00
    1302612996    mov ax, strict word 00040h                ; b8 40 00
    13027     call 01660h                               ; e8 10 8e
     12997    call 01660h                               ; e8 65 8e
    1302812998    inc byte [bp-00ch]                        ; fe 46 f4
    13029     jmp near 088edh                           ; e9 97 00
     12999    jmp near 08898h                           ; e9 97 00
    1303013000    mov bx, 00da0h                            ; bb a0 0d
    1303113001    mov cx, ds                                ; 8c d9
    1303213002    mov ax, strict word 00004h                ; b8 04 00
    13033     call 01933h                               ; e8 d2 90
     13003    call 01933h                               ; e8 27 91
    1303413004    push word [bp-014h]                       ; ff 76 ec
    1303513005    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1304013010    mov ax, strict word 00004h                ; b8 04 00
    1304113011    push ax                                   ; 50
    13042     call 01976h                               ; e8 01 91
     13012    call 01976h                               ; e8 56 91
    1304313013    add sp, strict byte 00008h                ; 83 c4 08
    1304413014    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1304613016    mov byte [bp-00eh], al                    ; 88 46 f2
    1304713017    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
    13048     je short 0888ch                           ; 74 05
     13018    je short 08837h                           ; 74 05
    1304913019    mov cx, strict word 00001h                ; b9 01 00
    13050     jmp short 0888eh                          ; eb 02
     13020    jmp short 08839h                          ; eb 02
    1305113021    xor cx, cx                                ; 31 c9
    1305213022    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1308613056    inc word [bp-014h]                        ; ff 46 ec
    1308713057    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    13088     jl short 08904h                           ; 7c 03
    13089     jmp near 08987h                           ; e9 83 00
     13058    jl short 088afh                           ; 7c 03
     13059    jmp near 08932h                           ; e9 83 00
    1309013060    mov byte [bp-048h], 012h                  ; c6 46 b8 12
    1309113061    xor al, al                                ; 30 c0
     
    1310913079    lea bx, [bp-048h]                         ; 8d 5e b8
    1311013080    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    13111     call 07fdah                               ; e8 9e f6
     13081    call 07f85h                               ; e8 9e f6
    1311213082    test al, al                               ; 84 c0
    13113     je short 08952h                           ; 74 12
     13083    je short 088fdh                           ; 74 12
    1311413084    mov ax, 00b92h                            ; b8 92 0b
    1311513085    push ax                                   ; 50
     
    1311813088    mov ax, strict word 00007h                ; b8 07 00
    1311913089    push ax                                   ; 50
    13120     call 01976h                               ; e8 27 90
     13090    call 01976h                               ; e8 7c 90
    1312113091    add sp, strict byte 00006h                ; 83 c4 06
    1312213092    mov es, [bp-016h]                         ; 8e 46 ea
     
    1312413094    mov byte [bp-00ch], al                    ; 88 46 f4
    1312513095    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13126     jne short 0896eh                          ; 75 0a
     13096    jne short 08919h                          ; 75 0a
    1312713097    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
    13128     jne short 0896eh                          ; 75 03
    13129     jmp near 084eah                           ; e9 7c fb
     13098    jne short 08919h                          ; 75 03
     13099    jmp near 08495h                           ; e9 7c fb
    1313013100    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13131     je short 08978h                           ; 74 03
    13132     jmp near 088edh                           ; e9 75 ff
     13101    je short 08923h                           ; 74 03
     13102    jmp near 08898h                           ; e9 75 ff
    1313313103    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
    1313413104    and AL, strict byte 01fh                  ; 24 1f
    1313513105    cmp AL, strict byte 005h                  ; 3c 05
    13136     jne short 08985h                          ; 75 03
    13137     jmp near 08856h                           ; e9 d1 fe
    13138     jmp short 08975h                          ; eb ee
     13106    jne short 08930h                          ; 75 03
     13107    jmp near 08801h                           ; e9 d1 fe
     13108    jmp short 08920h                          ; eb ee
    1313913109    lea sp, [bp-00ah]                         ; 8d 66 f6
    1314013110    pop di                                    ; 5f
     
    1314513115    pop bp                                    ; 5d
    1314613116    retn                                      ; c3
    13147 _scsi_init:                                  ; 0xf8991 LB 0x66
     13117_scsi_init:                                  ; 0xf893c LB 0x66
    1314813118    push bp                                   ; 55
    1314913119    mov bp, sp                                ; 89 e5
    1315013120    mov dx, strict word 0000eh                ; ba 0e 00
    1315113121    mov ax, strict word 00040h                ; b8 40 00
    13152     call 0166eh                               ; e8 d1 8c
     13122    call 0166eh                               ; e8 26 8d
    1315313123    mov bx, 00122h                            ; bb 22 01
    1315413124    mov es, ax                                ; 8e c0
     
    1316113131    ; sub ah, ah                                ; 2a e4
    1316213132    cmp AL, strict byte 055h                  ; 3c 55
    13163     jne short 089c1h                          ; 75 0c
     13133    jne short 0896ch                          ; 75 0c
    1316413134    xor al, al                                ; 30 c0
    1316513135    mov dx, 00433h                            ; ba 33 04
    1316613136    out DX, AL                                ; ee
    1316713137    mov ax, 00430h                            ; b8 30 04
    13168     call 084c6h                               ; e8 05 fb
     13138    call 08471h                               ; e8 05 fb
    1316913139    mov AL, strict byte 055h                  ; b0 55
    1317013140    mov dx, 00436h                            ; ba 36 04
     
    1317413144    ; sub ah, ah                                ; 2a e4
    1317513145    cmp AL, strict byte 055h                  ; 3c 55
    13176     jne short 089dah                          ; 75 0c
     13146    jne short 08985h                          ; 75 0c
    1317713147    xor al, al                                ; 30 c0
    1317813148    mov dx, 00437h                            ; ba 37 04
    1317913149    out DX, AL                                ; ee
    1318013150    mov ax, 00434h                            ; b8 34 04
    13181     call 084c6h                               ; e8 ec fa
     13151    call 08471h                               ; e8 ec fa
    1318213152    mov AL, strict byte 055h                  ; b0 55
    1318313153    mov dx, 0043ah                            ; ba 3a 04
     
    1318713157    ; sub ah, ah                                ; 2a e4
    1318813158    cmp AL, strict byte 055h                  ; 3c 55
    13189     jne short 089f3h                          ; 75 0c
     13159    jne short 0899eh                          ; 75 0c
    1319013160    xor al, al                                ; 30 c0
    1319113161    mov dx, 0043bh                            ; ba 3b 04
    1319213162    out DX, AL                                ; ee
    1319313163    mov ax, 00438h                            ; b8 38 04
    13194     call 084c6h                               ; e8 d3 fa
     13164    call 08471h                               ; e8 d3 fa
    1319513165    mov sp, bp                                ; 89 ec
    1319613166    pop bp                                    ; 5d
    1319713167    retn                                      ; c3
    13198 ahci_ctrl_extract_bits_:                     ; 0xf89f7 LB 0x1c
     13168ahci_ctrl_extract_bits_:                     ; 0xf89a2 LB 0x1c
    1319913169    push si                                   ; 56
    1320013170    push bp                                   ; 55
     
    1320513175    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1320613176    xor ch, ch                                ; 30 ed
    13207     jcxz 08a0eh                               ; e3 06
     13177    jcxz 089b9h                               ; e3 06
    1320813178    shr dx, 1                                 ; d1 ea
    1320913179    rcr ax, 1                                 ; d1 d8
    13210     loop 08a08h                               ; e2 fa
     13180    loop 089b3h                               ; e2 fa
    1321113181    pop bp                                    ; 5d
    1321213182    pop si                                    ; 5e
    1321313183    retn 00002h                               ; c2 02 00
    13214 ahci_addr_to_phys_:                          ; 0xf8a13 LB 0x1e
     13184ahci_addr_to_phys_:                          ; 0xf89be LB 0x1e
    1321513185    push bx                                   ; 53
    1321613186    push cx                                   ; 51
     
    1322313193    sal ax, 1                                 ; d1 e0
    1322413194    rcl dx, 1                                 ; d1 d2
    13225     loop 08a21h                               ; e2 fa
     13195    loop 089cch                               ; e2 fa
    1322613196    xor cx, cx                                ; 31 c9
    1322713197    add ax, bx                                ; 01 d8
     
    1323113201    pop bx                                    ; 5b
    1323213202    retn                                      ; c3
    13233 ahci_port_cmd_sync_:                         ; 0xf8a31 LB 0x159
     13203ahci_port_cmd_sync_:                         ; 0xf89dc LB 0x159
    1323413204    push bp                                   ; 55
    1323513205    mov bp, sp                                ; 89 e5
     
    1324613216    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1324713217    cmp AL, strict byte 0ffh                  ; 3c ff
    13248     jne short 08a54h                          ; 75 03
    13249     jmp near 08b82h                           ; e9 2e 01
     13218    jne short 089ffh                          ; 75 03
     13219    jmp near 08b2dh                           ; e9 2e 01
    1325013220    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1325113221    xor ah, ah                                ; 30 e4
     
    1326013230    lea ax, [si+00080h]                       ; 8d 84 80 00
    1326113231    mov dx, cx                                ; 89 ca
    13262     call 08a13h                               ; e8 92 ff
     13232    call 089beh                               ; e8 92 ff
    1326313233    mov es, cx                                ; 8e c1
    1326413234    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1332813298    xchg dx, ax                               ; 92
    1332913299    test dh, 040h                             ; f6 c6 40
    13330     jne short 08b14h                          ; 75 04
     13300    jne short 08abfh                          ; 75 04
    1333113301    test AL, strict byte 001h                 ; a8 01
    13332     je short 08b18h                           ; 74 04
     13302    je short 08ac3h                           ; 74 04
    1333313303    mov AL, strict byte 001h                  ; b0 01
    13334     jmp short 08b1ah                          ; eb 02
     13304    jmp short 08ac5h                          ; eb 02
    1333513305    xor al, al                                ; 30 c0
    1333613306    test al, al                               ; 84 c0
    13337     je short 08ae6h                           ; 74 c8
     13307    je short 08a91h                           ; 74 c8
    1333813308    mov al, byte [bp-008h]                    ; 8a 46 f8
    1333913309    xor ah, ah                                ; 30 e4
     
    1339213362    pop bp                                    ; 5d
    1339313363    retn                                      ; c3
    13394 ahci_cmd_data_:                              ; 0xf8b8a LB 0x262
     13364ahci_cmd_data_:                              ; 0xf8b35 LB 0x262
    1339513365    push bp                                   ; 55
    1339613366    mov bp, sp                                ; 89 e5
     
    1341713387    mov ax, 00080h                            ; b8 80 00
    1341813388    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13419     call 0a27ah                               ; e8 b2 16
     13389    call 0a21ah                               ; e8 a7 16
    1342013390    mov es, [bp-00ah]                         ; 8e 46 f6
    1342113391    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1343513405    mov dx, word [es:si]                      ; 26 8b 14
    1343613406    mov si, strict word 00008h                ; be 08 00
    13437     call 0a26ah                               ; e8 5e 16
     13407    call 0a20ah                               ; e8 53 16
    1343813408    mov es, [bp-00ah]                         ; 8e 46 f6
    1343913409    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1344613416    mov dx, word [es:si]                      ; 26 8b 14
    1344713417    mov si, strict word 00010h                ; be 10 00
    13448     call 0a26ah                               ; e8 38 16
     13418    call 0a20ah                               ; e8 2d 16
    1344913419    mov es, [bp-00ah]                         ; 8e 46 f6
    1345013420    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1345813428    mov dx, word [es:si]                      ; 26 8b 14
    1345913429    mov si, strict word 00018h                ; be 18 00
    13460     call 0a26ah                               ; e8 0c 16
     13430    call 0a20ah                               ; e8 01 16
    1346113431    mov es, [bp-00ah]                         ; 8e 46 f6
    1346213432    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1346913439    mov dx, word [es:si]                      ; 26 8b 14
    1347013440    mov si, strict word 00020h                ; be 20 00
    13471     call 0a26ah                               ; e8 e6 15
     13441    call 0a20ah                               ; e8 db 15
    1347213442    mov es, [bp-00ah]                         ; 8e 46 f6
    1347313443    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1348013450    mov dx, word [es:si]                      ; 26 8b 14
    1348113451    mov si, strict word 00028h                ; be 28 00
    13482     call 0a26ah                               ; e8 c0 15
     13452    call 0a20ah                               ; e8 b5 15
    1348313453    mov es, [bp-00ah]                         ; 8e 46 f6
    1348413454    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1349313463    mov bx, word [bp-012h]                    ; 8b 5e ee
    1349413464    xor cx, cx                                ; 31 c9
    13495     call 0a229h                               ; e8 4d 15
     13465    call 0a1c9h                               ; e8 42 15
    1349613466    push dx                                   ; 52
    1349713467    push ax                                   ; 50
     
    1350313473    mov ax, 0026ah                            ; b8 6a 02
    1350413474    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13505     call 0a13eh                               ; e8 46 14
     13475    call 0a0deh                               ; e8 3b 14
    1350613476    mov es, [bp-00ah]                         ; 8e 46 f6
    1350713477    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1352713497    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1352813498    test ax, ax                               ; 85 c0
    13529     je short 08d88h                           ; 74 39
     13499    je short 08d33h                           ; 74 39
    1353013500    dec ax                                    ; 48
    1353113501    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1354513515    mov al, byte [bp-008h]                    ; 8a 46 f8
    1354613516    cmp AL, strict byte 035h                  ; 3c 35
    13547     jne short 08d95h                          ; 75 06
     13517    jne short 08d40h                          ; 75 06
    1354813518    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13549     jmp short 08dach                          ; eb 17
     13519    jmp short 08d57h                          ; eb 17
    1355013520    cmp AL, strict byte 0a0h                  ; 3c a0
    13551     jne short 08da8h                          ; 75 0f
     13521    jne short 08d53h                          ; 75 0f
    1355213522    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1355313523    les bx, [bp-00eh]                         ; c4 5e f2
    1355413524    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13555     jmp short 08dach                          ; eb 04
     13525    jmp short 08d57h                          ; eb 04
    1355613526    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1355713527    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1356013530    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1356113531    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13562     call 08a31h                               ; e8 73 fc
     13532    call 089dch                               ; e8 73 fc
    1356313533    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1356413534    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1356713537    add ax, 0026ah                            ; 05 6a 02
    1356813538    mov dx, cx                                ; 89 ca
    13569     call 0a1b5h                               ; e8 e2 13
     13539    call 0a155h                               ; e8 d7 13
    1357013540    mov es, cx                                ; 8e c1
    1357113541    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1357213542    test al, al                               ; 84 c0
    13573     je short 08de2h                           ; 74 05
     13543    je short 08d8dh                           ; 74 05
    1357413544    mov ax, strict word 00004h                ; b8 04 00
    13575     jmp short 08de4h                          ; eb 02
     13545    jmp short 08d8fh                          ; eb 02
    1357613546    xor ah, ah                                ; 30 e4
    1357713547    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1358113551    pop bp                                    ; 5d
    1358213552    retn                                      ; c3
    13583 ahci_port_deinit_current_:                   ; 0xf8dec LB 0x183
     13553ahci_port_deinit_current_:                   ; 0xf8d97 LB 0x183
    1358413554    push bp                                   ; 55
    1358513555    mov bp, sp                                ; 89 e5
     
    1359613566    mov byte [bp-00ah], al                    ; 88 46 f6
    1359713567    cmp AL, strict byte 0ffh                  ; 3c ff
    13598     je short 08e6fh                           ; 74 61
     13568    je short 08e1ah                           ; 74 61
    1359913569    xor ah, ah                                ; 30 e4
    1360013570    mov CL, strict byte 007h                  ; b1 07
     
    1364213612    xchg dx, ax                               ; 92
    1364313613    test ax, 0c011h                           ; a9 11 c0
    13644     je short 08e72h                           ; 74 07
     13614    je short 08e1dh                           ; 74 07
    1364513615    mov AL, strict byte 001h                  ; b0 01
    13646     jmp short 08e74h                          ; eb 05
    13647     jmp near 08f66h                           ; e9 f4 00
     13616    jmp short 08e1fh                          ; eb 05
     13617    jmp near 08f11h                           ; e9 f4 00
    1364813618    xor al, al                                ; 30 c0
    1364913619    cmp AL, strict byte 001h                  ; 3c 01
    13650     je short 08e41h                           ; 74 c9
     13620    je short 08dech                           ; 74 c9
    1365113621    mov cx, strict word 00020h                ; b9 20 00
    1365213622    xor bx, bx                                ; 31 db
    1365313623    mov ax, di                                ; 89 f8
    1365413624    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13655     call 0a27ah                               ; e8 f5 13
     13625    call 0a21ah                               ; e8 ea 13
    1365613626    lea ax, [di+00080h]                       ; 8d 85 80 00
    1365713627    mov cx, strict word 00040h                ; b9 40 00
    1365813628    xor bx, bx                                ; 31 db
    1365913629    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13660     call 0a27ah                               ; e8 e6 13
     13630    call 0a21ah                               ; e8 db 13
    1366113631    lea ax, [di+00200h]                       ; 8d 85 00 02
    1366213632    mov cx, strict word 00060h                ; b9 60 00
    1366313633    xor bx, bx                                ; 31 db
    1366413634    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13665     call 0a27ah                               ; e8 d7 13
     13635    call 0a21ah                               ; e8 cc 13
    1366613636    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1366713637    xor ah, ah                                ; 30 e4
     
    1376913739    pop bp                                    ; 5d
    1377013740    retn                                      ; c3
    13771 ahci_port_init_:                             ; 0xf8f6f LB 0x250
     13741ahci_port_init_:                             ; 0xf8f1a LB 0x250
    1377213742    push bp                                   ; 55
    1377313743    mov bp, sp                                ; 89 e5
     
    1377913749    mov word [bp-00ah], dx                    ; 89 56 f6
    1378013750    mov byte [bp-008h], bl                    ; 88 5e f8
    13781     call 08dech                               ; e8 69 fe
     13751    call 08d97h                               ; e8 69 fe
    1378213752    mov al, bl                                ; 88 d8
    1378313753    xor ah, ah                                ; 30 e4
     
    1383013800    xchg dx, ax                               ; 92
    1383113801    test ax, 0c011h                           ; a9 11 c0
    13832     je short 08ff6h                           ; 74 04
     13802    je short 08fa1h                           ; 74 04
    1383313803    mov AL, strict byte 001h                  ; b0 01
    13834     jmp short 08ff8h                          ; eb 02
     13804    jmp short 08fa3h                          ; eb 02
    1383513805    xor al, al                                ; 30 c0
    1383613806    cmp AL, strict byte 001h                  ; 3c 01
    13837     je short 08fc0h                           ; 74 c4
     13807    je short 08f6bh                           ; 74 c4
    1383813808    mov cx, strict word 00020h                ; b9 20 00
    1383913809    xor bx, bx                                ; 31 db
    1384013810    mov ax, si                                ; 89 f0
    1384113811    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13842     call 0a27ah                               ; e8 71 12
     13812    call 0a21ah                               ; e8 66 12
    1384313813    lea ax, [si+00080h]                       ; 8d 84 80 00
    1384413814    mov cx, strict word 00040h                ; b9 40 00
    1384513815    xor bx, bx                                ; 31 db
    1384613816    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13847     call 0a27ah                               ; e8 62 12
     13817    call 0a21ah                               ; e8 57 12
    1384813818    lea di, [si+00200h]                       ; 8d bc 00 02
    1384913819    mov cx, strict word 00060h                ; b9 60 00
     
    1385113821    mov ax, di                                ; 89 f8
    1385213822    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13853     call 0a27ah                               ; e8 51 12
     13823    call 0a21ah                               ; e8 46 12
    1385413824    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1385513825    xor bh, bh                                ; 30 ff
     
    1387013840    mov ax, di                                ; 89 f8
    1387113841    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13872     call 08a13h                               ; e8 bb f9
     13842    call 089beh                               ; e8 bb f9
    1387313843    mov es, [bp-00ah]                         ; 8e 46 f6
    1387413844    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1391513885    mov ax, si                                ; 89 f0
    1391613886    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13917     call 08a13h                               ; e8 4f f9
     13887    call 089beh                               ; e8 4f f9
    1391813888    mov es, [bp-00ah]                         ; 8e 46 f6
    1391913889    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1402013990    pop bp                                    ; 5d
    1402113991    retn                                      ; c3
    14022 @ahci_read_sectors:                          ; 0xf91bf LB 0xaa
     13992@ahci_read_sectors:                          ; 0xf916a LB 0xaa
    1402313993    push bp                                   ; 55
    1402413994    mov bp, sp                                ; 89 e5
     
    1403114001    sub di, strict byte 0000ch                ; 83 ef 0c
    1403214002    cmp di, strict byte 00004h                ; 83 ff 04
    14033     jbe short 091eah                          ; 76 13
     14003    jbe short 09195h                          ; 76 13
    1403414004    push di                                   ; 57
    1403514005    mov ax, 00c62h                            ; b8 62 0c
     
    1403914009    mov ax, strict word 00007h                ; b8 07 00
    1404014010    push ax                                   ; 50
    14041     call 01976h                               ; e8 8f 87
     14011    call 01976h                               ; e8 e4 87
    1404214012    add sp, strict byte 00008h                ; 83 c4 08
    1404314013    xor bx, bx                                ; 31 db
     
    1405314023    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1405414024    xor ax, ax                                ; 31 c0
    14055     call 08f6fh                               ; e8 5a fd
     14025    call 08f1ah                               ; e8 5a fd
    1405614026    mov bx, strict word 00025h                ; bb 25 00
    1405714027    mov ax, si                                ; 89 f0
    1405814028    mov dx, word [bp+006h]                    ; 8b 56 06
    14059     call 08b8ah                               ; e8 6a f9
     14029    call 08b35h                               ; e8 6a f9
    1406014030    mov bx, ax                                ; 89 c3
    1406114031    mov es, [bp+006h]                         ; 8e 46 06
     
    1408714057    pop bp                                    ; 5d
    1408814058    retn 00004h                               ; c2 04 00
    14089 @ahci_write_sectors:                         ; 0xf9269 LB 0x88
     14059@ahci_write_sectors:                         ; 0xf9214 LB 0x88
    1409014060    push bp                                   ; 55
    1409114061    mov bp, sp                                ; 89 e5
     
    1409914069    sub bx, strict byte 0000ch                ; 83 eb 0c
    1410014070    cmp bx, strict byte 00004h                ; 83 fb 04
    14101     jbe short 09297h                          ; 76 13
     14071    jbe short 09242h                          ; 76 13
    1410214072    push bx                                   ; 53
    1410314073    mov ax, 00c93h                            ; b8 93 0c
     
    1410714077    mov ax, strict word 00007h                ; b8 07 00
    1410814078    push ax                                   ; 50
    14109     call 01976h                               ; e8 e2 86
     14079    call 01976h                               ; e8 37 87
    1411014080    add sp, strict byte 00008h                ; 83 c4 08
    1411114081    xor di, di                                ; 31 ff
     
    1412114091    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1412214092    xor ax, ax                                ; 31 c0
    14123     call 08f6fh                               ; e8 af fc
     14093    call 08f1ah                               ; e8 af fc
    1412414094    mov bx, strict word 00035h                ; bb 35 00
    1412514095    mov ax, si                                ; 89 f0
    1412614096    mov dx, cx                                ; 89 ca
    14127     call 08b8ah                               ; e8 c0 f8
     14097    call 08b35h                               ; e8 c0 f8
    1412814098    mov dx, ax                                ; 89 c2
    1412914099    mov es, cx                                ; 8e c1
     
    1414014110    pop bp                                    ; 5d
    1414114111    retn 00004h                               ; c2 04 00
    14142 ahci_cmd_packet_:                            ; 0xf92f1 LB 0x18c
     14112ahci_cmd_packet_:                            ; 0xf929c LB 0x18c
    1414314113    push bp                                   ; 55
    1414414114    mov bp, sp                                ; 89 e5
     
    1415214122    mov dx, strict word 0000eh                ; ba 0e 00
    1415314123    mov ax, strict word 00040h                ; b8 40 00
    14154     call 0166eh                               ; e8 62 83
     14124    call 0166eh                               ; e8 b7 83
    1415514125    mov si, 00122h                            ; be 22 01
    1415614126    mov word [bp-008h], ax                    ; 89 46 f8
    1415714127    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14158     jne short 0933bh                          ; 75 23
     14128    jne short 092e6h                          ; 75 23
    1415914129    mov bx, 00da0h                            ; bb a0 0d
    1416014130    mov cx, ds                                ; 8c d9
    1416114131    mov ax, strict word 00004h                ; b8 04 00
    14162     call 01933h                               ; e8 10 86
     14132    call 01933h                               ; e8 65 86
    1416314133    mov ax, 00ca6h                            ; b8 a6 0c
    1416414134    push ax                                   ; 50
     
    1416714137    mov ax, strict word 00004h                ; b8 04 00
    1416814138    push ax                                   ; 50
    14169     call 01976h                               ; e8 44 86
     14139    call 01976h                               ; e8 99 86
    1417014140    add sp, strict byte 00006h                ; 83 c4 06
    1417114141    mov ax, strict word 00001h                ; b8 01 00
    14172     jmp near 09474h                           ; e9 39 01
     14142    jmp near 0941fh                           ; e9 39 01
    1417314143    test byte [bp+004h], 001h                 ; f6 46 04 01
    14174     jne short 09335h                          ; 75 f4
     14144    jne short 092e0h                          ; 75 f4
    1417514145    mov bx, word [bp+006h]                    ; 8b 5e 06
    1417614146    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1417814148    sal bx, 1                                 ; d1 e3
    1417914149    rcl di, 1                                 ; d1 d7
    14180     loop 0934ah                               ; e2 fa
     14150    loop 092f5h                               ; e2 fa
    1418114151    mov es, [bp-008h]                         ; 8e 46 f8
    1418214152    mov word [es:si], bx                      ; 26 89 1c
     
    1419214162    mov dx, word [bp+008h]                    ; 8b 56 08
    1419314163    xor cx, cx                                ; 31 c9
    14194     call 0a1f0h                               ; e8 6d 0e
     14164    call 0a190h                               ; e8 62 0e
    1419514165    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1419614166    xor di, di                                ; 31 ff
     
    1421014180    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1421114181    xor ax, ax                                ; 31 c0
    14212     call 08f6fh                               ; e8 af fb
     14182    call 08f1ah                               ; e8 af fb
    1421314183    mov al, byte [bp-006h]                    ; 8a 46 fa
    1421414184    xor ah, ah                                ; 30 e4
     
    1421814188    mov ax, 000c0h                            ; b8 c0 00
    1421914189    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14220     call 0a287h                               ; e8 b2 0e
     14190    call 0a227h                               ; e8 a7 0e
    1422114191    mov es, [bp-008h]                         ; 8e 46 f8
    1422214192    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1422514195    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1422614196    test ax, ax                               ; 85 c0
    14227     je short 09413h                           ; 74 27
     14197    je short 093beh                           ; 74 27
    1422814198    dec ax                                    ; 48
    1422914199    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1423814208    mov ax, si                                ; 89 f0
    1423914209    mov dx, word [bp-008h]                    ; 8b 56 f8
    14240     call 08b8ah                               ; e8 6c f7
     14210    call 08b35h                               ; e8 6c f7
    1424114211    les bx, [bp-00eh]                         ; c4 5e f2
    1424214212    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1426514235    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1426614236    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14267     jne short 09472h                          ; 75 05
     14237    jne short 0941dh                          ; 75 05
    1426814238    mov ax, strict word 00004h                ; b8 04 00
    14269     jmp short 09474h                          ; eb 02
     14239    jmp short 0941fh                          ; eb 02
    1427014240    xor ax, ax                                ; 31 c0
    1427114241    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1427414244    pop bp                                    ; 5d
    1427514245    retn 0000ch                               ; c2 0c 00
    14276 ahci_port_detect_device_:                    ; 0xf947d LB 0x4fe
     14246ahci_port_detect_device_:                    ; 0xf9428 LB 0x4fe
    1427714247    push bp                                   ; 55
    1427814248    mov bp, sp                                ; 89 e5
     
    1429014260    mov bx, word [bp-020h]                    ; 8b 5e e0
    1429114261    mov ax, si                                ; 89 f0
    14292     call 08f6fh                               ; e8 ce fa
     14262    call 08f1ah                               ; e8 ce fa
    1429314263    mov dx, strict word 0000eh                ; ba 0e 00
    1429414264    mov ax, strict word 00040h                ; b8 40 00
    14295     call 0166eh                               ; e8 c4 81
     14265    call 0166eh                               ; e8 19 82
    1429614266    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
    1429714267    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1436514335    mov bx, strict word 0000fh                ; bb 0f 00
    1436614336    xor cx, cx                                ; 31 c9
    14367     call 089f7h                               ; e8 9f f4
     14337    call 089a2h                               ; e8 9f f4
    1436814338    test ax, ax                               ; 85 c0
    14369     jne short 0955fh                          ; 75 03
    14370     jmp near 09973h                           ; e9 14 04
     14339    jne short 0950ah                          ; 75 03
     14340    jmp near 0991eh                           ; e9 14 04
    1437114341    mov al, byte [bp-008h]                    ; 8a 46 f8
    1437214342    xor ah, ah                                ; 30 e4
     
    1440014370    xor cx, cx                                ; 31 c9
    1440114371    mov ax, di                                ; 89 f8
    14402     call 089f7h                               ; e8 4d f4
     14372    call 089a2h                               ; e8 4d f4
    1440314373    cmp ax, strict word 00001h                ; 3d 01 00
    14404     je short 0955fh                           ; 74 b0
     14374    je short 0950ah                           ; 74 b0
    1440514375    xor ax, ax                                ; 31 c0
    1440614376    push ax                                   ; 50
     
    1440914379    mov ax, di                                ; 89 f8
    1441014380    mov dx, word [bp-01ch]                    ; 8b 56 e4
    14411     call 089f7h                               ; e8 38 f4
     14381    call 089a2h                               ; e8 38 f4
    1441214382    cmp ax, strict word 00003h                ; 3d 03 00
    14413     jne short 0955ch                          ; 75 98
     14383    jne short 09507h                          ; 75 98
    1441414384    mov ax, word [bp-016h]                    ; 8b 46 ea
    1441514385    add ax, 00130h                            ; 05 30 01
     
    1443914409    mov byte [bp-00ch], al                    ; 88 46 f4
    1444014410    cmp AL, strict byte 004h                  ; 3c 04
    14441     jc short 0960eh                           ; 72 03
    14442     jmp near 09973h                           ; e9 65 03
     14411    jc short 095b9h                           ; 72 03
     14412    jmp near 0991eh                           ; e9 65 03
    1444314413    mov ax, word [bp-016h]                    ; 8b 46 ea
    1444414414    add ax, 00118h                            ; 05 18 01
     
    1449214462    add cl, 00ch                              ; 80 c1 0c
    1449314463    test dx, dx                               ; 85 d2
    14494     jne short 096d9h                          ; 75 55
     14464    jne short 09684h                          ; 75 55
    1449514465    cmp bx, 00101h                            ; 81 fb 01 01
    14496     jne short 096d9h                          ; 75 4f
     14466    jne short 09684h                          ; 75 4f
    1449714467    mov es, [bp-00eh]                         ; 8e 46 f2
    1449814468    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1450914479    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1451014480    mov dx, es                                ; 8c c2
    14511     call 08b8ah                               ; e8 c0 f4
     14481    call 08b35h                               ; e8 c0 f4
    1451214482    mov byte [bp-00ah], cl                    ; 88 4e f6
    1451314483    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14514     je short 096dch                           ; 74 08
     14484    je short 09687h                           ; 74 08
    1451514485    mov ax, strict word 00001h                ; b8 01 00
    14516     jmp short 096deh                          ; eb 05
    14517     jmp near 098aeh                           ; e9 d2 01
     14486    jmp short 09689h                          ; eb 05
     14487    jmp near 09859h                           ; e9 d2 01
    1451814488    xor ax, ax                                ; 31 c0
    1451914489    mov cl, al                                ; 88 c1
     
    1453114501    mov word [bp-012h], ax                    ; 89 46 ee
    1453214502    cmp di, 00fffh                            ; 81 ff ff 0f
    14533     jne short 0972dh                          ; 75 1f
     14503    jne short 096d8h                          ; 75 1f
    1453414504    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
    14535     jne short 0972dh                          ; 75 19
     14505    jne short 096d8h                          ; 75 19
    1453614506    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1453714507    mov word [bp-012h], ax                    ; 89 46 ee
     
    1457314543    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1457414544    cmp AL, strict byte 001h                  ; 3c 01
    14575     jc short 097aah                           ; 72 0c
    14576     jbe short 097b2h                          ; 76 12
     14545    jc short 09755h                           ; 72 0c
     14546    jbe short 0975dh                          ; 76 12
    1457714547    cmp AL, strict byte 003h                  ; 3c 03
    14578     je short 097bah                           ; 74 16
     14548    je short 09765h                           ; 74 16
    1457914549    cmp AL, strict byte 002h                  ; 3c 02
    14580     je short 097b6h                           ; 74 0e
    14581     jmp short 097fdh                          ; eb 53
     14550    je short 09761h                           ; 74 0e
     14551    jmp short 097a8h                          ; eb 53
    1458214552    test al, al                               ; 84 c0
    14583     jne short 097fdh                          ; 75 4f
     14553    jne short 097a8h                          ; 75 4f
    1458414554    mov DL, strict byte 040h                  ; b2 40
    14585     jmp short 097bch                          ; eb 0a
     14555    jmp short 09767h                          ; eb 0a
    1458614556    mov DL, strict byte 048h                  ; b2 48
    14587     jmp short 097bch                          ; eb 06
     14557    jmp short 09767h                          ; eb 06
    1458814558    mov DL, strict byte 050h                  ; b2 50
    14589     jmp short 097bch                          ; eb 02
     14559    jmp short 09767h                          ; eb 02
    1459014560    mov DL, strict byte 058h                  ; b2 58
    1459114561    mov bl, dl                                ; 88 d3
     
    1459314563    xor bh, bh                                ; 30 ff
    1459414564    mov ax, bx                                ; 89 d8
    14595     call 016aeh                               ; e8 e6 7e
     14565    call 016aeh                               ; e8 3b 7f
    1459614566    test al, al                               ; 84 c0
    14597     je short 097fdh                           ; 74 31
     14567    je short 097a8h                           ; 74 31
    1459814568    mov al, dl                                ; 88 d0
    1459914569    db  0feh, 0c0h
    1460014570    ; inc al                                    ; fe c0
    1460114571    xor ah, ah                                ; 30 e4
    14602     call 016aeh                               ; e8 d9 7e
     14572    call 016aeh                               ; e8 2e 7f
    1460314573    mov ch, al                                ; 88 c5
    1460414574    mov al, dl                                ; 88 d0
    1460514575    xor ah, ah                                ; 30 e4
    14606     call 016aeh                               ; e8 d0 7e
     14576    call 016aeh                               ; e8 25 7f
    1460714577    mov ah, ch                                ; 88 ec
    1460814578    mov word [bp-028h], ax                    ; 89 46 d8
     
    1461014580    add AL, strict byte 002h                  ; 04 02
    1461114581    xor ah, ah                                ; 30 e4
    14612     call 016aeh                               ; e8 c2 7e
     14582    call 016aeh                               ; e8 17 7f
    1461314583    xor ah, ah                                ; 30 e4
    1461414584    mov word [bp-02ah], ax                    ; 89 46 d6
    1461514585    mov ax, bx                                ; 89 d8
    14616     call 016aeh                               ; e8 b8 7e
     14586    call 016aeh                               ; e8 0d 7f
    1461714587    xor ah, ah                                ; 30 e4
    1461814588    mov word [bp-026h], ax                    ; 89 46 da
    14619     jmp short 0980fh                          ; eb 12
     14589    jmp short 097bah                          ; eb 12
    1462014590    push word [bp-012h]                       ; ff 76 ee
    1462114591    push word [bp-01eh]                       ; ff 76 e2
     
    1462414594    mov dx, ss                                ; 8c d2
    1462514595    lea ax, [bp-02ah]                         ; 8d 46 d6
    14626     call 05b50h                               ; e8 41 c3
     14596    call 05b09h                               ; e8 4f c3
    1462714597    mov bx, 00da0h                            ; bb a0 0d
    1462814598    mov cx, ds                                ; 8c d9
    1462914599    mov ax, strict word 00004h                ; b8 04 00
    14630     call 01933h                               ; e8 19 81
     14600    call 01933h                               ; e8 6e 81
    1463114601    push word [bp-012h]                       ; ff 76 ee
    1463214602    push word [bp-01eh]                       ; ff 76 e2
     
    1465114621    mov ax, strict word 00004h                ; b8 04 00
    1465214622    push ax                                   ; 50
    14653     call 01976h                               ; e8 28 81
     14623    call 01976h                               ; e8 7d 81
    1465414624    add sp, strict byte 0001ch                ; 83 c4 1c
    1465514625    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1468314653    mov dx, strict word 00075h                ; ba 75 00
    1468414654    mov ax, strict word 00040h                ; b8 40 00
    14685     call 01652h                               ; e8 b6 7d
     14655    call 01652h                               ; e8 0b 7e
    1468614656    mov bl, al                                ; 88 c3
    1468714657    db  0feh, 0c3h
     
    1469014660    mov dx, strict word 00075h                ; ba 75 00
    1469114661    mov ax, strict word 00040h                ; b8 40 00
    14692     call 01660h                               ; e8 b5 7d
    14693     jmp near 09962h                           ; e9 b4 00
     14662    call 01660h                               ; e8 0a 7e
     14663    jmp near 0990dh                           ; e9 b4 00
    1469414664    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14695     jne short 09909h                          ; 75 55
     14665    jne short 098b4h                          ; 75 55
    1469614666    cmp bx, 00101h                            ; 81 fb 01 01
    14697     jne short 09909h                          ; 75 4f
     14667    jne short 098b4h                          ; 75 4f
    1469814668    mov es, [bp-00eh]                         ; 8e 46 f2
    1469914669    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1471014680    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1471114681    mov dx, es                                ; 8c c2
    14712     call 08b8ah                               ; e8 90 f2
     14682    call 08b35h                               ; e8 90 f2
    1471314683    mov byte [bp-00ah], cl                    ; 88 4e f6
    1471414684    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14715     je short 0990bh                           ; 74 07
     14685    je short 098b6h                           ; 74 07
    1471614686    mov cx, strict word 00001h                ; b9 01 00
    14717     jmp short 0990dh                          ; eb 04
    14718     jmp short 09962h                          ; eb 57
     14687    jmp short 098b8h                          ; eb 04
     14688    jmp short 0990dh                          ; eb 57
    1471914689    xor cx, cx                                ; 31 c9
    1472014690    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1475614726    pop bp                                    ; 5d
    1475714727    retn                                      ; c3
    14758 ahci_mem_alloc_:                             ; 0xf997b LB 0x43
     14728ahci_mem_alloc_:                             ; 0xf9926 LB 0x43
    1475914729    push bp                                   ; 55
    1476014730    mov bp, sp                                ; 89 e5
     
    1476614736    mov dx, 00413h                            ; ba 13 04
    1476714737    xor ax, ax                                ; 31 c0
    14768     call 0166eh                               ; e8 e3 7c
     14738    call 0166eh                               ; e8 38 7d
    1476914739    test ax, ax                               ; 85 c0
    14770     je short 099b4h                           ; 74 25
     14740    je short 0995fh                           ; 74 25
    1477114741    dec ax                                    ; 48
    1477214742    mov bx, ax                                ; 89 c3
     
    1477514745    sal ax, 1                                 ; d1 e0
    1477614746    rcl dx, 1                                 ; d1 d2
    14777     loop 09997h                               ; e2 fa
     14747    loop 09942h                               ; e2 fa
    1477814748    mov si, ax                                ; 89 c6
    1477914749    mov di, dx                                ; 89 d7
     
    1478114751    shr di, 1                                 ; d1 ef
    1478214752    rcr si, 1                                 ; d1 de
    14783     loop 099a4h                               ; e2 fa
     14753    loop 0994fh                               ; e2 fa
    1478414754    mov dx, 00413h                            ; ba 13 04
    1478514755    xor ax, ax                                ; 31 c0
    14786     call 0167ch                               ; e8 ca 7c
     14756    call 0167ch                               ; e8 1f 7d
    1478714757    mov ax, si                                ; 89 f0
    1478814758    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1479414764    pop bp                                    ; 5d
    1479514765    retn                                      ; c3
    14796 ahci_hba_init_:                              ; 0xf99be LB 0x16e
     14766ahci_hba_init_:                              ; 0xf9969 LB 0x16e
    1479714767    push bp                                   ; 55
    1479814768    mov bp, sp                                ; 89 e5
     
    1480614776    mov dx, strict word 0000eh                ; ba 0e 00
    1480714777    mov ax, strict word 00040h                ; b8 40 00
    14808     call 0166eh                               ; e8 9a 7c
     14778    call 0166eh                               ; e8 ef 7c
    1480914779    mov bx, 00122h                            ; bb 22 01
    1481014780    mov di, ax                                ; 89 c7
     
    1482314793    shr eax, 010h                             ; 66 c1 e8 10
    1482414794    xchg dx, ax                               ; 92
    14825     call 0997bh                               ; e8 83 ff
     14795    call 09926h                               ; e8 83 ff
    1482614796    mov word [bp-010h], ax                    ; 89 46 f0
    1482714797    test ax, ax                               ; 85 c0
    14828     jne short 09a02h                          ; 75 03
    14829     jmp near 09b0bh                           ; e9 09 01
     14798    jne short 099adh                          ; 75 03
     14799    jmp near 09ab6h                           ; e9 09 01
    1483014800    mov ax, word [bp-010h]                    ; 8b 46 f0
    1483114801    mov es, di                                ; 8e c7
     
    1487714847    xchg dx, ax                               ; 92
    1487814848    test AL, strict byte 001h                 ; a8 01
    14879     jne short 09a5ch                          ; 75 de
     14849    jne short 09a07h                          ; 75 de
    1488014850    xor ax, ax                                ; 31 c0
    1488114851    xor cx, cx                                ; 31 c9
     
    1489614866    mov bx, strict word 0001fh                ; bb 1f 00
    1489714867    xor cx, cx                                ; 31 c9
    14898     call 089f7h                               ; e8 54 ef
     14868    call 089a2h                               ; e8 54 ef
    1489914869    db  0feh, 0c0h
    1490014870    ; inc al                                    ; fe c0
    1490114871    mov byte [bp-00eh], al                    ; 88 46 f2
    1490214872    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14903     jmp short 09acfh                          ; eb 21
     14873    jmp short 09a7ah                          ; eb 21
    1490414874    xor al, al                                ; 30 c0
    1490514875    test al, al                               ; 84 c0
    14906     je short 09ac6h                           ; 74 12
     14876    je short 09a71h                           ; 74 12
    1490714877    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1490814878    xor bh, bh                                ; 30 ff
    1490914879    xor ax, ax                                ; 31 c0
    1491014880    mov dx, word [bp-010h]                    ; 8b 56 f0
    14911     call 0947dh                               ; e8 bc f9
     14881    call 09428h                               ; e8 bc f9
    1491214882    dec byte [bp-00eh]                        ; fe 4e f2
    14913     je short 09b09h                           ; 74 43
     14883    je short 09ab4h                           ; 74 43
    1491414884    inc byte [bp-00ch]                        ; fe 46 f4
    1491514885    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14916     jnc short 09b09h                          ; 73 3a
     14886    jnc short 09ab4h                          ; 73 3a
    1491714887    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1491814888    xor ch, ch                                ; 30 ed
    1491914889    mov bx, strict word 00001h                ; bb 01 00
    1492014890    xor di, di                                ; 31 ff
    14921     jcxz 09ae1h                               ; e3 06
     14891    jcxz 09a8ch                               ; e3 06
    1492214892    sal bx, 1                                 ; d1 e3
    1492314893    rcl di, 1                                 ; d1 d7
    14924     loop 09adbh                               ; e2 fa
     14894    loop 09a86h                               ; e2 fa
    1492514895    mov ax, strict word 0000ch                ; b8 0c 00
    1492614896    xor cx, cx                                ; 31 c9
     
    1493814908    xchg dx, ax                               ; 92
    1493914909    test dx, di                               ; 85 fa
    14940     jne short 09b05h                          ; 75 04
     14910    jne short 09ab0h                          ; 75 04
    1494114911    test ax, bx                               ; 85 d8
    14942     je short 09aaeh                           ; 74 a9
     14912    je short 09a59h                           ; 74 a9
    1494314913    mov AL, strict byte 001h                  ; b0 01
    14944     jmp short 09ab0h                          ; eb a7
     14914    jmp short 09a5bh                          ; eb a7
    1494514915    xor ax, ax                                ; 31 c0
    1494614916    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1495214922    pop bp                                    ; 5d
    1495314923    retn                                      ; c3
    14954     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 011h, 09ch, 0efh, 09bh, 0f5h, 09bh, 0fbh, 09bh, 001h
    14955     db  09ch, 007h, 09ch, 00dh, 09ch, 011h, 09ch
    14956 _ahci_init:                                  ; 0xf9b2c LB 0x11a
     14924    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0bch, 09bh, 09ah, 09bh, 0a0h, 09bh, 0a6h, 09bh, 0ach
     14925    db  09bh, 0b2h, 09bh, 0b8h, 09bh, 0bch, 09bh
     14926_ahci_init:                                  ; 0xf9ad7 LB 0x11a
    1495714927    push bp                                   ; 55
    1495814928    mov bp, sp                                ; 89 e5
     
    1496114931    mov ax, 00601h                            ; b8 01 06
    1496214932    mov dx, strict word 00001h                ; ba 01 00
    14963     call 0a065h                               ; e8 29 05
     14933    call 0a010h                               ; e8 29 05
    1496414934    mov dx, ax                                ; 89 c2
    1496514935    cmp ax, strict word 0ffffh                ; 3d ff ff
    14966     je short 09b8ch                           ; 74 49
     14936    je short 09b37h                           ; 74 49
    1496714937    mov al, ah                                ; 88 e0
    1496814938    mov byte [bp-006h], ah                    ; 88 66 fa
     
    1497114941    xor ah, ah                                ; 30 e4
    1497214942    mov bx, strict word 00034h                ; bb 34 00
    14973     call 0a090h                               ; e8 3b 05
     14943    call 0a018h                               ; e8 18 05
    1497414944    mov cl, al                                ; 88 c1
    1497514945    test cl, cl                               ; 84 c9
    14976     je short 09b8fh                           ; 74 34
     14946    je short 09b3ah                           ; 74 34
    1497714947    mov bl, cl                                ; 88 cb
    1497814948    xor bh, bh                                ; 30 ff
     
    1498514955    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1498614956    mov ax, word [bp-010h]                    ; 8b 46 f0
    14987     call 0a090h                               ; e8 16 05
     14957    call 0a018h                               ; e8 f3 04
    1498814958    cmp AL, strict byte 012h                  ; 3c 12
    14989     je short 09b8fh                           ; 74 11
     14959    je short 09b3ah                           ; 74 11
    1499014960    mov bl, cl                                ; 88 cb
    1499114961    db  0feh, 0c3h
     
    1499414964    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1499514965    mov ax, word [bp-010h]                    ; 8b 46 f0
    14996     jmp short 09b52h                          ; eb c6
    14997     jmp near 09c40h                           ; e9 b1 00
     14966    jmp short 09afdh                          ; eb c6
     14967    jmp near 09bebh                           ; e9 b1 00
    1499814968    test cl, cl                               ; 84 c9
    14999     je short 09b8ch                           ; 74 f9
     14969    je short 09b37h                           ; 74 f9
    1500014970    add cl, 002h                              ; 80 c1 02
    1500114971    mov bl, cl                                ; 88 cb
     
    1500914979    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1501014980    mov ax, word [bp-00ah]                    ; 8b 46 f6
    15011     call 0a090h                               ; e8 db 04
     14981    call 0a018h                               ; e8 b8 04
    1501214982    cmp AL, strict byte 010h                  ; 3c 10
    15013     jne short 09b8ch                          ; 75 d3
     14983    jne short 09b37h                          ; 75 d3
    1501414984    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1501514985    mov bl, cl                                ; 88 cb
     
    1501814988    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1501914989    mov ax, word [bp-00ah]                    ; 8b 46 f6
    15020     call 0a0b7h                               ; e8 ea 04
     14990    call 0a03fh                               ; e8 c7 04
    1502114991    mov dx, ax                                ; 89 c2
    1502214992    and ax, strict word 0000fh                ; 25 0f 00
    1502314993    sub ax, strict word 00004h                ; 2d 04 00
    1502414994    cmp ax, strict word 0000bh                ; 3d 0b 00
    15025     jnbe short 09c11h                         ; 77 37
     14995    jnbe short 09bbch                         ; 77 37
    1502614996    push CS                                   ; 0e
    1502714997    pop ES                                    ; 07
    1502814998    mov cx, strict word 00008h                ; b9 08 00
    15029     mov di, 09b15h                            ; bf 15 9b
     14999    mov di, 09ac0h                            ; bf c0 9a
    1503015000    repne scasb                               ; f2 ae
    1503115001    sal cx, 1                                 ; d1 e1
    1503215002    mov di, cx                                ; 89 cf
    15033     mov ax, word [cs:di-064e4h]               ; 2e 8b 85 1c 9b
     15003    mov ax, word [cs:di-06539h]               ; 2e 8b 85 c7 9a
    1503415004    jmp ax                                    ; ff e0
    1503515005    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    15036     jmp short 09c11h                          ; eb 1c
     15006    jmp short 09bbch                          ; eb 1c
    1503715007    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    15038     jmp short 09c11h                          ; eb 16
     15008    jmp short 09bbch                          ; eb 16
    1503915009    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    15040     jmp short 09c11h                          ; eb 10
     15010    jmp short 09bbch                          ; eb 10
    1504115011    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    15042     jmp short 09c11h                          ; eb 0a
     15012    jmp short 09bbch                          ; eb 0a
    1504315013    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    15044     jmp short 09c11h                          ; eb 04
     15014    jmp short 09bbch                          ; eb 04
    1504515015    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1504615016    mov CL, strict byte 004h                  ; b1 04
     
    1505215022    mov al, byte [bp-004h]                    ; 8a 46 fc
    1505315023    test al, al                               ; 84 c0
    15054     je short 09c40h                           ; 74 1c
     15024    je short 09bebh                           ; 74 1c
    1505515025    mov bl, al                                ; 88 c3
    1505615026    xor bh, bh                                ; 30 ff
     
    1505915029    mov al, byte [bp-006h]                    ; 8a 46 fa
    1506015030    xor ah, ah                                ; 30 e4
    15061     call 0a0dch                               ; e8 a7 04
     15031    call 0a064h                               ; e8 84 04
    1506215032    test AL, strict byte 001h                 ; a8 01
    15063     je short 09c40h                           ; 74 07
     15033    je short 09bebh                           ; 74 07
    1506415034    and AL, strict byte 0f0h                  ; 24 f0
    1506515035    add ax, cx                                ; 01 c8
    15066     call 099beh                               ; e8 7e fd
     15036    call 09969h                               ; e8 7e fd
    1506715037    lea sp, [bp-002h]                         ; 8d 66 fe
    1506815038    pop di                                    ; 5f
    1506915039    pop bp                                    ; 5d
    1507015040    retn                                      ; c3
    15071 apm_out_str_:                                ; 0xf9c46 LB 0x39
     15041apm_out_str_:                                ; 0xf9bf1 LB 0x39
    1507215042    push bp                                   ; 55
    1507315043    mov bp, sp                                ; 89 e5
     
    1507515045    mov bx, ax                                ; 89 c3
    1507615046    cmp byte [bx], 000h                       ; 80 3f 00
    15077     je short 09c5bh                           ; 74 0a
     15047    je short 09c06h                           ; 74 0a
    1507815048    mov al, byte [bx]                         ; 8a 07
    1507915049    out DX, AL                                ; ee
     
    1508215052    db  00ah, 0c0h
    1508315053    ; or al, al                                 ; 0a c0
    15084     jne short 09c53h                          ; 75 f8
     15054    jne short 09bfeh                          ; 75 f8
    1508515055    lea sp, [bp-002h]                         ; 8d 66 fe
    1508615056    pop bx                                    ; 5b
    1508715057    pop bp                                    ; 5d
    1508815058    retn                                      ; c3
    15089     mov AL, byte [02b9ch]                     ; a0 9c 2b
    15090     popfw                                     ; 9d
    15091     mov DL, strict byte 09ch                  ; b2 9c
    15092     int 09ch                                  ; cd 9c
    15093     sub bx, word [di-06308h]                  ; 2b 9d f8 9c
    15094     sub bx, word [di-062cfh]                  ; 2b 9d 31 9d
    15095     std                                       ; fd
     15059    dec bx                                    ; 4b
    1509615060    pushfw                                    ; 9c
    15097     std                                       ; fd
     15061    db  0d6h
    1509815062    pushfw                                    ; 9c
    15099     std                                       ; fd
     15063    pop bp                                    ; 5d
    1510015064    pushfw                                    ; 9c
    15101     jo short 09c16h                           ; 70 9d
    15102     std                                       ; fd
     15065    js short 09bb0h                           ; 78 9c
     15066    db  0d6h
    1510315067    pushfw                                    ; 9c
    15104     std                                       ; fd
     15068    mov word [0d69ch], ax                     ; a3 9c d6
    1510515069    pushfw                                    ; 9c
    15106     db  069h
    15107     popfw                                     ; 9d
    15108 _apm_function:                               ; 0xf9c7f LB 0xf6
     15070    fcomp qword [si-06358h]                   ; dc 9c a8 9c
     15071    test AL, strict byte 09ch                 ; a8 9c
     15072    test AL, strict byte 09ch                 ; a8 9c
     15073    sbb bx, word [di-06358h]                  ; 1b 9d a8 9c
     15074    test AL, strict byte 09ch                 ; a8 9c
     15075    adc AL, strict byte 09dh                  ; 14 9d
     15076_apm_function:                               ; 0xf9c2a LB 0xf6
    1510915077    push bp                                   ; 55
    1511015078    mov bp, sp                                ; 89 e5
     
    1511415082    xor ah, ah                                ; 30 e4
    1511515083    cmp ax, strict word 0000eh                ; 3d 0e 00
    15116     jnbe short 09cfdh                         ; 77 6c
     15084    jnbe short 09ca8h                         ; 77 6c
    1511715085    mov bx, ax                                ; 89 c3
    1511815086    sal bx, 1                                 ; d1 e3
    1511915087    mov dx, word [bp+018h]                    ; 8b 56 18
    1512015088    or dl, 001h                               ; 80 ca 01
    15121     jmp word [cs:bx-0639fh]                   ; 2e ff a7 61 9c
     15089    jmp word [cs:bx-063f4h]                   ; 2e ff a7 0c 9c
    1512215090    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1512315091    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1512415092    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15125     jmp near 09d2bh                           ; e9 79 00
     15093    jmp near 09cd6h                           ; e9 79 00
    1512615094    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15127     mov word [bp+00ch], 0a2f4h                ; c7 46 0c f4 a2
     15095    mov word [bp+00ch], 0a294h                ; c7 46 0c 94 a2
    1512815096    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1512915097    mov ax, strict word 0fff0h                ; b8 f0 ff
    1513015098    mov word [bp+006h], ax                    ; 89 46 06
    1513115099    mov word [bp+004h], ax                    ; 89 46 04
    15132     jmp near 09d2bh                           ; e9 5e 00
     15100    jmp near 09cd6h                           ; e9 5e 00
    1513315101    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1513415102    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1514315111    mov si, ax                                ; 89 c6
    1514415112    sal esi, 010h                             ; 66 c1 e6 10
    15145     jmp near 09d2bh                           ; e9 33 00
     15113    jmp near 09cd6h                           ; e9 33 00
    1514615114    sti                                       ; fb
    1514715115    hlt                                       ; f4
    15148     jmp near 09d2bh                           ; e9 2e 00
     15116    jmp near 09cd6h                           ; e9 2e 00
    1514915117    mov bx, 00da0h                            ; bb a0 0d
    1515015118    mov cx, ds                                ; 8c d9
    1515115119    mov ax, strict word 00004h                ; b8 04 00
    15152     call 01933h                               ; e8 2b 7c
     15120    call 01933h                               ; e8 80 7c
    1515315121    push word [bp+00ch]                       ; ff 76 0c
    1515415122    push word [bp+012h]                       ; ff 76 12
     
    1515715125    mov ax, strict word 00004h                ; b8 04 00
    1515815126    push ax                                   ; 50
    15159     call 01976h                               ; e8 5d 7c
     15127    call 01976h                               ; e8 b2 7c
    1516015128    add sp, strict byte 00008h                ; 83 c4 08
    1516115129    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1516915137    retn                                      ; c3
    1517015138    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15171     je short 09d56h                           ; 74 1f
     15139    je short 09d01h                           ; 74 1f
    1517215140    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15173     je short 09d4eh                           ; 74 11
     15141    je short 09cf9h                           ; 74 11
    1517415142    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15175     jne short 09d5eh                          ; 75 1b
     15143    jne short 09d09h                          ; 75 1b
    1517615144    mov dx, 08900h                            ; ba 00 89
    1517715145    mov ax, 00d10h                            ; b8 10 0d
    15178     call 09c46h                               ; e8 fa fe
    15179     jmp short 09d2bh                          ; eb dd
     15146    call 09bf1h                               ; e8 fa fe
     15147    jmp short 09cd6h                          ; eb dd
    1518015148    mov dx, 08900h                            ; ba 00 89
    1518115149    mov ax, 00d18h                            ; b8 18 0d
    15182     jmp short 09d49h                          ; eb f3
     15150    jmp short 09cf4h                          ; eb f3
    1518315151    mov dx, 08900h                            ; ba 00 89
    1518415152    mov ax, 00d20h                            ; b8 20 0d
    15185     jmp short 09d49h                          ; eb eb
     15153    jmp short 09cf4h                          ; eb eb
    1518615154    or ah, 00ah                               ; 80 cc 0a
    1518715155    mov word [bp+012h], ax                    ; 89 46 12
    1518815156    mov word [bp+018h], dx                    ; 89 56 18
    15189     jmp short 09d2bh                          ; eb c2
     15157    jmp short 09cd6h                          ; eb c2
    1519015158    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15191     jmp short 09d2bh                          ; eb bb
     15159    jmp short 09cd6h                          ; eb bb
    1519215160    or ah, 080h                               ; 80 cc 80
    15193     jmp short 09d61h                          ; eb ec
    15194 pci16_select_reg_:                           ; 0xf9d75 LB 0x24
     15161    jmp short 09d0ch                          ; eb ec
     15162pci16_select_reg_:                           ; 0xf9d20 LB 0x24
    1519515163    push bp                                   ; 55
    1519615164    mov bp, sp                                ; 89 e5
     
    1520915177    pop bp                                    ; 5d
    1521015178    retn                                      ; c3
    15211 pci16_find_device_:                          ; 0xf9d99 LB 0xf7
     15179pci16_find_device_:                          ; 0xf9d44 LB 0xf7
    1521215180    push bp                                   ; 55
    1521315181    mov bp, sp                                ; 89 e5
     
    1522315191    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1522415192    test bl, 007h                             ; f6 c3 07
    15225     jne short 09de1h                          ; 75 2d
     15193    jne short 09d8ch                          ; 75 2d
    1522615194    mov dx, strict word 0000eh                ; ba 0e 00
    1522715195    mov ax, bx                                ; 89 d8
    15228     call 09d75h                               ; e8 b9 ff
     15196    call 09d20h                               ; e8 b9 ff
    1522915197    mov dx, 00cfeh                            ; ba fe 0c
    1523015198    in AL, DX                                 ; ec
     
    1523315201    mov byte [bp-008h], al                    ; 88 46 f8
    1523415202    cmp AL, strict byte 0ffh                  ; 3c ff
    15235     jne short 09dcfh                          ; 75 06
     15203    jne short 09d7ah                          ; 75 06
    1523615204    add bx, strict byte 00008h                ; 83 c3 08
    15237     jmp near 09e61h                           ; e9 92 00
     15205    jmp near 09e0ch                           ; e9 92 00
    1523815206    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15239     je short 09ddch                           ; 74 07
     15207    je short 09d87h                           ; 74 07
    1524015208    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15241     jmp short 09de1h                          ; eb 05
     15209    jmp short 09d8ch                          ; eb 05
    1524215210    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1524315211    mov al, byte [bp-008h]                    ; 8a 46 f8
    1524415212    and AL, strict byte 007h                  ; 24 07
    1524515213    cmp AL, strict byte 001h                  ; 3c 01
    15246     jne short 09e08h                          ; 75 1e
     15214    jne short 09db3h                          ; 75 1e
    1524715215    mov al, bh                                ; 88 f8
    1524815216    xor ah, ah                                ; 30 e4
    1524915217    test ax, ax                               ; 85 c0
    15250     jne short 09e08h                          ; 75 16
     15218    jne short 09db3h                          ; 75 16
    1525115219    mov dx, strict word 0001ah                ; ba 1a 00
    1525215220    mov ax, bx                                ; 89 d8
    15253     call 09d75h                               ; e8 7b ff
     15221    call 09d20h                               ; e8 7b ff
    1525415222    mov dx, 00cfeh                            ; ba fe 0c
    1525515223    in AL, DX                                 ; ec
     
    1525715225    ; sub ah, ah                                ; 2a e4
    1525815226    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15259     jbe short 09e08h                          ; 76 03
     15227    jbe short 09db3h                          ; 76 03
    1526015228    mov byte [bp-006h], al                    ; 88 46 fa
    1526115229    test di, di                               ; 85 ff
    15262     je short 09e11h                           ; 74 05
     15230    je short 09dbch                           ; 74 05
    1526315231    mov dx, strict word 00008h                ; ba 08 00
    15264     jmp short 09e13h                          ; eb 02
     15232    jmp short 09dbeh                          ; eb 02
    1526515233    xor dx, dx                                ; 31 d2
    1526615234    mov ax, bx                                ; 89 d8
    15267     call 09d75h                               ; e8 5d ff
     15235    call 09d20h                               ; e8 5d ff
    1526815236    mov dx, 00cfch                            ; ba fc 0c
    1526915237    in eax, DX                                ; 66 ed
     
    1527615244    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1527715245    test di, di                               ; 85 ff
    15278     je short 09e42h                           ; 74 0f
     15246    je short 09dedh                           ; 74 0f
    1527915247    mov cx, strict word 00008h                ; b9 08 00
    1528015248    shr dx, 1                                 ; d1 ea
    1528115249    rcr ax, 1                                 ; d1 d8
    15282     loop 09e36h                               ; e2 fa
     15250    loop 09de1h                               ; e2 fa
    1528315251    mov word [bp-00ah], ax                    ; 89 46 f6
    1528415252    mov word [bp-010h], dx                    ; 89 56 f0
    1528515253    mov ax, word [bp-010h]                    ; 8b 46 f0
    1528615254    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15287     jne short 09e52h                          ; 75 08
     15255    jne short 09dfdh                          ; 75 08
    1528815256    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1528915257    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15290     je short 09e58h                           ; 74 06
     15258    je short 09e03h                           ; 74 06
    1529115259    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15292     je short 09e5eh                           ; 74 06
     15260    je short 09e09h                           ; 74 06
    1529315261    dec si                                    ; 4e
    1529415262    cmp si, strict byte 0ffffh                ; 83 fe ff
    15295     je short 09e71h                           ; 74 13
     15263    je short 09e1ch                           ; 74 13
    1529615264    add bx, word [bp-00eh]                    ; 03 5e f2
    1529715265    mov al, bh                                ; 88 f8
     
    1530015268    xor dh, dh                                ; 30 f6
    1530115269    cmp ax, dx                                ; 39 d0
    15302     jnbe short 09e71h                         ; 77 03
    15303     jmp near 09dafh                           ; e9 3e ff
     15270    jnbe short 09e1ch                         ; 77 03
     15271    jmp near 09d5ah                           ; e9 3e ff
    1530415272    cmp si, strict byte 0ffffh                ; 83 fe ff
    15305     jne short 09e7ah                          ; 75 04
     15273    jne short 09e25h                          ; 75 04
    1530615274    mov ax, bx                                ; 89 d8
    15307     jmp short 09e7dh                          ; eb 03
     15275    jmp short 09e28h                          ; eb 03
    1530815276    mov ax, strict word 0ffffh                ; b8 ff ff
    1530915277    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1531215280    pop bp                                    ; 5d
    1531315281    retn                                      ; c3
    15314     jno short 09e25h                          ; 71 9f
    15315     mov bl, byte [bx-06064h]                  ; 8a 9f 9c 9f
    15316     mov AL, strict byte 09fh                  ; b0 9f
    15317     retn 0d59fh                               ; c2 9f d5
     15282    sbb AL, strict byte 09fh                  ; 1c 9f
     15283    xor ax, 0479fh                            ; 35 9f 47
    1531815284    lahf                                      ; 9f
    15319 _pci16_function:                             ; 0xf9e90 LB 0x1d5
     15285    pop bx                                    ; 5b
     15286    lahf                                      ; 9f
     15287    insw                                      ; 6d
     15288    lahf                                      ; 9f
     15289    db  080h
     15290    lahf                                      ; 9f
     15291_pci16_function:                             ; 0xf9e3b LB 0x1d5
    1532015292    push bp                                   ; 55
    1532115293    mov bp, sp                                ; 89 e5
     
    1533115303    xor ah, ah                                ; 30 e4
    1533215304    cmp bx, strict byte 00003h                ; 83 fb 03
    15333     jc short 09ec2h                           ; 72 13
    15334     jbe short 09f15h                          ; 76 64
     15305    jc short 09e6dh                           ; 72 13
     15306    jbe short 09ec0h                          ; 76 64
    1533515307    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15336     je short 09f1dh                           ; 74 67
     15308    je short 09ec8h                           ; 74 67
    1533715309    cmp bx, strict byte 00008h                ; 83 fb 08
    15338     jc short 09ecch                           ; 72 11
     15310    jc short 09e77h                           ; 72 11
    1533915311    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15340     jbe short 09f20h                          ; 76 60
    15341     jmp short 09ecch                          ; eb 0a
     15312    jbe short 09ecbh                          ; 76 60
     15313    jmp short 09e77h                          ; eb 0a
    1534215314    cmp bx, strict byte 00002h                ; 83 fb 02
    15343     je short 09eebh                           ; 74 24
     15315    je short 09e96h                           ; 74 24
    1534415316    cmp bx, strict byte 00001h                ; 83 fb 01
    15345     je short 09ecfh                           ; 74 03
    15346     jmp near 0a02eh                           ; e9 5f 01
     15317    je short 09e7ah                           ; 74 03
     15318    jmp near 09fd9h                           ; e9 5f 01
    1534715319    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1534815320    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1535015322    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1535115323    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15352     jmp near 0a05eh                           ; e9 73 01
     15324    jmp near 0a009h                           ; e9 73 01
    1535315325    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15354     jne short 09ef7h                          ; 75 06
     15326    jne short 09ea2h                          ; 75 06
    1535515327    or ah, 083h                               ; 80 cc 83
    15356     jmp near 0a057h                           ; e9 60 01
     15328    jmp near 0a002h                           ; e9 60 01
    1535715329    mov bx, word [bp+008h]                    ; 8b 5e 08
    1535815330    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1535915331    mov ax, word [bp+018h]                    ; 8b 46 18
    1536015332    xor cx, cx                                ; 31 c9
    15361     call 09d99h                               ; e8 94 fe
     15333    call 09d44h                               ; e8 94 fe
    1536215334    cmp ax, strict word 0ffffh                ; 3d ff ff
    15363     jne short 09f17h                          ; 75 0d
     15335    jne short 09ec2h                          ; 75 0d
    1536415336    mov ax, word [bp+020h]                    ; 8b 46 20
    1536515337    xor ah, ah                                ; 30 e4
    1536615338    or ah, 086h                               ; 80 cc 86
    15367     jmp near 0a057h                           ; e9 42 01
    15368     jmp short 09f22h                          ; eb 0b
     15339    jmp near 0a002h                           ; e9 42 01
     15340    jmp short 09ecdh                          ; eb 0b
    1536915341    mov word [bp+014h], ax                    ; 89 46 14
    15370     jmp near 0a05eh                           ; e9 41 01
    15371     jmp near 09fe9h                           ; e9 c9 00
    15372     jmp short 09f47h                          ; eb 25
     15342    jmp near 0a009h                           ; e9 41 01
     15343    jmp near 09f94h                           ; e9 c9 00
     15344    jmp short 09ef2h                          ; eb 25
    1537315345    mov bx, word [bp+008h]                    ; 8b 5e 08
    1537415346    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1537515347    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1537615348    mov cx, strict word 00001h                ; b9 01 00
    15377     call 09d99h                               ; e8 68 fe
     15349    call 09d44h                               ; e8 68 fe
    1537815350    cmp ax, strict word 0ffffh                ; 3d ff ff
    15379     jne short 09f41h                          ; 75 0b
     15351    jne short 09eech                          ; 75 0b
    1538015352    mov ax, word [bp+020h]                    ; 8b 46 20
    1538115353    xor ah, ah                                ; 30 e4
    1538215354    or ah, 086h                               ; 80 cc 86
    15383     jmp near 0a057h                           ; e9 16 01
     15355    jmp near 0a002h                           ; e9 16 01
    1538415356    mov word [bp+014h], ax                    ; 89 46 14
    15385     jmp near 0a05eh                           ; e9 17 01
     15357    jmp near 0a009h                           ; e9 17 01
    1538615358    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15387     jc short 09f54h                           ; 72 06
     15359    jc short 09effh                           ; 72 06
    1538815360    or ah, 087h                               ; 80 cc 87
    15389     jmp near 0a057h                           ; e9 03 01
     15361    jmp near 0a002h                           ; e9 03 01
    1539015362    mov dx, word [bp+004h]                    ; 8b 56 04
    1539115363    mov ax, word [bp+014h]                    ; 8b 46 14
    15392     call 09d75h                               ; e8 18 fe
     15364    call 09d20h                               ; e8 18 fe
    1539315365    mov bx, word [bp+020h]                    ; 8b 5e 20
    1539415366    xor bh, bh                                ; 30 ff
    1539515367    sub bx, strict byte 00008h                ; 83 eb 08
    1539615368    cmp bx, strict byte 00005h                ; 83 fb 05
    15397     jnbe short 09fd2h                         ; 77 68
     15369    jnbe short 09f7dh                         ; 77 68
    1539815370    sal bx, 1                                 ; d1 e3
    15399     jmp word [cs:bx-0617ch]                   ; 2e ff a7 84 9e
     15371    jmp word [cs:bx-061d1h]                   ; 2e ff a7 2f 9e
    1540015372    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1540115373    xor bl, bl                                ; 30 db
     
    1540815380    or bx, ax                                 ; 09 c3
    1540915381    mov word [bp+01ch], bx                    ; 89 5e 1c
    15410     jmp short 09fd2h                          ; eb 48
     15382    jmp short 09f7dh                          ; eb 48
    1541115383    mov dx, word [bp+004h]                    ; 8b 56 04
    1541215384    xor dh, dh                                ; 30 f6
     
    1541515387    in ax, DX                                 ; ed
    1541615388    mov word [bp+01ch], ax                    ; 89 46 1c
    15417     jmp short 09fd2h                          ; eb 36
     15389    jmp short 09f7dh                          ; eb 36
    1541815390    mov dx, 00cfch                            ; ba fc 0c
    1541915391    in eax, DX                                ; 66 ed
     
    1542415396    mov word [bp+01ch], ax                    ; 89 46 1c
    1542515397    mov word [bp+01eh], dx                    ; 89 56 1e
    15426     jmp short 09fd2h                          ; eb 22
     15398    jmp short 09f7dh                          ; eb 22
    1542715399    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1542815400    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1543115403    add dx, 00cfch                            ; 81 c2 fc 0c
    1543215404    out DX, AL                                ; ee
    15433     jmp short 09fd2h                          ; eb 10
     15405    jmp short 09f7dh                          ; eb 10
    1543415406    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1543515407    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1543815410    add dx, 00cfch                            ; 81 c2 fc 0c
    1543915411    out DX, ax                                ; ef
    15440     jmp near 0a05eh                           ; e9 89 00
     15412    jmp near 0a009h                           ; e9 89 00
    1544115413    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1544215414    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1544715419    ; mov ax, cx                                ; 8b c1
    1544815420    out DX, eax                               ; 66 ef
    15449     jmp short 0a05eh                          ; eb 75
     15421    jmp short 0a009h                          ; eb 75
    1545015422    mov bx, word [bp+004h]                    ; 8b 5e 04
    1545115423    mov es, [bp+026h]                         ; 8e 46 26
     
    1545415426    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1545515427    cmp cx, word [es:bx]                      ; 26 3b 0f
    15456     jbe short 0a00fh                          ; 76 11
     15428    jbe short 09fbah                          ; 76 11
    1545715429    mov ax, word [bp+020h]                    ; 8b 46 20
    1545815430    xor ah, ah                                ; 30 e4
     
    1546015432    mov word [bp+020h], ax                    ; 89 46 20
    1546115433    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15462     jmp short 0a023h                          ; eb 14
     15434    jmp short 09fceh                          ; eb 14
    1546315435    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1546415436    mov si, 0f2c0h                            ; be c0 f2
     
    1547215444    les bx, [bp-008h]                         ; c4 5e f8
    1547315445    mov word [es:bx], ax                      ; 26 89 07
    15474     jmp short 0a05eh                          ; eb 30
     15446    jmp short 0a009h                          ; eb 30
    1547515447    mov bx, 00da0h                            ; bb a0 0d
    1547615448    mov cx, ds                                ; 8c d9
    1547715449    mov ax, strict word 00004h                ; b8 04 00
    15478     call 01933h                               ; e8 fa 78
     15450    call 01933h                               ; e8 4f 79
    1547915451    mov ax, word [bp+014h]                    ; 8b 46 14
    1548015452    push ax                                   ; 50
     
    1548515457    mov ax, strict word 00004h                ; b8 04 00
    1548615458    push ax                                   ; 50
    15487     call 01976h                               ; e8 2a 79
     15459    call 01976h                               ; e8 7f 79
    1548815460    add sp, strict byte 00008h                ; 83 c4 08
    1548915461    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1549715469    pop bp                                    ; 5d
    1549815470    retn                                      ; c3
    15499 pci_find_classcode_:                         ; 0xfa065 LB 0x2b
     15471pci_find_classcode_:                         ; 0xfa010 LB 0x8
    1550015472    push bp                                   ; 55
    1550115473    mov bp, sp                                ; 89 e5
    15502     push bx                                   ; 53
    15503     push cx                                   ; 51
    15504     push si                                   ; 56
    15505     mov cx, dx                                ; 89 d1
    15506     xor si, si                                ; 31 f6
    15507     mov dx, ax                                ; 89 c2
    15508     mov ax, 0b103h                            ; b8 03 b1
    15509     sal ecx, 010h                             ; 66 c1 e1 10
    15510     db  08bh, 0cah
    15511     ; mov cx, dx                                ; 8b ca
    15512     int 01ah                                  ; cd 1a
    15513     cmp ah, 000h                              ; 80 fc 00
    15514     je near 0a086h                            ; 0f 84 03 00
    15515     mov bx, strict word 0ffffh                ; bb ff ff
    15516     mov ax, bx                                ; 89 d8
    15517     lea sp, [bp-006h]                         ; 8d 66 fa
    15518     pop si                                    ; 5e
    15519     pop cx                                    ; 59
    15520     pop bx                                    ; 5b
     15474    mov ax, strict word 0ffffh                ; b8 ff ff
    1552115475    pop bp                                    ; 5d
    1552215476    retn                                      ; c3
    15523 pci_read_config_byte_:                       ; 0xfa090 LB 0x27
     15477pci_read_config_byte_:                       ; 0xfa018 LB 0x27
    1552415478    push bp                                   ; 55
    1552515479    mov bp, sp                                ; 89 e5
     
    1554415498    pop bp                                    ; 5d
    1554515499    retn                                      ; c3
    15546 pci_read_config_word_:                       ; 0xfa0b7 LB 0x25
     15500pci_read_config_word_:                       ; 0xfa03f LB 0x25
    1554715501    push bp                                   ; 55
    1554815502    mov bp, sp                                ; 89 e5
     
    1556615520    pop bp                                    ; 5d
    1556715521    retn                                      ; c3
    15568 pci_read_config_dword_:                      ; 0xfa0dc LB 0x27
     15522pci_read_config_dword_:                      ; 0xfa064 LB 0x3f
    1556915523    push bp                                   ; 55
    1557015524    mov bp, sp                                ; 89 e5
    1557115525    push cx                                   ; 51
    1557215526    push di                                   ; 57
     15527    push ax                                   ; 50
    1557315528    mov dh, al                                ; 88 c6
    15574     mov bh, dl                                ; 88 d7
     15529    mov byte [bp-006h], bl                    ; 88 5e fa
    1557515530    mov al, bl                                ; 88 d8
    1557615531    xor ah, ah                                ; 30 e4
    15577     mov bh, dh                                ; 88 f7
    15578     mov bl, dl                                ; 88 d3
    1557915532    mov di, ax                                ; 89 c7
    15580     mov ax, 0b10ah                            ; b8 0a b1
     15533    mov bx, dx                                ; 89 d3
     15534    mov ax, 0b109h                            ; b8 09 b1
    1558115535    int 01ah                                  ; cd 1a
    15582     db  08bh, 0c1h
    15583     ; mov ax, cx                                ; 8b c1
    15584     shr ecx, 010h                             ; 66 c1 e9 10
    15585     mov dx, cx                                ; 89 ca
     15536    test cx, cx                               ; 85 c9
     15537    jne short 0a094h                          ; 75 14
     15538    mov al, byte [bp-006h]                    ; 8a 46 fa
     15539    xor ah, ah                                ; 30 e4
     15540    mov di, ax                                ; 89 c7
     15541    inc di                                    ; 47
     15542    inc di                                    ; 47
     15543    mov bx, dx                                ; 89 d3
     15544    mov ax, 0b109h                            ; b8 09 b1
     15545    int 01ah                                  ; cd 1a
     15546    test cx, cx                               ; 85 c9
     15547    je short 0a099h                           ; 74 05
     15548    mov ax, strict word 00001h                ; b8 01 00
     15549    jmp short 0a09bh                          ; eb 02
     15550    xor ax, ax                                ; 31 c0
     15551    cwd                                       ; 99
    1558615552    lea sp, [bp-004h]                         ; 8d 66 fc
    1558715553    pop di                                    ; 5f
     
    1558915555    pop bp                                    ; 5d
    1559015556    retn                                      ; c3
    15591 vds_is_present_:                             ; 0xfa103 LB 0x1d
     15557vds_is_present_:                             ; 0xfa0a3 LB 0x1d
    1559215558    push bx                                   ; 53
    1559315559    push bp                                   ; 55
     
    1559715563    mov es, ax                                ; 8e c0
    1559815564    test byte [es:bx], 020h                   ; 26 f6 07 20
    15599     je short 0a11bh                           ; 74 06
     15565    je short 0a0bbh                           ; 74 06
    1560015566    mov ax, strict word 00001h                ; b8 01 00
    1560115567    pop bp                                    ; 5d
     
    1560615572    pop bx                                    ; 5b
    1560715573    retn                                      ; c3
    15608 vds_real_to_lin_:                            ; 0xfa120 LB 0x1e
     15574vds_real_to_lin_:                            ; 0xfa0c0 LB 0x1e
    1560915575    push bx                                   ; 53
    1561015576    push cx                                   ; 51
     
    1561715583    sal ax, 1                                 ; d1 e0
    1561815584    rcl dx, 1                                 ; d1 d2
    15619     loop 0a12eh                               ; e2 fa
     15585    loop 0a0ceh                               ; e2 fa
    1562015586    xor cx, cx                                ; 31 c9
    1562115587    add ax, bx                                ; 01 d8
     
    1562515591    pop bx                                    ; 5b
    1562615592    retn                                      ; c3
    15627 vds_build_sg_list_:                          ; 0xfa13e LB 0x77
     15593vds_build_sg_list_:                          ; 0xfa0de LB 0x77
    1562815594    push bp                                   ; 55
    1562915595    mov bp, sp                                ; 89 e5
     
    1563915605    mov bx, word [bp+006h]                    ; 8b 5e 06
    1564015606    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15641     call 0a120h                               ; e8 c3 ff
     15607    call 0a0c0h                               ; e8 c3 ff
    1564215608    mov es, si                                ; 8e c6
    1564315609    mov word [es:di+004h], ax                 ; 26 89 45 04
    1564415610    mov word [es:di+006h], dx                 ; 26 89 55 06
    1564515611    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15646     call 0a103h                               ; e8 93 ff
     15612    call 0a0a3h                               ; e8 93 ff
    1564715613    test ax, ax                               ; 85 c0
    15648     je short 0a185h                           ; 74 11
     15614    je short 0a125h                           ; 74 11
    1564915615    mov es, si                                ; 8e c6
    1565015616    mov ax, 08105h                            ; b8 05 81
    1565115617    mov dx, strict word 00000h                ; ba 00 00
    1565215618    int 04bh                                  ; cd 4b
    15653     jc short 0a182h                           ; 72 02
     15619    jc short 0a122h                           ; 72 02
    1565415620    db  032h, 0c0h
    1565515621    ; xor al, al                                ; 32 c0
    1565615622    cbw                                       ; 98
    15657     jmp short 0a1ach                          ; eb 27
     15623    jmp short 0a14ch                          ; eb 27
    1565815624    mov es, si                                ; 8e c6
    1565915625    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1567215638    pop bp                                    ; 5d
    1567315639    retn 00004h                               ; c2 04 00
    15674 vds_free_sg_list_:                           ; 0xfa1b5 LB 0x3b
     15640vds_free_sg_list_:                           ; 0xfa155 LB 0x3b
    1567515641    push bp                                   ; 55
    1567615642    mov bp, sp                                ; 89 e5
     
    1567815644    push di                                   ; 57
    1567915645    mov bx, ax                                ; 89 c3
    15680     call 0a103h                               ; e8 44 ff
     15646    call 0a0a3h                               ; e8 44 ff
    1568115647    test ax, ax                               ; 85 c0
    15682     je short 0a1d4h                           ; 74 11
     15648    je short 0a174h                           ; 74 11
    1568315649    mov di, bx                                ; 89 df
    1568415650    mov es, dx                                ; 8e c2
     
    1568615652    mov dx, strict word 00000h                ; ba 00 00
    1568715653    int 04bh                                  ; cd 4b
    15688     jc short 0a1d3h                           ; 72 02
     15654    jc short 0a173h                           ; 72 02
    1568915655    db  032h, 0c0h
    1569015656    ; xor al, al                                ; 32 c0
     
    1569815664    retn                                      ; c3
    1569915665    times 0xd db 0
    15700 __U4D:                                       ; 0xfa1f0 LB 0x39
     15666__U4D:                                       ; 0xfa190 LB 0x39
    1570115667    pushfw                                    ; 9c
    1570215668    push eax                                  ; 66 50
     
    1572815694    popfw                                     ; 9d
    1572915695    retn                                      ; c3
    15730 __U4M:                                       ; 0xfa229 LB 0x31
     15696__U4M:                                       ; 0xfa1c9 LB 0x31
    1573115697    pushfw                                    ; 9c
    1573215698    push eax                                  ; 66 50
     
    1575315719    popfw                                     ; 9d
    1575415720    retn                                      ; c3
    15755 __U8LS:                                      ; 0xfa25a LB 0x10
     15721__U8LS:                                      ; 0xfa1fa LB 0x10
    1575615722    test si, si                               ; 85 f6
    15757     je short 0a269h                           ; 74 0b
     15723    je short 0a209h                           ; 74 0b
    1575815724    sal dx, 1                                 ; d1 e2
    1575915725    rcl cx, 1                                 ; d1 d1
     
    1576115727    rcl ax, 1                                 ; d1 d0
    1576215728    dec si                                    ; 4e
    15763     jne short 0a25eh                          ; 75 f5
     15729    jne short 0a1feh                          ; 75 f5
    1576415730    retn                                      ; c3
    15765 __U8RS:                                      ; 0xfa26a LB 0x10
     15731__U8RS:                                      ; 0xfa20a LB 0x10
    1576615732    test si, si                               ; 85 f6
    15767     je short 0a279h                           ; 74 0b
     15733    je short 0a219h                           ; 74 0b
    1576815734    shr ax, 1                                 ; d1 e8
    1576915735    rcr bx, 1                                 ; d1 db
     
    1577115737    rcr dx, 1                                 ; d1 da
    1577215738    dec si                                    ; 4e
    15773     jne short 0a26eh                          ; 75 f5
     15739    jne short 0a20eh                          ; 75 f5
    1577415740    retn                                      ; c3
    15775 _fmemset_:                                   ; 0xfa27a LB 0xd
     15741_fmemset_:                                   ; 0xfa21a LB 0xd
    1577615742    push di                                   ; 57
    1577715743    mov es, dx                                ; 8e c2
     
    1578315749    pop di                                    ; 5f
    1578415750    retn                                      ; c3
    15785 _fmemcpy_:                                   ; 0xfa287 LB 0x33
     15751_fmemcpy_:                                   ; 0xfa227 LB 0x33
    1578615752    push bp                                   ; 55
    1578715753    db  08bh, 0ech
     
    1580315769    leave                                     ; c9
    1580415770    retn                                      ; c3
    15805     add al, dl                                ; 00 d0
    15806     mov byte [0a2d2h], AL                     ; a2 d2 a2
    15807     db  0d6h
    15808     mov byte [0a2d6h], AL                     ; a2 d6 a2
    15809     db  0d6h
    15810     mov byte [0a2d8h], AL                     ; a2 d8 a2
    15811     fsub dword [bp+si-05d26h]                 ; d8 a2 da a2
    15812     fisub word [bp+si-05d22h]                 ; de a2 de a2
    15813     loopne 0a258h                             ; e0 a2
    15814     in ax, 0a2h                               ; e5 a2
    15815     out 0a2h, ax                              ; e7 a2
    15816 apm_worker:                                  ; 0xfa2ba LB 0x3a
     15771    add byte [bx+si-05eh], dh                 ; 00 70 a2
     15772    jc short 0a1e6h                           ; 72 a2
     15773    jbe short 0a1e8h                          ; 76 a2
     15774    jbe short 0a1eah                          ; 76 a2
     15775    jbe short 0a1ech                          ; 76 a2
     15776    js short 0a1eeh                           ; 78 a2
     15777    js short 0a1f0h                           ; 78 a2
     15778    jp short 0a1f2h                           ; 7a a2
     15779    jle short 0a1f4h                          ; 7e a2
     15780    jle short 0a1f6h                          ; 7e a2
     15781    and byte [bp+si-05d7bh], 087h             ; 80 a2 85 a2 87
     15782    db  0a2h
     15783apm_worker:                                  ; 0xfa25a LB 0x3a
    1581715784    sti                                       ; fb
    1581815785    push ax                                   ; 50
     
    1582615793    pop ax                                    ; 58
    1582715794    mov AH, strict byte 053h                  ; b4 53
    15828     jnc short 0a2f0h                          ; 73 25
    15829     jmp word [cs:bp-05d60h]                   ; 2e ff a6 a0 a2
    15830     jmp short 0a2eeh                          ; eb 1c
     15795    jnc short 0a290h                          ; 73 25
     15796    jmp word [cs:bp-05dc0h]                   ; 2e ff a6 40 a2
     15797    jmp short 0a28eh                          ; eb 1c
    1583115798    sti                                       ; fb
    1583215799    hlt                                       ; f4
    15833     jmp short 0a2eeh                          ; eb 18
    15834     jmp short 0a2eeh                          ; eb 16
    15835     jmp short 0a2f0h                          ; eb 16
     15800    jmp short 0a28eh                          ; eb 18
     15801    jmp short 0a28eh                          ; eb 16
     15802    jmp short 0a290h                          ; eb 16
    1583615803    mov AH, strict byte 080h                  ; b4 80
    15837     jmp short 0a2f2h                          ; eb 14
    15838     jmp short 0a2f0h                          ; eb 10
     15804    jmp short 0a292h                          ; eb 14
     15805    jmp short 0a290h                          ; eb 10
    1583915806    mov ax, 00102h                            ; b8 02 01
    15840     jmp short 0a2eeh                          ; eb 09
    15841     jmp short 0a2eeh                          ; eb 07
     15807    jmp short 0a28eh                          ; eb 09
     15808    jmp short 0a28eh                          ; eb 07
    1584215809    mov BL, strict byte 000h                  ; b3 00
    1584315810    mov cx, strict word 00000h                ; b9 00 00
    15844     jmp short 0a2eeh                          ; eb 00
     15811    jmp short 0a28eh                          ; eb 00
    1584515812    clc                                       ; f8
    1584615813    retn                                      ; c3
     
    1584815815    stc                                       ; f9
    1584915816    retn                                      ; c3
    15850 apm_pm16_entry:                              ; 0xfa2f4 LB 0x11
     15817apm_pm16_entry:                              ; 0xfa294 LB 0x11
    1585115818    mov AH, strict byte 002h                  ; b4 02
    1585215819    push DS                                   ; 1e
     
    1585615823    add bp, strict byte 00008h                ; 83 c5 08
    1585715824    mov ds, bp                                ; 8e dd
    15858     call 0a2bah                               ; e8 b8 ff
     15825    call 0a25ah                               ; e8 b8 ff
    1585915826    pop bp                                    ; 5d
    1586015827    pop DS                                    ; 1f
    1586115828    retf                                      ; cb
    1586215829
    15863   ; Padding 0x36fb bytes at 0xfa305
    15864   times 14075 db 0
     15830  ; Padding 0x375b bytes at 0xfa2a5
     15831  times 14171 db 0
    1586515832
    1586615833section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1590915876    add bp, strict byte 00008h                ; 83 c5 08
    1591015877    push ebp                                  ; 66 55
    15911     mov bp, 0a2f6h                            ; bd f6 a2
     15878    mov bp, 0a296h                            ; bd 96 a2
    1591215879    add byte [bx+si], al                      ; 00 00
    1591315880    push ebp                                  ; 66 55
     
    1629716264
    1629816265section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
    16299     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    16300     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    16301     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
     16266biosorg_check_before_or_at_0E02Eh:           ; 0xfe000 LB 0x30
     16267    times 0x2e db 0
     16268    db  'XM'
    1630216269eoi_both_pics:                               ; 0xfe030 LB 0x4
    1630316270    mov AL, strict byte 020h                  ; b0 20
     
    1631316280    loop 0e039h                               ; e2 f6
    1631416281    retn                                      ; c3
    16315 eoi_jmp_post:                                ; 0xfe044 LB 0x17
     16282eoi_jmp_post:                                ; 0xfe044 LB 0x3
    1631616283    call 0e030h                               ; e8 e9 ff
     16284no_eoi_jmp_post:                             ; 0xfe047 LB 0x8
    1631716285    db  033h, 0c0h
    1631816286    ; xor ax, ax                                ; 33 c0
    1631916287    mov ds, ax                                ; 8e d8
    1632016288    jmp far [00467h]                          ; ff 2e 67 04
    16321     times 0xa db 0
     16289seg_40_value:                                ; 0xfe04f LB 0x2
     16290    inc ax                                    ; 40
     16291    times 0x1 db 0
     16292biosorg_check_before_or_at_0E059h:           ; 0xfe051 LB 0xa
     16293    times 0x8 db 0
    1632216294    db  'XM'
    16323 post:                                        ; 0xfe05b LB 0x61
     16295post:                                        ; 0xfe05b LB 0x65
    1632416296    cli                                       ; fa
     16297    jmp short 0e064h                          ; eb 06
    1632516298    mov AL, strict byte 001h                  ; b0 01
    1632616299    out strict byte 092h, AL                  ; e6 92
    16327     jmp short 0e060h                          ; eb fe
     16300    jmp short 0e062h                          ; eb fe
    1632816301    mov AL, strict byte 00fh                  ; b0 0f
    1632916302    out strict byte 070h, AL                  ; e6 70
     
    1633216305    in AL, strict byte 064h                   ; e4 64
    1633316306    test AL, strict byte 004h                 ; a8 04
    16334     je short 0e081h                           ; 74 11
     16307    je short 0e085h                           ; 74 13
    1633516308    db  08ah, 0c4h
    1633616309    ; mov al, ah                                ; 8a c4
    1633716310    db  00ah, 0c0h
    1633816311    ; or al, al                                 ; 0a c0
    16339     jne short 0e081h                          ; 75 0b
    16340     push strict byte 00040h                   ; 6a 40
    16341     pop DS                                    ; 1f
     16312    jne short 0e085h                          ; 75 0d
     16313    mov ds, [cs:0e04fh]                       ; 2e 8e 1e 4f e0
    1634216314    cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
    16343     jne short 0e05ch                          ; 75 db
     16315    jne short 0e05eh                          ; 75 d9
    1634416316    mov AL, strict byte 00fh                  ; b0 0f
    1634516317    out strict byte 070h, AL                  ; e6 70
     
    1634916321    ; mov al, ah                                ; 8a c4
    1635016322    cmp AL, strict byte 009h                  ; 3c 09
    16351     je short 0e0a1h                           ; 74 12
     16323    je short 0e0a5h                           ; 74 12
    1635216324    cmp AL, strict byte 00ah                  ; 3c 0a
    16353     je short 0e0a1h                           ; 74 0e
     16325    je short 0e0a5h                           ; 74 0e
    1635416326    db  032h, 0c0h
    1635516327    ; xor al, al                                ; 32 c0
     
    1636316335    ; mov al, ah                                ; 8a c4
    1636416336    cmp AL, strict byte 000h                  ; 3c 00
    16365     je short 0e0bch                           ; 74 15
     16337    je short 0e0c0h                           ; 74 15
    1636616338    cmp AL, strict byte 00dh                  ; 3c 0d
    16367     jnc short 0e0bch                          ; 73 11
     16339    jnc short 0e0c0h                          ; 73 11
    1636816340    cmp AL, strict byte 009h                  ; 3c 09
    16369     jne short 0e0b2h                          ; 75 03
    16370     jmp near 0e366h                           ; e9 b4 02
     16341    jne short 0e0b6h                          ; 75 03
     16342    jmp near 0e366h                           ; e9 b0 02
    1637116343    cmp AL, strict byte 005h                  ; 3c 05
    16372     je short 0e044h                           ; 74 8e
     16344    je short 0e044h                           ; 74 8a
    1637316345    cmp AL, strict byte 00ah                  ; 3c 0a
    16374     je short 0e047h                           ; 74 8d
    16375     jmp short 0e0bch                          ; eb 00
    16376 normal_post:                                 ; 0xfe0bc LB 0x207
     16346    je short 0e047h                           ; 74 89
     16347    jmp short 0e0c0h                          ; eb 00
     16348normal_post:                                 ; 0xfe0c0 LB 0x1f3
    1637716349    mov ax, 07800h                            ; b8 00 78
    1637816350    db  08bh, 0e0h
     
    1639616368    add bx, 01000h                            ; 81 c3 00 10
    1639716369    cmp bx, 09000h                            ; 81 fb 00 90
    16398     jnc short 0e0efh                          ; 73 0b
     16370    jnc short 0e0f3h                          ; 73 0b
    1639916371    mov es, bx                                ; 8e c3
    1640016372    db  033h, 0ffh
     
    1640216374    mov cx, 08000h                            ; b9 00 80
    1640316375    rep stosw                                 ; f3 ab
    16404     jmp short 0e0dah                          ; eb eb
     16376    jmp short 0e0deh                          ; eb eb
    1640516377    mov es, bx                                ; 8e c3
    1640616378    db  033h, 0ffh
     
    1641316385    pop DS                                    ; 1f
    1641416386    cld                                       ; fc
    16415     call 01775h                               ; e8 75 36
     16387    call 01775h                               ; e8 71 36
    1641616388    db  033h, 0dbh
    1641716389    ; xor bx, bx                                ; 33 db
     
    1642016392    mov ax, 0ff53h                            ; b8 53 ff
    1642116393    mov dx, 0f000h                            ; ba 00 f0
    16422     call 0e039h                               ; e8 29 ff
     16394    call 0e039h                               ; e8 25 ff
    1642316395    mov bx, 001a0h                            ; bb a0 01
    1642416396    mov cx, strict word 00010h                ; b9 10 00
    16425     call 0e039h                               ; e8 20 ff
     16397    call 0e039h                               ; e8 1c ff
    1642616398    mov ax, 0027fh                            ; b8 7f 02
    1642716399    mov word [00413h], ax                     ; a3 13 04
    16428     mov ax, 0e9d6h                            ; b8 d6 e9
     16400    mov ax, 0e9e4h                            ; b8 e4 e9
    1642916401    mov word [00018h], ax                     ; a3 18 00
    1643016402    mov ax, 0f000h                            ; b8 00 f0
     
    1645416426    mov ax, 0f000h                            ; b8 00 f0
    1645516427    mov word [00066h], ax                     ; a3 66 00
    16456     mov ax, 0efedh                            ; b8 ed ef
     16428    mov ax, 0effbh                            ; b8 fb ef
    1645716429    mov word [00070h], ax                     ; a3 70 00
    1645816430    mov ax, 0f000h                            ; b8 00 f0
    1645916431    mov word [00072h], ax                     ; a3 72 00
    16460     call 0e778h                               ; e8 f6 05
     16432    call 0e794h                               ; e8 0e 06
    1646116433    mov ax, 0fe6eh                            ; b8 6e fe
    1646216434    mov word [00068h], ax                     ; a3 68 00
     
    1651016482    mov ax, 0c000h                            ; b8 00 c0
    1651116483    mov dx, 0c800h                            ; ba 00 c8
    16512     call 01600h                               ; e8 f4 33
    16513     call 04ff1h                               ; e8 e2 6d
     16484    call 01600h                               ; e8 f0 33
     16485    call 04faah                               ; e8 97 6d
    1651416486    pop DS                                    ; 1f
    1651516487    mov ax, 0ff53h                            ; b8 53 ff
     
    1652416496    mov CL, strict byte 014h                  ; b1 14
    1652516497    mov dx, 00378h                            ; ba 78 03
    16526     call 0ecedh                               ; e8 c3 0a
     16498    call 0ed0ah                               ; e8 dc 0a
    1652716499    mov dx, 00278h                            ; ba 78 02
    16528     call 0ecedh                               ; e8 bd 0a
    16529     sal bx, 00eh                              ; c1 e3 0e
     16500    call 0ed0ah                               ; e8 d6 0a
     16501    push cx                                   ; 51
     16502    mov CL, strict byte 00eh                  ; b1 0e
     16503    sal bx, CL                                ; d3 e3
     16504    pop cx                                    ; 59
    1653016505    mov ax, word [00410h]                     ; a1 10 04
    1653116506    and ax, 03fffh                            ; 25 ff 3f
     
    1653316508    ; or ax, bx                                 ; 0b c3
    1653416509    mov word [00410h], ax                     ; a3 10 04
    16535     mov ax, 0e746h                            ; b8 46 e7
     16510    mov ax, 0e754h                            ; b8 54 e7
    1653616511    mov word [0002ch], ax                     ; a3 2c 00
    1653716512    mov ax, 0f000h                            ; b8 00 f0
    1653816513    mov word [0002eh], ax                     ; a3 2e 00
    16539     mov ax, 0e746h                            ; b8 46 e7
     16514    mov ax, 0e754h                            ; b8 54 e7
    1654016515    mov word [00030h], ax                     ; a3 30 00
    1654116516    mov ax, 0f000h                            ; b8 00 f0
     
    1654916524    mov CL, strict byte 00ah                  ; b1 0a
    1655016525    mov dx, 003f8h                            ; ba f8 03
    16551     call 0ed0bh                               ; e8 9f 0a
     16526    call 0ed28h                               ; e8 b5 0a
    1655216527    mov dx, 002f8h                            ; ba f8 02
    16553     call 0ed0bh                               ; e8 99 0a
     16528    call 0ed28h                               ; e8 af 0a
    1655416529    mov dx, 003e8h                            ; ba e8 03
    16555     call 0ed0bh                               ; e8 93 0a
     16530    call 0ed28h                               ; e8 a9 0a
    1655616531    mov dx, 002e8h                            ; ba e8 02
    16557     call 0ed0bh                               ; e8 8d 0a
    16558     sal bx, 009h                              ; c1 e3 09
     16532    call 0ed28h                               ; e8 a3 0a
     16533    push cx                                   ; 51
     16534    mov CL, strict byte 009h                  ; b1 09
     16535    sal bx, CL                                ; d3 e3
     16536    pop cx                                    ; 59
    1655916537    mov ax, word [00410h]                     ; a1 10 04
    1656016538    and ax, 0f1ffh                            ; 25 ff f1
     
    1656616544    mov ax, 0f000h                            ; b8 00 f0
    1656716545    mov word [0012ah], ax                     ; a3 2a 01
    16568     mov ax, 0fe7bh                            ; b8 7b fe
     16546    mov ax, 0f90fh                            ; b8 0f f9
    1656916547    mov word [001c0h], ax                     ; a3 c0 01
    1657016548    mov ax, 0f000h                            ; b8 00 f0
    1657116549    mov word [001c2h], ax                     ; a3 c2 01
    16572     call 0edbfh                               ; e8 18 0b
    16573     jmp short 0e31bh                          ; eb 72
    16574     times 0x18 db 0
     16550    call 0ede3h                               ; e8 32 0b
     16551    jmp short 0e31bh                          ; eb 68
     16552biosorg_check_before_or_at_0E2C1h:           ; 0xfe2b3 LB 0x10
     16553    times 0xe db 0
    1657516554    db  'XM'
    1657616555nmi:                                         ; 0xfe2c3 LB 0x7
     
    1658516564    int 002h                                  ; cd 02
    1658616565    iret                                      ; cf
    16587 hard_drive_post:                             ; 0xfe2d2 LB 0x12c
     16566hard_drive_post:                             ; 0xfe2d2 LB 0xbd
    1658816567    db  033h, 0c0h
    1658916568    ; xor ax, ax                                ; 33 c0
     
    1660016579    mov ax, 0f000h                            ; b8 00 f0
    1660116580    mov word [0004eh], ax                     ; a3 4e 00
    16602     mov ax, 0f8d5h                            ; b8 d5 f8
     16581    mov ax, 0f8fdh                            ; b8 fd f8
    1660316582    mov word [001d8h], ax                     ; a3 d8 01
    1660416583    mov ax, 0f000h                            ; b8 00 f0
     
    1661316592    mov word [0011ah], ax                     ; a3 1a 01
    1661416593    retn                                      ; c3
    16615     mov ax, 0f8a7h                            ; b8 a7 f8
     16594    mov ax, 0f8c3h                            ; b8 c3 f8
    1661616595    mov word [001d0h], ax                     ; a3 d0 01
    1661716596    mov ax, 0f000h                            ; b8 00 f0
     
    1662116600    mov ax, 0f000h                            ; b8 00 f0
    1662216601    mov word [001d6h], ax                     ; a3 d6 01
    16623     call 0e753h                               ; e8 1d 04
     16602    call 0e76fh                               ; e8 39 04
    1662416603    push CS                                   ; 0e
    1662516604    pop DS                                    ; 1f
     
    1662716606    call 01cc5h                               ; e8 89 39
    1662816607    call 02154h                               ; e8 15 3e
    16629     call 09b2ch                               ; e8 ea b7
    16630     call 08991h                               ; e8 4c a6
    16631     call 0ed2fh                               ; e8 e7 09
     16608    call 09ad7h                               ; e8 95 b7
     16609    call 0893ch                               ; e8 f7 a5
     16610    call 0ed4ch                               ; e8 04 0a
    1663216611    call 0e2d2h                               ; e8 87 ff
    1663316612    push CS                                   ; 0e
     
    1663816617    call 01600h                               ; e8 a9 32
    1663916618    call 01799h                               ; e8 3f 34
    16640     call 03be2h                               ; e8 85 58
     16619    call 03bc4h                               ; e8 67 58
    1664116620    sti                                       ; fb
    1664216621    int 019h                                  ; cd 19
     
    1665316632    and AL, strict byte 0fdh                  ; 24 fd
    1665416633    out strict byte 092h, AL                  ; e6 92
    16655     lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
     16634    lidt [cs:0eff5h]                          ; 2e 0f 01 1e f5 ef
    1665616635    pop DS                                    ; 1f
    1665716636    pop ES                                    ; 07
     
    1666516644    sti                                       ; fb
    1666616645    retf 00002h                               ; ca 02 00
     16646biosorg_check_before_or_at_0E3FCh:           ; 0xfe38f LB 0x6f
    1666716647    times 0x6d db 0
    1666816648    db  'XM'
     
    1672016700int19_handler:                               ; 0xfe6f2 LB 0x3
    1672116701    jmp near 0f0ach                           ; e9 b7 09
    16722 biosorg_check_0E6F5h:                        ; 0xfe6f5 LB 0x34
     16702biosorg_check_at_0E6F5h:                     ; 0xfe6f5 LB 0xa
    1672316703    or word [bx+si], ax                       ; 09 00
    16724     cld                                       ; fc
     16704    sti                                       ; fb
    1672516705    add byte [bx+di], al                      ; 00 01
    1672616706    je short 0e73ch                           ; 74 40
    16727     times 0x2b db 0
     16707    times 0x3 db 0
     16708biosorg_check_before_or_at_0E727h:           ; 0xfe6ff LB 0x2a
     16709    times 0x28 db 0
    1672816710    db  'XM'
    16729 biosorg_check_0E729h:                        ; 0xfe729 LB 0x10
     16711biosorg_check_at_0E729h:                     ; 0xfe729 LB 0x10
    1673016712    times 0xe db 0
    1673116713    db  'XM'
    16732 biosorg_check_0E739h:                        ; 0xfe739 LB 0x1a
     16714biosorg_check_at_0E739h:                     ; 0xfe739 LB 0x36
    1673316715    push DS                                   ; 1e
    1673416716    push ES                                   ; 06
    16735     pushaw                                    ; 60
     16717    push ax                                   ; 50
     16718    push cx                                   ; 51
     16719    push dx                                   ; 52
     16720    push bx                                   ; 53
     16721    push sp                                   ; 54
     16722    push bp                                   ; 55
     16723    push si                                   ; 56
     16724    push di                                   ; 57
    1673616725    push CS                                   ; 0e
    1673716726    pop DS                                    ; 1f
    1673816727    cld                                       ; fc
    16739     call 065bch                               ; e8 7a 7e
    16740     popaw                                     ; 61
     16728    call 06565h                               ; e8 1c 7e
     16729    pop di                                    ; 5f
     16730    pop si                                    ; 5e
     16731    pop bp                                    ; 5d
     16732    pop bx                                    ; 5b
     16733    pop bx                                    ; 5b
     16734    pop dx                                    ; 5a
     16735    pop cx                                    ; 59
     16736    pop ax                                    ; 58
    1674116737    pop ES                                    ; 07
    1674216738    pop DS                                    ; 1f
     
    1674416740    push DS                                   ; 1e
    1674516741    push ES                                   ; 06
    16746     pushaw                                    ; 60
     16742    push ax                                   ; 50
     16743    push cx                                   ; 51
     16744    push dx                                   ; 52
     16745    push bx                                   ; 53
     16746    push sp                                   ; 54
     16747    push bp                                   ; 55
     16748    push si                                   ; 56
     16749    push di                                   ; 57
    1674716750    push CS                                   ; 0e
    1674816751    pop DS                                    ; 1f
    1674916752    cld                                       ; fc
    16750     call 016e6h                               ; e8 97 2f
    16751     popaw                                     ; 61
     16753    call 016e6h                               ; e8 82 2f
     16754    pop di                                    ; 5f
     16755    pop si                                    ; 5e
     16756    pop bp                                    ; 5d
     16757    pop bx                                    ; 5b
     16758    pop bx                                    ; 5b
     16759    pop dx                                    ; 5a
     16760    pop cx                                    ; 59
     16761    pop ax                                    ; 58
    1675216762    pop ES                                    ; 07
    1675316763    pop DS                                    ; 1f
    1675416764    iret                                      ; cf
    16755 init_pic:                                    ; 0xfe753 LB 0x25
     16765init_pic:                                    ; 0xfe76f LB 0x25
    1675616766    mov AL, strict byte 011h                  ; b0 11
    1675716767    out strict byte 020h, AL                  ; e6 20
     
    1677316783    out strict byte 0a1h, AL                  ; e6 a1
    1677416784    retn                                      ; c3
    16775 ebda_post:                                   ; 0xfe778 LB 0xb6
    16776     mov ax, 0e746h                            ; b8 46 e7
     16785ebda_post:                                   ; 0xfe794 LB 0x45
     16786    mov ax, 0e754h                            ; b8 54 e7
    1677716787    mov word [00034h], ax                     ; a3 34 00
    1677816788    mov ax, 0f000h                            ; b8 00 f0
    1677916789    mov word [00036h], ax                     ; a3 36 00
    16780     mov ax, 0e746h                            ; b8 46 e7
     16790    mov ax, 0e754h                            ; b8 54 e7
    1678116791    mov word [0003ch], ax                     ; a3 3c 00
    1678216792    mov ax, 0f000h                            ; b8 00 f0
    1678316793    mov word [0003eh], ax                     ; a3 3e 00
    16784     mov ax, 0e746h                            ; b8 46 e7
     16794    mov ax, 0e754h                            ; b8 54 e7
    1678516795    mov word [001c8h], ax                     ; a3 c8 01
    1678616796    mov ax, 0f000h                            ; b8 00 f0
    1678716797    mov word [001cah], ax                     ; a3 ca 01
    16788     mov ax, 0e746h                            ; b8 46 e7
     16798    mov ax, 0e754h                            ; b8 54 e7
    1678916799    mov word [001dch], ax                     ; a3 dc 01
    1679016800    mov ax, 0f000h                            ; b8 00 f0
     
    1679816808    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
    1679916809    retn                                      ; c3
    16800     times 0x6f db 0
     16810biosorg_check_before_or_at_0E82Ch:           ; 0xfe7d9 LB 0x55
     16811    times 0x53 db 0
    1680116812    db  'XM'
    16802 biosorg_check_0E82Eh:                        ; 0xfe82e LB 0x159
     16813biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x4b
    1680316814    sti                                       ; fb
    1680416815    push ES                                   ; 06
    1680516816    push DS                                   ; 1e
    16806     pushaw                                    ; 60
     16817    push ax                                   ; 50
     16818    push cx                                   ; 51
     16819    push dx                                   ; 52
     16820    push bx                                   ; 53
     16821    push sp                                   ; 54
     16822    push bp                                   ; 55
     16823    push si                                   ; 56
     16824    push di                                   ; 57
    1680716825    cmp ah, 000h                              ; 80 fc 00
    16808     je short 0e846h                           ; 74 0f
     16826    je short 0e854h                           ; 74 16
    1680916827    cmp ah, 010h                              ; 80 fc 10
    16810     je short 0e846h                           ; 74 0a
     16828    je short 0e854h                           ; 74 11
    1681116829    push CS                                   ; 0e
    1681216830    pop DS                                    ; 1f
    1681316831    cld                                       ; fc
    16814     call 0585ah                               ; e8 18 70
    16815     popaw                                     ; 61
     16832    call 05813h                               ; e8 ca 6f
     16833    pop di                                    ; 5f
     16834    pop si                                    ; 5e
     16835    pop bp                                    ; 5d
     16836    pop bx                                    ; 5b
     16837    pop bx                                    ; 5b
     16838    pop dx                                    ; 5a
     16839    pop cx                                    ; 59
     16840    pop ax                                    ; 58
    1681616841    pop DS                                    ; 1f
    1681716842    pop ES                                    ; 07
     
    1682216847    mov bx, word [word 0001ah]                ; 8b 1e 1a 00
    1682316848    cmp bx, word [word 0001ch]                ; 3b 1e 1c 00
    16824     jne short 0e85ah                          ; 75 04
     16849    jne short 0e868h                          ; 75 04
    1682516850    sti                                       ; fb
    1682616851    nop                                       ; 90
    16827     jmp short 0e84bh                          ; eb f1
     16852    jmp short 0e859h                          ; eb f1
    1682816853    push CS                                   ; 0e
    1682916854    pop DS                                    ; 1f
    1683016855    cld                                       ; fc
    16831     call 0585ah                               ; e8 fa 6f
    16832     popaw                                     ; 61
     16856    call 05813h                               ; e8 a5 6f
     16857    pop di                                    ; 5f
     16858    pop si                                    ; 5e
     16859    pop bp                                    ; 5d
     16860    pop bx                                    ; 5b
     16861    pop bx                                    ; 5b
     16862    pop dx                                    ; 5a
     16863    pop cx                                    ; 59
     16864    pop ax                                    ; 58
    1683316865    pop DS                                    ; 1f
    1683416866    pop ES                                    ; 07
    1683516867    iret                                      ; cf
    16836     times 0x121 db 0
     16868biosorg_check_before_or_at_0E985h:           ; 0xfe879 LB 0x10e
     16869    times 0x10c db 0
    1683716870    db  'XM'
    16838 biosorg_check_0E987h:                        ; 0xfe987 LB 0x2d2
     16871biosorg_check_at_0E987h:                     ; 0xfe987 LB 0x78
    1683916872    cli                                       ; fa
    1684016873    push ax                                   ; 50
     
    1684516878    in AL, strict byte 020h                   ; e4 20
    1684616879    and AL, strict byte 002h                  ; 24 02
    16847     je short 0e9d0h                           ; 74 39
     16880    je short 0e9deh                           ; 74 47
    1684816881    in AL, strict byte 060h                   ; e4 60
    1684916882    push DS                                   ; 1e
    16850     pushaw                                    ; 60
     16883    push ax                                   ; 50
     16884    push cx                                   ; 51
     16885    push dx                                   ; 52
     16886    push bx                                   ; 53
     16887    push sp                                   ; 54
     16888    push bp                                   ; 55
     16889    push si                                   ; 56
     16890    push di                                   ; 57
    1685116891    cld                                       ; fc
    1685216892    mov AH, strict byte 04fh                  ; b4 4f
    1685316893    stc                                       ; f9
    1685416894    int 015h                                  ; cd 15
    16855     jnc short 0e9cah                          ; 73 27
     16895    jnc short 0e9d1h                          ; 73 27
    1685616896    sti                                       ; fb
    1685716897    cmp AL, strict byte 0e0h                  ; 3c e0
    16858     jne short 0e9b3h                          ; 75 0b
     16898    jne short 0e9bah                          ; 75 0b
    1685916899    db  033h, 0c0h
    1686016900    ; xor ax, ax                                ; 33 c0
    1686116901    mov ds, ax                                ; 8e d8
    1686216902    or byte [00496h], 002h                    ; 80 0e 96 04 02
    16863     jmp short 0e9cah                          ; eb 17
     16903    jmp short 0e9d1h                          ; eb 17
    1686416904    cmp AL, strict byte 0e1h                  ; 3c e1
    16865     jne short 0e9c2h                          ; 75 0b
     16905    jne short 0e9c9h                          ; 75 0b
    1686616906    db  033h, 0c0h
    1686716907    ; xor ax, ax                                ; 33 c0
    1686816908    mov ds, ax                                ; 8e d8
    1686916909    or byte [00496h], 001h                    ; 80 0e 96 04 01
    16870     jmp short 0e9cah                          ; eb 08
     16910    jmp short 0e9d1h                          ; eb 08
    1687116911    push ES                                   ; 06
    1687216912    push CS                                   ; 0e
    1687316913    pop DS                                    ; 1f
    1687416914    cld                                       ; fc
    16875     call 052f9h                               ; e8 30 69
     16915    call 052b2h                               ; e8 e2 68
    1687616916    pop ES                                    ; 07
    16877     popaw                                     ; 61
     16917    pop di                                    ; 5f
     16918    pop si                                    ; 5e
     16919    pop bp                                    ; 5d
     16920    pop bx                                    ; 5b
     16921    pop bx                                    ; 5b
     16922    pop dx                                    ; 5a
     16923    pop cx                                    ; 59
     16924    pop ax                                    ; 58
    1687816925    pop DS                                    ; 1f
    1687916926    cli                                       ; fa
    16880     call 0e034h                               ; e8 64 f6
     16927    call 0e034h                               ; e8 56 f6
    1688116928    mov AL, strict byte 0aeh                  ; b0 ae
    1688216929    out strict byte 064h, AL                  ; e6 64
    1688316930    pop ax                                    ; 58
    1688416931    iret                                      ; cf
    16885     pushaw                                    ; 60
     16932    push ax                                   ; 50
     16933    push cx                                   ; 51
     16934    push dx                                   ; 52
     16935    push bx                                   ; 53
     16936    push sp                                   ; 54
     16937    push bp                                   ; 55
     16938    push si                                   ; 56
     16939    push di                                   ; 57
    1688616940    push ES                                   ; 06
    1688716941    push DS                                   ; 1e
     
    1688916943    pop DS                                    ; 1f
    1689016944    cld                                       ; fc
    16891     call 07073h                               ; e8 94 86
     16945    call 0701ch                               ; e8 28 86
    1689216946    pop DS                                    ; 1f
    1689316947    pop ES                                    ; 07
    16894     popaw                                     ; 61
     16948    pop di                                    ; 5f
     16949    pop si                                    ; 5e
     16950    pop bp                                    ; 5d
     16951    pop bx                                    ; 5b
     16952    pop bx                                    ; 5b
     16953    pop dx                                    ; 5a
     16954    pop cx                                    ; 59
     16955    pop ax                                    ; 58
    1689516956    iret                                      ; cf
    16896     times 0x274 db 0
     16957biosorg_check_before_or_at_0EC57h:           ; 0xfe9ff LB 0x25a
     16958    times 0x258 db 0
    1689716959    db  'XM'
    16898 biosorg_check_0EC59h:                        ; 0xfec59 LB 0x2
    16899     jmp short 0ecb0h                          ; eb 55
    16900 int13_relocated:                             ; 0xfec5b LB 0x55
     16960biosorg_check_at_0EC59h:                     ; 0xfec59 LB 0x2
     16961    jmp short 0ecc4h                          ; eb 69
     16962int13_relocated:                             ; 0xfec5b LB 0x1f
    1690116963    cmp ah, 04ah                              ; 80 fc 4a
    16902     jc short 0ec71h                           ; 72 11
     16964    jc short 0ec7ch                           ; 72 1c
    1690316965    cmp ah, 04dh                              ; 80 fc 4d
    16904     jnbe short 0ec71h                         ; 77 0c
    16905     pushaw                                    ; 60
     16966    jnbe short 0ec7ch                         ; 77 17
     16967    push ax                                   ; 50
     16968    push cx                                   ; 51
     16969    push dx                                   ; 52
     16970    push bx                                   ; 53
     16971    push sp                                   ; 54
     16972    push bp                                   ; 55
     16973    push si                                   ; 56
     16974    push di                                   ; 57
    1690616975    push ES                                   ; 06
    1690716976    push DS                                   ; 1e
     
    1690916978    pop DS                                    ; 1f
    1691016979    cld                                       ; fc
    16911     push 0ece9h                               ; 68 e9 ec
    16912     jmp near 03c26h                           ; e9 b5 4f
     16980    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
     16981    jmp near 03c08h                           ; e9 8e 4f
     16982jmp_call_ret_int13_out:                      ; 0xfec7a LB 0x4a
     16983    db  0ffh
     16984    in AL, DX                                 ; ec
    1691316985    push ES                                   ; 06
    1691416986    push ax                                   ; 50
     
    1691616988    push cx                                   ; 51
    1691716989    push dx                                   ; 52
    16918     call 03bfah                               ; e8 81 4f
     16990    call 03bdch                               ; e8 58 4f
    1691916991    cmp AL, strict byte 000h                  ; 3c 00
    16920     je short 0ecabh                           ; 74 2e
    16921     call 03c10h                               ; e8 90 4f
     16992    je short 0ecbfh                           ; 74 37
     16993    call 03bf2h                               ; e8 67 4f
    1692216994    pop dx                                    ; 5a
    1692316995    push dx                                   ; 52
    1692416996    db  03ah, 0c2h
    1692516997    ; cmp al, dl                                ; 3a c2
    16926     jne short 0ec97h                          ; 75 11
     16998    jne short 0ecabh                          ; 75 1a
    1692716999    pop dx                                    ; 5a
    1692817000    pop cx                                    ; 59
     
    1693017002    pop ax                                    ; 58
    1693117003    pop ES                                    ; 07
    16932     pushaw                                    ; 60
     17004    push ax                                   ; 50
     17005    push cx                                   ; 51
     17006    push dx                                   ; 52
     17007    push bx                                   ; 53
     17008    push sp                                   ; 54
     17009    push bp                                   ; 55
     17010    push si                                   ; 56
     17011    push di                                   ; 57
    1693317012    push ES                                   ; 06
    1693417013    push DS                                   ; 1e
     
    1693617015    pop DS                                    ; 1f
    1693717016    cld                                       ; fc
    16938     push 0ece9h                               ; 68 e9 ec
    16939     jmp near 04233h                           ; e9 9c 55
     17017    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
     17018    jmp near 04215h                           ; e9 6a 55
    1694017019    and dl, 0e0h                              ; 80 e2 e0
    1694117020    db  03ah, 0c2h
    1694217021    ; cmp al, dl                                ; 3a c2
    16943     jne short 0ecabh                          ; 75 0d
     17022    jne short 0ecbfh                          ; 75 0d
    1694417023    pop dx                                    ; 5a
    1694517024    pop cx                                    ; 59
     
    1695317032    db  0feh, 0cah
    1695417033    ; dec dl                                    ; fe ca
    16955     jmp short 0ecb4h                          ; eb 09
     17034    jmp short 0ecc8h                          ; eb 09
    1695617035    pop dx                                    ; 5a
    1695717036    pop cx                                    ; 59
     
    1695917038    pop ax                                    ; 58
    1696017039    pop ES                                    ; 07
    16961 int13_noeltorito:                            ; 0xfecb0 LB 0x4
     17040int13_noeltorito:                            ; 0xfecc4 LB 0x4
    1696217041    push ax                                   ; 50
    1696317042    push cx                                   ; 51
    1696417043    push dx                                   ; 52
    1696517044    push bx                                   ; 53
    16966 int13_legacy:                                ; 0xfecb4 LB 0x14
     17045int13_legacy:                                ; 0xfecc8 LB 0x16
    1696717046    push dx                                   ; 52
    1696817047    push bp                                   ; 55
     
    1697517054    cld                                       ; fc
    1697617055    test dl, 080h                             ; f6 c2 80
    16977     jne short 0ecc8h                          ; 75 06
    16978     push 0ece9h                               ; 68 e9 ec
    16979     jmp near 0322dh                           ; e9 65 45
    16980 int13_notfloppy:                             ; 0xfecc8 LB 0x14
     17056    jne short 0ecdeh                          ; 75 08
     17057    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
     17058    jmp near 0320fh                           ; e9 31 45
     17059int13_notfloppy:                             ; 0xfecde LB 0x14
    1698117060    cmp dl, 0e0h                              ; 80 fa e0
    16982     jc short 0ecdch                           ; 72 0f
     17061    jc short 0ecf2h                           ; 72 0f
    1698317062    shr ebx, 010h                             ; 66 c1 eb 10
    1698417063    push bx                                   ; 53
    16985     call 04686h                               ; e8 b1 59
     17064    call 04668h                               ; e8 7d 59
    1698617065    pop bx                                    ; 5b
    1698717066    sal ebx, 010h                             ; 66 c1 e3 10
    16988     jmp short 0ece9h                          ; eb 0d
    16989 int13_disk:                                  ; 0xfecdc LB 0xd
     17067    jmp short 0ecffh                          ; eb 0d
     17068int13_disk:                                  ; 0xfecf2 LB 0xd
    1699017069    cmp ah, 040h                              ; 80 fc 40
    16991     jnbe short 0ece6h                         ; 77 05
    16992     call 05c3bh                               ; e8 57 6f
    16993     jmp short 0ece9h                          ; eb 03
    16994     call 06081h                               ; e8 98 73
    16995 int13_out:                                   ; 0xfece9 LB 0x4
     17070    jnbe short 0ecfch                         ; 77 05
     17071    call 05bf4h                               ; e8 fa 6e
     17072    jmp short 0ecffh                          ; eb 03
     17073    call 0603ah                               ; e8 3b 73
     17074int13_out:                                   ; 0xfecff LB 0xb
    1699617075    pop DS                                    ; 1f
    1699717076    pop ES                                    ; 07
    16998     popaw                                     ; 61
     17077    pop di                                    ; 5f
     17078    pop si                                    ; 5e
     17079    pop bp                                    ; 5d
     17080    pop bx                                    ; 5b
     17081    pop bx                                    ; 5b
     17082    pop dx                                    ; 5a
     17083    pop cx                                    ; 59
     17084    pop ax                                    ; 58
    1699917085    iret                                      ; cf
    17000 detect_parport:                              ; 0xfeced LB 0x1e
     17086detect_parport:                              ; 0xfed0a LB 0x1e
    1700117087    push dx                                   ; 52
    1700217088    inc dx                                    ; 42
     
    1701017096    in AL, DX                                 ; ec
    1701117097    cmp AL, strict byte 0aah                  ; 3c aa
    17012     jne short 0ed0ah                          ; 75 0d
     17098    jne short 0ed27h                          ; 75 0d
    1701317099    push bx                                   ; 53
    1701417100    sal bx, 1                                 ; d1 e3
     
    1701817104    inc bx                                    ; 43
    1701917105    retn                                      ; c3
    17020 detect_serial:                               ; 0xfed0b LB 0x24
     17106detect_serial:                               ; 0xfed28 LB 0x24
    1702117107    push dx                                   ; 52
    1702217108    inc dx                                    ; 42
     
    1702517111    in AL, DX                                 ; ec
    1702617112    cmp AL, strict byte 002h                  ; 3c 02
    17027     jne short 0ed2dh                          ; 75 18
     17113    jne short 0ed4ah                          ; 75 18
    1702817114    inc dx                                    ; 42
    1702917115    in AL, DX                                 ; ec
    1703017116    cmp AL, strict byte 002h                  ; 3c 02
    17031     jne short 0ed2dh                          ; 75 12
     17117    jne short 0ed4ah                          ; 75 12
    1703217118    dec dx                                    ; 4a
    1703317119    db  032h, 0c0h
     
    1704317129    pop dx                                    ; 5a
    1704417130    retn                                      ; c3
    17045 floppy_post:                                 ; 0xfed2f LB 0x87
     17131floppy_post:                                 ; 0xfed4c LB 0x8c
    1704617132    db  033h, 0c0h
    1704717133    ; xor ax, ax                                ; 33 c0
     
    1706517151    db  08ah, 0e0h
    1706617152    ; mov ah, al                                ; 8a e0
    17067     shr al, 004h                              ; c0 e8 04
    17068     je short 0ed6ah                           ; 74 04
     17153    shr al, 1                                 ; d0 e8
     17154    shr al, 1                                 ; d0 e8
     17155    shr al, 1                                 ; d0 e8
     17156    shr al, 1                                 ; d0 e8
     17157    je short 0ed8ch                           ; 74 04
    1706917158    mov BL, strict byte 007h                  ; b3 07
    17070     jmp short 0ed6ch                          ; eb 02
     17159    jmp short 0ed8eh                          ; eb 02
    1707117160    mov BL, strict byte 000h                  ; b3 00
    1707217161    db  08ah, 0c4h
    1707317162    ; mov al, ah                                ; 8a c4
    1707417163    and AL, strict byte 00fh                  ; 24 0f
    17075     je short 0ed75h                           ; 74 03
     17164    je short 0ed97h                           ; 74 03
    1707617165    or bl, 070h                               ; 80 cb 70
    1707717166    mov byte [0048fh], bl                     ; 88 1e 8f 04
     
    1709817187    mov word [0003ah], ax                     ; a3 3a 00
    1709917188    retn                                      ; c3
    17100 bcd_to_bin:                                  ; 0xfedb6 LB 0x9
    17101     sal ax, 004h                              ; c1 e0 04
    17102     shr al, 004h                              ; c0 e8 04
     17189bcd_to_bin:                                  ; 0xfedd8 LB 0xb
     17190    push cx                                   ; 51
     17191    mov CL, strict byte 004h                  ; b1 04
     17192    sal ax, CL                                ; d3 e0
     17193    shr al, CL                                ; d2 e8
     17194    pop cx                                    ; 59
    1710317195    aad 00ah                                  ; d5 0a
    1710417196    retn                                      ; c3
    17105 rtc_post:                                    ; 0xfedbf LB 0x198
     17197rtc_post:                                    ; 0xfede3 LB 0x5a
    1710617198    mov AL, strict byte 000h                  ; b0 00
    1710717199    out strict byte 070h, AL                  ; e6 70
    1710817200    in AL, strict byte 071h                   ; e4 71
    17109     call 0edb6h                               ; e8 ee ff
     17201    call 0edd8h                               ; e8 ec ff
    1711017202    test al, al                               ; 84 c0
    1711117203    db  032h, 0e4h
     
    1711817210    out strict byte 070h, AL                  ; e6 70
    1711917211    in AL, strict byte 071h                   ; e4 71
    17120     call 0edb6h                               ; e8 da ff
     17212    call 0edd8h                               ; e8 d8 ff
    1712117213    test al, al                               ; 84 c0
    17122     je short 0edebh                           ; 74 0b
     17214    je short 0ee0fh                           ; 74 0b
    1712317215    add cx, 04463h                            ; 81 c1 63 44
    1712417216    adc dx, strict byte 00004h                ; 83 d2 04
    1712517217    db  0feh, 0c8h
    1712617218    ; dec al                                    ; fe c8
    17127     jne short 0ede0h                          ; 75 f5
     17219    jne short 0ee04h                          ; 75 f5
    1712817220    mov AL, strict byte 004h                  ; b0 04
    1712917221    out strict byte 070h, AL                  ; e6 70
    1713017222    in AL, strict byte 071h                   ; e4 71
    17131     call 0edb6h                               ; e8 c2 ff
     17223    call 0edd8h                               ; e8 c0 ff
    1713217224    test al, al                               ; 84 c0
    17133     je short 0ee0ah                           ; 74 12
     17225    je short 0ee28h                           ; 74 0c
    1713417226    add cx, 0076ch                            ; 81 c1 6c 07
    1713517227    adc dx, 00100h                            ; 81 d2 00 01
    1713617228    db  0feh, 0c8h
    1713717229    ; dec al                                    ; fe c8
    17138     jne short 0edf8h                          ; 75 f4
    17139     mov ax, 0046ch                            ; b8 6c 04
    17140     mov dx, 0046eh                            ; ba 6e 04
     17230    jne short 0ee1ch                          ; 75 f4
    1714117231    db  08ah, 0cdh
    1714217232    ; mov cl, ch                                ; 8a cd
     
    1715117241    mov byte [00470h], dh                     ; 88 36 70 04
    1715217242    retn                                      ; c3
    17153     times 0x136 db 0
     17243biosorg_check_before_or_at_0EF55h:           ; 0xfee3d LB 0x11a
     17244    times 0x118 db 0
    1715417245    db  'XM'
    17155 int0e_handler:                               ; 0xfef57 LB 0x70
     17246int0e_handler:                               ; 0xfef57 LB 0x3b
    1715617247    push ax                                   ; 50
    1715717248    push dx                                   ; 52
     
    1718617277    pop ax                                    ; 58
    1718717278    iret                                      ; cf
     17279biosorg_check_before_or_at_0EFC5h:           ; 0xfef92 LB 0x35
    1718817280    times 0x33 db 0
    1718917281    db  'XM'
     
    1719717289    db  0f6h
    1719817290    invd                                      ; 0f 08
    17199 biosorg_check_0EFD2h:                        ; 0xfefd2 LB 0x2
     17291biosorg_check_at_0EFD2h:                     ; 0xfefd2 LB 0x2
    1720017292    jmp short 0efd4h                          ; eb 00
    17201 int17_handler:                               ; 0xfefd4 LB 0xd
     17293int17_handler:                               ; 0xfefd4 LB 0x1b
    1720217294    push DS                                   ; 1e
    1720317295    push ES                                   ; 06
    17204     pushaw                                    ; 60
     17296    push ax                                   ; 50
     17297    push cx                                   ; 51
     17298    push dx                                   ; 52
     17299    push bx                                   ; 53
     17300    push sp                                   ; 54
     17301    push bp                                   ; 55
     17302    push si                                   ; 56
     17303    push di                                   ; 57
    1720517304    push CS                                   ; 0e
    1720617305    pop DS                                    ; 1f
    1720717306    cld                                       ; fc
    17208     call 07a20h                               ; e8 43 8a
    17209     popaw                                     ; 61
     17307    call 079c9h                               ; e8 e5 89
     17308    pop di                                    ; 5f
     17309    pop si                                    ; 5e
     17310    pop bp                                    ; 5d
     17311    pop bx                                    ; 5b
     17312    pop bx                                    ; 5b
     17313    pop dx                                    ; 5a
     17314    pop cx                                    ; 59
     17315    pop ax                                    ; 58
    1721017316    pop ES                                    ; 07
    1721117317    pop DS                                    ; 1f
    1721217318    iret                                      ; cf
    17213 _pmode_IDT:                                  ; 0xfefe1 LB 0x6
     17319_pmode_IDT:                                  ; 0xfefef LB 0x6
    1721417320    db  000h, 000h, 000h, 000h, 00fh, 000h
    17215 _rmode_IDT:                                  ; 0xfefe7 LB 0x6
     17321_rmode_IDT:                                  ; 0xfeff5 LB 0x6
    1721617322    db  0ffh, 003h, 000h, 000h, 000h, 000h
    17217 int1c_handler:                               ; 0xfefed LB 0x58
     17323int1c_handler:                               ; 0xfeffb LB 0x1
    1721817324    iret                                      ; cf
    17219     times 0x55 db 0
     17325biosorg_check_before_or_at_0F043h:           ; 0xfeffc LB 0x49
     17326    times 0x47 db 0
    1722017327    db  'XM'
    17221 biosorg_check_0F045h:                        ; 0xff045 LB 0x20
     17328biosorg_check_at_0F045h:                     ; 0xff045 LB 0x1
    1722217329    iret                                      ; cf
     17330biosorg_check_before_or_at_0F063h:           ; 0xff046 LB 0x1f
    1722317331    times 0x1d db 0
    1722417332    db  'XM'
    17225 int10_handler:                               ; 0xff065 LB 0x3f
     17333int10_handler:                               ; 0xff065 LB 0x1
    1722617334    iret                                      ; cf
     17335biosorg_check_before_or_at_0F0A2h:           ; 0xff066 LB 0x3e
    1722717336    times 0x3c db 0
    1722817337    db  'XM'
    17229 biosorg_check_0F0A4h:                        ; 0xff0a4 LB 0x8
     17338biosorg_check_at_0F0A4h:                     ; 0xff0a4 LB 0x8
    1723017339    push CS                                   ; 0e
    1723117340    pop DS                                    ; 1f
     
    1723417343    hlt                                       ; f4
    1723517344    iret                                      ; cf
    17236 int19_relocated:                             ; 0xff0ac LB 0x91
     17345int19_relocated:                             ; 0xff0ac LB 0x95
    1723717346    db  08bh, 0ech
    1723817347    ; mov bp, sp                                ; 8b ec
     
    1725417363    mov ax, strict word 00001h                ; b8 01 00
    1725517364    push ax                                   ; 50
    17256     call 04d4eh                               ; e8 7e 5c
     17365    call 04d07h                               ; e8 37 5c
    1725717366    inc sp                                    ; 44
    1725817367    inc sp                                    ; 44
    1725917368    test ax, ax                               ; 85 c0
    17260     jne short 0f0feh                          ; 75 28
     17369    jne short 0f0fdh                          ; 75 27
    1726117370    mov ax, strict word 00002h                ; b8 02 00
    1726217371    push ax                                   ; 50
    17263     call 04d4eh                               ; e8 71 5c
     17372    call 04d07h                               ; e8 2a 5c
    1726417373    inc sp                                    ; 44
    1726517374    inc sp                                    ; 44
    1726617375    test ax, ax                               ; 85 c0
    17267     jne short 0f0feh                          ; 75 1b
     17376    jne short 0f0fdh                          ; 75 1a
    1726817377    mov ax, strict word 00003h                ; b8 03 00
    17269     push strict byte 00003h                   ; 6a 03
    17270     call 04d4eh                               ; e8 63 5c
     17378    push ax                                   ; 50
     17379    call 04d07h                               ; e8 1d 5c
    1727117380    inc sp                                    ; 44
    1727217381    inc sp                                    ; 44
    1727317382    test ax, ax                               ; 85 c0
    17274     jne short 0f0feh                          ; 75 0d
     17383    jne short 0f0fdh                          ; 75 0d
    1727517384    mov ax, strict word 00004h                ; b8 04 00
    1727617385    push ax                                   ; 50
    17277     call 04d4eh                               ; e8 56 5c
     17386    call 04d07h                               ; e8 10 5c
    1727817387    inc sp                                    ; 44
    1727917388    inc sp                                    ; 44
    1728017389    test ax, ax                               ; 85 c0
    17281     je short 0f0a4h                           ; 74 a6
     17390    je short 0f0a4h                           ; 74 a7
    1728217391    mov word [byte bp+000h], ax               ; 89 46 00
    17283     sal ax, 004h                              ; c1 e0 04
     17392    sal ax, 1                                 ; d1 e0
     17393    sal ax, 1                                 ; d1 e0
     17394    sal ax, 1                                 ; d1 e0
     17395    sal ax, 1                                 ; d1 e0
    1728417396    mov word [bp+002h], ax                    ; 89 46 02
    1728517397    mov ax, word [byte bp+000h]               ; 8b 46 00
     
    1730817420    pop eax                                   ; 66 58
    1730917421    retn                                      ; c3
    17310 pcibios_init_iomem_bases:                    ; 0xff13d LB 0x16
     17422pcibios_init_iomem_bases:                    ; 0xff141 LB 0x16
    1731117423    push bp                                   ; 55
    1731217424    db  08bh, 0ech
     
    1731917431    push ax                                   ; 50
    1732017432    mov bx, strict word 00008h                ; bb 08 00
    17321 pci_init_io_loop1:                           ; 0xff153 LB 0xe
     17433pci_init_io_loop1:                           ; 0xff157 LB 0xe
    1732217434    mov DL, strict byte 000h                  ; b2 00
    17323     call 0f122h                               ; e8 ca ff
     17435    call 0f126h                               ; e8 ca ff
    1732417436    mov dx, 00cfch                            ; ba fc 0c
    1732517437    in ax, DX                                 ; ed
    1732617438    cmp ax, strict byte 0ffffh                ; 83 f8 ff
    17327     je short 0f19ah                           ; 74 39
    17328 enable_iomem_space:                          ; 0xff161 LB 0x39
     17439    je short 0f19eh                           ; 74 39
     17440enable_iomem_space:                          ; 0xff165 LB 0x39
    1732917441    mov DL, strict byte 004h                  ; b2 04
    17330     call 0f122h                               ; e8 bc ff
     17442    call 0f126h                               ; e8 bc ff
    1733117443    mov dx, 00cfch                            ; ba fc 0c
    1733217444    in AL, DX                                 ; ec
     
    1733417446    out DX, AL                                ; ee
    1733517447    mov DL, strict byte 000h                  ; b2 00
    17336     call 0f122h                               ; e8 b0 ff
     17448    call 0f126h                               ; e8 b0 ff
    1733717449    mov dx, 00cfch                            ; ba fc 0c
    1733817450    in eax, DX                                ; 66 ed
    1733917451    cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
    17340     jne short 0f19ah                          ; 75 1b
     17452    jne short 0f19eh                          ; 75 1b
    1734117453    mov DL, strict byte 010h                  ; b2 10
    17342     call 0f122h                               ; e8 9e ff
     17454    call 0f126h                               ; e8 9e ff
    1734317455    mov dx, 00cfch                            ; ba fc 0c
    1734417456    in ax, DX                                 ; ed
     
    1735417466    add dx, strict byte 00018h                ; 83 c2 18
    1735517467    in eax, DX                                ; 66 ed
    17356 next_pci_dev:                                ; 0xff19a LB 0xf
     17468next_pci_dev:                                ; 0xff19e LB 0xf
    1735717469    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    1735817470    inc bx                                    ; 43
    1735917471    cmp bx, 00100h                            ; 81 fb 00 01
    17360     jne short 0f153h                          ; 75 ae
     17472    jne short 0f157h                          ; 75 ae
    1736117473    db  08bh, 0e5h
    1736217474    ; mov sp, bp                                ; 8b e5
    1736317475    pop bp                                    ; 5d
    1736417476    retn                                      ; c3
    17365 pcibios_init_set_elcr:                       ; 0xff1a9 LB 0xc
     17477pcibios_init_set_elcr:                       ; 0xff1ad LB 0xc
    1736617478    push ax                                   ; 50
    1736717479    push cx                                   ; 51
    1736817480    mov dx, 004d0h                            ; ba d0 04
    1736917481    test AL, strict byte 008h                 ; a8 08
    17370     je short 0f1b5h                           ; 74 03
     17482    je short 0f1b9h                           ; 74 03
    1737117483    inc dx                                    ; 42
    1737217484    and AL, strict byte 007h                  ; 24 07
    17373 is_master_pic:                               ; 0xff1b5 LB 0xd
     17485is_master_pic:                               ; 0xff1b9 LB 0xd
    1737417486    db  08ah, 0c8h
    1737517487    ; mov cl, al                                ; 8a c8
     
    1738317495    pop ax                                    ; 58
    1738417496    retn                                      ; c3
    17385 pcibios_init_irqs:                           ; 0xff1c2 LB 0x53
     17497pcibios_init_irqs:                           ; 0xff1c6 LB 0x53
    1738617498    push DS                                   ; 1e
    1738717499    push bp                                   ; 55
     
    1739717509    mov bl, byte [si+009h]                    ; 8a 5c 09
    1739817510    mov DL, strict byte 000h                  ; b2 00
    17399     call 0f122h                               ; e8 43 ff
     17511    call 0f126h                               ; e8 43 ff
    1740017512    mov dx, 00cfch                            ; ba fc 0c
    1740117513    in eax, DX                                ; 66 ed
    1740217514    cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
    17403     jne near 0f292h                           ; 0f 85 a6 00
     17515    jne near 0f296h                           ; 0f 85 a6 00
    1740417516    mov dl, byte [si+022h]                    ; 8a 54 22
    17405     call 0f122h                               ; e8 30 ff
     17517    call 0f126h                               ; e8 30 ff
    1740617518    push bx                                   ; 53
    1740717519    mov dx, 00cfch                            ; ba fc 0c
     
    1741817530    db  08bh, 0ech
    1741917531    ; mov bp, sp                                ; 8b ec
    17420     mov ax, 0f11eh                            ; b8 1e f1
     17532    mov ax, 0f122h                            ; b8 22 f1
    1742117533    push ax                                   ; 50
    1742217534    db  033h, 0c0h
    1742317535    ; xor ax, ax                                ; 33 c0
    1742417536    push ax                                   ; 50
    17425 pci_init_irq_loop1:                          ; 0xff215 LB 0x5
     17537pci_init_irq_loop1:                          ; 0xff219 LB 0x5
    1742617538    mov bh, byte [si]                         ; 8a 3c
    1742717539    mov bl, byte [si+001h]                    ; 8a 5c 01
    17428 pci_init_irq_loop2:                          ; 0xff21a LB 0x15
     17540pci_init_irq_loop2:                          ; 0xff21e LB 0x15
    1742917541    mov DL, strict byte 000h                  ; b2 00
    17430     call 0f122h                               ; e8 03 ff
     17542    call 0f126h                               ; e8 03 ff
    1743117543    mov dx, 00cfch                            ; ba fc 0c
    1743217544    in ax, DX                                 ; ed
    1743317545    cmp ax, strict byte 0ffffh                ; 83 f8 ff
    17434     jne short 0f22fh                          ; 75 07
     17546    jne short 0f233h                          ; 75 07
    1743517547    test bl, 007h                             ; f6 c3 07
    17436     je short 0f286h                           ; 74 59
    17437     jmp short 0f27ch                          ; eb 4d
    17438 pci_test_int_pin:                            ; 0xff22f LB 0x3c
     17548    je short 0f28ah                           ; 74 59
     17549    jmp short 0f280h                          ; eb 4d
     17550pci_test_int_pin:                            ; 0xff233 LB 0x3c
    1743917551    mov DL, strict byte 03ch                  ; b2 3c
    17440     call 0f122h                               ; e8 ee fe
     17552    call 0f126h                               ; e8 ee fe
    1744117553    mov dx, 00cfdh                            ; ba fd 0c
    1744217554    in AL, DX                                 ; ec
    1744317555    and AL, strict byte 007h                  ; 24 07
    17444     je short 0f27ch                           ; 74 40
     17556    je short 0f280h                           ; 74 40
    1744517557    db  0feh, 0c8h
    1744617558    ; dec al                                    ; fe c8
     
    1745617568    ; mov dl, al                                ; 8a d0
    1745717569    mov bx, word [byte bp+000h]               ; 8b 5e 00
    17458     call 0f122h                               ; e8 d0 fe
     17570    call 0f126h                               ; e8 d0 fe
    1745917571    mov dx, 00cfch                            ; ba fc 0c
    1746017572    and AL, strict byte 003h                  ; 24 03
     
    1746317575    in AL, DX                                 ; ec
    1746417576    cmp AL, strict byte 080h                  ; 3c 80
    17465     jc short 0f26bh                           ; 72 0d
     17577    jc short 0f26fh                           ; 72 0d
    1746617578    mov bx, word [bp-002h]                    ; 8b 5e fe
    1746717579    mov al, byte [bx]                         ; 8a 07
     
    1746917581    inc bx                                    ; 43
    1747017582    mov word [bp-002h], bx                    ; 89 5e fe
    17471     call 0f1a9h                               ; e8 3e ff
    17472 pirq_found:                                  ; 0xff26b LB 0x11
     17583    call 0f1adh                               ; e8 3e ff
     17584pirq_found:                                  ; 0xff26f LB 0x11
    1747317585    mov bh, byte [si]                         ; 8a 3c
    1747417586    mov bl, byte [si+001h]                    ; 8a 5c 01
    1747517587    add bl, byte [bp-003h]                    ; 02 5e fd
    1747617588    mov DL, strict byte 03ch                  ; b2 3c
    17477     call 0f122h                               ; e8 aa fe
     17589    call 0f126h                               ; e8 aa fe
    1747817590    mov dx, 00cfch                            ; ba fc 0c
    1747917591    out DX, AL                                ; ee
    17480 next_pci_func:                               ; 0xff27c LB 0xa
     17592next_pci_func:                               ; 0xff280 LB 0xa
    1748117593    inc byte [bp-003h]                        ; fe 46 fd
    1748217594    db  0feh, 0c3h
    1748317595    ; inc bl                                    ; fe c3
    1748417596    test bl, 007h                             ; f6 c3 07
    17485     jne short 0f21ah                          ; 75 94
    17486 next_pir_entry:                              ; 0xff286 LB 0xc
     17597    jne short 0f21eh                          ; 75 94
     17598next_pir_entry:                              ; 0xff28a LB 0xc
    1748717599    add si, strict byte 00010h                ; 83 c6 10
    1748817600    mov byte [bp-003h], 000h                  ; c6 46 fd 00
    17489     loop 0f215h                               ; e2 86
     17601    loop 0f219h                               ; e2 86
    1749017602    db  08bh, 0e5h
    1749117603    ; mov sp, bp                                ; 8b e5
    1749217604    pop bx                                    ; 5b
    17493 pci_init_end:                                ; 0xff292 LB 0x2e
     17605pci_init_end:                                ; 0xff296 LB 0x2a
    1749417606    pop bp                                    ; 5d
    1749517607    pop DS                                    ; 1f
    1749617608    retn                                      ; c3
    17497     db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h
    17498     db  001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h
    17499     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
     17609    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h, 001h, 000h, 002h, 000h
     17610    db  008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     17611    db  000h, 000h, 000h, 000h, 000h, 000h, 031h
    1750017612_pci_routing_table:                          ; 0xff2c0 LB 0x1e0
    1750117613    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
     
    1752917641    db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
    1753017642    db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
    17531 _pci_routing_table_size:                     ; 0xff4a0 LB 0x3a1
     17643_pci_routing_table_size:                     ; 0xff4a0 LB 0x2
    1753217644    loopne 0f4a3h                             ; e0 01
     17645biosorg_check_before_or_at_0F83Fh:           ; 0xff4a2 LB 0x39f
    1753317646    times 0x39d db 0
    1753417647    db  'XM'
     
    1754917662    pop DS                                    ; 1f
    1755017663    iret                                      ; cf
    17551 int15_handler:                               ; 0xff859 LB 0x2e
     17664int15_handler:                               ; 0xff859 LB 0x3c
    1755217665    pushfw                                    ; 9c
    1755317666    push DS                                   ; 1e
     
    1755717670    cld                                       ; fc
    1755817671    cmp ah, 086h                              ; 80 fc 86
    17559     je short 0f88ch                           ; 74 28
     17672    je short 0f89ah                           ; 74 36
    1756017673    cmp ah, 0e8h                              ; 80 fc e8
    17561     je short 0f88ch                           ; 74 23
     17674    je short 0f89ah                           ; 74 31
    1756217675    cmp ah, 0d0h                              ; 80 fc d0
    17563     je short 0f88ch                           ; 74 1e
    17564     pushaw                                    ; 60
     17676    je short 0f89ah                           ; 74 2c
     17677    push ax                                   ; 50
     17678    push cx                                   ; 51
     17679    push dx                                   ; 52
     17680    push bx                                   ; 53
     17681    push sp                                   ; 54
     17682    push bp                                   ; 55
     17683    push si                                   ; 56
     17684    push di                                   ; 57
    1756517685    cmp ah, 053h                              ; 80 fc 53
    17566     je short 0f882h                           ; 74 0e
     17686    je short 0f890h                           ; 74 15
    1756717687    cmp ah, 0c2h                              ; 80 fc c2
    17568     je short 0f887h                           ; 74 0e
    17569     call 067ceh                               ; e8 52 6f
    17570     popaw                                     ; 61
     17688    je short 0f895h                           ; 74 15
     17689    call 06777h                               ; e8 f4 6e
     17690    pop di                                    ; 5f
     17691    pop si                                    ; 5e
     17692    pop bp                                    ; 5d
     17693    pop bx                                    ; 5b
     17694    pop bx                                    ; 5b
     17695    pop dx                                    ; 5a
     17696    pop cx                                    ; 59
     17697    pop ax                                    ; 58
    1757117698    pop ES                                    ; 07
    1757217699    pop DS                                    ; 1f
    1757317700    popfw                                     ; 9d
    17574     jmp short 0f893h                          ; eb 11
    17575     call 09c7fh                               ; e8 fa a3
    17576     jmp short 0f87ch                          ; eb f5
    17577 int15_handler_mouse:                         ; 0xff887 LB 0x5
    17578     call 07680h                               ; e8 f6 7d
    17579     jmp short 0f87ch                          ; eb f0
    17580 int15_handler32:                             ; 0xff88c LB 0x7
    17581     pushaw                                    ; 60
    17582     call 06ca4h                               ; e8 14 74
    17583     popaw                                     ; 61
    17584     jmp short 0f87dh                          ; eb ea
    17585 iret_modify_cf:                              ; 0xff893 LB 0x14
    17586     jc short 0f89eh                           ; 72 09
     17701    jmp short 0f8afh                          ; eb 1f
     17702    call 09c2ah                               ; e8 97 a3
     17703    jmp short 0f883h                          ; eb ee
     17704int15_handler_mouse:                         ; 0xff895 LB 0x5
     17705    call 07629h                               ; e8 91 7d
     17706    jmp short 0f883h                          ; eb e9
     17707int15_handler32:                             ; 0xff89a LB 0x15
     17708    push ax                                   ; 50
     17709    push cx                                   ; 51
     17710    push dx                                   ; 52
     17711    push bx                                   ; 53
     17712    push sp                                   ; 54
     17713    push bp                                   ; 55
     17714    push si                                   ; 56
     17715    push di                                   ; 57
     17716    call 06c4dh                               ; e8 a8 73
     17717    pop di                                    ; 5f
     17718    pop si                                    ; 5e
     17719    pop bp                                    ; 5d
     17720    pop bx                                    ; 5b
     17721    pop bx                                    ; 5b
     17722    pop dx                                    ; 5a
     17723    pop cx                                    ; 59
     17724    pop ax                                    ; 58
     17725    jmp short 0f88bh                          ; eb dc
     17726iret_modify_cf:                              ; 0xff8af LB 0x14
     17727    jc short 0f8bah                           ; 72 09
    1758717728    push bp                                   ; 55
    1758817729    db  08bh, 0ech
     
    1759717738    pop bp                                    ; 5d
    1759817739    iret                                      ; cf
    17599 int74_handler:                               ; 0xff8a7 LB 0x2e
     17740int74_handler:                               ; 0xff8c3 LB 0x3a
    1760017741    sti                                       ; fb
    17601     pushaw                                    ; 60
     17742    push ax                                   ; 50
     17743    push cx                                   ; 51
     17744    push dx                                   ; 52
     17745    push bx                                   ; 53
     17746    push sp                                   ; 54
     17747    push bp                                   ; 55
     17748    push si                                   ; 56
     17749    push di                                   ; 57
    1760217750    push ES                                   ; 06
    1760317751    push DS                                   ; 1e
    17604     push strict byte 00000h                   ; 6a 00
    17605     push strict byte 00000h                   ; 6a 00
    17606     push strict byte 00000h                   ; 6a 00
    17607     push strict byte 00000h                   ; 6a 00
    17608     push strict byte 00000h                   ; 6a 00
     17752    db  033h, 0c0h
     17753    ; xor ax, ax                                ; 33 c0
     17754    push ax                                   ; 50
     17755    push ax                                   ; 50
     17756    push ax                                   ; 50
     17757    push ax                                   ; 50
     17758    push ax                                   ; 50
    1760917759    push CS                                   ; 0e
    1761017760    pop DS                                    ; 1f
    1761117761    cld                                       ; fc
    17612     call 075aeh                               ; e8 f3 7c
     17762    call 07557h                               ; e8 7c 7c
    1761317763    pop cx                                    ; 59
    17614     jcxz 0f8cah                               ; e3 0c
    17615     push strict byte 00000h                   ; 6a 00
     17764    jcxz 0f8ebh                               ; e3 0d
     17765    db  033h, 0c0h
     17766    ; xor ax, ax                                ; 33 c0
     17767    push ax                                   ; 50
    1761617768    pop DS                                    ; 1f
    1761717769    push word [0040eh]                        ; ff 36 0e 04
     
    1761917771    call far [word 00022h]                    ; ff 1e 22 00
    1762017772    cli                                       ; fa
    17621     call 0e030h                               ; e8 62 e7
     17773    call 0e030h                               ; e8 41 e7
    1762217774    add sp, strict byte 00008h                ; 83 c4 08
    1762317775    pop DS                                    ; 1f
    1762417776    pop ES                                    ; 07
    17625     popaw                                     ; 61
     17777    pop di                                    ; 5f
     17778    pop si                                    ; 5e
     17779    pop bp                                    ; 5d
     17780    pop bx                                    ; 5b
     17781    pop bx                                    ; 5b
     17782    pop dx                                    ; 5a
     17783    pop cx                                    ; 59
     17784    pop ax                                    ; 58
    1762617785    iret                                      ; cf
    17627 int76_handler:                               ; 0xff8d5 LB 0x199
     17786int76_handler:                               ; 0xff8fd LB 0x12
    1762817787    push ax                                   ; 50
    1762917788    push DS                                   ; 1e
     
    1763117790    mov ds, ax                                ; 8e d8
    1763217791    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    17633     call 0e030h                               ; e8 4c e7
     17792    call 0e030h                               ; e8 24 e7
    1763417793    pop DS                                    ; 1f
    1763517794    pop ax                                    ; 58
    1763617795    iret                                      ; cf
    17637     times 0x185 db 0
     17796int70_handler:                               ; 0xff90f LB 0x2d
     17797    push ES                                   ; 06
     17798    push DS                                   ; 1e
     17799    push ax                                   ; 50
     17800    push cx                                   ; 51
     17801    push dx                                   ; 52
     17802    push bx                                   ; 53
     17803    push sp                                   ; 54
     17804    push bp                                   ; 55
     17805    push si                                   ; 56
     17806    push di                                   ; 57
     17807    push CS                                   ; 0e
     17808    pop DS                                    ; 1f
     17809    cld                                       ; fc
     17810    call 071f4h                               ; e8 d5 78
     17811    pop di                                    ; 5f
     17812    pop si                                    ; 5e
     17813    pop bp                                    ; 5d
     17814    pop bx                                    ; 5b
     17815    pop bx                                    ; 5b
     17816    pop dx                                    ; 5a
     17817    pop cx                                    ; 59
     17818    pop ax                                    ; 58
     17819    pop DS                                    ; 1f
     17820    pop ES                                    ; 07
     17821    iret                                      ; cf
     17822    jnbe short 0f931h                         ; 77 05
     17823    cmp ax, 000b0h                            ; 3d b0 00
     17824    jc short 0f939h                           ; 72 08
     17825    db  033h, 0d2h
     17826    ; xor dx, dx                                ; 33 d2
     17827    db  033h, 0c0h
     17828    ; xor ax, ax                                ; 33 c0
     17829    inc byte [word 00070h]                    ; fe 06 70 00
     17830    jmp near 0fec1h                           ; e9 85 05
     17831biosorg_check_before_or_at_0FA6Ch:           ; 0xff93c LB 0x132
     17832    times 0x130 db 0
    1763817833    db  'XM'
    1763917834font8x8:                                     ; 0xffa6e LB 0x400
     
    1770217897    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1770317898    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    17704 biosorg_check_0FE6Eh:                        ; 0xffe6e LB 0xd
     17899biosorg_check_at_0FE6Eh:                     ; 0xffe6e LB 0x1b
    1770517900    push ES                                   ; 06
    1770617901    push DS                                   ; 1e
    17707     pushaw                                    ; 60
     17902    push ax                                   ; 50
     17903    push cx                                   ; 51
     17904    push dx                                   ; 52
     17905    push bx                                   ; 53
     17906    push sp                                   ; 54
     17907    push bp                                   ; 55
     17908    push si                                   ; 56
     17909    push di                                   ; 57
    1770817910    push CS                                   ; 0e
    1770917911    pop DS                                    ; 1f
    1771017912    cld                                       ; fc
    17711     call 0730ah                               ; e8 93 74
    17712     popaw                                     ; 61
     17913    call 072b3h                               ; e8 35 74
     17914    pop di                                    ; 5f
     17915    pop si                                    ; 5e
     17916    pop bp                                    ; 5d
     17917    pop bx                                    ; 5b
     17918    pop bx                                    ; 5b
     17919    pop dx                                    ; 5a
     17920    pop cx                                    ; 59
     17921    pop ax                                    ; 58
    1771317922    pop DS                                    ; 1f
    1771417923    pop ES                                    ; 07
    1771517924    iret                                      ; cf
    17716 int70_handler:                               ; 0xffe7b LB 0x2a
    17717     push ES                                   ; 06
    17718     push DS                                   ; 1e
    17719     pushaw                                    ; 60
    17720     push CS                                   ; 0e
    17721     pop DS                                    ; 1f
    17722     cld                                       ; fc
    17723     call 0724bh                               ; e8 c7 73
    17724     popaw                                     ; 61
    17725     pop DS                                    ; 1f
    17726     pop ES                                    ; 07
    17727     iret                                      ; cf
    17728     times 0x1b db 0
     17925biosorg_check_before_or_at_0FEA3h:           ; 0xffe89 LB 0x1c
     17926    times 0x1a db 0
    1772917927    db  'XM'
    17730 int08_handler:                               ; 0xffea5 LB 0x4e
     17928int08_handler:                               ; 0xffea5 LB 0x42
    1773117929    sti                                       ; fb
    1773217930    push ax                                   ; 50
    17733     push bx                                   ; 53
    1773417931    push DS                                   ; 1e
    1773517932    push dx                                   ; 52
     
    1773717934    mov ds, ax                                ; 8e d8
    1773817935    mov ax, word [0006ch]                     ; a1 6c 00
    17739     mov bx, word [word 0006eh]                ; 8b 1e 6e 00
    17740     add ax, strict byte 00001h                ; 83 c0 01
    17741     adc bx, strict byte 00000h                ; 83 d3 00
    17742     cmp bx, strict byte 00018h                ; 83 fb 18
    17743     jc short 0fed0h                           ; 72 0f
    17744     jnbe short 0fec8h                         ; 77 05
    17745     cmp ax, 000b0h                            ; 3d b0 00
    17746     jc short 0fed0h                           ; 72 08
    17747     db  033h, 0c0h
    17748     ; xor ax, ax                                ; 33 c0
    17749     db  033h, 0dbh
    17750     ; xor bx, bx                                ; 33 db
    17751     inc byte [word 00070h]                    ; fe 06 70 00
     17936    mov dx, word [word 0006eh]                ; 8b 16 6e 00
     17937    inc ax                                    ; 40
     17938    jne short 0feb9h                          ; 75 01
     17939    inc dx                                    ; 42
     17940    cmp dx, strict byte 00018h                ; 83 fa 18
     17941    jc short 0fec1h                           ; 72 03
     17942    jmp near 0f92ah                           ; e9 69 fa
    1775217943    mov word [0006ch], ax                     ; a3 6c 00
    17753     mov word [word 0006eh], bx                ; 89 1e 6e 00
     17944    mov word [word 0006eh], dx                ; 89 16 6e 00
    1775417945    mov AL, byte [00040h]                     ; a0 40 00
    1775517946    db  00ah, 0c0h
    1775617947    ; or al, al                                 ; 0a c0
    17757     je short 0feech                           ; 74 0e
     17948    je short 0feddh                           ; 74 0e
    1775817949    db  0feh, 0c8h
    1775917950    ; dec al                                    ; fe c8
    1776017951    mov byte [00040h], AL                     ; a2 40 00
    17761     jne short 0feech                          ; 75 07
     17952    jne short 0feddh                          ; 75 07
    1776217953    mov dx, 003f2h                            ; ba f2 03
    1776317954    in AL, DX                                 ; ec
     
    1776617957    int 01ch                                  ; cd 1c
    1776717958    cli                                       ; fa
    17768     call 05734h                               ; e8 42 58
    17769     dec bp                                    ; 4d
    17770 biosorg_check_0FEF3h:                        ; 0xffef3 LB 0xd
     17959    call 0e034h                               ; e8 51 e1
     17960    pop dx                                    ; 5a
    1777117961    pop DS                                    ; 1f
    17772     pop bx                                    ; 5b
    1777317962    pop ax                                    ; 58
    1777417963    iret                                      ; cf
    17775     add byte [bx+si], al                      ; 00 00
    17776     add byte [bx+si], al                      ; 00 00
    17777     add byte [bx+si], al                      ; 00 00
    17778     add byte [bx+si+04dh], bl                 ; 00 58 4d
    17779 biosorg_check_0FF00h:                        ; 0xfff00 LB 0x53
     17964biosorg_check_before_or_at_0FEF1h:           ; 0xffee7 LB 0xc
     17965    times 0xa db 0
     17966    db  'XM'
     17967biosorg_check_at_0FEF3h:                     ; 0xffef3 LB 0xd
     17968    times 0xb db 0
     17969    db  'XM'
     17970biosorg_check_at_0FF00h:                     ; 0xfff00 LB 0x19
    1778017971    dec di                                    ; 4f
    1778117972    jc short 0ff64h                           ; 72 61
     
    1779317984    dec di                                    ; 4f
    1779417985    push bx                                   ; 53
     17986biosorg_check_before_or_at_0FF51h:           ; 0xfff19 LB 0x3a
    1779517987    times 0x38 db 0
    1779617988    db  'XM'
    1779717989dummy_iret:                                  ; 0xfff53 LB 0x1
    1779817990    iret                                      ; cf
    17799 biosorg_check_0FF54h:                        ; 0xfff54 LB 0x9c
     17991biosorg_check_at_0FF54h:                     ; 0xfff54 LB 0x2c
    1780017992    iret                                      ; cf
    1780117993    mov ax, ax                                ; 89 c0
     
    1782518017    add byte [bx+si], al                      ; 00 00
    1782618018    add byte [di], ah                         ; 00 25
    17827     times 0x6f db 0
     18019    times 0x1 db 0
     18020biosorg_check_before_or_at_0FFEEh:           ; 0xfff80 LB 0x70
     18021    times 0x6e db 0
    1782818022    db  'XM'
    1782918023cpu_reset:                                   ; 0xffff0 LB 0x10
    1783018024    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17831     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0eeh
     18025    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 096h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum

    r60422 r60443  
    1 a9ff9158bb6e580db7ea0148ae4309f9 *VBoxPcBios8086.rom
     12d2a8ffc155d7c59ca2ef255d33488c0 *VBoxPcBios8086.rom
Note: See TracChangeset for help on using the changeset viewer.

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