VirtualBox

Ignore:
Timestamp:
Jul 21, 2016 3:34:39 PM (8 years ago)
Author:
vboxsync
Message:

5.1.2 (and convert two LogRel() statements back to Log() in VBoxSeamless.cpp)

File:
1 edited

Legend:

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

    r62178 r62406  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 082h, 081h, 01dh, 091h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0c8h, 081h, 063h, 091h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992     db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0bdh, 03bh, 0bdh, 03bh
     992    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 003h, 03ch, 003h, 03ch
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
    995     db  0b0h, 07fh, 099h, 080h, 0ebh, 08fh, 095h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  0f6h, 07fh, 0dfh, 080h, 031h, 090h, 0dbh, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11161116section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
    11171117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
    1118     db  'VirtualBox 5.1.0', 000h, 000h
     1118    db  'VirtualBox 5.1.2', 000h, 000h
    11191119_bios_prefix_string:                         ; 0xf0da0 LB 0x8
    11201120    db  'BIOS: ', 000h, 000h
     
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d98 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8dd8 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x52
    11941194    push bp                                   ; 55
     
    14501450    int 010h                                  ; cd 10
    14511451    jmp short 017c3h                          ; eb 03
    1452     call 07b54h                               ; e8 91 63
     1452    call 07b9ah                               ; e8 d7 63
    14531453    mov sp, bp                                ; 89 ec
    14541454    pop bp                                    ; 5d
     
    15961596    mov bx, strict word 0000ah                ; bb 0a 00
    15971597    xor cx, cx                                ; 31 c9
    1598     call 0a030h                               ; e8 53 87
     1598    call 0a070h                               ; e8 93 87
    15991599    mov word [bp-008h], ax                    ; 89 46 f8
    16001600    mov cx, dx                                ; 89 d1
     
    18331833    mov dx, word [bp-026h]                    ; 8b 56 da
    18341834    mov si, word [bp-01eh]                    ; 8b 76 e2
    1835     call 0a060h                               ; e8 48 85
     1835    call 0a0a0h                               ; e8 88 85
    18361836    mov ax, dx                                ; 89 d0
    18371837    xor ah, dh                                ; 30 f4
     
    22942294    mov dx, word [es:si]                      ; 26 8b 14
    22952295    mov si, strict word 00018h                ; be 18 00
    2296     call 0a060h                               ; e8 ce 80
     2296    call 0a0a0h                               ; e8 0e 81
    22972297    xor dh, dh                                ; 30 f6
    22982298    mov word [bp-014h], dx                    ; 89 56 ec
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00020h                ; be 20 00
    2306     call 0a060h                               ; e8 ae 80
     2306    call 0a0a0h                               ; e8 ee 80
    23072307    mov bx, dx                                ; 89 d3
    23082308    mov word [bp-010h], dx                    ; 89 56 f0
     
    23362336    mov dx, word [es:si]                      ; 26 8b 14
    23372337    mov si, strict word 00008h                ; be 08 00
    2338     call 0a060h                               ; e8 5b 80
     2338    call 0a0a0h                               ; e8 9b 80
    23392339    mov word [bp-010h], dx                    ; 89 56 f0
    23402340    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23452345    mov dx, word [es:si]                      ; 26 8b 14
    23462346    mov si, strict word 00018h                ; be 18 00
    2347     call 0a060h                               ; e8 3d 80
     2347    call 0a0a0h                               ; e8 7d 80
    23482348    mov bl, dl                                ; 88 d3
    23492349    and bl, 00fh                              ; 80 e3 0f
     
    27412741    mov dx, ss                                ; 8c d2
    27422742    lea ax, [bp-03eh]                         ; 8d 46 c2
    2743     call 05b09h                               ; e8 08 37
     2743    call 05b4fh                               ; e8 4e 37
    27442744    mov bx, 00da0h                            ; bb a0 0d
    27452745    mov cx, ds                                ; 8c d9
     
    29232923    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    29242924    mov si, strict word 0000bh                ; be 0b 00
    2925     call 0a060h                               ; e8 61 7a
     2925    call 0a0a0h                               ; e8 a1 7a
    29262926    mov word [bp-02ah], dx                    ; 89 56 d6
    29272927    mov word [bp-026h], cx                    ; 89 4e da
     
    32153215    mov dx, word [bp-022h]                    ; 8b 56 de
    32163216    mov si, strict word 00018h                ; be 18 00
    3217     call 0a060h                               ; e8 84 77
     3217    call 0a0a0h                               ; e8 c4 77
    32183218    xor dh, dh                                ; 30 f6
    32193219    mov word [bp-014h], dx                    ; 89 56 ec
     
    32233223    mov dx, word [bp-022h]                    ; 8b 56 de
    32243224    mov si, strict word 00020h                ; be 20 00
    3225     call 0a060h                               ; e8 6d 77
     3225    call 0a0a0h                               ; e8 ad 77
    32263226    mov bx, dx                                ; 89 d3
    32273227    mov word [bp-024h], dx                    ; 89 56 dc
     
    32573257    mov dx, word [bp-022h]                    ; 8b 56 de
    32583258    mov si, strict word 00008h                ; be 08 00
    3259     call 0a060h                               ; e8 19 77
     3259    call 0a0a0h                               ; e8 59 77
    32603260    mov word [bp-00ch], ax                    ; 89 46 f4
    32613261    mov word [bp-020h], bx                    ; 89 5e e0
     
    32643264    mov word [bp-024h], dx                    ; 89 56 dc
    32653265    mov si, strict word 00010h                ; be 10 00
    3266     call 0a060h                               ; e8 04 77
     3266    call 0a0a0h                               ; e8 44 77
    32673267    mov word [bp-022h], dx                    ; 89 56 de
    32683268    mov ax, dx                                ; 89 d0
     
    39453945    pop bp                                    ; 5d
    39463946    retn                                      ; c3
    3947 floppy_reset_controller_:                    ; 0xf2f67 LB 0x28
     3947floppy_reset_controller_:                    ; 0xf2f67 LB 0x46
    39483948    push bp                                   ; 55
    39493949    mov bp, sp                                ; 89 e5
    39503950    push bx                                   ; 53
     3951    push cx                                   ; 51
    39513952    push dx                                   ; 52
     3953    mov bx, ax                                ; 89 c3
    39523954    mov dx, 003f2h                            ; ba f2 03
    39533955    in AL, DX                                 ; ec
    39543956    db  02ah, 0e4h
    39553957    ; sub ah, ah                                ; 2a e4
    3956     mov bx, ax                                ; 89 c3
     3958    mov cx, ax                                ; 89 c1
    39573959    and AL, strict byte 0fbh                  ; 24 fb
    39583960    out DX, AL                                ; ee
    3959     mov al, bl                                ; 88 d8
     3961    mov al, cl                                ; 88 c8
    39603962    or AL, strict byte 004h                   ; 0c 04
    39613963    out DX, AL                                ; ee
     
    39663968    and AL, strict byte 0c0h                  ; 24 c0
    39673969    cmp AL, strict byte 080h                  ; 3c 80
    3968     jne short 02f7ch                          ; 75 f4
    3969     lea sp, [bp-004h]                         ; 8d 66 fc
     3970    jne short 02f7fh                          ; 75 f4
     3971    lea cx, [bx+00090h]                       ; 8d 8f 90 00
     3972    mov dx, cx                                ; 89 ca
     3973    mov ax, strict word 00040h                ; b8 40 00
     3974    call 01652h                               ; e8 bb e6
     3975    and AL, strict byte 0efh                  ; 24 ef
     3976    xor ah, ah                                ; 30 e4
     3977    mov bx, ax                                ; 89 c3
     3978    mov dx, cx                                ; 89 ca
     3979    mov ax, strict word 00040h                ; b8 40 00
     3980    call 01660h                               ; e8 bb e6
     3981    lea sp, [bp-006h]                         ; 8d 66 fa
    39703982    pop dx                                    ; 5a
     3983    pop cx                                    ; 59
    39713984    pop bx                                    ; 5b
    39723985    pop bp                                    ; 5d
    39733986    retn                                      ; c3
    3974 floppy_prepare_controller_:                  ; 0xf2f8f LB 0x84
     3987floppy_prepare_controller_:                  ; 0xf2fad LB 0x84
    39753988    push bp                                   ; 55
    39763989    mov bp, sp                                ; 89 e5
     
    39823995    mov dx, strict word 0003eh                ; ba 3e 00
    39833996    mov ax, strict word 00040h                ; b8 40 00
    3984     call 01652h                               ; e8 b1 e6
     3997    call 01652h                               ; e8 93 e6
    39853998    and AL, strict byte 07fh                  ; 24 7f
    39863999    xor ah, ah                                ; 30 e4
     
    39884001    mov dx, strict word 0003eh                ; ba 3e 00
    39894002    mov ax, strict word 00040h                ; b8 40 00
    3990     call 01660h                               ; e8 b0 e6
     4003    call 01660h                               ; e8 92 e6
    39914004    mov dx, 003f2h                            ; ba f2 03
    39924005    in AL, DX                                 ; ec
     
    39964009    mov byte [bp-008h], al                    ; 88 46 f8
    39974010    test cx, cx                               ; 85 c9
    3998     je short 02fc3h                           ; 74 04
     4011    je short 02fe1h                           ; 74 04
    39994012    mov AL, strict byte 020h                  ; b0 20
    4000     jmp short 02fc5h                          ; eb 02
     4013    jmp short 02fe3h                          ; eb 02
    40014014    mov AL, strict byte 010h                  ; b0 10
    40024015    or AL, strict byte 00ch                   ; 0c 0c
     
    40074020    mov dx, strict word 00040h                ; ba 40 00
    40084021    mov ax, dx                                ; 89 d0
    4009     call 01660h                               ; e8 88 e6
     4022    call 01660h                               ; e8 6a e6
    40104023    mov dx, 0008bh                            ; ba 8b 00
    40114024    mov ax, strict word 00040h                ; b8 40 00
    4012     call 01652h                               ; e8 71 e6
     4025    call 01652h                               ; e8 53 e6
    40134026    mov CL, strict byte 006h                  ; b1 06
    40144027    shr al, CL                                ; d2 e8
     
    40214034    and AL, strict byte 0c0h                  ; 24 c0
    40224035    cmp AL, strict byte 080h                  ; 3c 80
    4023     jne short 02fe9h                          ; 75 f4
     4036    jne short 03007h                          ; 75 f4
    40244037    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4025     jne short 0300bh                          ; 75 10
    4026     call 02effh                               ; e8 01 ff
     4038    jne short 03029h                          ; 75 10
     4039    call 02effh                               ; e8 e3 fe
    40274040    mov bl, al                                ; 88 c3
    40284041    xor bh, bh                                ; 30 ff
    40294042    mov dx, strict word 0003eh                ; ba 3e 00
    40304043    mov ax, strict word 00040h                ; b8 40 00
    4031     call 01660h                               ; e8 55 e6
     4044    call 01660h                               ; e8 37 e6
    40324045    lea sp, [bp-006h]                         ; 8d 66 fa
    40334046    pop dx                                    ; 5a
     
    40364049    pop bp                                    ; 5d
    40374050    retn                                      ; c3
    4038 floppy_media_known_:                         ; 0xf3013 LB 0x46
     4051floppy_media_known_:                         ; 0xf3031 LB 0x46
    40394052    push bp                                   ; 55
    40404053    mov bp, sp                                ; 89 e5
     
    40454058    mov dx, strict word 0003eh                ; ba 3e 00
    40464059    mov ax, strict word 00040h                ; b8 40 00
    4047     call 01652h                               ; e8 2e e6
     4060    call 01652h                               ; e8 10 e6
    40484061    mov ah, al                                ; 88 c4
    40494062    test bx, bx                               ; 85 db
    4050     je short 0302ch                           ; 74 02
     4063    je short 0304ah                           ; 74 02
    40514064    shr al, 1                                 ; d0 e8
    40524065    and AL, strict byte 001h                  ; 24 01
    4053     jne short 03034h                          ; 75 04
    4054     xor ah, ah                                ; 30 e4
    4055     jmp short 03051h                          ; eb 1d
     4066    jne short 03052h                          ; 75 04
     4067    xor ah, ah                                ; 30 e4
     4068    jmp short 0306fh                          ; eb 1d
    40564069    mov dx, 00090h                            ; ba 90 00
    40574070    test bx, bx                               ; 85 db
    4058     je short 0303eh                           ; 74 03
     4071    je short 0305ch                           ; 74 03
    40594072    mov dx, 00091h                            ; ba 91 00
    40604073    mov ax, strict word 00040h                ; b8 40 00
    4061     call 01652h                               ; e8 0e e6
     4074    call 01652h                               ; e8 f0 e5
    40624075    xor ah, ah                                ; 30 e4
    40634076    mov CL, strict byte 004h                  ; b1 04
    40644077    sar ax, CL                                ; d3 f8
    40654078    and AL, strict byte 001h                  ; 24 01
    4066     je short 03030h                           ; 74 e2
     4079    je short 0304eh                           ; 74 e2
    40674080    mov ax, strict word 00001h                ; b8 01 00
    40684081    lea sp, [bp-006h]                         ; 8d 66 fa
     
    40724085    pop bp                                    ; 5d
    40734086    retn                                      ; c3
    4074 floppy_read_id_:                             ; 0xf3059 LB 0x44
     4087floppy_read_id_:                             ; 0xf3077 LB 0x44
    40754088    push bp                                   ; 55
    40764089    mov bp, sp                                ; 89 e5
     
    40804093    sub sp, strict byte 00008h                ; 83 ec 08
    40814094    mov bx, ax                                ; 89 c3
    4082     call 02f8fh                               ; e8 28 ff
     4095    call 02fadh                               ; e8 28 ff
    40834096    mov AL, strict byte 04ah                  ; b0 4a
    40844097    mov dx, 003f5h                            ; ba f5 03
     
    40864099    mov al, bl                                ; 88 d8
    40874100    out DX, AL                                ; ee
    4088     call 02effh                               ; e8 8c fe
     4101    call 02effh                               ; e8 6e fe
    40894102    xor si, si                                ; 31 f6
    4090     jmp short 0307ch                          ; eb 05
     4103    jmp short 0309ah                          ; eb 05
    40914104    cmp si, strict byte 00007h                ; 83 fe 07
    4092     jnl short 03088h                          ; 7d 0c
     4105    jnl short 030a6h                          ; 7d 0c
    40934106    mov dx, 003f5h                            ; ba f5 03
    40944107    in AL, DX                                 ; ec
     
    40974110    mov byte [bp+si-00eh], al                 ; 88 42 f2
    40984111    inc si                                    ; 46
    4099     jmp short 03077h                          ; eb ef
     4112    jmp short 03095h                          ; eb ef
    41004113    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    4101     je short 03092h                           ; 74 04
     4114    je short 030b0h                           ; 74 04
    41024115    xor ax, ax                                ; 31 c0
    4103     jmp short 03095h                          ; eb 03
     4116    jmp short 030b3h                          ; eb 03
    41044117    mov ax, strict word 00001h                ; b8 01 00
    41054118    lea sp, [bp-006h]                         ; 8d 66 fa
     
    41094122    pop bp                                    ; 5d
    41104123    retn                                      ; c3
    4111 floppy_drive_recal_:                         ; 0xf309d LB 0x4d
     4124floppy_drive_recal_:                         ; 0xf30bb LB 0x4d
    41124125    push bp                                   ; 55
    41134126    mov bp, sp                                ; 89 e5
     
    41164129    push dx                                   ; 52
    41174130    mov bx, ax                                ; 89 c3
    4118     call 02f8fh                               ; e8 e7 fe
     4131    call 02fadh                               ; e8 e7 fe
    41194132    mov AL, strict byte 007h                  ; b0 07
    41204133    mov dx, 003f5h                            ; ba f5 03
     
    41224135    mov al, bl                                ; 88 d8
    41234136    out DX, AL                                ; ee
    4124     call 02effh                               ; e8 4b fe
     4137    call 02effh                               ; e8 2d fe
    41254138    test bx, bx                               ; 85 db
    4126     je short 030c2h                           ; 74 0a
     4139    je short 030e0h                           ; 74 0a
    41274140    mov bl, al                                ; 88 c3
    41284141    or bl, 002h                               ; 80 cb 02
    41294142    mov cx, 00095h                            ; b9 95 00
    4130     jmp short 030cah                          ; eb 08
     4143    jmp short 030e8h                          ; eb 08
    41314144    mov bl, al                                ; 88 c3
    41324145    or bl, 001h                               ; 80 cb 01
     
    41354148    mov dx, strict word 0003eh                ; ba 3e 00
    41364149    mov ax, strict word 00040h                ; b8 40 00
    4137     call 01660h                               ; e8 8b e5
     4150    call 01660h                               ; e8 6d e5
    41384151    xor bx, bx                                ; 31 db
    41394152    mov dx, cx                                ; 89 ca
    41404153    mov ax, strict word 00040h                ; b8 40 00
    4141     call 01660h                               ; e8 81 e5
     4154    call 01660h                               ; e8 63 e5
    41424155    mov ax, strict word 00001h                ; b8 01 00
    41434156    lea sp, [bp-006h]                         ; 8d 66 fa
     
    41474160    pop bp                                    ; 5d
    41484161    retn                                      ; c3
    4149 floppy_media_sense_:                         ; 0xf30ea LB 0xfa
     4162floppy_media_sense_:                         ; 0xf3108 LB 0xfa
    41504163    push bp                                   ; 55
    41514164    mov bp, sp                                ; 89 e5
     
    41564169    push di                                   ; 57
    41574170    mov di, ax                                ; 89 c7
    4158     call 0309dh                               ; e8 a6 ff
     4171    call 030bbh                               ; e8 a6 ff
    41594172    test ax, ax                               ; 85 c0
    4160     jne short 03100h                          ; 75 05
     4173    jne short 0311eh                          ; 75 05
    41614174    xor cx, cx                                ; 31 c9
    4162     jmp near 031d8h                           ; e9 d8 00
     4175    jmp near 031f6h                           ; e9 d8 00
    41634176    mov ax, strict word 00010h                ; b8 10 00
    4164     call 016aeh                               ; e8 a8 e5
     4177    call 016aeh                               ; e8 8a e5
    41654178    test di, di                               ; 85 ff
    4166     jne short 03112h                          ; 75 08
     4179    jne short 03130h                          ; 75 08
    41674180    mov CL, strict byte 004h                  ; b1 04
    41684181    shr al, CL                                ; d2 e8
    41694182    mov cl, al                                ; 88 c1
    4170     jmp short 03117h                          ; eb 05
     4183    jmp short 03135h                          ; eb 05
    41714184    mov cl, al                                ; 88 c1
    41724185    and cl, 00fh                              ; 80 e1 0f
    41734186    cmp cl, 001h                              ; 80 f9 01
    4174     jne short 03125h                          ; 75 09
     4187    jne short 03143h                          ; 75 09
    41754188    xor cl, cl                                ; 30 c9
    41764189    mov CH, strict byte 015h                  ; b5 15
    41774190    mov si, strict word 00001h                ; be 01 00
    4178     jmp short 03163h                          ; eb 3e
     4191    jmp short 03181h                          ; eb 3e
    41794192    cmp cl, 002h                              ; 80 f9 02
    4180     jne short 03130h                          ; 75 06
     4193    jne short 0314eh                          ; 75 06
    41814194    xor cl, cl                                ; 30 c9
    41824195    mov CH, strict byte 035h                  ; b5 35
    4183     jmp short 03120h                          ; eb f0
     4196    jmp short 0313eh                          ; eb f0
    41844197    cmp cl, 003h                              ; 80 f9 03
    4185     jne short 0313bh                          ; 75 06
     4198    jne short 03159h                          ; 75 06
    41864199    xor cl, cl                                ; 30 c9
    41874200    mov CH, strict byte 017h                  ; b5 17
    4188     jmp short 03120h                          ; eb e5
     4201    jmp short 0313eh                          ; eb e5
    41894202    cmp cl, 004h                              ; 80 f9 04
    4190     jne short 03146h                          ; 75 06
     4203    jne short 03164h                          ; 75 06
    41914204    xor cl, cl                                ; 30 c9
    41924205    mov CH, strict byte 017h                  ; b5 17
    4193     jmp short 03120h                          ; eb da
     4206    jmp short 0313eh                          ; eb da
    41944207    cmp cl, 005h                              ; 80 f9 05
    4195     jne short 03151h                          ; 75 06
     4208    jne short 0316fh                          ; 75 06
    41964209    mov CL, strict byte 0cch                  ; b1 cc
    41974210    mov CH, strict byte 0d7h                  ; b5 d7
    4198     jmp short 03120h                          ; eb cf
     4211    jmp short 0313eh                          ; eb cf
    41994212    cmp cl, 00eh                              ; 80 f9 0e
    4200     je short 0315bh                           ; 74 05
     4213    je short 03179h                           ; 74 05
    42014214    cmp cl, 00fh                              ; 80 f9 0f
    4202     jne short 0315dh                          ; 75 02
    4203     jmp short 0314bh                          ; eb ee
     4215    jne short 0317bh                          ; 75 02
     4216    jmp short 03169h                          ; eb ee
    42044217    xor cl, cl                                ; 30 c9
    42054218    xor ch, ch                                ; 30 ed
     
    42104223    mov dx, 0008bh                            ; ba 8b 00
    42114224    mov ax, strict word 00040h                ; b8 40 00
    4212     call 01660h                               ; e8 ee e4
     4225    call 01660h                               ; e8 d0 e4
    42134226    mov ax, di                                ; 89 f8
    4214     call 03059h                               ; e8 e2 fe
     4227    call 03077h                               ; e8 e2 fe
    42154228    test ax, ax                               ; 85 c0
    4216     jne short 031adh                          ; 75 32
     4229    jne short 031cbh                          ; 75 32
    42174230    mov al, cl                                ; 88 c8
    42184231    and AL, strict byte 0c0h                  ; 24 c0
    42194232    cmp AL, strict byte 080h                  ; 3c 80
    4220     je short 031adh                           ; 74 2a
     4233    je short 031cbh                           ; 74 2a
    42214234    mov al, cl                                ; 88 c8
    42224235    and AL, strict byte 0c0h                  ; 24 c0
    42234236    cmp AL, strict byte 0c0h                  ; 3c c0
    4224     je short 0319ah                           ; 74 0f
     4237    je short 031b8h                           ; 74 0f
    42254238    mov ah, cl                                ; 88 cc
    42264239    and ah, 03fh                              ; 80 e4 3f
    42274240    cmp AL, strict byte 040h                  ; 3c 40
    4228     je short 031a6h                           ; 74 12
     4241    je short 031c4h                           ; 74 12
    42294242    test al, al                               ; 84 c0
    4230     je short 0319fh                           ; 74 07
    4231     jmp short 03163h                          ; eb c9
     4243    je short 031bdh                           ; 74 07
     4244    jmp short 03181h                          ; eb c9
    42324245    and cl, 03fh                              ; 80 e1 3f
    4233     jmp short 03163h                          ; eb c4
     4246    jmp short 03181h                          ; eb c4
    42344247    mov cl, ah                                ; 88 e1
    42354248    or cl, 040h                               ; 80 c9 40
    4236     jmp short 03163h                          ; eb bd
     4249    jmp short 03181h                          ; eb bd
    42374250    mov cl, ah                                ; 88 e1
    42384251    or cl, 080h                               ; 80 c9 80
    4239     jmp short 03163h                          ; eb b6
     4252    jmp short 03181h                          ; eb b6
    42404253    test di, di                               ; 85 ff
    4241     jne short 031b6h                          ; 75 05
     4254    jne short 031d4h                          ; 75 05
    42424255    mov di, 00090h                            ; bf 90 00
    4243     jmp short 031b9h                          ; eb 03
     4256    jmp short 031d7h                          ; eb 03
    42444257    mov di, 00091h                            ; bf 91 00
    42454258    mov al, cl                                ; 88 c8
     
    42484261    mov dx, 0008bh                            ; ba 8b 00
    42494262    mov ax, strict word 00040h                ; b8 40 00
    4250     call 01660h                               ; e8 98 e4
     4263    call 01660h                               ; e8 7a e4
    42514264    mov al, ch                                ; 88 e8
    42524265    xor ah, ah                                ; 30 e4
     
    42544267    mov dx, di                                ; 89 fa
    42554268    mov ax, strict word 00040h                ; b8 40 00
    4256     call 01660h                               ; e8 8a e4
     4269    call 01660h                               ; e8 6c e4
    42574270    mov cx, si                                ; 89 f1
    42584271    mov ax, cx                                ; 89 c8
     
    42654278    pop bp                                    ; 5d
    42664279    retn                                      ; c3
    4267 floppy_drive_exists_:                        ; 0xf31e4 LB 0x2b
     4280floppy_drive_exists_:                        ; 0xf3202 LB 0x2b
    42684281    push bp                                   ; 55
    42694282    mov bp, sp                                ; 89 e5
     
    42724285    mov dx, ax                                ; 89 c2
    42734286    mov ax, strict word 00010h                ; b8 10 00
    4274     call 016aeh                               ; e8 bd e4
     4287    call 016aeh                               ; e8 9f e4
    42754288    test dx, dx                               ; 85 d2
    4276     jne short 031fbh                          ; 75 06
     4289    jne short 03219h                          ; 75 06
    42774290    mov CL, strict byte 004h                  ; b1 04
    42784291    shr al, CL                                ; d2 e8
    4279     jmp short 031fdh                          ; eb 02
     4292    jmp short 0321bh                          ; eb 02
    42804293    and AL, strict byte 00fh                  ; 24 0f
    42814294    test al, al                               ; 84 c0
    4282     je short 03206h                           ; 74 05
     4295    je short 03224h                           ; 74 05
    42834296    mov ax, strict word 00001h                ; b8 01 00
    4284     jmp short 03208h                          ; eb 02
     4297    jmp short 03226h                          ; eb 02
    42854298    xor ah, ah                                ; 30 e4
    42864299    lea sp, [bp-004h]                         ; 8d 66 fc
     
    42894302    pop bp                                    ; 5d
    42904303    retn                                      ; c3
    4291 _int13_diskette_function:                    ; 0xf320f LB 0x97c
     4304_int13_diskette_function:                    ; 0xf322d LB 0x9a4
    42924305    push bp                                   ; 55
    42934306    mov bp, sp                                ; 89 e5
     
    42974310    mov bl, byte [bp+017h]                    ; 8a 5e 17
    42984311    xor bh, bh                                ; 30 ff
    4299     mov byte [bp-010h], bl                    ; 88 5e f0
     4312    mov cl, bl                                ; 88 d9
    43004313    mov si, word [bp+016h]                    ; 8b 76 16
    43014314    and si, 000ffh                            ; 81 e6 ff 00
    43024315    mov al, byte [bp+00eh]                    ; 8a 46 0e
    4303     mov cl, byte [bp+014h]                    ; 8a 4e 14
     4316    mov dl, byte [bp+014h]                    ; 8a 56 14
     4317    mov byte [bp-010h], dl                    ; 88 56 f0
    43044318    mov ch, byte [bp+016h]                    ; 8a 6e 16
    43054319    mov dl, byte [bp+015h]                    ; 8a 56 15
    4306     mov byte [bp-014h], dl                    ; 88 56 ec
    4307     mov byte [bp-013h], bh                    ; 88 7e ed
    4308     mov dx, word [bp-014h]                    ; 8b 56 ec
     4320    mov byte [bp-012h], dl                    ; 88 56 ee
     4321    mov byte [bp-011h], bh                    ; 88 7e ef
     4322    mov dx, word [bp-012h]                    ; 8b 56 ee
    43094323    cmp bl, 008h                              ; 80 fb 08
    4310     jc short 0326eh                           ; 72 2e
     4324    jc short 0328eh                           ; 72 2e
    43114325    mov dx, word [bp+01ch]                    ; 8b 56 1c
    43124326    or dl, 001h                               ; 80 ca 01
    43134327    cmp bl, 008h                              ; 80 fb 08
    4314     jbe short 032a4h                          ; 76 59
     4328    jbe short 032c4h                          ; 76 59
    43154329    cmp bl, 016h                              ; 80 fb 16
    4316     jc short 03266h                           ; 72 16
     4330    jc short 03286h                           ; 72 16
    43174331    or si, 00100h                             ; 81 ce 00 01
    43184332    cmp bl, 016h                              ; 80 fb 16
    4319     jbe short 032a7h                          ; 76 4e
     4333    jbe short 032c7h                          ; 76 4e
    43204334    cmp bl, 018h                              ; 80 fb 18
    4321     je short 032aah                           ; 74 4c
     4335    je short 032cah                           ; 74 4c
    43224336    cmp bl, 017h                              ; 80 fb 17
    4323     je short 032c1h                           ; 74 5e
    4324     jmp near 03b65h                           ; e9 ff 08
     4337    je short 032e1h                           ; 74 5e
     4338    jmp near 03babh                           ; e9 25 09
    43254339    cmp bl, 015h                              ; 80 fb 15
    4326     je short 032c4h                           ; 74 59
    4327     jmp near 03b65h                           ; e9 f7 08
     4340    je short 032e4h                           ; 74 59
     4341    jmp near 03babh                           ; e9 1d 09
    43284342    cmp bl, 001h                              ; 80 fb 01
    4329     jc short 03282h                           ; 72 0f
    4330     jbe short 032c7h                          ; 76 52
     4343    jc short 032a2h                           ; 72 0f
     4344    jbe short 032e7h                          ; 76 52
    43314345    cmp bl, 005h                              ; 80 fb 05
    4332     je short 032e2h                           ; 74 68
     4346    je short 03302h                           ; 74 68
    43334347    cmp bl, 004h                              ; 80 fb 04
    4334     jbe short 032e5h                          ; 76 66
    4335     jmp near 03b65h                           ; e9 e3 08
     4348    jbe short 03305h                          ; 76 66
     4349    jmp near 03babh                           ; e9 09 09
    43364350    test bl, bl                               ; 84 db
    4337     jne short 032e7h                          ; 75 61
     4351    jne short 03307h                          ; 75 61
    43384352    mov al, byte [bp+00eh]                    ; 8a 46 0e
    43394353    mov byte [bp-006h], al                    ; 88 46 fa
    43404354    cmp AL, strict byte 001h                  ; 3c 01
    4341     jbe short 032adh                          ; 76 1d
     4355    jbe short 032cdh                          ; 76 1d
    43424356    mov ax, word [bp+016h]                    ; 8b 46 16
    43434357    xor ah, ah                                ; 30 e4
     
    43454359    mov word [bp+016h], ax                    ; 89 46 16
    43464360    mov ax, strict word 00001h                ; b8 01 00
    4347     call 02eb0h                               ; e8 0f fc
    4348     jmp near 03656h                           ; e9 b2 03
    4349     jmp near 03827h                           ; e9 80 05
    4350     jmp near 0396bh                           ; e9 c1 06
    4351     jmp near 03a04h                           ; e9 57 07
     4361    call 02eb0h                               ; e8 ef fb
     4362    jmp near 03697h                           ; e9 d3 03
     4363    jmp near 0386bh                           ; e9 a4 05
     4364    jmp near 039afh                           ; e9 e5 06
     4365    jmp near 03a48h                           ; e9 7b 07
    43524366    mov ax, strict word 00010h                ; b8 10 00
    4353     call 016aeh                               ; e8 fb e3
     4367    call 016aeh                               ; e8 db e3
    43544368    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4355     jne short 032c9h                          ; 75 10
     4369    jne short 032e9h                          ; 75 10
    43564370    mov CL, strict byte 004h                  ; b1 04
    43574371    mov ch, al                                ; 88 c5
    43584372    shr ch, CL                                ; d2 ed
    4359     jmp short 032ceh                          ; eb 0d
    4360     jmp near 0398fh                           ; e9 cb 06
    4361     jmp near 03926h                           ; e9 5f 06
    4362     jmp short 03310h                          ; eb 47
     4373    jmp short 032eeh                          ; eb 0d
     4374    jmp near 039d3h                           ; e9 ef 06
     4375    jmp near 0396ah                           ; e9 83 06
     4376    jmp short 03330h                          ; eb 47
    43634377    mov ch, al                                ; 88 c5
    43644378    and ch, 00fh                              ; 80 e5 0f
    43654379    test ch, ch                               ; 84 ed
    4366     jne short 032eah                          ; 75 18
     4380    jne short 0330ah                          ; 75 18
    43674381    mov ax, word [bp+016h]                    ; 8b 46 16
    43684382    xor ah, ah                                ; 30 e4
     
    43704384    mov word [bp+016h], ax                    ; 89 46 16
    43714385    mov ax, 00080h                            ; b8 80 00
    4372     jmp short 0329eh                          ; eb bc
    4373     jmp near 03680h                           ; e9 9b 03
    4374     jmp short 0332ch                          ; eb 45
    4375     jmp near 03b65h                           ; e9 7b 08
     4386    jmp short 032beh                          ; eb bc
     4387    jmp near 036c1h                           ; e9 bc 03
     4388    jmp short 0334ch                          ; eb 45
     4389    jmp near 03babh                           ; e9 a1 08
    43764390    xor bx, bx                                ; 31 db
    43774391    mov dx, strict word 0003eh                ; ba 3e 00
    43784392    mov ax, strict word 00040h                ; b8 40 00
    4379     call 01660h                               ; e8 6b e3
     4393    call 01660h                               ; e8 4b e3
    43804394    xor al, al                                ; 30 c0
    43814395    mov byte [bp+017h], al                    ; 88 46 17
    43824396    xor ah, ah                                ; 30 e4
    4383     call 02eb0h                               ; e8 b1 fb
     4397    call 02eb0h                               ; e8 91 fb
    43844398    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    43854399    mov al, byte [bp-006h]                    ; 8a 46 fa
    43864400    xor ah, ah                                ; 30 e4
    43874401    xor dx, dx                                ; 31 d2
    4388     call 02ec9h                               ; e8 bc fb
    4389     jmp near 03679h                           ; e9 69 03
     4402    call 02ec9h                               ; e8 9c fb
     4403    jmp near 036bah                           ; e9 8a 03
    43904404    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    43914405    mov dx, 00441h                            ; ba 41 04
    43924406    xor ax, ax                                ; 31 c0
    4393     call 01652h                               ; e8 36 e3
     4407    call 01652h                               ; e8 16 e3
    43944408    mov dh, al                                ; 88 c6
    43954409    xor dl, dl                                ; 30 d2
     
    43974411    mov word [bp+016h], si                    ; 89 76 16
    43984412    test al, al                               ; 84 c0
    4399     je short 03380h                           ; 74 57
    4400     jmp near 03656h                           ; e9 2a 03
     4413    je short 033a3h                           ; 74 5a
     4414    jmp near 03697h                           ; e9 4b 03
    44014415    mov byte [bp-008h], ch                    ; 88 6e f8
    44024416    mov byte [bp-00ah], dl                    ; 88 56 f6
    4403     mov byte [bp-00eh], cl                    ; 88 4e f2
     4417    mov ah, byte [bp-010h]                    ; 8a 66 f0
     4418    mov byte [bp-00eh], ah                    ; 88 66 f2
    44044419    mov dl, byte [bp+013h]                    ; 8a 56 13
    44054420    xor dh, dh                                ; 30 f6
     
    44074422    mov byte [bp-006h], al                    ; 88 46 fa
    44084423    cmp AL, strict byte 001h                  ; 3c 01
    4409     jnbe short 03352h                         ; 77 0e
     4424    jnbe short 03375h                         ; 77 0e
    44104425    cmp dl, 001h                              ; 80 fa 01
    4411     jnbe short 03352h                         ; 77 09
     4426    jnbe short 03375h                         ; 77 09
    44124427    test ch, ch                               ; 84 ed
    4413     je short 03352h                           ; 74 05
     4428    je short 03375h                           ; 74 05
    44144429    cmp ch, 048h                              ; 80 fd 48
    4415     jbe short 03383h                          ; 76 31
     4430    jbe short 033a6h                          ; 76 31
    44164431    mov bx, 00da0h                            ; bb a0 0d
    44174432    mov cx, ds                                ; 8c d9
    44184433    mov ax, strict word 00004h                ; b8 04 00
    4419     call 01933h                               ; e8 d6 e5
     4434    call 01933h                               ; e8 b3 e5
    44204435    mov ax, 00275h                            ; b8 75 02
    44214436    push ax                                   ; 50
     
    44244439    mov ax, strict word 00004h                ; b8 04 00
    44254440    push ax                                   ; 50
    4426     call 01976h                               ; e8 0a e6
     4441    call 01976h                               ; e8 e7 e5
    44274442    add sp, strict byte 00006h                ; 83 c4 06
    44284443    mov ax, word [bp+016h]                    ; 8b 46 16
     
    44314446    mov word [bp+016h], ax                    ; 89 46 16
    44324447    mov ax, strict word 00001h                ; b8 01 00
    4433     jmp near 03405h                           ; e9 85 00
    4434     jmp near 03679h                           ; e9 f6 02
     4448    jmp near 03435h                           ; e9 92 00
     4449    jmp near 036bah                           ; e9 14 03
    44354450    mov al, byte [bp-006h]                    ; 8a 46 fa
    44364451    xor ah, ah                                ; 30 e4
    4437     call 031e4h                               ; e8 59 fe
     4452    call 03202h                               ; e8 54 fe
    44384453    test ax, ax                               ; 85 c0
    4439     je short 033bdh                           ; 74 2e
    4440     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4441     xor bh, bh                                ; 30 ff
    4442     mov ax, bx                                ; 89 d8
    4443     call 03013h                               ; e8 7a fc
     4454    jne short 033c3h                          ; 75 11
     4455    mov ax, word [bp+016h]                    ; 8b 46 16
     4456    xor ah, ah                                ; 30 e4
     4457    or ah, 080h                               ; 80 cc 80
     4458    mov word [bp+016h], ax                    ; 89 46 16
     4459    mov ax, 00080h                            ; b8 80 00
     4460    jmp near 03435h                           ; e9 72 00
     4461    mov dl, byte [bp-006h]                    ; 8a 56 fa
     4462    xor dh, dh                                ; 30 f6
     4463    mov ax, dx                                ; 89 d0
     4464    call 03031h                               ; e8 64 fc
    44444465    test ax, ax                               ; 85 c0
    4445     jne short 033c0h                          ; 75 23
    4446     mov ax, bx                                ; 89 d8
    4447     call 030eah                               ; e8 48 fd
     4466    jne short 033f1h                          ; 75 20
     4467    mov ax, dx                                ; 89 d0
     4468    call 03108h                               ; e8 32 fd
    44484469    test ax, ax                               ; 85 c0
    4449     jne short 033c0h                          ; 75 1a
     4470    jne short 033f1h                          ; 75 17
    44504471    mov ax, word [bp+016h]                    ; 8b 46 16
    44514472    xor ah, ah                                ; 30 e4
     
    44534474    mov word [bp+016h], ax                    ; 89 46 16
    44544475    mov ax, strict word 0000ch                ; b8 0c 00
    4455     call 02eb0h                               ; e8 f9 fa
    4456     mov byte [bp+016h], bh                    ; 88 7e 16
    4457     jmp near 03656h                           ; e9 99 02
    4458     jmp near 0349ch                           ; e9 dc 00
    4459     cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    4460     jne short 0340fh                          ; 75 49
     4476    call 02eb0h                               ; e8 c5 fa
     4477    mov byte [bp+016h], dh                    ; 88 76 16
     4478    jmp near 03697h                           ; e9 a6 02
     4479    cmp cl, 002h                              ; 80 f9 02
     4480    jne short 0343fh                          ; 75 49
    44614481    mov CL, strict byte 00ch                  ; b1 0c
    44624482    mov dx, word [bp+006h]                    ; 8b 56 06
     
    44684488    mov bx, word [bp+010h]                    ; 8b 5e 10
    44694489    add bx, ax                                ; 01 c3
    4470     mov word [bp-012h], bx                    ; 89 5e ee
     4490    mov word [bp-014h], bx                    ; 89 5e ec
    44714491    cmp ax, bx                                ; 39 d8
    4472     jbe short 033e4h                          ; 76 02
     4492    jbe short 03414h                          ; 76 02
    44734493    db  0feh, 0c5h
    44744494    ; inc ch                                    ; fe c5
     
    44794499    sal bx, CL                                ; d3 e3
    44804500    dec bx                                    ; 4b
    4481     mov ax, word [bp-012h]                    ; 8b 46 ee
     4501    mov ax, word [bp-014h]                    ; 8b 46 ec
    44824502    add ax, bx                                ; 01 d8
    4483     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4484     jnc short 03412h                          ; 73 18
     4503    cmp ax, word [bp-014h]                    ; 3b 46 ec
     4504    jnc short 03442h                          ; 73 18
    44854505    mov ax, word [bp+016h]                    ; 8b 46 16
    44864506    mov ah, cl                                ; 88 cc
    44874507    mov word [bp+016h], ax                    ; 89 46 16
    44884508    mov ax, strict word 00009h                ; b8 09 00
    4489     call 02eb0h                               ; e8 a8 fa
     4509    call 02eb0h                               ; e8 78 fa
    44904510    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4491     jmp near 03656h                           ; e9 47 02
    4492     jmp near 03538h                           ; e9 26 01
     4511    jmp near 03697h                           ; e9 58 02
     4512    jmp near 03579h                           ; e9 37 01
    44934513    mov AL, strict byte 006h                  ; b0 06
    44944514    mov dx, strict word 0000ah                ; ba 0a 00
     
    44974517    mov dx, strict word 0000ch                ; ba 0c 00
    44984518    out DX, AL                                ; ee
    4499     mov al, byte [bp-012h]                    ; 8a 46 ee
     4519    mov al, byte [bp-014h]                    ; 8a 46 ec
    45004520    mov dx, strict word 00004h                ; ba 04 00
    45014521    out DX, AL                                ; ee
    4502     mov al, byte [bp-011h]                    ; 8a 46 ef
     4522    mov al, byte [bp-013h]                    ; 8a 46 ed
    45034523    out DX, AL                                ; ee
    45044524    xor al, al                                ; 30 c0
     
    45194539    mov dx, strict word 0000ah                ; ba 0a 00
    45204540    out DX, AL                                ; ee
    4521     mov al, byte [bp-006h]                    ; 8a 46 fa
    4522     xor ah, ah                                ; 30 e4
    4523     call 02f8fh                               ; e8 3d fb
     4541    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4542    xor bh, bh                                ; 30 ff
     4543    mov ax, bx                                ; 89 d8
     4544    call 02fadh                               ; e8 29 fb
    45244545    mov AL, strict byte 0e6h                  ; b0 e6
    45254546    mov dx, 003f5h                            ; ba f5 03
     
    45304551    sal dx, 1                                 ; d1 e2
    45314552    sal dx, 1                                 ; d1 e2
    4532     mov al, byte [bp-006h]                    ; 8a 46 fa
     4553    mov al, bl                                ; 88 d8
    45334554    or ax, dx                                 ; 09 d0
    45344555    mov dx, 003f5h                            ; ba f5 03
     
    45424563    mov AL, strict byte 002h                  ; b0 02
    45434564    out DX, AL                                ; ee
    4544     mov al, byte [bp-00eh]                    ; 8a 46 f2
    4545     xor ah, ah                                ; 30 e4
    4546     mov dl, byte [bp-008h]                    ; 8a 56 f8
     4565    mov dl, byte [bp-00eh]                    ; 8a 56 f2
    45474566    xor dh, dh                                ; 30 f6
     4567    mov al, byte [bp-008h]                    ; 8a 46 f8
     4568    xor ah, ah                                ; 30 e4
    45484569    add ax, dx                                ; 01 d0
    45494570    dec ax                                    ; 48
     
    45544575    mov AL, strict byte 0ffh                  ; b0 ff
    45554576    out DX, AL                                ; ee
    4556     call 02f20h                               ; e8 8b fa
     4577    call 02f20h                               ; e8 5a fa
    45574578    test al, al                               ; 84 c0
    4558     jne short 034adh                          ; 75 14
    4559     call 02f67h                               ; e8 cb fa
     4579    jne short 034e6h                          ; 75 1c
     4580    mov ax, bx                                ; 89 d8
     4581    call 02f67h                               ; e8 98 fa
    45604582    mov ax, word [bp+016h]                    ; 8b 46 16
    45614583    xor ah, ah                                ; 30 e4
     
    45634585    mov word [bp+016h], ax                    ; 89 46 16
    45644586    mov ax, 00080h                            ; b8 80 00
    4565     jmp near 03405h                           ; e9 58 ff
     4587    call 02eb0h                               ; e8 d0 f9
     4588    mov byte [bp+016h], bh                    ; 88 7e 16
     4589    jmp near 03697h                           ; e9 b1 01
    45664590    mov dx, 003f4h                            ; ba f4 03
    45674591    in AL, DX                                 ; ec
     
    45704594    and AL, strict byte 0c0h                  ; 24 c0
    45714595    cmp AL, strict byte 0c0h                  ; 3c c0
    4572     je short 034cbh                           ; 74 12
     4596    je short 03504h                           ; 74 12
    45734597    mov ax, 00275h                            ; b8 75 02
    45744598    push ax                                   ; 50
     
    45774601    mov ax, strict word 00007h                ; b8 07 00
    45784602    push ax                                   ; 50
    4579     call 01976h                               ; e8 ae e4
     4603    call 01976h                               ; e8 75 e4
    45804604    add sp, strict byte 00006h                ; 83 c4 06
    45814605    xor si, si                                ; 31 f6
    4582     jmp short 034d4h                          ; eb 05
     4606    jmp short 0350dh                          ; eb 05
    45834607    cmp si, strict byte 00007h                ; 83 fe 07
    4584     jnl short 034edh                          ; 7d 19
     4608    jnl short 03526h                          ; 7d 19
    45854609    mov dx, 003f5h                            ; ba f5 03
    45864610    in AL, DX                                 ; ec
     
    45924616    lea dx, [si+042h]                         ; 8d 54 42
    45934617    mov ax, strict word 00040h                ; b8 40 00
    4594     call 01660h                               ; e8 76 e1
     4618    call 01660h                               ; e8 3d e1
    45954619    inc si                                    ; 46
    4596     jmp short 034cfh                          ; eb e2
     4620    jmp short 03508h                          ; eb e2
    45974621    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4598     je short 03504h                           ; 74 11
     4622    je short 03545h                           ; 74 19
     4623    mov al, byte [bp-006h]                    ; 8a 46 fa
     4624    xor ah, ah                                ; 30 e4
     4625    call 02f67h                               ; e8 33 fa
    45994626    mov ax, word [bp+016h]                    ; 8b 46 16
    46004627    xor ah, ah                                ; 30 e4
     
    46024629    mov word [bp+016h], ax                    ; 89 46 16
    46034630    mov ax, strict word 00020h                ; b8 20 00
    4604     jmp near 03405h                           ; e9 01 ff
     4631    jmp near 03435h                           ; e9 f0 fe
    46054632    mov al, byte [bp-008h]                    ; 8a 46 f8
    46064633    xor ah, ah                                ; 30 e4
     
    46244651    mov al, byte [bp-006h]                    ; 8a 46 fa
    46254652    xor ah, ah                                ; 30 e4
    4626     call 02ec9h                               ; e8 98 f9
     4653    call 02ec9h                               ; e8 57 f9
    46274654    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4628     jmp near 039fdh                           ; e9 c5 04
    4629     cmp byte [bp-010h], 003h                  ; 80 7e f0 03
    4630     je short 03541h                           ; 74 03
    4631     jmp near 03664h                           ; e9 23 01
     4655    jmp near 03a41h                           ; e9 c8 04
     4656    cmp cl, 003h                              ; 80 f9 03
     4657    je short 03581h                           ; 74 03
     4658    jmp near 036a5h                           ; e9 24 01
    46324659    mov CL, strict byte 00ch                  ; b1 0c
    46334660    mov dx, word [bp+006h]                    ; 8b 56 06
     
    46394666    mov bx, word [bp+010h]                    ; 8b 5e 10
    46404667    add bx, ax                                ; 01 c3
    4641     mov word [bp-012h], bx                    ; 89 5e ee
     4668    mov word [bp-014h], bx                    ; 89 5e ec
    46424669    cmp ax, bx                                ; 39 d8
    4643     jbe short 0355fh                          ; 76 02
     4670    jbe short 0359fh                          ; 76 02
    46444671    db  0feh, 0c5h
    46454672    ; inc ch                                    ; fe c5
     
    46504677    sal bx, CL                                ; d3 e3
    46514678    dec bx                                    ; 4b
    4652     mov ax, word [bp-012h]                    ; 8b 46 ee
     4679    mov ax, word [bp-014h]                    ; 8b 46 ec
    46534680    add ax, bx                                ; 01 d8
    4654     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4655     jnc short 03578h                          ; 73 03
    4656     jmp near 033fah                           ; e9 82 fe
     4681    cmp ax, word [bp-014h]                    ; 3b 46 ec
     4682    jnc short 035b8h                          ; 73 03
     4683    jmp near 0342ah                           ; e9 72 fe
    46574684    mov AL, strict byte 006h                  ; b0 06
    46584685    mov dx, strict word 0000ah                ; ba 0a 00
     
    46614688    mov dx, strict word 0000ch                ; ba 0c 00
    46624689    out DX, AL                                ; ee
    4663     mov al, byte [bp-012h]                    ; 8a 46 ee
     4690    mov al, byte [bp-014h]                    ; 8a 46 ec
    46644691    mov dx, strict word 00004h                ; ba 04 00
    46654692    out DX, AL                                ; ee
    4666     mov al, byte [bp-011h]                    ; 8a 46 ef
     4693    mov al, byte [bp-013h]                    ; 8a 46 ed
    46674694    out DX, AL                                ; ee
    46684695    xor al, al                                ; 30 c0
     
    46834710    mov dx, strict word 0000ah                ; ba 0a 00
    46844711    out DX, AL                                ; ee
    4685     mov al, byte [bp-006h]                    ; 8a 46 fa
    4686     xor ah, ah                                ; 30 e4
    4687     call 02f8fh                               ; e8 d7 f9
     4712    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4713    xor bh, bh                                ; 30 ff
     4714    mov ax, bx                                ; 89 d8
     4715    call 02fadh                               ; e8 b3 f9
    46884716    mov AL, strict byte 0c5h                  ; b0 c5
    46894717    mov dx, 003f5h                            ; ba f5 03
     
    46944722    sal dx, 1                                 ; d1 e2
    46954723    sal dx, 1                                 ; d1 e2
    4696     mov al, byte [bp-006h]                    ; 8a 46 fa
     4724    mov al, bl                                ; 88 d8
    46974725    or ax, dx                                 ; 09 d0
    46984726    mov dx, 003f5h                            ; ba f5 03
     
    47064734    mov AL, strict byte 002h                  ; b0 02
    47074735    out DX, AL                                ; ee
    4708     mov al, byte [bp-00eh]                    ; 8a 46 f2
    4709     xor ah, ah                                ; 30 e4
    4710     mov dl, byte [bp-008h]                    ; 8a 56 f8
     4736    mov dl, byte [bp-00eh]                    ; 8a 56 f2
    47114737    xor dh, dh                                ; 30 f6
     4738    mov al, byte [bp-008h]                    ; 8a 46 f8
     4739    xor ah, ah                                ; 30 e4
    47124740    add ax, dx                                ; 01 d0
    47134741    dec ax                                    ; 48
     
    47184746    mov AL, strict byte 0ffh                  ; b0 ff
    47194747    out DX, AL                                ; ee
    4720     call 02f20h                               ; e8 25 f9
     4748    call 02f20h                               ; e8 e4 f8
    47214749    test al, al                               ; 84 c0
    4722     jne short 03602h                          ; 75 03
    4723     jmp near 03499h                           ; e9 97 fe
     4750    jne short 03643h                          ; 75 03
     4751    jmp near 034cah                           ; e9 87 fe
    47244752    mov dx, 003f4h                            ; ba f4 03
    47254753    in AL, DX                                 ; ec
     
    47284756    and AL, strict byte 0c0h                  ; 24 c0
    47294757    cmp AL, strict byte 0c0h                  ; 3c c0
    4730     je short 03620h                           ; 74 12
     4758    je short 03661h                           ; 74 12
    47314759    mov ax, 00275h                            ; b8 75 02
    47324760    push ax                                   ; 50
     
    47354763    mov ax, strict word 00007h                ; b8 07 00
    47364764    push ax                                   ; 50
    4737     call 01976h                               ; e8 59 e3
     4765    call 01976h                               ; e8 18 e3
    47384766    add sp, strict byte 00006h                ; 83 c4 06
    47394767    xor si, si                                ; 31 f6
    4740     jmp short 03629h                          ; eb 05
     4768    jmp short 0366ah                          ; eb 05
    47414769    cmp si, strict byte 00007h                ; 83 fe 07
    4742     jnl short 03642h                          ; 7d 19
     4770    jnl short 03683h                          ; 7d 19
    47434771    mov dx, 003f5h                            ; ba f5 03
    47444772    in AL, DX                                 ; ec
     
    47504778    lea dx, [si+042h]                         ; 8d 54 42
    47514779    mov ax, strict word 00040h                ; b8 40 00
    4752     call 01660h                               ; e8 21 e0
     4780    call 01660h                               ; e8 e0 df
    47534781    inc si                                    ; 46
    4754     jmp short 03624h                          ; eb e2
     4782    jmp short 03665h                          ; eb e2
    47554783    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4756     jne short 0364bh                          ; 75 03
    4757     jmp near 03524h                           ; e9 d9 fe
     4784    jne short 0368ch                          ; 75 03
     4785    jmp near 03565h                           ; e9 d9 fe
    47584786    test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4759     je short 0365dh                           ; 74 0c
     4787    je short 0369eh                           ; 74 0c
    47604788    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    47614789    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4762     jmp near 03679h                           ; e9 1c 00
     4790    jmp near 036bah                           ; e9 1c 00
    47634791    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4764     jmp short 03656h                          ; eb f2
     4792    jmp short 03697h                          ; eb f2
    47654793    mov dl, byte [bp-00ah]                    ; 8a 56 f6
    47664794    xor dh, dh                                ; 30 f6
    47674795    mov al, byte [bp-006h]                    ; 8a 46 fa
    47684796    xor ah, ah                                ; 30 e4
    4769     call 02ec9h                               ; e8 58 f8
     4797    call 02ec9h                               ; e8 17 f8
    47704798    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    47714799    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    47794807    mov al, byte [bp+015h]                    ; 8a 46 15
    47804808    xor ah, ah                                ; 30 e4
     4809    mov dx, ax                                ; 89 c2
    47814810    mov byte [bp-00ah], al                    ; 88 46 f6
    4782     mov dl, byte [bp+013h]                    ; 8a 56 13
    4783     xor dh, dh                                ; 30 f6
    4784     mov byte [bp-00ch], dl                    ; 88 56 f4
     4811    mov al, byte [bp+013h]                    ; 8a 46 13
     4812    mov byte [bp-00ch], al                    ; 88 46 f4
    47854813    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    47864814    mov byte [bp-006h], bl                    ; 88 5e fa
    47874815    cmp bl, 001h                              ; 80 fb 01
    4788     jnbe short 036b5h                         ; 77 14
    4789     cmp dl, 001h                              ; 80 fa 01
    4790     jnbe short 036b5h                         ; 77 0f
    4791     cmp AL, strict byte 04fh                  ; 3c 4f
    4792     jnbe short 036b5h                         ; 77 0b
     4816    jnbe short 036f6h                         ; 77 14
     4817    cmp AL, strict byte 001h                  ; 3c 01
     4818    jnbe short 036f6h                         ; 77 10
     4819    cmp dl, 04fh                              ; 80 fa 4f
     4820    jnbe short 036f6h                         ; 77 0b
    47934821    mov al, byte [bp-008h]                    ; 8a 46 f8
    47944822    test al, al                               ; 84 c0
    4795     je short 036b5h                           ; 74 04
     4823    je short 036f6h                           ; 74 04
    47964824    cmp AL, strict byte 012h                  ; 3c 12
    4797     jbe short 036cah                          ; 76 15
     4825    jbe short 0370bh                          ; 76 15
    47984826    mov ax, word [bp+016h]                    ; 8b 46 16
    47994827    xor ah, ah                                ; 30 e4
     
    48014829    mov word [bp+016h], ax                    ; 89 46 16
    48024830    mov ax, strict word 00001h                ; b8 01 00
    4803     call 02eb0h                               ; e8 ea f7
     4831    call 02eb0h                               ; e8 a9 f7
    48044832    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    48054833    mov al, byte [bp-006h]                    ; 8a 46 fa
    48064834    xor ah, ah                                ; 30 e4
    4807     call 031e4h                               ; e8 12 fb
     4835    call 03202h                               ; e8 ef fa
    48084836    test ax, ax                               ; 85 c0
    4809     jne short 036d9h                          ; 75 03
    4810     jmp near 032d2h                           ; e9 f9 fb
    4811     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4812     xor bh, bh                                ; 30 ff
    4813     mov ax, bx                                ; 89 d8
    4814     call 03013h                               ; e8 30 f9
     4837    jne short 0371ah                          ; 75 03
     4838    jmp near 032f2h                           ; e9 d8 fb
     4839    mov dl, byte [bp-006h]                    ; 8a 56 fa
     4840    xor dh, dh                                ; 30 f6
     4841    mov ax, dx                                ; 89 d0
     4842    call 03031h                               ; e8 0d f9
    48154843    test ax, ax                               ; 85 c0
    4816     jne short 036f3h                          ; 75 0c
    4817     mov ax, bx                                ; 89 d8
    4818     call 030eah                               ; e8 fe f9
     4844    jne short 03734h                          ; 75 0c
     4845    mov ax, dx                                ; 89 d0
     4846    call 03108h                               ; e8 db f9
    48194847    test ax, ax                               ; 85 c0
    4820     jne short 036f3h                          ; 75 03
    4821     jmp near 033a6h                           ; e9 b3 fc
     4848    jne short 03734h                          ; 75 03
     4849    jmp near 033dah                           ; e9 a6 fc
    48224850    mov CL, strict byte 00ch                  ; b1 0c
     4851    mov ax, word [bp+006h]                    ; 8b 46 06
     4852    shr ax, CL                                ; d3 e8
     4853    mov ch, al                                ; 88 c5
     4854    mov CL, strict byte 004h                  ; b1 04
    48234855    mov dx, word [bp+006h]                    ; 8b 56 06
    4824     shr dx, CL                                ; d3 ea
    4825     mov ch, dl                                ; 88 d5
    4826     mov CL, strict byte 004h                  ; b1 04
    4827     mov ax, word [bp+006h]                    ; 8b 46 06
    4828     sal ax, CL                                ; d3 e0
     4856    sal dx, CL                                ; d3 e2
    48294857    mov bx, word [bp+010h]                    ; 8b 5e 10
    4830     add bx, ax                                ; 01 c3
    4831     mov word [bp-012h], bx                    ; 89 5e ee
    4832     cmp ax, bx                                ; 39 d8
    4833     jbe short 03711h                          ; 76 02
     4858    add bx, dx                                ; 01 d3
     4859    mov word [bp-014h], bx                    ; 89 5e ec
     4860    cmp dx, bx                                ; 39 da
     4861    jbe short 03752h                          ; 76 02
    48344862    db  0feh, 0c5h
    48354863    ; inc ch                                    ; fe c5
     
    48404868    sal bx, 1                                 ; d1 e3
    48414869    dec bx                                    ; 4b
    4842     mov ax, word [bp-012h]                    ; 8b 46 ee
     4870    mov ax, word [bp-014h]                    ; 8b 46 ec
    48434871    add ax, bx                                ; 01 d8
    4844     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4845     jnc short 03732h                          ; 73 0b
     4872    cmp ax, word [bp-014h]                    ; 3b 46 ec
     4873    jnc short 03773h                          ; 73 0b
    48464874    mov ax, word [bp+016h]                    ; 8b 46 16
    48474875    xor ah, ah                                ; 30 e4
    48484876    or ah, 009h                               ; 80 cc 09
    4849     jmp near 033ffh                           ; e9 cd fc
     4877    jmp near 0342fh                           ; e9 bc fc
    48504878    mov AL, strict byte 006h                  ; b0 06
    48514879    mov dx, strict word 0000ah                ; ba 0a 00
     
    48544882    mov dx, strict word 0000ch                ; ba 0c 00
    48554883    out DX, AL                                ; ee
    4856     mov al, byte [bp-012h]                    ; 8a 46 ee
     4884    mov al, byte [bp-014h]                    ; 8a 46 ec
    48574885    mov dx, strict word 00004h                ; ba 04 00
    48584886    out DX, AL                                ; ee
    4859     mov al, byte [bp-011h]                    ; 8a 46 ef
     4887    mov al, byte [bp-013h]                    ; 8a 46 ed
    48604888    out DX, AL                                ; ee
    48614889    xor al, al                                ; 30 c0
     
    48764904    mov dx, strict word 0000ah                ; ba 0a 00
    48774905    out DX, AL                                ; ee
    4878     mov al, byte [bp-006h]                    ; 8a 46 fa
    4879     xor ah, ah                                ; 30 e4
    4880     call 02f8fh                               ; e8 1d f8
     4906    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4907    xor bh, bh                                ; 30 ff
     4908    mov ax, bx                                ; 89 d8
     4909    call 02fadh                               ; e8 f8 f7
    48814910    mov AL, strict byte 00fh                  ; b0 0f
    48824911    mov dx, 003f5h                            ; ba f5 03
     
    48864915    sal ax, 1                                 ; d1 e0
    48874916    sal ax, 1                                 ; d1 e0
    4888     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4889     xor bh, bh                                ; 30 ff
    4890     or bx, ax                                 ; 09 c3
    4891     mov al, bl                                ; 88 d8
     4917    mov cl, bl                                ; 88 d9
     4918    xor ch, ch                                ; 30 ed
     4919    or cx, ax                                 ; 09 c1
     4920    mov al, cl                                ; 88 c8
    48924921    out DX, AL                                ; ee
    48934922    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    48954924    mov AL, strict byte 04dh                  ; b0 4d
    48964925    out DX, AL                                ; ee
    4897     mov al, bl                                ; 88 d8
     4926    mov al, cl                                ; 88 c8
    48984927    out DX, AL                                ; ee
    48994928    mov AL, strict byte 002h                  ; b0 02
     
    49054934    mov AL, strict byte 0f6h                  ; b0 f6
    49064935    out DX, AL                                ; ee
    4907     call 02f20h                               ; e8 7b f7
     4936    call 02f20h                               ; e8 39 f7
    49084937    test al, al                               ; 84 c0
    4909     jne short 037afh                          ; 75 06
    4910     call 02f67h                               ; e8 bb f7
    4911     jmp near 032d2h                           ; e9 23 fb
     4938    jne short 037f3h                          ; 75 08
     4939    mov ax, bx                                ; 89 d8
     4940    call 02f67h                               ; e8 77 f7
     4941    jmp near 032f2h                           ; e9 ff fa
    49124942    mov dx, 003f4h                            ; ba f4 03
    49134943    in AL, DX                                 ; ec
     
    49164946    and AL, strict byte 0c0h                  ; 24 c0
    49174947    cmp AL, strict byte 0c0h                  ; 3c c0
    4918     je short 037cdh                           ; 74 12
     4948    je short 03811h                           ; 74 12
    49194949    mov ax, 00275h                            ; b8 75 02
    49204950    push ax                                   ; 50
     
    49234953    mov ax, strict word 00007h                ; b8 07 00
    49244954    push ax                                   ; 50
    4925     call 01976h                               ; e8 ac e1
     4955    call 01976h                               ; e8 68 e1
    49264956    add sp, strict byte 00006h                ; 83 c4 06
    49274957    xor si, si                                ; 31 f6
    4928     jmp short 037d6h                          ; eb 05
     4958    jmp short 0381ah                          ; eb 05
    49294959    cmp si, strict byte 00007h                ; 83 fe 07
    4930     jnl short 037efh                          ; 7d 19
     4960    jnl short 03833h                          ; 7d 19
    49314961    mov dx, 003f5h                            ; ba f5 03
    49324962    in AL, DX                                 ; ec
     
    49384968    lea dx, [si+042h]                         ; 8d 54 42
    49394969    mov ax, strict word 00040h                ; b8 40 00
    4940     call 01660h                               ; e8 74 de
     4970    call 01660h                               ; e8 30 de
    49414971    inc si                                    ; 46
    4942     jmp short 037d1h                          ; eb e2
     4972    jmp short 03815h                          ; eb e2
    49434973    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4944     je short 03810h                           ; 74 1b
     4974    je short 03854h                           ; 74 1b
    49454975    test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4946     je short 037feh                           ; 74 03
    4947     jmp near 03651h                           ; e9 53 fe
     4976    je short 03842h                           ; 74 03
     4977    jmp near 03692h                           ; e9 50 fe
    49484978    mov ax, 00275h                            ; b8 75 02
    49494979    push ax                                   ; 50
     
    49524982    mov ax, strict word 00007h                ; b8 07 00
    49534983    push ax                                   ; 50
    4954     call 01976h                               ; e8 69 e1
     4984    call 01976h                               ; e8 25 e1
    49554985    add sp, strict byte 00006h                ; 83 c4 06
    49564986    xor al, al                                ; 30 c0
    49574987    mov byte [bp+017h], al                    ; 88 46 17
    49584988    xor ah, ah                                ; 30 e4
    4959     call 02eb0h                               ; e8 96 f6
     4989    call 02eb0h                               ; e8 52 f6
    49604990    mov al, byte [bp-006h]                    ; 8a 46 fa
    49614991    xor ah, ah                                ; 30 e4
    49624992    xor dx, dx                                ; 31 d2
    4963     call 02ec9h                               ; e8 a5 f6
    4964     jmp near 039fdh                           ; e9 d6 01
     4993    call 02ec9h                               ; e8 61 f6
     4994    jmp near 03a41h                           ; e9 d6 01
    49654995    mov byte [bp-006h], al                    ; 88 46 fa
    49664996    cmp AL, strict byte 001h                  ; 3c 01
    4967     jbe short 03856h                          ; 76 28
     4997    jbe short 0389ah                          ; 76 28
    49684998    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    49694999    mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
     
    49755005    xor ah, ah                                ; 30 e4
    49765006    mov word [bp+012h], ax                    ; 89 46 12
    4977     jmp near 03978h                           ; e9 22 01
     5007    jmp near 039bch                           ; e9 22 01
    49785008    mov ax, strict word 00010h                ; b8 10 00
    4979     call 016aeh                               ; e8 52 de
     5009    call 016aeh                               ; e8 0e de
    49805010    mov ch, al                                ; 88 c5
    49815011    xor ah, ah                                ; 30 e4
    49825012    test AL, strict byte 0f0h                 ; a8 f0
    4983     je short 03866h                           ; 74 02
     5013    je short 038aah                           ; 74 02
    49845014    mov AH, strict byte 001h                  ; b4 01
    49855015    test ch, 00fh                             ; f6 c5 0f
    4986     je short 0386dh                           ; 74 02
     5016    je short 038b1h                           ; 74 02
    49875017    db  0feh, 0c4h
    49885018    ; inc ah                                    ; fe c4
    49895019    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4990     jne short 03879h                          ; 75 06
     5020    jne short 038bdh                          ; 75 06
    49915021    mov CL, strict byte 004h                  ; b1 04
    49925022    shr ch, CL                                ; d2 ed
    4993     jmp short 0387ch                          ; eb 03
     5023    jmp short 038c0h                          ; eb 03
    49945024    and ch, 00fh                              ; 80 e5 0f
    49955025    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    50065036    mov word [bp+012h], ax                    ; 89 46 12
    50075037    cmp ch, 003h                              ; 80 fd 03
    5008     jc short 038b8h                           ; 72 15
    5009     jbe short 038dfh                          ; 76 3a
     5038    jc short 038fch                           ; 72 15
     5039    jbe short 03923h                          ; 76 3a
    50105040    cmp ch, 005h                              ; 80 fd 05
    5011     jc short 038e6h                           ; 72 3c
    5012     jbe short 038edh                          ; 76 41
     5041    jc short 0392ah                           ; 72 3c
     5042    jbe short 03931h                          ; 76 41
    50135043    cmp ch, 00fh                              ; 80 fd 0f
    5014     je short 038fbh                           ; 74 4a
     5044    je short 0393fh                           ; 74 4a
    50155045    cmp ch, 00eh                              ; 80 fd 0e
    5016     je short 038f4h                           ; 74 3e
    5017     jmp short 03902h                          ; eb 4a
     5046    je short 03938h                           ; 74 3e
     5047    jmp short 03946h                          ; eb 4a
    50185048    cmp ch, 002h                              ; 80 fd 02
    5019     je short 038d8h                           ; 74 1b
     5049    je short 0391ch                           ; 74 1b
    50205050    cmp ch, 001h                              ; 80 fd 01
    5021     je short 038d1h                           ; 74 0f
     5051    je short 03915h                           ; 74 0f
    50225052    test ch, ch                               ; 84 ed
    5023     jne short 03902h                          ; 75 3c
     5053    jne short 03946h                          ; 75 3c
    50245054    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    50255055    mov byte [bp+013h], 000h                  ; c6 46 13 00
    5026     jmp short 03914h                          ; eb 43
     5056    jmp short 03958h                          ; eb 43
    50275057    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    5028     jmp short 03914h                          ; eb 3c
     5058    jmp short 03958h                          ; eb 3c
    50295059    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    5030     jmp short 03914h                          ; eb 35
     5060    jmp short 03958h                          ; eb 35
    50315061    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    5032     jmp short 03914h                          ; eb 2e
     5062    jmp short 03958h                          ; eb 2e
    50335063    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    5034     jmp short 03914h                          ; eb 27
     5064    jmp short 03958h                          ; eb 27
    50355065    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    5036     jmp short 03914h                          ; eb 20
     5066    jmp short 03958h                          ; eb 20
    50375067    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    5038     jmp short 03914h                          ; eb 19
     5068    jmp short 03958h                          ; eb 19
    50395069    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    5040     jmp short 03914h                          ; eb 12
     5070    jmp short 03958h                          ; eb 12
    50415071    mov ax, 00275h                            ; b8 75 02
    50425072    push ax                                   ; 50
     
    50455075    mov ax, strict word 00007h                ; b8 07 00
    50465076    push ax                                   ; 50
    5047     call 01976h                               ; e8 65 e0
     5077    call 01976h                               ; e8 21 e0
    50485078    add sp, strict byte 00006h                ; 83 c4 06
    50495079    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    50505080    mov al, ch                                ; 88 e8
    50515081    xor ah, ah                                ; 30 e4
    5052     call 03b8bh                               ; e8 6b 02
     5082    call 03bd1h                               ; e8 6d 02
    50535083    mov word [bp+008h], ax                    ; 89 46 08
    5054     jmp near 039fdh                           ; e9 d7 00
     5084    jmp near 03a41h                           ; e9 d7 00
    50555085    mov byte [bp-006h], al                    ; 88 46 fa
    50565086    cmp AL, strict byte 001h                  ; 3c 01
    5057     jbe short 03932h                          ; 76 05
     5087    jbe short 03976h                          ; 76 05
    50585088    mov word [bp+016h], si                    ; 89 76 16
    5059     jmp short 03978h                          ; eb 46
     5089    jmp short 039bch                          ; eb 46
    50605090    mov ax, strict word 00010h                ; b8 10 00
    5061     call 016aeh                               ; e8 76 dd
     5091    call 016aeh                               ; e8 32 dd
    50625092    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5063     jne short 03946h                          ; 75 08
     5093    jne short 0398ah                          ; 75 08
    50645094    mov CL, strict byte 004h                  ; b1 04
    50655095    mov ch, al                                ; 88 c5
    50665096    shr ch, CL                                ; d2 ed
    5067     jmp short 0394bh                          ; eb 05
     5097    jmp short 0398fh                          ; eb 05
    50685098    mov ch, al                                ; 88 c5
    50695099    and ch, 00fh                              ; 80 e5 0f
     
    50725102    xor ah, ah                                ; 30 e4
    50735103    test ch, ch                               ; 84 ed
    5074     je short 03965h                           ; 74 0d
     5104    je short 039a9h                           ; 74 0d
    50755105    cmp ch, 001h                              ; 80 fd 01
    5076     jbe short 03962h                          ; 76 05
     5106    jbe short 039a6h                          ; 76 05
    50775107    or ah, 002h                               ; 80 cc 02
    5078     jmp short 03965h                          ; eb 03
     5108    jmp short 039a9h                          ; eb 03
    50795109    or ah, 001h                               ; 80 cc 01
    50805110    mov word [bp+016h], ax                    ; 89 46 16
    5081     jmp near 03679h                           ; e9 0e fd
     5111    jmp near 036bah                           ; e9 0b fd
    50825112    cmp AL, strict byte 001h                  ; 3c 01
    5083     jbe short 0397eh                          ; 76 0f
     5113    jbe short 039c2h                          ; 76 0f
    50845114    mov word [bp+016h], si                    ; 89 76 16
    50855115    mov ax, strict word 00001h                ; b8 01 00
    5086     call 02eb0h                               ; e8 38 f5
     5116    call 02eb0h                               ; e8 f4 f4
    50875117    mov word [bp+01ch], dx                    ; 89 56 1c
    5088     jmp near 03679h                           ; e9 fb fc
     5118    jmp near 036bah                           ; e9 f8 fc
    50895119    mov ax, word [bp+016h]                    ; 8b 46 16
    50905120    xor ah, ah                                ; 30 e4
     
    50925122    mov word [bp+016h], ax                    ; 89 46 16
    50935123    mov ax, strict word 00006h                ; b8 06 00
    5094     jmp near 0329eh                           ; e9 0f f9
     5124    jmp near 032beh                           ; e9 eb f8
    50955125    mov byte [bp-006h], al                    ; 88 46 fa
    50965126    mov bl, ch                                ; 88 eb
    50975127    cmp AL, strict byte 001h                  ; 3c 01
    5098     jnbe short 0396fh                         ; 77 d7
     5128    jnbe short 039b3h                         ; 77 d7
    50995129    mov al, byte [bp-006h]                    ; 8a 46 fa
    51005130    xor ah, ah                                ; 30 e4
    5101     call 031e4h                               ; e8 44 f8
     5131    call 03202h                               ; e8 1e f8
    51025132    test ax, ax                               ; 85 c0
    5103     jne short 039a7h                          ; 75 03
    5104     jmp near 032d2h                           ; e9 2b f9
     5133    jne short 039ebh                          ; 75 03
     5134    jmp near 032f2h                           ; e9 07 f9
    51055135    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5106     je short 039b2h                           ; 74 05
     5136    je short 039f6h                           ; 74 05
    51075137    mov dx, 00091h                            ; ba 91 00
    5108     jmp short 039b5h                          ; eb 03
     5138    jmp short 039f9h                          ; eb 03
    51095139    mov dx, 00090h                            ; ba 90 00
    5110     mov word [bp-012h], dx                    ; 89 56 ee
     5140    mov word [bp-014h], dx                    ; 89 56 ec
    51115141    mov ax, strict word 00040h                ; b8 40 00
    5112     call 01652h                               ; e8 94 dc
     5142    call 01652h                               ; e8 50 dc
    51135143    and AL, strict byte 00fh                  ; 24 0f
    51145144    cmp bl, 002h                              ; 80 fb 02
    5115     jc short 039d4h                           ; 72 0f
    5116     jbe short 039e0h                          ; 76 19
     5145    jc short 03a18h                           ; 72 0f
     5146    jbe short 03a24h                          ; 76 19
    51175147    cmp bl, 004h                              ; 80 fb 04
    5118     je short 039dch                           ; 74 10
     5148    je short 03a20h                           ; 74 10
    51195149    cmp bl, 003h                              ; 80 fb 03
    5120     je short 039e4h                           ; 74 13
    5121     jmp near 03290h                           ; e9 bc f8
     5150    je short 03a28h                           ; 74 13
     5151    jmp near 032b0h                           ; e9 98 f8
    51225152    cmp bl, 001h                              ; 80 fb 01
    5123     je short 039dch                           ; 74 03
    5124     jmp near 03290h                           ; e9 b4 f8
     5153    je short 03a20h                           ; 74 03
     5154    jmp near 032b0h                           ; e9 90 f8
    51255155    or AL, strict byte 090h                   ; 0c 90
    5126     jmp short 039e6h                          ; eb 06
     5156    jmp short 03a2ah                          ; eb 06
    51275157    or AL, strict byte 070h                   ; 0c 70
    5128     jmp short 039e6h                          ; eb 02
     5158    jmp short 03a2ah                          ; eb 02
    51295159    or AL, strict byte 010h                   ; 0c 10
    51305160    mov bl, al                                ; 88 c3
    51315161    xor bh, bh                                ; 30 ff
    5132     mov dx, word [bp-012h]                    ; 8b 56 ee
     5162    mov dx, word [bp-014h]                    ; 8b 56 ec
    51335163    mov ax, strict word 00040h                ; b8 40 00
    5134     call 01660h                               ; e8 6d dc
     5164    call 01660h                               ; e8 29 dc
    51355165    xor al, al                                ; 30 c0
    51365166    mov byte [bp+017h], al                    ; 88 46 17
    51375167    xor ah, ah                                ; 30 e4
    5138     call 02eb0h                               ; e8 b3 f4
     5168    call 02eb0h                               ; e8 6f f4
    51395169    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    5140     jmp near 03679h                           ; e9 75 fc
     5170    jmp near 036bah                           ; e9 72 fc
    51415171    mov byte [bp-006h], al                    ; 88 46 fa
    5142     mov ah, cl                                ; 88 cc
     5172    mov ah, byte [bp+014h]                    ; 8a 66 14
    51435173    and ah, 03fh                              ; 80 e4 3f
    51445174    mov byte [bp-008h], ah                    ; 88 66 f8
    5145     mov bl, cl                                ; 88 cb
     5175    mov bl, byte [bp-010h]                    ; 8a 5e f0
    51465176    mov CL, strict byte 006h                  ; b1 06
    51475177    sar bx, CL                                ; d3 fb
    51485178    mov bh, bl                                ; 88 df
    51495179    xor bl, bl                                ; 30 db
    5150     add bx, word [bp-014h]                    ; 03 5e ec
     5180    add bx, word [bp-012h]                    ; 03 5e ee
    51515181    mov byte [bp-00ah], bl                    ; 88 5e f6
    51525182    cmp AL, strict byte 001h                  ; 3c 01
    5153     jbe short 03a26h                          ; 76 03
    5154     jmp near 0396fh                           ; e9 49 ff
     5183    jbe short 03a6ch                          ; 76 03
     5184    jmp near 039b3h                           ; e9 47 ff
    51555185    mov al, byte [bp-006h]                    ; 8a 46 fa
    51565186    xor ah, ah                                ; 30 e4
    5157     call 031e4h                               ; e8 b6 f7
     5187    call 03202h                               ; e8 8e f7
    51585188    test ax, ax                               ; 85 c0
    5159     jne short 03a35h                          ; 75 03
    5160     jmp near 032d2h                           ; e9 9d f8
    5161     mov bl, byte [bp-006h]                    ; 8a 5e fa
    5162     xor bh, bh                                ; 30 ff
    5163     mov ax, bx                                ; 89 d8
    5164     call 03013h                               ; e8 d4 f5
     5189    jne short 03a7bh                          ; 75 03
     5190    jmp near 032f2h                           ; e9 77 f8
     5191    mov dl, byte [bp-006h]                    ; 8a 56 fa
     5192    xor dh, dh                                ; 30 f6
     5193    mov ax, dx                                ; 89 d0
     5194    call 03031h                               ; e8 ac f5
    51655195    test ax, ax                               ; 85 c0
    5166     jne short 03a5dh                          ; 75 1a
    5167     mov ax, bx                                ; 89 d8
    5168     call 030eah                               ; e8 a2 f6
     5196    jne short 03aa3h                          ; 75 1a
     5197    mov ax, dx                                ; 89 d0
     5198    call 03108h                               ; e8 7a f6
    51695199    test ax, ax                               ; 85 c0
    5170     jne short 03a5dh                          ; 75 11
     5200    jne short 03aa3h                          ; 75 11
    51715201    mov ax, word [bp+016h]                    ; 8b 46 16
    51725202    xor ah, ah                                ; 30 e4
     
    51745204    mov word [bp+016h], ax                    ; 89 46 16
    51755205    mov ax, strict word 0000ch                ; b8 0c 00
    5176     jmp near 0329eh                           ; e9 41 f8
     5206    jmp near 032beh                           ; e9 1b f8
    51775207    mov ax, strict word 00010h                ; b8 10 00
    5178     call 016aeh                               ; e8 4b dc
     5208    call 016aeh                               ; e8 05 dc
    51795209    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5180     jne short 03a71h                          ; 75 08
     5210    jne short 03ab7h                          ; 75 08
    51815211    mov CL, strict byte 004h                  ; b1 04
    51825212    mov ch, al                                ; 88 c5
    51835213    shr ch, CL                                ; d2 ed
    5184     jmp short 03a76h                          ; eb 05
     5214    jmp short 03abch                          ; eb 05
    51855215    mov ch, al                                ; 88 c5
    51865216    and ch, 00fh                              ; 80 e5 0f
    51875217    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5188     je short 03a81h                           ; 74 05
     5218    je short 03ac7h                           ; 74 05
    51895219    mov dx, 00091h                            ; ba 91 00
    5190     jmp short 03a84h                          ; eb 03
     5220    jmp short 03acah                          ; eb 03
    51915221    mov dx, 00090h                            ; ba 90 00
    5192     mov word [bp-012h], dx                    ; 89 56 ee
     5222    mov word [bp-014h], dx                    ; 89 56 ec
    51935223    mov ax, strict word 00040h                ; b8 40 00
    5194     call 01652h                               ; e8 c5 db
     5224    call 01652h                               ; e8 7f db
    51955225    and AL, strict byte 00fh                  ; 24 0f
    51965226    cmp ch, 003h                              ; 80 fd 03
    5197     jc short 03ab0h                           ; 72 1c
     5227    jc short 03af6h                           ; 72 1c
    51985228    mov ah, al                                ; 88 c4
    51995229    or ah, 090h                               ; 80 cc 90
    52005230    cmp ch, 003h                              ; 80 fd 03
    5201     jbe short 03aech                          ; 76 4e
     5231    jbe short 03b32h                          ; 76 4e
    52025232    mov dl, al                                ; 88 c2
    52035233    or dl, 010h                               ; 80 ca 10
    52045234    cmp ch, 005h                              ; 80 fd 05
    5205     je short 03aeah                           ; 74 42
     5235    je short 03b30h                           ; 74 42
    52065236    cmp ch, 004h                              ; 80 fd 04
    5207     je short 03afah                           ; 74 4d
    5208     jmp near 03b36h                           ; e9 86 00
     5237    je short 03b40h                           ; 74 4d
     5238    jmp near 03b7ch                           ; e9 86 00
    52095239    cmp ch, 002h                              ; 80 fd 02
    5210     je short 03acah                           ; 74 15
     5240    je short 03b10h                           ; 74 15
    52115241    cmp ch, 001h                              ; 80 fd 01
    5212     jne short 03afeh                          ; 75 44
     5242    jne short 03b44h                          ; 75 44
    52135243    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5214     jne short 03afeh                          ; 75 3e
     5244    jne short 03b44h                          ; 75 3e
    52155245    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5216     jne short 03b16h                          ; 75 50
     5246    jne short 03b5ch                          ; 75 50
    52175247    or AL, strict byte 090h                   ; 0c 90
    5218     jmp short 03b16h                          ; eb 4c
     5248    jmp short 03b5ch                          ; eb 4c
    52195249    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5220     jne short 03adah                          ; 75 0a
     5250    jne short 03b20h                          ; 75 0a
    52215251    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5222     jne short 03adah                          ; 75 04
     5252    jne short 03b20h                          ; 75 04
    52235253    or AL, strict byte 070h                   ; 0c 70
    5224     jmp short 03b16h                          ; eb 3c
     5254    jmp short 03b5ch                          ; eb 3c
    52255255    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5226     jne short 03b16h                          ; 75 36
     5256    jne short 03b5ch                          ; 75 36
    52275257    cmp byte [bp-008h], 00fh                  ; 80 7e f8 0f
    5228     jne short 03b36h                          ; 75 50
     5258    jne short 03b7ch                          ; 75 50
    52295259    or AL, strict byte 010h                   ; 0c 10
    5230     jmp short 03b36h                          ; eb 4c
    5231     jmp short 03b18h                          ; eb 2c
     5260    jmp short 03b7ch                          ; eb 4c
     5261    jmp short 03b5eh                          ; eb 2c
    52325262    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5233     jne short 03b36h                          ; 75 44
     5263    jne short 03b7ch                          ; 75 44
    52345264    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5235     je short 03afch                           ; 74 04
    5236     jmp short 03b36h                          ; eb 3c
    5237     jmp short 03b00h                          ; eb 04
     5265    je short 03b42h                           ; 74 04
     5266    jmp short 03b7ch                          ; eb 3c
     5267    jmp short 03b46h                          ; eb 04
    52385268    mov al, ah                                ; 88 e0
    5239     jmp short 03b36h                          ; eb 36
     5269    jmp short 03b7ch                          ; eb 36
    52405270    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5241     jne short 03b36h                          ; 75 30
     5271    jne short 03b7ch                          ; 75 30
    52425272    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5243     jne short 03b0eh                          ; 75 02
    5244     jmp short 03afch                          ; eb ee
     5273    jne short 03b54h                          ; 75 02
     5274    jmp short 03b42h                          ; eb ee
    52455275    cmp byte [bp-008h], 012h                  ; 80 7e f8 12
    5246     jne short 03b36h                          ; 75 22
     5276    jne short 03b7ch                          ; 75 22
    52475277    mov al, dl                                ; 88 d0
    5248     jmp short 03b36h                          ; eb 1e
     5278    jmp short 03b7ch                          ; eb 1e
    52495279    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5250     jne short 03b36h                          ; 75 18
     5280    jne short 03b7ch                          ; 75 18
    52515281    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5252     jne short 03b26h                          ; 75 02
    5253     jmp short 03afch                          ; eb d6
     5282    jne short 03b6ch                          ; 75 02
     5283    jmp short 03b42h                          ; eb d6
    52545284    cmp byte [bp-008h], 012h                  ; 80 7e f8 12
    5255     jne short 03b2eh                          ; 75 02
    5256     jmp short 03b14h                          ; eb e6
     5285    jne short 03b74h                          ; 75 02
     5286    jmp short 03b5ah                          ; eb e6
    52575287    cmp byte [bp-008h], 024h                  ; 80 7e f8 24
    5258     jne short 03b36h                          ; 75 02
     5288    jne short 03b7ch                          ; 75 02
    52595289    or AL, strict byte 0d0h                   ; 0c d0
    52605290    mov dl, al                                ; 88 c2
     
    52635293    sar dx, CL                                ; d3 fa
    52645294    test dl, 001h                             ; f6 c2 01
    5265     jne short 03b46h                          ; 75 03
    5266     jmp near 03a4ch                           ; e9 06 ff
     5295    jne short 03b8ch                          ; 75 03
     5296    jmp near 03a92h                           ; e9 06 ff
    52675297    mov bl, al                                ; 88 c3
    52685298    xor bh, bh                                ; 30 ff
    5269     mov dx, word [bp-012h]                    ; 8b 56 ee
     5299    mov dx, word [bp-014h]                    ; 8b 56 ec
    52705300    mov ax, strict word 00040h                ; b8 40 00
    5271     call 01660h                               ; e8 0d db
     5301    call 01660h                               ; e8 c7 da
    52725302    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    52735303    mov al, ch                                ; 88 e8
    52745304    xor ah, ah                                ; 30 e4
    5275     call 03b8bh                               ; e8 2c 00
     5305    call 03bd1h                               ; e8 2c 00
    52765306    mov word [bp+008h], ax                    ; 89 46 08
    5277     jmp near 039f3h                           ; e9 8e fe
     5307    jmp near 03a37h                           ; e9 8c fe
    52785308    mov bx, 00da0h                            ; bb a0 0d
    52795309    mov cx, ds                                ; 8c d9
    52805310    mov ax, strict word 00004h                ; b8 04 00
    5281     call 01933h                               ; e8 c3 dd
     5311    call 01933h                               ; e8 7d dd
    52825312    mov al, byte [bp+017h]                    ; 8a 46 17
    52835313    xor ah, ah                                ; 30 e4
     
    52895319    mov ax, strict word 00004h                ; b8 04 00
    52905320    push ax                                   ; 50
    5291     call 01976h                               ; e8 f1 dd
     5321    call 01976h                               ; e8 ab dd
    52925322    add sp, strict byte 00008h                ; 83 c4 08
    5293     jmp near 03290h                           ; e9 05 f7
    5294 get_floppy_dpt_:                             ; 0xf3b8b LB 0x32
     5323    jmp near 032b0h                           ; e9 df f6
     5324get_floppy_dpt_:                             ; 0xf3bd1 LB 0x32
    52955325    push bx                                   ; 53
    52965326    push dx                                   ; 52
     
    52995329    mov dl, al                                ; 88 c2
    53005330    xor ax, ax                                ; 31 c0
    5301     jmp short 03b9ch                          ; eb 06
     5331    jmp short 03be2h                          ; eb 06
    53025332    inc ax                                    ; 40
    53035333    cmp ax, strict word 00007h                ; 3d 07 00
    5304     jnc short 03bb6h                          ; 73 1a
     5334    jnc short 03bfch                          ; 73 1a
    53055335    mov bx, ax                                ; 89 c3
    53065336    sal bx, 1                                 ; d1 e3
    53075337    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5308     jne short 03b96h                          ; 75 f0
     5338    jne short 03bdch                          ; 75 f0
    53095339    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    53105340    xor ah, ah                                ; 30 e4
     
    53125342    imul bx                                   ; f7 eb
    53135343    add ax, strict word 00000h                ; 05 00 00
    5314     jmp short 03bb9h                          ; eb 03
     5344    jmp short 03bffh                          ; eb 03
    53155345    mov ax, strict word 00041h                ; b8 41 00
    53165346    pop bp                                    ; 5d
     
    53185348    pop bx                                    ; 5b
    53195349    retn                                      ; c3
    5320 dummy_soft_reset_:                           ; 0xf3bbd LB 0x7
     5350dummy_soft_reset_:                           ; 0xf3c03 LB 0x7
    53215351    push bp                                   ; 55
    53225352    mov bp, sp                                ; 89 e5
     
    53245354    pop bp                                    ; 5d
    53255355    retn                                      ; c3
    5326 _cdemu_init:                                 ; 0xf3bc4 LB 0x18
     5356_cdemu_init:                                 ; 0xf3c0a LB 0x18
    53275357    push bp                                   ; 55
    53285358    mov bp, sp                                ; 89 e5
    53295359    mov dx, strict word 0000eh                ; ba 0e 00
    53305360    mov ax, strict word 00040h                ; b8 40 00
    5331     call 0166eh                               ; e8 9e da
     5361    call 0166eh                               ; e8 58 da
    53325362    xor bx, bx                                ; 31 db
    53335363    mov dx, 00366h                            ; ba 66 03
    5334     call 01660h                               ; e8 88 da
     5364    call 01660h                               ; e8 42 da
    53355365    mov sp, bp                                ; 89 ec
    53365366    pop bp                                    ; 5d
    53375367    retn                                      ; c3
    5338 _cdemu_isactive:                             ; 0xf3bdc LB 0x16
     5368_cdemu_isactive:                             ; 0xf3c22 LB 0x16
    53395369    push bp                                   ; 55
    53405370    mov bp, sp                                ; 89 e5
    53415371    mov dx, strict word 0000eh                ; ba 0e 00
    53425372    mov ax, strict word 00040h                ; b8 40 00
    5343     call 0166eh                               ; e8 86 da
     5373    call 0166eh                               ; e8 40 da
    53445374    mov dx, 00366h                            ; ba 66 03
    5345     call 01652h                               ; e8 64 da
     5375    call 01652h                               ; e8 1e da
    53465376    mov sp, bp                                ; 89 ec
    53475377    pop bp                                    ; 5d
    53485378    retn                                      ; c3
    5349 _cdemu_emulated_drive:                       ; 0xf3bf2 LB 0x16
     5379_cdemu_emulated_drive:                       ; 0xf3c38 LB 0x16
    53505380    push bp                                   ; 55
    53515381    mov bp, sp                                ; 89 e5
    53525382    mov dx, strict word 0000eh                ; ba 0e 00
    53535383    mov ax, strict word 00040h                ; b8 40 00
    5354     call 0166eh                               ; e8 70 da
     5384    call 0166eh                               ; e8 2a da
    53555385    mov dx, 00368h                            ; ba 68 03
    5356     call 01652h                               ; e8 4e da
     5386    call 01652h                               ; e8 08 da
    53575387    mov sp, bp                                ; 89 ec
    53585388    pop bp                                    ; 5d
    53595389    retn                                      ; c3
    5360 _int13_eltorito:                             ; 0xf3c08 LB 0x191
     5390_int13_eltorito:                             ; 0xf3c4e LB 0x191
    53615391    push bp                                   ; 55
    53625392    mov bp, sp                                ; 89 e5
     
    53655395    mov dx, strict word 0000eh                ; ba 0e 00
    53665396    mov ax, strict word 00040h                ; b8 40 00
    5367     call 0166eh                               ; e8 58 da
     5397    call 0166eh                               ; e8 12 da
    53685398    mov si, 00366h                            ; be 66 03
    53695399    mov di, ax                                ; 89 c7
     
    53715401    xor ah, ah                                ; 30 e4
    53725402    cmp ax, strict word 0004bh                ; 3d 4b 00
    5373     jc short 03c2fh                           ; 72 0a
    5374     jbe short 03c5ah                          ; 76 33
     5403    jc short 03c75h                           ; 72 0a
     5404    jbe short 03ca0h                          ; 76 33
    53755405    cmp ax, strict word 0004dh                ; 3d 4d 00
    5376     jbe short 03c34h                          ; 76 08
    5377     jmp near 03d5fh                           ; e9 30 01
     5406    jbe short 03c7ah                          ; 76 08
     5407    jmp near 03da5h                           ; e9 30 01
    53785408    cmp ax, strict word 0004ah                ; 3d 4a 00
    5379     jne short 03c57h                          ; 75 23
     5409    jne short 03c9dh                          ; 75 23
    53805410    mov bx, 00da0h                            ; bb a0 0d
    53815411    mov cx, ds                                ; 8c d9
    53825412    mov ax, strict word 00004h                ; b8 04 00
    5383     call 01933h                               ; e8 f4 dc
     5413    call 01933h                               ; e8 ae dc
    53845414    push word [bp+016h]                       ; ff 76 16
    53855415    mov ax, 002fch                            ; b8 fc 02
     
    53895419    mov ax, strict word 00004h                ; b8 04 00
    53905420    push ax                                   ; 50
    5391     call 01976h                               ; e8 25 dd
     5421    call 01976h                               ; e8 df dc
    53925422    add sp, strict byte 00008h                ; 83 c4 08
    5393     jmp near 03d7ah                           ; e9 23 01
    5394     jmp near 03d5fh                           ; e9 05 01
     5423    jmp near 03dc0h                           ; e9 23 01
     5424    jmp near 03da5h                           ; e9 05 01
    53955425    mov dx, word [bp+00ah]                    ; 8b 56 0a
    53965426    mov ax, word [bp+004h]                    ; 8b 46 04
    53975427    mov bx, strict word 00013h                ; bb 13 00
    5398     call 01660h                               ; e8 fa d9
     5428    call 01660h                               ; e8 b4 d9
    53995429    mov es, di                                ; 8e c7
    54005430    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    54035433    inc dx                                    ; 42
    54045434    mov ax, word [bp+004h]                    ; 8b 46 04
    5405     call 01660h                               ; e8 e8 d9
     5435    call 01660h                               ; e8 a2 d9
    54065436    mov es, di                                ; 8e c7
    54075437    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    54115441    inc dx                                    ; 42
    54125442    mov ax, word [bp+004h]                    ; 8b 46 04
    5413     call 01660h                               ; e8 d5 d9
     5443    call 01660h                               ; e8 8f d9
    54145444    mov es, di                                ; 8e c7
    54155445    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    54185448    add dx, strict byte 00003h                ; 83 c2 03
    54195449    mov ax, word [bp+004h]                    ; 8b 46 04
    5420     call 01660h                               ; e8 c1 d9
     5450    call 01660h                               ; e8 7b d9
    54215451    mov es, di                                ; 8e c7
    54225452    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    54255455    add dx, strict byte 00004h                ; 83 c2 04
    54265456    mov ax, word [bp+004h]                    ; 8b 46 04
    5427     call 0169ch                               ; e8 e7 d9
     5457    call 0169ch                               ; e8 a1 d9
    54285458    mov es, di                                ; 8e c7
    54295459    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    54315461    add dx, strict byte 00008h                ; 83 c2 08
    54325462    mov ax, word [bp+004h]                    ; 8b 46 04
    5433     call 0167ch                               ; e8 b5 d9
     5463    call 0167ch                               ; e8 6f d9
    54345464    mov es, di                                ; 8e c7
    54355465    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    54375467    add dx, strict byte 0000ah                ; 83 c2 0a
    54385468    mov ax, word [bp+004h]                    ; 8b 46 04
    5439     call 0167ch                               ; e8 a3 d9
     5469    call 0167ch                               ; e8 5d d9
    54405470    mov es, di                                ; 8e c7
    54415471    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    54435473    add dx, strict byte 0000ch                ; 83 c2 0c
    54445474    mov ax, word [bp+004h]                    ; 8b 46 04
    5445     call 0167ch                               ; e8 91 d9
     5475    call 0167ch                               ; e8 4b d9
    54465476    mov es, di                                ; 8e c7
    54475477    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    54495479    add dx, strict byte 0000eh                ; 83 c2 0e
    54505480    mov ax, word [bp+004h]                    ; 8b 46 04
    5451     call 0167ch                               ; e8 7f d9
     5481    call 0167ch                               ; e8 39 d9
    54525482    mov es, di                                ; 8e c7
    54535483    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    54565486    add dx, strict byte 00010h                ; 83 c2 10
    54575487    mov ax, word [bp+004h]                    ; 8b 46 04
    5458     call 01660h                               ; e8 4f d9
     5488    call 01660h                               ; e8 09 d9
    54595489    mov es, di                                ; 8e c7
    54605490    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    54635493    add dx, strict byte 00011h                ; 83 c2 11
    54645494    mov ax, word [bp+004h]                    ; 8b 46 04
    5465     call 01660h                               ; e8 3b d9
     5495    call 01660h                               ; e8 f5 d8
    54665496    mov es, di                                ; 8e c7
    54675497    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    54705500    add dx, strict byte 00012h                ; 83 c2 12
    54715501    mov ax, word [bp+004h]                    ; 8b 46 04
    5472     call 01660h                               ; e8 27 d9
     5502    call 01660h                               ; e8 e1 d8
    54735503    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5474     jne short 03d45h                          ; 75 06
     5504    jne short 03d8bh                          ; 75 06
    54755505    mov es, di                                ; 8e c7
    54765506    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    54795509    mov dx, strict word 00074h                ; ba 74 00
    54805510    mov ax, strict word 00040h                ; b8 40 00
    5481     call 01660h                               ; e8 0c d9
     5511    call 01660h                               ; e8 c6 d8
    54825512    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    54835513    lea sp, [bp-004h]                         ; 8d 66 fc
     
    54895519    mov cx, ds                                ; 8c d9
    54905520    mov ax, strict word 00004h                ; b8 04 00
    5491     call 01933h                               ; e8 c9 db
     5521    call 01933h                               ; e8 83 db
    54925522    mov al, byte [bp+017h]                    ; 8a 46 17
    54935523    xor ah, ah                                ; 30 e4
     
    54965526    push ax                                   ; 50
    54975527    mov ax, 00333h                            ; b8 33 03
    5498     jmp near 03c49h                           ; e9 cf fe
     5528    jmp near 03c8fh                           ; e9 cf fe
    54995529    mov ax, word [bp+016h]                    ; 8b 46 16
    55005530    xor ah, ah                                ; 30 e4
     
    55055535    mov dx, strict word 00074h                ; ba 74 00
    55065536    mov ax, strict word 00040h                ; b8 40 00
    5507     call 01660h                               ; e8 cd d8
     5537    call 01660h                               ; e8 87 d8
    55085538    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5509     jmp short 03d58h                          ; eb bf
    5510 device_is_cdrom_:                            ; 0xf3d99 LB 0x3f
     5539    jmp short 03d9eh                          ; eb bf
     5540device_is_cdrom_:                            ; 0xf3ddf LB 0x3f
    55115541    push bp                                   ; 55
    55125542    mov bp, sp                                ; 89 e5
     
    55175547    mov dx, strict word 0000eh                ; ba 0e 00
    55185548    mov ax, strict word 00040h                ; b8 40 00
    5519     call 0166eh                               ; e8 c4 d8
     5549    call 0166eh                               ; e8 7e d8
    55205550    mov cx, ax                                ; 89 c1
    55215551    cmp bl, 010h                              ; 80 fb 10
    5522     jc short 03db5h                           ; 72 04
     5552    jc short 03dfbh                           ; 72 04
    55235553    xor ax, ax                                ; 31 c0
    5524     jmp short 03dd0h                          ; eb 1b
     5554    jmp short 03e16h                          ; eb 1b
    55255555    mov al, bl                                ; 88 d8
    55265556    xor ah, ah                                ; 30 e4
     
    55315561    add bx, 00122h                            ; 81 c3 22 01
    55325562    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5533     jne short 03db1h                          ; 75 e4
     5563    jne short 03df7h                          ; 75 e4
    55345564    mov ax, strict word 00001h                ; b8 01 00
    55355565    lea sp, [bp-006h]                         ; 8d 66 fa
     
    55395569    pop bp                                    ; 5d
    55405570    retn                                      ; c3
    5541 cdrom_boot_:                                 ; 0xf3dd8 LB 0x43d
     5571cdrom_boot_:                                 ; 0xf3e1e LB 0x43d
    55425572    push bp                                   ; 55
    55435573    mov bp, sp                                ; 89 e5
     
    55505580    mov dx, strict word 0000eh                ; ba 0e 00
    55515581    mov ax, strict word 00040h                ; b8 40 00
    5552     call 0166eh                               ; e8 81 d8
     5582    call 0166eh                               ; e8 3b d8
    55535583    mov word [bp-01ah], ax                    ; 89 46 e6
    55545584    mov si, 00366h                            ; be 66 03
     
    55575587    mov word [bp-012h], ax                    ; 89 46 ee
    55585588    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5559     jmp short 03e0dh                          ; eb 09
     5589    jmp short 03e53h                          ; eb 09
    55605590    inc byte [bp-00ch]                        ; fe 46 f4
    55615591    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5562     jnc short 03e19h                          ; 73 0c
     5592    jnc short 03e5fh                          ; 73 0c
    55635593    mov al, byte [bp-00ch]                    ; 8a 46 f4
    55645594    xor ah, ah                                ; 30 e4
    5565     call 03d99h                               ; e8 84 ff
     5595    call 03ddfh                               ; e8 84 ff
    55665596    test ax, ax                               ; 85 c0
    5567     je short 03e04h                           ; 74 eb
     5597    je short 03e4ah                           ; 74 eb
    55685598    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5569     jc short 03e25h                           ; 72 06
     5599    jc short 03e6bh                           ; 72 06
    55705600    mov ax, strict word 00002h                ; b8 02 00
    5571     jmp near 041b2h                           ; e9 8d 03
     5601    jmp near 041f8h                           ; e9 8d 03
    55725602    mov cx, strict word 0000ch                ; b9 0c 00
    55735603    xor bx, bx                                ; 31 db
    55745604    mov dx, ss                                ; 8c d2
    55755605    lea ax, [bp-026h]                         ; 8d 46 da
    5576     call 0a080h                               ; e8 4e 62
     5606    call 0a0c0h                               ; e8 48 62
    55775607    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    55785608    mov ax, strict word 00011h                ; b8 11 00
     
    55905620    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    55915621    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5592     jmp short 03e6dh                          ; eb 09
     5622    jmp short 03eb3h                          ; eb 09
    55935623    inc byte [bp-00eh]                        ; fe 46 f2
    55945624    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5595     jnbe short 03eafh                         ; 77 42
     5625    jnbe short 03ef5h                         ; 77 42
    55965626    mov al, byte [bp-00ch]                    ; 8a 46 f4
    55975627    xor ah, ah                                ; 30 e4
     
    56225652    call word [word di+0006ah]                ; ff 95 6a 00
    56235653    test ax, ax                               ; 85 c0
    5624     jne short 03e64h                          ; 75 b5
     5654    jne short 03eaah                          ; 75 b5
    56255655    test ax, ax                               ; 85 c0
    5626     je short 03eb9h                           ; 74 06
     5656    je short 03effh                           ; 74 06
    56275657    mov ax, strict word 00003h                ; b8 03 00
    5628     jmp near 041b2h                           ; e9 f9 02
     5658    jmp near 041f8h                           ; e9 f9 02
    56295659    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5630     je short 03ec6h                           ; 74 06
     5660    je short 03f0ch                           ; 74 06
    56315661    mov ax, strict word 00004h                ; b8 04 00
    5632     jmp near 041b2h                           ; e9 ec 02
     5662    jmp near 041f8h                           ; e9 ec 02
    56335663    xor di, di                                ; 31 ff
    5634     jmp short 03ed0h                          ; eb 06
     5664    jmp short 03f16h                          ; eb 06
    56355665    inc di                                    ; 47
    56365666    cmp di, strict byte 00005h                ; 83 ff 05
    5637     jnc short 03ee0h                          ; 73 10
     5667    jnc short 03f26h                          ; 73 10
    56385668    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    56395669    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5640     je short 03ecah                           ; 74 f0
     5670    je short 03f10h                           ; 74 f0
    56415671    mov ax, strict word 00005h                ; b8 05 00
    5642     jmp near 041b2h                           ; e9 d2 02
     5672    jmp near 041f8h                           ; e9 d2 02
    56435673    xor di, di                                ; 31 ff
    5644     jmp short 03eeah                          ; eb 06
     5674    jmp short 03f30h                          ; eb 06
    56455675    inc di                                    ; 47
    56465676    cmp di, strict byte 00017h                ; 83 ff 17
    5647     jnc short 03efah                          ; 73 10
     5677    jnc short 03f40h                          ; 73 10
    56485678    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    56495679    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5650     je short 03ee4h                           ; 74 f0
     5680    je short 03f2ah                           ; 74 f0
    56515681    mov ax, strict word 00006h                ; b8 06 00
    5652     jmp near 041b2h                           ; e9 b8 02
     5682    jmp near 041f8h                           ; e9 b8 02
    56535683    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    56545684    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    56905720    call word [word di+0006ah]                ; ff 95 6a 00
    56915721    test ax, ax                               ; 85 c0
    5692     je short 03f62h                           ; 74 06
     5722    je short 03fa8h                           ; 74 06
    56935723    mov ax, strict word 00007h                ; b8 07 00
    5694     jmp near 041b2h                           ; e9 50 02
     5724    jmp near 041f8h                           ; e9 50 02
    56955725    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5696     je short 03f6fh                           ; 74 06
     5726    je short 03fb5h                           ; 74 06
    56975727    mov ax, strict word 00008h                ; b8 08 00
    5698     jmp near 041b2h                           ; e9 43 02
     5728    jmp near 041f8h                           ; e9 43 02
    56995729    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5700     je short 03f7ch                           ; 74 06
     5730    je short 03fc2h                           ; 74 06
    57015731    mov ax, strict word 00009h                ; b8 09 00
    5702     jmp near 041b2h                           ; e9 36 02
     5732    jmp near 041f8h                           ; e9 36 02
    57035733    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5704     je short 03f89h                           ; 74 06
     5734    je short 03fcfh                           ; 74 06
    57055735    mov ax, strict word 0000ah                ; b8 0a 00
    5706     jmp near 041b2h                           ; e9 29 02
     5736    jmp near 041f8h                           ; e9 29 02
    57075737    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5708     jne short 03f83h                          ; 75 f3
     5738    jne short 03fc9h                          ; 75 f3
    57095739    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5710     je short 03f9dh                           ; 74 06
     5740    je short 03fe3h                           ; 74 06
    57115741    mov ax, strict word 0000bh                ; b8 0b 00
    5712     jmp near 041b2h                           ; e9 15 02
     5742    jmp near 041f8h                           ; e9 15 02
    57135743    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    57145744    mov es, [bp-018h]                         ; 8e 46 e8
    57155745    mov byte [es:si+001h], al                 ; 26 88 44 01
    57165746    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5717     jne short 03fb6h                          ; 75 07
     5747    jne short 03ffch                          ; 75 07
    57185748    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5719     jmp short 03fc9h                          ; eb 13
     5749    jmp short 0400fh                          ; eb 13
    57205750    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5721     jnc short 03fc4h                          ; 73 07
     5751    jnc short 0400ah                          ; 73 07
    57225752    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5723     jmp short 03fc9h                          ; eb 05
     5753    jmp short 0400fh                          ; eb 05
    57245754    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    57255755    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    57405770    mov word [bp-010h], ax                    ; 89 46 f0
    57415771    test ax, ax                               ; 85 c0
    5742     jne short 03ff8h                          ; 75 05
     5772    jne short 0403eh                          ; 75 05
    57435773    mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
    57445774    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    57495779    mov word [es:si+00eh], bx                 ; 26 89 5c 0e
    57505780    test bx, bx                               ; 85 db
    5751     je short 0401ah                           ; 74 06
     5781    je short 04060h                           ; 74 06
    57525782    cmp bx, 00400h                            ; 81 fb 00 04
    5753     jbe short 04020h                          ; 76 06
     5783    jbe short 04066h                          ; 76 06
    57545784    mov ax, strict word 0000ch                ; b8 0c 00
    5755     jmp near 041b2h                           ; e9 92 01
     5785    jmp near 041f8h                           ; e9 92 01
    57565786    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    57575787    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    58015831    sal ax, 1                                 ; d1 e0
    58025832    rcl di, 1                                 ; d1 d7
    5803     loop 04098h                               ; e2 fa
     5833    loop 040deh                               ; e2 fa
    58045834    push di                                   ; 57
    58055835    push ax                                   ; 50
     
    58165846    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    58175847    test ax, ax                               ; 85 c0
    5818     je short 040cah                           ; 74 06
     5848    je short 04110h                           ; 74 06
    58195849    mov ax, strict word 0000dh                ; b8 0d 00
    5820     jmp near 041b2h                           ; e9 e8 00
     5850    jmp near 041f8h                           ; e9 e8 00
    58215851    mov es, [bp-018h]                         ; 8e 46 e8
    58225852    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    58235853    cmp AL, strict byte 002h                  ; 3c 02
    5824     jc short 040e2h                           ; 72 0d
    5825     jbe short 040fdh                          ; 76 26
     5854    jc short 04128h                           ; 72 0d
     5855    jbe short 04143h                          ; 76 26
    58265856    cmp AL, strict byte 004h                  ; 3c 04
    5827     je short 0410dh                           ; 74 32
     5857    je short 04153h                           ; 74 32
    58285858    cmp AL, strict byte 003h                  ; 3c 03
    5829     je short 04105h                           ; 74 26
    5830     jmp near 0415ah                           ; e9 78 00
     5859    je short 0414bh                           ; 74 26
     5860    jmp near 041a0h                           ; e9 78 00
    58315861    cmp AL, strict byte 001h                  ; 3c 01
    5832     jne short 0415ah                          ; 75 74
     5862    jne short 041a0h                          ; 75 74
    58335863    mov es, [bp-018h]                         ; 8e 46 e8
    58345864    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    58355865    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    58365866    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5837     jmp short 0415ah                          ; eb 5d
     5867    jmp short 041a0h                          ; eb 5d
    58385868    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5839     jmp short 040efh                          ; eb ea
     5869    jmp short 04135h                          ; eb ea
    58405870    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5841     jmp short 040efh                          ; eb e2
     5871    jmp short 04135h                          ; eb e2
    58425872    mov dx, 001c4h                            ; ba c4 01
    58435873    mov ax, word [bp-010h]                    ; 8b 46 f0
    5844     call 01652h                               ; e8 3c d5
     5874    call 01652h                               ; e8 f6 d4
    58455875    and AL, strict byte 03fh                  ; 24 3f
    58465876    xor ah, ah                                ; 30 e4
     
    58495879    mov dx, 001c4h                            ; ba c4 01
    58505880    mov ax, word [bp-010h]                    ; 8b 46 f0
    5851     call 01652h                               ; e8 28 d5
     5881    call 01652h                               ; e8 e2 d4
    58525882    xor ah, ah                                ; 30 e4
    58535883    mov bx, ax                                ; 89 c3
     
    58565886    mov dx, 001c5h                            ; ba c5 01
    58575887    mov ax, word [bp-010h]                    ; 8b 46 f0
    5858     call 01652h                               ; e8 17 d5
     5888    call 01652h                               ; e8 d1 d4
    58595889    xor ah, ah                                ; 30 e4
    58605890    add ax, bx                                ; 01 d8
     
    58645894    mov dx, 001c3h                            ; ba c3 01
    58655895    mov ax, word [bp-010h]                    ; 8b 46 f0
    5866     call 01652h                               ; e8 02 d5
     5896    call 01652h                               ; e8 bc d4
    58675897    xor ah, ah                                ; 30 e4
    58685898    inc ax                                    ; 40
     
    58715901    mov es, [bp-018h]                         ; 8e 46 e8
    58725902    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5873     je short 0419bh                           ; 74 37
     5903    je short 041e1h                           ; 74 37
    58745904    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5875     jne short 04183h                          ; 75 18
     5905    jne short 041c9h                          ; 75 18
    58765906    mov dx, strict word 00010h                ; ba 10 00
    58775907    mov ax, strict word 00040h                ; b8 40 00
    5878     call 01652h                               ; e8 de d4
     5908    call 01652h                               ; e8 98 d4
    58795909    mov bl, al                                ; 88 c3
    58805910    or bl, 041h                               ; 80 cb 41
     
    58825912    mov dx, strict word 00010h                ; ba 10 00
    58835913    mov ax, strict word 00040h                ; b8 40 00
    5884     jmp short 04198h                          ; eb 15
     5914    jmp short 041deh                          ; eb 15
    58855915    mov dx, 00304h                            ; ba 04 03
    58865916    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5887     call 01652h                               ; e8 c6 d4
     5917    call 01652h                               ; e8 80 d4
    58885918    mov bl, al                                ; 88 c3
    58895919    db  0feh, 0c3h
     
    58925922    mov dx, 00304h                            ; ba 04 03
    58935923    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5894     call 01660h                               ; e8 c5 d4
     5924    call 01660h                               ; e8 7f d4
    58955925    mov es, [bp-018h]                         ; 8e 46 e8
    58965926    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5897     je short 041a9h                           ; 74 04
     5927    je short 041efh                           ; 74 04
    58985928    mov byte [es:si], 001h                    ; 26 c6 04 01
    58995929    mov es, [bp-018h]                         ; 8e 46 e8
     
    59095939    retn                                      ; c3
    59105940    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5911     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0cch, 045h, 0bch
    5912     db  042h, 0f1h, 042h, 016h, 043h, 0e6h, 042h, 016h, 043h, 0e6h, 042h, 015h, 045h, 0fbh, 044h, 0cch
    5913     db  045h, 0cch, 045h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0c3h, 045h, 0fbh
    5914     db  044h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch
    5915     db  045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h
    5916 _int13_cdemu:                                ; 0xf4215 LB 0x453
     5941    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 012h, 046h, 002h
     5942    db  043h, 037h, 043h, 05ch, 043h, 02ch, 043h, 05ch, 043h, 02ch, 043h, 05bh, 045h, 041h, 045h, 012h
     5943    db  046h, 012h, 046h, 041h, 045h, 041h, 045h, 041h, 045h, 041h, 045h, 041h, 045h, 009h, 046h, 041h
     5944    db  045h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h
     5945    db  046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h
     5946_int13_cdemu:                                ; 0xf425b LB 0x453
    59175947    push bp                                   ; 55
    59185948    mov bp, sp                                ; 89 e5
     
    59225952    mov dx, strict word 0000eh                ; ba 0e 00
    59235953    mov ax, strict word 00040h                ; b8 40 00
    5924     call 0166eh                               ; e8 48 d4
     5954    call 0166eh                               ; e8 02 d4
    59255955    mov di, 00366h                            ; bf 66 03
    59265956    mov cx, ax                                ; 89 c1
     
    59385968    mov dx, strict word 00074h                ; ba 74 00
    59395969    mov ax, strict word 00040h                ; b8 40 00
    5940     call 01660h                               ; e8 0b d4
     5970    call 01660h                               ; e8 c5 d3
    59415971    mov es, cx                                ; 8e c1
    59425972    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5943     je short 0426ch                           ; 74 0f
     5973    je short 042b2h                           ; 74 0f
    59445974    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    59455975    xor ah, ah                                ; 30 e4
     
    59475977    xor dh, dh                                ; 30 f6
    59485978    cmp ax, dx                                ; 39 d0
    5949     je short 04296h                           ; 74 2a
     5979    je short 042dch                           ; 74 2a
    59505980    mov bx, 00da0h                            ; bb a0 0d
    59515981    mov cx, ds                                ; 8c d9
    59525982    mov ax, strict word 00004h                ; b8 04 00
    5953     call 01933h                               ; e8 bc d6
     5983    call 01933h                               ; e8 76 d6
    59545984    mov ax, word [bp+012h]                    ; 8b 46 12
    59555985    xor ah, ah                                ; 30 e4
     
    59635993    mov ax, strict word 00004h                ; b8 04 00
    59645994    push ax                                   ; 50
    5965     call 01976h                               ; e8 e6 d6
     5995    call 01976h                               ; e8 a0 d6
    59665996    add sp, strict byte 0000ah                ; 83 c4 0a
    5967     jmp near 045efh                           ; e9 59 03
     5997    jmp near 04635h                           ; e9 59 03
    59685998    mov al, byte [bp+017h]                    ; 8a 46 17
    59695999    xor ah, ah                                ; 30 e4
    59706000    mov dx, ax                                ; 89 c2
    59716001    cmp ax, strict word 00050h                ; 3d 50 00
    5972     jnbe short 04313h                         ; 77 71
     6002    jnbe short 04359h                         ; 77 71
    59736003    push CS                                   ; 0e
    59746004    pop ES                                    ; 07
    59756005    mov cx, strict word 0001eh                ; b9 1e 00
    5976     mov di, 041bch                            ; bf bc 41
     6006    mov di, 04202h                            ; bf 02 42
    59776007    repne scasb                               ; f2 ae
    59786008    sal cx, 1                                 ; d1 e1
    59796009    mov di, cx                                ; 89 cf
    5980     mov ax, word [cs:di+041d9h]               ; 2e 8b 85 d9 41
     6010    mov ax, word [cs:di+0421fh]               ; 2e 8b 85 1f 42
    59816011    mov bx, word [bp+016h]                    ; 8b 5e 16
    59826012    xor bh, bh                                ; 30 ff
     
    59926022    sal bx, 1                                 ; d1 e3
    59936023    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5994     je short 042e3h                           ; 74 09
     6024    je short 04329h                           ; 74 09
    59956025    mov al, byte [bp-006h]                    ; 8a 46 fa
    59966026    xor ah, ah                                ; 30 e4
    59976027    call word [word bx+00076h]                ; ff 97 76 00
    5998     jmp near 044fbh                           ; e9 15 02
     6028    jmp near 04541h                           ; e9 15 02
    59996029    mov ax, word [bp+016h]                    ; 8b 46 16
    60006030    xor ah, ah                                ; 30 e4
    60016031    or ah, 003h                               ; 80 cc 03
    6002     jmp near 045f7h                           ; e9 06 03
     6032    jmp near 0463dh                           ; e9 06 03
    60036033    mov dx, strict word 00074h                ; ba 74 00
    60046034    mov ax, strict word 00040h                ; b8 40 00
    6005     call 01652h                               ; e8 58 d3
     6035    call 01652h                               ; e8 12 d3
    60066036    mov cl, al                                ; 88 c1
    60076037    mov bh, al                                ; 88 c7
     
    60106040    mov dx, strict word 00074h                ; ba 74 00
    60116041    mov ax, strict word 00040h                ; b8 40 00
    6012     call 01660h                               ; e8 54 d3
     6042    call 01660h                               ; e8 0e d3
    60136043    test cl, cl                               ; 84 c9
    6014     je short 04375h                           ; 74 65
    6015     jmp near 04608h                           ; e9 f5 02
    6016     jmp near 045cch                           ; e9 b6 02
     6044    je short 043bbh                           ; 74 65
     6045    jmp near 0464eh                           ; e9 f5 02
     6046    jmp near 04612h                           ; e9 b6 02
    60176047    mov es, [bp-012h]                         ; 8e 46 ee
    60186048    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    60406070    mov word [bp-014h], cx                    ; 89 4e ec
    60416071    test cx, cx                               ; 85 c9
    6042     je short 04382h                           ; 74 1d
     6072    je short 043c8h                           ; 74 1d
    60436073    cmp di, word [bp-00ah]                    ; 3b 7e f6
    6044     jc short 04372h                           ; 72 08
     6074    jc short 043b8h                           ; 72 08
    60456075    cmp ax, dx                                ; 39 d0
    6046     jnc short 04372h                          ; 73 04
     6076    jnc short 043b8h                          ; 73 04
    60476077    cmp bx, si                                ; 39 f3
    6048     jnbe short 04378h                         ; 77 06
    6049     jmp near 045efh                           ; e9 7a 02
    6050     jmp near 044ffh                           ; e9 87 01
     6078    jnbe short 043beh                         ; 77 06
     6079    jmp near 04635h                           ; e9 7a 02
     6080    jmp near 04545h                           ; e9 87 01
    60516081    mov dl, byte [bp+017h]                    ; 8a 56 17
    60526082    xor dh, dh                                ; 30 f6
    60536083    cmp dx, strict byte 00004h                ; 83 fa 04
    6054     jne short 04385h                          ; 75 03
    6055     jmp near 044fbh                           ; e9 76 01
     6084    jne short 043cbh                          ; 75 03
     6085    jmp near 04541h                           ; e9 76 01
    60566086    mov CL, strict byte 004h                  ; b1 04
    60576087    mov dx, word [bp+010h]                    ; 8b 56 10
     
    60666096    xor dl, dl                                ; 30 d2
    60676097    xor cx, cx                                ; 31 c9
    6068     call 0a010h                               ; e8 6a 5c
     6098    call 0a050h                               ; e8 64 5c
    60696099    xor bx, bx                                ; 31 db
    60706100    add ax, si                                ; 01 f0
     
    60726102    mov bx, di                                ; 89 fb
    60736103    xor cx, cx                                ; 31 c9
    6074     call 0a010h                               ; e8 5d 5c
     6104    call 0a050h                               ; e8 57 5c
    60756105    mov bx, ax                                ; 89 c3
    60766106    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    61076137    mov dx, ss                                ; 8c d2
    61086138    lea ax, [bp-030h]                         ; 8d 46 d0
    6109     call 0a080h                               ; e8 76 5c
     6139    call 0a0c0h                               ; e8 70 5c
    61106140    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61116141    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    61606190    sal si, 1                                 ; d1 e6
    61616191    rcl di, 1                                 ; d1 d7
    6162     loop 0448fh                               ; e2 fa
     6192    loop 044d5h                               ; e2 fa
    61636193    push di                                   ; 57
    61646194    push si                                   ; 56
     
    61766206    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    61776207    test al, al                               ; 84 c0
    6178     je short 044fbh                           ; 74 38
     6208    je short 04541h                           ; 74 38
    61796209    mov bx, 00da0h                            ; bb a0 0d
    61806210    mov cx, ds                                ; 8c d9
    61816211    mov ax, strict word 00004h                ; b8 04 00
    6182     call 01933h                               ; e8 65 d4
     6212    call 01933h                               ; e8 1f d4
    61836213    mov al, dl                                ; 88 d0
    61846214    xor ah, ah                                ; 30 e4
     
    61926222    mov ax, strict word 00004h                ; b8 04 00
    61936223    push ax                                   ; 50
    6194     call 01976h                               ; e8 90 d4
     6224    call 01976h                               ; e8 4a d4
    61956225    add sp, strict byte 0000ah                ; 83 c4 0a
    61966226    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61996229    mov word [bp+016h], ax                    ; 89 46 16
    62006230    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6201     jmp near 045fah                           ; e9 ff 00
     6231    jmp near 04640h                           ; e9 ff 00
    62026232    mov byte [bp+017h], 000h                  ; c6 46 17 00
    62036233    xor bx, bx                                ; 31 db
    62046234    mov dx, strict word 00074h                ; ba 74 00
    62056235    mov ax, strict word 00040h                ; b8 40 00
    6206     call 01660h                               ; e8 56 d1
     6236    call 01660h                               ; e8 10 d1
    62076237    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    62086238    lea sp, [bp-004h]                         ; 8d 66 fc
     
    62546284    mov word [bp+010h], cx                    ; 89 4e 10
    62556285    cmp AL, strict byte 003h                  ; 3c 03
    6256     je short 045a5h                           ; 74 1c
     6286    je short 045ebh                           ; 74 1c
    62576287    cmp AL, strict byte 002h                  ; 3c 02
    6258     je short 0459dh                           ; 74 10
     6288    je short 045e3h                           ; 74 10
    62596289    cmp AL, strict byte 001h                  ; 3c 01
    6260     jne short 045aah                          ; 75 19
     6290    jne short 045f0h                          ; 75 19
    62616291    mov ax, word [bp+010h]                    ; 8b 46 10
    62626292    xor al, al                                ; 30 c0
    62636293    or AL, strict byte 002h                   ; 0c 02
    62646294    mov word [bp+010h], ax                    ; 89 46 10
    6265     jmp short 045aah                          ; eb 0d
     6295    jmp short 045f0h                          ; eb 0d
    62666296    or cl, 004h                               ; 80 c9 04
    62676297    mov word [bp+010h], cx                    ; 89 4e 10
    6268     jmp short 045aah                          ; eb 05
     6298    jmp short 045f0h                          ; eb 05
    62696299    or cl, 005h                               ; 80 c9 05
    6270     jmp short 045a0h                          ; eb f6
     6300    jmp short 045e6h                          ; eb f6
    62716301    mov es, [bp-012h]                         ; 8e 46 ee
    62726302    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6273     jc short 045b7h                           ; 72 03
    6274     jmp near 044fbh                           ; e9 44 ff
     6303    jc short 045fdh                           ; 72 03
     6304    jmp near 04541h                           ; e9 44 ff
    62756305    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    62766306    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6277     jmp short 045b4h                          ; eb f1
     6307    jmp short 045fah                          ; eb f1
    62786308    or bh, 003h                               ; 80 cf 03
    62796309    mov word [bp+016h], bx                    ; 89 5e 16
    6280     jmp near 044ffh                           ; e9 33 ff
     6310    jmp near 04545h                           ; e9 33 ff
    62816311    mov bx, 00da0h                            ; bb a0 0d
    62826312    mov cx, ds                                ; 8c d9
    62836313    mov ax, strict word 00004h                ; b8 04 00
    6284     call 01933h                               ; e8 5c d3
     6314    call 01933h                               ; e8 16 d3
    62856315    mov al, byte [bp+017h]                    ; 8a 46 17
    62866316    xor ah, ah                                ; 30 e4
     
    62926322    mov ax, strict word 00004h                ; b8 04 00
    62936323    push ax                                   ; 50
    6294     call 01976h                               ; e8 8a d3
     6324    call 01976h                               ; e8 44 d3
    62956325    add sp, strict byte 00008h                ; 83 c4 08
    62966326    mov ax, word [bp+016h]                    ; 8b 46 16
     
    63026332    mov dx, strict word 00074h                ; ba 74 00
    63036333    mov ax, strict word 00040h                ; b8 40 00
    6304     call 01660h                               ; e8 58 d0
     6334    call 01660h                               ; e8 12 d0
    63056335    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6306     jmp near 0450eh                           ; e9 ff fe
     6336    jmp near 04554h                           ; e9 ff fe
    63076337    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6308     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 051h, 047h, 096h
    6309     db  04bh, 013h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 096h, 04bh, 051h
    6310     db  047h, 051h, 047h, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 035h, 047h, 096h
    6311     db  04bh, 051h, 047h, 03eh, 047h, 06fh, 047h, 008h, 047h, 06fh, 047h, 0b8h, 048h, 058h, 049h, 06fh
    6312     db  047h, 082h, 049h, 0b0h, 04bh, 0b8h, 04bh, 051h, 047h
    6313 _int13_cdrom:                                ; 0xf4668 LB 0x585
     6338    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 097h, 047h, 0dch
     6339    db  04bh, 059h, 047h, 097h, 047h, 04eh, 047h, 097h, 047h, 04eh, 047h, 097h, 047h, 0dch, 04bh, 097h
     6340    db  047h, 097h, 047h, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 07bh, 047h, 0dch
     6341    db  04bh, 097h, 047h, 084h, 047h, 0b5h, 047h, 04eh, 047h, 0b5h, 047h, 0feh, 048h, 09eh, 049h, 0b5h
     6342    db  047h, 0c8h, 049h, 0f6h, 04bh, 0feh, 04bh, 097h, 047h
     6343_int13_cdrom:                                ; 0xf46ae LB 0x585
    63146344    push bp                                   ; 55
    63156345    mov bp, sp                                ; 89 e5
     
    63196349    mov dx, strict word 0000eh                ; ba 0e 00
    63206350    mov ax, strict word 00040h                ; b8 40 00
    6321     call 0166eh                               ; e8 f5 cf
     6351    call 0166eh                               ; e8 af cf
    63226352    mov word [bp-018h], ax                    ; 89 46 e8
    63236353    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     
    63266356    mov dx, strict word 00074h                ; ba 74 00
    63276357    mov ax, strict word 00040h                ; b8 40 00
    6328     call 01660h                               ; e8 d1 cf
     6358    call 01660h                               ; e8 8b cf
    63296359    mov ax, word [bp+010h]                    ; 8b 46 10
    63306360    xor ah, ah                                ; 30 e4
    63316361    cmp ax, 000e0h                            ; 3d e0 00
    6332     jc short 0469eh                           ; 72 05
     6362    jc short 046e4h                           ; 72 05
    63336363    cmp ax, 000f0h                            ; 3d f0 00
    6334     jc short 046bdh                           ; 72 1f
     6364    jc short 04703h                           ; 72 1f
    63356365    mov ax, word [bp+010h]                    ; 8b 46 10
    63366366    xor ah, ah                                ; 30 e4
     
    63446374    mov ax, strict word 00004h                ; b8 04 00
    63456375    push ax                                   ; 50
    6346     call 01976h                               ; e8 bf d2
     6376    call 01976h                               ; e8 79 d2
    63476377    add sp, strict byte 0000ah                ; 83 c4 0a
    6348     jmp near 04bceh                           ; e9 11 05
     6378    jmp near 04c14h                           ; e9 11 05
    63496379    mov ax, word [bp+010h]                    ; 8b 46 10
    63506380    xor ah, ah                                ; 30 e4
     
    63546384    mov byte [bp-008h], dl                    ; 88 56 f8
    63556385    cmp dl, 010h                              ; 80 fa 10
    6356     jc short 046e2h                           ; 72 0e
     6386    jc short 04728h                           ; 72 0e
    63576387    push ax                                   ; 50
    63586388    mov al, byte [bp+019h]                    ; 8a 46 19
     
    63616391    push ax                                   ; 50
    63626392    mov ax, 00416h                            ; b8 16 04
    6363     jmp short 046afh                          ; eb cd
     6393    jmp short 046f5h                          ; eb cd
    63646394    mov al, byte [bp+019h]                    ; 8a 46 19
    63656395    xor ah, ah                                ; 30 e4
    63666396    mov dx, ax                                ; 89 c2
    63676397    cmp ax, strict word 00050h                ; 3d 50 00
    6368     jnbe short 04751h                         ; 77 63
     6398    jnbe short 04797h                         ; 77 63
    63696399    push CS                                   ; 0e
    63706400    pop ES                                    ; 07
    63716401    mov cx, strict word 0001eh                ; b9 1e 00
    6372     mov di, 0460fh                            ; bf 0f 46
     6402    mov di, 04655h                            ; bf 55 46
    63736403    repne scasb                               ; f2 ae
    63746404    sal cx, 1                                 ; d1 e1
    63756405    mov di, cx                                ; 89 cf
    6376     mov ax, word [cs:di+0462ch]               ; 2e 8b 85 2c 46
     6406    mov ax, word [cs:di+04672h]               ; 2e 8b 85 72 46
    63776407    mov bx, word [bp+018h]                    ; 8b 5e 18
    63786408    xor bh, bh                                ; 30 ff
     
    63816411    xor ah, ah                                ; 30 e4
    63826412    or ah, 003h                               ; 80 cc 03
    6383     jmp near 04bd6h                           ; e9 c3 04
     6413    jmp near 04c1ch                           ; e9 c3 04
    63846414    mov dx, strict word 00074h                ; ba 74 00
    63856415    mov ax, strict word 00040h                ; b8 40 00
    6386     call 01652h                               ; e8 36 cf
     6416    call 01652h                               ; e8 f0 ce
    63876417    mov cl, al                                ; 88 c1
    63886418    mov bh, al                                ; 88 c7
     
    63916421    mov dx, strict word 00074h                ; ba 74 00
    63926422    mov ax, strict word 00040h                ; b8 40 00
    6393     call 01660h                               ; e8 32 cf
     6423    call 01660h                               ; e8 ec ce
    63946424    test cl, cl                               ; 84 c9
    6395     je short 0474eh                           ; 74 1c
    6396     jmp near 04be7h                           ; e9 b2 04
     6425    je short 04794h                           ; 74 1c
     6426    jmp near 04c2dh                           ; e9 b2 04
    63976427    or bh, 002h                               ; 80 cf 02
    63986428    mov word [bp+018h], bx                    ; 89 5e 18
    6399     jmp near 04bd9h                           ; e9 9b 04
     6429    jmp near 04c1fh                           ; e9 9b 04
    64006430    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    64016431    or bh, 030h                               ; 80 cf 30
    64026432    mov word [bp+018h], bx                    ; 89 5e 18
    64036433    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6404     jmp near 04b9ah                           ; e9 49 04
     6434    jmp near 04be0h                           ; e9 49 04
    64056435    mov bx, 00da0h                            ; bb a0 0d
    64066436    mov cx, ds                                ; 8c d9
    64076437    mov ax, strict word 00004h                ; b8 04 00
    6408     call 01933h                               ; e8 d7 d1
     6438    call 01933h                               ; e8 91 d1
    64096439    mov al, byte [bp+019h]                    ; 8a 46 19
    64106440    xor ah, ah                                ; 30 e4
     
    64156445    push ax                                   ; 50
    64166446    mov ax, strict word 00004h                ; b8 04 00
    6417     jmp short 047b0h                          ; eb 41
     6447    jmp short 047f6h                          ; eb 41
    64186448    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    64196449    mov es, [bp+006h]                         ; 8e 46 06
     
    64306460    mov word [bp-012h], ax                    ; 89 46 ee
    64316461    or ax, word [bp-014h]                     ; 0b 46 ec
    6432     je short 047bah                           ; 74 1b
     6462    je short 04800h                           ; 74 1b
    64336463    mov al, byte [bp+019h]                    ; 8a 46 19
    64346464    xor ah, ah                                ; 30 e4
     
    64406470    mov ax, strict word 00007h                ; b8 07 00
    64416471    push ax                                   ; 50
    6442     call 01976h                               ; e8 c2 d1
     6472    call 01976h                               ; e8 7c d1
    64436473    add sp, strict byte 00008h                ; 83 c4 08
    6444     jmp near 04bceh                           ; e9 14 04
     6474    jmp near 04c14h                           ; e9 14 04
    64456475    mov es, [bp-020h]                         ; 8e 46 e0
    64466476    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    64536483    mov ax, word [bp-010h]                    ; 8b 46 f0
    64546484    cmp ax, strict word 00044h                ; 3d 44 00
    6455     je short 047e2h                           ; 74 05
     6485    je short 04828h                           ; 74 05
    64566486    cmp ax, strict word 00047h                ; 3d 47 00
    6457     jne short 047e5h                          ; 75 03
    6458     jmp near 04b96h                           ; e9 b1 03
     6487    jne short 0482bh                          ; 75 03
     6488    jmp near 04bdch                           ; e9 b1 03
    64596489    mov cx, strict word 0000ch                ; b9 0c 00
    64606490    xor bx, bx                                ; 31 db
    64616491    mov dx, ss                                ; 8c d2
    64626492    lea ax, [bp-02eh]                         ; 8d 46 d2
    6463     call 0a080h                               ; e8 8e 58
     6493    call 0a0c0h                               ; e8 88 58
    64646494    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    64656495    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    64946524    sal bx, 1                                 ; d1 e3
    64956525    rcl si, 1                                 ; d1 d6
    6496     loop 04844h                               ; e2 fa
     6526    loop 0488ah                               ; e2 fa
    64976527    push si                                   ; 56
    64986528    push bx                                   ; 53
     
    65136543    shr dx, 1                                 ; d1 ea
    65146544    rcr ax, 1                                 ; d1 d8
    6515     loop 04874h                               ; e2 fa
     6545    loop 048bah                               ; e2 fa
    65166546    mov es, [bp-020h]                         ; 8e 46 e0
    65176547    mov word [es:di+002h], ax                 ; 26 89 45 02
    65186548    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
    6519     je short 048deh                           ; 74 57
     6549    je short 04924h                           ; 74 57
    65206550    mov bx, 00da0h                            ; bb a0 0d
    65216551    mov cx, ds                                ; 8c d9
    65226552    mov ax, strict word 00004h                ; b8 04 00
    6523     call 01933h                               ; e8 a1 d0
     6553    call 01933h                               ; e8 5b d0
    65246554    mov al, byte [bp-016h]                    ; 8a 46 ea
    65256555    xor ah, ah                                ; 30 e4
     
    65326562    mov ax, strict word 00004h                ; b8 04 00
    65336563    push ax                                   ; 50
    6534     call 01976h                               ; e8 cc d0
     6564    call 01976h                               ; e8 86 d0
    65356565    add sp, strict byte 0000ah                ; 83 c4 0a
    65366566    mov ax, word [bp+018h]                    ; 8b 46 18
    65376567    xor ah, ah                                ; 30 e4
    65386568    or ah, 00ch                               ; 80 cc 0c
    6539     jmp near 04bd6h                           ; e9 1e 03
     6569    jmp near 04c1ch                           ; e9 1e 03
    65406570    cmp bx, strict byte 00002h                ; 83 fb 02
    6541     jnbe short 04929h                         ; 77 6c
     6571    jnbe short 0496fh                         ; 77 6c
    65426572    mov al, byte [bp-008h]                    ; 8a 46 f8
    65436573    xor ah, ah                                ; 30 e4
     
    65486578    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    65496579    cmp bx, strict byte 00002h                ; 83 fb 02
    6550     je short 04941h                           ; 74 6c
     6580    je short 04987h                           ; 74 6c
    65516581    cmp bx, strict byte 00001h                ; 83 fb 01
    6552     je short 04919h                           ; 74 3f
     6582    je short 0495fh                           ; 74 3f
    65536583    test bx, bx                               ; 85 db
    6554     je short 048e1h                           ; 74 03
    6555     jmp near 04b96h                           ; e9 b5 02
     6584    je short 04927h                           ; 74 03
     6585    jmp near 04bdch                           ; e9 b5 02
    65566586    cmp cl, 0ffh                              ; 80 f9 ff
    6557     jne short 048f8h                          ; 75 12
     6587    jne short 0493eh                          ; 75 12
    65586588    mov ax, word [bp+018h]                    ; 8b 46 18
    65596589    xor ah, ah                                ; 30 e4
     
    65626592    xor al, al                                ; 30 c0
    65636593    or AL, strict byte 001h                   ; 0c 01
    6564     jmp near 04bd6h                           ; e9 de 02
     6594    jmp near 04c1ch                           ; e9 de 02
    65656595    mov al, byte [bp-008h]                    ; 8a 46 f8
    65666596    xor ah, ah                                ; 30 e4
     
    65766606    or AL, strict byte 001h                   ; 0c 01
    65776607    mov word [bp+018h], ax                    ; 89 46 18
    6578     jmp short 048deh                          ; eb c5
     6608    jmp short 04924h                          ; eb c5
    65796609    test cl, cl                               ; 84 c9
    6580     jne short 0492ch                          ; 75 0f
     6610    jne short 04972h                          ; 75 0f
    65816611    or bh, 0b0h                               ; 80 cf b0
    65826612    mov word [bp+018h], bx                    ; 89 5e 18
    65836613    mov byte [bp+018h], cl                    ; 88 4e 18
    6584     jmp near 04bd9h                           ; e9 b0 02
    6585     jmp near 04bceh                           ; e9 a2 02
     6614    jmp near 04c1fh                           ; e9 b0 02
     6615    jmp near 04c14h                           ; e9 a2 02
    65866616    mov al, byte [bp-008h]                    ; 8a 46 f8
    65876617    xor ah, ah                                ; 30 e4
     
    65946624    mov byte [es:bx+025h], cl                 ; 26 88 4f 25
    65956625    test cl, cl                               ; 84 c9
    6596     jne short 04953h                          ; 75 0e
     6626    jne short 04999h                          ; 75 0e
    65976627    xor ax, ax                                ; 31 c0
    65986628    mov dx, word [bp+018h]                    ; 8b 56 18
     
    66006630    or dx, ax                                 ; 09 c2
    66016631    mov word [bp+018h], dx                    ; 89 56 18
    6602     jmp short 048deh                          ; eb 8b
     6632    jmp short 04924h                          ; eb 8b
    66036633    mov ax, strict word 00001h                ; b8 01 00
    6604     jmp short 04947h                          ; eb ef
     6634    jmp short 0498dh                          ; eb ef
    66056635    mov al, byte [bp-008h]                    ; 8a 46 f8
    66066636    xor ah, ah                                ; 30 e4
     
    66116641    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    66126642    test cl, cl                               ; 84 c9
    6613     je short 04975h                           ; 74 06
     6643    je short 049bbh                           ; 74 06
    66146644    or bh, 0b1h                               ; 80 cf b1
    6615     jmp near 04738h                           ; e9 c3 fd
    6616     je short 0499ch                           ; 74 25
     6645    jmp near 0477eh                           ; e9 c3 fd
     6646    je short 049e2h                           ; 74 25
    66176647    mov ax, word [bp+018h]                    ; 8b 46 18
    66186648    xor ah, ah                                ; 30 e4
    66196649    or ah, 0b1h                               ; 80 cc b1
    6620     jmp near 04bd6h                           ; e9 54 02
     6650    jmp near 04c1ch                           ; e9 54 02
    66216651    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    66226652    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    66276657    mov word [bp-01eh], ax                    ; 89 46 e2
    66286658    cmp ax, strict word 0001ah                ; 3d 1a 00
    6629     jnc short 0499fh                          ; 73 05
    6630     jmp short 04929h                          ; eb 8d
    6631     jmp near 04b96h                           ; e9 f7 01
    6632     jc short 04a01h                           ; 72 60
     6659    jnc short 049e5h                          ; 73 05
     6660    jmp short 0496fh                          ; eb 8d
     6661    jmp near 04bdch                           ; e9 f7 01
     6662    jc short 04a47h                           ; 72 60
    66336663    mov al, byte [bp-008h]                    ; 8a 46 f8
    66346664    xor ah, ah                                ; 30 e4
     
    66536683    mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
    66546684    cmp word [bp-01eh], strict byte 0001eh    ; 83 7e e2 1e
    6655     jnc short 04a0ah                          ; 73 03
    6656     jmp near 04acah                           ; e9 c0 00
     6685    jnc short 04a50h                          ; 73 03
     6686    jmp near 04b10h                           ; e9 c0 00
    66576687    mov es, [bp-00ah]                         ; 8e 46 f6
    66586688    mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
     
    66996729    xor bl, bl                                ; 30 db
    67006730    xor bh, bh                                ; 30 ff
    6701     jmp short 04aaah                          ; eb 05
     6731    jmp short 04af0h                          ; eb 05
    67026732    cmp bh, 00fh                              ; 80 ff 0f
    6703     jnc short 04ac0h                          ; 73 16
     6733    jnc short 04b06h                          ; 73 16
    67046734    mov al, bh                                ; 88 f8
    67056735    xor ah, ah                                ; 30 e4
     
    67076737    add dx, 00356h                            ; 81 c2 56 03
    67086738    mov ax, word [bp-018h]                    ; 8b 46 e8
    6709     call 01652h                               ; e8 98 cb
     6739    call 01652h                               ; e8 52 cb
    67106740    add bl, al                                ; 00 c3
    67116741    db  0feh, 0c7h
    67126742    ; inc bh                                    ; fe c7
    6713     jmp short 04aa5h                          ; eb e5
     6743    jmp short 04aebh                          ; eb e5
    67146744    neg bl                                    ; f6 db
    67156745    les di, [bp-00eh]                         ; c4 7e f2
    67166746    mov byte [es:di+00243h], bl               ; 26 88 9d 43 02
    67176747    cmp word [bp-01eh], strict byte 00042h    ; 83 7e e2 42
    6718     jnc short 04ad3h                          ; 73 03
    6719     jmp near 04b96h                           ; e9 c3 00
     6748    jnc short 04b19h                          ; 73 03
     6749    jmp near 04bdch                           ; e9 c3 00
    67206750    mov al, byte [bp-008h]                    ; 8a 46 f8
    67216751    xor ah, ah                                ; 30 e4
     
    67376767    mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
    67386768    test al, al                               ; 84 c0
    6739     jne short 04b1dh                          ; 75 0c
     6769    jne short 04b63h                          ; 75 0c
    67406770    mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
    67416771    mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
     
    67466776    mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
    67476777    test al, al                               ; 84 c0
    6748     jne short 04b52h                          ; 75 16
     6778    jne short 04b98h                          ; 75 16
    67496779    mov word [es:si+030h], dx                 ; 26 89 54 30
    67506780    mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
     
    67616791    xor al, al                                ; 30 c0
    67626792    mov AH, strict byte 01eh                  ; b4 1e
    6763     jmp short 04b7dh                          ; eb 05
     6793    jmp short 04bc3h                          ; eb 05
    67646794    cmp ah, 040h                              ; 80 fc 40
    6765     jnc short 04b8dh                          ; 73 10
     6795    jnc short 04bd3h                          ; 73 10
    67666796    mov bl, ah                                ; 88 e3
    67676797    xor bh, bh                                ; 30 ff
     
    67716801    db  0feh, 0c4h
    67726802    ; inc ah                                    ; fe c4
    6773     jmp short 04b78h                          ; eb eb
     6803    jmp short 04bbeh                          ; eb eb
    67746804    neg al                                    ; f6 d8
    67756805    mov es, [bp-00ah]                         ; 8e 46 f6
     
    67796809    mov dx, strict word 00074h                ; ba 74 00
    67806810    mov ax, strict word 00040h                ; b8 40 00
    6781     call 01660h                               ; e8 bb ca
     6811    call 01660h                               ; e8 75 ca
    67826812    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    67836813    lea sp, [bp-004h]                         ; 8d 66 fc
     
    67886818    or bh, 006h                               ; 80 cf 06
    67896819    mov word [bp+018h], bx                    ; 89 5e 18
    6790     jmp short 04be7h                          ; eb 2f
     6820    jmp short 04c2dh                          ; eb 2f
    67916821    cmp bx, strict byte 00006h                ; 83 fb 06
    6792     je short 04b96h                           ; 74 d9
     6822    je short 04bdch                           ; 74 d9
    67936823    cmp bx, strict byte 00001h                ; 83 fb 01
    6794     jc short 04bceh                           ; 72 0c
    6795     jbe short 04b96h                          ; 76 d2
     6824    jc short 04c14h                           ; 72 0c
     6825    jbe short 04bdch                          ; 76 d2
    67966826    cmp bx, strict byte 00003h                ; 83 fb 03
    6797     jc short 04bceh                           ; 72 05
     6827    jc short 04c14h                           ; 72 05
    67986828    cmp bx, strict byte 00004h                ; 83 fb 04
    6799     jbe short 04b96h                          ; 76 c8
     6829    jbe short 04bdch                          ; 76 c8
    68006830    mov ax, word [bp+018h]                    ; 8b 46 18
    68016831    xor ah, ah                                ; 30 e4
     
    68066836    mov dx, strict word 00074h                ; ba 74 00
    68076837    mov ax, strict word 00040h                ; b8 40 00
    6808     call 01660h                               ; e8 79 ca
     6838    call 01660h                               ; e8 33 ca
    68096839    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6810     jmp short 04ba9h                          ; eb bc
    6811 print_boot_device_:                          ; 0xf4bed LB 0x51
     6840    jmp short 04befh                          ; eb bc
     6841print_boot_device_:                          ; 0xf4c33 LB 0x51
    68126842    push bp                                   ; 55
    68136843    mov bp, sp                                ; 89 e5
    68146844    push cx                                   ; 51
    68156845    test al, al                               ; 84 c0
    6816     je short 04bfah                           ; 74 05
     6846    je short 04c40h                           ; 74 05
    68176847    mov dx, strict word 00002h                ; ba 02 00
    6818     jmp short 04c14h                          ; eb 1a
     6848    jmp short 04c5ah                          ; eb 1a
    68196849    test dl, dl                               ; 84 d2
    6820     je short 04c03h                           ; 74 05
     6850    je short 04c49h                           ; 74 05
    68216851    mov dx, strict word 00003h                ; ba 03 00
    6822     jmp short 04c14h                          ; eb 11
     6852    jmp short 04c5ah                          ; eb 11
    68236853    test bl, 080h                             ; f6 c3 80
    6824     jne short 04c0ch                          ; 75 04
     6854    jne short 04c52h                          ; 75 04
    68256855    xor dh, dh                                ; 30 f6
    6826     jmp short 04c14h                          ; eb 08
     6856    jmp short 04c5ah                          ; eb 08
    68276857    test bl, 080h                             ; f6 c3 80
    6828     je short 04c38h                           ; 74 27
     6858    je short 04c7eh                           ; 74 27
    68296859    mov dx, strict word 00001h                ; ba 01 00
    68306860    mov bx, 00da0h                            ; bb a0 0d
    68316861    mov cx, ds                                ; 8c d9
    68326862    mov ax, strict word 00004h                ; b8 04 00
    6833     call 01933h                               ; e8 14 cd
     6863    call 01933h                               ; e8 ce cc
    68346864    mov ax, dx                                ; 89 d0
    68356865    mov dx, strict word 0000ah                ; ba 0a 00
     
    68416871    mov ax, strict word 00004h                ; b8 04 00
    68426872    push ax                                   ; 50
    6843     call 01976h                               ; e8 41 cd
     6873    call 01976h                               ; e8 fb cc
    68446874    add sp, strict byte 00006h                ; 83 c4 06
    68456875    lea sp, [bp-002h]                         ; 8d 66 fe
     
    68476877    pop bp                                    ; 5d
    68486878    retn                                      ; c3
    6849 print_boot_failure_:                         ; 0xf4c3e LB 0x9f
     6879print_boot_failure_:                         ; 0xf4c84 LB 0x9f
    68506880    push bp                                   ; 55
    68516881    mov bp, sp                                ; 89 e5
     
    68576887    mov si, cx                                ; 89 ce
    68586888    test al, al                               ; 84 c0
    6859     je short 04c70h                           ; 74 1f
     6889    je short 04cb6h                           ; 74 1f
    68606890    mov bx, 00da0h                            ; bb a0 0d
    68616891    mov cx, ds                                ; 8c d9
    68626892    mov ax, strict word 00004h                ; b8 04 00
    6863     call 01933h                               ; e8 d7 cc
     6893    call 01933h                               ; e8 91 cc
    68646894    mov cx, 00ddah                            ; b9 da 0d
    68656895    push cx                                   ; 51
     
    68686898    mov cx, strict word 00004h                ; b9 04 00
    68696899    push cx                                   ; 51
    6870     call 01976h                               ; e8 0b cd
     6900    call 01976h                               ; e8 c5 cc
    68716901    add sp, strict byte 00006h                ; 83 c4 06
    6872     jmp short 04cb8h                          ; eb 48
     6902    jmp short 04cfeh                          ; eb 48
    68736903    test dl, dl                               ; 84 d2
    6874     je short 04c84h                           ; 74 10
     6904    je short 04ccah                           ; 74 10
    68756905    mov bx, 00da0h                            ; bb a0 0d
    68766906    mov cx, ds                                ; 8c d9
    68776907    mov ax, strict word 00004h                ; b8 04 00
    6878     call 01933h                               ; e8 b4 cc
     6908    call 01933h                               ; e8 6e cc
    68796909    mov cx, 00de4h                            ; b9 e4 0d
    6880     jmp short 04c5fh                          ; eb db
     6910    jmp short 04ca5h                          ; eb db
    68816911    test bl, 080h                             ; f6 c3 80
    6882     je short 04c9ah                           ; 74 11
     6912    je short 04ce0h                           ; 74 11
    68836913    mov bx, 00da0h                            ; bb a0 0d
    68846914    mov cx, ds                                ; 8c d9
    68856915    mov ax, strict word 00004h                ; b8 04 00
    6886     call 01933h                               ; e8 9f cc
     6916    call 01933h                               ; e8 59 cc
    68876917    push si                                   ; 56
    68886918    mov cx, 00dd0h                            ; b9 d0 0d
    6889     jmp short 04ca9h                          ; eb 0f
     6919    jmp short 04cefh                          ; eb 0f
    68906920    mov bx, 00da0h                            ; bb a0 0d
    68916921    mov cx, ds                                ; 8c d9
    68926922    mov ax, strict word 00004h                ; b8 04 00
    6893     call 01933h                               ; e8 8e cc
     6923    call 01933h                               ; e8 48 cc
    68946924    push si                                   ; 56
    68956925    mov cx, 00dc6h                            ; b9 c6 0d
     
    68996929    mov cx, strict word 00004h                ; b9 04 00
    69006930    push cx                                   ; 51
    6901     call 01976h                               ; e8 c1 cc
     6931    call 01976h                               ; e8 7b cc
    69026932    add sp, strict byte 00008h                ; 83 c4 08
    69036933    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6904     jne short 04cd5h                          ; 75 17
     6934    jne short 04d1bh                          ; 75 17
    69056935    test dh, dh                               ; 84 f6
    6906     jne short 04cc7h                          ; 75 05
     6936    jne short 04d0dh                          ; 75 05
    69076937    mov dx, 004d5h                            ; ba d5 04
    6908     jmp short 04ccah                          ; eb 03
     6938    jmp short 04d10h                          ; eb 03
    69096939    mov dx, 004ffh                            ; ba ff 04
    69106940    push dx                                   ; 52
    69116941    mov dx, strict word 00007h                ; ba 07 00
    69126942    push dx                                   ; 52
    6913     call 01976h                               ; e8 a4 cc
     6943    call 01976h                               ; e8 5e cc
    69146944    add sp, strict byte 00004h                ; 83 c4 04
    69156945    lea sp, [bp-002h]                         ; 8d 66 fe
     
    69176947    pop bp                                    ; 5d
    69186948    retn 00002h                               ; c2 02 00
    6919 print_cdromboot_failure_:                    ; 0xf4cdd LB 0x2a
     6949print_cdromboot_failure_:                    ; 0xf4d23 LB 0x2a
    69206950    push bp                                   ; 55
    69216951    mov bp, sp                                ; 89 e5
     
    69276957    mov cx, ds                                ; 8c d9
    69286958    mov ax, strict word 00004h                ; b8 04 00
    6929     call 01933h                               ; e8 43 cc
     6959    call 01933h                               ; e8 fd cb
    69306960    push dx                                   ; 52
    69316961    mov dx, 00534h                            ; ba 34 05
     
    69336963    mov dx, strict word 00004h                ; ba 04 00
    69346964    push dx                                   ; 52
    6935     call 01976h                               ; e8 7a cc
     6965    call 01976h                               ; e8 34 cc
    69366966    add sp, strict byte 00006h                ; 83 c4 06
    69376967    lea sp, [bp-006h]                         ; 8d 66 fa
     
    69416971    pop bp                                    ; 5d
    69426972    retn                                      ; c3
    6943 _int19_function:                             ; 0xf4d07 LB 0x28d
     6973_int19_function:                             ; 0xf4d4d LB 0x28d
    69446974    push bp                                   ; 55
    69456975    mov bp, sp                                ; 89 e5
     
    69496979    mov dx, strict word 0000eh                ; ba 0e 00
    69506980    mov ax, strict word 00040h                ; b8 40 00
    6951     call 0166eh                               ; e8 56 c9
     6981    call 0166eh                               ; e8 10 c9
    69526982    mov bx, ax                                ; 89 c3
    69536983    mov di, ax                                ; 89 c7
    69546984    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    69556985    mov ax, strict word 0003dh                ; b8 3d 00
    6956     call 016aeh                               ; e8 88 c9
     6986    call 016aeh                               ; e8 42 c9
    69576987    mov dl, al                                ; 88 c2
    69586988    xor dh, dh                                ; 30 f6
    69596989    mov word [bp-00eh], dx                    ; 89 56 f2
    69606990    mov ax, strict word 00038h                ; b8 38 00
    6961     call 016aeh                               ; e8 7b c9
     6991    call 016aeh                               ; e8 35 c9
    69626992    and AL, strict byte 0f0h                  ; 24 f0
    69636993    mov byte [bp-010h], al                    ; 88 46 f0
     
    69696999    mov word [bp-00eh], dx                    ; 89 56 f2
    69707000    mov ax, strict word 0003ch                ; b8 3c 00
    6971     call 016aeh                               ; e8 61 c9
     7001    call 016aeh                               ; e8 1b c9
    69727002    and AL, strict byte 00fh                  ; 24 0f
    69737003    xor ah, ah                                ; 30 e4
     
    69777007    mov dx, 0037dh                            ; ba 7d 03
    69787008    mov ax, bx                                ; 89 d8
    6979     call 01652h                               ; e8 f2 c8
     7009    call 01652h                               ; e8 ac c8
    69807010    test al, al                               ; 84 c0
    6981     je short 04d71h                           ; 74 0d
     7011    je short 04db7h                           ; 74 0d
    69827012    mov dx, 0037dh                            ; ba 7d 03
    69837013    mov ax, bx                                ; 89 d8
    6984     call 01652h                               ; e8 e6 c8
     7014    call 01652h                               ; e8 a0 c8
    69857015    xor ah, ah                                ; 30 e4
    69867016    mov word [bp-00eh], ax                    ; 89 46 f2
    69877017    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6988     jne short 04d88h                          ; 75 11
     7018    jne short 04dceh                          ; 75 11
    69897019    mov ax, strict word 0003ch                ; b8 3c 00
    6990     call 016aeh                               ; e8 31 c9
     7020    call 016aeh                               ; e8 eb c8
    69917021    and AL, strict byte 0f0h                  ; 24 f0
    69927022    xor ah, ah                                ; 30 e4
    69937023    mov CL, strict byte 004h                  ; b1 04
    69947024    sar ax, CL                                ; d3 f8
    6995     call 07d94h                               ; e8 0c 30
     7025    call 07ddah                               ; e8 0c 30
    69967026    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6997     jne short 04d93h                          ; 75 05
     7027    jne short 04dd9h                          ; 75 05
    69987028    mov CL, strict byte 004h                  ; b1 04
    69997029    shr word [bp-00eh], CL                    ; d3 6e f2
    70007030    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    7001     jne short 04da1h                          ; 75 08
     7031    jne short 04de7h                          ; 75 08
    70027032    mov al, byte [bp-00dh]                    ; 8a 46 f3
    70037033    xor ah, ah                                ; 30 e4
    70047034    mov word [bp-00eh], ax                    ; 89 46 f2
    70057035    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    7006     jne short 04dach                          ; 75 05
     7036    jne short 04df2h                          ; 75 05
    70077037    mov CL, strict byte 00ch                  ; b1 0c
    70087038    shr word [bp-00eh], CL                    ; d3 6e f2
    70097039    cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
    7010     jnc short 04db6h                          ; 73 04
     7040    jnc short 04dfch                          ; 73 04
    70117041    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    70127042    xor al, al                                ; 30 c0
     
    70177047    mov cx, ds                                ; 8c d9
    70187048    mov ax, strict word 00004h                ; b8 04 00
    7019     call 01933h                               ; e8 67 cb
     7049    call 01933h                               ; e8 21 cb
    70207050    push word [bp-00eh]                       ; ff 76 f2
    70217051    mov al, byte [bp+004h]                    ; 8a 46 04
     
    70267056    mov ax, strict word 00004h                ; b8 04 00
    70277057    push ax                                   ; 50
    7028     call 01976h                               ; e8 96 cb
     7058    call 01976h                               ; e8 50 cb
    70297059    add sp, strict byte 00008h                ; 83 c4 08
    70307060    mov ax, word [bp-00eh]                    ; 8b 46 f2
    70317061    and ax, strict word 0000fh                ; 25 0f 00
    70327062    cmp ax, strict word 00002h                ; 3d 02 00
    7033     jc short 04dfch                           ; 72 0e
    7034     jbe short 04e0bh                          ; 76 1b
     7063    jc short 04e42h                           ; 72 0e
     7064    jbe short 04e51h                          ; 76 1b
    70357065    cmp ax, strict word 00004h                ; 3d 04 00
    7036     je short 04e28h                           ; 74 33
     7066    je short 04e6eh                           ; 74 33
    70377067    cmp ax, strict word 00003h                ; 3d 03 00
    7038     je short 04e1eh                           ; 74 24
    7039     jmp short 04e57h                          ; eb 5b
     7068    je short 04e64h                           ; 74 24
     7069    jmp short 04e9dh                          ; eb 5b
    70407070    cmp ax, strict word 00001h                ; 3d 01 00
    7041     jne short 04e57h                          ; 75 56
     7071    jne short 04e9dh                          ; 75 56
    70427072    xor al, al                                ; 30 c0
    70437073    mov byte [bp-006h], al                    ; 88 46 fa
    70447074    mov byte [bp-008h], al                    ; 88 46 f8
    7045     jmp short 04e6bh                          ; eb 60
     7075    jmp short 04eb1h                          ; eb 60
    70467076    mov dx, 0037ch                            ; ba 7c 03
    70477077    mov ax, di                                ; 89 f8
    7048     call 01652h                               ; e8 3f c8
     7078    call 01652h                               ; e8 f9 c7
    70497079    add AL, strict byte 080h                  ; 04 80
    70507080    mov byte [bp-006h], al                    ; 88 46 fa
    70517081    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    7052     jmp short 04e6bh                          ; eb 4d
     7082    jmp short 04eb1h                          ; eb 4d
    70537083    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    70547084    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    7055     jmp short 04e32h                          ; eb 0a
     7085    jmp short 04e78h                          ; eb 0a
    70567086    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    70577087    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7058     je short 04e6bh                           ; 74 39
    7059     call 03dd8h                               ; e8 a3 ef
     7088    je short 04eb1h                           ; 74 39
     7089    call 03e1eh                               ; e8 a3 ef
    70607090    mov bx, ax                                ; 89 c3
    70617091    test AL, strict byte 0ffh                 ; a8 ff
    7062     je short 04e5eh                           ; 74 23
    7063     call 04cddh                               ; e8 9f fe
     7092    je short 04ea4h                           ; 74 23
     7093    call 04d23h                               ; e8 9f fe
    70647094    mov al, byte [bp-00ch]                    ; 8a 46 f4
    70657095    xor ah, ah                                ; 30 e4
     
    70717101    mov al, byte [bp-008h]                    ; 8a 46 f8
    70727102    mov cx, strict word 00001h                ; b9 01 00
    7073     call 04c3eh                               ; e8 e7 fd
     7103    call 04c84h                               ; e8 e7 fd
    70747104    xor ax, ax                                ; 31 c0
    70757105    xor dx, dx                                ; 31 d2
    7076     jmp near 04f8dh                           ; e9 2f 01
     7106    jmp near 04fd3h                           ; e9 2f 01
    70777107    mov dx, 00372h                            ; ba 72 03
    70787108    mov ax, di                                ; 89 f8
    7079     call 0166eh                               ; e8 08 c8
     7109    call 0166eh                               ; e8 c2 c7
    70807110    mov si, ax                                ; 89 c6
    70817111    mov byte [bp-006h], bh                    ; 88 7e fa
    70827112    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    7083     jne short 04ec6h                          ; 75 55
     7113    jne short 04f0ch                          ; 75 55
    70847114    xor si, si                                ; 31 f6
    70857115    mov ax, 0e200h                            ; b8 00 e2
    70867116    mov es, ax                                ; 8e c0
    70877117    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    7088     jne short 04e3eh                          ; 75 bf
     7118    jne short 04e84h                          ; 75 bf
    70897119    mov cx, ax                                ; 89 c1
    70907120    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    70917121    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    7092     jne short 04e3eh                          ; 75 b1
     7122    jne short 04e84h                          ; 75 b1
    70937123    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    7094     jne short 04e3eh                          ; 75 aa
     7124    jne short 04e84h                          ; 75 aa
    70957125    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
    70967126    mov dx, word [es:bx]                      ; 26 8b 17
    70977127    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
    70987128    cmp ax, 06568h                            ; 3d 68 65
    7099     jne short 04ec8h                          ; 75 24
     7129    jne short 04f0eh                          ; 75 24
    71007130    cmp dx, 07445h                            ; 81 fa 45 74
    7101     jne short 04ec8h                          ; 75 1e
     7131    jne short 04f0eh                          ; 75 1e
    71027132    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71037133    xor bh, bh                                ; 30 ff
     
    71067136    mov al, byte [bp-008h]                    ; 8a 46 f8
    71077137    xor ah, ah                                ; 30 e4
    7108     call 04bedh                               ; e8 31 fd
     7138    call 04c33h                               ; e8 31 fd
    71097139    mov word [bp-014h], strict word 00006h    ; c7 46 ec 06 00
    71107140    mov word [bp-012h], cx                    ; 89 4e ee
    7111     jmp short 04ee7h                          ; eb 21
    7112     jmp short 04eedh                          ; eb 25
     7141    jmp short 04f2dh                          ; eb 21
     7142    jmp short 04f33h                          ; eb 25
    71137143    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71147144    xor bh, bh                                ; 30 ff
     
    71177147    mov al, byte [bp-008h]                    ; 8a 46 f8
    71187148    xor ah, ah                                ; 30 e4
    7119     call 04bedh                               ; e8 13 fd
     7149    call 04c33h                               ; e8 13 fd
    71207150    sti                                       ; fb
    71217151    mov word [bp-012h], cx                    ; 89 4e ee
     
    71247154    mov word [bp-014h], ax                    ; 89 46 ec
    71257155    call far [bp-014h]                        ; ff 5e ec
    7126     jmp near 04e3eh                           ; e9 51 ff
     7156    jmp near 04e84h                           ; e9 51 ff
    71277157    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7128     jne short 04f1ah                          ; 75 27
     7158    jne short 04f60h                          ; 75 27
    71297159    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7130     jne short 04f1ah                          ; 75 21
     7160    jne short 04f60h                          ; 75 21
    71317161    mov si, 007c0h                            ; be c0 07
    71327162    mov es, si                                ; 8e c6
     
    71417171    sbb ax, strict byte 00000h                ; 83 d8 00
    71427172    test ax, ax                               ; 85 c0
    7143     je short 04f1ah                           ; 74 03
    7144     jmp near 04e3eh                           ; e9 24 ff
     7173    je short 04f60h                           ; 74 03
     7174    jmp near 04e84h                           ; e9 24 ff
    71457175    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7146     je short 04f24h                           ; 74 04
     7176    je short 04f6ah                           ; 74 04
    71477177    xor bl, bl                                ; 30 db
    7148     jmp short 04f26h                          ; eb 02
     7178    jmp short 04f6ch                          ; eb 02
    71497179    mov BL, strict byte 001h                  ; b3 01
    71507180    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7151     je short 04f2eh                           ; 74 02
     7181    je short 04f74h                           ; 74 02
    71527182    mov BL, strict byte 001h                  ; b3 01
    71537183    xor dx, dx                                ; 31 d2
    71547184    mov ax, si                                ; 89 f0
    7155     call 0166eh                               ; e8 39 c7
     7185    call 0166eh                               ; e8 f3 c6
    71567186    mov di, ax                                ; 89 c7
    71577187    mov dx, strict word 00002h                ; ba 02 00
    71587188    mov ax, si                                ; 89 f0
    7159     call 0166eh                               ; e8 2f c7
     7189    call 0166eh                               ; e8 e9 c6
    71607190    cmp di, ax                                ; 39 c7
    7161     je short 04f54h                           ; 74 11
     7191    je short 04f9ah                           ; 74 11
    71627192    test bl, bl                               ; 84 db
    7163     jne short 04f6ch                          ; 75 25
     7193    jne short 04fb2h                          ; 75 25
    71647194    mov dx, 001feh                            ; ba fe 01
    71657195    mov ax, si                                ; 89 f0
    7166     call 0166eh                               ; e8 1f c7
     7196    call 0166eh                               ; e8 d9 c6
    71677197    cmp ax, 0aa55h                            ; 3d 55 aa
    7168     je short 04f6ch                           ; 74 18
     7198    je short 04fb2h                           ; 74 18
    71697199    mov al, byte [bp-00ch]                    ; 8a 46 f4
    71707200    xor ah, ah                                ; 30 e4
     
    71767206    mov al, byte [bp-008h]                    ; 8a 46 f8
    71777207    xor cx, cx                                ; 31 c9
    7178     jmp near 04e54h                           ; e9 e8 fe
     7208    jmp near 04e9ah                           ; e9 e8 fe
    71797209    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71807210    xor bh, bh                                ; 30 ff
     
    71837213    mov al, byte [bp-008h]                    ; 8a 46 f8
    71847214    xor ah, ah                                ; 30 e4
    7185     call 04bedh                               ; e8 6f fc
     7215    call 04c33h                               ; e8 6f fc
    71867216    mov al, byte [bp-006h]                    ; 8a 46 fa
    71877217    xor ah, ah                                ; 30 e4
     
    71967226    pop bp                                    ; 5d
    71977227    retn                                      ; c3
    7198 keyboard_panic_:                             ; 0xf4f94 LB 0x16
     7228keyboard_panic_:                             ; 0xf4fda LB 0x16
    71997229    push bp                                   ; 55
    72007230    mov bp, sp                                ; 89 e5
     
    72047234    mov ax, strict word 00007h                ; b8 07 00
    72057235    push ax                                   ; 50
    7206     call 01976h                               ; e8 d3 c9
     7236    call 01976h                               ; e8 8d c9
    72077237    add sp, strict byte 00006h                ; 83 c4 06
    72087238    mov sp, bp                                ; 89 ec
    72097239    pop bp                                    ; 5d
    72107240    retn                                      ; c3
    7211 _keyboard_init:                              ; 0xf4faa LB 0x26a
     7241_keyboard_init:                              ; 0xf4ff0 LB 0x26a
    72127242    push bp                                   ; 55
    72137243    mov bp, sp                                ; 89 e5
     
    72217251    ; sub ah, ah                                ; 2a e4
    72227252    test AL, strict byte 002h                 ; a8 02
    7223     je short 04fcdh                           ; 74 0d
     7253    je short 05013h                           ; 74 0d
    72247254    dec bx                                    ; 4b
    72257255    test bx, bx                               ; 85 db
    7226     jbe short 04fcdh                          ; 76 08
     7256    jbe short 05013h                          ; 76 08
    72277257    xor al, al                                ; 30 c0
    72287258    mov dx, 00080h                            ; ba 80 00
    72297259    out DX, AL                                ; ee
    7230     jmp short 04fb6h                          ; eb e9
     7260    jmp short 04ffch                          ; eb e9
    72317261    test bx, bx                               ; 85 db
    7232     jne short 04fd6h                          ; 75 05
     7262    jne short 0501ch                          ; 75 05
    72337263    xor ax, ax                                ; 31 c0
    7234     call 04f94h                               ; e8 be ff
     7264    call 04fdah                               ; e8 be ff
    72357265    mov bx, strict word 0ffffh                ; bb ff ff
    72367266    mov dx, strict word 00064h                ; ba 64 00
     
    72397269    ; sub ah, ah                                ; 2a e4
    72407270    test AL, strict byte 001h                 ; a8 01
    7241     jne short 04ff0h                          ; 75 0d
     7271    jne short 05036h                          ; 75 0d
    72427272    dec bx                                    ; 4b
    72437273    test bx, bx                               ; 85 db
    7244     jbe short 04ff0h                          ; 76 08
     7274    jbe short 05036h                          ; 76 08
    72457275    mov AL, strict byte 001h                  ; b0 01
    72467276    mov dx, 00080h                            ; ba 80 00
    72477277    out DX, AL                                ; ee
    7248     jmp short 04fd9h                          ; eb e9
     7278    jmp short 0501fh                          ; eb e9
    72497279    test bx, bx                               ; 85 db
    7250     jne short 04ffah                          ; 75 06
     7280    jne short 05040h                          ; 75 06
    72517281    mov ax, strict word 00001h                ; b8 01 00
    7252     call 04f94h                               ; e8 9a ff
     7282    call 04fdah                               ; e8 9a ff
    72537283    mov dx, strict word 00060h                ; ba 60 00
    72547284    in AL, DX                                 ; ec
     
    72567286    ; sub ah, ah                                ; 2a e4
    72577287    cmp ax, strict word 00055h                ; 3d 55 00
    7258     je short 0500bh                           ; 74 06
     7288    je short 05051h                           ; 74 06
    72597289    mov ax, 003dfh                            ; b8 df 03
    7260     call 04f94h                               ; e8 89 ff
     7290    call 04fdah                               ; e8 89 ff
    72617291    mov AL, strict byte 0abh                  ; b0 ab
    72627292    mov dx, strict word 00064h                ; ba 64 00
     
    72687298    ; sub ah, ah                                ; 2a e4
    72697299    test AL, strict byte 002h                 ; a8 02
    7270     je short 0502bh                           ; 74 0d
     7300    je short 05071h                           ; 74 0d
    72717301    dec bx                                    ; 4b
    72727302    test bx, bx                               ; 85 db
    7273     jbe short 0502bh                          ; 76 08
     7303    jbe short 05071h                          ; 76 08
    72747304    mov AL, strict byte 010h                  ; b0 10
    72757305    mov dx, 00080h                            ; ba 80 00
    72767306    out DX, AL                                ; ee
    7277     jmp short 05014h                          ; eb e9
     7307    jmp short 0505ah                          ; eb e9
    72787308    test bx, bx                               ; 85 db
    7279     jne short 05035h                          ; 75 06
     7309    jne short 0507bh                          ; 75 06
    72807310    mov ax, strict word 0000ah                ; b8 0a 00
    7281     call 04f94h                               ; e8 5f ff
     7311    call 04fdah                               ; e8 5f ff
    72827312    mov bx, strict word 0ffffh                ; bb ff ff
    72837313    mov dx, strict word 00064h                ; ba 64 00
     
    72867316    ; sub ah, ah                                ; 2a e4
    72877317    test AL, strict byte 001h                 ; a8 01
    7288     jne short 0504fh                          ; 75 0d
     7318    jne short 05095h                          ; 75 0d
    72897319    dec bx                                    ; 4b
    72907320    test bx, bx                               ; 85 db
    7291     jbe short 0504fh                          ; 76 08
     7321    jbe short 05095h                          ; 76 08
    72927322    mov AL, strict byte 011h                  ; b0 11
    72937323    mov dx, 00080h                            ; ba 80 00
    72947324    out DX, AL                                ; ee
    7295     jmp short 05038h                          ; eb e9
     7325    jmp short 0507eh                          ; eb e9
    72967326    test bx, bx                               ; 85 db
    7297     jne short 05059h                          ; 75 06
     7327    jne short 0509fh                          ; 75 06
    72987328    mov ax, strict word 0000bh                ; b8 0b 00
    7299     call 04f94h                               ; e8 3b ff
     7329    call 04fdah                               ; e8 3b ff
    73007330    mov dx, strict word 00060h                ; ba 60 00
    73017331    in AL, DX                                 ; ec
     
    73037333    ; sub ah, ah                                ; 2a e4
    73047334    test ax, ax                               ; 85 c0
    7305     je short 05069h                           ; 74 06
     7335    je short 050afh                           ; 74 06
    73067336    mov ax, 003e0h                            ; b8 e0 03
    7307     call 04f94h                               ; e8 2b ff
     7337    call 04fdah                               ; e8 2b ff
    73087338    mov AL, strict byte 0ffh                  ; b0 ff
    73097339    mov dx, strict word 00060h                ; ba 60 00
     
    73157345    ; sub ah, ah                                ; 2a e4
    73167346    test AL, strict byte 002h                 ; a8 02
    7317     je short 05089h                           ; 74 0d
     7347    je short 050cfh                           ; 74 0d
    73187348    dec bx                                    ; 4b
    73197349    test bx, bx                               ; 85 db
    7320     jbe short 05089h                          ; 76 08
     7350    jbe short 050cfh                          ; 76 08
    73217351    mov AL, strict byte 020h                  ; b0 20
    73227352    mov dx, 00080h                            ; ba 80 00
    73237353    out DX, AL                                ; ee
    7324     jmp short 05072h                          ; eb e9
     7354    jmp short 050b8h                          ; eb e9
    73257355    test bx, bx                               ; 85 db
    7326     jne short 05093h                          ; 75 06
     7356    jne short 050d9h                          ; 75 06
    73277357    mov ax, strict word 00014h                ; b8 14 00
    7328     call 04f94h                               ; e8 01 ff
     7358    call 04fdah                               ; e8 01 ff
    73297359    mov bx, strict word 0ffffh                ; bb ff ff
    73307360    mov dx, strict word 00064h                ; ba 64 00
     
    73337363    ; sub ah, ah                                ; 2a e4
    73347364    test AL, strict byte 001h                 ; a8 01
    7335     jne short 050adh                          ; 75 0d
     7365    jne short 050f3h                          ; 75 0d
    73367366    dec bx                                    ; 4b
    73377367    test bx, bx                               ; 85 db
    7338     jbe short 050adh                          ; 76 08
     7368    jbe short 050f3h                          ; 76 08
    73397369    mov AL, strict byte 021h                  ; b0 21
    73407370    mov dx, 00080h                            ; ba 80 00
    73417371    out DX, AL                                ; ee
    7342     jmp short 05096h                          ; eb e9
     7372    jmp short 050dch                          ; eb e9
    73437373    test bx, bx                               ; 85 db
    7344     jne short 050b7h                          ; 75 06
     7374    jne short 050fdh                          ; 75 06
    73457375    mov ax, strict word 00015h                ; b8 15 00
    7346     call 04f94h                               ; e8 dd fe
     7376    call 04fdah                               ; e8 dd fe
    73477377    mov dx, strict word 00060h                ; ba 60 00
    73487378    in AL, DX                                 ; ec
     
    73507380    ; sub ah, ah                                ; 2a e4
    73517381    cmp ax, 000fah                            ; 3d fa 00
    7352     je short 050c8h                           ; 74 06
     7382    je short 0510eh                           ; 74 06
    73537383    mov ax, 003e1h                            ; b8 e1 03
    7354     call 04f94h                               ; e8 cc fe
     7384    call 04fdah                               ; e8 cc fe
    73557385    mov dx, strict word 00064h                ; ba 64 00
    73567386    in AL, DX                                 ; ec
     
    73587388    ; sub ah, ah                                ; 2a e4
    73597389    test AL, strict byte 001h                 ; a8 01
    7360     jne short 050dah                          ; 75 08
     7390    jne short 05120h                          ; 75 08
    73617391    mov AL, strict byte 031h                  ; b0 31
    73627392    mov dx, 00080h                            ; ba 80 00
    73637393    out DX, AL                                ; ee
    7364     jmp short 050c8h                          ; eb ee
     7394    jmp short 0510eh                          ; eb ee
    73657395    mov dx, strict word 00060h                ; ba 60 00
    73667396    in AL, DX                                 ; ec
     
    73687398    ; sub ah, ah                                ; 2a e4
    73697399    cmp ax, 000aah                            ; 3d aa 00
    7370     je short 050f3h                           ; 74 0e
     7400    je short 05139h                           ; 74 0e
    73717401    in AL, DX                                 ; ec
    73727402    db  02ah, 0e4h
    73737403    ; sub ah, ah                                ; 2a e4
    73747404    cmp ax, 000aah                            ; 3d aa 00
    7375     je short 050f3h                           ; 74 06
     7405    je short 05139h                           ; 74 06
    73767406    mov ax, 003e2h                            ; b8 e2 03
    7377     call 04f94h                               ; e8 a1 fe
     7407    call 04fdah                               ; e8 a1 fe
    73787408    mov AL, strict byte 0f5h                  ; b0 f5
    73797409    mov dx, strict word 00060h                ; ba 60 00
     
    73857415    ; sub ah, ah                                ; 2a e4
    73867416    test AL, strict byte 002h                 ; a8 02
    7387     je short 05113h                           ; 74 0d
     7417    je short 05159h                           ; 74 0d
    73887418    dec bx                                    ; 4b
    73897419    test bx, bx                               ; 85 db
    7390     jbe short 05113h                          ; 76 08
     7420    jbe short 05159h                          ; 76 08
    73917421    mov AL, strict byte 040h                  ; b0 40
    73927422    mov dx, 00080h                            ; ba 80 00
    73937423    out DX, AL                                ; ee
    7394     jmp short 050fch                          ; eb e9
     7424    jmp short 05142h                          ; eb e9
    73957425    test bx, bx                               ; 85 db
    7396     jne short 0511dh                          ; 75 06
     7426    jne short 05163h                          ; 75 06
    73977427    mov ax, strict word 00028h                ; b8 28 00
    7398     call 04f94h                               ; e8 77 fe
     7428    call 04fdah                               ; e8 77 fe
    73997429    mov bx, strict word 0ffffh                ; bb ff ff
    74007430    mov dx, strict word 00064h                ; ba 64 00
     
    74037433    ; sub ah, ah                                ; 2a e4
    74047434    test AL, strict byte 001h                 ; a8 01
    7405     jne short 05137h                          ; 75 0d
     7435    jne short 0517dh                          ; 75 0d
    74067436    dec bx                                    ; 4b
    74077437    test bx, bx                               ; 85 db
    7408     jbe short 05137h                          ; 76 08
     7438    jbe short 0517dh                          ; 76 08
    74097439    mov AL, strict byte 041h                  ; b0 41
    74107440    mov dx, 00080h                            ; ba 80 00
    74117441    out DX, AL                                ; ee
    7412     jmp short 05120h                          ; eb e9
     7442    jmp short 05166h                          ; eb e9
    74137443    test bx, bx                               ; 85 db
    7414     jne short 05141h                          ; 75 06
     7444    jne short 05187h                          ; 75 06
    74157445    mov ax, strict word 00029h                ; b8 29 00
    7416     call 04f94h                               ; e8 53 fe
     7446    call 04fdah                               ; e8 53 fe
    74177447    mov dx, strict word 00060h                ; ba 60 00
    74187448    in AL, DX                                 ; ec
     
    74207450    ; sub ah, ah                                ; 2a e4
    74217451    cmp ax, 000fah                            ; 3d fa 00
    7422     je short 05152h                           ; 74 06
     7452    je short 05198h                           ; 74 06
    74237453    mov ax, 003e3h                            ; b8 e3 03
    7424     call 04f94h                               ; e8 42 fe
     7454    call 04fdah                               ; e8 42 fe
    74257455    mov AL, strict byte 060h                  ; b0 60
    74267456    mov dx, strict word 00064h                ; ba 64 00
     
    74327462    ; sub ah, ah                                ; 2a e4
    74337463    test AL, strict byte 002h                 ; a8 02
    7434     je short 05172h                           ; 74 0d
     7464    je short 051b8h                           ; 74 0d
    74357465    dec bx                                    ; 4b
    74367466    test bx, bx                               ; 85 db
    7437     jbe short 05172h                          ; 76 08
     7467    jbe short 051b8h                          ; 76 08
    74387468    mov AL, strict byte 050h                  ; b0 50
    74397469    mov dx, 00080h                            ; ba 80 00
    74407470    out DX, AL                                ; ee
    7441     jmp short 0515bh                          ; eb e9
     7471    jmp short 051a1h                          ; eb e9
    74427472    test bx, bx                               ; 85 db
    7443     jne short 0517ch                          ; 75 06
     7473    jne short 051c2h                          ; 75 06
    74447474    mov ax, strict word 00032h                ; b8 32 00
    7445     call 04f94h                               ; e8 18 fe
     7475    call 04fdah                               ; e8 18 fe
    74467476    mov AL, strict byte 065h                  ; b0 65
    74477477    mov dx, strict word 00060h                ; ba 60 00
     
    74537483    ; sub ah, ah                                ; 2a e4
    74547484    test AL, strict byte 002h                 ; a8 02
    7455     je short 0519ch                           ; 74 0d
     7485    je short 051e2h                           ; 74 0d
    74567486    dec bx                                    ; 4b
    74577487    test bx, bx                               ; 85 db
    7458     jbe short 0519ch                          ; 76 08
     7488    jbe short 051e2h                          ; 76 08
    74597489    mov AL, strict byte 060h                  ; b0 60
    74607490    mov dx, 00080h                            ; ba 80 00
    74617491    out DX, AL                                ; ee
    7462     jmp short 05185h                          ; eb e9
     7492    jmp short 051cbh                          ; eb e9
    74637493    test bx, bx                               ; 85 db
    7464     jne short 051a6h                          ; 75 06
     7494    jne short 051ech                          ; 75 06
    74657495    mov ax, strict word 0003ch                ; b8 3c 00
    7466     call 04f94h                               ; e8 ee fd
     7496    call 04fdah                               ; e8 ee fd
    74677497    mov AL, strict byte 0f4h                  ; b0 f4
    74687498    mov dx, strict word 00060h                ; ba 60 00
     
    74747504    ; sub ah, ah                                ; 2a e4
    74757505    test AL, strict byte 002h                 ; a8 02
    7476     je short 051c6h                           ; 74 0d
     7506    je short 0520ch                           ; 74 0d
    74777507    dec bx                                    ; 4b
    74787508    test bx, bx                               ; 85 db
    7479     jbe short 051c6h                          ; 76 08
     7509    jbe short 0520ch                          ; 76 08
    74807510    mov AL, strict byte 070h                  ; b0 70
    74817511    mov dx, 00080h                            ; ba 80 00
    74827512    out DX, AL                                ; ee
    7483     jmp short 051afh                          ; eb e9
     7513    jmp short 051f5h                          ; eb e9
    74847514    test bx, bx                               ; 85 db
    7485     jne short 051d0h                          ; 75 06
     7515    jne short 05216h                          ; 75 06
    74867516    mov ax, strict word 00046h                ; b8 46 00
    7487     call 04f94h                               ; e8 c4 fd
     7517    call 04fdah                               ; e8 c4 fd
    74887518    mov bx, strict word 0ffffh                ; bb ff ff
    74897519    mov dx, strict word 00064h                ; ba 64 00
     
    74927522    ; sub ah, ah                                ; 2a e4
    74937523    test AL, strict byte 001h                 ; a8 01
    7494     jne short 051eah                          ; 75 0d
     7524    jne short 05230h                          ; 75 0d
    74957525    dec bx                                    ; 4b
    74967526    test bx, bx                               ; 85 db
    7497     jbe short 051eah                          ; 76 08
     7527    jbe short 05230h                          ; 76 08
    74987528    mov AL, strict byte 071h                  ; b0 71
    74997529    mov dx, 00080h                            ; ba 80 00
    75007530    out DX, AL                                ; ee
    7501     jmp short 051d3h                          ; eb e9
     7531    jmp short 05219h                          ; eb e9
    75027532    test bx, bx                               ; 85 db
    7503     jne short 051f4h                          ; 75 06
     7533    jne short 0523ah                          ; 75 06
    75047534    mov ax, strict word 00046h                ; b8 46 00
    7505     call 04f94h                               ; e8 a0 fd
     7535    call 04fdah                               ; e8 a0 fd
    75067536    mov dx, strict word 00060h                ; ba 60 00
    75077537    in AL, DX                                 ; ec
     
    75097539    ; sub ah, ah                                ; 2a e4
    75107540    cmp ax, 000fah                            ; 3d fa 00
    7511     je short 05205h                           ; 74 06
     7541    je short 0524bh                           ; 74 06
    75127542    mov ax, 003e4h                            ; b8 e4 03
    7513     call 04f94h                               ; e8 8f fd
     7543    call 04fdah                               ; e8 8f fd
    75147544    mov AL, strict byte 0a8h                  ; b0 a8
    75157545    mov dx, strict word 00064h                ; ba 64 00
    75167546    out DX, AL                                ; ee
    75177547    xor ax, ax                                ; 31 c0
    7518     call 06704h                               ; e8 f4 14
     7548    call 0674ah                               ; e8 f4 14
    75197549    mov sp, bp                                ; 89 ec
    75207550    pop bp                                    ; 5d
    75217551    retn                                      ; c3
    7522 enqueue_key_:                                ; 0xf5214 LB 0x9e
     7552enqueue_key_:                                ; 0xf525a LB 0x9e
    75237553    push bp                                   ; 55
    75247554    mov bp, sp                                ; 89 e5
     
    75327562    mov dx, strict word 0001ah                ; ba 1a 00
    75337563    mov ax, strict word 00040h                ; b8 40 00
    7534     call 0166eh                               ; e8 44 c4
     7564    call 0166eh                               ; e8 fe c3
    75357565    mov di, ax                                ; 89 c7
    75367566    mov dx, strict word 0001ch                ; ba 1c 00
    75377567    mov ax, strict word 00040h                ; b8 40 00
    7538     call 0166eh                               ; e8 39 c4
     7568    call 0166eh                               ; e8 f3 c3
    75397569    mov si, ax                                ; 89 c6
    75407570    lea cx, [si+002h]                         ; 8d 4c 02
    75417571    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7542     jc short 05242h                           ; 72 03
     7572    jc short 05288h                           ; 72 03
    75437573    mov cx, strict word 0001eh                ; b9 1e 00
    75447574    cmp cx, di                                ; 39 f9
    7545     jne short 0524ah                          ; 75 04
     7575    jne short 05290h                          ; 75 04
    75467576    xor ax, ax                                ; 31 c0
    7547     jmp short 05274h                          ; eb 2a
     7577    jmp short 052bah                          ; eb 2a
    75487578    mov al, bl                                ; 88 d8
    75497579    xor ah, ah                                ; 30 e4
     
    75517581    mov dx, si                                ; 89 f2
    75527582    mov ax, strict word 00040h                ; b8 40 00
    7553     call 01660h                               ; e8 08 c4
     7583    call 01660h                               ; e8 c2 c3
    75547584    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    75557585    xor bh, bh                                ; 30 ff
    75567586    lea dx, [si+001h]                         ; 8d 54 01
    75577587    mov ax, strict word 00040h                ; b8 40 00
    7558     call 01660h                               ; e8 fa c3
     7588    call 01660h                               ; e8 b4 c3
    75597589    mov bx, cx                                ; 89 cb
    75607590    mov dx, strict word 0001ch                ; ba 1c 00
    75617591    mov ax, strict word 00040h                ; b8 40 00
    7562     call 0167ch                               ; e8 0b c4
     7592    call 0167ch                               ; e8 c5 c3
    75637593    mov ax, strict word 00001h                ; b8 01 00
    75647594    lea sp, [bp-008h]                         ; 8d 66 f8
     
    75697599    pop bp                                    ; 5d
    75707600    retn                                      ; c3
    7571     aam 0c6h                                  ; d4 c6
    7572     lds di, [bp+si-04948h]                    ; c5 ba b8 b6
    7573     stosb                                     ; aa
    7574     popfw                                     ; 9d
    7575     push sp                                   ; 54
    7576     push bx                                   ; 53
    7577     inc si                                    ; 46
    7578     inc bp                                    ; 45
    7579     cmp bh, byte [bx+si]                      ; 3a 38
    7580     sub bl, byte [ss:di]                      ; 36 2a 1d
    7581     clc                                       ; f8
    7582     push bp                                   ; 55
    7583     mov BL, strict byte 053h                  ; b3 53
    7584     push bx                                   ; 53
    7585     push bx                                   ; 53
    7586     push bx                                   ; 53
    7587     push bx                                   ; 53
    7588     inc dx                                    ; 42
    7589     push sp                                   ; 54
    7590     and AL, strict byte 053h                  ; 24 53
    7591     db  0c6h, 054h, 037h, 055h
    7592     ; mov byte [si+037h], 055h                  ; c6 54 37 55
    7593     ficom word [di-044h]                      ; de 55 bc
    7594     push bp                                   ; 55
    7595     cli                                       ; fa
    7596     push bx                                   ; 53
    7597     push bx                                   ; 53
    7598     push bx                                   ; 53
    7599     push bx                                   ; 53
    7600     push bx                                   ; 53
    7601     test byte [si+044h], dl                   ; 84 54 44
    7602     push bx                                   ; 53
    7603     pop SS                                    ; 17
    7604     push bp                                   ; 55
    7605     pushfw                                    ; 9c
    7606     push bp                                   ; 55
    7607     xlatb                                     ; d7
    7608     push bp                                   ; 55
    7609 _int09_function:                             ; 0xf52b2 LB 0x4cd
     7601    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
     7602    db  01dh, 03eh, 056h, 0f9h, 053h, 099h, 053h, 099h, 053h, 088h, 054h, 06ah, 053h, 00ch, 055h, 07dh
     7603    db  055h, 024h, 056h, 002h, 056h, 040h, 054h, 099h, 053h, 099h, 053h, 0cah, 054h, 08ah, 053h, 05dh
     7604    db  055h, 0e2h, 055h, 01dh, 056h
     7605_int09_function:                             ; 0xf52f8 LB 0x4cd
    76107606    push bp                                   ; 55
    76117607    mov bp, sp                                ; 89 e5
     
    76157611    mov byte [bp-004h], al                    ; 88 46 fc
    76167612    test al, al                               ; 84 c0
    7617     jne short 052dfh                          ; 75 1c
     7613    jne short 05325h                          ; 75 1c
    76187614    mov bx, 00da0h                            ; bb a0 0d
    76197615    mov cx, ds                                ; 8c d9
    76207616    mov ax, strict word 00004h                ; b8 04 00
    7621     call 01933h                               ; e8 65 c6
     7617    call 01933h                               ; e8 1f c6
    76227618    mov ax, 00587h                            ; b8 87 05
    76237619    push ax                                   ; 50
    76247620    mov ax, strict word 00004h                ; b8 04 00
    76257621    push ax                                   ; 50
    7626     call 01976h                               ; e8 9d c6
     7622    call 01976h                               ; e8 57 c6
    76277623    add sp, strict byte 00004h                ; 83 c4 04
    7628     jmp near 053adh                           ; e9 ce 00
     7624    jmp near 053f3h                           ; e9 ce 00
    76297625    mov dx, strict word 00018h                ; ba 18 00
    76307626    mov ax, strict word 00040h                ; b8 40 00
    7631     call 01652h                               ; e8 6a c3
     7627    call 01652h                               ; e8 24 c3
    76327628    mov byte [bp-006h], al                    ; 88 46 fa
    76337629    mov byte [bp-008h], al                    ; 88 46 f8
    76347630    mov dx, 00096h                            ; ba 96 00
    76357631    mov ax, strict word 00040h                ; b8 40 00
    7636     call 01652h                               ; e8 5b c3
     7632    call 01652h                               ; e8 15 c3
    76377633    mov byte [bp-00ah], al                    ; 88 46 f6
    76387634    mov byte [bp-010h], al                    ; 88 46 f0
    76397635    mov dx, strict word 00017h                ; ba 17 00
    76407636    mov ax, strict word 00040h                ; b8 40 00
    7641     call 01652h                               ; e8 4c c3
     7637    call 01652h                               ; e8 06 c3
    76427638    mov byte [bp-00ch], al                    ; 88 46 f4
    76437639    mov byte [bp-00eh], al                    ; 88 46 f2
     
    76467642    pop ES                                    ; 07
    76477643    mov cx, strict word 00012h                ; b9 12 00
    7648     mov di, 0527dh                            ; bf 7d 52
     7644    mov di, 052c3h                            ; bf c3 52
    76497645    repne scasb                               ; f2 ae
    76507646    sal cx, 1                                 ; d1 e1
    76517647    mov di, cx                                ; 89 cf
    7652     mov ax, word [cs:di+0528eh]               ; 2e 8b 85 8e 52
     7648    mov ax, word [cs:di+052d4h]               ; 2e 8b 85 d4 52
    76537649    jmp ax                                    ; ff e0
    76547650    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    76577653    mov dx, strict word 00017h                ; ba 17 00
    76587654    mov ax, strict word 00040h                ; b8 40 00
    7659     call 01660h                               ; e8 2a c3
     7655    call 01660h                               ; e8 e4 c2
    76607656    or byte [bp-008h], 040h                   ; 80 4e f8 40
    76617657    mov al, byte [bp-008h]                    ; 8a 46 f8
    76627658    xor ah, ah                                ; 30 e4
    76637659    mov bx, ax                                ; 89 c3
    7664     jmp near 055cch                           ; e9 88 02
     7660    jmp near 05612h                           ; e9 88 02
    76657661    mov al, byte [bp-006h]                    ; 8a 46 fa
    76667662    and AL, strict byte 0bfh                  ; 24 bf
     
    76687664    mov bl, al                                ; 88 c3
    76697665    xor bh, bh                                ; 30 ff
    7670     jmp near 055cch                           ; e9 79 02
     7666    jmp near 05612h                           ; e9 79 02
    76717667    test byte [bp-010h], 002h                 ; f6 46 f0 02
    7672     jne short 0538ch                          ; 75 33
     7668    jne short 053d2h                          ; 75 33
    76737669    mov al, byte [bp-004h]                    ; 8a 46 fc
    76747670    and AL, strict byte 07fh                  ; 24 7f
    76757671    cmp AL, strict byte 02ah                  ; 3c 2a
    7676     jne short 05367h                          ; 75 05
     7672    jne short 053adh                          ; 75 05
    76777673    mov bx, strict word 00002h                ; bb 02 00
    7678     jmp short 0536ah                          ; eb 03
     7674    jmp short 053b0h                          ; eb 03
    76797675    mov bx, strict word 00001h                ; bb 01 00
    76807676    test byte [bp-004h], 080h                 ; f6 46 fc 80
    7681     je short 05379h                           ; 74 09
     7677    je short 053bfh                           ; 74 09
    76827678    mov al, bl                                ; 88 d8
    76837679    not al                                    ; f6 d0
    76847680    and byte [bp-00eh], al                    ; 20 46 f2
    7685     jmp short 0537ch                          ; eb 03
     7681    jmp short 053c2h                          ; eb 03
    76867682    or byte [bp-00eh], bl                     ; 08 5e f2
    76877683    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    76907686    mov dx, strict word 00017h                ; ba 17 00
    76917687    mov ax, strict word 00040h                ; b8 40 00
    7692     call 01660h                               ; e8 d4 c2
     7688    call 01660h                               ; e8 8e c2
    76937689    mov al, byte [bp-004h]                    ; 8a 46 fc
    76947690    and AL, strict byte 07fh                  ; 24 7f
    76957691    cmp AL, strict byte 01dh                  ; 3c 1d
    7696     je short 05399h                           ; 74 04
     7692    je short 053dfh                           ; 74 04
    76977693    and byte [bp-010h], 0feh                  ; 80 66 f0 fe
    76987694    and byte [bp-010h], 0fdh                  ; 80 66 f0 fd
     
    77027698    mov dx, 00096h                            ; ba 96 00
    77037699    mov ax, strict word 00040h                ; b8 40 00
    7704     call 01660h                               ; e8 b3 c2
     7700    call 01660h                               ; e8 6d c2
    77057701    lea sp, [bp-002h]                         ; 8d 66 fe
    77067702    pop di                                    ; 5f
     
    77087704    retn                                      ; c3
    77097705    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7710     jne short 0538ch                          ; 75 d3
     7706    jne short 053d2h                          ; 75 d3
    77117707    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77127708    or AL, strict byte 004h                   ; 0c 04
     
    77167712    mov dx, strict word 00017h                ; ba 17 00
    77177713    mov ax, strict word 00040h                ; b8 40 00
    7718     call 01660h                               ; e8 92 c2
     7714    call 01660h                               ; e8 4c c2
    77197715    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77207716    test AL, strict byte 002h                 ; a8 02
    7721     je short 053e3h                           ; 74 0e
     7717    je short 05429h                           ; 74 0e
    77227718    or AL, strict byte 004h                   ; 0c 04
    77237719    mov byte [bp-010h], al                    ; 88 46 f0
     
    77257721    mov bx, ax                                ; 89 c3
    77267722    mov dx, 00096h                            ; ba 96 00
    7727     jmp short 053f2h                          ; eb 0f
     7723    jmp short 05438h                          ; eb 0f
    77287724    mov al, byte [bp-006h]                    ; 8a 46 fa
    77297725    or AL, strict byte 001h                   ; 0c 01
     
    77337729    mov dx, strict word 00018h                ; ba 18 00
    77347730    mov ax, strict word 00040h                ; b8 40 00
    7735     call 01660h                               ; e8 68 c2
    7736     jmp short 0538ch                          ; eb 92
     7731    call 01660h                               ; e8 22 c2
     7732    jmp short 053d2h                          ; eb 92
    77377733    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7738     jne short 0538ch                          ; 75 8c
     7734    jne short 053d2h                          ; 75 8c
    77397735    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77407736    and AL, strict byte 0fbh                  ; 24 fb
     
    77447740    mov dx, strict word 00017h                ; ba 17 00
    77457741    mov ax, strict word 00040h                ; b8 40 00
    7746     call 01660h                               ; e8 4b c2
     7742    call 01660h                               ; e8 05 c2
    77477743    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77487744    test AL, strict byte 002h                 ; a8 02
    7749     je short 0542ah                           ; 74 0e
     7745    je short 05470h                           ; 74 0e
    77507746    and AL, strict byte 0fbh                  ; 24 fb
    77517747    mov byte [bp-010h], al                    ; 88 46 f0
     
    77537749    mov bx, ax                                ; 89 c3
    77547750    mov dx, 00096h                            ; ba 96 00
    7755     jmp short 05439h                          ; eb 0f
     7751    jmp short 0547fh                          ; eb 0f
    77567752    mov al, byte [bp-006h]                    ; 8a 46 fa
    77577753    and AL, strict byte 0feh                  ; 24 fe
     
    77617757    mov dx, strict word 00018h                ; ba 18 00
    77627758    mov ax, strict word 00040h                ; b8 40 00
    7763     call 01660h                               ; e8 21 c2
    7764     jmp near 0538ch                           ; e9 4a ff
     7759    call 01660h                               ; e8 db c1
     7760    jmp near 053d2h                           ; e9 4a ff
    77657761    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77667762    or AL, strict byte 008h                   ; 0c 08
     
    77707766    mov dx, strict word 00017h                ; ba 17 00
    77717767    mov ax, strict word 00040h                ; b8 40 00
    7772     call 01660h                               ; e8 09 c2
     7768    call 01660h                               ; e8 c3 c1
    77737769    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77747770    test AL, strict byte 002h                 ; a8 02
    7775     je short 0546ch                           ; 74 0e
     7771    je short 054b2h                           ; 74 0e
    77767772    or AL, strict byte 008h                   ; 0c 08
    77777773    mov byte [bp-010h], al                    ; 88 46 f0
     
    77797775    mov bx, ax                                ; 89 c3
    77807776    mov dx, 00096h                            ; ba 96 00
    7781     jmp short 0547bh                          ; eb 0f
     7777    jmp short 054c1h                          ; eb 0f
    77827778    mov al, byte [bp-006h]                    ; 8a 46 fa
    77837779    or AL, strict byte 002h                   ; 0c 02
     
    77877783    mov dx, strict word 00018h                ; ba 18 00
    77887784    mov ax, strict word 00040h                ; b8 40 00
    7789     call 01660h                               ; e8 df c1
    7790     jmp near 0538ch                           ; e9 08 ff
     7785    call 01660h                               ; e8 99 c1
     7786    jmp near 053d2h                           ; e9 08 ff
    77917787    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77927788    and AL, strict byte 0f7h                  ; 24 f7
     
    77967792    mov dx, strict word 00017h                ; ba 17 00
    77977793    mov ax, strict word 00040h                ; b8 40 00
    7798     call 01660h                               ; e8 c7 c1
     7794    call 01660h                               ; e8 81 c1
    77997795    mov al, byte [bp-00ah]                    ; 8a 46 f6
    78007796    test AL, strict byte 002h                 ; a8 02
    7801     je short 054aeh                           ; 74 0e
     7797    je short 054f4h                           ; 74 0e
    78027798    and AL, strict byte 0f7h                  ; 24 f7
    78037799    mov byte [bp-010h], al                    ; 88 46 f0
     
    78057801    mov bx, ax                                ; 89 c3
    78067802    mov dx, 00096h                            ; ba 96 00
    7807     jmp short 054bdh                          ; eb 0f
     7803    jmp short 05503h                          ; eb 0f
    78087804    mov al, byte [bp-006h]                    ; 8a 46 fa
    78097805    and AL, strict byte 0fdh                  ; 24 fd
     
    78137809    mov dx, strict word 00018h                ; ba 18 00
    78147810    mov ax, strict word 00040h                ; b8 40 00
    7815     call 01660h                               ; e8 9d c1
    7816     jmp near 0538ch                           ; e9 c6 fe
     7811    call 01660h                               ; e8 57 c1
     7812    jmp near 053d2h                           ; e9 c6 fe
    78177813    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7818     jne short 054e9h                          ; 75 1d
     7814    jne short 0552fh                          ; 75 1d
    78197815    mov al, byte [bp-006h]                    ; 8a 46 fa
    78207816    or AL, strict byte 020h                   ; 0c 20
     
    78247820    mov dx, strict word 00018h                ; ba 18 00
    78257821    mov ax, strict word 00040h                ; b8 40 00
    7826     call 01660h                               ; e8 7f c1
     7822    call 01660h                               ; e8 39 c1
    78277823    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78287824    xor AL, strict byte 020h                  ; 34 20
    7829     jmp near 0558ah                           ; e9 a1 00
     7825    jmp near 055d0h                           ; e9 a1 00
    78307826    mov al, byte [bp-006h]                    ; 8a 46 fa
    78317827    or AL, strict byte 008h                   ; 0c 08
     
    78357831    mov dx, strict word 00018h                ; ba 18 00
    78367832    mov ax, strict word 00040h                ; b8 40 00
    7837     call 01660h                               ; e8 62 c1
     7833    call 01660h                               ; e8 1c c1
    78387834    mov AL, strict byte 0aeh                  ; b0 ae
    78397835    mov dx, strict word 00064h                ; ba 64 00
    78407836    out DX, AL                                ; ee
    7841     call 0e034h                               ; e8 2d 8b
     7837    call 0e034h                               ; e8 e7 8a
    78427838    mov dx, strict word 00018h                ; ba 18 00
    78437839    mov ax, strict word 00040h                ; b8 40 00
    7844     call 01652h                               ; e8 42 c1
     7840    call 01652h                               ; e8 fc c0
    78457841    test AL, strict byte 008h                 ; a8 08
    7846     jne short 05507h                          ; 75 f3
    7847     jmp near 0538ch                           ; e9 75 fe
     7842    jne short 0554dh                          ; 75 f3
     7843    jmp near 053d2h                           ; e9 75 fe
    78487844    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7849     je short 05520h                           ; 74 03
    7850     jmp near 0538ch                           ; e9 6c fe
     7845    je short 05566h                           ; 74 03
     7846    jmp near 053d2h                           ; e9 6c fe
    78517847    mov al, byte [bp-006h]                    ; 8a 46 fa
    78527848    and AL, strict byte 0dfh                  ; 24 df
     
    78567852    mov dx, strict word 00018h                ; ba 18 00
    78577853    mov ax, strict word 00040h                ; b8 40 00
    7858     call 01660h                               ; e8 2b c1
    7859     jmp short 0551dh                          ; eb e6
     7854    call 01660h                               ; e8 e5 c0
     7855    jmp short 05563h                          ; eb e6
    78607856    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7861     je short 05570h                           ; 74 33
     7857    je short 055b6h                           ; 74 33
    78627858    mov dx, strict word 0001ah                ; ba 1a 00
    78637859    mov ax, strict word 00040h                ; b8 40 00
    7864     call 0166eh                               ; e8 28 c1
     7860    call 0166eh                               ; e8 e2 c0
    78657861    mov bx, ax                                ; 89 c3
    78667862    mov dx, strict word 0001ch                ; ba 1c 00
    78677863    mov ax, strict word 00040h                ; b8 40 00
    7868     call 0167ch                               ; e8 2b c1
     7864    call 0167ch                               ; e8 e5 c0
    78697865    mov bx, 00080h                            ; bb 80 00
    78707866    mov dx, strict word 00071h                ; ba 71 00
    78717867    mov ax, strict word 00040h                ; b8 40 00
    7872     call 01660h                               ; e8 03 c1
     7868    call 01660h                               ; e8 bd c0
    78737869    mov AL, strict byte 0aeh                  ; b0 ae
    78747870    mov dx, strict word 00064h                ; ba 64 00
     
    78797875    xor dx, dx                                ; 31 d2
    78807876    xor ax, ax                                ; 31 c0
    7881     call 05214h                               ; e8 a6 fc
    7882     jmp short 0551dh                          ; eb ad
     7877    call 0525ah                               ; e8 a6 fc
     7878    jmp short 05563h                          ; eb ad
    78837879    mov al, byte [bp-006h]                    ; 8a 46 fa
    78847880    or AL, strict byte 010h                   ; 0c 10
     
    78887884    mov dx, strict word 00018h                ; ba 18 00
    78897885    mov ax, strict word 00040h                ; b8 40 00
    7890     call 01660h                               ; e8 db c0
     7886    call 01660h                               ; e8 95 c0
    78917887    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78927888    xor AL, strict byte 010h                  ; 34 10
     
    78967892    mov dx, strict word 00017h                ; ba 17 00
    78977893    mov ax, strict word 00040h                ; b8 40 00
    7898     call 01660h                               ; e8 c6 c0
    7899     jmp short 0551dh                          ; eb 81
     7894    call 01660h                               ; e8 80 c0
     7895    jmp short 05563h                          ; eb 81
    79007896    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7901     je short 055a5h                           ; 74 03
    7902     jmp near 0538ch                           ; e9 e7 fd
     7897    je short 055ebh                           ; 74 03
     7898    jmp near 053d2h                           ; e9 e7 fd
    79037899    mov al, byte [bp-006h]                    ; 8a 46 fa
    79047900    and AL, strict byte 0efh                  ; 24 ef
     
    79087904    mov dx, strict word 00018h                ; ba 18 00
    79097905    mov ax, strict word 00040h                ; b8 40 00
    7910     call 01660h                               ; e8 a6 c0
    7911     jmp short 055a2h                          ; eb e6
     7906    call 01660h                               ; e8 60 c0
     7907    jmp short 055e8h                          ; eb e6
    79127908    mov al, byte [bp-006h]                    ; 8a 46 fa
    79137909    test AL, strict byte 004h                 ; a8 04
    7914     jne short 055a2h                          ; 75 df
     7910    jne short 055e8h                          ; 75 df
    79157911    or AL, strict byte 004h                   ; 0c 04
    79167912    mov byte [bp-008h], al                    ; 88 46 f8
     
    79197915    mov dx, strict word 00018h                ; ba 18 00
    79207916    mov ax, strict word 00040h                ; b8 40 00
    7921     call 01660h                               ; e8 8b c0
    7922     jmp short 055a2h                          ; eb cb
     7917    call 01660h                               ; e8 45 c0
     7918    jmp short 055e8h                          ; eb cb
    79237919    mov al, byte [bp-006h]                    ; 8a 46 fa
    79247920    and AL, strict byte 0fbh                  ; 24 fb
    7925     jmp short 055c5h                          ; eb e7
     7921    jmp short 0560bh                          ; eb e7
    79267922    mov al, byte [bp-00ch]                    ; 8a 46 f4
    79277923    and AL, strict byte 00ch                  ; 24 0c
    79287924    cmp AL, strict byte 00ch                  ; 3c 0c
    7929     jne short 055f8h                          ; 75 11
     7925    jne short 0563eh                          ; 75 11
    79307926    mov bx, 01234h                            ; bb 34 12
    79317927    mov dx, strict word 00072h                ; ba 72 00
    79327928    mov ax, strict word 00040h                ; b8 40 00
    7933     call 0167ch                               ; e8 89 c0
     7929    call 0167ch                               ; e8 43 c0
    79347930    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    79357931    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7936     je short 0560fh                           ; 74 11
     7932    je short 05655h                           ; 74 11
    79377933    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    79387934    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    79407936    mov bx, ax                                ; 89 c3
    79417937    mov dx, strict word 00018h                ; ba 18 00
    7942     jmp near 053a7h                           ; e9 98 fd
     7938    jmp near 053edh                           ; e9 98 fd
    79437939    mov al, byte [bp-004h]                    ; 8a 46 fc
    79447940    test AL, strict byte 080h                 ; a8 80
    7945     je short 0564dh                           ; 74 37
     7941    je short 05693h                           ; 74 37
    79467942    cmp AL, strict byte 0fah                  ; 3c fa
    7947     jne short 0562ch                          ; 75 12
     7943    jne short 05672h                          ; 75 12
    79487944    mov dx, 00097h                            ; ba 97 00
    79497945    mov ax, strict word 00040h                ; b8 40 00
    7950     call 01652h                               ; e8 2f c0
     7946    call 01652h                               ; e8 e9 bf
    79517947    mov bl, al                                ; 88 c3
    79527948    or bl, 010h                               ; 80 cb 10
    79537949    xor bh, bh                                ; 30 ff
    7954     jmp short 05642h                          ; eb 16
     7950    jmp short 05688h                          ; eb 16
    79557951    cmp AL, strict byte 0feh                  ; 3c fe
    7956     je short 05633h                           ; 74 03
    7957     jmp near 0538ch                           ; e9 59 fd
     7952    je short 05679h                           ; 74 03
     7953    jmp near 053d2h                           ; e9 59 fd
    79587954    mov dx, 00097h                            ; ba 97 00
    79597955    mov ax, strict word 00040h                ; b8 40 00
    7960     call 01652h                               ; e8 16 c0
     7956    call 01652h                               ; e8 d0 bf
    79617957    or AL, strict byte 020h                   ; 0c 20
    79627958    xor ah, ah                                ; 30 e4
     
    79647960    mov dx, 00097h                            ; ba 97 00
    79657961    mov ax, strict word 00040h                ; b8 40 00
    7966     call 01660h                               ; e8 15 c0
    7967     jmp short 05630h                          ; eb e3
     7962    call 01660h                               ; e8 cf bf
     7963    jmp short 05676h                          ; eb e3
    79687964    cmp byte [bp-004h], 058h                  ; 80 7e fc 58
    7969     jbe short 05675h                          ; 76 22
     7965    jbe short 056bbh                          ; 76 22
    79707966    mov bx, 00da0h                            ; bb a0 0d
    79717967    mov cx, ds                                ; 8c d9
    79727968    mov ax, strict word 00004h                ; b8 04 00
    7973     call 01933h                               ; e8 d5 c2
     7969    call 01933h                               ; e8 8f c2
    79747970    mov al, byte [bp-004h]                    ; 8a 46 fc
    79757971    xor ah, ah                                ; 30 e4
     
    79797975    mov ax, strict word 00004h                ; b8 04 00
    79807976    push ax                                   ; 50
    7981     call 01976h                               ; e8 07 c3
     7977    call 01976h                               ; e8 c1 c2
    79827978    add sp, strict byte 00006h                ; 83 c4 06
    7983     jmp near 053adh                           ; e9 38 fd
     7979    jmp near 053f3h                           ; e9 38 fd
    79847980    mov al, byte [bp-00eh]                    ; 8a 46 f2
    79857981    test AL, strict byte 008h                 ; a8 08
    7986     je short 05696h                           ; 74 1a
     7982    je short 056dch                           ; 74 1a
    79877983    mov al, byte [bp-004h]                    ; 8a 46 fc
    79887984    xor ah, ah                                ; 30 e4
     
    79937989    mov byte [bp-012h], al                    ; 88 46 ee
    79947990    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
    7995     jmp near 05748h                           ; e9 b2 00
     7991    jmp near 0578eh                           ; e9 b2 00
    79967992    test AL, strict byte 004h                 ; a8 04
    7997     je short 056b4h                           ; 74 1a
     7993    je short 056fah                           ; 74 1a
    79987994    mov al, byte [bp-004h]                    ; 8a 46 fc
    79997995    xor ah, ah                                ; 30 e4
     
    80048000    mov byte [bp-012h], al                    ; 88 46 ee
    80058001    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
    8006     jmp near 05748h                           ; e9 94 00
     8002    jmp near 0578eh                           ; e9 94 00
    80078003    mov al, byte [bp-010h]                    ; 8a 46 f0
    80088004    and AL, strict byte 002h                  ; 24 02
    80098005    test al, al                               ; 84 c0
    8010     jbe short 056d7h                          ; 76 1a
     8006    jbe short 0571dh                          ; 76 1a
    80118007    mov al, byte [bp-004h]                    ; 8a 46 fc
    80128008    cmp AL, strict byte 047h                  ; 3c 47
    8013     jc short 056d7h                           ; 72 13
     8009    jc short 0571dh                           ; 72 13
    80148010    cmp AL, strict byte 053h                  ; 3c 53
    8015     jnbe short 056d7h                         ; 77 0f
     8011    jnbe short 0571dh                         ; 77 0f
    80168012    mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
    80178013    xor ah, ah                                ; 30 e4
     
    80198015    imul dx                                   ; f7 ea
    80208016    mov bx, ax                                ; 89 c3
    8021     jmp short 05744h                          ; eb 6d
     8017    jmp short 0578ah                          ; eb 6d
    80228018    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    8023     je short 05715h                           ; 74 38
     8019    je short 0575bh                           ; 74 38
    80248020    mov al, byte [bp-004h]                    ; 8a 46 fc
    80258021    xor ah, ah                                ; 30 e4
     
    80328028    mov al, byte [bp-00eh]                    ; 8a 46 f2
    80338029    test ax, dx                               ; 85 d0
    8034     je short 05705h                           ; 74 0d
     8030    je short 0574bh                           ; 74 0d
    80358031    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    80368032    mov byte [bp-012h], al                    ; 88 46 ee
    80378033    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
    8038     jmp short 05710h                          ; eb 0b
     8034    jmp short 05756h                          ; eb 0b
    80398035    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    80408036    mov byte [bp-012h], al                    ; 88 46 ee
    80418037    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    80428038    mov byte [bp-004h], al                    ; 88 46 fc
    8043     jmp short 0574bh                          ; eb 36
     8039    jmp short 05791h                          ; eb 36
    80448040    mov al, byte [bp-004h]                    ; 8a 46 fc
    80458041    xor ah, ah                                ; 30 e4
     
    80528048    mov al, byte [bp-00eh]                    ; 8a 46 f2
    80538049    test ax, dx                               ; 85 d0
    8054     je short 0573dh                           ; 74 0d
     8050    je short 05783h                           ; 74 0d
    80558051    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    80568052    mov byte [bp-012h], al                    ; 88 46 ee
    80578053    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    8058     jmp short 05748h                          ; eb 0b
     8054    jmp short 0578eh                          ; eb 0b
    80598055    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    80608056    mov byte [bp-012h], al                    ; 88 46 ee
     
    80628058    mov byte [bp-004h], al                    ; 88 46 fc
    80638059    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8064     jne short 05770h                          ; 75 1f
     8060    jne short 057b6h                          ; 75 1f
    80658061    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    8066     jne short 05770h                          ; 75 19
     8062    jne short 057b6h                          ; 75 19
    80678063    mov bx, 00da0h                            ; bb a0 0d
    80688064    mov cx, ds                                ; 8c d9
    80698065    mov ax, strict word 00004h                ; b8 04 00
    8070     call 01933h                               ; e8 d1 c1
     8066    call 01933h                               ; e8 8b c1
    80718067    mov ax, 005d8h                            ; b8 d8 05
    80728068    push ax                                   ; 50
    80738069    mov ax, strict word 00004h                ; b8 04 00
    80748070    push ax                                   ; 50
    8075     call 01976h                               ; e8 09 c2
     8071    call 01976h                               ; e8 c3 c1
    80768072    add sp, strict byte 00004h                ; 83 c4 04
    80778073    mov bl, byte [bp-012h]                    ; 8a 5e ee
     
    80808076    xor ah, ah                                ; 30 e4
    80818077    mov dx, bx                                ; 89 da
    8082     jmp near 0556bh                           ; e9 ec fd
    8083 dequeue_key_:                                ; 0xf577f LB 0x94
     8078    jmp near 055b1h                           ; e9 ec fd
     8079dequeue_key_:                                ; 0xf57c5 LB 0x94
    80848080    push bp                                   ; 55
    80858081    mov bp, sp                                ; 89 e5
     
    80948090    mov dx, strict word 0001ah                ; ba 1a 00
    80958091    mov ax, strict word 00040h                ; b8 40 00
    8096     call 0166eh                               ; e8 d5 be
     8092    call 0166eh                               ; e8 8f be
    80978093    mov bx, ax                                ; 89 c3
    80988094    mov dx, strict word 0001ch                ; ba 1c 00
    80998095    mov ax, strict word 00040h                ; b8 40 00
    8100     call 0166eh                               ; e8 ca be
     8096    call 0166eh                               ; e8 84 be
    81018097    cmp bx, ax                                ; 39 c3
    8102     je short 057e5h                           ; 74 3d
     8098    je short 0582bh                           ; 74 3d
    81038099    mov dx, bx                                ; 89 da
    81048100    mov ax, strict word 00040h                ; b8 40 00
    8105     call 01652h                               ; e8 a2 be
     8101    call 01652h                               ; e8 5c be
    81068102    mov cl, al                                ; 88 c1
    81078103    lea dx, [bx+001h]                         ; 8d 57 01
    81088104    mov ax, strict word 00040h                ; b8 40 00
    8109     call 01652h                               ; e8 97 be
     8105    call 01652h                               ; e8 51 be
    81108106    mov es, [bp-008h]                         ; 8e 46 f8
    81118107    mov byte [es:si], cl                      ; 26 88 0c
     
    81138109    mov byte [es:di], al                      ; 26 88 05
    81148110    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    8115     je short 057e0h                           ; 74 13
     8111    je short 05826h                           ; 74 13
    81168112    inc bx                                    ; 43
    81178113    inc bx                                    ; 43
    81188114    cmp bx, strict byte 0003eh                ; 83 fb 3e
    8119     jc short 057d7h                           ; 72 03
     8115    jc short 0581dh                           ; 72 03
    81208116    mov bx, strict word 0001eh                ; bb 1e 00
    81218117    mov dx, strict word 0001ah                ; ba 1a 00
    81228118    mov ax, strict word 00040h                ; b8 40 00
    8123     call 0167ch                               ; e8 9c be
     8119    call 0167ch                               ; e8 56 be
    81248120    mov ax, strict word 00001h                ; b8 01 00
    8125     jmp short 057e7h                          ; eb 02
     8121    jmp short 0582dh                          ; eb 02
    81268122    xor ax, ax                                ; 31 c0
    81278123    lea sp, [bp-004h]                         ; 8d 66 fc
     
    81348130    or cl, byte [bx+di]                       ; 0a 09
    81358131    add ax, 00102h                            ; 05 02 01
    8136     add byte [bx+di], bl                      ; 00 19
     8132    add byte [bx+059h], bl                    ; 00 5f 59
     8133    sbb bl, byte [bx+di-051h]                 ; 1a 59 af
    81378134    pop cx                                    ; 59
    8138     aam 058h                                  ; d4 58
    8139     imul bx, word [bx+di-053h], 0c059h        ; 69 59 ad 59 c0
     8135    db  0f3h, 059h
     8136    ; rep pop cx                                ; f3 59
     8137    push ES                                   ; 06
     8138    pop dx                                    ; 5a
     8139    sub ax, 0375ah                            ; 2d 5a 37
     8140    pop dx                                    ; 5a
     8141    cmpsb                                     ; a6
     8142    pop dx                                    ; 5a
     8143    fstp qword [bp+si+00dh]                   ; dd 5a 0d
     8144    pop bx                                    ; 5b
     8145    inc sp                                    ; 44
     8146    pop bx                                    ; 5b
     8147    db  0a9h
    81408148    pop cx                                    ; 59
    8141     out 059h, ax                              ; e7 59
    8142     db  0f1h
    8143     pop cx                                    ; 59
    8144     pushaw                                    ; 60
    8145     pop dx                                    ; 5a
    8146     xchg di, ax                               ; 97
    8147     pop dx                                    ; 5a
    8148     db  0c7h, 05ah, 0feh, 05ah, 063h
    8149     ; mov word [bp+si-002h], 0635ah             ; c7 5a fe 5a 63
    8150     pop cx                                    ; 59
    8151 _int16_function:                             ; 0xf5813 LB 0x2f6
     8149_int16_function:                             ; 0xf5859 LB 0x2f6
    81528150    push bp                                   ; 55
    81538151    mov bp, sp                                ; 89 e5
     
    81568154    mov dx, strict word 00017h                ; ba 17 00
    81578155    mov ax, strict word 00040h                ; b8 40 00
    8158     call 01652h                               ; e8 2f be
     8156    call 01652h                               ; e8 e9 bd
    81598157    mov cl, al                                ; 88 c1
    81608158    mov bh, al                                ; 88 c7
    81618159    mov dx, 00097h                            ; ba 97 00
    81628160    mov ax, strict word 00040h                ; b8 40 00
    8163     call 01652h                               ; e8 22 be
     8161    call 01652h                               ; e8 dc bd
    81648162    mov bl, al                                ; 88 c3
    81658163    mov dl, cl                                ; 88 ca
     
    81728170    xor al, dl                                ; 30 d0
    81738171    test ax, ax                               ; 85 c0
    8174     je short 058b3h                           ; 74 6c
     8172    je short 058f9h                           ; 74 6c
    81758173    cli                                       ; fa
    81768174    mov AL, strict byte 0edh                  ; b0 ed
     
    81828180    ; sub ah, ah                                ; 2a e4
    81838181    test AL, strict byte 001h                 ; a8 01
    8184     jne short 05860h                          ; 75 08
     8182    jne short 058a6h                          ; 75 08
    81858183    mov AL, strict byte 021h                  ; b0 21
    81868184    mov dx, 00080h                            ; ba 80 00
    81878185    out DX, AL                                ; ee
    8188     jmp short 0584eh                          ; eb ee
     8186    jmp short 05894h                          ; eb ee
    81898187    mov dx, strict word 00060h                ; ba 60 00
    81908188    in AL, DX                                 ; ec
     
    81928190    ; sub ah, ah                                ; 2a e4
    81938191    cmp ax, 000fah                            ; 3d fa 00
    8194     jne short 058b2h                          ; 75 47
     8192    jne short 058f8h                          ; 75 47
    81958193    and bl, 0c8h                              ; 80 e3 c8
    81968194    mov al, bh                                ; 88 f8
     
    82158213    ; sub ah, ah                                ; 2a e4
    82168214    test AL, strict byte 001h                 ; a8 01
    8217     jne short 058a1h                          ; 75 08
     8215    jne short 058e7h                          ; 75 08
    82188216    mov AL, strict byte 021h                  ; b0 21
    82198217    mov dx, 00080h                            ; ba 80 00
    82208218    out DX, AL                                ; ee
    8221     jmp short 0588fh                          ; eb ee
     8219    jmp short 058d5h                          ; eb ee
    82228220    mov dx, strict word 00060h                ; ba 60 00
    82238221    in AL, DX                                 ; ec
     
    82278225    mov dx, 00097h                            ; ba 97 00
    82288226    mov ax, strict word 00040h                ; b8 40 00
    8229     call 01660h                               ; e8 ae bd
     8227    call 01660h                               ; e8 68 bd
    82308228    sti                                       ; fb
    82318229    mov CL, strict byte 008h                  ; b1 08
     
    82338231    shr ax, CL                                ; d3 e8
    82348232    cmp ax, 000a2h                            ; 3d a2 00
    8235     jnbe short 05919h                         ; 77 5a
     8233    jnbe short 0595fh                         ; 77 5a
    82368234    push CS                                   ; 0e
    82378235    pop ES                                    ; 07
    82388236    mov cx, strict word 0000ch                ; b9 0c 00
    8239     mov di, 057f0h                            ; bf f0 57
     8237    mov di, 05836h                            ; bf 36 58
    82408238    repne scasb                               ; f2 ae
    82418239    sal cx, 1                                 ; d1 e1
    82428240    mov di, cx                                ; 89 cf
    8243     mov ax, word [cs:di+057fbh]               ; 2e 8b 85 fb 57
     8241    mov ax, word [cs:di+05841h]               ; 2e 8b 85 41 58
    82448242    jmp ax                                    ; ff e0
    82458243    mov ax, strict word 00001h                ; b8 01 00
     
    82498247    mov dx, ss                                ; 8c d2
    82508248    lea ax, [bp-008h]                         ; 8d 46 f8
    8251     call 0577fh                               ; e8 9a fe
     8249    call 057c5h                               ; e8 9a fe
    82528250    test ax, ax                               ; 85 c0
    8253     jne short 058f7h                          ; 75 0e
     8251    jne short 0593dh                          ; 75 0e
    82548252    mov ax, 0060fh                            ; b8 0f 06
    82558253    push ax                                   ; 50
    82568254    mov ax, strict word 00007h                ; b8 07 00
    82578255    push ax                                   ; 50
    8258     call 01976h                               ; e8 82 c0
     8256    call 01976h                               ; e8 3c c0
    82598257    add sp, strict byte 00004h                ; 83 c4 04
    82608258    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8261     je short 05903h                           ; 74 06
     8259    je short 05949h                           ; 74 06
    82628260    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8263     je short 05909h                           ; 74 06
     8261    je short 0594fh                           ; 74 06
    82648262    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    8265     jne short 0590dh                          ; 75 04
     8263    jne short 05953h                          ; 75 04
    82668264    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    82678265    mov ah, byte [bp-008h]                    ; 8a 66 f8
    82688266    mov al, byte [bp-006h]                    ; 8a 46 fa
    82698267    mov word [bp+012h], ax                    ; 89 46 12
    8270     jmp near 05963h                           ; e9 4a 00
     8268    jmp near 059a9h                           ; e9 4a 00
    82718269    mov bx, 00da0h                            ; bb a0 0d
    82728270    mov cx, ds                                ; 8c d9
    82738271    mov ax, strict word 00004h                ; b8 04 00
    8274     call 01933h                               ; e8 0f c0
     8272    call 01933h                               ; e8 c9 bf
    82758273    mov CL, strict byte 008h                  ; b1 08
    82768274    mov ax, word [bp+012h]                    ; 8b 46 12
     
    82818279    mov ax, strict word 00004h                ; b8 04 00
    82828280    push ax                                   ; 50
    8283     call 01976h                               ; e8 3f c0
     8281    call 01976h                               ; e8 f9 bf
    82848282    add sp, strict byte 00006h                ; 83 c4 06
    82858283    mov bx, 00da0h                            ; bb a0 0d
    82868284    mov cx, ds                                ; 8c d9
    82878285    mov ax, strict word 00004h                ; b8 04 00
    8288     call 01933h                               ; e8 ee bf
     8286    call 01933h                               ; e8 a8 bf
    82898287    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82908288    push ax                                   ; 50
     
    82998297    mov ax, strict word 00004h                ; b8 04 00
    83008298    push ax                                   ; 50
    8301     call 01976h                               ; e8 16 c0
     8299    call 01976h                               ; e8 d0 bf
    83028300    add sp, strict byte 0000ch                ; 83 c4 0c
    83038301    lea sp, [bp-002h]                         ; 8d 66 fe
     
    83128310    mov dx, ss                                ; 8c d2
    83138311    lea ax, [bp-008h]                         ; 8d 46 f8
    8314     call 0577fh                               ; e8 01 fe
     8312    call 057c5h                               ; e8 01 fe
    83158313    test ax, ax                               ; 85 c0
    8316     jne short 05988h                          ; 75 06
     8314    jne short 059ceh                          ; 75 06
    83178315    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    8318     jmp short 05963h                          ; eb db
     8316    jmp short 059a9h                          ; eb db
    83198317    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8320     je short 05994h                           ; 74 06
     8318    je short 059dah                           ; 74 06
    83218319    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8322     je short 0599ah                           ; 74 06
     8320    je short 059e0h                           ; 74 06
    83238321    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    8324     jne short 0599eh                          ; 75 04
     8322    jne short 059e4h                          ; 75 04
    83258323    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    83268324    mov dh, byte [bp-008h]                    ; 8a 76 f8
     
    83288326    mov word [bp+012h], dx                    ; 89 56 12
    83298327    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    8330     jmp short 05963h                          ; eb b6
     8328    jmp short 059a9h                          ; eb b6
    83318329    mov dx, strict word 00017h                ; ba 17 00
    83328330    mov ax, strict word 00040h                ; b8 40 00
    8333     call 01652h                               ; e8 9c bc
     8331    call 01652h                               ; e8 56 bc
    83348332    mov dx, word [bp+012h]                    ; 8b 56 12
    83358333    mov dl, al                                ; 88 c2
    83368334    mov word [bp+012h], dx                    ; 89 56 12
    8337     jmp short 05963h                          ; eb a3
     8335    jmp short 059a9h                          ; eb a3
    83388336    mov dl, byte [bp+010h]                    ; 8a 56 10
    83398337    xor dh, dh                                ; 30 f6
     
    83428340    shr ax, CL                                ; d3 e8
    83438341    xor ah, ah                                ; 30 e4
    8344     call 05214h                               ; e8 43 f8
     8342    call 0525ah                               ; e8 43 f8
    83458343    test ax, ax                               ; 85 c0
    8346     jne short 059dfh                          ; 75 0a
     8344    jne short 05a25h                          ; 75 0a
    83478345    mov ax, word [bp+012h]                    ; 8b 46 12
    83488346    xor al, al                                ; 30 c0
    83498347    or AL, strict byte 001h                   ; 0c 01
    8350     jmp near 05913h                           ; e9 34 ff
     8348    jmp near 05959h                           ; e9 34 ff
    83518349    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8352     jmp near 05963h                           ; e9 7c ff
     8350    jmp near 059a9h                           ; e9 7c ff
    83538351    mov ax, word [bp+012h]                    ; 8b 46 12
    83548352    xor al, al                                ; 30 c0
    83558353    or AL, strict byte 030h                   ; 0c 30
    8356     jmp near 05913h                           ; e9 22 ff
     8354    jmp near 05959h                           ; e9 22 ff
    83578355    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    83588356    xor cx, cx                                ; 31 c9
     
    83678365    ; sub ah, ah                                ; 2a e4
    83688366    test AL, strict byte 001h                 ; a8 01
    8369     jne short 05a18h                          ; 75 0d
     8367    jne short 05a5eh                          ; 75 0d
    83708368    dec bx                                    ; 4b
    83718369    test bx, bx                               ; 85 db
    8372     jbe short 05a18h                          ; 76 08
     8370    jbe short 05a5eh                          ; 76 08
    83738371    mov dx, 00080h                            ; ba 80 00
    83748372    in AL, DX                                 ; ec
    83758373    db  02ah, 0e4h
    83768374    ; sub ah, ah                                ; 2a e4
    8377     jmp short 05a01h                          ; eb e9
     8375    jmp short 05a47h                          ; eb e9
    83788376    test bx, bx                               ; 85 db
    8379     jbe short 05a5ah                          ; 76 3e
     8377    jbe short 05aa0h                          ; 76 3e
    83808378    mov dx, strict word 00060h                ; ba 60 00
    83818379    in AL, DX                                 ; ec
     
    83838381    ; sub ah, ah                                ; 2a e4
    83848382    cmp ax, 000fah                            ; 3d fa 00
    8385     jne short 05a5ah                          ; 75 33
     8383    jne short 05aa0h                          ; 75 33
    83868384    mov bx, strict word 0ffffh                ; bb ff ff
    83878385    mov dx, strict word 00064h                ; ba 64 00
     
    83908388    ; sub ah, ah                                ; 2a e4
    83918389    test AL, strict byte 001h                 ; a8 01
    8392     jne short 05a41h                          ; 75 0d
     8390    jne short 05a87h                          ; 75 0d
    83938391    dec bx                                    ; 4b
    83948392    test bx, bx                               ; 85 db
    8395     jbe short 05a41h                          ; 76 08
     8393    jbe short 05a87h                          ; 76 08
    83968394    mov dx, 00080h                            ; ba 80 00
    83978395    in AL, DX                                 ; ec
    83988396    db  02ah, 0e4h
    83998397    ; sub ah, ah                                ; 2a e4
    8400     jmp short 05a2ah                          ; eb e9
     8398    jmp short 05a70h                          ; eb e9
    84018399    test bx, bx                               ; 85 db
    8402     jbe short 05a51h                          ; 76 0c
     8400    jbe short 05a97h                          ; 76 0c
    84038401    mov bl, ch                                ; 88 eb
    84048402    mov dx, strict word 00060h                ; ba 60 00
     
    84108408    dec byte [bp-004h]                        ; fe 4e fc
    84118409    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8412     jnbe short 05a27h                         ; 77 cd
     8410    jnbe short 05a6dh                         ; 77 cd
    84138411    mov word [bp+00ch], cx                    ; 89 4e 0c
    8414     jmp near 05963h                           ; e9 03 ff
     8412    jmp near 059a9h                           ; e9 03 ff
    84158413    mov ax, strict word 00001h                ; b8 01 00
    84168414    push ax                                   ; 50
     
    84198417    mov dx, ss                                ; 8c d2
    84208418    lea ax, [bp-008h]                         ; 8d 46 f8
    8421     call 0577fh                               ; e8 0e fd
     8419    call 057c5h                               ; e8 0e fd
    84228420    test ax, ax                               ; 85 c0
    8423     jne short 05a83h                          ; 75 0e
     8421    jne short 05ac9h                          ; 75 0e
    84248422    mov ax, 0060fh                            ; b8 0f 06
    84258423    push ax                                   ; 50
    84268424    mov ax, strict word 00007h                ; b8 07 00
    84278425    push ax                                   ; 50
    8428     call 01976h                               ; e8 f6 be
     8426    call 01976h                               ; e8 b0 be
    84298427    add sp, strict byte 00004h                ; 83 c4 04
    84308428    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8431     jne short 05a8ch                          ; 75 03
    8432     jmp near 0590dh                           ; e9 81 fe
     8429    jne short 05ad2h                          ; 75 03
     8430    jmp near 05953h                           ; e9 81 fe
    84338431    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8434     jne short 05a95h                          ; 75 03
    8435     jmp near 05909h                           ; e9 74 fe
    8436     jmp short 05a89h                          ; eb f2
     8432    jne short 05adbh                          ; 75 03
     8433    jmp near 0594fh                           ; e9 74 fe
     8434    jmp short 05acfh                          ; eb f2
    84378435    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    84388436    xor ax, ax                                ; 31 c0
     
    84428440    mov dx, ss                                ; 8c d2
    84438441    lea ax, [bp-008h]                         ; 8d 46 f8
    8444     call 0577fh                               ; e8 d3 fc
     8442    call 057c5h                               ; e8 d3 fc
    84458443    test ax, ax                               ; 85 c0
    8446     jne short 05ab3h                          ; 75 03
    8447     jmp near 05982h                           ; e9 cf fe
     8444    jne short 05af9h                          ; 75 03
     8445    jmp near 059c8h                           ; e9 cf fe
    84488446    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8449     jne short 05abch                          ; 75 03
    8450     jmp near 0599eh                           ; e9 e2 fe
     8447    jne short 05b02h                          ; 75 03
     8448    jmp near 059e4h                           ; e9 e2 fe
    84518449    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8452     jne short 05ac5h                          ; 75 03
    8453     jmp near 0599ah                           ; e9 d5 fe
    8454     jmp short 05ab9h                          ; eb f2
     8450    jne short 05b0bh                          ; 75 03
     8451    jmp near 059e0h                           ; e9 d5 fe
     8452    jmp short 05affh                          ; eb f2
    84558453    mov dx, strict word 00017h                ; ba 17 00
    84568454    mov ax, strict word 00040h                ; b8 40 00
    8457     call 01652h                               ; e8 82 bb
     8455    call 01652h                               ; e8 3c bb
    84588456    mov dx, word [bp+012h]                    ; 8b 56 12
    84598457    mov dl, al                                ; 88 c2
     
    84618459    mov dx, strict word 00018h                ; ba 18 00
    84628460    mov ax, strict word 00040h                ; b8 40 00
    8463     call 01652h                               ; e8 71 bb
     8461    call 01652h                               ; e8 2b bb
    84648462    mov bh, al                                ; 88 c7
    84658463    and bh, 073h                              ; 80 e7 73
    84668464    mov dx, 00096h                            ; ba 96 00
    84678465    mov ax, strict word 00040h                ; b8 40 00
    8468     call 01652h                               ; e8 63 bb
     8466    call 01652h                               ; e8 1d bb
    84698467    mov ah, al                                ; 88 c4
    84708468    and ah, 00ch                              ; 80 e4 0c
     
    84728470    mov dx, word [bp+012h]                    ; 8b 56 12
    84738471    mov dh, ah                                ; 88 e6
    8474     jmp near 059bbh                           ; e9 bd fe
     8472    jmp near 05a01h                           ; e9 bd fe
    84758473    mov ax, word [bp+012h]                    ; 8b 46 12
    84768474    xor ah, ah                                ; 30 e4
    84778475    or ah, 080h                               ; 80 cc 80
    8478     jmp near 05913h                           ; e9 0a fe
    8479 set_geom_lba_:                               ; 0xf5b09 LB 0xeb
     8476    jmp near 05959h                           ; e9 0a fe
     8477set_geom_lba_:                               ; 0xf5b4f LB 0xeb
    84808478    push bx                                   ; 53
    84818479    push cx                                   ; 51
     
    84958493    mov dx, word [bp+00ch]                    ; 8b 56 0c
    84968494    mov si, strict word 00020h                ; be 20 00
    8497     call 0a060h                               ; e8 28 45
     8495    call 0a0a0h                               ; e8 22 45
    84988496    test ax, ax                               ; 85 c0
    8499     jne short 05b48h                          ; 75 0c
     8497    jne short 05b8eh                          ; 75 0c
    85008498    test bx, bx                               ; 85 db
    8501     jne short 05b48h                          ; 75 08
     8499    jne short 05b8eh                          ; 75 08
    85028500    test cx, cx                               ; 85 c9
    8503     jne short 05b48h                          ; 75 04
     8501    jne short 05b8eh                          ; 75 04
    85048502    test dx, dx                               ; 85 d2
    8505     je short 05b4fh                           ; 74 07
     8503    je short 05b95h                           ; 74 07
    85068504    mov bx, strict word 0ffffh                ; bb ff ff
    85078505    mov si, bx                                ; 89 de
    8508     jmp short 05b55h                          ; eb 06
     8506    jmp short 05b9bh                          ; eb 06
    85098507    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    85108508    mov si, word [bp+00eh]                    ; 8b 76 0e
    85118509    mov word [bp-004h], bx                    ; 89 5e fc
    85128510    xor bx, bx                                ; 31 db
    8513     jmp short 05b61h                          ; eb 05
     8511    jmp short 05ba7h                          ; eb 05
    85148512    cmp bx, strict byte 00004h                ; 83 fb 04
    8515     jnl short 05b84h                          ; 7d 23
     8513    jnl short 05bcah                          ; 7d 23
    85168514    mov ax, word [bp-006h]                    ; 8b 46 fa
    85178515    cmp si, ax                                ; 39 c6
    8518     jc short 05b72h                           ; 72 0a
    8519     jne short 05b7bh                          ; 75 11
     8516    jc short 05bb8h                           ; 72 0a
     8517    jne short 05bc1h                          ; 75 11
    85208518    mov ax, word [bp-004h]                    ; 8b 46 fc
    85218519    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8522     jnbe short 05b7bh                         ; 77 09
     8520    jnbe short 05bc1h                         ; 77 09
    85238521    mov ax, word [bp-002h]                    ; 8b 46 fe
    85248522    inc ax                                    ; 40
     
    85288526    rcr word [bp-008h], 1                     ; d1 5e f8
    85298527    inc bx                                    ; 43
    8530     jmp short 05b5ch                          ; eb d8
     8528    jmp short 05ba2h                          ; eb d8
    85318529    mov ax, word [bp-002h]                    ; 8b 46 fe
    85328530    xor dx, dx                                ; 31 d2
    85338531    mov bx, strict word 0003fh                ; bb 3f 00
    85348532    xor cx, cx                                ; 31 c9
    8535     call 0a010h                               ; e8 7f 44
     8533    call 0a050h                               ; e8 79 44
    85368534    mov bx, ax                                ; 89 c3
    85378535    mov cx, dx                                ; 89 d1
    85388536    mov ax, word [bp-004h]                    ; 8b 46 fc
    85398537    mov dx, si                                ; 89 f2
    8540     call 0a030h                               ; e8 93 44
     8538    call 0a070h                               ; e8 8d 44
    85418539    mov word [es:di+002h], ax                 ; 26 89 45 02
    85428540    cmp ax, 00400h                            ; 3d 00 04
    8543     jbe short 05bach                          ; 76 06
     8541    jbe short 05bf2h                          ; 76 06
    85448542    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    85458543    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    85538551    pop bx                                    ; 5b
    85548552    retn 00008h                               ; c2 08 00
    8555     jl short 05c20h                           ; 7c 5c
    8556     lea bx, [si-04bh]                         ; 8d 5c b5
     8553    retn 0d35ch                               ; c2 5c d3
    85578554    pop sp                                    ; 5c
    8558     mov CH, strict byte 05ch                  ; b5 5c
    8559     mov CH, strict byte 05ch                  ; b5 5c
    8560     mov word [0df5eh], ax                     ; a3 5e df
     8555    sti                                       ; fb
     8556    pop sp                                    ; 5c
     8557    sti                                       ; fb
     8558    pop sp                                    ; 5c
     8559    sti                                       ; fb
     8560    pop sp                                    ; 5c
     8561    jmp near 08173h                           ; e9 5e 25
     8562    pushaw                                    ; 60
     8563    and ax, 01960h                            ; 25 60 19
    85618564    pop di                                    ; 5f
    8562     fistp word [bx-02dh]                      ; df 5f d3
    8563     pop si                                    ; 5e
    8564     mov cx, 0df5fh                            ; b9 5f df
     8565    call far [bx+025h]                        ; ff 5f 25
     8566    pushaw                                    ; 60
     8567    and ax, 0ff60h                            ; 25 60 ff
    85658568    pop di                                    ; 5f
    8566     fistp word [bx-047h]                      ; df 5f b9
     8569    call far [bx+025h]                        ; ff 5f 25
     8570    pushaw                                    ; 60
     8571    and ax, 07f60h                            ; 25 60 7f
    85678572    pop di                                    ; 5f
    8568     mov cx, 0df5fh                            ; b9 5f df
     8573    call far [bx+025h]                        ; ff 5f 25
     8574    pushaw                                    ; 60
     8575    and ax, 0ff60h                            ; 25 60 ff
    85698576    pop di                                    ; 5f
    8570     fistp word [bx+039h]                      ; df 5f 39
    8571     pop di                                    ; 5f
    8572     mov cx, 0df5fh                            ; b9 5f df
    8573     pop di                                    ; 5f
    8574     fistp word [bx-047h]                      ; df 5f b9
    8575     pop di                                    ; 5f
    8576     push strict byte 0005fh                   ; 6a 5f
    8577     fistp word [bx-021h]                      ; df 5f df
    8578     pop di                                    ; 5f
    8579     db  0dfh
    8580     pop di                                    ; 5f
    8581 _int13_harddisk:                             ; 0xf5bf4 LB 0x446
     8577    mov AL, strict byte 05fh                  ; b0 5f
     8578    and ax, 02560h                            ; 25 60 25
     8579    pushaw                                    ; 60
     8580    db  025h
     8581    pushaw                                    ; 60
     8582_int13_harddisk:                             ; 0xf5c3a LB 0x446
    85828583    push bp                                   ; 55
    85838584    mov bp, sp                                ; 89 e5
     
    85858586    mov dx, strict word 0000eh                ; ba 0e 00
    85868587    mov ax, strict word 00040h                ; b8 40 00
    8587     call 0166eh                               ; e8 6b ba
     8588    call 0166eh                               ; e8 25 ba
    85888589    mov si, 00122h                            ; be 22 01
    85898590    mov word [bp-004h], ax                    ; 89 46 fc
     
    85918592    mov dx, 0008eh                            ; ba 8e 00
    85928593    mov ax, strict word 00040h                ; b8 40 00
    8593     call 01660h                               ; e8 4c ba
     8594    call 01660h                               ; e8 06 ba
    85948595    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85958596    xor ah, ah                                ; 30 e4
    85968597    cmp ax, 00080h                            ; 3d 80 00
    8597     jc short 05c23h                           ; 72 05
     8598    jc short 05c69h                           ; 72 05
    85988599    cmp ax, 00090h                            ; 3d 90 00
    8599     jc short 05c42h                           ; 72 1f
     8600    jc short 05c88h                           ; 72 1f
    86008601    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86018602    xor ah, ah                                ; 30 e4
     
    86098610    mov ax, strict word 00004h                ; b8 04 00
    86108611    push ax                                   ; 50
    8611     call 01976h                               ; e8 3a bd
     8612    call 01976h                               ; e8 f4 bc
    86128613    add sp, strict byte 0000ah                ; 83 c4 0a
    8613     jmp near 05ffah                           ; e9 b8 03
     8614    jmp near 06040h                           ; e9 b8 03
    86148615    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86158616    xor ah, ah                                ; 30 e4
     
    86208621    mov byte [bp-002h], dl                    ; 88 56 fe
    86218622    cmp dl, 010h                              ; 80 fa 10
    8622     jc short 05c69h                           ; 72 0e
     8623    jc short 05cafh                           ; 72 0e
    86238624    push ax                                   ; 50
    86248625    mov al, byte [bp+017h]                    ; 8a 46 17
     
    86278628    push ax                                   ; 50
    86288629    mov ax, 006b8h                            ; b8 b8 06
    8629     jmp short 05c34h                          ; eb cb
     8630    jmp short 05c7ah                          ; eb cb
    86308631    mov al, byte [bp+017h]                    ; 8a 46 17
    86318632    xor ah, ah                                ; 30 e4
    86328633    cmp ax, strict word 00018h                ; 3d 18 00
    8633     jnbe short 05cb2h                         ; 77 3f
     8634    jnbe short 05cf8h                         ; 77 3f
    86348635    mov bx, ax                                ; 89 c3
    86358636    sal bx, 1                                 ; d1 e3
    8636     jmp word [cs:bx+05bc2h]                   ; 2e ff a7 c2 5b
     8637    jmp word [cs:bx+05c08h]                   ; 2e ff a7 08 5c
    86378638    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8638     jnc short 05c8ah                          ; 73 08
     8639    jnc short 05cd0h                          ; 73 08
    86398640    mov al, byte [bp-002h]                    ; 8a 46 fe
    86408641    xor ah, ah                                ; 30 e4
    8641     call 01db8h                               ; e8 2e c1
    8642     jmp near 05ebch                           ; e9 2f 02
     8642    call 01db8h                               ; e8 e8 c0
     8643    jmp near 05f02h                           ; e9 2f 02
    86438644    mov dx, strict word 00074h                ; ba 74 00
    86448645    mov ax, strict word 00040h                ; b8 40 00
    8645     call 01652h                               ; e8 bc b9
     8646    call 01652h                               ; e8 76 b9
    86468647    mov cl, al                                ; 88 c1
    86478648    mov dx, word [bp+016h]                    ; 8b 56 16
     
    86518652    mov dx, strict word 00074h                ; ba 74 00
    86528653    mov ax, strict word 00040h                ; b8 40 00
    8653     call 01660h                               ; e8 b5 b9
     8654    call 01660h                               ; e8 6f b9
    86548655    test cl, cl                               ; 84 c9
    8655     je short 05d11h                           ; 74 62
    8656     jmp near 06013h                           ; e9 61 03
    8657     jmp near 05fdfh                           ; e9 2a 03
     8656    je short 05d57h                           ; 74 62
     8657    jmp near 06059h                           ; e9 61 03
     8658    jmp near 06025h                           ; e9 2a 03
    86588659    mov ax, word [bp+016h]                    ; 8b 46 16
    86598660    xor ah, ah                                ; 30 e4
     
    86748675    mov ax, word [bp-00eh]                    ; 8b 46 f2
    86758676    cmp ax, 00080h                            ; 3d 80 00
    8676     jnbe short 05cebh                         ; 77 04
     8677    jnbe short 05d31h                         ; 77 04
    86778678    test ax, ax                               ; 85 c0
    8678     jne short 05d14h                          ; 75 29
     8679    jne short 05d5ah                          ; 75 29
    86798680    mov bx, 00da0h                            ; bb a0 0d
    86808681    mov cx, ds                                ; 8c d9
    86818682    mov ax, strict word 00004h                ; b8 04 00
    8682     call 01933h                               ; e8 3d bc
     8683    call 01933h                               ; e8 f7 bb
    86838684    mov al, byte [bp+017h]                    ; 8a 46 17
    86848685    xor ah, ah                                ; 30 e4
     
    86908691    mov ax, strict word 00004h                ; b8 04 00
    86918692    push ax                                   ; 50
    8692     call 01976h                               ; e8 6b bc
     8693    call 01976h                               ; e8 25 bc
    86938694    add sp, strict byte 00008h                ; 83 c4 08
    8694     jmp near 05ffah                           ; e9 e9 02
    8695     jmp near 05ec0h                           ; e9 ac 01
     8695    jmp near 06040h                           ; e9 e9 02
     8696    jmp near 05f06h                           ; e9 ac 01
    86968697    mov al, byte [bp-002h]                    ; 8a 46 fe
    86978698    xor ah, ah                                ; 30 e4
     
    87068707    mov word [bp-010h], dx                    ; 89 56 f0
    87078708    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8708     jbe short 05d42h                          ; 76 09
     8709    jbe short 05d88h                          ; 76 09
    87098710    cmp cx, word [bp-00ch]                    ; 3b 4e f4
    8710     jbe short 05d42h                          ; 76 04
     8711    jbe short 05d88h                          ; 76 04
    87118712    cmp di, dx                                ; 39 d7
    8712     jbe short 05d73h                          ; 76 31
     8713    jbe short 05db9h                          ; 76 31
    87138714    mov bx, 00da0h                            ; bb a0 0d
    87148715    mov cx, ds                                ; 8c d9
    87158716    mov ax, strict word 00004h                ; b8 04 00
    8716     call 01933h                               ; e8 e6 bb
     8717    call 01933h                               ; e8 a0 bb
    87178718    push di                                   ; 57
    87188719    push word [bp-00ch]                       ; ff 76 f4
     
    87298730    mov ax, strict word 00004h                ; b8 04 00
    87308731    push ax                                   ; 50
    8731     call 01976h                               ; e8 09 bc
     8732    call 01976h                               ; e8 c3 bb
    87328733    add sp, strict byte 00010h                ; 83 c4 10
    8733     jmp near 05ffah                           ; e9 87 02
     8734    jmp near 06040h                           ; e9 87 02
    87348735    mov al, byte [bp+017h]                    ; 8a 46 17
    87358736    xor ah, ah                                ; 30 e4
    87368737    cmp ax, strict word 00004h                ; 3d 04 00
    8737     je short 05d9dh                           ; 74 20
     8738    je short 05de3h                           ; 74 20
    87388739    mov al, byte [bp-002h]                    ; 8a 46 fe
    87398740    mov dx, strict word 0001ch                ; ba 1c 00
     
    87438744    add bx, ax                                ; 01 c3
    87448745    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8745     jne short 05da6h                          ; 75 14
     8746    jne short 05dech                          ; 75 14
    87468747    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    87478748    cmp ax, word [bp-010h]                    ; 3b 46 f0
    8748     je short 05da0h                           ; 74 05
    8749     jmp short 05da6h                          ; eb 09
    8750     jmp near 05ebch                           ; e9 1c 01
     8749    je short 05de6h                           ; 74 05
     8750    jmp short 05dech                          ; eb 09
     8751    jmp near 05f02h                           ; e9 1c 01
    87518752    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8752     jc short 05dd5h                           ; 72 2f
     8753    jc short 05e1bh                           ; 72 2f
    87538754    mov ax, word [bp-00ah]                    ; 8b 46 f6
    87548755    xor dx, dx                                ; 31 d2
    87558756    mov bx, cx                                ; 89 cb
    87568757    xor cx, cx                                ; 31 c9
    8757     call 0a010h                               ; e8 5e 42
     8758    call 0a050h                               ; e8 58 42
    87588759    xor bx, bx                                ; 31 db
    87598760    add ax, word [bp-00ch]                    ; 03 46 f4
     
    87618762    mov bx, word [bp-010h]                    ; 8b 5e f0
    87628763    xor cx, cx                                ; 31 c9
    8763     call 0a010h                               ; e8 4f 42
     8764    call 0a050h                               ; e8 49 42
    87648765    xor bx, bx                                ; 31 db
    87658766    add ax, di                                ; 01 f8
     
    88188819    mov word [bp+016h], bx                    ; 89 5e 16
    88198820    test dl, dl                               ; 84 d2
    8820     je short 05ebch                           ; 74 4a
     8821    je short 05f02h                           ; 74 4a
    88218822    mov bx, 00da0h                            ; bb a0 0d
    88228823    mov cx, ds                                ; 8c d9
    88238824    mov ax, strict word 00004h                ; b8 04 00
    8824     call 01933h                               ; e8 b6 ba
     8825    call 01933h                               ; e8 70 ba
    88258826    mov al, dl                                ; 88 d0
    88268827    xor ah, ah                                ; 30 e4
     
    88348835    mov ax, strict word 00004h                ; b8 04 00
    88358836    push ax                                   ; 50
    8836     call 01976h                               ; e8 e1 ba
     8837    call 01976h                               ; e8 9b ba
    88378838    add sp, strict byte 0000ah                ; 83 c4 0a
    88388839    mov ax, word [bp+016h]                    ; 8b 46 16
    88398840    xor ah, ah                                ; 30 e4
    88408841    or ah, 00ch                               ; 80 cc 0c
    8841     jmp near 06002h                           ; e9 5f 01
     8842    jmp near 06048h                           ; e9 5f 01
    88428843    mov bx, 00da0h                            ; bb a0 0d
    88438844    mov cx, ds                                ; 8c d9
    88448845    mov ax, strict word 00004h                ; b8 04 00
    8845     call 01933h                               ; e8 85 ba
     8846    call 01933h                               ; e8 3f ba
    88468847    mov ax, 0077ah                            ; b8 7a 07
    88478848    push ax                                   ; 50
    88488849    mov ax, strict word 00004h                ; b8 04 00
    88498850    push ax                                   ; 50
    8850     call 01976h                               ; e8 bd ba
     8851    call 01976h                               ; e8 77 ba
    88518852    add sp, strict byte 00004h                ; 83 c4 04
    88528853    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    88548855    mov dx, strict word 00074h                ; ba 74 00
    88558856    mov ax, strict word 00040h                ; b8 40 00
    8856     call 01660h                               ; e8 95 b7
     8857    call 01660h                               ; e8 4f b7
    88578858    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    88588859    mov sp, bp                                ; 89 ec
     
    88978898    or ax, dx                                 ; 09 d0
    88988899    mov word [bp+012h], ax                    ; 89 46 12
    8899     jmp short 05ebch                          ; eb 83
     8900    jmp short 05f02h                          ; eb 83
    89008901    mov al, byte [bp-002h]                    ; 8a 46 fe
    89018902    cwd                                       ; 99
     
    89148915    and AL, strict byte 0c0h                  ; 24 c0
    89158916    cmp AL, strict byte 040h                  ; 3c 40
    8916     jne short 05f5fh                          ; 75 03
    8917     jmp near 05ebch                           ; e9 5d ff
     8917    jne short 05fa5h                          ; 75 03
     8918    jmp near 05f02h                           ; e9 5d ff
    89188919    mov ax, word [bp+016h]                    ; 8b 46 16
    89198920    xor ah, ah                                ; 30 e4
    89208921    or ah, 0aah                               ; 80 cc aa
    8921     jmp near 06002h                           ; e9 98 00
     8922    jmp near 06048h                           ; e9 98 00
    89228923    mov al, byte [bp-002h]                    ; 8a 46 fe
    89238924    xor ah, ah                                ; 30 e4
     
    89358936    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89368937    xor cx, cx                                ; 31 c9
    8937     call 0a010h                               ; e8 78 40
     8938    call 0a050h                               ; e8 72 40
    89388939    mov bx, di                                ; 89 fb
    89398940    xor cx, cx                                ; 31 c9
    8940     call 0a010h                               ; e8 71 40
     8941    call 0a050h                               ; e8 6b 40
    89418942    mov word [bp-008h], ax                    ; 89 46 f8
    89428943    mov word [bp-006h], dx                    ; 89 56 fa
     
    89478948    or ah, 003h                               ; 80 cc 03
    89488949    mov word [bp+016h], ax                    ; 89 46 16
    8949     jmp near 05ec0h                           ; e9 07 ff
     8950    jmp near 05f06h                           ; e9 07 ff
    89508951    mov bx, 00da0h                            ; bb a0 0d
    89518952    mov cx, ds                                ; 8c d9
    89528953    mov ax, strict word 00004h                ; b8 04 00
    8953     call 01933h                               ; e8 6f b9
     8954    call 01933h                               ; e8 29 b9
    89548955    mov al, byte [bp+017h]                    ; 8a 46 17
    89558956    xor ah, ah                                ; 30 e4
     
    89618962    mov ax, strict word 00004h                ; b8 04 00
    89628963    push ax                                   ; 50
    8963     call 01976h                               ; e8 9d b9
     8964    call 01976h                               ; e8 57 b9
    89648965    add sp, strict byte 00008h                ; 83 c4 08
    8965     jmp near 05ebch                           ; e9 dd fe
     8966    jmp near 05f02h                           ; e9 dd fe
    89668967    mov bx, 00da0h                            ; bb a0 0d
    89678968    mov cx, ds                                ; 8c d9
    89688969    mov ax, strict word 00004h                ; b8 04 00
    8969     call 01933h                               ; e8 49 b9
     8970    call 01933h                               ; e8 03 b9
    89708971    mov al, byte [bp+017h]                    ; 8a 46 17
    89718972    xor ah, ah                                ; 30 e4
     
    89748975    push ax                                   ; 50
    89758976    mov ax, 007c7h                            ; b8 c7 07
    8976     jmp near 05d03h                           ; e9 09 fd
     8977    jmp near 05d49h                           ; e9 09 fd
    89778978    mov ax, word [bp+016h]                    ; 8b 46 16
    89788979    xor ah, ah                                ; 30 e4
     
    89838984    mov dx, strict word 00074h                ; ba 74 00
    89848985    mov ax, strict word 00040h                ; b8 40 00
    8985     call 01660h                               ; e8 4d b6
     8986    call 01660h                               ; e8 07 b6
    89868987    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8987     jmp near 05ecfh                           ; e9 b5 fe
    8988     aam 060h                                  ; d4 60
    8989     pop ES                                    ; 07
     8988    jmp near 05f15h                           ; e9 b5 fe
     8989    sbb ah, byte [bx+di+04dh]                 ; 1a 61 4d
    89908990    popaw                                     ; 61
    8991     pop ES                                    ; 07
     8991    dec bp                                    ; 4d
    89928992    popaw                                     ; 61
    8993     pop ES                                    ; 07
     8993    dec bp                                    ; 4d
    89948994    popaw                                     ; 61
    8995     sbb word [di+07ch], sp                    ; 19 65 7c
    8996     bound ax, [bx]                            ; 62 07
     8995    pop di                                    ; 5f
     8996    db  065h, 0c2h, 062h, 04dh
     8997    ; gs retn 04d62h                            ; 65 c2 62 4d
    89978998    popaw                                     ; 61
    8998     db  082h, 062h, 019h, 065h
    8999     ; and byte [bp+si+019h], 065h               ; 82 62 19 65
    9000     in AL, DX                                 ; ec
    9001     pushaw                                    ; 60
    9002     in AL, DX                                 ; ec
    9003     pushaw                                    ; 60
    9004     in AL, DX                                 ; ec
    9005     pushaw                                    ; 60
    9006     in AL, DX                                 ; ec
    9007     pushaw                                    ; 60
    9008     xor byte [di-014h], ah                    ; 30 65 ec
    9009     pushaw                                    ; 60
    9010     in AL, DX                                 ; ec
    9011     pushaw                                    ; 60
    9012 _int13_harddisk_ext:                         ; 0xf603a LB 0x52b
     8999    enter 05f62h, 065h                        ; c8 62 5f 65
     9000    xor ah, byte [bx+di+032h]                 ; 32 61 32
     9001    popaw                                     ; 61
     9002    xor ah, byte [bx+di+032h]                 ; 32 61 32
     9003    popaw                                     ; 61
     9004    jbe short 060e1h                          ; 76 65
     9005    xor ah, byte [bx+di+032h]                 ; 32 61 32
     9006    popaw                                     ; 61
     9007_int13_harddisk_ext:                         ; 0xf6080 LB 0x52b
    90139008    push bp                                   ; 55
    90149009    mov bp, sp                                ; 89 e5
     
    90169011    mov dx, strict word 0000eh                ; ba 0e 00
    90179012    mov ax, strict word 00040h                ; b8 40 00
    9018     call 0166eh                               ; e8 25 b6
     9013    call 0166eh                               ; e8 df b5
    90199014    mov word [bp-018h], ax                    ; 89 46 e8
    90209015    mov dx, strict word 0000eh                ; ba 0e 00
    90219016    mov ax, strict word 00040h                ; b8 40 00
    9022     call 0166eh                               ; e8 19 b6
     9017    call 0166eh                               ; e8 d3 b5
    90239018    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    90249019    mov word [bp-006h], ax                    ; 89 46 fa
     
    90269021    mov dx, 0008eh                            ; ba 8e 00
    90279022    mov ax, strict word 00040h                ; b8 40 00
    9028     call 01660h                               ; e8 f8 b5
     9023    call 01660h                               ; e8 b2 b5
    90299024    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90309025    xor ah, ah                                ; 30 e4
    90319026    cmp ax, 00080h                            ; 3d 80 00
    9032     jc short 06077h                           ; 72 05
     9027    jc short 060bdh                           ; 72 05
    90339028    cmp ax, 00090h                            ; 3d 90 00
    9034     jc short 06096h                           ; 72 1f
     9029    jc short 060dch                           ; 72 1f
    90359030    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90369031    xor ah, ah                                ; 30 e4
     
    90449039    mov ax, strict word 00004h                ; b8 04 00
    90459040    push ax                                   ; 50
    9046     call 01976h                               ; e8 e6 b8
     9041    call 01976h                               ; e8 a0 b8
    90479042    add sp, strict byte 0000ah                ; 83 c4 0a
    9048     jmp near 06546h                           ; e9 b0 04
     9043    jmp near 0658ch                           ; e9 b0 04
    90499044    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90509045    xor ah, ah                                ; 30 e4
     
    90549049    mov byte [bp-004h], dl                    ; 88 56 fc
    90559050    cmp dl, 010h                              ; 80 fa 10
    9056     jc short 060bbh                           ; 72 0e
     9051    jc short 06101h                           ; 72 0e
    90579052    push ax                                   ; 50
    90589053    mov al, byte [bp+017h]                    ; 8a 46 17
     
    90619056    push ax                                   ; 50
    90629057    mov ax, 006b8h                            ; b8 b8 06
    9063     jmp short 06088h                          ; eb cd
     9058    jmp short 060ceh                          ; eb cd
    90649059    mov bl, byte [bp+017h]                    ; 8a 5e 17
    90659060    xor bh, bh                                ; 30 ff
    90669061    sub bx, strict byte 00041h                ; 83 eb 41
    90679062    cmp bx, strict byte 0000fh                ; 83 fb 0f
    9068     jnbe short 060ech                         ; 77 24
     9063    jnbe short 06132h                         ; 77 24
    90699064    sal bx, 1                                 ; d1 e3
    90709065    mov ax, word [bp+016h]                    ; 8b 46 16
    90719066    xor ah, ah                                ; 30 e4
    9072     jmp word [cs:bx+0601ah]                   ; 2e ff a7 1a 60
     9067    jmp word [cs:bx+06060h]                   ; 2e ff a7 60 60
    90739068    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    90749069    mov ax, word [bp+016h]                    ; 8b 46 16
     
    90779072    mov word [bp+016h], ax                    ; 89 46 16
    90789073    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    9079     jmp near 0651dh                           ; e9 31 04
     9074    jmp near 06563h                           ; e9 31 04
    90809075    mov bx, 00da0h                            ; bb a0 0d
    90819076    mov cx, ds                                ; 8c d9
    90829077    mov ax, strict word 00004h                ; b8 04 00
    9083     call 01933h                               ; e8 3c b8
     9078    call 01933h                               ; e8 f6 b7
    90849079    mov al, byte [bp+017h]                    ; 8a 46 17
    90859080    xor ah, ah                                ; 30 e4
     
    90889083    push ax                                   ; 50
    90899084    mov ax, 007c7h                            ; b8 c7 07
    9090     jmp near 061a4h                           ; e9 9d 00
     9085    jmp near 061eah                           ; e9 9d 00
    90919086    mov di, word [bp+00ah]                    ; 8b 7e 0a
    90929087    mov es, [bp+004h]                         ; 8e 46 04
     
    91049099    xor bx, bx                                ; 31 db
    91059100    mov si, strict word 00020h                ; be 20 00
    9106     call 0a070h                               ; e8 36 3f
     9101    call 0a0b0h                               ; e8 30 3f
    91079102    mov word [bp-00eh], ax                    ; 89 46 f2
    91089103    mov word [bp-010h], bx                    ; 89 5e f0
     
    91219116    mov dx, word [bp-00eh]                    ; 8b 56 f2
    91229117    cmp dx, word [es:bx+03ch]                 ; 26 3b 57 3c
    9123     jnbe short 0618ch                         ; 77 22
    9124     jne short 061b2h                          ; 75 46
     9118    jnbe short 061d2h                         ; 77 22
     9119    jne short 061f8h                          ; 75 46
    91259120    mov dx, word [bp-010h]                    ; 8b 56 f0
    91269121    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9127     jnbe short 0618ch                         ; 77 17
     9122    jnbe short 061d2h                         ; 77 17
    91289123    mov dx, word [bp-010h]                    ; 8b 56 f0
    91299124    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9130     jne short 061b2h                          ; 75 34
     9125    jne short 061f8h                          ; 75 34
    91319126    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
    9132     jnbe short 0618ch                         ; 77 08
    9133     jne short 061b2h                          ; 75 2c
     9127    jnbe short 061d2h                         ; 77 08
     9128    jne short 061f8h                          ; 75 2c
    91349129    cmp si, word [es:bx+036h]                 ; 26 3b 77 36
    9135     jc short 061b2h                           ; 72 26
     9130    jc short 061f8h                           ; 72 26
    91369131    mov bx, 00da0h                            ; bb a0 0d
    91379132    mov cx, ds                                ; 8c d9
    91389133    mov ax, strict word 00004h                ; b8 04 00
    9139     call 01933h                               ; e8 9c b7
     9134    call 01933h                               ; e8 56 b7
    91409135    mov al, byte [bp+017h]                    ; 8a 46 17
    91419136    xor ah, ah                                ; 30 e4
     
    91479142    mov ax, strict word 00004h                ; b8 04 00
    91489143    push ax                                   ; 50
    9149     call 01976h                               ; e8 ca b7
     9144    call 01976h                               ; e8 84 b7
    91509145    add sp, strict byte 00008h                ; 83 c4 08
    9151     jmp near 06546h                           ; e9 94 03
     9146    jmp near 0658ch                           ; e9 94 03
    91529147    mov ah, byte [bp+017h]                    ; 8a 66 17
    91539148    mov byte [bp-012h], ah                    ; 88 66 ee
    91549149    mov byte [bp-011h], 000h                  ; c6 46 ef 00
    91559150    cmp word [bp-012h], strict byte 00044h    ; 83 7e ee 44
    9156     je short 061c8h                           ; 74 06
     9151    je short 0620eh                           ; 74 06
    91579152    cmp word [bp-012h], strict byte 00047h    ; 83 7e ee 47
    9158     jne short 061cbh                          ; 75 03
    9159     jmp near 06519h                           ; e9 4e 03
     9153    jne short 06211h                          ; 75 03
     9154    jmp near 0655fh                           ; e9 4e 03
    91609155    les bx, [bp-008h]                         ; c4 5e f8
    91619156    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     
    91959190    mov word [es:bx+002h], ax                 ; 26 89 47 02
    91969191    test dl, dl                               ; 84 d2
    9197     je short 062a0h                           ; 74 54
     9192    je short 062e6h                           ; 74 54
    91989193    mov bx, 00da0h                            ; bb a0 0d
    91999194    mov cx, ds                                ; 8c d9
    92009195    mov ax, strict word 00004h                ; b8 04 00
    9201     call 01933h                               ; e8 dc b6
     9196    call 01933h                               ; e8 96 b6
    92029197    mov al, dl                                ; 88 d0
    92039198    xor ah, ah                                ; 30 e4
     
    92109205    mov ax, strict word 00004h                ; b8 04 00
    92119206    push ax                                   ; 50
    9212     call 01976h                               ; e8 08 b7
     9207    call 01976h                               ; e8 c2 b6
    92139208    add sp, strict byte 0000ah                ; 83 c4 0a
    92149209    mov ax, word [bp+016h]                    ; 8b 46 16
    92159210    xor ah, ah                                ; 30 e4
    92169211    or ah, 00ch                               ; 80 cc 0c
    9217     jmp near 0654eh                           ; e9 d2 02
     9212    jmp near 06594h                           ; e9 d2 02
    92189213    or ah, 0b2h                               ; 80 cc b2
    9219     jmp near 0654eh                           ; e9 cc 02
     9214    jmp near 06594h                           ; e9 cc 02
    92209215    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    92219216    mov ax, word [bp+004h]                    ; 8b 46 04
     
    92279222    mov word [bp-014h], ax                    ; 89 46 ec
    92289223    cmp ax, strict word 0001ah                ; 3d 1a 00
    9229     jnc short 062a3h                          ; 73 06
    9230     jmp near 06546h                           ; e9 a6 02
    9231     jmp near 06519h                           ; e9 76 02
    9232     jnc short 062a8h                          ; 73 03
    9233     jmp near 0633bh                           ; e9 93 00
     9224    jnc short 062e9h                          ; 73 06
     9225    jmp near 0658ch                           ; e9 a6 02
     9226    jmp near 0655fh                           ; e9 76 02
     9227    jnc short 062eeh                          ; 73 03
     9228    jmp near 06381h                           ; e9 93 00
    92349229    mov al, byte [bp-004h]                    ; 8a 46 fc
    92359230    xor ah, ah                                ; 30 e4
     
    92699264    mov dx, si                                ; 89 f2
    92709265    mov si, strict word 00020h                ; be 20 00
    9271     call 0a060h                               ; e8 2f 3d
     9266    call 0a0a0h                               ; e8 29 3d
    92729267    mov bx, di                                ; 89 fb
    92739268    mov word [es:bx+014h], dx                 ; 26 89 57 14
    92749269    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    92759270    cmp word [bp-014h], strict byte 0001eh    ; 83 7e ec 1e
    9276     jc short 063adh                           ; 72 6c
     9271    jc short 063f3h                           ; 72 6c
    92779272    mov es, [bp-00ah]                         ; 8e 46 f6
    92789273    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    93059300    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    93069301    test al, al                               ; 84 c0
    9307     jne short 0639eh                          ; 75 04
     9302    jne short 063e4h                          ; 75 04
    93089303    xor si, si                                ; 31 f6
    9309     jmp short 063a1h                          ; eb 03
     9304    jmp short 063e7h                          ; eb 03
    93109305    mov si, strict word 00008h                ; be 08 00
    93119306    or si, strict byte 00010h                 ; 83 ce 10
    93129307    cmp AL, strict byte 001h                  ; 3c 01
    9313     jne short 063b0h                          ; 75 08
     9308    jne short 063f6h                          ; 75 08
    93149309    mov dx, strict word 00001h                ; ba 01 00
    9315     jmp short 063b2h                          ; eb 05
    9316     jmp near 06448h                           ; e9 98 00
     9310    jmp short 063f8h                          ; eb 05
     9311    jmp near 0648eh                           ; e9 98 00
    93179312    xor dx, dx                                ; 31 d2
    93189313    or si, dx                                 ; 09 d6
    93199314    cmp AL, strict byte 003h                  ; 3c 03
    9320     jne short 063bdh                          ; 75 05
     9315    jne short 06403h                          ; 75 05
    93219316    mov ax, strict word 00003h                ; b8 03 00
    9322     jmp short 063bfh                          ; eb 02
     9317    jmp short 06405h                          ; eb 02
    93239318    xor ax, ax                                ; 31 c0
    93249319    or si, ax                                 ; 09 c6
     
    93499344    xor bl, bl                                ; 30 db
    93509345    xor bh, bh                                ; 30 ff
    9351     jmp short 06428h                          ; eb 05
     9346    jmp short 0646eh                          ; eb 05
    93529347    cmp bh, 00fh                              ; 80 ff 0f
    9353     jnc short 0643eh                          ; 73 16
     9348    jnc short 06484h                          ; 73 16
    93549349    mov al, bh                                ; 88 f8
    93559350    xor ah, ah                                ; 30 e4
     
    93579352    add dx, 00356h                            ; 81 c2 56 03
    93589353    mov ax, word [bp-018h]                    ; 8b 46 e8
    9359     call 01652h                               ; e8 1a b2
     9354    call 01652h                               ; e8 d4 b1
    93609355    add bl, al                                ; 00 c3
    93619356    db  0feh, 0c7h
    93629357    ; inc bh                                    ; fe c7
    9363     jmp short 06423h                          ; eb e5
     9358    jmp short 06469h                          ; eb e5
    93649359    neg bl                                    ; f6 db
    93659360    les si, [bp-008h]                         ; c4 76 f8
    93669361    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    93679362    cmp word [bp-014h], strict byte 00042h    ; 83 7e ec 42
    9368     jnc short 06451h                          ; 73 03
    9369     jmp near 06519h                           ; e9 c8 00
     9363    jnc short 06497h                          ; 73 03
     9364    jmp near 0655fh                           ; e9 c8 00
    93709365    mov al, byte [bp-004h]                    ; 8a 46 fc
    93719366    xor ah, ah                                ; 30 e4
     
    93879382    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    93889383    test al, al                               ; 84 c0
    9389     jne short 0649bh                          ; 75 0c
     9384    jne short 064e1h                          ; 75 0c
    93909385    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    93919386    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    93969391    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    93979392    test al, al                               ; 84 c0
    9398     jne short 064d0h                          ; 75 16
     9393    jne short 06516h                          ; 75 16
    93999394    mov word [es:di+030h], dx                 ; 26 89 55 30
    94009395    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    94119406    xor bl, bl                                ; 30 db
    94129407    mov BH, strict byte 01eh                  ; b7 1e
    9413     jmp short 064fbh                          ; eb 05
     9408    jmp short 06541h                          ; eb 05
    94149409    cmp bh, 040h                              ; 80 ff 40
    9415     jnc short 06510h                          ; 73 15
     9410    jnc short 06556h                          ; 73 15
    94169411    mov al, bh                                ; 88 f8
    94179412    xor ah, ah                                ; 30 e4
     
    94199414    add dx, ax                                ; 01 c2
    94209415    mov ax, word [bp+004h]                    ; 8b 46 04
    9421     call 01652h                               ; e8 48 b1
     9416    call 01652h                               ; e8 02 b1
    94229417    add bl, al                                ; 00 c3
    94239418    db  0feh, 0c7h
    94249419    ; inc bh                                    ; fe c7
    9425     jmp short 064f6h                          ; eb e6
     9420    jmp short 0653ch                          ; eb e6
    94269421    neg bl                                    ; f6 db
    94279422    mov es, [bp-00ah]                         ; 8e 46 f6
     
    94319426    mov dx, strict word 00074h                ; ba 74 00
    94329427    mov ax, strict word 00040h                ; b8 40 00
    9433     call 01660h                               ; e8 38 b1
     9428    call 01660h                               ; e8 f2 b0
    94349429    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    94359430    mov sp, bp                                ; 89 ec
     
    94379432    retn                                      ; c3
    94389433    cmp ax, strict word 00006h                ; 3d 06 00
    9439     je short 06519h                           ; 74 e4
     9434    je short 0655fh                           ; 74 e4
    94409435    cmp ax, strict word 00001h                ; 3d 01 00
    9441     jc short 06546h                           ; 72 0c
    9442     jbe short 06519h                          ; 76 dd
     9436    jc short 0658ch                           ; 72 0c
     9437    jbe short 0655fh                          ; 76 dd
    94439438    cmp ax, strict word 00003h                ; 3d 03 00
    9444     jc short 06546h                           ; 72 05
     9439    jc short 0658ch                           ; 72 05
    94459440    cmp ax, strict word 00004h                ; 3d 04 00
    9446     jbe short 06519h                          ; 76 d3
     9441    jbe short 0655fh                          ; 76 d3
    94479442    mov ax, word [bp+016h]                    ; 8b 46 16
    94489443    xor ah, ah                                ; 30 e4
     
    94539448    mov dx, strict word 00074h                ; ba 74 00
    94549449    mov ax, strict word 00040h                ; b8 40 00
    9455     call 01660h                               ; e8 01 b1
     9450    call 01660h                               ; e8 bb b0
    94569451    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9457     jmp short 0652ch                          ; eb c7
    9458 _int14_function:                             ; 0xf6565 LB 0x15c
     9452    jmp short 06572h                          ; eb c7
     9453_int14_function:                             ; 0xf65ab LB 0x15c
    94599454    push bp                                   ; 55
    94609455    mov bp, sp                                ; 89 e5
     
    94649459    sal dx, 1                                 ; d1 e2
    94659460    mov ax, strict word 00040h                ; b8 40 00
    9466     call 0166eh                               ; e8 f9 b0
     9461    call 0166eh                               ; e8 b3 b0
    94679462    mov si, ax                                ; 89 c6
    94689463    mov bx, ax                                ; 89 c3
     
    94709465    add dx, strict byte 0007ch                ; 83 c2 7c
    94719466    mov ax, strict word 00040h                ; b8 40 00
    9472     call 01652h                               ; e8 cd b0
     9467    call 01652h                               ; e8 87 b0
    94739468    mov cl, al                                ; 88 c1
    94749469    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9475     jnc short 06591h                          ; 73 04
     9470    jnc short 065d7h                          ; 73 04
    94769471    test si, si                               ; 85 f6
    9477     jnbe short 06594h                         ; 77 03
    9478     jmp near 066b7h                           ; e9 23 01
     9472    jnbe short 065dah                         ; 77 03
     9473    jmp near 066fdh                           ; e9 23 01
    94799474    mov al, byte [bp+013h]                    ; 8a 46 13
    94809475    cmp AL, strict byte 001h                  ; 3c 01
    9481     jc short 065a8h                           ; 72 0d
    9482     jbe short 06608h                          ; 76 6b
     9476    jc short 065eeh                           ; 72 0d
     9477    jbe short 0664eh                          ; 76 6b
    94839478    cmp AL, strict byte 003h                  ; 3c 03
    9484     je short 06600h                           ; 74 5f
     9479    je short 06646h                           ; 74 5f
    94859480    cmp AL, strict byte 002h                  ; 3c 02
    9486     je short 06603h                           ; 74 5e
    9487     jmp near 066b1h                           ; e9 09 01
     9481    je short 06649h                           ; 74 5e
     9482    jmp near 066f7h                           ; e9 09 01
    94889483    test al, al                               ; 84 c0
    9489     jne short 06605h                          ; 75 59
     9484    jne short 0664bh                          ; 75 59
    94909485    lea dx, [bx+003h]                         ; 8d 57 03
    94919486    in AL, DX                                 ; ec
     
    94979492    mov al, byte [bp+012h]                    ; 8a 46 12
    94989493    test AL, strict byte 0e0h                 ; a8 e0
    9499     jne short 065cbh                          ; 75 0c
     9494    jne short 06611h                          ; 75 0c
    95009495    mov AL, strict byte 017h                  ; b0 17
    95019496    mov dx, bx                                ; 89 da
     
    95049499    mov dx, si                                ; 89 f2
    95059500    out DX, AL                                ; ee
    9506     jmp short 065e2h                          ; eb 17
     9501    jmp short 06628h                          ; eb 17
    95079502    and AL, strict byte 0e0h                  ; 24 e0
    95089503    xor ah, ah                                ; 30 e4
     
    95319526    ; sub ah, ah                                ; 2a e4
    95329527    mov byte [bp+012h], al                    ; 88 46 12
    9533     jmp near 06692h                           ; e9 92 00
    9534     jmp near 066a0h                           ; e9 9d 00
    9535     jmp short 06656h                          ; eb 51
    9536     jmp near 066b1h                           ; e9 a9 00
     9528    jmp near 066d8h                           ; e9 92 00
     9529    jmp near 066e6h                           ; e9 9d 00
     9530    jmp short 0669ch                          ; eb 51
     9531    jmp near 066f7h                           ; e9 a9 00
    95379532    mov dx, strict word 0006ch                ; ba 6c 00
    95389533    mov ax, strict word 00040h                ; b8 40 00
    9539     call 0166eh                               ; e8 5d b0
     9534    call 0166eh                               ; e8 17 b0
    95409535    mov si, ax                                ; 89 c6
    95419536    lea dx, [bx+005h]                         ; 8d 57 05
     
    95459540    and ax, strict word 00060h                ; 25 60 00
    95469541    cmp ax, strict word 00060h                ; 3d 60 00
    9547     je short 06638h                           ; 74 17
     9542    je short 0667eh                           ; 74 17
    95489543    test cl, cl                               ; 84 c9
    9549     je short 06638h                           ; 74 13
     9544    je short 0667eh                           ; 74 13
    95509545    mov dx, strict word 0006ch                ; ba 6c 00
    95519546    mov ax, strict word 00040h                ; b8 40 00
    9552     call 0166eh                               ; e8 40 b0
     9547    call 0166eh                               ; e8 fa af
    95539548    cmp ax, si                                ; 39 f0
    9554     je short 06613h                           ; 74 e1
     9549    je short 06659h                           ; 74 e1
    95559550    mov si, ax                                ; 89 c6
    95569551    db  0feh, 0c9h
    95579552    ; dec cl                                    ; fe c9
    9558     jmp short 06613h                          ; eb db
     9553    jmp short 06659h                          ; eb db
    95599554    test cl, cl                               ; 84 c9
    9560     je short 06642h                           ; 74 06
     9555    je short 06688h                           ; 74 06
    95619556    mov al, byte [bp+012h]                    ; 8a 46 12
    95629557    mov dx, bx                                ; 89 da
     
    95689563    mov byte [bp+013h], al                    ; 88 46 13
    95699564    test cl, cl                               ; 84 c9
    9570     jne short 06692h                          ; 75 43
     9565    jne short 066d8h                          ; 75 43
    95719566    or AL, strict byte 080h                   ; 0c 80
    95729567    mov byte [bp+013h], al                    ; 88 46 13
    9573     jmp short 06692h                          ; eb 3c
     9568    jmp short 066d8h                          ; eb 3c
    95749569    mov dx, strict word 0006ch                ; ba 6c 00
    95759570    mov ax, strict word 00040h                ; b8 40 00
    9576     call 0166eh                               ; e8 0f b0
     9571    call 0166eh                               ; e8 c9 af
    95779572    mov si, ax                                ; 89 c6
    95789573    lea dx, [bx+005h]                         ; 8d 57 05
     
    95819576    ; sub ah, ah                                ; 2a e4
    95829577    test AL, strict byte 001h                 ; a8 01
    9583     jne short 06682h                          ; 75 17
     9578    jne short 066c8h                          ; 75 17
    95849579    test cl, cl                               ; 84 c9
    9585     je short 06682h                           ; 74 13
     9580    je short 066c8h                           ; 74 13
    95869581    mov dx, strict word 0006ch                ; ba 6c 00
    95879582    mov ax, strict word 00040h                ; b8 40 00
    9588     call 0166eh                               ; e8 f6 af
     9583    call 0166eh                               ; e8 b0 af
    95899584    cmp ax, si                                ; 39 f0
    9590     je short 06661h                           ; 74 e5
     9585    je short 066a7h                           ; 74 e5
    95919586    mov si, ax                                ; 89 c6
    95929587    db  0feh, 0c9h
    95939588    ; dec cl                                    ; fe c9
    9594     jmp short 06661h                          ; eb df
     9589    jmp short 066a7h                          ; eb df
    95959590    test cl, cl                               ; 84 c9
    9596     je short 06698h                           ; 74 12
     9591    je short 066deh                           ; 74 12
    95979592    mov byte [bp+013h], 000h                  ; c6 46 13 00
    95989593    mov dx, bx                                ; 89 da
     
    96029597    mov byte [bp+012h], al                    ; 88 46 12
    96039598    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9604     jmp short 066bbh                          ; eb 23
     9599    jmp short 06701h                          ; eb 23
    96059600    lea dx, [bx+005h]                         ; 8d 57 05
    96069601    in AL, DX                                 ; ec
    96079602    db  02ah, 0e4h
    96089603    ; sub ah, ah                                ; 2a e4
    9609     jmp short 06651h                          ; eb b1
     9604    jmp short 06697h                          ; eb b1
    96109605    lea dx, [si+005h]                         ; 8d 54 05
    96119606    in AL, DX                                 ; ec
     
    96179612    db  02ah, 0e4h
    96189613    ; sub ah, ah                                ; 2a e4
    9619     jmp short 0668fh                          ; eb de
     9614    jmp short 066d5h                          ; eb de
    96209615    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9621     jmp short 066bbh                          ; eb 04
     9616    jmp short 06701h                          ; eb 04
    96229617    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    96239618    lea sp, [bp-002h]                         ; 8d 66 fe
     
    96259620    pop bp                                    ; 5d
    96269621    retn                                      ; c3
    9627 timer_wait_:                                 ; 0xf66c1 LB 0x43
     9622timer_wait_:                                 ; 0xf6707 LB 0x43
    96289623    push bp                                   ; 55
    96299624    mov bp, sp                                ; 89 e5
     
    96339628    mov bx, strict word 0000fh                ; bb 0f 00
    96349629    xor cx, cx                                ; 31 c9
    9635     call 0a030h                               ; e8 61 39
     9630    call 0a070h                               ; e8 5b 39
    96369631    mov cx, ax                                ; 89 c1
    96379632    mov bx, dx                                ; 89 d3
     
    96459640    adc bx, strict byte 0ffffh                ; 83 d3 ff
    96469641    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9647     jne short 066eeh                          ; 75 05
     9642    jne short 06734h                          ; 75 05
    96489643    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9649     je short 066fdh                           ; 74 0f
     9644    je short 06743h                           ; 74 0f
    96509645    mov dx, strict word 00061h                ; ba 61 00
    96519646    in AL, DX                                 ; ec
     
    96549649    and AL, strict byte 010h                  ; 24 10
    96559650    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9656     jne short 066eeh                          ; 75 f3
    9657     jmp short 066deh                          ; eb e1
     9651    jne short 06734h                          ; 75 f3
     9652    jmp short 06724h                          ; eb e1
    96589653    lea sp, [bp-004h]                         ; 8d 66 fc
    96599654    pop cx                                    ; 59
     
    96619656    pop bp                                    ; 5d
    96629657    retn                                      ; c3
    9663 set_enable_a20_:                             ; 0xf6704 LB 0x30
     9658set_enable_a20_:                             ; 0xf674a LB 0x30
    96649659    push bp                                   ; 55
    96659660    mov bp, sp                                ; 89 e5
     
    96749669    mov cl, al                                ; 88 c1
    96759670    test bx, bx                               ; 85 db
    9676     je short 0671dh                           ; 74 05
     9671    je short 06763h                           ; 74 05
    96779672    or AL, strict byte 002h                   ; 0c 02
    96789673    out DX, AL                                ; ee
    9679     jmp short 06720h                          ; eb 03
     9674    jmp short 06766h                          ; eb 03
    96809675    and AL, strict byte 0fdh                  ; 24 fd
    96819676    out DX, AL                                ; ee
    96829677    test cl, 002h                             ; f6 c1 02
    9683     je short 0672ah                           ; 74 05
     9678    je short 06770h                           ; 74 05
    96849679    mov ax, strict word 00001h                ; b8 01 00
    9685     jmp short 0672ch                          ; eb 02
     9680    jmp short 06772h                          ; eb 02
    96869681    xor ax, ax                                ; 31 c0
    96879682    lea sp, [bp-006h]                         ; 8d 66 fa
     
    96919686    pop bp                                    ; 5d
    96929687    retn                                      ; c3
    9693 set_e820_range_:                             ; 0xf6734 LB 0x88
     9688set_e820_range_:                             ; 0xf677a LB 0x88
    96949689    push si                                   ; 56
    96959690    push bp                                   ; 55
     
    97219716    retn 0000ah                               ; c2 0a 00
    97229717    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9723     db  0c9h, 06ah, 0f8h, 067h, 00ch, 068h, 0a8h, 068h, 0aeh, 068h, 0b3h, 068h, 0b8h, 068h, 060h, 069h
    9724     db  084h, 069h, 0a1h, 068h, 0a1h, 068h, 04eh, 06ah, 079h, 06ah, 08ch, 06ah, 09bh, 06ah, 0a8h, 068h
    9725     db  0a4h, 06ah
    9726 _int15_function:                             ; 0xf67bc LB 0x343
     9718    db  00fh, 06bh, 03eh, 068h, 052h, 068h, 0eeh, 068h, 0f4h, 068h, 0f9h, 068h, 0feh, 068h, 0a6h, 069h
     9719    db  0cah, 069h, 0e7h, 068h, 0e7h, 068h, 094h, 06ah, 0bfh, 06ah, 0d2h, 06ah, 0e1h, 06ah, 0eeh, 068h
     9720    db  0eah, 06ah
     9721_int15_function:                             ; 0xf6802 LB 0x343
    97279722    push bp                                   ; 55
    97289723    mov bp, sp                                ; 89 e5
     
    97339728    mov dx, ax                                ; 89 c2
    97349729    cmp ax, 000ech                            ; 3d ec 00
    9735     jnbe short 06802h                         ; 77 35
     9730    jnbe short 06848h                         ; 77 35
    97369731    push CS                                   ; 0e
    97379732    pop ES                                    ; 07
    97389733    mov cx, strict word 00011h                ; b9 11 00
    9739     mov di, 0678ah                            ; bf 8a 67
     9734    mov di, 067d0h                            ; bf d0 67
    97409735    repne scasb                               ; f2 ae
    97419736    sal cx, 1                                 ; d1 e1
    97429737    mov di, cx                                ; 89 cf
    9743     mov si, word [cs:di+0679ah]               ; 2e 8b b5 9a 67
     9738    mov si, word [cs:di+067e0h]               ; 2e 8b b5 e0 67
    97449739    mov ax, word [bp+012h]                    ; 8b 46 12
    97459740    xor ah, ah                                ; 30 e4
     
    97549749    xor ah, ah                                ; 30 e4
    97559750    cmp ax, 000c0h                            ; 3d c0 00
    9756     je short 06805h                           ; 74 03
    9757     jmp near 06ac9h                           ; e9 c4 02
     9751    je short 0684bh                           ; 74 03
     9752    jmp near 06b0fh                           ; e9 c4 02
    97589753    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9759     jmp near 06a70h                           ; e9 64 02
     9754    jmp near 06ab6h                           ; e9 64 02
    97609755    mov dx, ax                                ; 89 c2
    97619756    cmp ax, strict word 00001h                ; 3d 01 00
    9762     jc short 06821h                           ; 72 0e
    9763     jbe short 06835h                          ; 76 20
     9757    jc short 06867h                           ; 72 0e
     9758    jbe short 0687bh                          ; 76 20
    97649759    cmp ax, strict word 00003h                ; 3d 03 00
    9765     je short 06866h                           ; 74 4c
     9760    je short 068ach                           ; 74 4c
    97669761    cmp ax, strict word 00002h                ; 3d 02 00
    9767     je short 06845h                           ; 74 26
    9768     jmp short 06873h                          ; eb 52
     9762    je short 0688bh                           ; 74 26
     9763    jmp short 068b9h                          ; eb 52
    97699764    test ax, ax                               ; 85 c0
    9770     jne short 06873h                          ; 75 4e
     9765    jne short 068b9h                          ; 75 4e
    97719766    xor ax, ax                                ; 31 c0
    9772     call 06704h                               ; e8 da fe
     9767    call 0674ah                               ; e8 da fe
    97739768    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97749769    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9775     jmp near 068a1h                           ; e9 6c 00
     9770    jmp near 068e7h                           ; e9 6c 00
    97769771    mov ax, strict word 00001h                ; b8 01 00
    9777     call 06704h                               ; e8 c9 fe
     9772    call 0674ah                               ; e8 c9 fe
    97789773    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97799774    mov byte [bp+013h], dh                    ; 88 76 13
    9780     jmp near 068a1h                           ; e9 5c 00
     9775    jmp near 068e7h                           ; e9 5c 00
    97819776    mov dx, 00092h                            ; ba 92 00
    97829777    in AL, DX                                 ; ec
     
    97929787    xor al, dl                                ; 30 d0
    97939788    mov byte [bp+013h], al                    ; 88 46 13
    9794     jmp near 068a1h                           ; e9 3b 00
     9789    jmp near 068e7h                           ; e9 3b 00
    97959790    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97969791    mov byte [bp+013h], ah                    ; 88 66 13
    97979792    mov word [bp+00ch], ax                    ; 89 46 0c
    9798     jmp near 068a1h                           ; e9 2e 00
     9793    jmp near 068e7h                           ; e9 2e 00
    97999794    mov bx, 00da0h                            ; bb a0 0d
    98009795    mov cx, ds                                ; 8c d9
    98019796    mov ax, strict word 00004h                ; b8 04 00
    9802     call 01933h                               ; e8 b5 b0
     9797    call 01933h                               ; e8 6f b0
    98039798    mov ax, word [bp+012h]                    ; 8b 46 12
    98049799    xor ah, ah                                ; 30 e4
     
    98089803    mov ax, strict word 00004h                ; b8 04 00
    98099804    push ax                                   ; 50
    9810     call 01976h                               ; e8 e7 b0
     9805    call 01976h                               ; e8 a1 b0
    98119806    add sp, strict byte 00006h                ; 83 c4 06
    98129807    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    98219816    retn                                      ; c3
    98229817    mov word [bp+018h], dx                    ; 89 56 18
    9823     jmp near 0695ah                           ; e9 ac 00
     9818    jmp near 069a0h                           ; e9 ac 00
    98249819    mov word [bp+018h], dx                    ; 89 56 18
    9825     jmp short 068a1h                          ; eb ee
     9820    jmp short 068e7h                          ; eb ee
    98269821    mov word [bp+018h], cx                    ; 89 4e 18
    9827     jmp short 0689eh                          ; eb e6
     9822    jmp short 068e4h                          ; eb e6
    98289823    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9829     jne short 0692dh                          ; 75 6f
     9824    jne short 06973h                          ; 75 6f
    98309825    mov dx, 000a0h                            ; ba a0 00
    98319826    mov ax, strict word 00040h                ; b8 40 00
    9832     call 01652h                               ; e8 8b ad
     9827    call 01652h                               ; e8 45 ad
    98339828    test AL, strict byte 001h                 ; a8 01
    9834     jne short 0692ah                          ; 75 5f
     9829    jne short 06970h                          ; 75 5f
    98359830    mov bx, strict word 00001h                ; bb 01 00
    98369831    mov dx, 000a0h                            ; ba a0 00
    98379832    mov ax, strict word 00040h                ; b8 40 00
    9838     call 01660h                               ; e8 89 ad
     9833    call 01660h                               ; e8 43 ad
    98399834    mov bx, word [bp+014h]                    ; 8b 5e 14
    98409835    mov dx, 00098h                            ; ba 98 00
    98419836    mov ax, strict word 00040h                ; b8 40 00
    9842     call 0167ch                               ; e8 99 ad
     9837    call 0167ch                               ; e8 53 ad
    98439838    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    98449839    mov dx, 0009ah                            ; ba 9a 00
    98459840    mov ax, strict word 00040h                ; b8 40 00
    9846     call 0167ch                               ; e8 8d ad
     9841    call 0167ch                               ; e8 47 ad
    98479842    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    98489843    mov dx, 0009ch                            ; ba 9c 00
    98499844    mov ax, strict word 00040h                ; b8 40 00
    9850     call 0167ch                               ; e8 81 ad
     9845    call 0167ch                               ; e8 3b ad
    98519846    mov bx, word [bp+010h]                    ; 8b 5e 10
    98529847    mov dx, 0009eh                            ; ba 9e 00
    98539848    mov ax, strict word 00040h                ; b8 40 00
    9854     call 0167ch                               ; e8 75 ad
     9849    call 0167ch                               ; e8 2f ad
    98559850    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98569851    mov dx, 000a1h                            ; ba a1 00
     
    98619856    out DX, AL                                ; ee
    98629857    mov ax, strict word 0000bh                ; b8 0b 00
    9863     call 016aeh                               ; e8 94 ad
     9858    call 016aeh                               ; e8 4e ad
    98649859    mov dl, al                                ; 88 c2
    98659860    or dl, 040h                               ; 80 ca 40
    98669861    xor dh, dh                                ; 30 f6
    98679862    mov ax, strict word 0000bh                ; b8 0b 00
    9868     call 016c9h                               ; e8 a2 ad
    9869     jmp near 068a1h                           ; e9 77 ff
    9870     jmp near 06a67h                           ; e9 3a 01
     9863    call 016c9h                               ; e8 5c ad
     9864    jmp near 068e7h                           ; e9 77 ff
     9865    jmp near 06aadh                           ; e9 3a 01
    98719866    cmp ax, strict word 00001h                ; 3d 01 00
    9872     jne short 0694eh                          ; 75 1c
     9867    jne short 06994h                          ; 75 1c
    98739868    xor bx, bx                                ; 31 db
    98749869    mov dx, 000a0h                            ; ba a0 00
    98759870    mov ax, strict word 00040h                ; b8 40 00
    9876     call 01660h                               ; e8 23 ad
     9871    call 01660h                               ; e8 dd ac
    98779872    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98789873    mov ax, strict word 0000bh                ; b8 0b 00
    9879     call 016aeh                               ; e8 67 ad
     9874    call 016aeh                               ; e8 21 ad
    98809875    mov dl, al                                ; 88 c2
    98819876    and dl, 0bfh                              ; 80 e2 bf
    9882     jmp short 0691fh                          ; eb d1
     9877    jmp short 06965h                          ; eb d1
    98839878    mov word [bp+018h], dx                    ; 89 56 18
    98849879    mov ax, bx                                ; 89 d8
     
    98889883    or bx, ax                                 ; 09 c3
    98899884    mov word [bp+012h], bx                    ; 89 5e 12
    9890     jmp near 068a1h                           ; e9 41 ff
     9885    jmp near 068e7h                           ; e9 41 ff
    98919886    mov ax, strict word 00031h                ; b8 31 00
    9892     call 016aeh                               ; e8 48 ad
     9887    call 016aeh                               ; e8 02 ad
    98939888    mov dh, al                                ; 88 c6
    98949889    mov ax, strict word 00030h                ; b8 30 00
    9895     call 016aeh                               ; e8 40 ad
     9890    call 016aeh                               ; e8 fa ac
    98969891    mov dl, al                                ; 88 c2
    98979892    mov word [bp+012h], dx                    ; 89 56 12
    98989893    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9899     jbe short 0697dh                          ; 76 05
     9894    jbe short 069c3h                          ; 76 05
    99009895    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    99019896    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9902     jmp near 068a1h                           ; e9 1d ff
     9897    jmp near 068e7h                           ; e9 1d ff
    99039898    cli                                       ; fa
    99049899    mov ax, strict word 00001h                ; b8 01 00
    9905     call 06704h                               ; e8 79 fd
     9900    call 0674ah                               ; e8 79 fd
    99069901    mov dx, word [bp+006h]                    ; 8b 56 06
    99079902    add dx, strict byte 00038h                ; 83 c2 38
    99089903    mov ax, word [bp+014h]                    ; 8b 46 14
    99099904    mov bx, strict word 0ffffh                ; bb ff ff
    9910     call 0167ch                               ; e8 e2 ac
     9905    call 0167ch                               ; e8 9c ac
    99119906    mov dx, word [bp+006h]                    ; 8b 56 06
    99129907    add dx, strict byte 0003ah                ; 83 c2 3a
    99139908    mov ax, word [bp+014h]                    ; 8b 46 14
    99149909    xor bx, bx                                ; 31 db
    9915     call 0167ch                               ; e8 d4 ac
     9910    call 0167ch                               ; e8 8e ac
    99169911    mov dx, word [bp+006h]                    ; 8b 56 06
    99179912    add dx, strict byte 0003ch                ; 83 c2 3c
    99189913    mov ax, word [bp+014h]                    ; 8b 46 14
    99199914    mov bx, strict word 0000fh                ; bb 0f 00
    9920     call 01660h                               ; e8 a9 ac
     9915    call 01660h                               ; e8 63 ac
    99219916    mov dx, word [bp+006h]                    ; 8b 56 06
    99229917    add dx, strict byte 0003dh                ; 83 c2 3d
    99239918    mov ax, word [bp+014h]                    ; 8b 46 14
    99249919    mov bx, 0009bh                            ; bb 9b 00
    9925     call 01660h                               ; e8 9a ac
     9920    call 01660h                               ; e8 54 ac
    99269921    mov dx, word [bp+006h]                    ; 8b 56 06
    99279922    add dx, strict byte 0003eh                ; 83 c2 3e
    99289923    mov ax, word [bp+014h]                    ; 8b 46 14
    99299924    xor bx, bx                                ; 31 db
    9930     call 0167ch                               ; e8 a8 ac
     9925    call 0167ch                               ; e8 62 ac
    99319926    mov AL, strict byte 011h                  ; b0 11
    99329927    mov dx, strict word 00020h                ; ba 20 00
     
    99579952    out DX, AL                                ; ee
    99589953    mov si, word [bp+006h]                    ; 8b 76 06
    9959     call 06a12h                               ; e8 00 00
     9954    call 06a58h                               ; e8 00 00
    99609955    pop di                                    ; 5f
    99619956    add di, strict byte 00018h                ; 83 c7 18
     
    99859980    push cx                                   ; 51
    99869981    retf                                      ; cb
    9987     jmp near 068a1h                           ; e9 53 fe
     9982    jmp near 068e7h                           ; e9 53 fe
    99889983    mov bx, 00da0h                            ; bb a0 0d
    99899984    mov cx, ds                                ; 8c d9
    99909985    mov ax, strict word 00004h                ; b8 04 00
    9991     call 01933h                               ; e8 da ae
     9986    call 01933h                               ; e8 94 ae
    99929987    mov ax, 0086eh                            ; b8 6e 08
    99939988    push ax                                   ; 50
    99949989    mov ax, strict word 00004h                ; b8 04 00
    99959990    push ax                                   ; 50
    9996     call 01976h                               ; e8 12 af
     9991    call 01976h                               ; e8 cc ae
    99979992    add sp, strict byte 00004h                ; 83 c4 04
    99989993    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    100019996    or ah, 086h                               ; 80 cc 86
    100029997    mov word [bp+012h], ax                    ; 89 46 12
    10003     jmp near 068a1h                           ; e9 28 fe
     9998    jmp near 068e7h                           ; e9 28 fe
    100049999    mov word [bp+018h], cx                    ; 89 4e 18
    1000510000    mov word [bp+012h], ax                    ; 89 46 12
    1000610001    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    1000710002    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    10008     jmp near 068a1h                           ; e9 15 fe
     10003    jmp near 068e7h                           ; e9 15 fe
    1000910004    mov dx, strict word 0000eh                ; ba 0e 00
    1001010005    mov ax, strict word 00040h                ; b8 40 00
    10011     call 0166eh                               ; e8 d9 ab
     10006    call 0166eh                               ; e8 93 ab
    1001210007    mov word [bp+014h], ax                    ; 89 46 14
    10013     jmp near 0697dh                           ; e9 e2 fe
     10008    jmp near 069c3h                           ; e9 e2 fe
    1001410009    mov ax, 0089dh                            ; b8 9d 08
    1001510010    push ax                                   ; 50
    1001610011    mov ax, strict word 00008h                ; b8 08 00
    10017     jmp short 06a60h                          ; eb bc
     10012    jmp short 06aa6h                          ; eb bc
    1001810013    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    10019     jne short 06ac9h                          ; 75 1f
     10014    jne short 06b0fh                          ; 75 1f
    1002010015    mov word [bp+012h], ax                    ; 89 46 12
    1002110016    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1002210017    xor ah, ah                                ; 30 e4
    1002310018    cmp ax, strict word 00001h                ; 3d 01 00
    10024     jc short 06ac2h                           ; 72 0b
     10019    jc short 06b08h                           ; 72 0b
    1002510020    cmp ax, strict word 00003h                ; 3d 03 00
    10026     jnbe short 06ac2h                         ; 77 06
     10021    jnbe short 06b08h                         ; 77 06
    1002710022    mov word [bp+018h], cx                    ; 89 4e 18
    10028     jmp near 068a1h                           ; e9 df fd
     10023    jmp near 068e7h                           ; e9 df fd
    1002910024    or byte [bp+018h], 001h                   ; 80 4e 18 01
    10030     jmp near 068a1h                           ; e9 d8 fd
     10025    jmp near 068e7h                           ; e9 d8 fd
    1003110026    mov bx, 00da0h                            ; bb a0 0d
    1003210027    mov cx, ds                                ; 8c d9
    1003310028    mov ax, strict word 00004h                ; b8 04 00
    10034     call 01933h                               ; e8 5f ae
     10029    call 01933h                               ; e8 19 ae
    1003510030    push word [bp+00ch]                       ; ff 76 0c
    1003610031    push word [bp+012h]                       ; ff 76 12
     
    1003910034    mov ax, strict word 00004h                ; b8 04 00
    1004010035    push ax                                   ; 50
    10041     call 01976h                               ; e8 91 ae
     10036    call 01976h                               ; e8 4b ae
    1004210037    add sp, strict byte 00008h                ; 83 c4 08
    10043     jmp near 06a67h                           ; e9 7c ff
    10044     push 0926ch                               ; 68 6c 92
     10038    jmp near 06aadh                           ; e9 7c ff
     10039    scasb                                     ; ae
    1004510040    insb                                      ; 6c
    10046     jmp far 02f6dh:00f6ch                     ; ea 6c 0f 6d 2f
     10041    fsubr dword [si+030h]                     ; d8 6c 30
    1004710042    insw                                      ; 6d
    10048     dec si                                    ; 4e
     10043    push bp                                   ; 55
    1004910044    insw                                      ; 6d
    10050     je short 06b66h                           ; 74 6d
    10051     call far 00b6dh:0d76dh                    ; 9a 6d d7 6d 0b
     10045    jne short 06ba8h                          ; 75 6d
     10046    xchg sp, ax                               ; 94
     10047    insw                                      ; 6d
     10048    mov dx, 0e06dh                            ; ba 6d e0
     10049    insw                                      ; 6d
     10050    sbb ax, 0516eh                            ; 1d 6e 51
    1005210051    outsb                                     ; 6e
    10053 _int15_function32:                           ; 0xf6aff LB 0x39e
     10052_int15_function32:                           ; 0xf6b45 LB 0x39e
    1005410053    push bp                                   ; 55
    1005510054    mov bp, sp                                ; 89 e5
     
    1006310062    xor dh, dh                                ; 30 f6
    1006410063    cmp ax, 000e8h                            ; 3d e8 00
    10065     je short 06b65h                           ; 74 4a
     10064    je short 06babh                           ; 74 4a
    1006610065    cmp ax, 000d0h                            ; 3d d0 00
    10067     je short 06b32h                           ; 74 12
     10066    je short 06b78h                           ; 74 12
    1006810067    cmp ax, 00086h                            ; 3d 86 00
    10069     jne short 06b63h                          ; 75 3e
     10068    jne short 06ba9h                          ; 75 3e
    1007010069    sti                                       ; fb
    1007110070    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1007210071    mov ax, word [bp+018h]                    ; 8b 46 18
    10073     call 066c1h                               ; e8 92 fb
    10074     jmp near 06ce4h                           ; e9 b2 01
     10072    call 06707h                               ; e8 92 fb
     10073    jmp near 06d2ah                           ; e9 b2 01
    1007510074    cmp dx, strict byte 0004fh                ; 83 fa 4f
    10076     jne short 06b63h                          ; 75 2c
     10075    jne short 06ba9h                          ; 75 2c
    1007710076    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    10078     jne short 06b99h                          ; 75 5b
     10077    jne short 06bdfh                          ; 75 5b
    1007910078    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    10080     jne short 06b99h                          ; 75 54
     10079    jne short 06bdfh                          ; 75 54
    1008110080    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    10082     jne short 06b99h                          ; 75 4d
     10081    jne short 06bdfh                          ; 75 4d
    1008310082    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    10084     jne short 06b99h                          ; 75 46
     10083    jne short 06bdfh                          ; 75 46
    1008510084    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1008610085    or ax, word [bp+008h]                     ; 0b 46 08
    10087     jne short 06b99h                          ; 75 3e
     10086    jne short 06bdfh                          ; 75 3e
    1008810087    mov ax, word [bp+006h]                    ; 8b 46 06
    1008910088    or ax, word [bp+004h]                     ; 0b 46 04
    10090     je short 06b67h                           ; 74 04
    10091     jmp short 06b99h                          ; eb 34
    10092     jmp short 06b8fh                          ; eb 28
     10089    je short 06badh                           ; 74 04
     10090    jmp short 06bdfh                          ; eb 34
     10091    jmp short 06bd5h                          ; eb 28
    1009310092    mov word [bp+028h], bx                    ; 89 5e 28
    1009410093    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1010210101    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    1010310102    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    10104     jmp near 06ce4h                           ; e9 55 01
     10103    jmp near 06d2ah                           ; e9 55 01
    1010510104    cmp dx, strict byte 00020h                ; 83 fa 20
    10106     je short 06b9fh                           ; 74 0b
     10105    je short 06be5h                           ; 74 0b
    1010710106    cmp dx, strict byte 00001h                ; 83 fa 01
    10108     je short 06b9ch                           ; 74 03
    10109     jmp near 06cb7h                           ; e9 1b 01
    10110     jmp near 06e5dh                           ; e9 be 02
     10107    je short 06be2h                           ; 74 03
     10108    jmp near 06cfdh                           ; e9 1b 01
     10109    jmp near 06ea3h                           ; e9 be 02
    1011110110    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    10112     jne short 06b99h                          ; 75 f3
     10111    jne short 06bdfh                          ; 75 f3
    1011310112    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    10114     jne short 06b99h                          ; 75 ec
     10113    jne short 06bdfh                          ; 75 ec
    1011510114    mov ax, strict word 00035h                ; b8 35 00
    10116     call 016aeh                               ; e8 fb aa
     10115    call 016aeh                               ; e8 b5 aa
    1011710116    mov bl, al                                ; 88 c3
    1011810117    xor bh, bh                                ; 30 ff
     
    1012110120    sal bx, 1                                 ; d1 e3
    1012210121    rcl dx, 1                                 ; d1 d2
    10123     loop 06bbch                               ; e2 fa
     10122    loop 06c02h                               ; e2 fa
    1012410123    mov ax, strict word 00034h                ; b8 34 00
    10125     call 016aeh                               ; e8 e6 aa
     10124    call 016aeh                               ; e8 a0 aa
    1012610125    xor ah, ah                                ; 30 e4
    1012710126    mov dx, bx                                ; 89 da
     
    1013110130    adc dx, 00100h                            ; 81 d2 00 01
    1013210131    cmp dx, 00100h                            ; 81 fa 00 01
    10133     jc short 06be2h                           ; 72 06
    10134     jne short 06c10h                          ; 75 32
     10132    jc short 06c28h                           ; 72 06
     10133    jne short 06c56h                          ; 75 32
    1013510134    test bx, bx                               ; 85 db
    10136     jnbe short 06c10h                         ; 77 2e
     10135    jnbe short 06c56h                         ; 77 2e
    1013710136    mov ax, strict word 00031h                ; b8 31 00
    10138     call 016aeh                               ; e8 c6 aa
     10137    call 016aeh                               ; e8 80 aa
    1013910138    mov bl, al                                ; 88 c3
    1014010139    xor bh, bh                                ; 30 ff
     
    1014310142    sal bx, 1                                 ; d1 e3
    1014410143    rcl dx, 1                                 ; d1 d2
    10145     loop 06bf1h                               ; e2 fa
     10144    loop 06c37h                               ; e2 fa
    1014610145    mov ax, strict word 00030h                ; b8 30 00
    10147     call 016aeh                               ; e8 b1 aa
     10146    call 016aeh                               ; e8 6b aa
    1014810147    xor ah, ah                                ; 30 e4
    1014910148    or bx, ax                                 ; 09 c3
     
    1015110150    sal bx, 1                                 ; d1 e3
    1015210151    rcl dx, 1                                 ; d1 d2
    10153     loop 06c04h                               ; e2 fa
     10152    loop 06c4ah                               ; e2 fa
    1015410153    add bx, strict byte 00000h                ; 83 c3 00
    1015510154    adc dx, strict byte 00010h                ; 83 d2 10
    1015610155    mov ax, strict word 00062h                ; b8 62 00
    10157     call 016aeh                               ; e8 98 aa
     10156    call 016aeh                               ; e8 52 aa
    1015810157    xor ah, ah                                ; 30 e4
    1015910158    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1016310162    sal word [bp-00ah], 1                     ; d1 66 f6
    1016410163    rcl word [bp-008h], 1                     ; d1 56 f8
    10165     loop 06c23h                               ; e2 f8
     10164    loop 06c69h                               ; e2 f8
    1016610165    mov ax, strict word 00061h                ; b8 61 00
    10167     call 016aeh                               ; e8 7d aa
     10166    call 016aeh                               ; e8 37 aa
    1016810167    xor ah, ah                                ; 30 e4
    1016910168    or word [bp-00ah], ax                     ; 09 46 f6
     
    1017210171    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    1017310172    mov ax, strict word 00063h                ; b8 63 00
    10174     call 016aeh                               ; e8 67 aa
     10173    call 016aeh                               ; e8 21 aa
    1017510174    mov byte [bp-004h], al                    ; 88 46 fc
    1017610175    mov byte [bp-006h], al                    ; 88 46 fa
    1017710176    mov ax, word [bp+014h]                    ; 8b 46 14
    1017810177    cmp ax, strict word 00009h                ; 3d 09 00
    10179     jnbe short 06cb7h                         ; 77 62
     10178    jnbe short 06cfdh                         ; 77 62
    1018010179    mov si, ax                                ; 89 c6
    1018110180    sal si, 1                                 ; d1 e6
     
    1018410183    mov cx, dx                                ; 89 d1
    1018510184    adc cx, strict byte 0ffffh                ; 83 d1 ff
    10186     jmp word [cs:si+06aebh]                   ; 2e ff a4 eb 6a
     10185    jmp word [cs:si+06b31h]                   ; 2e ff a4 31 6b
    1018710186    mov ax, strict word 00001h                ; b8 01 00
    1018810187    push ax                                   ; 50
     
    1019810197    xor bx, bx                                ; 31 db
    1019910198    xor cx, cx                                ; 31 c9
    10200     call 06734h                               ; e8 af fa
     10199    call 0677ah                               ; e8 af fa
    1020110200    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    1020210201    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    10203     jmp near 06e42h                           ; e9 b0 01
     10202    jmp near 06e88h                           ; e9 b0 01
    1020410203    mov ax, strict word 00002h                ; b8 02 00
    1020510204    push ax                                   ; 50
     
    1021510214    mov bx, 0fc00h                            ; bb 00 fc
    1021610215    mov cx, strict word 00009h                ; b9 09 00
    10217     call 06734h                               ; e8 84 fa
     10216    call 0677ah                               ; e8 84 fa
    1021810217    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    10219     jmp short 06c8ah                          ; eb d3
     10218    jmp short 06cd0h                          ; eb d3
    1022010219    mov bx, 00da0h                            ; bb a0 0d
    1022110220    mov cx, ds                                ; 8c d9
    1022210221    mov ax, strict word 00004h                ; b8 04 00
    10223     call 01933h                               ; e8 71 ac
     10222    call 01933h                               ; e8 2b ac
    1022410223    push word [bp+014h]                       ; ff 76 14
    1022510224    push word [bp+020h]                       ; ff 76 20
     
    1022810227    mov ax, strict word 00004h                ; b8 04 00
    1022910228    push ax                                   ; 50
    10230     call 01976h                               ; e8 a3 ac
     10229    call 01976h                               ; e8 5d ac
    1023110230    add sp, strict byte 00008h                ; 83 c4 08
    1023210231    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    1025210251    xor bx, bx                                ; 31 db
    1025310252    mov cx, strict word 0000fh                ; b9 0f 00
    10254     call 06734h                               ; e8 2d fa
     10253    call 0677ah                               ; e8 2d fa
    1025510254    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    10256     jmp near 06c8ah                           ; e9 7b ff
     10255    jmp near 06cd0h                           ; e9 7b ff
    1025710256    mov dx, strict word 00001h                ; ba 01 00
    1025810257    push dx                                   ; 52
     
    1026610265    xor bx, bx                                ; 31 db
    1026710266    mov cx, strict word 00010h                ; b9 10 00
    10268     call 06734h                               ; e8 0d fa
     10267    call 0677ah                               ; e8 0d fa
    1026910268    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    10270     jmp near 06c8ah                           ; e9 5b ff
     10269    jmp near 06cd0h                           ; e9 5b ff
    1027110270    mov si, strict word 00003h                ; be 03 00
    1027210271    push si                                   ; 56
     
    1028010279    mov bx, ax                                ; 89 c3
    1028110280    mov ax, si                                ; 89 f0
    10282     call 06734h                               ; e8 ee f9
     10281    call 0677ah                               ; e8 ee f9
    1028310282    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    10284     jmp near 06c8ah                           ; e9 3c ff
     10283    jmp near 06cd0h                           ; e9 3c ff
    1028510284    mov ax, strict word 00002h                ; b8 02 00
    1028610285    push ax                                   ; 50
     
    1029610295    xor bx, bx                                ; 31 db
    1029710296    mov cx, 0fec0h                            ; b9 c0 fe
    10298     call 06734h                               ; e8 c8 f9
     10297    call 0677ah                               ; e8 c8 f9
    1029910298    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10300     jmp near 06c8ah                           ; e9 16 ff
     10299    jmp near 06cd0h                           ; e9 16 ff
    1030110300    mov ax, strict word 00002h                ; b8 02 00
    1030210301    push ax                                   ; 50
     
    1031210311    xor bx, bx                                ; 31 db
    1031310312    mov cx, 0fee0h                            ; b9 e0 fe
    10314     call 06734h                               ; e8 a2 f9
     10313    call 0677ah                               ; e8 a2 f9
    1031510314    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10316     jmp near 06c8ah                           ; e9 f0 fe
     10315    jmp near 06cd0h                           ; e9 f0 fe
    1031710316    mov ax, strict word 00002h                ; b8 02 00
    1031810317    push ax                                   ; 50
     
    1032610325    xor bx, bx                                ; 31 db
    1032710326    mov cx, strict word 0fffch                ; b9 fc ff
    10328     call 06734h                               ; e8 82 f9
     10327    call 0677ah                               ; e8 82 f9
    1032910328    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10330     jne short 06dbfh                          ; 75 07
     10329    jne short 06e05h                          ; 75 07
    1033110330    mov ax, word [bp-008h]                    ; 8b 46 f8
    1033210331    test ax, ax                               ; 85 c0
    10333     je short 06dcfh                           ; 74 10
     10332    je short 06e15h                           ; 74 10
    1033410333    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10335     jmp near 06c8ah                           ; e9 c3 fe
     10334    jmp near 06cd0h                           ; e9 c3 fe
    1033610335    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10337     jmp near 06c8ah                           ; e9 bb fe
     10336    jmp near 06cd0h                           ; e9 bb fe
    1033810337    mov word [bp+014h], ax                    ; 89 46 14
    1033910338    mov word [bp+016h], ax                    ; 89 46 16
    10340     jmp short 06e42h                          ; eb 6b
     10339    jmp short 06e88h                          ; eb 6b
    1034110340    mov ax, strict word 00002h                ; b8 02 00
    1034210341    push ax                                   ; 50
     
    1035010349    xor bx, bx                                ; 31 db
    1035110350    xor cx, cx                                ; 31 c9
    10352     call 06734h                               ; e8 46 f9
     10351    call 0677ah                               ; e8 46 f9
    1035310352    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10354     jne short 06dfbh                          ; 75 07
     10353    jne short 06e41h                          ; 75 07
    1035510354    mov ax, word [bp-008h]                    ; 8b 46 f8
    1035610355    test ax, ax                               ; 85 c0
    10357     je short 06e03h                           ; 74 08
     10356    je short 06e49h                           ; 74 08
    1035810357    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10359     jmp near 06c8ah                           ; e9 87 fe
     10358    jmp near 06cd0h                           ; e9 87 fe
    1036010359    mov word [bp+014h], ax                    ; 89 46 14
    1036110360    mov word [bp+016h], ax                    ; 89 46 16
    10362     jmp short 06e42h                          ; eb 37
     10361    jmp short 06e88h                          ; eb 37
    1036310362    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10364     jne short 06e17h                          ; 75 06
     10363    jne short 06e5dh                          ; 75 06
    1036510364    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10366     je short 06e42h                           ; 74 2b
     10365    je short 06e88h                           ; 74 2b
    1036710366    mov ax, strict word 00001h                ; b8 01 00
    1036810367    push ax                                   ; 50
     
    1038010379    xor bx, bx                                ; 31 db
    1038110380    xor cx, cx                                ; 31 c9
    10382     call 06734h                               ; e8 fa f8
     10381    call 0677ah                               ; e8 fa f8
    1038310382    xor ax, ax                                ; 31 c0
    1038410383    mov word [bp+014h], ax                    ; 89 46 14
     
    1038910388    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1039010389    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10391     jmp near 06ce4h                           ; e9 87 fe
     10390    jmp near 06d2ah                           ; e9 87 fe
    1039210391    mov word [bp+028h], bx                    ; 89 5e 28
    1039310392    mov ax, strict word 00031h                ; b8 31 00
    10394     call 016aeh                               ; e8 48 a8
     10393    call 016aeh                               ; e8 02 a8
    1039510394    mov dh, al                                ; 88 c6
    1039610395    mov ax, strict word 00030h                ; b8 30 00
    10397     call 016aeh                               ; e8 40 a8
     10396    call 016aeh                               ; e8 fa a7
    1039810397    mov dl, al                                ; 88 c2
    1039910398    mov word [bp+01ch], dx                    ; 89 56 1c
    1040010399    cmp dx, 03c00h                            ; 81 fa 00 3c
    10401     jbe short 06e7eh                          ; 76 05
     10400    jbe short 06ec4h                          ; 76 05
    1040210401    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1040310402    mov ax, strict word 00035h                ; b8 35 00
    10404     call 016aeh                               ; e8 2a a8
     10403    call 016aeh                               ; e8 e4 a7
    1040510404    mov dh, al                                ; 88 c6
    1040610405    mov ax, strict word 00034h                ; b8 34 00
    10407     call 016aeh                               ; e8 22 a8
     10406    call 016aeh                               ; e8 dc a7
    1040810407    mov dl, al                                ; 88 c2
    1040910408    mov word [bp+018h], dx                    ; 89 56 18
     
    1041110410    mov word [bp+020h], ax                    ; 89 46 20
    1041210411    mov word [bp+014h], dx                    ; 89 56 14
    10413     jmp near 06ce4h                           ; e9 47 fe
    10414 _inv_op_handler:                             ; 0xf6e9d LB 0x18f
     10412    jmp near 06d2ah                           ; e9 47 fe
     10413_inv_op_handler:                             ; 0xf6ee3 LB 0x18f
    1041510414    push bp                                   ; 55
    1041610415    mov bp, sp                                ; 89 e5
     
    1042110420    les bx, [bp+018h]                         ; c4 5e 18
    1042210421    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10423     jne short 06eb3h                          ; 75 06
     10422    jne short 06ef9h                          ; 75 06
    1042410423    inc word [bp+018h]                        ; ff 46 18
    10425     jmp near 07025h                           ; e9 72 01
     10424    jmp near 0706bh                           ; e9 72 01
    1042610425    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10427     je short 06ebdh                           ; 74 03
    10428     jmp near 07021h                           ; e9 64 01
     10426    je short 06f03h                           ; 74 03
     10427    jmp near 07067h                           ; e9 64 01
    1042910428    mov si, 00800h                            ; be 00 08
    1043010429    xor ax, ax                                ; 31 c0
     
    1045510454    sal ax, 1                                 ; d1 e0
    1045610455    rcl dx, 1                                 ; d1 d2
    10457     loop 06f0eh                               ; e2 fa
     10456    loop 06f54h                               ; e2 fa
    1045810457    cmp bx, dx                                ; 39 d3
    10459     jne short 06f1ch                          ; 75 04
     10458    jne short 06f62h                          ; 75 04
    1046010459    cmp di, ax                                ; 39 c7
    10461     je short 06f21h                           ; 74 05
     10460    je short 06f67h                           ; 74 05
    1046210461    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    1046310462    mov es, [bp-008h]                         ; 8e 46 f8
     
    1047010469    sal ax, 1                                 ; d1 e0
    1047110470    rcl dx, 1                                 ; d1 d2
    10472     loop 06f37h                               ; e2 fa
     10471    loop 06f7dh                               ; e2 fa
    1047310472    cmp bx, dx                                ; 39 d3
    10474     jne short 06f45h                          ; 75 04
     10473    jne short 06f8bh                          ; 75 04
    1047510474    cmp di, ax                                ; 39 c7
    10476     je short 06f49h                           ; 74 04
     10475    je short 06f8fh                           ; 74 04
    1047710476    or byte [bp-006h], 002h                   ; 80 4e fa 02
    1047810477    xor ax, ax                                ; 31 c0
     
    1052410523    mov ax, strict word 00008h                ; b8 08 00
    1052510524    test cx, strict word 00001h               ; f7 c1 01 00
    10526     je near 06fdeh                            ; 0f 84 02 00
     10525    je near 07024h                            ; 0f 84 02 00
    1052710526    mov es, ax                                ; 8e c0
    1052810527    test cx, strict word 00002h               ; f7 c1 02 00
    10529     je near 07006h                            ; 0f 84 20 00
     10528    je near 0704ch                            ; 0f 84 20 00
    1053010529    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1053110530    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1054410543    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1054510544    iret                                      ; cf
    10546     jmp short 07025h                          ; eb 04
     10545    jmp short 0706bh                          ; eb 04
    1054710546    sti                                       ; fb
    1054810547    hlt                                       ; f4
    10549     jmp short 07022h                          ; eb fd
     10548    jmp short 07068h                          ; eb fd
    1055010549    lea sp, [bp-004h]                         ; 8d 66 fc
    1055110550    pop di                                    ; 5f
     
    1055310552    pop bp                                    ; 5d
    1055410553    retn                                      ; c3
    10555 init_rtc_:                                   ; 0xf702c LB 0x28
     10554init_rtc_:                                   ; 0xf7072 LB 0x28
    1055610555    push bp                                   ; 55
    1055710556    mov bp, sp                                ; 89 e5
     
    1055910558    mov dx, strict word 00026h                ; ba 26 00
    1056010559    mov ax, strict word 0000ah                ; b8 0a 00
    10561     call 016c9h                               ; e8 90 a6
     10560    call 016c9h                               ; e8 4a a6
    1056210561    mov dx, strict word 00002h                ; ba 02 00
    1056310562    mov ax, strict word 0000bh                ; b8 0b 00
    10564     call 016c9h                               ; e8 87 a6
     10563    call 016c9h                               ; e8 41 a6
    1056510564    mov ax, strict word 0000ch                ; b8 0c 00
    10566     call 016aeh                               ; e8 66 a6
     10565    call 016aeh                               ; e8 20 a6
    1056710566    mov ax, strict word 0000dh                ; b8 0d 00
    10568     call 016aeh                               ; e8 60 a6
     10567    call 016aeh                               ; e8 1a a6
    1056910568    lea sp, [bp-002h]                         ; 8d 66 fe
    1057010569    pop dx                                    ; 5a
    1057110570    pop bp                                    ; 5d
    1057210571    retn                                      ; c3
    10573 rtc_updating_:                               ; 0xf7054 LB 0x21
     10572rtc_updating_:                               ; 0xf709a LB 0x21
    1057410573    push bp                                   ; 55
    1057510574    mov bp, sp                                ; 89 e5
     
    1057710576    mov dx, 061a8h                            ; ba a8 61
    1057810577    dec dx                                    ; 4a
    10579     je short 0706ch                           ; 74 0e
     10578    je short 070b2h                           ; 74 0e
    1058010579    mov ax, strict word 0000ah                ; b8 0a 00
    10581     call 016aeh                               ; e8 4a a6
     10580    call 016aeh                               ; e8 04 a6
    1058210581    test AL, strict byte 080h                 ; a8 80
    10583     jne short 0705bh                          ; 75 f3
     10582    jne short 070a1h                          ; 75 f3
    1058410583    xor ax, ax                                ; 31 c0
    10585     jmp short 0706fh                          ; eb 03
     10584    jmp short 070b5h                          ; eb 03
    1058610585    mov ax, strict word 00001h                ; b8 01 00
    1058710586    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1058910588    pop bp                                    ; 5d
    1059010589    retn                                      ; c3
    10591 _int70_function:                             ; 0xf7075 LB 0xbf
     10590_int70_function:                             ; 0xf70bb LB 0xbf
    1059210591    push bp                                   ; 55
    1059310592    mov bp, sp                                ; 89 e5
     
    1059510594    push ax                                   ; 50
    1059610595    mov ax, strict word 0000bh                ; b8 0b 00
    10597     call 016aeh                               ; e8 2e a6
     10596    call 016aeh                               ; e8 e8 a5
    1059810597    mov bl, al                                ; 88 c3
    1059910598    mov byte [bp-004h], al                    ; 88 46 fc
    1060010599    mov ax, strict word 0000ch                ; b8 0c 00
    10601     call 016aeh                               ; e8 23 a6
     10600    call 016aeh                               ; e8 dd a5
    1060210601    mov dl, al                                ; 88 c2
    1060310602    test bl, 060h                             ; f6 c3 60
    10604     jne short 07095h                          ; 75 03
    10605     jmp near 0711bh                           ; e9 86 00
     10603    jne short 070dbh                          ; 75 03
     10604    jmp near 07161h                           ; e9 86 00
    1060610605    test AL, strict byte 020h                 ; a8 20
    10607     je short 0709dh                           ; 74 04
     10606    je short 070e3h                           ; 74 04
    1060810607    sti                                       ; fb
    1060910608    int 04ah                                  ; cd 4a
    1061010609    cli                                       ; fa
    1061110610    test dl, 040h                             ; f6 c2 40
    10612     je short 07105h                           ; 74 63
     10611    je short 0714bh                           ; 74 63
    1061310612    mov dx, 000a0h                            ; ba a0 00
    1061410613    mov ax, strict word 00040h                ; b8 40 00
    10615     call 01652h                               ; e8 a7 a5
     10614    call 01652h                               ; e8 61 a5
    1061610615    test al, al                               ; 84 c0
    10617     je short 0711bh                           ; 74 6c
     10616    je short 07161h                           ; 74 6c
    1061810617    mov dx, 0009ch                            ; ba 9c 00
    1061910618    mov ax, strict word 00040h                ; b8 40 00
    10620     call 0168ah                               ; e8 d2 a5
     10619    call 0168ah                               ; e8 8c a5
    1062110620    test dx, dx                               ; 85 d2
    10622     jne short 07107h                          ; 75 4b
     10621    jne short 0714dh                          ; 75 4b
    1062310622    cmp ax, 003d1h                            ; 3d d1 03
    10624     jnc short 07107h                          ; 73 46
     10623    jnc short 0714dh                          ; 73 46
    1062510624    mov dx, 00098h                            ; ba 98 00
    1062610625    mov ax, strict word 00040h                ; b8 40 00
    10627     call 0166eh                               ; e8 a4 a5
     10626    call 0166eh                               ; e8 5e a5
    1062810627    mov si, ax                                ; 89 c6
    1062910628    mov dx, 0009ah                            ; ba 9a 00
    1063010629    mov ax, strict word 00040h                ; b8 40 00
    10631     call 0166eh                               ; e8 99 a5
     10630    call 0166eh                               ; e8 53 a5
    1063210631    mov cx, ax                                ; 89 c1
    1063310632    xor bx, bx                                ; 31 db
    1063410633    mov dx, 000a0h                            ; ba a0 00
    1063510634    mov ax, strict word 00040h                ; b8 40 00
    10636     call 01660h                               ; e8 7e a5
     10635    call 01660h                               ; e8 38 a5
    1063710636    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1063810637    and dl, 037h                              ; 80 e2 37
    1063910638    xor dh, dh                                ; 30 f6
    1064010639    mov ax, strict word 0000bh                ; b8 0b 00
    10641     call 016c9h                               ; e8 d9 a5
     10640    call 016c9h                               ; e8 93 a5
    1064210641    mov dx, cx                                ; 89 ca
    1064310642    mov ax, si                                ; 89 f0
    10644     call 01652h                               ; e8 5b a5
     10643    call 01652h                               ; e8 15 a5
    1064510644    mov bl, al                                ; 88 c3
    1064610645    or bl, 080h                               ; 80 cb 80
     
    1064810647    mov dx, cx                                ; 89 ca
    1064910648    mov ax, si                                ; 89 f0
    10650     call 01660h                               ; e8 5b a5
    10651     jmp short 0711bh                          ; eb 14
     10649    call 01660h                               ; e8 15 a5
     10650    jmp short 07161h                          ; eb 14
    1065210651    mov bx, ax                                ; 89 c3
    1065310652    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1065610655    mov dx, 0009ch                            ; ba 9c 00
    1065710656    mov ax, strict word 00040h                ; b8 40 00
    10658     call 0169ch                               ; e8 81 a5
    10659     call 0e030h                               ; e8 12 6f
     10657    call 0169ch                               ; e8 3b a5
     10658    call 0e030h                               ; e8 cc 6e
    1066010659    lea sp, [bp-002h]                         ; 8d 66 fe
    1066110660    pop si                                    ; 5e
    1066210661    pop bp                                    ; 5d
    1066310662    retn                                      ; c3
    10664     dec dx                                    ; 4a
    10665     jno short 07198h                          ; 71 71
    10666     jno short 070bfh                          ; 71 96
    10667     jno short 070fdh                          ; 71 d2
    10668     jno short 07151h                          ; 71 24
    10669     jc short 0718ah                           ; 72 5b
    10670     jc short 070d3h                           ; 72 a2
    10671     jc short 07130h                           ; 72 fd
    10672     db  072h
    10673 _int1a_function:                             ; 0xf7134 LB 0x1d9
     10663    nop                                       ; 90
     10664    jno short 07124h                          ; 71 b7
     10665    jno short 0714bh                          ; 71 dc
     10666    jno short 07189h                          ; 71 18
     10667    jc short 071ddh                           ; 72 6a
     10668    jc short 07116h                           ; 72 a1
     10669    jc short 0715fh                           ; 72 e8
     10670    jc short 071bch                           ; 72 43
     10671    db  073h
     10672_int1a_function:                             ; 0xf717a LB 0x1d9
    1067410673    push bp                                   ; 55
    1067510674    mov bp, sp                                ; 89 e5
     
    1067710676    mov al, byte [bp+013h]                    ; 8a 46 13
    1067810677    cmp AL, strict byte 007h                  ; 3c 07
    10679     jnbe short 0719dh                         ; 77 5e
     10678    jnbe short 071e3h                         ; 77 5e
    1068010679    mov bl, al                                ; 88 c3
    1068110680    xor bh, bh                                ; 30 ff
    1068210681    sal bx, 1                                 ; d1 e3
    10683     jmp word [cs:bx+07124h]                   ; 2e ff a7 24 71
     10682    jmp word [cs:bx+0716ah]                   ; 2e ff a7 6a 71
    1068410683    cli                                       ; fa
    1068510684    mov bx, 0046eh                            ; bb 6e 04
     
    1069610695    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1069710696    sti                                       ; fb
    10698     jmp short 0719dh                          ; eb 2c
     10697    jmp short 071e3h                          ; eb 2c
    1069910698    cli                                       ; fa
    1070010699    mov bx, 0046eh                            ; bb 6e 04
     
    1071010709    sti                                       ; fb
    1071110710    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10712     jmp short 0719dh                          ; eb 07
    10713     call 07054h                               ; e8 bb fe
     10711    jmp short 071e3h                          ; eb 07
     10712    call 0709ah                               ; e8 bb fe
    1071410713    test ax, ax                               ; 85 c0
    10715     je short 071a0h                           ; 74 03
    10716     jmp near 071ceh                           ; e9 2e 00
     10714    je short 071e6h                           ; 74 03
     10715    jmp near 07214h                           ; e9 2e 00
    1071710716    xor ax, ax                                ; 31 c0
    10718     call 016aeh                               ; e8 09 a5
     10717    call 016aeh                               ; e8 c3 a4
    1071910718    mov byte [bp+00fh], al                    ; 88 46 0f
    1072010719    mov ax, strict word 00002h                ; b8 02 00
    10721     call 016aeh                               ; e8 00 a5
     10720    call 016aeh                               ; e8 ba a4
    1072210721    mov byte [bp+010h], al                    ; 88 46 10
    1072310722    mov ax, strict word 00004h                ; b8 04 00
    10724     call 016aeh                               ; e8 f7 a4
     10723    call 016aeh                               ; e8 b1 a4
    1072510724    mov dl, al                                ; 88 c2
    1072610725    mov byte [bp+011h], al                    ; 88 46 11
    1072710726    mov ax, strict word 0000bh                ; b8 0b 00
    10728     call 016aeh                               ; e8 ec a4
     10727    call 016aeh                               ; e8 a6 a4
    1072910728    and AL, strict byte 001h                  ; 24 01
    1073010729    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1073410733    pop bp                                    ; 5d
    1073510734    retn                                      ; c3
    10736     call 07054h                               ; e8 7f fe
     10735    call 0709ah                               ; e8 7f fe
    1073710736    test ax, ax                               ; 85 c0
    10738     je short 071dch                           ; 74 03
    10739     call 0702ch                               ; e8 50 fe
     10737    je short 07222h                           ; 74 03
     10738    call 07072h                               ; e8 50 fe
    1074010739    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1074110740    xor dh, dh                                ; 30 f6
    1074210741    xor ax, ax                                ; 31 c0
    10743     call 016c9h                               ; e8 e3 a4
     10742    call 016c9h                               ; e8 9d a4
    1074410743    mov dl, byte [bp+010h]                    ; 8a 56 10
    1074510744    xor dh, dh                                ; 30 f6
    1074610745    mov ax, strict word 00002h                ; b8 02 00
    10747     call 016c9h                               ; e8 d8 a4
     10746    call 016c9h                               ; e8 92 a4
    1074810747    mov dl, byte [bp+011h]                    ; 8a 56 11
    1074910748    xor dh, dh                                ; 30 f6
    1075010749    mov ax, strict word 00004h                ; b8 04 00
    10751     call 016c9h                               ; e8 cd a4
     10750    call 016c9h                               ; e8 87 a4
    1075210751    mov ax, strict word 0000bh                ; b8 0b 00
    10753     call 016aeh                               ; e8 ac a4
     10752    call 016aeh                               ; e8 66 a4
    1075410753    mov bl, al                                ; 88 c3
    1075510754    and bl, 060h                              ; 80 e3 60
     
    1076110760    xor dh, dh                                ; 30 f6
    1076210761    mov ax, strict word 0000bh                ; b8 0b 00
    10763     call 016c9h                               ; e8 ae a4
     10762    call 016c9h                               ; e8 68 a4
    1076410763    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1076510764    mov byte [bp+012h], bl                    ; 88 5e 12
    10766     jmp short 071ceh                          ; eb aa
     10765    jmp short 07214h                          ; eb aa
    1076710766    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10768     call 07054h                               ; e8 29 fe
     10767    call 0709ah                               ; e8 29 fe
    1076910768    test ax, ax                               ; 85 c0
    10770     je short 07231h                           ; 74 02
    10771     jmp short 071ceh                          ; eb 9d
     10769    je short 07277h                           ; 74 02
     10770    jmp short 07214h                          ; eb 9d
    1077210771    mov ax, strict word 00009h                ; b8 09 00
    10773     call 016aeh                               ; e8 77 a4
     10772    call 016aeh                               ; e8 31 a4
    1077410773    mov byte [bp+010h], al                    ; 88 46 10
    1077510774    mov ax, strict word 00008h                ; b8 08 00
    10776     call 016aeh                               ; e8 6e a4
     10775    call 016aeh                               ; e8 28 a4
    1077710776    mov byte [bp+00fh], al                    ; 88 46 0f
    1077810777    mov ax, strict word 00007h                ; b8 07 00
    10779     call 016aeh                               ; e8 65 a4
     10778    call 016aeh                               ; e8 1f a4
    1078010779    mov byte [bp+00eh], al                    ; 88 46 0e
    1078110780    mov ax, strict word 00032h                ; b8 32 00
    10782     call 016aeh                               ; e8 5c a4
     10781    call 016aeh                               ; e8 16 a4
    1078310782    mov byte [bp+011h], al                    ; 88 46 11
    1078410783    mov byte [bp+012h], al                    ; 88 46 12
    10785     jmp near 071ceh                           ; e9 73 ff
    10786     call 07054h                               ; e8 f6 fd
     10784    jmp near 07214h                           ; e9 73 ff
     10785    call 0709ah                               ; e8 f6 fd
    1078710786    test ax, ax                               ; 85 c0
    10788     je short 07268h                           ; 74 06
    10789     call 0702ch                               ; e8 c7 fd
    10790     jmp near 071ceh                           ; e9 66 ff
     10787    je short 072aeh                           ; 74 06
     10788    call 07072h                               ; e8 c7 fd
     10789    jmp near 07214h                           ; e9 66 ff
    1079110790    mov dl, byte [bp+010h]                    ; 8a 56 10
    1079210791    xor dh, dh                                ; 30 f6
    1079310792    mov ax, strict word 00009h                ; b8 09 00
    10794     call 016c9h                               ; e8 56 a4
     10793    call 016c9h                               ; e8 10 a4
    1079510794    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1079610795    xor dh, dh                                ; 30 f6
    1079710796    mov ax, strict word 00008h                ; b8 08 00
    10798     call 016c9h                               ; e8 4b a4
     10797    call 016c9h                               ; e8 05 a4
    1079910798    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1080010799    xor dh, dh                                ; 30 f6
    1080110800    mov ax, strict word 00007h                ; b8 07 00
    10802     call 016c9h                               ; e8 40 a4
     10801    call 016c9h                               ; e8 fa a3
    1080310802    mov dl, byte [bp+011h]                    ; 8a 56 11
    1080410803    xor dh, dh                                ; 30 f6
    1080510804    mov ax, strict word 00032h                ; b8 32 00
    10806     call 016c9h                               ; e8 35 a4
     10805    call 016c9h                               ; e8 ef a3
    1080710806    mov ax, strict word 0000bh                ; b8 0b 00
    10808     call 016aeh                               ; e8 14 a4
     10807    call 016aeh                               ; e8 ce a3
    1080910808    mov bl, al                                ; 88 c3
    1081010809    and bl, 07fh                              ; 80 e3 7f
    10811     jmp near 07211h                           ; e9 6f ff
     10810    jmp near 07257h                           ; e9 6f ff
    1081210811    mov ax, strict word 0000bh                ; b8 0b 00
    10813     call 016aeh                               ; e8 06 a4
     10812    call 016aeh                               ; e8 c0 a3
    1081410813    mov bl, al                                ; 88 c3
    1081510814    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1081610815    test AL, strict byte 020h                 ; a8 20
    10817     je short 072b6h                           ; 74 03
    10818     jmp near 071ceh                           ; e9 18 ff
    10819     call 07054h                               ; e8 9b fd
     10816    je short 072fch                           ; 74 03
     10817    jmp near 07214h                           ; e9 18 ff
     10818    call 0709ah                               ; e8 9b fd
    1082010819    test ax, ax                               ; 85 c0
    10821     je short 072c0h                           ; 74 03
    10822     call 0702ch                               ; e8 6c fd
     10820    je short 07306h                           ; 74 03
     10821    call 07072h                               ; e8 6c fd
    1082310822    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1082410823    xor dh, dh                                ; 30 f6
    1082510824    mov ax, strict word 00001h                ; b8 01 00
    10826     call 016c9h                               ; e8 fe a3
     10825    call 016c9h                               ; e8 b8 a3
    1082710826    mov dl, byte [bp+010h]                    ; 8a 56 10
    1082810827    xor dh, dh                                ; 30 f6
    1082910828    mov ax, strict word 00003h                ; b8 03 00
    10830     call 016c9h                               ; e8 f3 a3
     10829    call 016c9h                               ; e8 ad a3
    1083110830    mov dl, byte [bp+011h]                    ; 8a 56 11
    1083210831    xor dh, dh                                ; 30 f6
    1083310832    mov ax, strict word 00005h                ; b8 05 00
    10834     call 016c9h                               ; e8 e8 a3
     10833    call 016c9h                               ; e8 a2 a3
    1083510834    mov dx, 000a1h                            ; ba a1 00
    1083610835    in AL, DX                                 ; ec
     
    1084410843    xor dh, dh                                ; 30 f6
    1084510844    mov ax, strict word 0000bh                ; b8 0b 00
    10846     call 016c9h                               ; e8 cf a3
    10847     jmp near 071ceh                           ; e9 d1 fe
     10845    call 016c9h                               ; e8 89 a3
     10846    jmp near 07214h                           ; e9 d1 fe
    1084810847    mov ax, strict word 0000bh                ; b8 0b 00
    10849     call 016aeh                               ; e8 ab a3
     10848    call 016aeh                               ; e8 65 a3
    1085010849    mov bl, al                                ; 88 c3
    1085110850    mov dl, al                                ; 88 c2
    1085210851    and dl, 057h                              ; 80 e2 57
    10853     jmp near 07213h                           ; e9 06 ff
    10854 send_to_mouse_ctrl_:                         ; 0xf730d LB 0x38
     10852    jmp near 07259h                           ; e9 06 ff
     10853send_to_mouse_ctrl_:                         ; 0xf7353 LB 0x38
    1085510854    push bp                                   ; 55
    1085610855    mov bp, sp                                ; 89 e5
     
    1086310862    ; sub ah, ah                                ; 2a e4
    1086410863    test AL, strict byte 002h                 ; a8 02
    10865     je short 07330h                           ; 74 12
     10864    je short 07376h                           ; 74 12
    1086610865    mov ax, 008eeh                            ; b8 ee 08
    1086710866    push ax                                   ; 50
     
    1087010869    mov ax, strict word 00007h                ; b8 07 00
    1087110870    push ax                                   ; 50
    10872     call 01976h                               ; e8 49 a6
     10871    call 01976h                               ; e8 03 a6
    1087310872    add sp, strict byte 00006h                ; 83 c4 06
    1087410873    mov AL, strict byte 0d4h                  ; b0 d4
     
    1088410883    pop bp                                    ; 5d
    1088510884    retn                                      ; c3
    10886 get_mouse_data_:                             ; 0xf7345 LB 0x5d
     10885get_mouse_data_:                             ; 0xf738b LB 0x5d
    1088710886    push bp                                   ; 55
    1088810887    mov bp, sp                                ; 89 e5
     
    1089910898    and ax, strict word 00021h                ; 25 21 00
    1090010899    cmp ax, strict word 00021h                ; 3d 21 00
    10901     je short 07388h                           ; 74 28
     10900    je short 073ceh                           ; 74 28
    1090210901    test cx, cx                               ; 85 c9
    10903     je short 07388h                           ; 74 24
     10902    je short 073ceh                           ; 74 24
    1090410903    mov dx, strict word 00061h                ; ba 61 00
    1090510904    in AL, DX                                 ; ec
     
    1091810917    xor ah, ah                                ; 30 e4
    1091910918    cmp dx, ax                                ; 39 c2
    10920     je short 0736fh                           ; 74 ea
     10919    je short 073b5h                           ; 74 ea
    1092110920    dec cx                                    ; 49
    10922     jmp short 07352h                          ; eb ca
     10921    jmp short 07398h                          ; eb ca
    1092310922    test cx, cx                               ; 85 c9
    10924     jne short 07390h                          ; 75 04
     10923    jne short 073d6h                          ; 75 04
    1092510924    mov AL, strict byte 001h                  ; b0 01
    10926     jmp short 0739bh                          ; eb 0b
     10925    jmp short 073e1h                          ; eb 0b
    1092710926    mov dx, strict word 00060h                ; ba 60 00
    1092810927    in AL, DX                                 ; ec
     
    1093610935    pop bp                                    ; 5d
    1093710936    retn                                      ; c3
    10938 set_kbd_command_byte_:                       ; 0xf73a2 LB 0x36
     10937set_kbd_command_byte_:                       ; 0xf73e8 LB 0x36
    1093910938    push bp                                   ; 55
    1094010939    mov bp, sp                                ; 89 e5
     
    1094710946    ; sub ah, ah                                ; 2a e4
    1094810947    test AL, strict byte 002h                 ; a8 02
    10949     je short 073c5h                           ; 74 12
     10948    je short 0740bh                           ; 74 12
    1095010949    mov ax, 008f8h                            ; b8 f8 08
    1095110950    push ax                                   ; 50
     
    1095410953    mov ax, strict word 00007h                ; b8 07 00
    1095510954    push ax                                   ; 50
    10956     call 01976h                               ; e8 b4 a5
     10955    call 01976h                               ; e8 6e a5
    1095710956    add sp, strict byte 00006h                ; 83 c4 06
    1095810957    mov AL, strict byte 060h                  ; b0 60
     
    1096710966    pop bp                                    ; 5d
    1096810967    retn                                      ; c3
    10969 _int74_function:                             ; 0xf73d8 LB 0xd2
     10968_int74_function:                             ; 0xf741e LB 0xd2
    1097010969    push bp                                   ; 55
    1097110970    mov bp, sp                                ; 89 e5
     
    1097310972    mov dx, strict word 0000eh                ; ba 0e 00
    1097410973    mov ax, strict word 00040h                ; b8 40 00
    10975     call 0166eh                               ; e8 87 a2
     10974    call 0166eh                               ; e8 41 a2
    1097610975    mov cx, ax                                ; 89 c1
    1097710976    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1098210981    and AL, strict byte 021h                  ; 24 21
    1098310982    cmp AL, strict byte 021h                  ; 3c 21
    10984     jne short 0741ch                          ; 75 22
     10983    jne short 07462h                          ; 75 22
    1098510984    mov dx, strict word 00060h                ; ba 60 00
    1098610985    in AL, DX                                 ; ec
     
    1099010989    mov dx, strict word 00026h                ; ba 26 00
    1099110990    mov ax, cx                                ; 89 c8
    10992     call 01652h                               ; e8 48 a2
     10991    call 01652h                               ; e8 02 a2
    1099310992    mov byte [bp-002h], al                    ; 88 46 fe
    1099410993    mov dx, strict word 00027h                ; ba 27 00
    1099510994    mov ax, cx                                ; 89 c8
    10996     call 01652h                               ; e8 3d a2
     10995    call 01652h                               ; e8 f7 a1
    1099710996    mov byte [bp-006h], al                    ; 88 46 fa
    1099810997    test AL, strict byte 080h                 ; a8 80
    10999     jne short 0741fh                          ; 75 03
    11000     jmp near 07496h                           ; e9 77 00
     10998    jne short 07465h                          ; 75 03
     10999    jmp near 074dch                           ; e9 77 00
    1100111000    mov al, byte [bp-006h]                    ; 8a 46 fa
    1100211001    and AL, strict byte 007h                  ; 24 07
     
    1101211011    add dx, strict byte 00028h                ; 83 c2 28
    1101311012    mov ax, cx                                ; 89 c8
    11014     call 01660h                               ; e8 1e a2
     11013    call 01660h                               ; e8 d8 a1
    1101511014    mov al, byte [bp-008h]                    ; 8a 46 f8
    1101611015    cmp al, byte [bp-004h]                    ; 3a 46 fc
    11017     jc short 07486h                           ; 72 3c
     11016    jc short 074cch                           ; 72 3c
    1101811017    mov dx, strict word 00028h                ; ba 28 00
    1101911018    mov ax, cx                                ; 89 c8
    11020     call 01652h                               ; e8 00 a2
     11019    call 01652h                               ; e8 ba a1
    1102111020    xor ah, ah                                ; 30 e4
    1102211021    mov word [bp+00ch], ax                    ; 89 46 0c
    1102311022    mov dx, strict word 00029h                ; ba 29 00
    1102411023    mov ax, cx                                ; 89 c8
    11025     call 01652h                               ; e8 f3 a1
     11024    call 01652h                               ; e8 ad a1
    1102611025    xor ah, ah                                ; 30 e4
    1102711026    mov word [bp+00ah], ax                    ; 89 46 0a
    1102811027    mov dx, strict word 0002ah                ; ba 2a 00
    1102911028    mov ax, cx                                ; 89 c8
    11030     call 01652h                               ; e8 e6 a1
     11029    call 01652h                               ; e8 a0 a1
    1103111030    xor ah, ah                                ; 30 e4
    1103211031    mov word [bp+008h], ax                    ; 89 46 08
     
    1103511034    mov byte [bp-002h], ah                    ; 88 66 fe
    1103611035    test byte [bp-006h], 080h                 ; f6 46 fa 80
    11037     je short 07489h                           ; 74 0a
     11036    je short 074cfh                           ; 74 0a
    1103811037    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    11039     jmp short 07489h                          ; eb 03
     11038    jmp short 074cfh                          ; eb 03
    1104011039    inc byte [bp-002h]                        ; fe 46 fe
    1104111040    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1104311042    mov dx, strict word 00026h                ; ba 26 00
    1104411043    mov ax, cx                                ; 89 c8
    11045     call 01660h                               ; e8 ca a1
     11044    call 01660h                               ; e8 84 a1
    1104611045    mov sp, bp                                ; 89 ec
    1104711046    pop bp                                    ; 5d
    1104811047    retn                                      ; c3
    11049     in AL, DX                                 ; ec
    11050     je short 07505h                           ; 74 68
    11051     jne short 07487h                          ; 75 e8
    11052     jne short 0751eh                          ; 75 7d
    11053     jbe short 07492h                          ; 76 ef
    11054     jbe short 074d8h                          ; 76 33
    11055     jne short 074beh                          ; 75 17
    11056     jnbe short 0748dh                         ; 77 e4
    11057     db  077h
    11058 _int15_function_mouse:                       ; 0xf74aa LB 0x3a0
     11048    xor dh, byte [di-052h]                    ; 32 75 ae
     11049    jne short 07513h                          ; 75 2e
     11050    jbe short 074aah                          ; 76 c3
     11051    jbe short 0751eh                          ; 76 35
     11052    jnbe short 07564h                         ; 77 79
     11053    jne short 0754ah                          ; 75 5d
     11054    jnbe short 07519h                         ; 77 2a
     11055    db  078h
     11056_int15_function_mouse:                       ; 0xf74f0 LB 0x3a0
    1105911057    push bp                                   ; 55
    1106011058    mov bp, sp                                ; 89 e5
     
    1106311061    mov dx, strict word 0000eh                ; ba 0e 00
    1106411062    mov ax, strict word 00040h                ; b8 40 00
    11065     call 0166eh                               ; e8 b4 a1
     11063    call 0166eh                               ; e8 6e a1
    1106611064    mov cx, ax                                ; 89 c1
    1106711065    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    11068     jbe short 074cdh                          ; 76 0b
     11066    jbe short 07513h                          ; 76 0b
    1106911067    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1107011068    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11071     jmp near 07844h                           ; e9 77 03
     11069    jmp near 0788ah                           ; e9 77 03
    1107211070    mov ax, strict word 00065h                ; b8 65 00
    11073     call 073a2h                               ; e8 cf fe
     11071    call 073e8h                               ; e8 cf fe
    1107411072    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1107511073    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1107611074    mov bl, byte [bp+012h]                    ; 8a 5e 12
    1107711075    cmp bl, 007h                              ; 80 fb 07
    11078     jnbe short 07541h                         ; 77 5e
     11076    jnbe short 07587h                         ; 77 5e
    1107911077    xor bh, bh                                ; 30 ff
    1108011078    sal bx, 1                                 ; d1 e3
    11081     jmp word [cs:bx+0749ah]                   ; 2e ff a7 9a 74
     11079    jmp word [cs:bx+074e0h]                   ; 2e ff a7 e0 74
    1108211080    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    11083     jnbe short 07544h                         ; 77 52
     11081    jnbe short 0758ah                         ; 77 52
    1108411082    mov dx, strict word 00027h                ; ba 27 00
    1108511083    mov ax, cx                                ; 89 c8
    11086     call 01652h                               ; e8 58 a1
     11084    call 01652h                               ; e8 12 a1
    1108711085    test AL, strict byte 080h                 ; a8 80
    11088     jne short 07509h                          ; 75 0b
     11086    jne short 0754fh                          ; 75 0b
    1108911087    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109011088    mov byte [bp+013h], 005h                  ; c6 46 13 05
    11091     jmp near 0783eh                           ; e9 35 03
     11089    jmp near 07884h                           ; e9 35 03
    1109211090    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    11093     jne short 07513h                          ; 75 04
     11091    jne short 07559h                          ; 75 04
    1109411092    mov AL, strict byte 0f5h                  ; b0 f5
    11095     jmp short 07515h                          ; eb 02
     11093    jmp short 0755bh                          ; eb 02
    1109611094    mov AL, strict byte 0f4h                  ; b0 f4
    1109711095    xor ah, ah                                ; 30 e4
    11098     call 0730dh                               ; e8 f3 fd
     11096    call 07353h                               ; e8 f3 fd
    1109911097    test al, al                               ; 84 c0
    11100     jne short 07547h                          ; 75 29
     11098    jne short 0758dh                          ; 75 29
    1110111099    mov dx, ss                                ; 8c d2
    1110211100    lea ax, [bp-006h]                         ; 8d 46 fa
    11103     call 07345h                               ; e8 1f fe
     11101    call 0738bh                               ; e8 1f fe
    1110411102    test al, al                               ; 84 c0
    11105     je short 07530h                           ; 74 06
     11103    je short 07576h                           ; 74 06
    1110611104    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11107     jne short 07547h                          ; 75 17
    11108     jmp near 0783eh                           ; e9 0b 03
     11105    jne short 0758dh                          ; 75 17
     11106    jmp near 07884h                           ; e9 0b 03
    1110911107    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1111011108    cmp AL, strict byte 001h                  ; 3c 01
    11111     jc short 0753eh                           ; 72 04
     11109    jc short 07584h                           ; 72 04
    1111211110    cmp AL, strict byte 008h                  ; 3c 08
    11113     jbe short 0754ah                          ; 76 0c
    11114     jmp near 076e5h                           ; e9 a4 01
    11115     jmp near 07828h                           ; e9 e4 02
    11116     jmp near 07836h                           ; e9 ef 02
    11117     jmp near 077bch                           ; e9 72 02
     11111    jbe short 07590h                          ; 76 0c
     11112    jmp near 0772bh                           ; e9 a4 01
     11113    jmp near 0786eh                           ; e9 e4 02
     11114    jmp near 0787ch                           ; e9 ef 02
     11115    jmp near 07802h                           ; e9 72 02
    1111811116    mov dx, strict word 00027h                ; ba 27 00
    1111911117    mov ax, cx                                ; 89 c8
    11120     call 01652h                               ; e8 00 a1
     11118    call 01652h                               ; e8 ba a0
    1112111119    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1112211120    db  0feh, 0cch
     
    1112811126    mov dx, strict word 00027h                ; ba 27 00
    1112911127    mov ax, cx                                ; 89 c8
    11130     call 01660h                               ; e8 f8 a0
     11128    call 01660h                               ; e8 b2 a0
    1113111129    mov dx, strict word 00026h                ; ba 26 00
    1113211130    mov ax, cx                                ; 89 c8
    11133     call 01652h                               ; e8 e2 a0
     11131    call 01652h                               ; e8 9c a0
    1113411132    mov bl, al                                ; 88 c3
    1113511133    and bl, 0f8h                              ; 80 e3 f8
     
    1113711135    mov dx, strict word 00026h                ; ba 26 00
    1113811136    mov ax, cx                                ; 89 c8
    11139     call 01660h                               ; e8 e1 a0
     11137    call 01660h                               ; e8 9b a0
    1114011138    mov ax, 000ffh                            ; b8 ff 00
    11141     call 0730dh                               ; e8 88 fd
     11139    call 07353h                               ; e8 88 fd
    1114211140    test al, al                               ; 84 c0
    11143     jne short 07547h                          ; 75 be
     11141    jne short 0758dh                          ; 75 be
    1114411142    mov dx, ss                                ; 8c d2
    1114511143    lea ax, [bp-008h]                         ; 8d 46 f8
    11146     call 07345h                               ; e8 b4 fd
     11144    call 0738bh                               ; e8 b4 fd
    1114711145    mov cl, al                                ; 88 c1
    1114811146    cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
    11149     jne short 075a3h                          ; 75 0a
     11147    jne short 075e9h                          ; 75 0a
    1115011148    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1115111149    mov byte [bp+013h], 004h                  ; c6 46 13 04
    11152     jmp short 07530h                          ; eb 8d
     11150    jmp short 07576h                          ; eb 8d
    1115311151    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11154     je short 075bdh                           ; 74 14
     11152    je short 07603h                           ; 74 14
    1115511153    mov al, byte [bp-008h]                    ; 8a 46 f8
    1115611154    xor ah, ah                                ; 30 e4
     
    1116011158    mov ax, strict word 00007h                ; b8 07 00
    1116111159    push ax                                   ; 50
    11162     call 01976h                               ; e8 bc a3
     11160    call 01976h                               ; e8 76 a3
    1116311161    add sp, strict byte 00006h                ; 83 c4 06
    1116411162    test cl, cl                               ; 84 c9
    11165     jne short 07547h                          ; 75 86
     11163    jne short 0758dh                          ; 75 86
    1116611164    mov dx, ss                                ; 8c d2
    1116711165    lea ax, [bp-006h]                         ; 8d 46 fa
    11168     call 07345h                               ; e8 7c fd
     11166    call 0738bh                               ; e8 7c fd
    1116911167    test al, al                               ; 84 c0
    11170     jne short 07623h                          ; 75 56
     11168    jne short 07669h                          ; 75 56
    1117111169    mov dx, ss                                ; 8c d2
    1117211170    lea ax, [bp-004h]                         ; 8d 46 fc
    11173     call 07345h                               ; e8 70 fd
     11171    call 0738bh                               ; e8 70 fd
    1117411172    test al, al                               ; 84 c0
    11175     jne short 07623h                          ; 75 4a
     11173    jne short 07669h                          ; 75 4a
    1117611174    mov al, byte [bp-006h]                    ; 8a 46 fa
    1117711175    mov byte [bp+00ch], al                    ; 88 46 0c
    1117811176    mov al, byte [bp-004h]                    ; 8a 46 fc
    1117911177    mov byte [bp+00dh], al                    ; 88 46 0d
    11180     jmp near 0783eh                           ; e9 56 02
     11178    jmp near 07884h                           ; e9 56 02
    1118111179    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1118211180    cmp AL, strict byte 003h                  ; 3c 03
    11183     jc short 075ffh                           ; 72 10
    11184     jbe short 0761dh                          ; 76 2c
     11181    jc short 07645h                           ; 72 10
     11182    jbe short 07663h                          ; 76 2c
    1118511183    cmp AL, strict byte 006h                  ; 3c 06
    11186     je short 07632h                           ; 74 3d
     11184    je short 07678h                           ; 74 3d
    1118711185    cmp AL, strict byte 005h                  ; 3c 05
    11188     je short 0762ch                           ; 74 33
     11186    je short 07672h                           ; 74 33
    1118911187    cmp AL, strict byte 004h                  ; 3c 04
    11190     je short 07626h                           ; 74 29
    11191     jmp short 07638h                          ; eb 39
     11188    je short 0766ch                           ; 74 29
     11189    jmp short 0767eh                          ; eb 39
    1119211190    cmp AL, strict byte 002h                  ; 3c 02
    11193     je short 07617h                           ; 74 14
     11191    je short 0765dh                           ; 74 14
    1119411192    cmp AL, strict byte 001h                  ; 3c 01
    11195     je short 07611h                           ; 74 0a
     11193    je short 07657h                           ; 74 0a
    1119611194    test al, al                               ; 84 c0
    11197     jne short 07638h                          ; 75 2d
     11195    jne short 0767eh                          ; 75 2d
    1119811196    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    11199     jmp short 0763ch                          ; eb 2b
     11197    jmp short 07682h                          ; eb 2b
    1120011198    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    11201     jmp short 0763ch                          ; eb 25
     11199    jmp short 07682h                          ; eb 25
    1120211200    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    11203     jmp short 0763ch                          ; eb 1f
     11201    jmp short 07682h                          ; eb 1f
    1120411202    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    11205     jmp short 0763ch                          ; eb 19
    11206     jmp near 077bch                           ; e9 96 01
     11203    jmp short 07682h                          ; eb 19
     11204    jmp near 07802h                           ; e9 96 01
    1120711205    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    11208     jmp short 0763ch                          ; eb 10
     11206    jmp short 07682h                          ; eb 10
    1120911207    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    11210     jmp short 0763ch                          ; eb 0a
     11208    jmp short 07682h                          ; eb 0a
    1121111209    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    11212     jmp short 0763ch                          ; eb 04
     11210    jmp short 07682h                          ; eb 04
    1121311211    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1121411212    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    11215     jbe short 07672h                          ; 76 30
     11213    jbe short 076b8h                          ; 76 30
    1121611214    mov ax, 000f3h                            ; b8 f3 00
    11217     call 0730dh                               ; e8 c5 fc
     11215    call 07353h                               ; e8 c5 fc
    1121811216    test al, al                               ; 84 c0
    11219     jne short 07667h                          ; 75 1b
     11217    jne short 076adh                          ; 75 1b
    1122011218    mov dx, ss                                ; 8c d2
    1122111219    lea ax, [bp-004h]                         ; 8d 46 fc
    11222     call 07345h                               ; e8 f1 fc
     11220    call 0738bh                               ; e8 f1 fc
    1122311221    mov al, byte [bp-006h]                    ; 8a 46 fa
    1122411222    xor ah, ah                                ; 30 e4
    11225     call 0730dh                               ; e8 b1 fc
     11223    call 07353h                               ; e8 b1 fc
    1122611224    mov dx, ss                                ; 8c d2
    1122711225    lea ax, [bp-004h]                         ; 8d 46 fc
    11228     call 07345h                               ; e8 e1 fc
    11229     jmp near 0783eh                           ; e9 d7 01
     11226    call 0738bh                               ; e8 e1 fc
     11227    jmp near 07884h                           ; e9 d7 01
    1123011228    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123111229    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11232     jmp near 0783eh                           ; e9 cc 01
     11230    jmp near 07884h                           ; e9 cc 01
    1123311231    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123411232    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11235     jmp near 0783eh                           ; e9 c1 01
     11233    jmp near 07884h                           ; e9 c1 01
    1123611234    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11237     jnc short 076e5h                          ; 73 62
     11235    jnc short 0772bh                          ; 73 62
    1123811236    mov ax, 000e8h                            ; b8 e8 00
    11239     call 0730dh                               ; e8 84 fc
     11237    call 07353h                               ; e8 84 fc
    1124011238    test al, al                               ; 84 c0
    11241     jne short 076dbh                          ; 75 4e
     11239    jne short 07721h                          ; 75 4e
    1124211240    mov dx, ss                                ; 8c d2
    1124311241    lea ax, [bp-006h]                         ; 8d 46 fa
    11244     call 07345h                               ; e8 b0 fc
     11242    call 0738bh                               ; e8 b0 fc
    1124511243    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11246     je short 076afh                           ; 74 14
     11244    je short 076f5h                           ; 74 14
    1124711245    mov al, byte [bp-006h]                    ; 8a 46 fa
    1124811246    xor ah, ah                                ; 30 e4
     
    1125211250    mov ax, strict word 00007h                ; b8 07 00
    1125311251    push ax                                   ; 50
    11254     call 01976h                               ; e8 ca a2
     11252    call 01976h                               ; e8 84 a2
    1125511253    add sp, strict byte 00006h                ; 83 c4 06
    1125611254    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1125711255    xor ah, ah                                ; 30 e4
    11258     call 0730dh                               ; e8 56 fc
     11256    call 07353h                               ; e8 56 fc
    1125911257    mov dx, ss                                ; 8c d2
    1126011258    lea ax, [bp-006h]                         ; 8d 46 fa
    11261     call 07345h                               ; e8 86 fc
     11259    call 0738bh                               ; e8 86 fc
    1126211260    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11263     je short 07714h                           ; 74 4f
     11261    je short 0775ah                           ; 74 4f
    1126411262    mov al, byte [bp-006h]                    ; 8a 46 fa
    1126511263    xor ah, ah                                ; 30 e4
     
    1126911267    mov ax, strict word 00007h                ; b8 07 00
    1127011268    push ax                                   ; 50
    11271     call 01976h                               ; e8 a0 a2
     11269    call 01976h                               ; e8 5a a2
    1127211270    add sp, strict byte 00006h                ; 83 c4 06
    11273     jmp short 07714h                          ; eb 39
     11271    jmp short 0775ah                          ; eb 39
    1127411272    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127511273    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11276     jmp short 07714h                          ; eb 2f
     11274    jmp short 0775ah                          ; eb 2f
    1127711275    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127811276    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11279     jmp short 07714h                          ; eb 25
     11277    jmp short 0775ah                          ; eb 25
    1128011278    mov ax, 000f2h                            ; b8 f2 00
    11281     call 0730dh                               ; e8 18 fc
     11279    call 07353h                               ; e8 18 fc
    1128211280    test al, al                               ; 84 c0
    11283     jne short 0770ch                          ; 75 13
     11281    jne short 07752h                          ; 75 13
    1128411282    mov dx, ss                                ; 8c d2
    1128511283    lea ax, [bp-006h]                         ; 8d 46 fa
    11286     call 07345h                               ; e8 44 fc
     11284    call 0738bh                               ; e8 44 fc
    1128711285    mov dx, ss                                ; 8c d2
    1128811286    lea ax, [bp-004h]                         ; 8d 46 fc
    11289     call 07345h                               ; e8 3c fc
    11290     jmp near 075dfh                           ; e9 d3 fe
     11287    call 0738bh                               ; e8 3c fc
     11288    jmp near 07625h                           ; e9 d3 fe
    1129111289    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1129211290    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11293     jmp near 0783eh                           ; e9 27 01
     11291    jmp near 07884h                           ; e9 27 01
    1129411292    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1129511293    test al, al                               ; 84 c0
    11296     jbe short 07727h                          ; 76 09
     11294    jbe short 0776dh                          ; 76 09
    1129711295    cmp AL, strict byte 002h                  ; 3c 02
    11298     jbe short 07725h                          ; 76 03
    11299     jmp near 077c6h                           ; e9 a1 00
    11300     jmp short 07791h                          ; eb 6a
     11296    jbe short 0776bh                          ; 76 03
     11297    jmp near 0780ch                           ; e9 a1 00
     11298    jmp short 077d7h                          ; eb 6a
    1130111299    mov ax, 000e9h                            ; b8 e9 00
    11302     call 0730dh                               ; e8 e0 fb
     11300    call 07353h                               ; e8 e0 fb
    1130311301    test al, al                               ; 84 c0
    11304     jne short 0779ah                          ; 75 69
     11302    jne short 077e0h                          ; 75 69
    1130511303    mov dx, ss                                ; 8c d2
    1130611304    lea ax, [bp-006h]                         ; 8d 46 fa
    11307     call 07345h                               ; e8 0c fc
     11305    call 0738bh                               ; e8 0c fc
    1130811306    mov cl, al                                ; 88 c1
    1130911307    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11310     je short 07755h                           ; 74 14
     11308    je short 0779bh                           ; 74 14
    1131111309    mov al, byte [bp-006h]                    ; 8a 46 fa
    1131211310    xor ah, ah                                ; 30 e4
     
    1131611314    mov ax, strict word 00007h                ; b8 07 00
    1131711315    push ax                                   ; 50
    11318     call 01976h                               ; e8 24 a2
     11316    call 01976h                               ; e8 de a1
    1131911317    add sp, strict byte 00006h                ; 83 c4 06
    1132011318    test cl, cl                               ; 84 c9
    11321     jne short 077bch                          ; 75 63
     11319    jne short 07802h                          ; 75 63
    1132211320    mov dx, ss                                ; 8c d2
    1132311321    lea ax, [bp-006h]                         ; 8d 46 fa
    11324     call 07345h                               ; e8 e4 fb
     11322    call 0738bh                               ; e8 e4 fb
    1132511323    test al, al                               ; 84 c0
    11326     jne short 077bch                          ; 75 57
     11324    jne short 07802h                          ; 75 57
    1132711325    mov dx, ss                                ; 8c d2
    1132811326    lea ax, [bp-004h]                         ; 8d 46 fc
    11329     call 07345h                               ; e8 d8 fb
     11327    call 0738bh                               ; e8 d8 fb
    1133011328    test al, al                               ; 84 c0
    11331     jne short 077bch                          ; 75 4b
     11329    jne short 07802h                          ; 75 4b
    1133211330    mov dx, ss                                ; 8c d2
    1133311331    lea ax, [bp-008h]                         ; 8d 46 f8
    11334     call 07345h                               ; e8 cc fb
     11332    call 0738bh                               ; e8 cc fb
    1133511333    test al, al                               ; 84 c0
    11336     jne short 077bch                          ; 75 3f
     11334    jne short 07802h                          ; 75 3f
    1133711335    mov al, byte [bp-006h]                    ; 8a 46 fa
    1133811336    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1134111339    mov al, byte [bp-008h]                    ; 8a 46 f8
    1134211340    mov byte [bp+00eh], al                    ; 88 46 0e
    11343     jmp short 07714h                          ; eb 83
     11341    jmp short 0775ah                          ; eb 83
    1134411342    cmp AL, strict byte 001h                  ; 3c 01
    11345     jne short 0779ch                          ; 75 07
     11343    jne short 077e2h                          ; 75 07
    1134611344    mov ax, 000e6h                            ; b8 e6 00
    11347     jmp short 0779fh                          ; eb 05
    11348     jmp short 077bch                          ; eb 20
     11345    jmp short 077e5h                          ; eb 05
     11346    jmp short 07802h                          ; eb 20
    1134911347    mov ax, 000e7h                            ; b8 e7 00
    11350     call 0730dh                               ; e8 6b fb
     11348    call 07353h                               ; e8 6b fb
    1135111349    mov cl, al                                ; 88 c1
    1135211350    test cl, cl                               ; 84 c9
    11353     jne short 077b8h                          ; 75 10
     11351    jne short 077feh                          ; 75 10
    1135411352    mov dx, ss                                ; 8c d2
    1135511353    lea ax, [bp-006h]                         ; 8d 46 fa
    11356     call 07345h                               ; e8 95 fb
     11354    call 0738bh                               ; e8 95 fb
    1135711355    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11358     je short 077b8h                           ; 74 02
     11356    je short 077feh                           ; 74 02
    1135911357    mov CL, strict byte 001h                  ; b1 01
    1136011358    test cl, cl                               ; 84 c9
    11361     je short 07826h                           ; 74 6a
     11359    je short 0786ch                           ; 74 6a
    1136211360    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1136311361    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11364     jmp short 07826h                          ; eb 60
     11362    jmp short 0786ch                          ; eb 60
    1136511363    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1136611364    xor ah, ah                                ; 30 e4
     
    1137011368    mov ax, strict word 00007h                ; b8 07 00
    1137111369    push ax                                   ; 50
    11372     call 01976h                               ; e8 9f a1
     11370    call 01976h                               ; e8 59 a1
    1137311371    add sp, strict byte 00006h                ; 83 c4 06
    1137411372    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1137511373    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11376     jmp short 0783eh                          ; eb 5a
     11374    jmp short 07884h                          ; eb 5a
    1137711375    mov si, word [bp+00ch]                    ; 8b 76 0c
    1137811376    mov bx, si                                ; 89 f3
    1137911377    mov dx, strict word 00022h                ; ba 22 00
    1138011378    mov ax, cx                                ; 89 c8
    11381     call 0167ch                               ; e8 8b 9e
     11379    call 0167ch                               ; e8 45 9e
    1138211380    mov bx, word [bp+014h]                    ; 8b 5e 14
    1138311381    mov dx, strict word 00024h                ; ba 24 00
    1138411382    mov ax, cx                                ; 89 c8
    11385     call 0167ch                               ; e8 80 9e
     11383    call 0167ch                               ; e8 3a 9e
    1138611384    mov dx, strict word 00027h                ; ba 27 00
    1138711385    mov ax, cx                                ; 89 c8
    11388     call 01652h                               ; e8 4e 9e
     11386    call 01652h                               ; e8 08 9e
    1138911387    mov ah, al                                ; 88 c4
    1139011388    test si, si                               ; 85 f6
    11391     jne short 07818h                          ; 75 0e
     11389    jne short 0785eh                          ; 75 0e
    1139211390    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11393     jne short 07818h                          ; 75 08
     11391    jne short 0785eh                          ; 75 08
    1139411392    test AL, strict byte 080h                 ; a8 80
    11395     je short 0781ah                           ; 74 06
     11393    je short 07860h                           ; 74 06
    1139611394    and AL, strict byte 07fh                  ; 24 7f
    11397     jmp short 0781ah                          ; eb 02
     11395    jmp short 07860h                          ; eb 02
    1139811396    or AL, strict byte 080h                   ; 0c 80
    1139911397    mov bl, al                                ; 88 c3
     
    1140111399    mov dx, strict word 00027h                ; ba 27 00
    1140211400    mov ax, cx                                ; 89 c8
    11403     call 01660h                               ; e8 3a 9e
    11404     jmp short 0783eh                          ; eb 16
     11401    call 01660h                               ; e8 f4 9d
     11402    jmp short 07884h                          ; eb 16
    1140511403    mov ax, 00974h                            ; b8 74 09
    1140611404    push ax                                   ; 50
    1140711405    mov ax, strict word 00007h                ; b8 07 00
    1140811406    push ax                                   ; 50
    11409     call 01976h                               ; e8 43 a1
     11407    call 01976h                               ; e8 fd a0
    1141011408    add sp, strict byte 00004h                ; 83 c4 04
    1141111409    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1141211410    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1141311411    mov ax, strict word 00047h                ; b8 47 00
    11414     call 073a2h                               ; e8 5e fb
     11412    call 073e8h                               ; e8 5e fb
    1141511413    lea sp, [bp-002h]                         ; 8d 66 fe
    1141611414    pop si                                    ; 5e
    1141711415    pop bp                                    ; 5d
    1141811416    retn                                      ; c3
    11419 _int17_function:                             ; 0xf784a LB 0xac
     11417_int17_function:                             ; 0xf7890 LB 0xac
    1142011418    push bp                                   ; 55
    1142111419    mov bp, sp                                ; 89 e5
     
    1142711425    add dx, strict byte 00008h                ; 83 c2 08
    1142811426    mov ax, strict word 00040h                ; b8 40 00
    11429     call 0166eh                               ; e8 10 9e
     11427    call 0166eh                               ; e8 ca 9d
    1143011428    mov bx, ax                                ; 89 c3
    1143111429    mov si, ax                                ; 89 c6
    1143211430    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11433     jnc short 07874h                          ; 73 0c
     11431    jnc short 078bah                          ; 73 0c
    1143411432    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1143511433    cmp ax, strict word 00003h                ; 3d 03 00
    11436     jnc short 07874h                          ; 73 04
     11434    jnc short 078bah                          ; 73 04
    1143711435    test bx, bx                               ; 85 db
    11438     jnbe short 07877h                         ; 77 03
    11439     jmp near 078ech                           ; e9 75 00
     11436    jnbe short 078bdh                         ; 77 03
     11437    jmp near 07932h                           ; e9 75 00
    1144011438    mov dx, ax                                ; 89 c2
    1144111439    add dx, strict byte 00078h                ; 83 c2 78
    1144211440    mov ax, strict word 00040h                ; b8 40 00
    11443     call 01652h                               ; e8 d0 9d
     11441    call 01652h                               ; e8 8a 9d
    1144411442    mov ch, al                                ; 88 c5
    1144511443    xor cl, cl                                ; 30 c9
    1144611444    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11447     jne short 078b8h                          ; 75 2c
     11445    jne short 078feh                          ; 75 2c
    1144811446    mov al, byte [bp+012h]                    ; 8a 46 12
    1144911447    mov dx, bx                                ; 89 da
     
    1146511463    ; sub ah, ah                                ; 2a e4
    1146611464    test AL, strict byte 040h                 ; a8 40
    11467     je short 078b8h                           ; 74 07
     11465    je short 078feh                           ; 74 07
    1146811466    test cx, cx                               ; 85 c9
    11469     je short 078b8h                           ; 74 03
     11467    je short 078feh                           ; 74 03
    1147011468    dec cx                                    ; 49
    11471     jmp short 078a7h                          ; eb ef
     11469    jmp short 078edh                          ; eb ef
    1147211470    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11473     jne short 078d3h                          ; 75 15
     11471    jne short 07919h                          ; 75 15
    1147411472    lea dx, [si+002h]                         ; 8d 54 02
    1147511473    in AL, DX                                 ; ec
     
    1149011488    mov byte [bp+013h], al                    ; 88 46 13
    1149111489    test cx, cx                               ; 85 c9
    11492     jne short 078e6h                          ; 75 04
     11490    jne short 0792ch                          ; 75 04
    1149311491    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1149411492    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11495     jmp short 078f0h                          ; eb 04
     11493    jmp short 07936h                          ; eb 04
    1149611494    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1149711495    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1149911497    pop bp                                    ; 5d
    1150011498    retn                                      ; c3
    11501 wait_:                                       ; 0xf78f6 LB 0xb2
     11499wait_:                                       ; 0xf793c LB 0xb2
    1150211500    push bp                                   ; 55
    1150311501    mov bp, sp                                ; 89 e5
     
    1151711515    mov dx, 0046ch                            ; ba 6c 04
    1151811516    xor ax, ax                                ; 31 c0
    11519     call 0168ah                               ; e8 71 9d
     11517    call 0168ah                               ; e8 2b 9d
    1152011518    mov word [bp-00eh], ax                    ; 89 46 f2
    1152111519    mov bx, dx                                ; 89 d3
     
    1152311521    mov dx, 0046ch                            ; ba 6c 04
    1152411522    xor ax, ax                                ; 31 c0
    11525     call 0168ah                               ; e8 63 9d
     11523    call 0168ah                               ; e8 1d 9d
    1152611524    mov word [bp-012h], ax                    ; 89 46 ee
    1152711525    mov di, dx                                ; 89 d7
    1152811526    cmp dx, bx                                ; 39 da
    11529     jnbe short 07937h                         ; 77 07
    11530     jne short 0793eh                          ; 75 0c
     11527    jnbe short 0797dh                         ; 77 07
     11528    jne short 07984h                          ; 75 0c
    1153111529    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11532     jbe short 0793eh                          ; 76 07
     11530    jbe short 07984h                          ; 76 07
    1153311531    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1153411532    sbb dx, bx                                ; 19 da
    11535     jmp short 07949h                          ; eb 0b
     11533    jmp short 0798fh                          ; eb 0b
    1153611534    cmp dx, bx                                ; 39 da
    11537     jc short 07949h                           ; 72 07
    11538     jne short 0794dh                          ; 75 09
     11535    jc short 0798fh                           ; 72 07
     11536    jne short 07993h                          ; 75 09
    1153911537    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11540     jnc short 0794dh                          ; 73 04
     11538    jnc short 07993h                          ; 73 04
    1154111539    sub si, ax                                ; 29 c6
    1154211540    sbb cx, dx                                ; 19 d1
     
    1154611544    mov ax, 00100h                            ; b8 00 01
    1154711545    int 016h                                  ; cd 16
    11548     je short 07961h                           ; 74 05
     11546    je short 079a7h                           ; 74 05
    1154911547    mov AL, strict byte 001h                  ; b0 01
    11550     jmp near 07963h                           ; e9 02 00
     11548    jmp near 079a9h                           ; e9 02 00
    1155111549    db  032h, 0c0h
    1155211550    ; xor al, al                                ; 32 c0
    1155311551    test al, al                               ; 84 c0
    11554     je short 0798dh                           ; 74 26
     11552    je short 079d3h                           ; 74 26
    1155511553    db  033h, 0c0h
    1155611554    ; xor ax, ax                                ; 33 c0
     
    1156511563    mov ax, strict word 00004h                ; b8 04 00
    1156611564    push ax                                   ; 50
    11567     call 01976h                               ; e8 f6 9f
     11565    call 01976h                               ; e8 b0 9f
    1156811566    add sp, strict byte 00006h                ; 83 c4 06
    1156911567    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11570     je short 0798dh                           ; 74 04
     11568    je short 079d3h                           ; 74 04
    1157111569    mov al, dl                                ; 88 d0
    11572     jmp short 0799fh                          ; eb 12
     11570    jmp short 079e5h                          ; eb 12
    1157311571    test cx, cx                               ; 85 c9
    11574     jnle short 0791eh                         ; 7f 8d
    11575     jne short 07997h                          ; 75 04
     11572    jnle short 07964h                         ; 7f 8d
     11573    jne short 079ddh                          ; 75 04
    1157611574    test si, si                               ; 85 f6
    11577     jnbe short 0791eh                         ; 77 87
     11575    jnbe short 07964h                         ; 77 87
    1157811576    mov ax, word [bp-010h]                    ; 8b 46 f0
    1157911577    push ax                                   ; 50
     
    1158711585    pop bp                                    ; 5d
    1158811586    retn                                      ; c3
    11589 read_logo_byte_:                             ; 0xf79a8 LB 0x16
     11587read_logo_byte_:                             ; 0xf79ee LB 0x16
    1159011588    push bp                                   ; 55
    1159111589    mov bp, sp                                ; 89 e5
     
    1160211600    pop bp                                    ; 5d
    1160311601    retn                                      ; c3
    11604 read_logo_word_:                             ; 0xf79be LB 0x14
     11602read_logo_word_:                             ; 0xf7a04 LB 0x14
    1160511603    push bp                                   ; 55
    1160611604    mov bp, sp                                ; 89 e5
     
    1161511613    pop bp                                    ; 5d
    1161611614    retn                                      ; c3
    11617 print_detected_harddisks_:                   ; 0xf79d2 LB 0x15a
     11615print_detected_harddisks_:                   ; 0xf7a18 LB 0x15a
    1161811616    push bp                                   ; 55
    1161911617    mov bp, sp                                ; 89 e5
     
    1162511623    mov dx, strict word 0000eh                ; ba 0e 00
    1162611624    mov ax, strict word 00040h                ; b8 40 00
    11627     call 0166eh                               ; e8 89 9c
     11625    call 0166eh                               ; e8 43 9c
    1162811626    mov si, ax                                ; 89 c6
    1162911627    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1163111629    mov byte [bp-00ch], ch                    ; 88 6e f4
    1163211630    mov dx, 00304h                            ; ba 04 03
    11633     call 01652h                               ; e8 5c 9c
     11631    call 01652h                               ; e8 16 9c
    1163411632    mov byte [bp-00ah], al                    ; 88 46 f6
    1163511633    xor cl, cl                                ; 30 c9
    1163611634    cmp cl, byte [bp-00ah]                    ; 3a 4e f6
    11637     jnc short 07a5eh                          ; 73 5e
     11635    jnc short 07aa4h                          ; 73 5e
    1163811636    mov al, cl                                ; 88 c8
    1163911637    xor ah, ah                                ; 30 e4
     
    1164111639    add dx, 00305h                            ; 81 c2 05 03
    1164211640    mov ax, si                                ; 89 f0
    11643     call 01652h                               ; e8 43 9c
     11641    call 01652h                               ; e8 fd 9b
    1164411642    mov bl, al                                ; 88 c3
    1164511643    cmp AL, strict byte 00ch                  ; 3c 0c
    11646     jc short 07a40h                           ; 72 2b
     11644    jc short 07a86h                           ; 72 2b
    1164711645    test ch, ch                               ; 84 ed
    11648     jne short 07a29h                          ; 75 10
     11646    jne short 07a6fh                          ; 75 10
    1164911647    mov ax, 009a7h                            ; b8 a7 09
    1165011648    push ax                                   ; 50
    1165111649    mov ax, strict word 00002h                ; b8 02 00
    1165211650    push ax                                   ; 50
    11653     call 01976h                               ; e8 52 9f
     11651    call 01976h                               ; e8 0c 9f
    1165411652    add sp, strict byte 00004h                ; 83 c4 04
    1165511653    mov CH, strict byte 001h                  ; b5 01
     
    1166211660    mov ax, strict word 00002h                ; b8 02 00
    1166311661    push ax                                   ; 50
    11664     call 01976h                               ; e8 3c 9f
     11662    call 01976h                               ; e8 f6 9e
    1166511663    add sp, strict byte 00006h                ; 83 c4 06
    11666     jmp near 07af2h                           ; e9 b2 00
     11664    jmp near 07b38h                           ; e9 b2 00
    1166711665    cmp AL, strict byte 008h                  ; 3c 08
    11668     jc short 07a61h                           ; 72 1d
     11666    jc short 07aa7h                           ; 72 1d
    1166911667    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11670     jne short 07a5ch                          ; 75 12
     11668    jne short 07aa2h                          ; 75 12
    1167111669    mov ax, 009cfh                            ; b8 cf 09
    1167211670    push ax                                   ; 50
    1167311671    mov ax, strict word 00002h                ; b8 02 00
    1167411672    push ax                                   ; 50
    11675     call 01976h                               ; e8 21 9f
     11673    call 01976h                               ; e8 db 9e
    1167611674    add sp, strict byte 00004h                ; 83 c4 04
    1167711675    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11678     jmp short 07a29h                          ; eb cb
    11679     jmp near 07af7h                           ; e9 96 00
     11676    jmp short 07a6fh                          ; eb cb
     11677    jmp near 07b3dh                           ; e9 96 00
    1168011678    cmp AL, strict byte 004h                  ; 3c 04
    11681     jnc short 07a7fh                          ; 73 1a
     11679    jnc short 07ac5h                          ; 73 1a
    1168211680    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11683     jne short 07a7fh                          ; 75 14
     11681    jne short 07ac5h                          ; 75 14
    1168411682    mov ax, 009e4h                            ; b8 e4 09
    1168511683    push ax                                   ; 50
    1168611684    mov ax, strict word 00002h                ; b8 02 00
    1168711685    push ax                                   ; 50
    11688     call 01976h                               ; e8 00 9f
     11686    call 01976h                               ; e8 ba 9e
    1168911687    add sp, strict byte 00004h                ; 83 c4 04
    1169011688    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11691     jmp short 07a98h                          ; eb 19
     11689    jmp short 07adeh                          ; eb 19
    1169211690    cmp bl, 004h                              ; 80 fb 04
    11693     jc short 07a98h                           ; 72 14
     11691    jc short 07adeh                           ; 72 14
    1169411692    test ch, ch                               ; 84 ed
    11695     jne short 07a98h                          ; 75 10
     11693    jne short 07adeh                          ; 75 10
    1169611694    mov ax, 009f6h                            ; b8 f6 09
    1169711695    push ax                                   ; 50
    1169811696    mov ax, strict word 00002h                ; b8 02 00
    1169911697    push ax                                   ; 50
    11700     call 01976h                               ; e8 e3 9e
     11698    call 01976h                               ; e8 9d 9e
    1170111699    add sp, strict byte 00004h                ; 83 c4 04
    1170211700    mov CH, strict byte 001h                  ; b5 01
     
    1170911707    mov ax, strict word 00002h                ; b8 02 00
    1171011708    push ax                                   ; 50
    11711     call 01976h                               ; e8 cd 9e
     11709    call 01976h                               ; e8 87 9e
    1171211710    add sp, strict byte 00006h                ; 83 c4 06
    1171311711    cmp bl, 004h                              ; 80 fb 04
    11714     jc short 07ab4h                           ; 72 03
     11712    jc short 07afah                           ; 72 03
    1171511713    sub bl, 004h                              ; 80 eb 04
    1171611714    mov al, bl                                ; 88 d8
     
    1172111719    sar ax, 1                                 ; d1 f8
    1172211720    test ax, ax                               ; 85 c0
    11723     je short 07ac6h                           ; 74 05
     11721    je short 07b0ch                           ; 74 05
    1172411722    mov ax, 00a14h                            ; b8 14 0a
    11725     jmp short 07ac9h                          ; eb 03
     11723    jmp short 07b0fh                          ; eb 03
    1172611724    mov ax, 00a1fh                            ; b8 1f 0a
    1172711725    push ax                                   ; 50
    1172811726    mov ax, strict word 00002h                ; b8 02 00
    1172911727    push ax                                   ; 50
    11730     call 01976h                               ; e8 a5 9e
     11728    call 01976h                               ; e8 5f 9e
    1173111729    add sp, strict byte 00004h                ; 83 c4 04
    1173211730    mov al, bl                                ; 88 d8
     
    1173611734    idiv bx                                   ; f7 fb
    1173711735    test dx, dx                               ; 85 d2
    11738     je short 07ae7h                           ; 74 05
     11736    je short 07b2dh                           ; 74 05
    1173911737    mov ax, 00a28h                            ; b8 28 0a
    11740     jmp short 07aeah                          ; eb 03
     11738    jmp short 07b30h                          ; eb 03
    1174111739    mov ax, 00a2eh                            ; b8 2e 0a
    1174211740    push ax                                   ; 50
    1174311741    push bx                                   ; 53
    11744     call 01976h                               ; e8 87 9e
     11742    call 01976h                               ; e8 41 9e
    1174511743    add sp, strict byte 00004h                ; 83 c4 04
    1174611744    db  0feh, 0c1h
    1174711745    ; inc cl                                    ; fe c1
    11748     jmp near 079fbh                           ; e9 04 ff
     11746    jmp near 07a41h                           ; e9 04 ff
    1174911747    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11750     jne short 07b15h                          ; 75 18
     11748    jne short 07b5bh                          ; 75 18
    1175111749    test ch, ch                               ; 84 ed
    11752     jne short 07b15h                          ; 75 14
     11750    jne short 07b5bh                          ; 75 14
    1175311751    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11754     jne short 07b15h                          ; 75 0e
     11752    jne short 07b5bh                          ; 75 0e
    1175511753    mov ax, 00a35h                            ; b8 35 0a
    1175611754    push ax                                   ; 50
    1175711755    mov ax, strict word 00002h                ; b8 02 00
    1175811756    push ax                                   ; 50
    11759     call 01976h                               ; e8 64 9e
     11757    call 01976h                               ; e8 1e 9e
    1176011758    add sp, strict byte 00004h                ; 83 c4 04
    1176111759    mov ax, 00a49h                            ; b8 49 0a
     
    1176311761    mov ax, strict word 00002h                ; b8 02 00
    1176411762    push ax                                   ; 50
    11765     call 01976h                               ; e8 56 9e
     11763    call 01976h                               ; e8 10 9e
    1176611764    add sp, strict byte 00004h                ; 83 c4 04
    1176711765    lea sp, [bp-008h]                         ; 8d 66 f8
     
    1177211770    pop bp                                    ; 5d
    1177311771    retn                                      ; c3
    11774 get_boot_drive_:                             ; 0xf7b2c LB 0x28
     11772get_boot_drive_:                             ; 0xf7b72 LB 0x28
    1177511773    push bp                                   ; 55
    1177611774    mov bp, sp                                ; 89 e5
     
    1178011778    mov dx, strict word 0000eh                ; ba 0e 00
    1178111779    mov ax, strict word 00040h                ; b8 40 00
    11782     call 0166eh                               ; e8 32 9b
     11780    call 0166eh                               ; e8 ec 9a
    1178311781    mov dx, 00304h                            ; ba 04 03
    11784     call 01652h                               ; e8 10 9b
     11782    call 01652h                               ; e8 ca 9a
    1178511783    sub bl, 002h                              ; 80 eb 02
    1178611784    cmp bl, al                                ; 38 c3
    11787     jc short 07b4bh                           ; 72 02
     11785    jc short 07b91h                           ; 72 02
    1178811786    mov BL, strict byte 0ffh                  ; b3 ff
    1178911787    mov al, bl                                ; 88 d8
     
    1179311791    pop bp                                    ; 5d
    1179411792    retn                                      ; c3
    11795 show_logo_:                                  ; 0xf7b54 LB 0x240
     11793show_logo_:                                  ; 0xf7b9a LB 0x240
    1179611794    push bp                                   ; 55
    1179711795    mov bp, sp                                ; 89 e5
     
    1180411802    mov dx, strict word 0000eh                ; ba 0e 00
    1180511803    mov ax, strict word 00040h                ; b8 40 00
    11806     call 0166eh                               ; e8 06 9b
     11804    call 0166eh                               ; e8 c0 9a
    1180711805    mov si, ax                                ; 89 c6
    1180811806    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1181611814    mov al, cl                                ; 88 c8
    1181711815    xor ah, ah                                ; 30 e4
    11818     call 079beh                               ; e8 3b fe
     11816    call 07a04h                               ; e8 3b fe
    1181911817    cmp ax, 066bbh                            ; 3d bb 66
    11820     jne short 07b9ah                          ; 75 12
     11818    jne short 07be0h                          ; 75 12
    1182111819    push SS                                   ; 16
    1182211820    pop ES                                    ; 07
     
    1182611824    mov word [es:di], bx                      ; 26 89 1d
    1182711825    cmp ax, strict word 0004fh                ; 3d 4f 00
    11828     je short 07b9dh                           ; 74 03
    11829     jmp near 07c63h                           ; e9 c6 00
     11826    je short 07be3h                           ; 74 03
     11827    jmp near 07ca9h                           ; e9 c6 00
    1183011828    mov al, cl                                ; 88 c8
    1183111829    add AL, strict byte 004h                  ; 04 04
    1183211830    xor ah, ah                                ; 30 e4
    11833     call 079a8h                               ; e8 02 fe
     11831    call 079eeh                               ; e8 02 fe
    1183411832    mov bl, al                                ; 88 c3
    1183511833    mov byte [bp-014h], al                    ; 88 46 ec
     
    1183711835    add AL, strict byte 005h                  ; 04 05
    1183811836    xor ah, ah                                ; 30 e4
    11839     call 079a8h                               ; e8 f4 fd
     11837    call 079eeh                               ; e8 f4 fd
    1184011838    mov bh, al                                ; 88 c7
    1184111839    mov byte [bp-012h], al                    ; 88 46 ee
     
    1184311841    add AL, strict byte 002h                  ; 04 02
    1184411842    xor ah, ah                                ; 30 e4
    11845     call 079beh                               ; e8 fc fd
     11843    call 07a04h                               ; e8 fc fd
    1184611844    mov dx, ax                                ; 89 c2
    1184711845    mov word [bp-016h], ax                    ; 89 46 ea
     
    1184911847    add AL, strict byte 006h                  ; 04 06
    1185011848    xor ah, ah                                ; 30 e4
    11851     call 079a8h                               ; e8 d8 fd
     11849    call 079eeh                               ; e8 d8 fd
    1185211850    mov byte [bp-010h], al                    ; 88 46 f0
    1185311851    test bl, bl                               ; 84 db
    11854     jne short 07bdfh                          ; 75 08
     11852    jne short 07c25h                          ; 75 08
    1185511853    test bh, bh                               ; 84 ff
    11856     jne short 07bdfh                          ; 75 04
     11854    jne short 07c25h                          ; 75 04
    1185711855    test dx, dx                               ; 85 d2
    11858     je short 07b9ah                           ; 74 bb
     11856    je short 07be0h                           ; 74 bb
    1185911857    mov bx, 00142h                            ; bb 42 01
    1186011858    mov ax, 04f02h                            ; b8 02 4f
    1186111859    int 010h                                  ; cd 10
    1186211860    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11863     je short 07c12h                           ; 74 25
     11861    je short 07c58h                           ; 74 25
    1186411862    xor cx, cx                                ; 31 c9
    11865     jmp short 07bf7h                          ; eb 06
     11863    jmp short 07c3dh                          ; eb 06
    1186611864    inc cx                                    ; 41
    1186711865    cmp cx, strict byte 00010h                ; 83 f9 10
    11868     jnbe short 07c19h                         ; 77 22
     11866    jnbe short 07c5fh                         ; 77 22
    1186911867    mov ax, cx                                ; 89 c8
    1187011868    or ah, 002h                               ; 80 cc 02
     
    1187311871    xor dx, dx                                ; 31 d2
    1187411872    mov ax, strict word 00001h                ; b8 01 00
    11875     call 078f6h                               ; e8 ee fc
     11873    call 0793ch                               ; e8 ee fc
    1187611874    cmp AL, strict byte 086h                  ; 3c 86
    11877     jne short 07bf1h                          ; 75 e5
     11875    jne short 07c37h                          ; 75 e5
    1187811876    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11879     jmp short 07c19h                          ; eb 07
     11877    jmp short 07c5fh                          ; eb 07
    1188011878    mov ax, 00210h                            ; b8 10 02
    1188111879    mov dx, 003b8h                            ; ba b8 03
    1188211880    out DX, ax                                ; ef
    1188311881    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11884     jne short 07c34h                          ; 75 15
     11882    jne short 07c7ah                          ; 75 15
    1188511883    mov CL, strict byte 004h                  ; b1 04
    1188611884    mov ax, word [bp-016h]                    ; 8b 46 ea
    1188711885    shr ax, CL                                ; d3 e8
    1188811886    mov dx, strict word 00001h                ; ba 01 00
    11889     call 078f6h                               ; e8 ca fc
     11887    call 0793ch                               ; e8 ca fc
    1189011888    cmp AL, strict byte 086h                  ; 3c 86
    11891     jne short 07c34h                          ; 75 04
     11889    jne short 07c7ah                          ; 75 04
    1189211890    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1189311891    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11894     je short 07c63h                           ; 74 29
     11892    je short 07ca9h                           ; 74 29
    1189511893    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11896     jne short 07c63h                          ; 75 23
     11894    jne short 07ca9h                          ; 75 23
    1189711895    mov cx, strict word 00010h                ; b9 10 00
    11898     jmp short 07c4ah                          ; eb 05
     11896    jmp short 07c90h                          ; eb 05
    1189911897    dec cx                                    ; 49
    1190011898    test cx, cx                               ; 85 c9
    11901     jbe short 07c63h                          ; 76 19
     11899    jbe short 07ca9h                          ; 76 19
    1190211900    mov ax, cx                                ; 89 c8
    1190311901    or ah, 002h                               ; 80 cc 02
     
    1190611904    xor dx, dx                                ; 31 d2
    1190711905    mov ax, strict word 00001h                ; b8 01 00
    11908     call 078f6h                               ; e8 9b fc
     11906    call 0793ch                               ; e8 9b fc
    1190911907    cmp AL, strict byte 086h                  ; 3c 86
    11910     jne short 07c45h                          ; 75 e6
     11908    jne short 07c8bh                          ; 75 e6
    1191111909    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1191211910    xor bx, bx                                ; 31 db
    1191311911    mov dx, 0037dh                            ; ba 7d 03
    1191411912    mov ax, si                                ; 89 f0
    11915     call 01660h                               ; e8 f3 99
     11913    call 01660h                               ; e8 ad 99
    1191611914    mov AL, strict byte 003h                  ; b0 03
    1191711915    mov AH, strict byte 000h                  ; b4 00
    1191811916    int 010h                                  ; cd 10
    1191911917    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11920     je short 07c8dh                           ; 74 14
     11918    je short 07cd3h                           ; 74 14
    1192111919    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11922     jne short 07cbbh                          ; 75 3c
     11920    jne short 07d01h                          ; 75 3c
    1192311921    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11924     jne short 07cbbh                          ; 75 36
     11922    jne short 07d01h                          ; 75 36
    1192511923    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11926     je short 07c90h                           ; 74 05
    11927     jmp short 07cbbh                          ; eb 2e
    11928     jmp near 07d77h                           ; e9 e7 00
     11924    je short 07cd6h                           ; 74 05
     11925    jmp short 07d01h                          ; eb 2e
     11926    jmp near 07dbdh                           ; e9 e7 00
    1192911927    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    11930     jne short 07ca4h                          ; 75 0e
     11928    jne short 07ceah                          ; 75 0e
    1193111929    mov ax, 00a4bh                            ; b8 4b 0a
    1193211930    push ax                                   ; 50
    1193311931    mov ax, strict word 00002h                ; b8 02 00
    1193411932    push ax                                   ; 50
    11935     call 01976h                               ; e8 d5 9c
     11933    call 01976h                               ; e8 8f 9c
    1193611934    add sp, strict byte 00004h                ; 83 c4 04
    1193711935    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11938     jne short 07cbbh                          ; 75 11
     11936    jne short 07d01h                          ; 75 11
    1193911937    mov dx, strict word 00001h                ; ba 01 00
    1194011938    mov ax, 000c0h                            ; b8 c0 00
    11941     call 078f6h                               ; e8 43 fc
     11939    call 0793ch                               ; e8 43 fc
    1194211940    cmp AL, strict byte 086h                  ; 3c 86
    11943     jne short 07cbbh                          ; 75 04
     11941    jne short 07d01h                          ; 75 04
    1194411942    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1194511943    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11946     je short 07c8dh                           ; 74 cc
     11944    je short 07cd3h                           ; 74 cc
    1194711945    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1194811946    mov ax, 00100h                            ; b8 00 01
     
    1196511963    mov ax, strict word 00002h                ; b8 02 00
    1196611964    push ax                                   ; 50
    11967     call 01976h                               ; e8 89 9c
     11965    call 01976h                               ; e8 43 9c
    1196811966    add sp, strict byte 00004h                ; 83 c4 04
    11969     call 079d2h                               ; e8 df fc
     11967    call 07a18h                               ; e8 df fc
    1197011968    mov ax, 00ab1h                            ; b8 b1 0a
    1197111969    push ax                                   ; 50
    1197211970    mov ax, strict word 00002h                ; b8 02 00
    1197311971    push ax                                   ; 50
    11974     call 01976h                               ; e8 78 9c
     11972    call 01976h                               ; e8 32 9c
    1197511973    add sp, strict byte 00004h                ; 83 c4 04
    1197611974    mov dx, strict word 00001h                ; ba 01 00
    1197711975    mov ax, strict word 00040h                ; b8 40 00
    11978     call 078f6h                               ; e8 ec fb
     11976    call 0793ch                               ; e8 ec fb
    1197911977    mov cl, al                                ; 88 c1
    1198011978    test al, al                               ; 84 c0
    11981     je short 07d01h                           ; 74 f1
     11979    je short 07d47h                           ; 74 f1
    1198211980    cmp AL, strict byte 030h                  ; 3c 30
    11983     je short 07d64h                           ; 74 50
     11981    je short 07daah                           ; 74 50
    1198411982    cmp cl, 002h                              ; 80 f9 02
    11985     jc short 07d3dh                           ; 72 24
     11983    jc short 07d83h                           ; 72 24
    1198611984    cmp cl, 009h                              ; 80 f9 09
    11987     jnbe short 07d3dh                         ; 77 1f
     11985    jnbe short 07d83h                         ; 77 1f
    1198811986    mov al, cl                                ; 88 c8
    1198911987    xor ah, ah                                ; 30 e4
    11990     call 07b2ch                               ; e8 07 fe
     11988    call 07b72h                               ; e8 07 fe
    1199111989    cmp AL, strict byte 0ffh                  ; 3c ff
    11992     jne short 07d2bh                          ; 75 02
    11993     jmp short 07d01h                          ; eb d6
     11990    jne short 07d71h                          ; 75 02
     11991    jmp short 07d47h                          ; eb d6
    1199411992    mov bl, al                                ; 88 c3
    1199511993    xor bh, bh                                ; 30 ff
    1199611994    mov dx, 0037ch                            ; ba 7c 03
    1199711995    mov ax, si                                ; 89 f0
    11998     call 01660h                               ; e8 29 99
     11996    call 01660h                               ; e8 e3 98
    1199911997    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    12000     jmp short 07d64h                          ; eb 27
     11998    jmp short 07daah                          ; eb 27
    1200111999    cmp cl, 02eh                              ; 80 f9 2e
    12002     je short 07d52h                           ; 74 10
     12000    je short 07d98h                           ; 74 10
    1200312001    cmp cl, 026h                              ; 80 f9 26
    12004     je short 07d58h                           ; 74 11
     12002    je short 07d9eh                           ; 74 11
    1200512003    cmp cl, 021h                              ; 80 f9 21
    12006     jne short 07d5eh                          ; 75 12
     12004    jne short 07da4h                          ; 75 12
    1200712005    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    12008     jmp short 07d64h                          ; eb 12
     12006    jmp short 07daah                          ; eb 12
    1200912007    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    12010     jmp short 07d64h                          ; eb 0c
     12008    jmp short 07daah                          ; eb 0c
    1201112009    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    12012     jmp short 07d64h                          ; eb 06
     12010    jmp short 07daah                          ; eb 06
    1201312011    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    12014     je short 07d01h                           ; 74 9d
     12012    je short 07d47h                           ; 74 9d
    1201512013    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1201612014    xor bh, bh                                ; 30 ff
    1201712015    mov dx, 0037dh                            ; ba 7d 03
    1201812016    mov ax, si                                ; 89 f0
    12019     call 01660h                               ; e8 ef 98
     12017    call 01660h                               ; e8 a9 98
    1202012018    mov AL, strict byte 003h                  ; b0 03
    1202112019    mov AH, strict byte 000h                  ; b4 00
     
    1203012028    push DS                                   ; 1e
    1203112029    mov ds, ax                                ; 8e d8
    12032     call 0ede3h                               ; e8 5b 70
     12030    call 0ede3h                               ; e8 15 70
    1203312031    pop DS                                    ; 1f
    1203412032    pop bp                                    ; 5d
     
    1204112039    pop bp                                    ; 5d
    1204212040    retn                                      ; c3
    12043 delay_boot_:                                 ; 0xf7d94 LB 0x72
     12041delay_boot_:                                 ; 0xf7dda LB 0x72
    1204412042    push bp                                   ; 55
    1204512043    mov bp, sp                                ; 89 e5
     
    1205112049    mov bx, ax                                ; 89 c3
    1205212050    test ax, ax                               ; 85 c0
    12053     je short 07dfch                           ; 74 5a
     12051    je short 07e42h                           ; 74 5a
    1205412052    mov AL, strict byte 034h                  ; b0 34
    1205512053    out strict byte 043h, AL                  ; e6 43
     
    1206312061    mov ax, strict word 00002h                ; b8 02 00
    1206412062    push ax                                   ; 50
    12065     call 01976h                               ; e8 bc 9b
     12063    call 01976h                               ; e8 76 9b
    1206612064    add sp, strict byte 00006h                ; 83 c4 06
    1206712065    test bx, bx                               ; 85 db
    12068     jbe short 07ddbh                          ; 76 1a
     12066    jbe short 07e21h                          ; 76 1a
    1206912067    push bx                                   ; 53
    1207012068    mov ax, 00b19h                            ; b8 19 0b
     
    1207212070    mov ax, strict word 00002h                ; b8 02 00
    1207312071    push ax                                   ; 50
    12074     call 01976h                               ; e8 a9 9b
     12072    call 01976h                               ; e8 63 9b
    1207512073    add sp, strict byte 00006h                ; 83 c4 06
    1207612074    xor dx, dx                                ; 31 d2
    1207712075    mov ax, strict word 00040h                ; b8 40 00
    12078     call 078f6h                               ; e8 1e fb
     12076    call 0793ch                               ; e8 1e fb
    1207912077    dec bx                                    ; 4b
    12080     jmp short 07dbdh                          ; eb e2
     12078    jmp short 07e03h                          ; eb e2
    1208112079    mov bx, 00a49h                            ; bb 49 0a
    1208212080    push bx                                   ; 53
    1208312081    mov bx, strict word 00002h                ; bb 02 00
    1208412082    push bx                                   ; 53
    12085     call 01976h                               ; e8 90 9b
     12083    call 01976h                               ; e8 4a 9b
    1208612084    add sp, strict byte 00004h                ; 83 c4 04
    1208712085    mov AL, strict byte 034h                  ; b0 34
     
    1209412092    push DS                                   ; 1e
    1209512093    mov ds, ax                                ; 8e d8
    12096     call 0ede3h                               ; e8 e9 6f
     12094    call 0ede3h                               ; e8 a3 6f
    1209712095    pop DS                                    ; 1f
    1209812096    pop bp                                    ; 5d
     
    1210512103    pop bp                                    ; 5d
    1210612104    retn                                      ; c3
    12107 scsi_cmd_data_in_:                           ; 0xf7e06 LB 0xd5
     12105scsi_cmd_data_in_:                           ; 0xf7e4c LB 0xd5
    1210812106    push bp                                   ; 55
    1210912107    mov bp, sp                                ; 89 e5
     
    1212112119    ; sub ah, ah                                ; 2a e4
    1212212120    test AL, strict byte 001h                 ; a8 01
    12123     jne short 07e1ch                          ; 75 f7
     12121    jne short 07e62h                          ; 75 f7
    1212412122    mov al, byte [bp+004h]                    ; 8a 46 04
    1212512123    cmp AL, strict byte 010h                  ; 3c 10
    12126     jne short 07e30h                          ; 75 04
     12124    jne short 07e76h                          ; 75 04
    1212712125    xor ax, ax                                ; 31 c0
    12128     jmp short 07e32h                          ; eb 02
     12126    jmp short 07e78h                          ; eb 02
    1212912127    xor ah, ah                                ; 30 e4
    1213012128    mov di, ax                                ; 89 c7
     
    1213412132    shr dx, 1                                 ; d1 ea
    1213512133    rcr ax, 1                                 ; d1 d8
    12136     loop 07e3ch                               ; e2 fa
     12134    loop 07e82h                               ; e2 fa
    1213712135    mov cx, ax                                ; 89 c1
    1213812136    and cx, 000f0h                            ; 81 e1 f0 00
     
    1215212150    shr dx, 1                                 ; d1 ea
    1215312151    rcr ax, 1                                 ; d1 d8
    12154     loop 07e61h                               ; e2 fa
     12152    loop 07ea7h                               ; e2 fa
    1215512153    mov dx, si                                ; 89 f2
    1215612154    out DX, AL                                ; ee
     
    1215912157    xor ah, ah                                ; 30 e4
    1216012158    cmp cx, ax                                ; 39 c1
    12161     jnc short 07e83h                          ; 73 0e
     12159    jnc short 07ec9h                          ; 73 0e
    1216212160    les di, [bp-00ah]                         ; c4 7e f6
    1216312161    add di, cx                                ; 01 cf
     
    1216612164    out DX, AL                                ; ee
    1216712165    inc cx                                    ; 41
    12168     jmp short 07e6ch                          ; eb e9
     12166    jmp short 07eb2h                          ; eb e9
    1216912167    mov dx, si                                ; 89 f2
    1217012168    in AL, DX                                 ; ec
     
    1217212170    ; sub ah, ah                                ; 2a e4
    1217312171    test AL, strict byte 001h                 ; a8 01
    12174     jne short 07e83h                          ; 75 f7
     12172    jne short 07ec9h                          ; 75 f7
    1217512173    test AL, strict byte 002h                 ; a8 02
    12176     je short 07e9eh                           ; 74 0e
     12174    je short 07ee4h                           ; 74 0e
    1217712175    lea dx, [si+003h]                         ; 8d 54 03
    1217812176    xor al, al                                ; 30 c0
     
    1218212180    ; sub ah, ah                                ; 2a e4
    1218312181    mov di, strict word 00004h                ; bf 04 00
    12184     jmp short 07ed0h                          ; eb 32
     12182    jmp short 07f16h                          ; eb 32
    1218512183    lea dx, [si+001h]                         ; 8d 54 01
    1218612184    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12187     jne short 07eadh                          ; 75 06
     12185    jne short 07ef3h                          ; 75 06
    1218812186    cmp bx, 08000h                            ; 81 fb 00 80
    12189     jbe short 07ec7h                          ; 76 1a
     12187    jbe short 07f0dh                          ; 76 1a
    1219012188    mov cx, 08000h                            ; b9 00 80
    1219112189    les di, [bp+006h]                         ; c4 7e 06
     
    1219612194    add ax, 00800h                            ; 05 00 08
    1219712195    mov word [bp+008h], ax                    ; 89 46 08
    12198     jmp short 07e9eh                          ; eb d7
     12196    jmp short 07ee4h                          ; eb d7
    1219912197    mov cx, bx                                ; 89 d9
    1220012198    les di, [bp+006h]                         ; c4 7e 06
     
    1220712205    pop bp                                    ; 5d
    1220812206    retn 0000ah                               ; c2 0a 00
    12209 scsi_cmd_data_out_:                          ; 0xf7edb LB 0xd5
     12207scsi_cmd_data_out_:                          ; 0xf7f21 LB 0xd5
    1221012208    push bp                                   ; 55
    1221112209    mov bp, sp                                ; 89 e5
     
    1222312221    ; sub ah, ah                                ; 2a e4
    1222412222    test AL, strict byte 001h                 ; a8 01
    12225     jne short 07ef1h                          ; 75 f7
     12223    jne short 07f37h                          ; 75 f7
    1222612224    mov al, byte [bp+004h]                    ; 8a 46 04
    1222712225    cmp AL, strict byte 010h                  ; 3c 10
    12228     jne short 07f05h                          ; 75 04
     12226    jne short 07f4bh                          ; 75 04
    1222912227    xor ax, ax                                ; 31 c0
    12230     jmp short 07f07h                          ; eb 02
     12228    jmp short 07f4dh                          ; eb 02
    1223112229    xor ah, ah                                ; 30 e4
    1223212230    mov si, ax                                ; 89 c6
     
    1223612234    shr dx, 1                                 ; d1 ea
    1223712235    rcr ax, 1                                 ; d1 d8
    12238     loop 07f11h                               ; e2 fa
     12236    loop 07f57h                               ; e2 fa
    1223912237    mov cx, ax                                ; 89 c1
    1224012238    and cx, 000f0h                            ; 81 e1 f0 00
     
    1225412252    shr dx, 1                                 ; d1 ea
    1225512253    rcr ax, 1                                 ; d1 d8
    12256     loop 07f36h                               ; e2 fa
     12254    loop 07f7ch                               ; e2 fa
    1225712255    mov dx, di                                ; 89 fa
    1225812256    out DX, AL                                ; ee
     
    1226112259    xor ah, ah                                ; 30 e4
    1226212260    cmp cx, ax                                ; 39 c1
    12263     jnc short 07f58h                          ; 73 0e
     12261    jnc short 07f9eh                          ; 73 0e
    1226412262    les si, [bp-00ah]                         ; c4 76 f6
    1226512263    add si, cx                                ; 01 ce
     
    1226812266    out DX, AL                                ; ee
    1226912267    inc cx                                    ; 41
    12270     jmp short 07f41h                          ; eb e9
     12268    jmp short 07f87h                          ; eb e9
    1227112269    lea dx, [di+001h]                         ; 8d 55 01
    1227212270    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12273     jne short 07f67h                          ; 75 06
     12271    jne short 07fadh                          ; 75 06
    1227412272    cmp bx, 08000h                            ; 81 fb 00 80
    12275     jbe short 07f82h                          ; 76 1b
     12273    jbe short 07fc8h                          ; 76 1b
    1227612274    mov cx, 08000h                            ; b9 00 80
    1227712275    les si, [bp+006h]                         ; c4 76 06
     
    1228312281    add ax, 00800h                            ; 05 00 08
    1228412282    mov word [bp+008h], ax                    ; 89 46 08
    12285     jmp short 07f58h                          ; eb d6
     12283    jmp short 07f9eh                          ; eb d6
    1228612284    mov cx, bx                                ; 89 d9
    1228712285    les si, [bp+006h]                         ; c4 76 06
     
    1229312291    ; sub ah, ah                                ; 2a e4
    1229412292    test AL, strict byte 001h                 ; a8 01
    12295     jne short 07f8ah                          ; 75 f7
     12293    jne short 07fd0h                          ; 75 f7
    1229612294    test AL, strict byte 002h                 ; a8 02
    12297     je short 07fa5h                           ; 74 0e
     12295    je short 07febh                           ; 74 0e
    1229812296    lea dx, [di+003h]                         ; 8d 55 03
    1229912297    xor al, al                                ; 30 c0
     
    1230312301    ; sub ah, ah                                ; 2a e4
    1230412302    mov ax, strict word 00004h                ; b8 04 00
    12305     jmp short 07fa7h                          ; eb 02
     12303    jmp short 07fedh                          ; eb 02
    1230612304    xor ax, ax                                ; 31 c0
    1230712305    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1231012308    pop bp                                    ; 5d
    1231112309    retn 0000ah                               ; c2 0a 00
    12312 @scsi_read_sectors:                          ; 0xf7fb0 LB 0xe9
     12310@scsi_read_sectors:                          ; 0xf7ff6 LB 0xe9
    1231312311    push bp                                   ; 55
    1231412312    mov bp, sp                                ; 89 e5
     
    1232212320    mov byte [bp-006h], al                    ; 88 46 fa
    1232312321    cmp AL, strict byte 004h                  ; 3c 04
    12324     jbe short 07fe0h                          ; 76 15
     12322    jbe short 08026h                          ; 76 15
    1232512323    xor ah, ah                                ; 30 e4
    1232612324    push ax                                   ; 50
     
    1233112329    mov ax, strict word 00007h                ; b8 07 00
    1233212330    push ax                                   ; 50
    12333     call 01976h                               ; e8 99 99
     12331    call 01976h                               ; e8 53 99
    1233412332    add sp, strict byte 00008h                ; 83 c4 08
    1233512333    mov es, [bp+006h]                         ; 8e 46 06
     
    1237212370    sal word [bp-00ah], 1                     ; d1 66 f6
    1237312371    rcl word [bp-008h], 1                     ; d1 56 f8
    12374     loop 0804bh                               ; e2 f8
     12372    loop 08091h                               ; e2 f8
    1237512373    push word [bp-008h]                       ; ff 76 f8
    1237612374    push word [bp-00ah]                       ; ff 76 f6
     
    1238312381    mov cx, ss                                ; 8c d1
    1238412382    lea bx, [bp-01ah]                         ; 8d 5e e6
    12385     call 07e06h                               ; e8 95 fd
     12383    call 07e4ch                               ; e8 95 fd
    1238612384    mov ah, al                                ; 88 c4
    1238712385    test al, al                               ; 84 c0
    12388     jne short 0808ch                          ; 75 15
     12386    jne short 080d2h                          ; 75 15
    1238912387    mov es, [bp+006h]                         ; 8e 46 06
    1239012388    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1240012398    pop bp                                    ; 5d
    1240112399    retn 00004h                               ; c2 04 00
    12402 @scsi_write_sectors:                         ; 0xf8099 LB 0xe9
     12400@scsi_write_sectors:                         ; 0xf80df LB 0xe9
    1240312401    push bp                                   ; 55
    1240412402    mov bp, sp                                ; 89 e5
     
    1241212410    mov byte [bp-006h], al                    ; 88 46 fa
    1241312411    cmp AL, strict byte 004h                  ; 3c 04
    12414     jbe short 080c9h                          ; 76 15
     12412    jbe short 0810fh                          ; 76 15
    1241512413    xor ah, ah                                ; 30 e4
    1241612414    push ax                                   ; 50
     
    1242112419    mov ax, strict word 00007h                ; b8 07 00
    1242212420    push ax                                   ; 50
    12423     call 01976h                               ; e8 b0 98
     12421    call 01976h                               ; e8 6a 98
    1242412422    add sp, strict byte 00008h                ; 83 c4 08
    1242512423    mov es, [bp+006h]                         ; 8e 46 06
     
    1246212460    sal word [bp-00ah], 1                     ; d1 66 f6
    1246312461    rcl word [bp-008h], 1                     ; d1 56 f8
    12464     loop 08134h                               ; e2 f8
     12462    loop 0817ah                               ; e2 f8
    1246512463    push word [bp-008h]                       ; ff 76 f8
    1246612464    push word [bp-00ah]                       ; ff 76 f6
     
    1247312471    mov cx, ss                                ; 8c d1
    1247412472    lea bx, [bp-01ah]                         ; 8d 5e e6
    12475     call 07edbh                               ; e8 81 fd
     12473    call 07f21h                               ; e8 81 fd
    1247612474    mov ah, al                                ; 88 c4
    1247712475    test al, al                               ; 84 c0
    12478     jne short 08175h                          ; 75 15
     12476    jne short 081bbh                          ; 75 15
    1247912477    mov es, [bp+006h]                         ; 8e 46 06
    1248012478    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1249012488    pop bp                                    ; 5d
    1249112489    retn 00004h                               ; c2 04 00
    12492 scsi_cmd_packet_:                            ; 0xf8182 LB 0x170
     12490scsi_cmd_packet_:                            ; 0xf81c8 LB 0x170
    1249312491    push bp                                   ; 55
    1249412492    mov bp, sp                                ; 89 e5
     
    1250212500    mov dx, strict word 0000eh                ; ba 0e 00
    1250312501    mov ax, strict word 00040h                ; b8 40 00
    12504     call 0166eh                               ; e8 d0 94
     12502    call 0166eh                               ; e8 8a 94
    1250512503    mov si, 00122h                            ; be 22 01
    1250612504    mov word [bp-00ch], ax                    ; 89 46 f4
    1250712505    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12508     jne short 081cdh                          ; 75 23
     12506    jne short 08213h                          ; 75 23
    1250912507    mov bx, 00da0h                            ; bb a0 0d
    1251012508    mov cx, ds                                ; 8c d9
    1251112509    mov ax, strict word 00004h                ; b8 04 00
    12512     call 01933h                               ; e8 7e 97
     12510    call 01933h                               ; e8 38 97
    1251312511    mov ax, 00b62h                            ; b8 62 0b
    1251412512    push ax                                   ; 50
     
    1251712515    mov ax, strict word 00004h                ; b8 04 00
    1251812516    push ax                                   ; 50
    12519     call 01976h                               ; e8 b2 97
     12517    call 01976h                               ; e8 6c 97
    1252012518    add sp, strict byte 00006h                ; 83 c4 06
    1252112519    mov dx, strict word 00001h                ; ba 01 00
    12522     jmp near 082e7h                           ; e9 1a 01
     12520    jmp near 0832dh                           ; e9 1a 01
    1252312521    sub di, strict byte 00008h                ; 83 ef 08
    1252412522    sal di, 1                                 ; d1 e7
     
    1253512533    ; sub ah, ah                                ; 2a e4
    1253612534    test AL, strict byte 001h                 ; a8 01
    12537     jne short 081eah                          ; 75 f7
     12535    jne short 08230h                          ; 75 f7
    1253812536    xor dx, bx                                ; 31 da
    1253912537    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1255112549    shr dx, 1                                 ; d1 ea
    1255212550    rcr ax, 1                                 ; d1 d8
    12553     loop 08215h                               ; e2 fa
     12551    loop 0825bh                               ; e2 fa
    1255412552    and ax, 000f0h                            ; 25 f0 00
    1255512553    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1257012568    shr dx, 1                                 ; d1 ea
    1257112569    rcr ax, 1                                 ; d1 d8
    12572     loop 0823dh                               ; e2 fa
     12570    loop 08283h                               ; e2 fa
    1257312571    mov dx, bx                                ; 89 da
    1257412572    out DX, AL                                ; ee
     
    1257712575    xor ah, ah                                ; 30 e4
    1257812576    cmp cx, ax                                ; 39 c1
    12579     jnc short 08262h                          ; 73 11
     12577    jnc short 082a8h                          ; 73 11
    1258012578    mov es, [bp-00ah]                         ; 8e 46 f6
    1258112579    mov di, word [bp-00eh]                    ; 8b 7e f2
     
    1258512583    out DX, AL                                ; ee
    1258612584    inc cx                                    ; 41
    12587     jmp short 08248h                          ; eb e6
     12585    jmp short 0828eh                          ; eb e6
    1258812586    mov dx, bx                                ; 89 da
    1258912587    in AL, DX                                 ; ec
     
    1259112589    ; sub ah, ah                                ; 2a e4
    1259212590    test AL, strict byte 001h                 ; a8 01
    12593     jne short 08262h                          ; 75 f7
     12591    jne short 082a8h                          ; 75 f7
    1259412592    test AL, strict byte 002h                 ; a8 02
    12595     je short 0827dh                           ; 74 0e
     12593    je short 082c3h                           ; 74 0e
    1259612594    lea dx, [bx+003h]                         ; 8d 57 03
    1259712595    xor al, al                                ; 30 c0
     
    1260112599    ; sub ah, ah                                ; 2a e4
    1260212600    mov dx, strict word 00003h                ; ba 03 00
    12603     jmp short 082e7h                          ; eb 6a
     12601    jmp short 0832dh                          ; eb 6a
    1260412602    mov ax, word [bp+004h]                    ; 8b 46 04
    1260512603    test ax, ax                               ; 85 c0
    12606     je short 0828ch                           ; 74 08
     12604    je short 082d2h                           ; 74 08
    1260712605    lea dx, [bx+001h]                         ; 8d 57 01
    1260812606    mov cx, ax                                ; 89 c1
    1260912607    in AL, DX                                 ; ec
    12610     loop 08289h                               ; e2 fd
     12608    loop 082cfh                               ; e2 fd
    1261112609    mov ax, word [bp+006h]                    ; 8b 46 06
    1261212610    mov es, [bp-00ch]                         ; 8e 46 f4
     
    1261612614    lea ax, [bx+001h]                         ; 8d 47 01
    1261712615    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12618     jne short 082adh                          ; 75 07
     12616    jne short 082f3h                          ; 75 07
    1261912617    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12620     jbe short 082cah                          ; 76 1d
     12618    jbe short 08310h                          ; 76 1d
    1262112619    mov dx, ax                                ; 89 c2
    1262212620    mov cx, 08000h                            ; b9 00 80
     
    1262812626    add ax, 00800h                            ; 05 00 08
    1262912627    mov word [bp+00eh], ax                    ; 89 46 0e
    12630     jmp short 0829dh                          ; eb d3
     12628    jmp short 082e3h                          ; eb d3
    1263112629    mov dx, ax                                ; 89 c2
    1263212630    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1263512633    mov es, [bp-00ch]                         ; 8e 46 f4
    1263612634    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12637     je short 082e5h                           ; 74 07
     12635    je short 0832bh                           ; 74 07
    1263812636    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1263912637    in AL, DX                                 ; ec
    12640     loop 082e2h                               ; e2 fd
     12638    loop 08328h                               ; e2 fd
    1264112639    xor dx, dx                                ; 31 d2
    1264212640    mov ax, dx                                ; 89 d0
     
    1264612644    pop bp                                    ; 5d
    1264712645    retn 0000ch                               ; c2 0c 00
    12648 scsi_enumerate_attached_devices_:            ; 0xf82f2 LB 0x4cb
     12646scsi_enumerate_attached_devices_:            ; 0xf8338 LB 0x4cb
    1264912647    push bp                                   ; 55
    1265012648    mov bp, sp                                ; 89 e5
     
    1265812656    mov dx, strict word 0000eh                ; ba 0e 00
    1265912657    mov ax, strict word 00040h                ; b8 40 00
    12660     call 0166eh                               ; e8 66 93
     12658    call 0166eh                               ; e8 20 93
    1266112659    mov di, 00122h                            ; bf 22 01
    1266212660    mov word [bp-016h], ax                    ; 89 46 ea
    1266312661    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    12664     jmp near 08730h                           ; e9 1a 04
     12662    jmp near 08776h                           ; e9 1a 04
    1266512663    cmp AL, strict byte 004h                  ; 3c 04
    12666     jc short 0831dh                           ; 72 03
    12667     jmp near 087b3h                           ; e9 96 04
     12664    jc short 08363h                           ; 72 03
     12665    jmp near 087f9h                           ; e9 96 04
    1266812666    mov cx, strict word 00010h                ; b9 10 00
    1266912667    xor bx, bx                                ; 31 db
    1267012668    mov dx, ss                                ; 8c d2
    1267112669    lea ax, [bp-048h]                         ; 8d 46 b8
    12672     call 0a080h                               ; e8 56 1d
     12670    call 0a0c0h                               ; e8 50 1d
    1267312671    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1267412672    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1268812686    lea bx, [bp-048h]                         ; 8d 5e b8
    1268912687    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    12690     call 07e06h                               ; e8 ae fa
     12688    call 07e4ch                               ; e8 ae fa
    1269112689    test al, al                               ; 84 c0
    12692     je short 0836eh                           ; 74 12
     12690    je short 083b4h                           ; 74 12
    1269312691    mov ax, 00b92h                            ; b8 92 0b
    1269412692    push ax                                   ; 50
     
    1269712695    mov ax, strict word 00007h                ; b8 07 00
    1269812696    push ax                                   ; 50
    12699     call 01976h                               ; e8 0b 96
     12697    call 01976h                               ; e8 c5 95
    1270012698    add sp, strict byte 00006h                ; 83 c4 06
    1270112699    mov ax, word [bp-00242h]                  ; 8b 86 be fd
     
    1272912727    sal ax, 1                                 ; d1 e0
    1273012728    rcl dx, 1                                 ; d1 d2
    12731     loop 083bch                               ; e2 fa
     12729    loop 08402h                               ; e2 fa
    1273212730    or bx, ax                                 ; 09 c3
    1273312731    or dx, si                                 ; 09 f2
     
    1273712735    mov word [bp-01ch], bx                    ; 89 5e e4
    1273812736    test dx, dx                               ; 85 d2
    12739     jne short 083dbh                          ; 75 06
     12737    jne short 08421h                          ; 75 06
    1274012738    cmp bx, 00200h                            ; 81 fb 00 02
    12741     je short 083feh                           ; 74 23
     12739    je short 08444h                           ; 74 23
    1274212740    mov bx, 00da0h                            ; bb a0 0d
    1274312741    mov cx, ds                                ; 8c d9
    1274412742    mov ax, strict word 00004h                ; b8 04 00
    12745     call 01933h                               ; e8 4d 95
     12743    call 01933h                               ; e8 07 95
    1274612744    push dx                                   ; 52
    1274712745    push word [bp-01ch]                       ; ff 76 e4
     
    1275112749    mov ax, strict word 00004h                ; b8 04 00
    1275212750    push ax                                   ; 50
    12753     call 01976h                               ; e8 7e 95
     12751    call 01976h                               ; e8 38 95
    1275412752    add sp, strict byte 0000ah                ; 83 c4 0a
    12755     jmp near 08724h                           ; e9 26 03
     12753    jmp near 0876ah                           ; e9 26 03
    1275612754    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1275712755    cmp AL, strict byte 001h                  ; 3c 01
    12758     jc short 08411h                           ; 72 0c
    12759     jbe short 08419h                          ; 76 12
     12756    jc short 08457h                           ; 72 0c
     12757    jbe short 0845fh                          ; 76 12
    1276012758    cmp AL, strict byte 003h                  ; 3c 03
    12761     je short 08421h                           ; 74 16
     12759    je short 08467h                           ; 74 16
    1276212760    cmp AL, strict byte 002h                  ; 3c 02
    12763     je short 0841dh                           ; 74 0e
    12764     jmp short 08468h                          ; eb 57
     12761    je short 08463h                           ; 74 0e
     12762    jmp short 084aeh                          ; eb 57
    1276512763    test al, al                               ; 84 c0
    12766     jne short 08468h                          ; 75 53
     12764    jne short 084aeh                          ; 75 53
    1276712765    mov BL, strict byte 090h                  ; b3 90
    12768     jmp short 08423h                          ; eb 0a
     12766    jmp short 08469h                          ; eb 0a
    1276912767    mov BL, strict byte 098h                  ; b3 98
    12770     jmp short 08423h                          ; eb 06
     12768    jmp short 08469h                          ; eb 06
    1277112769    mov BL, strict byte 0a0h                  ; b3 a0
    12772     jmp short 08423h                          ; eb 02
     12770    jmp short 08469h                          ; eb 02
    1277312771    mov BL, strict byte 0a8h                  ; b3 a8
    1277412772    mov cl, bl                                ; 88 d9
     
    1277612774    xor ch, ch                                ; 30 ed
    1277712775    mov ax, cx                                ; 89 c8
    12778     call 016aeh                               ; e8 7f 92
     12776    call 016aeh                               ; e8 39 92
    1277912777    test al, al                               ; 84 c0
    12780     je short 08468h                           ; 74 35
     12778    je short 084aeh                           ; 74 35
    1278112779    mov al, bl                                ; 88 d8
    1278212780    db  0feh, 0c0h
    1278312781    ; inc al                                    ; fe c0
    1278412782    xor ah, ah                                ; 30 e4
    12785     call 016aeh                               ; e8 72 92
     12783    call 016aeh                               ; e8 2c 92
    1278612784    mov dh, al                                ; 88 c6
    1278712785    mov al, bl                                ; 88 d8
    1278812786    xor ah, ah                                ; 30 e4
    12789     call 016aeh                               ; e8 69 92
     12787    call 016aeh                               ; e8 23 92
    1279012788    mov ah, dh                                ; 88 f4
    1279112789    cwd                                       ; 99
     
    1279512793    add AL, strict byte 002h                  ; 04 02
    1279612794    xor ah, ah                                ; 30 e4
    12797     call 016aeh                               ; e8 58 92
     12795    call 016aeh                               ; e8 12 92
    1279812796    xor ah, ah                                ; 30 e4
    1279912797    mov word [bp-028h], ax                    ; 89 46 d8
    1280012798    mov ax, cx                                ; 89 c8
    12801     call 016aeh                               ; e8 4e 92
     12799    call 016aeh                               ; e8 08 92
    1280212800    xor ah, ah                                ; 30 e4
    1280312801    mov word [bp-01ah], ax                    ; 89 46 e6
    12804     jmp near 08555h                           ; e9 ed 00
     12802    jmp near 0859bh                           ; e9 ed 00
    1280512803    mov ax, word [bp-020h]                    ; 8b 46 e0
    1280612804    mov bx, word [bp-022h]                    ; 8b 5e de
     
    1280812806    mov dx, word [bp-024h]                    ; 8b 56 dc
    1280912807    mov si, strict word 0000ch                ; be 0c 00
    12810     call 0a060h                               ; e8 e6 1b
     12808    call 0a0a0h                               ; e8 e0 1b
    1281112809    mov word [bp-02ah], ax                    ; 89 46 d6
    1281212810    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1281512813    mov ax, word [bp-020h]                    ; 8b 46 e0
    1281612814    test ax, ax                               ; 85 c0
    12817     jnbe short 084a2h                         ; 77 15
    12818     je short 08492h                           ; 74 03
    12819     jmp near 08515h                           ; e9 83 00
     12815    jnbe short 084e8h                         ; 77 15
     12816    je short 084d8h                           ; 74 03
     12817    jmp near 0855bh                           ; e9 83 00
    1282012818    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12821     jnbe short 084a2h                         ; 77 0a
    12822     jne short 0848fh                          ; 75 f5
     12819    jnbe short 084e8h                         ; 77 0a
     12820    jne short 084d5h                          ; 75 f5
    1282312821    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12824     jnbe short 084a2h                         ; 77 02
    12825     jne short 08515h                          ; 75 73
     12822    jnbe short 084e8h                         ; 77 02
     12823    jne short 0855bh                          ; 75 73
    1282612824    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
    1282712825    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
     
    1283012828    mov dx, word [bp-024h]                    ; 8b 56 dc
    1283112829    mov si, strict word 00006h                ; be 06 00
    12832     call 0a060h                               ; e8 a5 1b
     12830    call 0a0a0h                               ; e8 9f 1b
    1283312831    mov si, word [bp-018h]                    ; 8b 76 e8
    1283412832    add si, dx                                ; 01 d6
     
    1284812846    mov dx, si                                ; 89 f2
    1284912847    mov si, strict word 00008h                ; be 08 00
    12850     call 0a060h                               ; e8 75 1b
     12848    call 0a0a0h                               ; e8 6f 1b
    1285112849    mov word [bp-02eh], bx                    ; 89 5e d2
    1285212850    mov word [bp-030h], cx                    ; 89 4e d0
     
    1285712855    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1285812856    mov si, strict word 00010h                ; be 10 00
    12859     call 0a060h                               ; e8 5a 1b
     12857    call 0a0a0h                               ; e8 54 1b
    1286012858    mov si, word [bp-032h]                    ; 8b 76 ce
    1286112859    add si, dx                                ; 01 d6
     
    1286312861    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1286412862    adc ax, bx                                ; 11 d8
    12865     jmp short 08552h                          ; eb 3d
     12863    jmp short 08598h                          ; eb 3d
    1286612864    test ax, ax                               ; 85 c0
    12867     jnbe short 0852bh                         ; 77 12
    12868     jne short 08537h                          ; 75 1c
     12865    jnbe short 08571h                         ; 77 12
     12866    jne short 0857dh                          ; 75 1c
    1286912867    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12870     jnbe short 0852bh                         ; 77 0a
    12871     jne short 08537h                          ; 75 14
     12868    jnbe short 08571h                         ; 77 0a
     12869    jne short 0857dh                          ; 75 14
    1287212870    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12873     jnbe short 0852bh                         ; 77 02
    12874     jne short 08537h                          ; 75 0c
     12871    jnbe short 08571h                         ; 77 02
     12872    jne short 0857dh                          ; 75 0c
    1287512873    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
    1287612874    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
    12877     jmp short 08550h                          ; eb 19
     12875    jmp short 08596h                          ; eb 19
    1287812876    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
    1287912877    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
     
    1288212880    mov dx, word [bp-024h]                    ; 8b 56 dc
    1288312881    mov si, strict word 0000bh                ; be 0b 00
    12884     call 0a060h                               ; e8 10 1b
     12882    call 0a0a0h                               ; e8 0a 1b
    1288512883    mov si, dx                                ; 89 d6
    1288612884    mov word [bp-026h], cx                    ; 89 4e da
     
    1291912917    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1292012918    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    12921     jne short 085cch                          ; 75 06
     12919    jne short 08612h                          ; 75 06
    1292212920    cmp si, 00400h                            ; 81 fe 00 04
    12923     jbe short 085dah                          ; 76 0e
     12921    jbe short 08620h                          ; 76 0e
    1292412922    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1292512923    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12926     jmp short 085e2h                          ; eb 08
     12924    jmp short 08628h                          ; eb 08
    1292712925    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1292812926    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1293012928    mov cx, ds                                ; 8c d9
    1293112929    mov ax, strict word 00004h                ; b8 04 00
    12932     call 01933h                               ; e8 46 93
     12930    call 01933h                               ; e8 00 93
    1293312931    push word [bp-020h]                       ; ff 76 e0
    1293412932    push word [bp-022h]                       ; ff 76 de
     
    1294712945    mov ax, strict word 00004h                ; b8 04 00
    1294812946    push ax                                   ; 50
    12949     call 01976h                               ; e8 5f 93
     12947    call 01976h                               ; e8 19 93
    1295012948    add sp, strict byte 00018h                ; 83 c4 18
    1295112949    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1297612974    mov dx, strict word 00075h                ; ba 75 00
    1297712975    mov ax, strict word 00040h                ; b8 40 00
    12978     call 01652h                               ; e8 e5 8f
     12976    call 01652h                               ; e8 9f 8f
    1297912977    mov bl, al                                ; 88 c3
    1298012978    db  0feh, 0c3h
     
    1298312981    mov dx, strict word 00075h                ; ba 75 00
    1298412982    mov ax, strict word 00040h                ; b8 40 00
    12985     call 01660h                               ; e8 e4 8f
     12983    call 01660h                               ; e8 9e 8f
    1298612984    inc byte [bp-00ch]                        ; fe 46 f4
    12987     jmp near 08719h                           ; e9 97 00
     12985    jmp near 0875fh                           ; e9 97 00
    1298812986    mov bx, 00da0h                            ; bb a0 0d
    1298912987    mov cx, ds                                ; 8c d9
    1299012988    mov ax, strict word 00004h                ; b8 04 00
    12991     call 01933h                               ; e8 a6 92
     12989    call 01933h                               ; e8 60 92
    1299212990    push word [bp-014h]                       ; ff 76 ec
    1299312991    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1299812996    mov ax, strict word 00004h                ; b8 04 00
    1299912997    push ax                                   ; 50
    13000     call 01976h                               ; e8 d5 92
     12998    call 01976h                               ; e8 8f 92
    1300112999    add sp, strict byte 00008h                ; 83 c4 08
    1300213000    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1300413002    mov byte [bp-00eh], al                    ; 88 46 f2
    1300513003    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
    13006     je short 086b8h                           ; 74 05
     13004    je short 086feh                           ; 74 05
    1300713005    mov cx, strict word 00001h                ; b9 01 00
    13008     jmp short 086bah                          ; eb 02
     13006    jmp short 08700h                          ; eb 02
    1300913007    xor cx, cx                                ; 31 c9
    1301013008    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1304413042    inc word [bp-014h]                        ; ff 46 ec
    1304513043    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    13046     jl short 08730h                           ; 7c 03
    13047     jmp near 087b3h                           ; e9 83 00
     13044    jl short 08776h                           ; 7c 03
     13045    jmp near 087f9h                           ; e9 83 00
    1304813046    mov byte [bp-048h], 012h                  ; c6 46 b8 12
    1304913047    xor al, al                                ; 30 c0
     
    1306713065    lea bx, [bp-048h]                         ; 8d 5e b8
    1306813066    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    13069     call 07e06h                               ; e8 9e f6
     13067    call 07e4ch                               ; e8 9e f6
    1307013068    test al, al                               ; 84 c0
    13071     je short 0877eh                           ; 74 12
     13069    je short 087c4h                           ; 74 12
    1307213070    mov ax, 00b92h                            ; b8 92 0b
    1307313071    push ax                                   ; 50
     
    1307613074    mov ax, strict word 00007h                ; b8 07 00
    1307713075    push ax                                   ; 50
    13078     call 01976h                               ; e8 fb 91
     13076    call 01976h                               ; e8 b5 91
    1307913077    add sp, strict byte 00006h                ; 83 c4 06
    1308013078    mov es, [bp-016h]                         ; 8e 46 ea
     
    1308213080    mov byte [bp-00ch], al                    ; 88 46 f4
    1308313081    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13084     jne short 0879ah                          ; 75 0a
     13082    jne short 087e0h                          ; 75 0a
    1308513083    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
    13086     jne short 0879ah                          ; 75 03
    13087     jmp near 08316h                           ; e9 7c fb
     13084    jne short 087e0h                          ; 75 03
     13085    jmp near 0835ch                           ; e9 7c fb
    1308813086    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13089     je short 087a4h                           ; 74 03
    13090     jmp near 08719h                           ; e9 75 ff
     13087    je short 087eah                           ; 74 03
     13088    jmp near 0875fh                           ; e9 75 ff
    1309113089    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
    1309213090    and AL, strict byte 01fh                  ; 24 1f
    1309313091    cmp AL, strict byte 005h                  ; 3c 05
    13094     jne short 087b1h                          ; 75 03
    13095     jmp near 08682h                           ; e9 d1 fe
    13096     jmp short 087a1h                          ; eb ee
     13092    jne short 087f7h                          ; 75 03
     13093    jmp near 086c8h                           ; e9 d1 fe
     13094    jmp short 087e7h                          ; eb ee
    1309713095    lea sp, [bp-00ah]                         ; 8d 66 f6
    1309813096    pop di                                    ; 5f
     
    1310313101    pop bp                                    ; 5d
    1310413102    retn                                      ; c3
    13105 _scsi_init:                                  ; 0xf87bd LB 0x66
     13103_scsi_init:                                  ; 0xf8803 LB 0x66
    1310613104    push bp                                   ; 55
    1310713105    mov bp, sp                                ; 89 e5
    1310813106    mov dx, strict word 0000eh                ; ba 0e 00
    1310913107    mov ax, strict word 00040h                ; b8 40 00
    13110     call 0166eh                               ; e8 a5 8e
     13108    call 0166eh                               ; e8 5f 8e
    1311113109    mov bx, 00122h                            ; bb 22 01
    1311213110    mov es, ax                                ; 8e c0
     
    1311913117    ; sub ah, ah                                ; 2a e4
    1312013118    cmp AL, strict byte 055h                  ; 3c 55
    13121     jne short 087edh                          ; 75 0c
     13119    jne short 08833h                          ; 75 0c
    1312213120    xor al, al                                ; 30 c0
    1312313121    mov dx, 00433h                            ; ba 33 04
    1312413122    out DX, AL                                ; ee
    1312513123    mov ax, 00430h                            ; b8 30 04
    13126     call 082f2h                               ; e8 05 fb
     13124    call 08338h                               ; e8 05 fb
    1312713125    mov AL, strict byte 055h                  ; b0 55
    1312813126    mov dx, 00436h                            ; ba 36 04
     
    1313213130    ; sub ah, ah                                ; 2a e4
    1313313131    cmp AL, strict byte 055h                  ; 3c 55
    13134     jne short 08806h                          ; 75 0c
     13132    jne short 0884ch                          ; 75 0c
    1313513133    xor al, al                                ; 30 c0
    1313613134    mov dx, 00437h                            ; ba 37 04
    1313713135    out DX, AL                                ; ee
    1313813136    mov ax, 00434h                            ; b8 34 04
    13139     call 082f2h                               ; e8 ec fa
     13137    call 08338h                               ; e8 ec fa
    1314013138    mov AL, strict byte 055h                  ; b0 55
    1314113139    mov dx, 0043ah                            ; ba 3a 04
     
    1314513143    ; sub ah, ah                                ; 2a e4
    1314613144    cmp AL, strict byte 055h                  ; 3c 55
    13147     jne short 0881fh                          ; 75 0c
     13145    jne short 08865h                          ; 75 0c
    1314813146    xor al, al                                ; 30 c0
    1314913147    mov dx, 0043bh                            ; ba 3b 04
    1315013148    out DX, AL                                ; ee
    1315113149    mov ax, 00438h                            ; b8 38 04
    13152     call 082f2h                               ; e8 d3 fa
     13150    call 08338h                               ; e8 d3 fa
    1315313151    mov sp, bp                                ; 89 ec
    1315413152    pop bp                                    ; 5d
    1315513153    retn                                      ; c3
    13156 ahci_ctrl_extract_bits_:                     ; 0xf8823 LB 0x1c
     13154ahci_ctrl_extract_bits_:                     ; 0xf8869 LB 0x1c
    1315713155    push si                                   ; 56
    1315813156    push bp                                   ; 55
     
    1316313161    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1316413162    xor ch, ch                                ; 30 ed
    13165     jcxz 0883ah                               ; e3 06
     13163    jcxz 08880h                               ; e3 06
    1316613164    shr dx, 1                                 ; d1 ea
    1316713165    rcr ax, 1                                 ; d1 d8
    13168     loop 08834h                               ; e2 fa
     13166    loop 0887ah                               ; e2 fa
    1316913167    pop bp                                    ; 5d
    1317013168    pop si                                    ; 5e
    1317113169    retn 00002h                               ; c2 02 00
    13172 ahci_addr_to_phys_:                          ; 0xf883f LB 0x1e
     13170ahci_addr_to_phys_:                          ; 0xf8885 LB 0x1e
    1317313171    push bx                                   ; 53
    1317413172    push cx                                   ; 51
     
    1318113179    sal ax, 1                                 ; d1 e0
    1318213180    rcl dx, 1                                 ; d1 d2
    13183     loop 0884dh                               ; e2 fa
     13181    loop 08893h                               ; e2 fa
    1318413182    xor cx, cx                                ; 31 c9
    1318513183    add ax, bx                                ; 01 d8
     
    1318913187    pop bx                                    ; 5b
    1319013188    retn                                      ; c3
    13191 ahci_port_cmd_sync_:                         ; 0xf885d LB 0x159
     13189ahci_port_cmd_sync_:                         ; 0xf88a3 LB 0x159
    1319213190    push bp                                   ; 55
    1319313191    mov bp, sp                                ; 89 e5
     
    1320413202    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1320513203    cmp AL, strict byte 0ffh                  ; 3c ff
    13206     jne short 08880h                          ; 75 03
    13207     jmp near 089aeh                           ; e9 2e 01
     13204    jne short 088c6h                          ; 75 03
     13205    jmp near 089f4h                           ; e9 2e 01
    1320813206    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1320913207    xor ah, ah                                ; 30 e4
     
    1321813216    lea ax, [si+00080h]                       ; 8d 84 80 00
    1321913217    mov dx, cx                                ; 89 ca
    13220     call 0883fh                               ; e8 92 ff
     13218    call 08885h                               ; e8 92 ff
    1322113219    mov es, cx                                ; 8e c1
    1322213220    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1328613284    xchg dx, ax                               ; 92
    1328713285    test dh, 040h                             ; f6 c6 40
    13288     jne short 08940h                          ; 75 04
     13286    jne short 08986h                          ; 75 04
    1328913287    test AL, strict byte 001h                 ; a8 01
    13290     je short 08944h                           ; 74 04
     13288    je short 0898ah                           ; 74 04
    1329113289    mov AL, strict byte 001h                  ; b0 01
    13292     jmp short 08946h                          ; eb 02
     13290    jmp short 0898ch                          ; eb 02
    1329313291    xor al, al                                ; 30 c0
    1329413292    test al, al                               ; 84 c0
    13295     je short 08912h                           ; 74 c8
     13293    je short 08958h                           ; 74 c8
    1329613294    mov al, byte [bp-008h]                    ; 8a 46 f8
    1329713295    xor ah, ah                                ; 30 e4
     
    1335013348    pop bp                                    ; 5d
    1335113349    retn                                      ; c3
    13352 ahci_cmd_data_:                              ; 0xf89b6 LB 0x262
     13350ahci_cmd_data_:                              ; 0xf89fc LB 0x262
    1335313351    push bp                                   ; 55
    1335413352    mov bp, sp                                ; 89 e5
     
    1337513373    mov ax, 00080h                            ; b8 80 00
    1337613374    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13377     call 0a080h                               ; e8 8c 16
     13375    call 0a0c0h                               ; e8 86 16
    1337813376    mov es, [bp-00ah]                         ; 8e 46 f6
    1337913377    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1339313391    mov dx, word [es:si]                      ; 26 8b 14
    1339413392    mov si, strict word 00008h                ; be 08 00
    13395     call 0a060h                               ; e8 28 16
     13393    call 0a0a0h                               ; e8 22 16
    1339613394    mov es, [bp-00ah]                         ; 8e 46 f6
    1339713395    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1340413402    mov dx, word [es:si]                      ; 26 8b 14
    1340513403    mov si, strict word 00010h                ; be 10 00
    13406     call 0a060h                               ; e8 02 16
     13404    call 0a0a0h                               ; e8 fc 15
    1340713405    mov es, [bp-00ah]                         ; 8e 46 f6
    1340813406    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1341613414    mov dx, word [es:si]                      ; 26 8b 14
    1341713415    mov si, strict word 00018h                ; be 18 00
    13418     call 0a060h                               ; e8 d6 15
     13416    call 0a0a0h                               ; e8 d0 15
    1341913417    mov es, [bp-00ah]                         ; 8e 46 f6
    1342013418    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1342713425    mov dx, word [es:si]                      ; 26 8b 14
    1342813426    mov si, strict word 00020h                ; be 20 00
    13429     call 0a060h                               ; e8 b0 15
     13427    call 0a0a0h                               ; e8 aa 15
    1343013428    mov es, [bp-00ah]                         ; 8e 46 f6
    1343113429    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1343813436    mov dx, word [es:si]                      ; 26 8b 14
    1343913437    mov si, strict word 00028h                ; be 28 00
    13440     call 0a060h                               ; e8 8a 15
     13438    call 0a0a0h                               ; e8 84 15
    1344113439    mov es, [bp-00ah]                         ; 8e 46 f6
    1344213440    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1345113449    mov bx, word [bp-012h]                    ; 8b 5e ee
    1345213450    xor cx, cx                                ; 31 c9
    13453     call 0a010h                               ; e8 08 15
     13451    call 0a050h                               ; e8 02 15
    1345413452    push dx                                   ; 52
    1345513453    push ax                                   ; 50
     
    1346113459    mov ax, 0026ah                            ; b8 6a 02
    1346213460    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13463     call 09f5fh                               ; e8 3b 14
     13461    call 09fa5h                               ; e8 3b 14
    1346413462    mov es, [bp-00ah]                         ; 8e 46 f6
    1346513463    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1348513483    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1348613484    test ax, ax                               ; 85 c0
    13487     je short 08bb4h                           ; 74 39
     13485    je short 08bfah                           ; 74 39
    1348813486    dec ax                                    ; 48
    1348913487    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1350313501    mov al, byte [bp-008h]                    ; 8a 46 f8
    1350413502    cmp AL, strict byte 035h                  ; 3c 35
    13505     jne short 08bc1h                          ; 75 06
     13503    jne short 08c07h                          ; 75 06
    1350613504    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13507     jmp short 08bd8h                          ; eb 17
     13505    jmp short 08c1eh                          ; eb 17
    1350813506    cmp AL, strict byte 0a0h                  ; 3c a0
    13509     jne short 08bd4h                          ; 75 0f
     13507    jne short 08c1ah                          ; 75 0f
    1351013508    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1351113509    les bx, [bp-00eh]                         ; c4 5e f2
    1351213510    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13513     jmp short 08bd8h                          ; eb 04
     13511    jmp short 08c1eh                          ; eb 04
    1351413512    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1351513513    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1351813516    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1351913517    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13520     call 0885dh                               ; e8 73 fc
     13518    call 088a3h                               ; e8 73 fc
    1352113519    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1352213520    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1352513523    add ax, 0026ah                            ; 05 6a 02
    1352613524    mov dx, cx                                ; 89 ca
    13527     call 09fd6h                               ; e8 d7 13
     13525    call 0a01ch                               ; e8 d7 13
    1352813526    mov es, cx                                ; 8e c1
    1352913527    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1353013528    test al, al                               ; 84 c0
    13531     je short 08c0eh                           ; 74 05
     13529    je short 08c54h                           ; 74 05
    1353213530    mov ax, strict word 00004h                ; b8 04 00
    13533     jmp short 08c10h                          ; eb 02
     13531    jmp short 08c56h                          ; eb 02
    1353413532    xor ah, ah                                ; 30 e4
    1353513533    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1353913537    pop bp                                    ; 5d
    1354013538    retn                                      ; c3
    13541 ahci_port_deinit_current_:                   ; 0xf8c18 LB 0x183
     13539ahci_port_deinit_current_:                   ; 0xf8c5e LB 0x183
    1354213540    push bp                                   ; 55
    1354313541    mov bp, sp                                ; 89 e5
     
    1355413552    mov byte [bp-00ah], al                    ; 88 46 f6
    1355513553    cmp AL, strict byte 0ffh                  ; 3c ff
    13556     je short 08c9bh                           ; 74 61
     13554    je short 08ce1h                           ; 74 61
    1355713555    xor ah, ah                                ; 30 e4
    1355813556    mov CL, strict byte 007h                  ; b1 07
     
    1360013598    xchg dx, ax                               ; 92
    1360113599    test ax, 0c011h                           ; a9 11 c0
    13602     je short 08c9eh                           ; 74 07
     13600    je short 08ce4h                           ; 74 07
    1360313601    mov AL, strict byte 001h                  ; b0 01
    13604     jmp short 08ca0h                          ; eb 05
    13605     jmp near 08d92h                           ; e9 f4 00
     13602    jmp short 08ce6h                          ; eb 05
     13603    jmp near 08dd8h                           ; e9 f4 00
    1360613604    xor al, al                                ; 30 c0
    1360713605    cmp AL, strict byte 001h                  ; 3c 01
    13608     je short 08c6dh                           ; 74 c9
     13606    je short 08cb3h                           ; 74 c9
    1360913607    mov cx, strict word 00020h                ; b9 20 00
    1361013608    xor bx, bx                                ; 31 db
    1361113609    mov ax, di                                ; 89 f8
    1361213610    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13613     call 0a080h                               ; e8 cf 13
     13611    call 0a0c0h                               ; e8 c9 13
    1361413612    lea ax, [di+00080h]                       ; 8d 85 80 00
    1361513613    mov cx, strict word 00040h                ; b9 40 00
    1361613614    xor bx, bx                                ; 31 db
    1361713615    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13618     call 0a080h                               ; e8 c0 13
     13616    call 0a0c0h                               ; e8 ba 13
    1361913617    lea ax, [di+00200h]                       ; 8d 85 00 02
    1362013618    mov cx, strict word 00060h                ; b9 60 00
    1362113619    xor bx, bx                                ; 31 db
    1362213620    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13623     call 0a080h                               ; e8 b1 13
     13621    call 0a0c0h                               ; e8 ab 13
    1362413622    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1362513623    xor ah, ah                                ; 30 e4
     
    1372713725    pop bp                                    ; 5d
    1372813726    retn                                      ; c3
    13729 ahci_port_init_:                             ; 0xf8d9b LB 0x250
     13727ahci_port_init_:                             ; 0xf8de1 LB 0x250
    1373013728    push bp                                   ; 55
    1373113729    mov bp, sp                                ; 89 e5
     
    1373713735    mov word [bp-00ah], dx                    ; 89 56 f6
    1373813736    mov byte [bp-008h], bl                    ; 88 5e f8
    13739     call 08c18h                               ; e8 69 fe
     13737    call 08c5eh                               ; e8 69 fe
    1374013738    mov al, bl                                ; 88 d8
    1374113739    xor ah, ah                                ; 30 e4
     
    1378813786    xchg dx, ax                               ; 92
    1378913787    test ax, 0c011h                           ; a9 11 c0
    13790     je short 08e22h                           ; 74 04
     13788    je short 08e68h                           ; 74 04
    1379113789    mov AL, strict byte 001h                  ; b0 01
    13792     jmp short 08e24h                          ; eb 02
     13790    jmp short 08e6ah                          ; eb 02
    1379313791    xor al, al                                ; 30 c0
    1379413792    cmp AL, strict byte 001h                  ; 3c 01
    13795     je short 08dech                           ; 74 c4
     13793    je short 08e32h                           ; 74 c4
    1379613794    mov cx, strict word 00020h                ; b9 20 00
    1379713795    xor bx, bx                                ; 31 db
    1379813796    mov ax, si                                ; 89 f0
    1379913797    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13800     call 0a080h                               ; e8 4b 12
     13798    call 0a0c0h                               ; e8 45 12
    1380113799    lea ax, [si+00080h]                       ; 8d 84 80 00
    1380213800    mov cx, strict word 00040h                ; b9 40 00
    1380313801    xor bx, bx                                ; 31 db
    1380413802    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13805     call 0a080h                               ; e8 3c 12
     13803    call 0a0c0h                               ; e8 36 12
    1380613804    lea di, [si+00200h]                       ; 8d bc 00 02
    1380713805    mov cx, strict word 00060h                ; b9 60 00
     
    1380913807    mov ax, di                                ; 89 f8
    1381013808    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13811     call 0a080h                               ; e8 2b 12
     13809    call 0a0c0h                               ; e8 25 12
    1381213810    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1381313811    xor bh, bh                                ; 30 ff
     
    1382813826    mov ax, di                                ; 89 f8
    1382913827    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13830     call 0883fh                               ; e8 bb f9
     13828    call 08885h                               ; e8 bb f9
    1383113829    mov es, [bp-00ah]                         ; 8e 46 f6
    1383213830    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1387313871    mov ax, si                                ; 89 f0
    1387413872    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13875     call 0883fh                               ; e8 4f f9
     13873    call 08885h                               ; e8 4f f9
    1387613874    mov es, [bp-00ah]                         ; 8e 46 f6
    1387713875    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1397813976    pop bp                                    ; 5d
    1397913977    retn                                      ; c3
    13980 @ahci_read_sectors:                          ; 0xf8feb LB 0xaa
     13978@ahci_read_sectors:                          ; 0xf9031 LB 0xaa
    1398113979    push bp                                   ; 55
    1398213980    mov bp, sp                                ; 89 e5
     
    1398913987    sub di, strict byte 0000ch                ; 83 ef 0c
    1399013988    cmp di, strict byte 00004h                ; 83 ff 04
    13991     jbe short 09016h                          ; 76 13
     13989    jbe short 0905ch                          ; 76 13
    1399213990    push di                                   ; 57
    1399313991    mov ax, 00c62h                            ; b8 62 0c
     
    1399713995    mov ax, strict word 00007h                ; b8 07 00
    1399813996    push ax                                   ; 50
    13999     call 01976h                               ; e8 63 89
     13997    call 01976h                               ; e8 1d 89
    1400013998    add sp, strict byte 00008h                ; 83 c4 08
    1400113999    xor bx, bx                                ; 31 db
     
    1401114009    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1401214010    xor ax, ax                                ; 31 c0
    14013     call 08d9bh                               ; e8 5a fd
     14011    call 08de1h                               ; e8 5a fd
    1401414012    mov bx, strict word 00025h                ; bb 25 00
    1401514013    mov ax, si                                ; 89 f0
    1401614014    mov dx, word [bp+006h]                    ; 8b 56 06
    14017     call 089b6h                               ; e8 6a f9
     14015    call 089fch                               ; e8 6a f9
    1401814016    mov bx, ax                                ; 89 c3
    1401914017    mov es, [bp+006h]                         ; 8e 46 06
     
    1404514043    pop bp                                    ; 5d
    1404614044    retn 00004h                               ; c2 04 00
    14047 @ahci_write_sectors:                         ; 0xf9095 LB 0x88
     14045@ahci_write_sectors:                         ; 0xf90db LB 0x88
    1404814046    push bp                                   ; 55
    1404914047    mov bp, sp                                ; 89 e5
     
    1405714055    sub bx, strict byte 0000ch                ; 83 eb 0c
    1405814056    cmp bx, strict byte 00004h                ; 83 fb 04
    14059     jbe short 090c3h                          ; 76 13
     14057    jbe short 09109h                          ; 76 13
    1406014058    push bx                                   ; 53
    1406114059    mov ax, 00c93h                            ; b8 93 0c
     
    1406514063    mov ax, strict word 00007h                ; b8 07 00
    1406614064    push ax                                   ; 50
    14067     call 01976h                               ; e8 b6 88
     14065    call 01976h                               ; e8 70 88
    1406814066    add sp, strict byte 00008h                ; 83 c4 08
    1406914067    xor di, di                                ; 31 ff
     
    1407914077    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1408014078    xor ax, ax                                ; 31 c0
    14081     call 08d9bh                               ; e8 af fc
     14079    call 08de1h                               ; e8 af fc
    1408214080    mov bx, strict word 00035h                ; bb 35 00
    1408314081    mov ax, si                                ; 89 f0
    1408414082    mov dx, cx                                ; 89 ca
    14085     call 089b6h                               ; e8 c0 f8
     14083    call 089fch                               ; e8 c0 f8
    1408614084    mov dx, ax                                ; 89 c2
    1408714085    mov es, cx                                ; 8e c1
     
    1409814096    pop bp                                    ; 5d
    1409914097    retn 00004h                               ; c2 04 00
    14100 ahci_cmd_packet_:                            ; 0xf911d LB 0x18c
     14098ahci_cmd_packet_:                            ; 0xf9163 LB 0x18c
    1410114099    push bp                                   ; 55
    1410214100    mov bp, sp                                ; 89 e5
     
    1411014108    mov dx, strict word 0000eh                ; ba 0e 00
    1411114109    mov ax, strict word 00040h                ; b8 40 00
    14112     call 0166eh                               ; e8 36 85
     14110    call 0166eh                               ; e8 f0 84
    1411314111    mov si, 00122h                            ; be 22 01
    1411414112    mov word [bp-008h], ax                    ; 89 46 f8
    1411514113    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14116     jne short 09167h                          ; 75 23
     14114    jne short 091adh                          ; 75 23
    1411714115    mov bx, 00da0h                            ; bb a0 0d
    1411814116    mov cx, ds                                ; 8c d9
    1411914117    mov ax, strict word 00004h                ; b8 04 00
    14120     call 01933h                               ; e8 e4 87
     14118    call 01933h                               ; e8 9e 87
    1412114119    mov ax, 00ca6h                            ; b8 a6 0c
    1412214120    push ax                                   ; 50
     
    1412514123    mov ax, strict word 00004h                ; b8 04 00
    1412614124    push ax                                   ; 50
    14127     call 01976h                               ; e8 18 88
     14125    call 01976h                               ; e8 d2 87
    1412814126    add sp, strict byte 00006h                ; 83 c4 06
    1412914127    mov ax, strict word 00001h                ; b8 01 00
    14130     jmp near 092a0h                           ; e9 39 01
     14128    jmp near 092e6h                           ; e9 39 01
    1413114129    test byte [bp+004h], 001h                 ; f6 46 04 01
    14132     jne short 09161h                          ; 75 f4
     14130    jne short 091a7h                          ; 75 f4
    1413314131    mov bx, word [bp+006h]                    ; 8b 5e 06
    1413414132    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1413614134    sal bx, 1                                 ; d1 e3
    1413714135    rcl di, 1                                 ; d1 d7
    14138     loop 09176h                               ; e2 fa
     14136    loop 091bch                               ; e2 fa
    1413914137    mov es, [bp-008h]                         ; 8e 46 f8
    1414014138    mov word [es:si], bx                      ; 26 89 1c
     
    1415014148    mov dx, word [bp+008h]                    ; 8b 56 08
    1415114149    xor cx, cx                                ; 31 c9
    14152     call 0a030h                               ; e8 81 0e
     14150    call 0a070h                               ; e8 7b 0e
    1415314151    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1415414152    xor di, di                                ; 31 ff
     
    1416814166    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1416914167    xor ax, ax                                ; 31 c0
    14170     call 08d9bh                               ; e8 af fb
     14168    call 08de1h                               ; e8 af fb
    1417114169    mov al, byte [bp-006h]                    ; 8a 46 fa
    1417214170    xor ah, ah                                ; 30 e4
     
    1417614174    mov ax, 000c0h                            ; b8 c0 00
    1417714175    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14178     call 0a090h                               ; e8 8f 0e
     14176    call 0a0d0h                               ; e8 89 0e
    1417914177    mov es, [bp-008h]                         ; 8e 46 f8
    1418014178    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1418314181    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1418414182    test ax, ax                               ; 85 c0
    14185     je short 0923fh                           ; 74 27
     14183    je short 09285h                           ; 74 27
    1418614184    dec ax                                    ; 48
    1418714185    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1419614194    mov ax, si                                ; 89 f0
    1419714195    mov dx, word [bp-008h]                    ; 8b 56 f8
    14198     call 089b6h                               ; e8 6c f7
     14196    call 089fch                               ; e8 6c f7
    1419914197    les bx, [bp-00eh]                         ; c4 5e f2
    1420014198    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1422314221    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1422414222    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14225     jne short 0929eh                          ; 75 05
     14223    jne short 092e4h                          ; 75 05
    1422614224    mov ax, strict word 00004h                ; b8 04 00
    14227     jmp short 092a0h                          ; eb 02
     14225    jmp short 092e6h                          ; eb 02
    1422814226    xor ax, ax                                ; 31 c0
    1422914227    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1423214230    pop bp                                    ; 5d
    1423314231    retn 0000ch                               ; c2 0c 00
    14234 ahci_port_detect_device_:                    ; 0xf92a9 LB 0x4fe
     14232ahci_port_detect_device_:                    ; 0xf92ef LB 0x4fe
    1423514233    push bp                                   ; 55
    1423614234    mov bp, sp                                ; 89 e5
     
    1424814246    mov bx, word [bp-020h]                    ; 8b 5e e0
    1424914247    mov ax, si                                ; 89 f0
    14250     call 08d9bh                               ; e8 ce fa
     14248    call 08de1h                               ; e8 ce fa
    1425114249    mov dx, strict word 0000eh                ; ba 0e 00
    1425214250    mov ax, strict word 00040h                ; b8 40 00
    14253     call 0166eh                               ; e8 98 83
     14251    call 0166eh                               ; e8 52 83
    1425414252    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
    1425514253    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1432314321    mov bx, strict word 0000fh                ; bb 0f 00
    1432414322    xor cx, cx                                ; 31 c9
    14325     call 08823h                               ; e8 9f f4
     14323    call 08869h                               ; e8 9f f4
    1432614324    test ax, ax                               ; 85 c0
    14327     jne short 0938bh                          ; 75 03
    14328     jmp near 0979fh                           ; e9 14 04
     14325    jne short 093d1h                          ; 75 03
     14326    jmp near 097e5h                           ; e9 14 04
    1432914327    mov al, byte [bp-008h]                    ; 8a 46 f8
    1433014328    xor ah, ah                                ; 30 e4
     
    1435814356    xor cx, cx                                ; 31 c9
    1435914357    mov ax, di                                ; 89 f8
    14360     call 08823h                               ; e8 4d f4
     14358    call 08869h                               ; e8 4d f4
    1436114359    cmp ax, strict word 00001h                ; 3d 01 00
    14362     je short 0938bh                           ; 74 b0
     14360    je short 093d1h                           ; 74 b0
    1436314361    xor ax, ax                                ; 31 c0
    1436414362    push ax                                   ; 50
     
    1436714365    mov ax, di                                ; 89 f8
    1436814366    mov dx, word [bp-01ch]                    ; 8b 56 e4
    14369     call 08823h                               ; e8 38 f4
     14367    call 08869h                               ; e8 38 f4
    1437014368    cmp ax, strict word 00003h                ; 3d 03 00
    14371     jne short 09388h                          ; 75 98
     14369    jne short 093ceh                          ; 75 98
    1437214370    mov ax, word [bp-016h]                    ; 8b 46 ea
    1437314371    add ax, 00130h                            ; 05 30 01
     
    1439714395    mov byte [bp-00ch], al                    ; 88 46 f4
    1439814396    cmp AL, strict byte 004h                  ; 3c 04
    14399     jc short 0943ah                           ; 72 03
    14400     jmp near 0979fh                           ; e9 65 03
     14397    jc short 09480h                           ; 72 03
     14398    jmp near 097e5h                           ; e9 65 03
    1440114399    mov ax, word [bp-016h]                    ; 8b 46 ea
    1440214400    add ax, 00118h                            ; 05 18 01
     
    1445014448    add cl, 00ch                              ; 80 c1 0c
    1445114449    test dx, dx                               ; 85 d2
    14452     jne short 09505h                          ; 75 55
     14450    jne short 0954bh                          ; 75 55
    1445314451    cmp bx, 00101h                            ; 81 fb 01 01
    14454     jne short 09505h                          ; 75 4f
     14452    jne short 0954bh                          ; 75 4f
    1445514453    mov es, [bp-00eh]                         ; 8e 46 f2
    1445614454    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1446714465    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1446814466    mov dx, es                                ; 8c c2
    14469     call 089b6h                               ; e8 c0 f4
     14467    call 089fch                               ; e8 c0 f4
    1447014468    mov byte [bp-00ah], cl                    ; 88 4e f6
    1447114469    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14472     je short 09508h                           ; 74 08
     14470    je short 0954eh                           ; 74 08
    1447314471    mov ax, strict word 00001h                ; b8 01 00
    14474     jmp short 0950ah                          ; eb 05
    14475     jmp near 096dah                           ; e9 d2 01
     14472    jmp short 09550h                          ; eb 05
     14473    jmp near 09720h                           ; e9 d2 01
    1447614474    xor ax, ax                                ; 31 c0
    1447714475    mov cl, al                                ; 88 c1
     
    1448914487    mov word [bp-012h], ax                    ; 89 46 ee
    1449014488    cmp di, 00fffh                            ; 81 ff ff 0f
    14491     jne short 09559h                          ; 75 1f
     14489    jne short 0959fh                          ; 75 1f
    1449214490    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
    14493     jne short 09559h                          ; 75 19
     14491    jne short 0959fh                          ; 75 19
    1449414492    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1449514493    mov word [bp-012h], ax                    ; 89 46 ee
     
    1453114529    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1453214530    cmp AL, strict byte 001h                  ; 3c 01
    14533     jc short 095d6h                           ; 72 0c
    14534     jbe short 095deh                          ; 76 12
     14531    jc short 0961ch                           ; 72 0c
     14532    jbe short 09624h                          ; 76 12
    1453514533    cmp AL, strict byte 003h                  ; 3c 03
    14536     je short 095e6h                           ; 74 16
     14534    je short 0962ch                           ; 74 16
    1453714535    cmp AL, strict byte 002h                  ; 3c 02
    14538     je short 095e2h                           ; 74 0e
    14539     jmp short 09629h                          ; eb 53
     14536    je short 09628h                           ; 74 0e
     14537    jmp short 0966fh                          ; eb 53
    1454014538    test al, al                               ; 84 c0
    14541     jne short 09629h                          ; 75 4f
     14539    jne short 0966fh                          ; 75 4f
    1454214540    mov DL, strict byte 040h                  ; b2 40
    14543     jmp short 095e8h                          ; eb 0a
     14541    jmp short 0962eh                          ; eb 0a
    1454414542    mov DL, strict byte 048h                  ; b2 48
    14545     jmp short 095e8h                          ; eb 06
     14543    jmp short 0962eh                          ; eb 06
    1454614544    mov DL, strict byte 050h                  ; b2 50
    14547     jmp short 095e8h                          ; eb 02
     14545    jmp short 0962eh                          ; eb 02
    1454814546    mov DL, strict byte 058h                  ; b2 58
    1454914547    mov bl, dl                                ; 88 d3
     
    1455114549    xor bh, bh                                ; 30 ff
    1455214550    mov ax, bx                                ; 89 d8
    14553     call 016aeh                               ; e8 ba 80
     14551    call 016aeh                               ; e8 74 80
    1455414552    test al, al                               ; 84 c0
    14555     je short 09629h                           ; 74 31
     14553    je short 0966fh                           ; 74 31
    1455614554    mov al, dl                                ; 88 d0
    1455714555    db  0feh, 0c0h
    1455814556    ; inc al                                    ; fe c0
    1455914557    xor ah, ah                                ; 30 e4
    14560     call 016aeh                               ; e8 ad 80
     14558    call 016aeh                               ; e8 67 80
    1456114559    mov ch, al                                ; 88 c5
    1456214560    mov al, dl                                ; 88 d0
    1456314561    xor ah, ah                                ; 30 e4
    14564     call 016aeh                               ; e8 a4 80
     14562    call 016aeh                               ; e8 5e 80
    1456514563    mov ah, ch                                ; 88 ec
    1456614564    mov word [bp-028h], ax                    ; 89 46 d8
     
    1456814566    add AL, strict byte 002h                  ; 04 02
    1456914567    xor ah, ah                                ; 30 e4
    14570     call 016aeh                               ; e8 96 80
     14568    call 016aeh                               ; e8 50 80
    1457114569    xor ah, ah                                ; 30 e4
    1457214570    mov word [bp-02ah], ax                    ; 89 46 d6
    1457314571    mov ax, bx                                ; 89 d8
    14574     call 016aeh                               ; e8 8c 80
     14572    call 016aeh                               ; e8 46 80
    1457514573    xor ah, ah                                ; 30 e4
    1457614574    mov word [bp-026h], ax                    ; 89 46 da
    14577     jmp short 0963bh                          ; eb 12
     14575    jmp short 09681h                          ; eb 12
    1457814576    push word [bp-012h]                       ; ff 76 ee
    1457914577    push word [bp-01eh]                       ; ff 76 e2
     
    1458214580    mov dx, ss                                ; 8c d2
    1458314581    lea ax, [bp-02ah]                         ; 8d 46 d6
    14584     call 05b09h                               ; e8 ce c4
     14582    call 05b4fh                               ; e8 ce c4
    1458514583    mov bx, 00da0h                            ; bb a0 0d
    1458614584    mov cx, ds                                ; 8c d9
    1458714585    mov ax, strict word 00004h                ; b8 04 00
    14588     call 01933h                               ; e8 ed 82
     14586    call 01933h                               ; e8 a7 82
    1458914587    push word [bp-012h]                       ; ff 76 ee
    1459014588    push word [bp-01eh]                       ; ff 76 e2
     
    1460914607    mov ax, strict word 00004h                ; b8 04 00
    1461014608    push ax                                   ; 50
    14611     call 01976h                               ; e8 fc 82
     14609    call 01976h                               ; e8 b6 82
    1461214610    add sp, strict byte 0001ch                ; 83 c4 1c
    1461314611    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1464114639    mov dx, strict word 00075h                ; ba 75 00
    1464214640    mov ax, strict word 00040h                ; b8 40 00
    14643     call 01652h                               ; e8 8a 7f
     14641    call 01652h                               ; e8 44 7f
    1464414642    mov bl, al                                ; 88 c3
    1464514643    db  0feh, 0c3h
     
    1464814646    mov dx, strict word 00075h                ; ba 75 00
    1464914647    mov ax, strict word 00040h                ; b8 40 00
    14650     call 01660h                               ; e8 89 7f
    14651     jmp near 0978eh                           ; e9 b4 00
     14648    call 01660h                               ; e8 43 7f
     14649    jmp near 097d4h                           ; e9 b4 00
    1465214650    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14653     jne short 09735h                          ; 75 55
     14651    jne short 0977bh                          ; 75 55
    1465414652    cmp bx, 00101h                            ; 81 fb 01 01
    14655     jne short 09735h                          ; 75 4f
     14653    jne short 0977bh                          ; 75 4f
    1465614654    mov es, [bp-00eh]                         ; 8e 46 f2
    1465714655    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1466814666    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1466914667    mov dx, es                                ; 8c c2
    14670     call 089b6h                               ; e8 90 f2
     14668    call 089fch                               ; e8 90 f2
    1467114669    mov byte [bp-00ah], cl                    ; 88 4e f6
    1467214670    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14673     je short 09737h                           ; 74 07
     14671    je short 0977dh                           ; 74 07
    1467414672    mov cx, strict word 00001h                ; b9 01 00
    14675     jmp short 09739h                          ; eb 04
    14676     jmp short 0978eh                          ; eb 57
     14673    jmp short 0977fh                          ; eb 04
     14674    jmp short 097d4h                          ; eb 57
    1467714675    xor cx, cx                                ; 31 c9
    1467814676    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1471414712    pop bp                                    ; 5d
    1471514713    retn                                      ; c3
    14716 ahci_mem_alloc_:                             ; 0xf97a7 LB 0x43
     14714ahci_mem_alloc_:                             ; 0xf97ed LB 0x43
    1471714715    push bp                                   ; 55
    1471814716    mov bp, sp                                ; 89 e5
     
    1472414722    mov dx, 00413h                            ; ba 13 04
    1472514723    xor ax, ax                                ; 31 c0
    14726     call 0166eh                               ; e8 b7 7e
     14724    call 0166eh                               ; e8 71 7e
    1472714725    test ax, ax                               ; 85 c0
    14728     je short 097e0h                           ; 74 25
     14726    je short 09826h                           ; 74 25
    1472914727    dec ax                                    ; 48
    1473014728    mov bx, ax                                ; 89 c3
     
    1473314731    sal ax, 1                                 ; d1 e0
    1473414732    rcl dx, 1                                 ; d1 d2
    14735     loop 097c3h                               ; e2 fa
     14733    loop 09809h                               ; e2 fa
    1473614734    mov si, ax                                ; 89 c6
    1473714735    mov di, dx                                ; 89 d7
     
    1473914737    shr di, 1                                 ; d1 ef
    1474014738    rcr si, 1                                 ; d1 de
    14741     loop 097d0h                               ; e2 fa
     14739    loop 09816h                               ; e2 fa
    1474214740    mov dx, 00413h                            ; ba 13 04
    1474314741    xor ax, ax                                ; 31 c0
    14744     call 0167ch                               ; e8 9e 7e
     14742    call 0167ch                               ; e8 58 7e
    1474514743    mov ax, si                                ; 89 f0
    1474614744    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1475214750    pop bp                                    ; 5d
    1475314751    retn                                      ; c3
    14754 ahci_hba_init_:                              ; 0xf97ea LB 0x16e
     14752ahci_hba_init_:                              ; 0xf9830 LB 0x16e
    1475514753    push bp                                   ; 55
    1475614754    mov bp, sp                                ; 89 e5
     
    1476414762    mov dx, strict word 0000eh                ; ba 0e 00
    1476514763    mov ax, strict word 00040h                ; b8 40 00
    14766     call 0166eh                               ; e8 6e 7e
     14764    call 0166eh                               ; e8 28 7e
    1476714765    mov bx, 00122h                            ; bb 22 01
    1476814766    mov di, ax                                ; 89 c7
     
    1478114779    shr eax, 010h                             ; 66 c1 e8 10
    1478214780    xchg dx, ax                               ; 92
    14783     call 097a7h                               ; e8 83 ff
     14781    call 097edh                               ; e8 83 ff
    1478414782    mov word [bp-010h], ax                    ; 89 46 f0
    1478514783    test ax, ax                               ; 85 c0
    14786     jne short 0982eh                          ; 75 03
    14787     jmp near 09937h                           ; e9 09 01
     14784    jne short 09874h                          ; 75 03
     14785    jmp near 0997dh                           ; e9 09 01
    1478814786    mov ax, word [bp-010h]                    ; 8b 46 f0
    1478914787    mov es, di                                ; 8e c7
     
    1483514833    xchg dx, ax                               ; 92
    1483614834    test AL, strict byte 001h                 ; a8 01
    14837     jne short 09888h                          ; 75 de
     14835    jne short 098ceh                          ; 75 de
    1483814836    xor ax, ax                                ; 31 c0
    1483914837    xor cx, cx                                ; 31 c9
     
    1485414852    mov bx, strict word 0001fh                ; bb 1f 00
    1485514853    xor cx, cx                                ; 31 c9
    14856     call 08823h                               ; e8 54 ef
     14854    call 08869h                               ; e8 54 ef
    1485714855    db  0feh, 0c0h
    1485814856    ; inc al                                    ; fe c0
    1485914857    mov byte [bp-00eh], al                    ; 88 46 f2
    1486014858    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14861     jmp short 098fbh                          ; eb 21
     14859    jmp short 09941h                          ; eb 21
    1486214860    xor al, al                                ; 30 c0
    1486314861    test al, al                               ; 84 c0
    14864     je short 098f2h                           ; 74 12
     14862    je short 09938h                           ; 74 12
    1486514863    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1486614864    xor bh, bh                                ; 30 ff
    1486714865    xor ax, ax                                ; 31 c0
    1486814866    mov dx, word [bp-010h]                    ; 8b 56 f0
    14869     call 092a9h                               ; e8 bc f9
     14867    call 092efh                               ; e8 bc f9
    1487014868    dec byte [bp-00eh]                        ; fe 4e f2
    14871     je short 09935h                           ; 74 43
     14869    je short 0997bh                           ; 74 43
    1487214870    inc byte [bp-00ch]                        ; fe 46 f4
    1487314871    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14874     jnc short 09935h                          ; 73 3a
     14872    jnc short 0997bh                          ; 73 3a
    1487514873    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1487614874    xor ch, ch                                ; 30 ed
    1487714875    mov bx, strict word 00001h                ; bb 01 00
    1487814876    xor di, di                                ; 31 ff
    14879     jcxz 0990dh                               ; e3 06
     14877    jcxz 09953h                               ; e3 06
    1488014878    sal bx, 1                                 ; d1 e3
    1488114879    rcl di, 1                                 ; d1 d7
    14882     loop 09907h                               ; e2 fa
     14880    loop 0994dh                               ; e2 fa
    1488314881    mov ax, strict word 0000ch                ; b8 0c 00
    1488414882    xor cx, cx                                ; 31 c9
     
    1489614894    xchg dx, ax                               ; 92
    1489714895    test dx, di                               ; 85 fa
    14898     jne short 09931h                          ; 75 04
     14896    jne short 09977h                          ; 75 04
    1489914897    test ax, bx                               ; 85 d8
    14900     je short 098dah                           ; 74 a9
     14898    je short 09920h                           ; 74 a9
    1490114899    mov AL, strict byte 001h                  ; b0 01
    14902     jmp short 098dch                          ; eb a7
     14900    jmp short 09922h                          ; eb a7
    1490314901    xor ax, ax                                ; 31 c0
    1490414902    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1491014908    pop bp                                    ; 5d
    1491114909    retn                                      ; c3
    14912     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 03dh, 09ah, 01bh, 09ah, 021h, 09ah, 027h, 09ah, 02dh
    14913     db  09ah, 033h, 09ah, 039h, 09ah, 03dh, 09ah
    14914 _ahci_init:                                  ; 0xf9958 LB 0x11a
     14910    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 083h, 09ah, 061h, 09ah, 067h, 09ah, 06dh, 09ah, 073h
     14911    db  09ah, 079h, 09ah, 07fh, 09ah, 083h, 09ah
     14912_ahci_init:                                  ; 0xf999e LB 0x11a
    1491514913    push bp                                   ; 55
    1491614914    mov bp, sp                                ; 89 e5
     
    1491914917    mov ax, 00601h                            ; b8 01 06
    1492014918    mov dx, strict word 00001h                ; ba 01 00
    14921     call 09e91h                               ; e8 29 05
     14919    call 09ed7h                               ; e8 29 05
    1492214920    mov dx, ax                                ; 89 c2
    1492314921    cmp ax, strict word 0ffffh                ; 3d ff ff
    14924     je short 099b8h                           ; 74 49
     14922    je short 099feh                           ; 74 49
    1492514923    mov al, ah                                ; 88 e0
    1492614924    mov byte [bp-006h], ah                    ; 88 66 fa
     
    1492914927    xor ah, ah                                ; 30 e4
    1493014928    mov bx, strict word 00034h                ; bb 34 00
    14931     call 09e99h                               ; e8 18 05
     14929    call 09edfh                               ; e8 18 05
    1493214930    mov cl, al                                ; 88 c1
    1493314931    test cl, cl                               ; 84 c9
    14934     je short 099bbh                           ; 74 34
     14932    je short 09a01h                           ; 74 34
    1493514933    mov bl, cl                                ; 88 cb
    1493614934    xor bh, bh                                ; 30 ff
     
    1494314941    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1494414942    mov ax, word [bp-010h]                    ; 8b 46 f0
    14945     call 09e99h                               ; e8 f3 04
     14943    call 09edfh                               ; e8 f3 04
    1494614944    cmp AL, strict byte 012h                  ; 3c 12
    14947     je short 099bbh                           ; 74 11
     14945    je short 09a01h                           ; 74 11
    1494814946    mov bl, cl                                ; 88 cb
    1494914947    db  0feh, 0c3h
     
    1495214950    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1495314951    mov ax, word [bp-010h]                    ; 8b 46 f0
    14954     jmp short 0997eh                          ; eb c6
    14955     jmp near 09a6ch                           ; e9 b1 00
     14952    jmp short 099c4h                          ; eb c6
     14953    jmp near 09ab2h                           ; e9 b1 00
    1495614954    test cl, cl                               ; 84 c9
    14957     je short 099b8h                           ; 74 f9
     14955    je short 099feh                           ; 74 f9
    1495814956    add cl, 002h                              ; 80 c1 02
    1495914957    mov bl, cl                                ; 88 cb
     
    1496714965    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1496814966    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14969     call 09e99h                               ; e8 b8 04
     14967    call 09edfh                               ; e8 b8 04
    1497014968    cmp AL, strict byte 010h                  ; 3c 10
    14971     jne short 099b8h                          ; 75 d3
     14969    jne short 099feh                          ; 75 d3
    1497214970    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1497314971    mov bl, cl                                ; 88 cb
     
    1497614974    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1497714975    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14978     call 09ec0h                               ; e8 c7 04
     14976    call 09f06h                               ; e8 c7 04
    1497914977    mov dx, ax                                ; 89 c2
    1498014978    and ax, strict word 0000fh                ; 25 0f 00
    1498114979    sub ax, strict word 00004h                ; 2d 04 00
    1498214980    cmp ax, strict word 0000bh                ; 3d 0b 00
    14983     jnbe short 09a3dh                         ; 77 37
     14981    jnbe short 09a83h                         ; 77 37
    1498414982    push CS                                   ; 0e
    1498514983    pop ES                                    ; 07
    1498614984    mov cx, strict word 00008h                ; b9 08 00
    14987     mov di, 09941h                            ; bf 41 99
     14985    mov di, 09987h                            ; bf 87 99
    1498814986    repne scasb                               ; f2 ae
    1498914987    sal cx, 1                                 ; d1 e1
    1499014988    mov di, cx                                ; 89 cf
    14991     mov ax, word [cs:di-066b8h]               ; 2e 8b 85 48 99
     14989    mov ax, word [cs:di-06672h]               ; 2e 8b 85 8e 99
    1499214990    jmp ax                                    ; ff e0
    1499314991    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14994     jmp short 09a3dh                          ; eb 1c
     14992    jmp short 09a83h                          ; eb 1c
    1499514993    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14996     jmp short 09a3dh                          ; eb 16
     14994    jmp short 09a83h                          ; eb 16
    1499714995    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14998     jmp short 09a3dh                          ; eb 10
     14996    jmp short 09a83h                          ; eb 10
    1499914997    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    15000     jmp short 09a3dh                          ; eb 0a
     14998    jmp short 09a83h                          ; eb 0a
    1500114999    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    15002     jmp short 09a3dh                          ; eb 04
     15000    jmp short 09a83h                          ; eb 04
    1500315001    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1500415002    mov CL, strict byte 004h                  ; b1 04
     
    1501015008    mov al, byte [bp-004h]                    ; 8a 46 fc
    1501115009    test al, al                               ; 84 c0
    15012     je short 09a6ch                           ; 74 1c
     15010    je short 09ab2h                           ; 74 1c
    1501315011    mov bl, al                                ; 88 c3
    1501415012    xor bh, bh                                ; 30 ff
     
    1501715015    mov al, byte [bp-006h]                    ; 8a 46 fa
    1501815016    xor ah, ah                                ; 30 e4
    15019     call 09ee5h                               ; e8 84 04
     15017    call 09f2bh                               ; e8 84 04
    1502015018    test AL, strict byte 001h                 ; a8 01
    15021     je short 09a6ch                           ; 74 07
     15019    je short 09ab2h                           ; 74 07
    1502215020    and AL, strict byte 0f0h                  ; 24 f0
    1502315021    add ax, cx                                ; 01 c8
    15024     call 097eah                               ; e8 7e fd
     15022    call 09830h                               ; e8 7e fd
    1502515023    lea sp, [bp-002h]                         ; 8d 66 fe
    1502615024    pop di                                    ; 5f
    1502715025    pop bp                                    ; 5d
    1502815026    retn                                      ; c3
    15029 apm_out_str_:                                ; 0xf9a72 LB 0x39
     15027apm_out_str_:                                ; 0xf9ab8 LB 0x39
    1503015028    push bp                                   ; 55
    1503115029    mov bp, sp                                ; 89 e5
     
    1503315031    mov bx, ax                                ; 89 c3
    1503415032    cmp byte [bx], 000h                       ; 80 3f 00
    15035     je short 09a87h                           ; 74 0a
     15033    je short 09acdh                           ; 74 0a
    1503615034    mov al, byte [bx]                         ; 8a 07
    1503715035    out DX, AL                                ; ee
     
    1504015038    db  00ah, 0c0h
    1504115039    ; or al, al                                 ; 0a c0
    15042     jne short 09a7fh                          ; 75 f8
     15040    jne short 09ac5h                          ; 75 f8
    1504315041    lea sp, [bp-002h]                         ; 8d 66 fe
    1504415042    pop bx                                    ; 5b
    1504515043    pop bp                                    ; 5d
    1504615044    retn                                      ; c3
    15047     int3                                      ; cc
    15048     call far 09adeh:09b57h                    ; 9a 57 9b de 9a
    15049     stc                                       ; f9
    15050     call far 09b24h:09b57h                    ; 9a 57 9b 24 9b
    15051     push di                                   ; 57
     15045    adc bl, byte [bp+di-06463h]               ; 12 9b 9d 9b
     15046    and AL, strict byte 09bh                  ; 24 9b
     15047    aas                                       ; 3f
    1505215048    wait                                      ; 9b
    15053     pop bp                                    ; 5d
     15049    popfw                                     ; 9d
    1505415050    wait                                      ; 9b
    15055     sub word [bp+di-064d7h], bx               ; 29 9b 29 9b
    15056     sub word [bp+di-06464h], bx               ; 29 9b 9c 9b
    15057     sub word [bp+di-064d7h], bx               ; 29 9b 29 9b
    15058     xchg bp, ax                               ; 95
     15051    push strict byte 0ff9bh                   ; 6a 9b
     15052    popfw                                     ; 9d
    1505915053    wait                                      ; 9b
    15060 _apm_function:                               ; 0xf9aab LB 0xf6
     15054    mov word [06f9bh], ax                     ; a3 9b 6f
     15055    wait                                      ; 9b
     15056    outsw                                     ; 6f
     15057    wait                                      ; 9b
     15058    outsw                                     ; 6f
     15059    wait                                      ; 9b
     15060    loop 09a86h                               ; e2 9b
     15061    outsw                                     ; 6f
     15062    wait                                      ; 9b
     15063    outsw                                     ; 6f
     15064    wait                                      ; 9b
     15065    db  0dbh
     15066    wait                                      ; 9b
     15067_apm_function:                               ; 0xf9af1 LB 0xf6
    1506115068    push bp                                   ; 55
    1506215069    mov bp, sp                                ; 89 e5
     
    1506615073    xor ah, ah                                ; 30 e4
    1506715074    cmp ax, strict word 0000eh                ; 3d 0e 00
    15068     jnbe short 09b29h                         ; 77 6c
     15075    jnbe short 09b6fh                         ; 77 6c
    1506915076    mov bx, ax                                ; 89 c3
    1507015077    sal bx, 1                                 ; d1 e3
    1507115078    mov dx, word [bp+018h]                    ; 8b 56 18
    1507215079    or dl, 001h                               ; 80 ca 01
    15073     jmp word [cs:bx-06573h]                   ; 2e ff a7 8d 9a
     15080    jmp word [cs:bx-0652dh]                   ; 2e ff a7 d3 9a
    1507415081    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1507515082    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1507615083    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15077     jmp near 09b57h                           ; e9 79 00
     15084    jmp near 09b9dh                           ; e9 79 00
    1507815085    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15079     mov word [bp+00ch], 0a104h                ; c7 46 0c 04 a1
     15086    mov word [bp+00ch], 0a144h                ; c7 46 0c 44 a1
    1508015087    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1508115088    mov ax, strict word 0fff0h                ; b8 f0 ff
    1508215089    mov word [bp+006h], ax                    ; 89 46 06
    1508315090    mov word [bp+004h], ax                    ; 89 46 04
    15084     jmp near 09b57h                           ; e9 5e 00
     15091    jmp near 09b9dh                           ; e9 5e 00
    1508515092    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1508615093    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1509515102    mov si, ax                                ; 89 c6
    1509615103    sal esi, 010h                             ; 66 c1 e6 10
    15097     jmp near 09b57h                           ; e9 33 00
     15104    jmp near 09b9dh                           ; e9 33 00
    1509815105    sti                                       ; fb
    1509915106    hlt                                       ; f4
    15100     jmp near 09b57h                           ; e9 2e 00
     15107    jmp near 09b9dh                           ; e9 2e 00
    1510115108    mov bx, 00da0h                            ; bb a0 0d
    1510215109    mov cx, ds                                ; 8c d9
    1510315110    mov ax, strict word 00004h                ; b8 04 00
    15104     call 01933h                               ; e8 ff 7d
     15111    call 01933h                               ; e8 b9 7d
    1510515112    push word [bp+00ch]                       ; ff 76 0c
    1510615113    push word [bp+012h]                       ; ff 76 12
     
    1510915116    mov ax, strict word 00004h                ; b8 04 00
    1511015117    push ax                                   ; 50
    15111     call 01976h                               ; e8 31 7e
     15118    call 01976h                               ; e8 eb 7d
    1511215119    add sp, strict byte 00008h                ; 83 c4 08
    1511315120    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1512115128    retn                                      ; c3
    1512215129    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15123     je short 09b82h                           ; 74 1f
     15130    je short 09bc8h                           ; 74 1f
    1512415131    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15125     je short 09b7ah                           ; 74 11
     15132    je short 09bc0h                           ; 74 11
    1512615133    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15127     jne short 09b8ah                          ; 75 1b
     15134    jne short 09bd0h                          ; 75 1b
    1512815135    mov dx, 08900h                            ; ba 00 89
    1512915136    mov ax, 00d10h                            ; b8 10 0d
    15130     call 09a72h                               ; e8 fa fe
    15131     jmp short 09b57h                          ; eb dd
     15137    call 09ab8h                               ; e8 fa fe
     15138    jmp short 09b9dh                          ; eb dd
    1513215139    mov dx, 08900h                            ; ba 00 89
    1513315140    mov ax, 00d18h                            ; b8 18 0d
    15134     jmp short 09b75h                          ; eb f3
     15141    jmp short 09bbbh                          ; eb f3
    1513515142    mov dx, 08900h                            ; ba 00 89
    1513615143    mov ax, 00d20h                            ; b8 20 0d
    15137     jmp short 09b75h                          ; eb eb
     15144    jmp short 09bbbh                          ; eb eb
    1513815145    or ah, 00ah                               ; 80 cc 0a
    1513915146    mov word [bp+012h], ax                    ; 89 46 12
    1514015147    mov word [bp+018h], dx                    ; 89 56 18
    15141     jmp short 09b57h                          ; eb c2
     15148    jmp short 09b9dh                          ; eb c2
    1514215149    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15143     jmp short 09b57h                          ; eb bb
     15150    jmp short 09b9dh                          ; eb bb
    1514415151    or ah, 080h                               ; 80 cc 80
    15145     jmp short 09b8dh                          ; eb ec
    15146 pci16_select_reg_:                           ; 0xf9ba1 LB 0x24
     15152    jmp short 09bd3h                          ; eb ec
     15153pci16_select_reg_:                           ; 0xf9be7 LB 0x24
    1514715154    push bp                                   ; 55
    1514815155    mov bp, sp                                ; 89 e5
     
    1516115168    pop bp                                    ; 5d
    1516215169    retn                                      ; c3
    15163 pci16_find_device_:                          ; 0xf9bc5 LB 0xf7
     15170pci16_find_device_:                          ; 0xf9c0b LB 0xf7
    1516415171    push bp                                   ; 55
    1516515172    mov bp, sp                                ; 89 e5
     
    1517515182    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1517615183    test bl, 007h                             ; f6 c3 07
    15177     jne short 09c0dh                          ; 75 2d
     15184    jne short 09c53h                          ; 75 2d
    1517815185    mov dx, strict word 0000eh                ; ba 0e 00
    1517915186    mov ax, bx                                ; 89 d8
    15180     call 09ba1h                               ; e8 b9 ff
     15187    call 09be7h                               ; e8 b9 ff
    1518115188    mov dx, 00cfeh                            ; ba fe 0c
    1518215189    in AL, DX                                 ; ec
     
    1518515192    mov byte [bp-008h], al                    ; 88 46 f8
    1518615193    cmp AL, strict byte 0ffh                  ; 3c ff
    15187     jne short 09bfbh                          ; 75 06
     15194    jne short 09c41h                          ; 75 06
    1518815195    add bx, strict byte 00008h                ; 83 c3 08
    15189     jmp near 09c8dh                           ; e9 92 00
     15196    jmp near 09cd3h                           ; e9 92 00
    1519015197    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15191     je short 09c08h                           ; 74 07
     15198    je short 09c4eh                           ; 74 07
    1519215199    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15193     jmp short 09c0dh                          ; eb 05
     15200    jmp short 09c53h                          ; eb 05
    1519415201    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1519515202    mov al, byte [bp-008h]                    ; 8a 46 f8
    1519615203    and AL, strict byte 007h                  ; 24 07
    1519715204    cmp AL, strict byte 001h                  ; 3c 01
    15198     jne short 09c34h                          ; 75 1e
     15205    jne short 09c7ah                          ; 75 1e
    1519915206    mov al, bh                                ; 88 f8
    1520015207    xor ah, ah                                ; 30 e4
    1520115208    test ax, ax                               ; 85 c0
    15202     jne short 09c34h                          ; 75 16
     15209    jne short 09c7ah                          ; 75 16
    1520315210    mov dx, strict word 0001ah                ; ba 1a 00
    1520415211    mov ax, bx                                ; 89 d8
    15205     call 09ba1h                               ; e8 7b ff
     15212    call 09be7h                               ; e8 7b ff
    1520615213    mov dx, 00cfeh                            ; ba fe 0c
    1520715214    in AL, DX                                 ; ec
     
    1520915216    ; sub ah, ah                                ; 2a e4
    1521015217    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15211     jbe short 09c34h                          ; 76 03
     15218    jbe short 09c7ah                          ; 76 03
    1521215219    mov byte [bp-006h], al                    ; 88 46 fa
    1521315220    test di, di                               ; 85 ff
    15214     je short 09c3dh                           ; 74 05
     15221    je short 09c83h                           ; 74 05
    1521515222    mov dx, strict word 00008h                ; ba 08 00
    15216     jmp short 09c3fh                          ; eb 02
     15223    jmp short 09c85h                          ; eb 02
    1521715224    xor dx, dx                                ; 31 d2
    1521815225    mov ax, bx                                ; 89 d8
    15219     call 09ba1h                               ; e8 5d ff
     15226    call 09be7h                               ; e8 5d ff
    1522015227    mov dx, 00cfch                            ; ba fc 0c
    1522115228    in eax, DX                                ; 66 ed
     
    1522815235    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1522915236    test di, di                               ; 85 ff
    15230     je short 09c6eh                           ; 74 0f
     15237    je short 09cb4h                           ; 74 0f
    1523115238    mov cx, strict word 00008h                ; b9 08 00
    1523215239    shr dx, 1                                 ; d1 ea
    1523315240    rcr ax, 1                                 ; d1 d8
    15234     loop 09c62h                               ; e2 fa
     15241    loop 09ca8h                               ; e2 fa
    1523515242    mov word [bp-00ah], ax                    ; 89 46 f6
    1523615243    mov word [bp-010h], dx                    ; 89 56 f0
    1523715244    mov ax, word [bp-010h]                    ; 8b 46 f0
    1523815245    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15239     jne short 09c7eh                          ; 75 08
     15246    jne short 09cc4h                          ; 75 08
    1524015247    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1524115248    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15242     je short 09c84h                           ; 74 06
     15249    je short 09ccah                           ; 74 06
    1524315250    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15244     je short 09c8ah                           ; 74 06
     15251    je short 09cd0h                           ; 74 06
    1524515252    dec si                                    ; 4e
    1524615253    cmp si, strict byte 0ffffh                ; 83 fe ff
    15247     je short 09c9dh                           ; 74 13
     15254    je short 09ce3h                           ; 74 13
    1524815255    add bx, word [bp-00eh]                    ; 03 5e f2
    1524915256    mov al, bh                                ; 88 f8
     
    1525215259    xor dh, dh                                ; 30 f6
    1525315260    cmp ax, dx                                ; 39 d0
    15254     jnbe short 09c9dh                         ; 77 03
    15255     jmp near 09bdbh                           ; e9 3e ff
     15261    jnbe short 09ce3h                         ; 77 03
     15262    jmp near 09c21h                           ; e9 3e ff
    1525615263    cmp si, strict byte 0ffffh                ; 83 fe ff
    15257     jne short 09ca6h                          ; 75 04
     15264    jne short 09cech                          ; 75 04
    1525815265    mov ax, bx                                ; 89 d8
    15259     jmp short 09ca9h                          ; eb 03
     15266    jmp short 09cefh                          ; eb 03
    1526015267    mov ax, strict word 0ffffh                ; b8 ff ff
    1526115268    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1526415271    pop bp                                    ; 5d
    1526515272    retn                                      ; c3
     15273    jcxz 09c95h                               ; e3 9d
     15274    cld                                       ; fc
    1526615275    popfw                                     ; 9d
    15267     popfw                                     ; 9d
    15268     mov DH, strict byte 09dh                  ; b6 9d
    15269     enter 0dc9dh, 09dh                        ; c8 9d dc 9d
    15270     out DX, AL                                ; ee
    15271     popfw                                     ; 9d
    15272     db  001h
     15276    push CS                                   ; 0e
    1527315277    sahf                                      ; 9e
    15274 _pci16_function:                             ; 0xf9cbc LB 0x1d5
     15278    and bl, byte [bp-061cch]                  ; 22 9e 34 9e
     15279    inc di                                    ; 47
     15280    sahf                                      ; 9e
     15281_pci16_function:                             ; 0xf9d02 LB 0x1d5
    1527515282    push bp                                   ; 55
    1527615283    mov bp, sp                                ; 89 e5
     
    1528615293    xor ah, ah                                ; 30 e4
    1528715294    cmp bx, strict byte 00003h                ; 83 fb 03
    15288     jc short 09ceeh                           ; 72 13
    15289     jbe short 09d41h                          ; 76 64
     15295    jc short 09d34h                           ; 72 13
     15296    jbe short 09d87h                          ; 76 64
    1529015297    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15291     je short 09d49h                           ; 74 67
     15298    je short 09d8fh                           ; 74 67
    1529215299    cmp bx, strict byte 00008h                ; 83 fb 08
    15293     jc short 09cf8h                           ; 72 11
     15300    jc short 09d3eh                           ; 72 11
    1529415301    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15295     jbe short 09d4ch                          ; 76 60
    15296     jmp short 09cf8h                          ; eb 0a
     15302    jbe short 09d92h                          ; 76 60
     15303    jmp short 09d3eh                          ; eb 0a
    1529715304    cmp bx, strict byte 00002h                ; 83 fb 02
    15298     je short 09d17h                           ; 74 24
     15305    je short 09d5dh                           ; 74 24
    1529915306    cmp bx, strict byte 00001h                ; 83 fb 01
    15300     je short 09cfbh                           ; 74 03
    15301     jmp near 09e5ah                           ; e9 5f 01
     15307    je short 09d41h                           ; 74 03
     15308    jmp near 09ea0h                           ; e9 5f 01
    1530215309    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1530315310    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1530515312    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1530615313    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15307     jmp near 09e8ah                           ; e9 73 01
     15314    jmp near 09ed0h                           ; e9 73 01
    1530815315    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15309     jne short 09d23h                          ; 75 06
     15316    jne short 09d69h                          ; 75 06
    1531015317    or ah, 083h                               ; 80 cc 83
    15311     jmp near 09e83h                           ; e9 60 01
     15318    jmp near 09ec9h                           ; e9 60 01
    1531215319    mov bx, word [bp+008h]                    ; 8b 5e 08
    1531315320    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1531415321    mov ax, word [bp+018h]                    ; 8b 46 18
    1531515322    xor cx, cx                                ; 31 c9
    15316     call 09bc5h                               ; e8 94 fe
     15323    call 09c0bh                               ; e8 94 fe
    1531715324    cmp ax, strict word 0ffffh                ; 3d ff ff
    15318     jne short 09d43h                          ; 75 0d
     15325    jne short 09d89h                          ; 75 0d
    1531915326    mov ax, word [bp+020h]                    ; 8b 46 20
    1532015327    xor ah, ah                                ; 30 e4
    1532115328    or ah, 086h                               ; 80 cc 86
    15322     jmp near 09e83h                           ; e9 42 01
    15323     jmp short 09d4eh                          ; eb 0b
     15329    jmp near 09ec9h                           ; e9 42 01
     15330    jmp short 09d94h                          ; eb 0b
    1532415331    mov word [bp+014h], ax                    ; 89 46 14
    15325     jmp near 09e8ah                           ; e9 41 01
    15326     jmp near 09e15h                           ; e9 c9 00
    15327     jmp short 09d73h                          ; eb 25
     15332    jmp near 09ed0h                           ; e9 41 01
     15333    jmp near 09e5bh                           ; e9 c9 00
     15334    jmp short 09db9h                          ; eb 25
    1532815335    mov bx, word [bp+008h]                    ; 8b 5e 08
    1532915336    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1533015337    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1533115338    mov cx, strict word 00001h                ; b9 01 00
    15332     call 09bc5h                               ; e8 68 fe
     15339    call 09c0bh                               ; e8 68 fe
    1533315340    cmp ax, strict word 0ffffh                ; 3d ff ff
    15334     jne short 09d6dh                          ; 75 0b
     15341    jne short 09db3h                          ; 75 0b
    1533515342    mov ax, word [bp+020h]                    ; 8b 46 20
    1533615343    xor ah, ah                                ; 30 e4
    1533715344    or ah, 086h                               ; 80 cc 86
    15338     jmp near 09e83h                           ; e9 16 01
     15345    jmp near 09ec9h                           ; e9 16 01
    1533915346    mov word [bp+014h], ax                    ; 89 46 14
    15340     jmp near 09e8ah                           ; e9 17 01
     15347    jmp near 09ed0h                           ; e9 17 01
    1534115348    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15342     jc short 09d80h                           ; 72 06
     15349    jc short 09dc6h                           ; 72 06
    1534315350    or ah, 087h                               ; 80 cc 87
    15344     jmp near 09e83h                           ; e9 03 01
     15351    jmp near 09ec9h                           ; e9 03 01
    1534515352    mov dx, word [bp+004h]                    ; 8b 56 04
    1534615353    mov ax, word [bp+014h]                    ; 8b 46 14
    15347     call 09ba1h                               ; e8 18 fe
     15354    call 09be7h                               ; e8 18 fe
    1534815355    mov bx, word [bp+020h]                    ; 8b 5e 20
    1534915356    xor bh, bh                                ; 30 ff
    1535015357    sub bx, strict byte 00008h                ; 83 eb 08
    1535115358    cmp bx, strict byte 00005h                ; 83 fb 05
    15352     jnbe short 09dfeh                         ; 77 68
     15359    jnbe short 09e44h                         ; 77 68
    1535315360    sal bx, 1                                 ; d1 e3
    15354     jmp word [cs:bx-06350h]                   ; 2e ff a7 b0 9c
     15361    jmp word [cs:bx-0630ah]                   ; 2e ff a7 f6 9c
    1535515362    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1535615363    xor bl, bl                                ; 30 db
     
    1536315370    or bx, ax                                 ; 09 c3
    1536415371    mov word [bp+01ch], bx                    ; 89 5e 1c
    15365     jmp short 09dfeh                          ; eb 48
     15372    jmp short 09e44h                          ; eb 48
    1536615373    mov dx, word [bp+004h]                    ; 8b 56 04
    1536715374    xor dh, dh                                ; 30 f6
     
    1537015377    in ax, DX                                 ; ed
    1537115378    mov word [bp+01ch], ax                    ; 89 46 1c
    15372     jmp short 09dfeh                          ; eb 36
     15379    jmp short 09e44h                          ; eb 36
    1537315380    mov dx, 00cfch                            ; ba fc 0c
    1537415381    in eax, DX                                ; 66 ed
     
    1537915386    mov word [bp+01ch], ax                    ; 89 46 1c
    1538015387    mov word [bp+01eh], dx                    ; 89 56 1e
    15381     jmp short 09dfeh                          ; eb 22
     15388    jmp short 09e44h                          ; eb 22
    1538215389    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1538315390    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1538615393    add dx, 00cfch                            ; 81 c2 fc 0c
    1538715394    out DX, AL                                ; ee
    15388     jmp short 09dfeh                          ; eb 10
     15395    jmp short 09e44h                          ; eb 10
    1538915396    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539015397    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1539315400    add dx, 00cfch                            ; 81 c2 fc 0c
    1539415401    out DX, ax                                ; ef
    15395     jmp near 09e8ah                           ; e9 89 00
     15402    jmp near 09ed0h                           ; e9 89 00
    1539615403    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539715404    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1540215409    ; mov ax, cx                                ; 8b c1
    1540315410    out DX, eax                               ; 66 ef
    15404     jmp short 09e8ah                          ; eb 75
     15411    jmp short 09ed0h                          ; eb 75
    1540515412    mov bx, word [bp+004h]                    ; 8b 5e 04
    1540615413    mov es, [bp+026h]                         ; 8e 46 26
     
    1540915416    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1541015417    cmp cx, word [es:bx]                      ; 26 3b 0f
    15411     jbe short 09e3bh                          ; 76 11
     15418    jbe short 09e81h                          ; 76 11
    1541215419    mov ax, word [bp+020h]                    ; 8b 46 20
    1541315420    xor ah, ah                                ; 30 e4
     
    1541515422    mov word [bp+020h], ax                    ; 89 46 20
    1541615423    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15417     jmp short 09e4fh                          ; eb 14
     15424    jmp short 09e95h                          ; eb 14
    1541815425    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1541915426    mov si, 0f2c0h                            ; be c0 f2
     
    1542715434    les bx, [bp-008h]                         ; c4 5e f8
    1542815435    mov word [es:bx], ax                      ; 26 89 07
    15429     jmp short 09e8ah                          ; eb 30
     15436    jmp short 09ed0h                          ; eb 30
    1543015437    mov bx, 00da0h                            ; bb a0 0d
    1543115438    mov cx, ds                                ; 8c d9
    1543215439    mov ax, strict word 00004h                ; b8 04 00
    15433     call 01933h                               ; e8 ce 7a
     15440    call 01933h                               ; e8 88 7a
    1543415441    mov ax, word [bp+014h]                    ; 8b 46 14
    1543515442    push ax                                   ; 50
     
    1544015447    mov ax, strict word 00004h                ; b8 04 00
    1544115448    push ax                                   ; 50
    15442     call 01976h                               ; e8 fe 7a
     15449    call 01976h                               ; e8 b8 7a
    1544315450    add sp, strict byte 00008h                ; 83 c4 08
    1544415451    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1545215459    pop bp                                    ; 5d
    1545315460    retn                                      ; c3
    15454 pci_find_classcode_:                         ; 0xf9e91 LB 0x8
     15461pci_find_classcode_:                         ; 0xf9ed7 LB 0x8
    1545515462    push bp                                   ; 55
    1545615463    mov bp, sp                                ; 89 e5
     
    1545815465    pop bp                                    ; 5d
    1545915466    retn                                      ; c3
    15460 pci_read_config_byte_:                       ; 0xf9e99 LB 0x27
     15467pci_read_config_byte_:                       ; 0xf9edf LB 0x27
    1546115468    push bp                                   ; 55
    1546215469    mov bp, sp                                ; 89 e5
     
    1548115488    pop bp                                    ; 5d
    1548215489    retn                                      ; c3
    15483 pci_read_config_word_:                       ; 0xf9ec0 LB 0x25
     15490pci_read_config_word_:                       ; 0xf9f06 LB 0x25
    1548415491    push bp                                   ; 55
    1548515492    mov bp, sp                                ; 89 e5
     
    1550315510    pop bp                                    ; 5d
    1550415511    retn                                      ; c3
    15505 pci_read_config_dword_:                      ; 0xf9ee5 LB 0x3f
     15512pci_read_config_dword_:                      ; 0xf9f2b LB 0x3f
    1550615513    push bp                                   ; 55
    1550715514    mov bp, sp                                ; 89 e5
     
    1551815525    int 01ah                                  ; cd 1a
    1551915526    test cx, cx                               ; 85 c9
    15520     jne short 09f15h                          ; 75 14
     15527    jne short 09f5bh                          ; 75 14
    1552115528    mov al, byte [bp-006h]                    ; 8a 46 fa
    1552215529    xor ah, ah                                ; 30 e4
     
    1552815535    int 01ah                                  ; cd 1a
    1552915536    test cx, cx                               ; 85 c9
    15530     je short 09f1ah                           ; 74 05
     15537    je short 09f60h                           ; 74 05
    1553115538    mov ax, strict word 00001h                ; b8 01 00
    15532     jmp short 09f1ch                          ; eb 02
     15539    jmp short 09f62h                          ; eb 02
    1553315540    xor ax, ax                                ; 31 c0
    1553415541    cwd                                       ; 99
     
    1553815545    pop bp                                    ; 5d
    1553915546    retn                                      ; c3
    15540 vds_is_present_:                             ; 0xf9f24 LB 0x1d
     15547vds_is_present_:                             ; 0xf9f6a LB 0x1d
    1554115548    push bx                                   ; 53
    1554215549    push bp                                   ; 55
     
    1554615553    mov es, ax                                ; 8e c0
    1554715554    test byte [es:bx], 020h                   ; 26 f6 07 20
    15548     je short 09f3ch                           ; 74 06
     15555    je short 09f82h                           ; 74 06
    1554915556    mov ax, strict word 00001h                ; b8 01 00
    1555015557    pop bp                                    ; 5d
     
    1555515562    pop bx                                    ; 5b
    1555615563    retn                                      ; c3
    15557 vds_real_to_lin_:                            ; 0xf9f41 LB 0x1e
     15564vds_real_to_lin_:                            ; 0xf9f87 LB 0x1e
    1555815565    push bx                                   ; 53
    1555915566    push cx                                   ; 51
     
    1556615573    sal ax, 1                                 ; d1 e0
    1556715574    rcl dx, 1                                 ; d1 d2
    15568     loop 09f4fh                               ; e2 fa
     15575    loop 09f95h                               ; e2 fa
    1556915576    xor cx, cx                                ; 31 c9
    1557015577    add ax, bx                                ; 01 d8
     
    1557415581    pop bx                                    ; 5b
    1557515582    retn                                      ; c3
    15576 vds_build_sg_list_:                          ; 0xf9f5f LB 0x77
     15583vds_build_sg_list_:                          ; 0xf9fa5 LB 0x77
    1557715584    push bp                                   ; 55
    1557815585    mov bp, sp                                ; 89 e5
     
    1558815595    mov bx, word [bp+006h]                    ; 8b 5e 06
    1558915596    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15590     call 09f41h                               ; e8 c3 ff
     15597    call 09f87h                               ; e8 c3 ff
    1559115598    mov es, si                                ; 8e c6
    1559215599    mov word [es:di+004h], ax                 ; 26 89 45 04
    1559315600    mov word [es:di+006h], dx                 ; 26 89 55 06
    1559415601    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15595     call 09f24h                               ; e8 93 ff
     15602    call 09f6ah                               ; e8 93 ff
    1559615603    test ax, ax                               ; 85 c0
    15597     je short 09fa6h                           ; 74 11
     15604    je short 09fech                           ; 74 11
    1559815605    mov es, si                                ; 8e c6
    1559915606    mov ax, 08105h                            ; b8 05 81
    1560015607    mov dx, strict word 00000h                ; ba 00 00
    1560115608    int 04bh                                  ; cd 4b
    15602     jc short 09fa3h                           ; 72 02
     15609    jc short 09fe9h                           ; 72 02
    1560315610    db  032h, 0c0h
    1560415611    ; xor al, al                                ; 32 c0
    1560515612    cbw                                       ; 98
    15606     jmp short 09fcdh                          ; eb 27
     15613    jmp short 0a013h                          ; eb 27
    1560715614    mov es, si                                ; 8e c6
    1560815615    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1562115628    pop bp                                    ; 5d
    1562215629    retn 00004h                               ; c2 04 00
    15623 vds_free_sg_list_:                           ; 0xf9fd6 LB 0x3a
     15630vds_free_sg_list_:                           ; 0xfa01c LB 0x34
    1562415631    push bp                                   ; 55
    1562515632    mov bp, sp                                ; 89 e5
     
    1562715634    push di                                   ; 57
    1562815635    mov bx, ax                                ; 89 c3
    15629     call 09f24h                               ; e8 44 ff
     15636    call 09f6ah                               ; e8 44 ff
    1563015637    test ax, ax                               ; 85 c0
    15631     je short 09ff5h                           ; 74 11
     15638    je short 0a03bh                           ; 74 11
    1563215639    mov di, bx                                ; 89 df
    1563315640    mov es, dx                                ; 8e c2
     
    1563515642    mov dx, strict word 00000h                ; ba 00 00
    1563615643    int 04bh                                  ; cd 4b
    15637     jc short 09ff4h                           ; 72 02
     15644    jc short 0a03ah                           ; 72 02
    1563815645    db  032h, 0c0h
    1563915646    ; xor al, al                                ; 32 c0
     
    1564615653    pop bp                                    ; 5d
    1564715654    retn                                      ; c3
    15648     times 0xc db 0
    15649 __U4M:                                       ; 0xfa010 LB 0x20
     15655    times 0x6 db 0
     15656__U4M:                                       ; 0xfa050 LB 0x20
    1565015657    pushfw                                    ; 9c
    1565115658    push si                                   ; 56
     
    1567415681    retn                                      ; c3
    1567515682    times 0x4 db 0
    15676 __U4D:                                       ; 0xfa030 LB 0x30
     15683__U4D:                                       ; 0xfa070 LB 0x30
    1567715684    pushfw                                    ; 9c
    1567815685    push DS                                   ; 1e
     
    1568915696    push dx                                   ; 52
    1569015697    push ax                                   ; 50
    15691     call 0a115h                               ; e8 d0 00
     15698    call 0a155h                               ; e8 d0 00
    1569215699    mov cx, word [bp-002h]                    ; 8b 4e fe
    1569315700    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1570015707    retn                                      ; c3
    1570115708    times 0xe db 0
    15702 __U8RS:                                      ; 0xfa060 LB 0x10
     15709__U8RS:                                      ; 0xfa0a0 LB 0x10
    1570315710    test si, si                               ; 85 f6
    15704     je short 0a06fh                           ; 74 0b
     15711    je short 0a0afh                           ; 74 0b
    1570515712    shr ax, 1                                 ; d1 e8
    1570615713    rcr bx, 1                                 ; d1 db
     
    1570815715    rcr dx, 1                                 ; d1 da
    1570915716    dec si                                    ; 4e
    15710     jne short 0a064h                          ; 75 f5
     15717    jne short 0a0a4h                          ; 75 f5
    1571115718    retn                                      ; c3
    15712 __U8LS:                                      ; 0xfa070 LB 0x10
     15719__U8LS:                                      ; 0xfa0b0 LB 0x10
    1571315720    test si, si                               ; 85 f6
    15714     je short 0a07fh                           ; 74 0b
     15721    je short 0a0bfh                           ; 74 0b
    1571515722    sal dx, 1                                 ; d1 e2
    1571615723    rcl cx, 1                                 ; d1 d1
     
    1571815725    rcl ax, 1                                 ; d1 d0
    1571915726    dec si                                    ; 4e
    15720     jne short 0a074h                          ; 75 f5
     15727    jne short 0a0b4h                          ; 75 f5
    1572115728    retn                                      ; c3
    15722 _fmemset_:                                   ; 0xfa080 LB 0x10
     15729_fmemset_:                                   ; 0xfa0c0 LB 0x10
    1572315730    push di                                   ; 57
    1572415731    mov es, dx                                ; 8e c2
     
    1573115738    retn                                      ; c3
    1573215739    times 0x3 db 0
    15733 _fmemcpy_:                                   ; 0xfa090 LB 0x3a
     15740_fmemcpy_:                                   ; 0xfa0d0 LB 0x3a
    1573415741    push bp                                   ; 55
    1573515742    db  08bh, 0ech
     
    1575315760    pop bp                                    ; 5d
    1575415761    retn                                      ; c3
    15755     db  000h, 000h, 000h, 000h, 000h, 000h, 0e0h, 0a0h, 0e2h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h
    15756     db  0e8h, 0a0h, 0e8h, 0a0h, 0eah, 0a0h, 0eeh, 0a0h, 0eeh, 0a0h, 0f0h, 0a0h, 0f5h, 0a0h, 0f7h, 0a0h
    15757 apm_worker:                                  ; 0xfa0ca LB 0x3a
     15762    add byte [bx+si], al                      ; 00 00
     15763    add byte [bx+si], al                      ; 00 00
     15764    add byte [bx+si], al                      ; 00 00
     15765    and byte [bx+di-05edeh], ah               ; 20 a1 22 a1
     15766    mov ax, word [es:0a126h]                  ; 26 a1 26 a1
     15767    mov ax, word [es:0a128h]                  ; 26 a1 28 a1
     15768    sub byte [bx+di-05ed6h], ah               ; 28 a1 2a a1
     15769    mov ax, word [cs:0a12eh]                  ; 2e a1 2e a1
     15770    xor byte [bx+di-05ecbh], ah               ; 30 a1 35 a1
     15771    aaa                                       ; 37
     15772    db  0a1h
     15773apm_worker:                                  ; 0xfa10a LB 0x3a
    1575815774    sti                                       ; fb
    1575915775    push ax                                   ; 50
     
    1576715783    pop ax                                    ; 58
    1576815784    mov AH, strict byte 053h                  ; b4 53
    15769     jnc short 0a100h                          ; 73 25
    15770     jmp word [cs:bp-05f50h]                   ; 2e ff a6 b0 a0
    15771     jmp short 0a0feh                          ; eb 1c
     15785    jnc short 0a140h                          ; 73 25
     15786    jmp word [cs:bp-05f10h]                   ; 2e ff a6 f0 a0
     15787    jmp short 0a13eh                          ; eb 1c
    1577215788    sti                                       ; fb
    1577315789    hlt                                       ; f4
    15774     jmp short 0a0feh                          ; eb 18
    15775     jmp short 0a0feh                          ; eb 16
    15776     jmp short 0a100h                          ; eb 16
     15790    jmp short 0a13eh                          ; eb 18
     15791    jmp short 0a13eh                          ; eb 16
     15792    jmp short 0a140h                          ; eb 16
    1577715793    mov AH, strict byte 080h                  ; b4 80
    15778     jmp short 0a102h                          ; eb 14
    15779     jmp short 0a100h                          ; eb 10
     15794    jmp short 0a142h                          ; eb 14
     15795    jmp short 0a140h                          ; eb 10
    1578015796    mov ax, 00102h                            ; b8 02 01
    15781     jmp short 0a0feh                          ; eb 09
    15782     jmp short 0a0feh                          ; eb 07
     15797    jmp short 0a13eh                          ; eb 09
     15798    jmp short 0a13eh                          ; eb 07
    1578315799    mov BL, strict byte 000h                  ; b3 00
    1578415800    mov cx, strict word 00000h                ; b9 00 00
    15785     jmp short 0a0feh                          ; eb 00
     15801    jmp short 0a13eh                          ; eb 00
    1578615802    clc                                       ; f8
    1578715803    retn                                      ; c3
     
    1578915805    stc                                       ; f9
    1579015806    retn                                      ; c3
    15791 apm_pm16_entry:                              ; 0xfa104 LB 0x11
     15807apm_pm16_entry:                              ; 0xfa144 LB 0x11
    1579215808    mov AH, strict byte 002h                  ; b4 02
    1579315809    push DS                                   ; 1e
     
    1579715813    add bp, strict byte 00008h                ; 83 c5 08
    1579815814    mov ds, bp                                ; 8e dd
    15799     call 0a0cah                               ; e8 b8 ff
     15815    call 0a10ah                               ; e8 b8 ff
    1580015816    pop bp                                    ; 5d
    1580115817    pop DS                                    ; 1f
    1580215818    retf                                      ; cb
    15803 _DoUInt32Div:                                ; 0xfa115 LB 0x26b
     15819_DoUInt32Div:                                ; 0xfa155 LB 0x26b
    1580415820    push bp                                   ; 55
    1580515821    mov bp, sp                                ; 89 e5
     
    1581915835    mov [bp-006h], ds                         ; 8c 5e fa
    1582015836    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15821     jne short 0a165h                          ; 75 22
     15837    jne short 0a1a5h                          ; 75 22
    1582215838    mov ax, word [bx]                         ; 8b 07
    1582315839    test ax, ax                               ; 85 c0
    15824     je short 0a162h                           ; 74 19
     15840    je short 0a1a2h                           ; 74 19
    1582515841    cmp ax, strict word 00001h                ; 3d 01 00
    15826     jne short 0a165h                          ; 75 17
     15842    jne short 0a1a5h                          ; 75 17
    1582715843    xor ax, ax                                ; 31 c0
    1582815844    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1583215848    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1583315849    mov word [bp+006h], ax                    ; 89 46 06
    15834     jmp near 0a36dh                           ; e9 08 02
     15850    jmp near 0a3adh                           ; e9 08 02
    1583515851    lds bx, [bp-00ch]                         ; c5 5e f4
    1583615852    mov ax, word [bx+002h]                    ; 8b 47 02
    1583715853    mov ds, [bp-006h]                         ; 8e 5e fa
    1583815854    cmp ax, word [si+002h]                    ; 3b 44 02
    15839     je short 0a18bh                           ; 74 18
     15855    je short 0a1cbh                           ; 74 18
    1584015856    mov ds, [bp-00ah]                         ; 8e 5e f6
    1584115857    mov ax, word [bx+002h]                    ; 8b 47 02
    1584215858    mov ds, [bp-006h]                         ; 8e 5e fa
    1584315859    cmp ax, word [si+002h]                    ; 3b 44 02
    15844     jbe short 0a186h                          ; 76 05
     15860    jbe short 0a1c6h                          ; 76 05
    1584515861    mov ax, strict word 00001h                ; b8 01 00
    15846     jmp short 0a1ach                          ; eb 26
     15862    jmp short 0a1ech                          ; eb 26
    1584715863    mov ax, strict word 0ffffh                ; b8 ff ff
    15848     jmp short 0a1ach                          ; eb 21
     15864    jmp short 0a1ech                          ; eb 21
    1584915865    mov ds, [bp-00ah]                         ; 8e 5e f6
    1585015866    mov ax, word [bx]                         ; 8b 07
    1585115867    mov ds, [bp-006h]                         ; 8e 5e fa
    1585215868    cmp ax, word [si]                         ; 3b 04
    15853     je short 0a1aah                           ; 74 13
     15869    je short 0a1eah                           ; 74 13
    1585415870    mov ds, [bp-00ah]                         ; 8e 5e f6
    1585515871    mov ax, word [bx]                         ; 8b 07
    1585615872    mov ds, [bp-006h]                         ; 8e 5e fa
    1585715873    cmp ax, word [si]                         ; 3b 04
    15858     jbe short 0a1a5h                          ; 76 02
    15859     jmp short 0a181h                          ; eb dc
     15874    jbe short 0a1e5h                          ; 76 02
     15875    jmp short 0a1c1h                          ; eb dc
    1586015876    mov ax, strict word 0ffffh                ; b8 ff ff
    15861     jmp short 0a1ach                          ; eb 02
     15877    jmp short 0a1ech                          ; eb 02
    1586215878    xor ax, ax                                ; 31 c0
    1586315879    test ax, ax                               ; 85 c0
    15864     jnl short 0a1ceh                          ; 7d 1e
     15880    jnl short 0a20eh                          ; 7d 1e
    1586515881    lds bx, [bp-00ch]                         ; c5 5e f4
    1586615882    mov ax, word [bx]                         ; 8b 07
     
    1587215888    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1587315889    mov word [bx], strict word 00000h         ; c7 07 00 00
    15874     jmp short 0a162h                          ; eb 94
    15875     jne short 0a1e5h                          ; 75 15
     15890    jmp short 0a1a2h                          ; eb 94
     15891    jne short 0a225h                          ; 75 15
    1587615892    mov ds, [bp-008h]                         ; 8e 5e f8
    1587715893    mov word [di+002h], ax                    ; 89 45 02
     
    1588015896    mov word [bx], strict word 00001h         ; c7 07 01 00
    1588115897    mov word [bx+002h], ax                    ; 89 47 02
    15882     jmp near 0a36dh                           ; e9 88 01
     15898    jmp near 0a3adh                           ; e9 88 01
    1588315899    lds bx, [bp-00ch]                         ; c5 5e f4
    1588415900    mov ax, word [bx+002h]                    ; 8b 47 02
    1588515901    test ax, ax                               ; 85 c0
    15886     je short 0a200h                           ; 74 11
     15902    je short 0a240h                           ; 74 11
    1588715903    push ax                                   ; 50
    1588815904    mov ax, 0f000h                            ; b8 00 f0
    1588915905    mov ds, ax                                ; 8e d8
    15890     call 0a380h                               ; e8 88 01
     15906    call 0a3c0h                               ; e8 88 01
    1589115907    add sp, strict byte 00002h                ; 83 c4 02
    1589215908    add ax, strict word 00010h                ; 05 10 00
    15893     jmp short 0a20dh                          ; eb 0d
     15909    jmp short 0a24dh                          ; eb 0d
    1589415910    push word [bx]                            ; ff 37
    1589515911    mov ax, 0f000h                            ; b8 00 f0
    1589615912    mov ds, ax                                ; 8e d8
    15897     call 0a380h                               ; e8 76 01
     15913    call 0a3c0h                               ; e8 76 01
    1589815914    add sp, strict byte 00002h                ; 83 c4 02
    1589915915    mov word [bp-014h], ax                    ; 89 46 ec
     
    1590115917    mov ax, word [si+002h]                    ; 8b 44 02
    1590215918    test ax, ax                               ; 85 c0
    15903     je short 0a22bh                           ; 74 11
     15919    je short 0a26bh                           ; 74 11
    1590415920    push ax                                   ; 50
    1590515921    mov ax, 0f000h                            ; b8 00 f0
    1590615922    mov ds, ax                                ; 8e d8
    15907     call 0a380h                               ; e8 5d 01
     15923    call 0a3c0h                               ; e8 5d 01
    1590815924    add sp, strict byte 00002h                ; 83 c4 02
    1590915925    add ax, strict word 00010h                ; 05 10 00
    15910     jmp short 0a238h                          ; eb 0d
     15926    jmp short 0a278h                          ; eb 0d
    1591115927    push word [si]                            ; ff 34
    1591215928    mov ax, 0f000h                            ; b8 00 f0
    1591315929    mov ds, ax                                ; 8e d8
    15914     call 0a380h                               ; e8 4b 01
     15930    call 0a3c0h                               ; e8 4b 01
    1591515931    add sp, strict byte 00002h                ; 83 c4 02
    1591615932    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1592315939    mov word [bp-016h], ax                    ; 89 46 ea
    1592415940    test dx, dx                               ; 85 d2
    15925     je short 0a2a8h                           ; 74 56
     15941    je short 0a2e8h                           ; 74 56
    1592615942    mov cx, dx                                ; 89 d1
    1592715943    xor ch, dh                                ; 30 f5
     
    1592915945    mov ax, word [si]                         ; 8b 04
    1593015946    mov dx, word [si+002h]                    ; 8b 54 02
    15931     jcxz 0a266h                               ; e3 06
     15947    jcxz 0a2a6h                               ; e3 06
    1593215948    sal ax, 1                                 ; d1 e0
    1593315949    rcl dx, 1                                 ; d1 d2
    15934     loop 0a260h                               ; e2 fa
     15950    loop 0a2a0h                               ; e2 fa
    1593515951    mov word [bp-018h], ax                    ; 89 46 e8
    1593615952    mov word [bp-016h], dx                    ; 89 56 ea
     
    1593815954    lds bx, [bp-00ch]                         ; c5 5e f4
    1593915955    cmp ax, word [bx+002h]                    ; 3b 47 02
    15940     jnbe short 0a286h                         ; 77 0f
     15956    jnbe short 0a2c6h                         ; 77 0f
    1594115957    mov ax, word [bp-016h]                    ; 8b 46 ea
    1594215958    cmp ax, word [bx+002h]                    ; 3b 47 02
    15943     jne short 0a28ah                          ; 75 0b
     15959    jne short 0a2cah                          ; 75 0b
    1594415960    mov ax, word [bp-018h]                    ; 8b 46 e8
    1594515961    cmp ax, word [bx]                         ; 3b 07
    15946     jbe short 0a28ah                          ; 76 04
     15962    jbe short 0a2cah                          ; 76 04
    1594715963    mov AL, strict byte 001h                  ; b0 01
    15948     jmp short 0a28ch                          ; eb 02
     15964    jmp short 0a2cch                          ; eb 02
    1594915965    xor al, al                                ; 30 c0
    1595015966    test al, al                               ; 84 c0
    15951     je short 0a2b3h                           ; 74 23
     15967    je short 0a2f3h                           ; 74 23
    1595215968    shr word [bp-016h], 1                     ; d1 6e ea
    1595315969    rcr word [bp-018h], 1                     ; d1 5e e8
    1595415970    dec word [bp-012h]                        ; ff 4e ee
    15955     jmp short 0a2b3h                          ; eb 18
     15971    jmp short 0a2f3h                          ; eb 18
    1595615972    mov cx, strict word 0001fh                ; b9 1f 00
    1595715973    sal word [bp-018h], 1                     ; d1 66 e8
    1595815974    rcl word [bp-016h], 1                     ; d1 56 ea
    15959     loop 0a29eh                               ; e2 f8
    15960     jmp short 0a296h                          ; eb ee
     15975    loop 0a2deh                               ; e2 f8
     15976    jmp short 0a2d6h                          ; eb ee
    1596115977    mov ax, word [si]                         ; 8b 04
    1596215978    mov word [bp-018h], ax                    ; 89 46 e8
     
    1597515991    mov ds, [bp-006h]                         ; 8e 5e fa
    1597615992    cmp ax, word [si+002h]                    ; 3b 44 02
    15977     jnbe short 0a2dfh                         ; 77 06
    15978     jne short 0a2e3h                          ; 75 08
     15993    jnbe short 0a31fh                         ; 77 06
     15994    jne short 0a323h                          ; 75 08
    1597915995    cmp dx, word [si]                         ; 3b 14
    15980     jc short 0a2e3h                           ; 72 04
     15996    jc short 0a323h                           ; 72 04
    1598115997    mov AL, strict byte 001h                  ; b0 01
    15982     jmp short 0a2e5h                          ; eb 02
     15998    jmp short 0a325h                          ; eb 02
    1598315999    xor al, al                                ; 30 c0
    1598416000    test al, al                               ; 84 c0
    15985     je short 0a34ah                           ; 74 61
     16001    je short 0a38ah                           ; 74 61
    1598616002    mov ds, [bp-008h]                         ; 8e 5e f8
    1598716003    mov ax, word [di+002h]                    ; 8b 45 02
    1598816004    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15989     jnbe short 0a300h                         ; 77 0c
     16005    jnbe short 0a340h                         ; 77 0c
    1599016006    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15991     jne short 0a304h                          ; 75 0b
     16007    jne short 0a344h                          ; 75 0b
    1599216008    mov ax, word [di]                         ; 8b 05
    1599316009    cmp ax, word [bp-018h]                    ; 3b 46 e8
    15994     jc short 0a304h                           ; 72 04
     16010    jc short 0a344h                           ; 72 04
    1599516011    mov AL, strict byte 001h                  ; b0 01
    15996     jmp short 0a306h                          ; eb 02
     16012    jmp short 0a346h                          ; eb 02
    1599716013    xor al, al                                ; 30 c0
    1599816014    test al, al                               ; 84 c0
    15999     je short 0a330h                           ; 74 26
     16015    je short 0a370h                           ; 74 26
    1600016016    mov ax, word [bp-018h]                    ; 8b 46 e8
    1600116017    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1600616022    xor dx, dx                                ; 31 d2
    1600716023    mov cx, word [bp-012h]                    ; 8b 4e ee
    16008     jcxz 0a328h                               ; e3 06
     16024    jcxz 0a368h                               ; e3 06
    1600916025    sal ax, 1                                 ; d1 e0
    1601016026    rcl dx, 1                                 ; d1 d2
    16011     loop 0a322h                               ; e2 fa
     16027    loop 0a362h                               ; e2 fa
    1601216028    lds bx, [bp-010h]                         ; c5 5e f0
    1601316029    or word [bx], ax                          ; 09 07
     
    1601816034    mov ds, [bp-006h]                         ; 8e 5e fa
    1601916035    cmp ax, word [si+002h]                    ; 3b 44 02
    16020     jc short 0a346h                           ; 72 06
    16021     jne short 0a34ch                          ; 75 0a
     16036    jc short 0a386h                           ; 72 06
     16037    jne short 0a38ch                          ; 75 0a
    1602216038    cmp dx, word [si]                         ; 3b 14
    16023     jnc short 0a34ch                          ; 73 06
     16039    jnc short 0a38ch                          ; 73 06
    1602416040    mov AL, strict byte 001h                  ; b0 01
    16025     jmp short 0a34eh                          ; eb 04
    16026     jmp short 0a36dh                          ; eb 21
     16041    jmp short 0a38eh                          ; eb 04
     16042    jmp short 0a3adh                          ; eb 21
    1602716043    xor al, al                                ; 30 c0
    1602816044    test al, al                               ; 84 c0
    16029     je short 0a361h                           ; 74 0f
    16030     jmp short 0a36dh                          ; eb 19
     16045    je short 0a3a1h                           ; 74 0f
     16046    jmp short 0a3adh                          ; eb 19
    1603116047    mov cx, strict word 0001fh                ; b9 1f 00
    1603216048    sal word [bp-018h], 1                     ; d1 66 e8
    1603316049    rcl word [bp-016h], 1                     ; d1 56 ea
    16034     loop 0a357h                               ; e2 f8
    16035     jmp short 0a367h                          ; eb 06
     16050    loop 0a397h                               ; e2 f8
     16051    jmp short 0a3a7h                          ; eb 06
    1603616052    shr word [bp-016h], 1                     ; d1 6e ea
    1603716053    rcr word [bp-018h], 1                     ; d1 5e e8
    1603816054    dec word [bp-012h]                        ; ff 4e ee
    16039     jmp near 0a2e9h                           ; e9 7c ff
     16055    jmp near 0a329h                           ; e9 7c ff
    1604016056    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1604116057    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1604616062    retn                                      ; c3
    1604716063    times 0x6 db 0
    16048 _ASMBitLastSetU16:                           ; 0xfa380 LB 0x18
     16064_ASMBitLastSetU16:                           ; 0xfa3c0 LB 0x18
    1604916065    push bp                                   ; 55
    1605016066    db  08bh, 0ech
     
    1605216068    mov cx, word [bp+004h]                    ; 8b 4e 04
    1605316069    test cx, cx                               ; 85 c9
    16054     je short 0a394h                           ; 74 0a
     16070    je short 0a3d4h                           ; 74 0a
    1605516071    mov ax, strict word 00010h                ; b8 10 00
    1605616072    sal cx, 1                                 ; d1 e1
    16057     jc short 0a396h                           ; 72 05
     16073    jc short 0a3d6h                           ; 72 05
    1605816074    dec ax                                    ; 48
    16059     jmp short 0a38dh                          ; eb f9
     16075    jmp short 0a3cdh                          ; eb f9
    1606016076    db  033h, 0c0h
    1606116077    ; xor ax, ax                                ; 33 c0
     
    1606316079    retn                                      ; c3
    1606416080
    16065   ; Padding 0x3668 bytes at 0xfa398
    16066   times 13928 db 0
     16081  ; Padding 0x3628 bytes at 0xfa3d8
     16082  times 13864 db 0
    1606716083
    1606816084section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1611116127    add bp, strict byte 00008h                ; 83 c5 08
    1611216128    push ebp                                  ; 66 55
    16113     mov bp, 0a106h                            ; bd 06 a1
     16129    mov bp, 0a146h                            ; bd 46 a1
    1611416130    add byte [bx+si], al                      ; 00 00
    1611516131    push ebp                                  ; 66 55
     
    1671816734    mov dx, 0c800h                            ; ba 00 c8
    1671916735    call 01600h                               ; e8 f0 33
    16720     call 04faah                               ; e8 97 6d
     16736    call 04ff0h                               ; e8 dd 6d
    1672116737    pop DS                                    ; 1f
    1672216738    mov ax, 0ff53h                            ; b8 53 ff
     
    1684116857    call 01cc5h                               ; e8 89 39
    1684216858    call 02154h                               ; e8 15 3e
    16843     call 09958h                               ; e8 16 b6
    16844     call 087bdh                               ; e8 78 a4
     16859    call 0999eh                               ; e8 5c b6
     16860    call 08803h                               ; e8 be a4
    1684516861    call 0ed4ch                               ; e8 04 0a
    1684616862    call 0e2d2h                               ; e8 87 ff
     
    1685216868    call 01600h                               ; e8 a9 32
    1685316869    call 01799h                               ; e8 3f 34
    16854     call 03bc4h                               ; e8 67 58
     16870    call 03c0ah                               ; e8 ad 58
    1685516871    sti                                       ; fb
    1685616872    int 019h                                  ; cd 19
     
    1696116977    pop DS                                    ; 1f
    1696216978    cld                                       ; fc
    16963     call 06565h                               ; e8 1c 7e
     16979    call 065abh                               ; e8 62 7e
    1696416980    pop di                                    ; 5f
    1696516981    pop si                                    ; 5e
     
    1706517081    pop DS                                    ; 1f
    1706617082    cld                                       ; fc
    17067     call 05813h                               ; e8 ca 6f
     17083    call 05859h                               ; e8 10 70
    1706817084    pop di                                    ; 5f
    1706917085    pop si                                    ; 5e
     
    1708917105    pop DS                                    ; 1f
    1709017106    cld                                       ; fc
    17091     call 05813h                               ; e8 a5 6f
     17107    call 05859h                               ; e8 eb 6f
    1709217108    pop di                                    ; 5f
    1709317109    pop si                                    ; 5e
     
    1714817164    pop DS                                    ; 1f
    1714917165    cld                                       ; fc
    17150     call 052b2h                               ; e8 e2 68
     17166    call 052f8h                               ; e8 28 69
    1715117167    pop ES                                    ; 07
    1715217168    pop di                                    ; 5f
     
    1717817194    pop DS                                    ; 1f
    1717917195    cld                                       ; fc
    17180     call 06e9dh                               ; e8 a9 84
     17196    call 06ee3h                               ; e8 ef 84
    1718117197    pop DS                                    ; 1f
    1718217198    pop ES                                    ; 07
     
    1721417230    cld                                       ; fc
    1721517231    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17216     jmp near 03c08h                           ; e9 8e 4f
     17232    jmp near 03c4eh                           ; e9 d4 4f
    1721717233jmp_call_ret_int13_out:                      ; 0xfec7a LB 0x4a
    1721817234    db  0ffh
     
    1722317239    push cx                                   ; 51
    1722417240    push dx                                   ; 52
    17225     call 03bdch                               ; e8 58 4f
     17241    call 03c22h                               ; e8 9e 4f
    1722617242    cmp AL, strict byte 000h                  ; 3c 00
    1722717243    je short 0ecbfh                           ; 74 37
    17228     call 03bf2h                               ; e8 67 4f
     17244    call 03c38h                               ; e8 ad 4f
    1722917245    pop dx                                    ; 5a
    1723017246    push dx                                   ; 52
     
    1725117267    cld                                       ; fc
    1725217268    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17253     jmp near 04215h                           ; e9 6a 55
     17269    jmp near 0425bh                           ; e9 b0 55
    1725417270    and dl, 0e0h                              ; 80 e2 e0
    1725517271    db  03ah, 0c2h
     
    1729117307    jne short 0ecdeh                          ; 75 08
    1729217308    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17293     jmp near 0320fh                           ; e9 31 45
     17309    jmp near 0322dh                           ; e9 4f 45
    1729417310int13_notfloppy:                             ; 0xfecde LB 0x14
    1729517311    cmp dl, 0e0h                              ; 80 fa e0
     
    1729717313    shr ebx, 010h                             ; 66 c1 eb 10
    1729817314    push bx                                   ; 53
    17299     call 04668h                               ; e8 7d 59
     17315    call 046aeh                               ; e8 c3 59
    1730017316    pop bx                                    ; 5b
    1730117317    sal ebx, 010h                             ; 66 c1 e3 10
     
    1730417320    cmp ah, 040h                              ; 80 fc 40
    1730517321    jnbe short 0ecfch                         ; 77 05
    17306     call 05bf4h                               ; e8 fa 6e
     17322    call 05c3ah                               ; e8 40 6f
    1730717323    jmp short 0ecffh                          ; eb 03
    17308     call 0603ah                               ; e8 3b 73
     17324    call 06080h                               ; e8 81 73
    1730917325int13_out:                                   ; 0xfecff LB 0xb
    1731017326    pop DS                                    ; 1f
     
    1754017556    pop DS                                    ; 1f
    1754117557    cld                                       ; fc
    17542     call 0784ah                               ; e8 66 88
     17558    call 07890h                               ; e8 ac 88
    1754317559    pop di                                    ; 5f
    1754417560    pop si                                    ; 5e
     
    1759817614    mov ax, strict word 00001h                ; b8 01 00
    1759917615    push ax                                   ; 50
    17600     call 04d07h                               ; e8 37 5c
     17616    call 04d4dh                               ; e8 7d 5c
    1760117617    inc sp                                    ; 44
    1760217618    inc sp                                    ; 44
     
    1760517621    mov ax, strict word 00002h                ; b8 02 00
    1760617622    push ax                                   ; 50
    17607     call 04d07h                               ; e8 2a 5c
     17623    call 04d4dh                               ; e8 70 5c
    1760817624    inc sp                                    ; 44
    1760917625    inc sp                                    ; 44
     
    1761217628    mov ax, strict word 00003h                ; b8 03 00
    1761317629    push ax                                   ; 50
    17614     call 04d07h                               ; e8 1d 5c
     17630    call 04d4dh                               ; e8 63 5c
    1761517631    inc sp                                    ; 44
    1761617632    inc sp                                    ; 44
     
    1761917635    mov ax, strict word 00004h                ; b8 04 00
    1762017636    push ax                                   ; 50
    17621     call 04d07h                               ; e8 10 5c
     17637    call 04d4dh                               ; e8 56 5c
    1762217638    inc sp                                    ; 44
    1762317639    inc sp                                    ; 44
     
    1792217938    cmp ah, 0c2h                              ; 80 fc c2
    1792317939    je short 0f895h                           ; 74 15
    17924     call 067bch                               ; e8 39 6f
     17940    call 06802h                               ; e8 7f 6f
    1792517941    pop di                                    ; 5f
    1792617942    pop si                                    ; 5e
     
    1793517951    popfw                                     ; 9d
    1793617952    jmp short 0f8afh                          ; eb 1f
    17937     call 09aabh                               ; e8 18 a2
     17953    call 09af1h                               ; e8 5e a2
    1793817954    jmp short 0f883h                          ; eb ee
    1793917955int15_handler_mouse:                         ; 0xff895 LB 0x5
    17940     call 074aah                               ; e8 12 7c
     17956    call 074f0h                               ; e8 58 7c
    1794117957    jmp short 0f883h                          ; eb e9
    1794217958int15_handler32:                             ; 0xff89a LB 0x15
     
    1794917965    push si                                   ; 56
    1795017966    push di                                   ; 57
    17951     call 06affh                               ; e8 5a 72
     17967    call 06b45h                               ; e8 a0 72
    1795217968    pop di                                    ; 5f
    1795317969    pop si                                    ; 5e
     
    1799518011    pop DS                                    ; 1f
    1799618012    cld                                       ; fc
    17997     call 073d8h                               ; e8 fd 7a
     18013    call 0741eh                               ; e8 43 7b
    1799818014    pop cx                                    ; 59
    1799918015    jcxz 0f8ebh                               ; e3 0d
     
    1804318059    pop DS                                    ; 1f
    1804418060    cld                                       ; fc
    18045     call 07075h                               ; e8 56 77
     18061    call 070bbh                               ; e8 9c 77
    1804618062    pop di                                    ; 5f
    1804718063    pop si                                    ; 5e
     
    1814618162    pop DS                                    ; 1f
    1814718163    cld                                       ; fc
    18148     call 07134h                               ; e8 b6 72
     18164    call 0717ah                               ; e8 fc 72
    1814918165    pop di                                    ; 5f
    1815018166    pop si                                    ; 5e
     
    1825818274cpu_reset:                                   ; 0xffff0 LB 0x10
    1825918275    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18260     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 04bh
     18276    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 037h
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